ראשי > Debian GNU/Linux > החלפת דיסקים עם LVM

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

את המערכת שלי העברתי ל-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 תגיות:
  1. שמיטי
    02/09/2009 ב- 3:44 pm

    שאלה…
    dd לכל הדיסק לא היה עוזר?

  2. 02/09/2009 ב- 10:36 pm

    עם dd לכל הדיסק היו מתעוררות כמה בעיות, ובראשן שטבלת המחיצות היתה מועתקת גם היא, ולכן כל הכלים שמתבססים עליה יראו את גודל הדיסק הישן. התוצאה היא כמובן איבוד מקום.

    ניתן להתגבר על זה ע"י יצירה מחדש של טבלת המחיצות, אבל זה כבר עסק קצת יותר מסוכן. השיטה שתוארה למעלה היא בטוחה לחלוטין.

    עניין נוסף – במה שתיארתי למעלה, יש כבר חומר על הדיסק החדש, ולכן לא ניתן היה לדרוס אותו עם DD בצורה גסה.

  1. No trackbacks yet.

להשאיר תגובה

הזינו את פרטיכם בטופס, או לחצו על אחד מהאייקונים כדי להשתמש בחשבון קיים:

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s

%d בלוגרים אהבו את זה: