בשל השינויים בדרישות מבחן ה־LFCS התקפות 2 בפברואר 2016, אנו מוסיפים את הנושאים הנדרשים לסדרת ה־LFCS המתפרסמת כאן. כדי להתכונן למבחן זה, ממליצים בחום להשתמש גם בסדרת ה־LFCE.

אחת ההחלטות החשובות ביותר בעת התקנת מערכת Linux היא כמות השטח האחסון שיש להקצות לקבצי המערכת, ספריות הבית ואחרים. אם תרשה לעצמך לטעות בנקודה זו, גידול מחיצה שנגמר בה השטח יכול להיות מעמיס ומעט סותר.
ניהול נפחים לוגיים (נקרא גם LVM), שהפכו לברירת המחדל להתקנת רוב (אם לא כל) ההפצות של Linux, יש לו מספר יתרונות על ניהול המחיצות המסורתי. אולי המאפיין המתפרצ ביותר של LVM הוא שהוא מאפשר לחלקות לוגיות להיות מוקטנות (מוקטנות או מוגדלות) לפי רצונך בלי הרבה טרחה.
מבנה ה־LVM כולל:
- כוננים פיזיים (PVs) שהוגדרו ככוננים פיזיים או חלקי כונן שלמים.
- A volume group (VG) is created using one or more physical volumes. You can think of a volume group as a single storage unit.
- ניתן ליצור מספר רב של חלוקות לוגיות בקבוצת נפח. כל חלוקה לוגית שקיימת היא כמעט שקולה למחיצה מסורתית – עם היתרון שניתן להקטין או להגדיל אותה לפי רצוננו כפי שציינו למעלה.
במאמר זה נשתמש בשלושה דיסקים של 8 GB כל אחד (/dev/sdb, /dev/sdc, ו־/dev/sdd) כדי ליצור שלושה נפחים פיזיים. ניתן ליצור את ה־PVs ישית עליו או למחלק אותו תחילה.
אף על פי שבחרנו בשיטה הראשונה, אם תחליטו להשתמש בשיטה השנייה (כפי שמוסבר ב־חלק 4 – יצירת מחיצות ומערכות קבצים בלינוקס בסדרה זו) ודאו להגדיר כל מחיצה כסוג 8e
.
יצירת נפחים פיזיים, קבוצות נפחים, ונפחים לוגיים
כדי ליצור נפחים פיזיים על /dev/sdb, /dev/sdc, ו־/dev/sdd, עשו:
# pvcreate /dev/sdb /dev/sdc /dev/sdd
ניתן לרשום את ה־PVs החדשים שנוצרו באמצעות:
# pvs
ולקבל מידע מפורט אודות כל PV באמצעות:
# pvdisplay /dev/sdX
(כאשר X הוא b, c, או d)
אם תוותרו על /dev/sdX
כפרמטר, תקבלו מידע אודות כל ה־PVs.
כדי ליצור קבוצת נפח בשם vg00
באמצעות /dev/sdb
ו־/dev/sdc
(נשמור על /dev/sdd
למעשה כדי להדגיש את האפשרות להוסיף מכשירים נוספים להרחבת נפח האחסון כאשר זה נדרש):
# vgcreate vg00 /dev/sdb /dev/sdc
כמו שהיה במקרה של נפחים פיזיים, ניתן גם להציג מידע אודות קבוצת הנפחים הזו על ידי פקודה:
# vgdisplay vg00
מאחר ו־vg00
מורכבת משני דיסקים של 8 GB, היא תופיע כדיסק אחד בנפח של 16 GB:

כשמדובר ביצירת מרחבי נפח לוגיים, התפלגות המרחב חייבת לקחת בחשבון גם את הצרכים הנוכחיים וגם את הצרכים העתידיים. נחשב לנהל טוב לשמור כל מרחב לוגי על פי שימושו המיועד.
לדוגמה, בואו ניצור שני מרחבי נפח בשמות vol_projects
(10 GB) ו-vol_backups
(שאר המרחב), שנוכל להשתמש בהם בהמשך לאחסון תיעוד פרויקטים ונשואים מערכת, בהתאמה.
האופציה -n
משמשת לציון שם ל-LV, ואילו -L
קובע גודל קבוע ו--l
(אות L קטנה) משמשת לציון אחוז משאר המרחב במכל הגדול VG.
# lvcreate -n vol_projects -L 10G vg00 # lvcreate -n vol_backups -l 100%FREE vg00
כמו קודם, אפשר לצפות ברשימת ה-LVs ומידע בסיסי עם:
# lvs
ומידע מפורט עם
# lvdisplay
כדי לצפות במידע על LV יחיד, השתמש lvdisplay עם הפרמטרים VG ו-LV, כך:
# lvdisplay vg00/vol_projects

