Archive

Posts Tagged ‘LVM’

החלפת דיסקים עם LVM

21/08/2009 2 תגובות

את המערכת שלי העברתי ל-LVM לפני כשנה, בתקופה שהתעסקתי הרבה עם LVM על שרתים. כעת, אחרי שנה שלמה שלא נגעתי ב-LVM של לינוקס (התעסקתי עם מנגנונים דומים של חברות מסחריות), עלה אצלי הצורך להעביר את כל המידע מהדיסק שלי לדיסק חדש.

הבעיות:

  • אני דיי חלוד עם LVM
  • שני הדיסקים שלי (ישן+חדש) מכילים PV על כל שטח הדיסק.
  • יש VG שונה על כל אחד מהדיסקים.
  • אני צריך את המידע על הדיסק החדש, ולא יכול למחוק אותו.

תיאורטית, המצב אמור להיות פשוט – מזהים את הדיסק החדש, יוצרים עליו PV, מגדילים את ה-VG ומשתמשים ב-pvmove כדי להעביר את המידע בין הדיסקים. אך בגלל שעל הדיסק החדש כבר יש PV  בכל שטח הדיסק שעליו יושב VG נפרד, המצב הרבה יותר מסובך.

עם קצת בירורים, מסתבר שיש את הפקודה vgmerge שמאפשר למזג VG אחד לתוך VG אחר. רק צריך לוודא שיש מספיק מקום פנוי ושאין LVים באותו השם (ואם כן אז לשנות להם את השם). פשוט מאוד, אך מסתבר שבשביל זה צריך שהיה אותו גודל PE (גדול בלוק של ה-PV) בשני ה-VGים. מאחר וברירת המחדל עבור גודל ה-PE השתנתה מ-2M ל-4M, נתקעתי עם הגדרות שונות לכל VG.

כאן פחות או יותר התחיל סרט רע שכלל הרבה שינוי גודל ל-FSים, LVים ו-PVים כדי לאפשר את שינוי הגודל מ-2M ל-4M. כל המשחקים הובילו אותי להודעות שגיאה מעצבנות בזמן ניסיון לשנות את גדול הבלוק. ההודעות טענו שהגודל החדש אינו כפולה של גדול הבלוק, ולכן לא ניתן לבצע את השינוי. כנראה שמדובר בבאג, כי אין סיכוי ש-PV בגודל של מספר G עגולים, לא יתחלק ב-4M, אבל נשאיר את זה לפעם אחרת.

לאחר הרבה משחקים, שבהם בעיקר דאגתי לעצמי לתרגול פקודות LVM ו-FSים, פתרתי את הבעיה ע"י שינוי גודל הבלוק של ה-PV בדיסק החדש מ-4M ל-2M. השינוי היה קל ומהיר. לאחר שהתגברתי על הבעיה הזאת, נשאר להעביר את המידע עצמו עם pvmove.

אז כמה טיפים על pvmove (בעקבות בעיות בעבר). הראשון הוא שמומלץ להשתמש באופציה ה-verbose של הפקודה כדי לקבל דיווח על ההתקדמות, אחרת יש הרגשה שהכל תקוע. דבר שני, ביטול הפקודה לא נעשה עם CTRL+C אלא עם הרצת pvmove –abort ממסוף אחר (קצת בעייתי ב-Single User). ולבסוף, פקודות LVM אחרת יתקעו לכם בזמן הריצה של pvmove כתוצאה מנעילות.

הפקודה עובדת בצורה מסודרת, ומבטיחה כי גם בזמן תקלה, המידע לא ילך לאיבוד. תחילה מבוצע שיריון של שטח היעד כולו, כדי לראות שאפשר לבצע את המעבר. לאחר מכן ננעל שטח יעודי עבור ה-PE שרוצים להעביר והוא משוכפל לשטח החדש. לאחר השכפול מבוצעת מחיקה של השטח הישן. סה"כ העברתי כ-60G עם הפקודה ללא שום בעיות.

לסיום התהליך נשאר להעיף את ה-PV הישן, לשנות את גודל ה-PE חזרה ל-4M (הפעם עבר ללא בעיות) וזהו.

:קטגוריותDebian GNU/Linux תגיות:

מעבר ל-LVM

09/08/2008 4 תגובות

ניצלתי את הסופ"ש השקט כדי לסיים את ההגירה שלי ל-LVM. מטרת ההגירה היא לקבל יותר גמישות לגבי ניהול נפח הדיסק על המחשב והתמודדות עם תקופות בהן הצורך למקום חדש הולך וגדל.

המעבר כלל בשלב ראשון יצירת מחיצה חדשה ששימשה את ה-LVM, לשם העברתי בעבודה ידנית את כל ה-FSים של מערכת הפעלה (usr, tmp,var) וגם את home. בדקתי את התצורה החדשה לאורך כחודשיים (בעיקר כי לא היה לי זמן לסיים האת המעבר עד עכשיו) והכל נראה תקין. מאתמול אני מבצע משחקים עם המחיצות כדי להעביר את כל המידע על המחשב ל-LVM. אני עושה זאת ע"י הקצאת PVים נוספים על מחיצות חדשות בדיסק בזמן שאני מוחק את הישנות שהתפנו.

בסופו של התהליך קיבלתי PV של 40G שמכיל עליו את כל המידע שלי, ועוד 40G פנויים (בשלב זה גם בלי מחיצה) עבור PV עתידי. היתרון של LVM הוא שכרגע אני יכול להגדיל בקלות את מחיצת הבית שלי אם ארצה בלי להתחיל להסתבך במשחקים עם המחיצות. בעצם, כנראה שאני לא אצטרך להתעסק יותר עם המחיצות על המחשב (;

בתהליך גם בדקתי את הפקודה pvmove שעשתה לי בעיות בכמה שרתים. הפעם היא עבדה תקין לחלוטין, כולל שימוש ב- pvmove –abort כדי לעצור את הפעולה. מאוד נוח לדעת אפשר להעביר מידע בין מחיצות ודיסקים בלי שהמשתמשים ירגישו או שיהיה צריך להשבית אותם (למעט העליה בדרישה ל-IO שכמובן שמפיעה על הביצועים).

:קטגוריותUncategorized תגיות: