הקדמה
LVM, או ניהול נפח לוגי, הוא טכנולוגית ניהול מכשירי אחסון המעניקה למשתמשים את היכולת לאגוד ולהפשיר את הפיזור הפיזי של מכשירי האחסון הרכיביים לניהול גמיש. באמצעות הגדרת הליבה הפנימית של לינוקס, כמו גם הרכיבים של המפרט של מפתח ההתקן, הגרסה הנוכחית, LVM2, ניתן להשתמש בה כדי לאגד מכשירי אחסון קיימים לקבוצות ולהקצות יחידות לוגיות מהשטח המשולב לפי הצורך.
היתרונות העיקריים של LVM הם הפיכת פיזור הנתונים למופשט, הגמישות והשליטה. ניתן לתת לנפחות הלוגיים שמות משמעותיים כמו "מסדי נתונים" או "גיבוי ראשי". ניתן גם לשנות את גודל הנפחות דינמית כפי שהדרישות לשטח משתנות, ולהעביר בין מכשירים פיזיים שונים בתוך הקבוצה במערכת רציפה או לייצא. LVM מציעה גם תכונות מתקדמות כמו צילומיות, פירוק ושירותי מראה.
במדריך זה, תלמד איך פועל LVM ותתרגל פקודות בסיסיות כדי להתחיל במהירות על מכונת מטאל ריקה.
ארכיטקטורה ומונחים של LVM
לפני שנכנס לפקודות ניהול LVM, חשוב להבין בסיסית איך LVM מארגן מכשירי אחסון וכמה מהמונחים שהוא משתמש בהם.
מבני ניהול אחסון של LVM
LVM פועלת על ידי שכבת מונחים על התקני אחסון פיזיים. השכבות הבסיסיות שבהם משתמשת LVM, החל מהקיומן הפרימיטיבי, הן:
-
נפחים פיזיים: תחילית השם של נפחים פיזיים ב-LVM היא
pv...
. אלו הם התקני גושים פיזיים או תקנים דומים לדיסק (לדוגמה, תקנים אחרים שנוצרו על ידי מפענח התקנים, כמו מערכות RAID) ומשמשים כחומר בניה גולמי לשכבות גבוהות יותר של המונח. נפחים פיזיים הם התקני אחסון רגילים. LVM כותבת כותרת להתקן כדי להקצות אותו לניהול. -
קבוצות נפח: תחילית השם של קבוצות נפח ב-LVM היא
vg...
. LVM משלבת נפחים פיזיים למבני אחסון שמכונים גם "קבוצות נפח". קבוצות הנפח מפשטות את התכונות ההתקנים התחתונים ופועלות כהתקן לוגי מאוחד עם קיבולת אחסון משולבת של נפחים הכלולים. -
נפחים לוגיים: הקידומת של תוכנת LVM לנפחים לוגיים היא
lv...
, תוכנות LVM גנריות עשויות להתחיל ב-lvm...
. קבוצת נפח יכולה להיות מחולקת לכמות כלשהי של נפחים לוגיים. נפחים לוגיים שקופים בפועל למחיצות על דיסק פיזי, אך עם גמישות רבה יותר. נפחים לוגיים הם הרכיב העיקרי שמשתמשים ויישומים יתמכו בהם.
ניתן להשתמש ב-LVM כדי לשלב נפחים פיזיים לקבוצות נפח כדי לאחד את המרחב האחסון הזמין במערכת. לאחר מכן, מנהלי מערכות יכולים לחלק את קבוצת הנפח לנפחים לוגיים שרכיבים גמישים כמחיצות.
הבנת תיאורים
כל נפח בתוך קבוצת נפח נחלק לתתי-יחידות קטנות ובגודל קבוע הנקראות הרכבים. גודל הרכבים נקבע על ידי קבוצת הנפח. כל הנפחים בתוך הקבוצה עומדים באותו גודל של רכבים.
הרכבים בתוך נפח פיזי נקראים רכבים פיזיים, והרכבים של נפח לוגי נקראים רכבים לוגיים. נפח לוגי הוא מיפוי שבו LVM שומרת בין רכבים לוגיים ורכבים פיזיים. בגלל הקשר הזה, גודל הרכב מייצג את הכמות הקטנה ביותר שניתן להקצות על ידי LVM.
הרכבים תומכים בגמישות וכוח של LVM. הרכבים הלוגיים שמוצגים כהתקן אחד על ידי LVM לא חייבים להתאים לרכבים פיזיים רצופים. LVM יכולה להעתיק ולארגן מחדש את הרכבים הפיזיים שמהם מורכב נפח לוגי בלתי מובן עבור המשתמשים. ניתן גם להרחיב או לצמצם נפחים לוגיים על ידי הוספת רכבים או הסרת רכבים מהנפח.
מקרי שימוש נפוצים
עכשיו שאתה מכיר למונחים ולמבנים שבהם משתמש LVM, ניתן לחקור כמה דרכים נפוצות להשתמש ב-LVM. תתחיל עם הליך שישתמש בשני דיסקים פיזיים כדי ליצור ארבעה נפחים לוגיים.
עיגון התקנים פיזיים כנפחים פיזיים
התחל בסריקת המערכת למכשירי בלוק שבהם LVM יכולה לגשת ולנהל. ניתן לעשות זאת באמצעות הפקודה הבאה:
- sudo lvmdiskscan
הפלט יחזיר את כל מכשירי הבלוק הזמינים שבהם תוכל LVM להתקשר:
Output /dev/ram0 [ 64.00 MiB]
/dev/sda [ 200.00 GiB]
/dev/ram1 [ 64.00 MiB]
. . .
/dev/ram15 [ 64.00 MiB]
/dev/sdb [ 100.00 GiB]
2 disks
17 partitions
0 LVM physical volume whole disks
0 LVM physical volumes
בדוגמה זו, שים לב שישנם כרגע שני דיסקים ו־17 מחיצות. המחיצות בעיקר הן מחיצות /dev/ram*
המשמשות במערכת כ־דיסק RAM לשיפורי ביצועים. הדיסקים בדוגמה זו הם /dev/sda
, שיש בו 200 ג'יגה של מקום, ו־/dev/sdb
, שיש בו 100 ג'יגה.
אזהרה: וודא שביצעת בדיקה כפולה שהמכשירים שתרצה להשתמש בהם עם LVM אינם מכילים כבר נתונים חשובים. השימוש במכשירים אלו בתוך LVM ידרוס את התוכן הנוכחי. אם יש לך נתונים חשובים בשרת שלך, צור גיבויים לפני שתמשיך.
עכשיו שאתה יודע אילו מכשירים פיזיים ברצונך להשתמש בהם, סמן אותם כנפחים פיזיים בתוך LVM באמצעות הפקודה pvcreate
:
- sudo pvcreate /dev/sda /dev/sdb
Output Physical volume "/dev/sda" successfully created
Physical volume "/dev/sdb" successfully created
זה יכתוב כותרת LVM למכשירים כדי לציין שהם מוכנים להוספה לקבוצת נפח.
וודא ש־LVM רשומה את הנפחים הפיזיים על ידי הרצת הפקודה pvs
:
- sudo pvs
Output PV VG Fmt Attr PSize PFree
/dev/sda lvm2 --- 200.00g 200.00g
/dev/sdb lvm2 --- 100.00g 100.00g
שים לב ששני המכשירים נמצאים תחת העמודה PV
, שמייצגת נפח פיזי.
הוספת הנפחים הפיזיים לקבוצת נפח
עכשיו שיצרת נפחים פיזיים מהמכשירים שלך, תוכל ליצור קבוצת נפח. ברוב המקרים, יש לך רק קבוצת נפח אחת למערכת לגמריות מרבית בהקצאה. בדוגמה הבאה של קבוצת נפח, השם הוא LVMVolGroup
. תוכל לתת שם לקבוצת הנפח שלך כפי שתרצה.
כדי ליצור את קבוצת הנפח ולהוסיף שני הנפחים הפיזיים שלך אליה, הפעל:
- sudo vgcreate LVMVolGroup /dev/sda /dev/sdb
Output Volume group "LVMVolGroup" successfully created
בדיקת פלט הפקודה pvs
שוב תצביע על כך שהנפחים הפיזיים שלך משוייכים כעת לקבוצת הנפח החדשה:
- sudo pvs
Output PV VG Fmt Attr PSize PFree
/dev/sda LVMVolGroup lvm2 a-- 200.00g 200.00g
/dev/sdb LVMVolGroup lvm2 a-- 100.00g 100.00g
רשום סיכום קצר של קבוצת הנפח בעזרת vgs
:
- sudo vgs
Output VG #PV #LV #SN Attr VSize VFree
LVMVolGroup 2 0 0 wz--n- 299.99g 299.99g
קבוצת הנפח שלך כרגע כוללת שני נפחים פיזיים, אף נפח לוגי, ויש לה את הקיבולת המשולבת של המכשירים התחתיים.
יצירת נפחים לוגיים ממשאבי קבוצת הנפח
עכשיו שיש לך קבוצת נפח זמינה, ניתן להשתמש בה כבריכה כדי להפקיד נפחים לוגיים ממנה. למרות המחיצה הקונבנציונלית, כאשר אתה עובד עם נפחים לוגיים, אין צורך לדעת את ההתקנה של הנפח מאחר ש- LVM מטמפס ומטפל בזה במקום שלך. אתה צריך רק לספק את גודל הנפח ושם.
בדוגמה הבאה, תיצור ארבעה נפחים לוגיים נפרדים מהקבוצת נפח שלך:
- נפח "פרויקטים" של 10G
- נפח "www" של 5G עבור תוכן אינטרנט
- נפח "db" של 20G עבור מסד נתונים
- נפח "משרד" שימלא את השטח הנותר
כדי ליצור נפחים לוגיים, השתמש בפקודת lvcreate
. עליך להעביר את קבוצת הנפחים ממנה למשוך, ולתת שם לנפח הלוגי בעזרת האפשרות -n
. כדי לציין את הגודל ישירות, תוכל להשתמש באפשרות -L
. אם במקום זאת, ברצונך לציין את הגודל במונחי המספר של ההרחבות, תוכל להשתמש באפשרות -l
.
צור את שלושת הנפחים הלוגיים הראשונים בעזרת האפשרות -L
:
- sudo lvcreate -L 10G -n projects LVMVolGroup
- sudo lvcreate -L 5G -n www LVMVolGroup
- sudo lvcreate -L 20G -n db LVMVolGroup
Output Logical volume "projects" created.
Logical volume "www" created.
Logical volume "db" created.
תוכל להציג את הנפחים הלוגיים והקשר שלהם לקבוצת הנפחים על ידי בחירת פלט מותאם אישית מהפקודה vgs
:
- sudo vgs -o +lv_size,lv_name
Output VG #PV #LV #SN Attr VSize VFree LSize LV
LVMVolGroup 2 3 0 wz--n- 299.99g 264.99g 10.00g projects
LVMVolGroup 2 3 0 wz--n- 299.99g 264.99g 5.00g www
LVMVolGroup 2 3 0 wz--n- 299.99g 264.99g 20.00g db
בדוגמה זו, הוספת את שתי העמודות האחרונות של הפלט. היא מציינת כמה מקום אוחז בנפחים הלוגיים שלך.
עכשיו, אתה יכול להפקיד את שאר השטח בקבוצת הנפח לנפח ה "workspace"
באמצעות הדגל -l
, העובד ביחידות. תוכל גם לספק אחוז ויחידה כדי לתקשר את הכוונות שלך בצורה טובה יותר. בדוגמה זו, הקצה את השטח הנותר, ובכך תוכל להעביר 100%FREE
:
- sudo lvcreate -l 100%FREE -n workspace LVMVolGroup
Output Logical volume "workspace" created.
בבדיקת מידע על קבוצת הנפח עם פקודת ה־vgs
המותאמת אישית, שים לב שהשתמשת בכל השטח הזמין:
- sudo vgs -o +lv_size,lv_name
Output VG #PV #LV #SN Attr VSize VFree LSize LV
LVMVolGroup 2 4 0 wz--n- 299.99g 0 10.00g projects
LVMVolGroup 2 4 0 wz--n- 299.99g 0 5.00g www
LVMVolGroup 2 4 0 wz--n- 299.99g 0 20.00g db
LVMVolGroup 2 4 0 wz--n- 299.99g 0 264.99g workspace
נוצר הנפח workspace
וקבוצת הנפח LVMVolGroup
הוקצת לגמרי.
עיצוב והרכבת נפחים לוגיים
עכשיו שיש לך נפחים לוגיים, תוכל להשתמש בהם כמכשירי בלוק רגילים.
ההתקנים הלוגיים זמינים בתיקיית /dev
כמו מכשירי אחסון אחרים. תוכל לגשת אליהם בשני מקומות:
/dev/שם_קבוצת_הנפח/שם_הנפח_הלוגי
/dev/mapper/שם_קבוצת_הנפח-שם_הנפח_הלוגי
כדי לעצב את ארבעת הנפחים הלוגיים שלך עם מערכת הקבצים Ext4, הפעל את הפקודות הבאות:
- sudo mkfs.ext4 /dev/LVMVolGroup/projects
- sudo mkfs.ext4 /dev/LVMVolGroup/www
- sudo mkfs.ext4 /dev/LVMVolGroup/db
- sudo mkfs.ext4 /dev/LVMVolGroup/workspace
בנוסף, תוכל להריץ את הפקודה הבאה:
- sudo mkfs.ext4 /dev/mapper/LVMVolGroup-projects
- sudo mkfs.ext4 /dev/mapper/LVMVolGroup-www
- sudo mkfs.ext4 /dev/mapper/LVMVolGroup-db
- sudo mkfs.ext4 /dev/mapper/LVMVolGroup-workspace
לאחר הפירמוט, צור נקודות תחבורה:
- sudo mkdir -p /mnt/{projects,www,db,workspace}
ואז הרכב את הנפחים הלוגיים במיקום המתאים:
- sudo mount /dev/LVMVolGroup/projects /mnt/projects
- sudo mount /dev/LVMVolGroup/www /mnt/www
- sudo mount /dev/LVMVolGroup/db /mnt/db
- sudo mount /dev/LVMVolGroup/workspace /mnt/workspace
כדי להפוך את ההרכבות קבועות, השתמשו בעורך טקסט המועדף עליכם כדי להוסיף אותן לקובץ /etc/fstab
. בדוגמה הבאה משתמשים ב־nano
:
- sudo nano /etc/fstab
. . .
/dev/LVMVolGroup/projects /mnt/projects ext4 defaults,nofail 0 0
/dev/LVMVolGroup/www /mnt/www ext4 defaults,nofail 0 0
/dev/LVMVolGroup/db /mnt/db ext4 defaults,nofail 0 0
/dev/LVMVolGroup/workspace /mnt/workspace ext4 defaults,nofail 0 0
לאחר עריכת הקובץ שלכם, שמרו וצאו. אם אתם משתמשים ב־nano
, לחצו על CTRL+c
, לאחר מכן על y
, ולבסוף על ENTER
.
מערכת ההפעלה כעת תשמיד את כתובות המשתנה הלוגיות של LVM באופן אוטומטי בעת ההתנגדות.
מסקנה
עכשיו יש לכם הבנה של הרכיבים השונים שמנהל ה־LVM כדי ליצור מערכת אחסון גמישה, וכיצד להפעיל מכשירי אחסון בהגדרת LVM.
כדי לקבל מידע נוסף על העבודה עם LVM, ראו את מדריך השימוש ב־LVM עם אובונטו 18.04.