בתמונה למעלה אפשר לראות שנוצרו ה-LVs כמכשירי אחסון (ראה את השורה LV Path). לפני שניתן להשתמש בכל מרחב לוגי, יש ליצור מערכת קבצים על פניו.
אנו נשתמש ב-ext4 כדוגמה כאן מאחר שהיא מאפשרת לנו גם להגדיל וגם להקטין את גודל כל LV (בניגוד ל-xfs שמאפשר רק להגדיל את הגודל):
# mkfs.ext4 /dev/vg00/vol_projects # mkfs.ext4 /dev/vg00/vol_backups
בסעיף הבא נסביר כיצד לשנות את גודל המרחבים הלוגיים ולהוסיף מרחב אחסון פיזי נוסף כאשר מגיע הזמן לעשות זאת.
שינוי גודל מרחבי נפח לוגיים והרחבת קבוצות מכונים
עכשיו דמיין את התרחיש הבא. אתה מתחיל להימצא במצב שבו אתה מתחיל לגמוע ממקום ב-vol_backups
, בעוד שיש לך מספיק מקום זמין ב-vol_projects
. עקב טבעו של LVM, אנו יכולים בקלות להפחית את גודל האחרון (נניח 2.5 ג'יגה-בייט) ולהקצות אותו לראשון, בעוד שמאותגנים את כל מערכות הקבצים בו זמנית.
ממש מזל שזה כל כך קל, כמו לעשות:
# lvreduce -L -2.5G -r /dev/vg00/vol_projects # lvextend -l +100%FREE -r /dev/vg00/vol_backups

חשוב לכלול את הסימנים של מינוס (-)
או פלוס (+)
בעת שינוי גודל של נפח לוגי. אחרת, אתה מגדיר גודל קבוע עבור ה-LV במקום לשנות אותו.
יתכן שתגיע לנקודה בה ששינוי גודל של נפחים לוגיים לא יפתור את צרכי האחסון שלך עוד ותצטרך לקנות מכשיר אחסון נוסף. כדי לשמור על זה פשוט, תצטרך דיסק נוסף. אנו הולכים לדמות את המצב הזה על ידי הוספת ה-PV הנותר מההגדרה הראשית שלנו (/dev/sdd
).
כדי להוסיף את /dev/sdd
ל-vg00
, עשה
# vgextend vg00 /dev/sdd
אם תריץ vgdisplay vg00
לפני ואחרי הפקודה הקודמת, תראה את ההגדלה בגודל ה-VG:
# vgdisplay vg00

עכשיו תוכל להשתמש במרווח החדש שהתווסף כדי לשנות את ה-LVs הקיימים על פי צרכיך, או ליצור נוספים כפי הצורך.
עיגוב נפחים לוגיים בהפעלה ועל פי דרישה
כמובן שלא היה טעם ליצור נפחים לוגיים אם אנו לא מתכוונים להשתמש בהם בפועל! כדי לזהות נפח לוגי בצורה טובה יותר, נצטרך לגלות מהו UUID
שלו (מאפיין שאינו משתנה שמזהה באופן ייחודי מכשיר אחסון שעבר עיבוד).
כדי לעשות זאת, יש להשתמש ב־blkid ולאחר מכן לציין את הנתיב לכל מכשיר:
# blkid /dev/vg00/vol_projects # blkid /dev/vg00/vol_backups

צור נקודות דחיפה עבור כל LV:
# mkdir /home/projects # mkdir /home/backups
והוסף את הרשומות התואמות ב־/etc/fstab
(ודאו שאתה משתמש ב־UUIDs שנמצאו לפני כן):
UUID=b85df913-580f-461c-844f-546d8cde4646 /home/projects ext4 defaults 0 0 UUID=e1929239-5087-44b1-9396-53e09db6eb9e /home/backups ext4 defaults 0 0
לאחר מכן שמור את השינויים והחבר את ה־LVs:
# mount -a # mount | grep home

כאשר מדובר בשימוש באמת ב־LVs, עליך להקצות הרשאות ugo+rwx
באופן תקין כפי שמוסבר ב־חלק 8 – ניהול משתמשים וקבוצות ב־Linux בסדרת זו.
סיכום
במאמר זה הצגנו את ניהול נפח לוגי, כלי רב עוצמתי לניהול מכשירי אחסון המספק גמישות. כאשר משולב עם RAID (שנסבר ב־חלק 6 – יצירה וניהול RAID ב־Linux בסדרת זו), ניתן ליהנות לא רק מגמישות (מציעה LVM) אלא גם מעמידות (מציעה RAID).
בסוג זה של הגדרה, בדרך כלל יש למצוא LVM מעל RAID, כלומר, להגדיר את RAID תחילה ורק לאחר מכן להגדיר את LVM מעליו.
אם יש לך שאלות בנוגע למאמר זה, או הצעות לשיפורו, נשמח לשמוע אותך דרך טופס התגובה למטה.
Source:
https://www.tecmint.com/manage-and-create-lvm-parition-using-vgcreate-lvcreate-and-lvextend/