إن إدارة المجلدات المنطقية (LVM) هي أداة مفيدة لإدارة مجلدات التخزين الكبيرة في أوبونتو. إنها تتيح لك إنشاء مجلدات منطقية يمكن أن تمتد عبر أجهزة تخزين فيزيائية متعددة. هذا يوفر لك مرونة في تخصيص مساحة القرص تتجاوز قيود الأقسام المادية للقرص.
في هذا الدليل، سنغطي الأساسيات لإعداد وإدارة مجلدات LVM على أوبونتو 18.04 و 20.04 و 22.04.
نظرة عامة على LVM
بعض المصطلحات والمفاهيم الرئيسية المتعلقة بـ LVM:
- المجلدات الفيزيائية (PV) – أجهزة التخزين المادية الأساسية التي توفر السعة الفعلية للتخزين، مثل الأقسام على أقراص الأتش دي أو SSD.
- مجموعات المجلدات (VG) – مجموعة من المجلدات الفيزيائية المجمعة معًا. هذا يتيح دمج أجهزة التخزين الفيزيائية في مجموعات تخزين أكبر.
- المجلدات المنطقية (LV) – أجهزة كتل افتراضية يتم تخصيص المساحة لها من مجموعة المجلدات الأساسية. يمكنك إنشاء وتغيير حجم وحذف المجلدات المنطقية حسب الحاجة.
- الامتدادات – قطع صغيرة متساوية الحجم من المساحة المتجاورة على مجلد فيزيائي. عند تخصيصها لمجلد منطقي، فإنها توفر مساحة تخزين للمجلد.
الميزة الرئيسية لـ LVM هي التجريد بين الأقراص الفيزيائية والمجلدات المنطقية. باستخدام LVM، لا داعي للقلق بشأن تفاصيل التخزين الفيزيائي. يمكنك تغيير حجم المجلدات المنطقية وأخذ لقطات منها ونقلها دون الحاجة إلى تعديل الأجهزة الفيزيائية الأساسية.
تثبيت LVM
للبدء باستخدام LVM، تحتاج أولاً إلى تثبيت حزمة lvm2:
$ sudo apt install lvm2
سيثبّت هذا كل الأدوات اللازمة لإدارة مجلدات LVM.
إنشاء المجلدات الفيزيائية
الخطوة الأولى هي تهيئة الأقراص أو الأقسام كمجلدات فيزيائية (PV) لاستخدامها من قبل LVM.
على سبيل المثال، لتهيئة القسم /dev/sdb1
كمجلد فيزيائي LVM:
$ sudo pvcreate /dev/sdb1
Output:
Physical volume "/dev/sdb1" successfully created
يمكنك التحقق من المجلدات الفيزيائية المتوفرة:
$ sudo pvs
Output:
PV VG Fmt Attr PSize PFree
/dev/sdb1 lvm2 --- <223.57G <223.57G
سيسرد هذا كل المجلدات الفيزيائية التي يمكن لـ LVM الوصول إليها.
إنشاء مجموعات المجلدات
بعد ذلك، تحتاج إلى دمج واحد أو أكثر من المجلدات الفيزيائية في مجموعة مجلدات (VG). سيتم تخصيص مساحة VG من المجلدات الفيزيائية المدمجة.
على سبيل المثال، لإنشاء مجموعة مجلدات تُسمى data
باستخدام المجلد الفيزيائي /dev/sdb1
:
$ sudo vgcreate data /dev/sdb1
Output:
Volume group "data" successfully created
يمكنك التحقق من مجموعات المجلدات المتوفرة:
$ sudo vgs
Output:
VG #PV #LV #SN Attr VSize VFree
data 1 0 0 wz--n- <223.57G <223.57G
اعرض تفاصيل مجموعة مجلدات محددة:
$ sudo vgdisplay data
Output:
--- Volume group ---
VG Name data
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size <223.57 GiB
PE Size 4.00 MiB
Total PE 57313
Alloc PE / Size 0 / 0
Free PE / Size 57313 / <223.57 GiB
إنشاء المجلدات المنطقية
بمجرد أن يكون لديك مجموعة مجلدات، يمكنك إنشاء مجلدات منطقية (LV) داخل تلك المجموعة.
على سبيل المثال، لإنشاء مجلد منطقي بحجم 10 غيغابايت يُدعى logs
:
$ sudo lvcreate -L 10G -n logs data
Output:
Logical volume "logs" created.
هذا ينشئ مجلدًا منطقيًا بحجم 10 غيغابايت يُدعى logs
في مجموعة المجلدات data
.
لإنشاء مجلد منطقي يستخدم كل المساحة الحرة المتبقية في مجموعة المجلدات:
$ sudo lvcreate -l 100%FREE -n apps data
Output:
Logical volume "apps" created.
تحقق من المجلدات المنطقية:
$ sudo lvs
Output:
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
apps data -wi-a----- <213.57G
logs data -wi-a----- 10.00G
يمكنك أيضًا رؤية المسار الكامل للمجلدات المنطقية المنشأة باستخدام:
$ sudo lvdisplay
Output:
--- Logical volume ---
LV Path /dev/data/apps
LV Name apps
VG Name data
LV UUID XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
LV Write Access read/write
LV Creation host, time ubuntu-server, 2023-07-26 15:37:11 +0200
LV Status available
# open 0
LV Size <213.57 GiB
Current LE 54698
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2
سيتم تخطيط المجلدات المنطقية إلى أجهزة /dev/VG/LV
التي يمكن تنسيقها وتوصيلها، مثل الأقسام الاعتيادية.
تنسيق وتوصيل المجلدات المنطقية
لاستخدام المجلدات المنطقية LVM، يجب تنسيقها بنظام ملفات مثل أي جهاز كتلة آخر.
على سبيل المثال، لتنسيق المجلد المنطقي logs
إلى ext4 وتوصيله في /var/log
:
$ sudo mkfs.ext4 /dev/data/logs
$ sudo mkdir /var/log
$ sudo mount /dev/data/logs /var/log
لتوصيل هذا تلقائيًا عند إعادة التشغيل، أضف هذا إلى /etc/fstab
:
/dev/data/logs /var/log ext4 defaults 0 0
افعل الشيء نفسه لأي مجلدات منطقية أخرى تريد استخدامها بشكل دائم.
توسيع المجلد المنطقي
إحدى مزايا LVM هي إمكانية توسيع المجلدات المنطقية بسهولة.
على سبيل المثال، لتوسيع المجلد المنطقي logs
بمقدار 5 غيغابايت، قم أولاً بتوسيع مجموعة المجلدات بمقدار 5 غيغابايت:
$ sudo lvextend -L +5G /dev/data/logs
Output:
Size of logical volume data/logs changed from 10.00 GiB (2560 extents) to 15.00 GiB (3840 extents).
Logical volume data/logs successfully resized.
ثم قم بتغيير حجم نظام الملفات ليطابق ذلك:
$ sudo resize2fs /dev/data/logs
Output:
resize2fs 1.45.5 (07-Jan-2020)
Filesystem at /dev/data/logs is mounted on /var/log; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/data/logs is now 153600 (4k) blocks long.
المجلد المنطقي الآن أكبر بمقدار 5 غيغابايت.
هذا أسهل بكثير من توسيع أقسام القرص، والتي تتطلب خطوات مؤلمة مثل نقل وتغيير حجم الأقسام المجاورة.
تصغير المجلد المنطقي
لتصغير مجلد منطقي، قم أولاً بتغيير حجم نظام الملفات:
$ sudo resize2fs /dev/data/logs 20G
Output:
resize2fs 1.45.5 (07-Jan-2020)
Resizing the filesystem on /dev/data/logs to 5242880 (4k) blocks.
The filesystem on /dev/data/logs is now 5242880 (4k) blocks long.
هذا يقلل نظام الملفات إلى 20 غيغابايت.
ثم قم بتقليل حجم المجلد المنطقي ليطابق ذلك:
$ sudo lvreduce -L 20G /dev/data/logs
Output:
Size of logical volume data/logs changed from 15.00 GiB (3840 extents) to 20.00 GiB (5120 extents).
Logical volume data/logs successfully resized.
المجلد المنطقي logs
الآن مصغر إلى 20 غيغابايت.
إنشاء لقطات
تتيح لك LVM إنشاء لقطات للمجلدات المنطقية. يمكن استخدام هذا لأخذ نسخ احتياطية من المجلدات.
على سبيل المثال، أنشئ لقطة للمجلد المنطقي logs
:
$ sudo lvcreate --size 10G --snapshot --name logs-snap /dev/data/logs
Output:
Logical volume "logs-snap" created.
سينشئ هذا لقطة تُدعى logs-snap
وهي نسخة من logs
في الوقت الذي تم فيه أخذ اللقطة.
في البداية، لا تستخدم اللقطة أي مساحة، ولكن مع تغيّر المجلد الأصلي، ستنمو اللقطة لتخزن الكتل القديمة مع استبدالها.
يمكن توصيل اللقطة والنسخ الاحتياطي منها أو استعادة البيانات منها مثل أي مجلد عادي.
مراقبة استخدام LVM
من المهم مراقبة مجموعات المجلدات والمجلدات المنطقية LVM الخاصة بك للتأكد من عدم نفاد المساحة.
لرؤية الامتدادات الفيزيائية المخصصة لكل VG:
$ sudo vgdisplay -v data
Output:
--- Volume group ---
VG Name data
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size <223.57 GiB
PE Size 4.00 MiB
Total PE 57313
Alloc PE / Size 15360 / 60.00 GiB
Free PE / Size 41953 / <163.57 GiB
لمراقبة استخدام LV:
$ sudo lvdisplay
Output:
--- Logical volume ---
LV Path /dev/data/logs
LV Name logs
VG Name data
LV UUID XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX
LV Write Access read/write
LV Creation host, time ubuntu-server, 2022-03-05 10:17:11 +0200
LV Status available
# open 0
LV Size 20.00 GiB
Current LE 5120
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
--- Logical volume ---
LV Path /dev/data/apps
LV Name apps
VG Name data
LV UUID XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX
LV Write Access read/write
LV Creation host, time ubuntu-server, 2023-07-26 15:37:11 +0200
LV Status available
# open 0
LV Size <193.57 GiB
Current LE 49408
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
يمكنك أيضًا تثبيت أداة مراقبة LVM مثل lvm2 snarf
للحصول على تنبيهات عند تجاوز الاستخدام لعتبات معينة.
مزايا LVM
بعض المزايا الرئيسية لـ LVM:
- المرونة في توسيع وتصغير المجلدات المنطقية حسب الحاجة، بدون قيود الأقسام.
- سهولة أخذ لقطات ونسخ احتياطية للمجلدات.
- دمج التخزين من أجهزة متعددة في مجموعة مجلدات مشتركة.
- تهجير البيانات عبر نقل المجلدات المنطقية بين أجهزة التخزين.
- تخصيص مجلدات منطقية مقسمة، مرآتة أو مشفرة.
بشكل عام، يوفر LVM إدارة مرنة وقوية للتخزين في خوادم أوبونتو الخاصة بك. مع بعض التعلم، يمكن أن يكون مفيدًا للغاية في إدارة احتياجات التخزين الضخمة والمتزايدة.
توفر LVM طريقة قوية لإدارة التخزين على نطاق واسع والديناميكي في أوبونتو. من خلال استخدام LVM، يمكنك التعامل بفعالية مع احتياجات التخزين المتغيرة باستمرار، مع تمكين وظائف رئيسية مثل اللقطات والتخصيص الرقيق. ومع ذلك، فإنه يتطلب تعلم مفاهيم وأوامر جديدة. مع بعض الممارسة العملية، يمكن أن يصبح LVM جزءًا لا يتجزأ من كيفية نشرك وإدارة تخزين أوبونتو. عند استخدامه بشكل صحيح، يمكن أن يوفر عليك الكثير من الوقت والمتاعب مع تطور احتياجاتك. توفر المرونة في توسيع وتقليص وتهجير المجلدات بشكل ديناميكي الجهد الأولي الذي يستحق تعلم LVM.