مقدمة
إدارة الحجم المنطقي، أو LVM، هي تقنية إدارة أجهزة التخزين تمنح المستخدمين القدرة على تجميع وتجريد التخطيط الفعلي لأجهزة التخزين المكونة لإدارة مرنة. باستخدام إطار عمل نواة Linux لمحرر الأجهزة، يمكن استخدام الإصدار الحالي، LVM2، لتجميع أجهزة التخزين الحالية في مجموعات وتخصيص وحدات منطقية من المساحة المجتمعة حسب الحاجة.
المزايا الرئيسية لـ LVM هي زيادة التجريد والمرونة والتحكم. يمكن أن تحمل الأحجام المنطقية أسماء معنوية مثل “قواعد البيانات” أو “نسخة احتياطية للجذر”. يمكن تغيير حجم الأحجام أيضًا ديناميكيًا بمرور الوقت مع تغير متطلبات المساحة، وتهجينها بين الأجهزة الفعلية داخل المجموعة على نظام يعمل أو تصديرها. كما تقدم LVM ميزات متقدمة مثل إنشاء لقطات للحجم، والتشطيب، والتعكس.
في هذا الدليل، ستتعلم كيفية عمل LVM وممارسة الأوامر الأساسية للبدء بسرعة على جهاز فارغ من المعدن.
بنية ومصطلحات LVM
قبل الانغماس في الأوامر الإدارية لـ LVM، من المهم أن يكون لديك فهم أساسي لكيفية تنظيم أجهزة التخزين من قبل LVM وبعض المصطلحات التي يستخدمها.
هياكل إدارة تخزين LVM
تعمل LVM عن طريق تكديس التجريديات على أعلى الأجهزة التخزينية الفعلية. الطبقات الأساسية التي يستخدمها LVM، بدءًا من الأكثر بدائية، هي:
-
الأقراص المادية: البادئة المستخدمة لأقراص المادية في أدوات LVM هي
pv...
. تُعتبر هذه الأقراص أجهزة كتلية فعلية أو أجهزة مماثلة للأقراص (على سبيل المثال، أجهزة أخرى تم إنشاؤها بواسطة مُعدل الأجهزة، مثل مجموعات RAID) وتُستخدم من قبل LVM كمواد بناء خام للمستويات الأعلى من التجريد. الأقراص المادية هي أجهزة تخزين عادية. يقوم LVM بكتابة رأس إلى الجهاز لتخصيصه للإدارة. -
مجموعات الأقراص: البادئة المستخدمة لمجموعات الأقراص في أدوات LVM هي
vg...
.
يقوم LVM بجمع الأقراص المادية في مجموعات تخزين تُعرف باسم مجموعات الأقراص. تجريد مجموعات الأقراص الخصائص الخاصة بالأجهزة الأساسية وتعمل كجهاز منطقي موحد بسعة تخزين مجتمعة للأقراص المادية المكونة. -
الأحجام المنطقية: البادئة التي تستخدمها أداة LVM للأحجام المنطقية هي
lv...
، وقد تبدأ الأدوات العامة لـ LVM بـlvm...
. يمكن تقسيم مجموعة الأحجام إلى أي عدد من الأحجام المنطقية. الأحجام المنطقية مكافئة وظيفيًا للأقسام على القرص الفعلي، ولكن مع مرونة أكبر بكثير. الأحجام المنطقية هي المكون الأساسي الذي سيتفاعل معه المستخدمون والتطبيقات.
يمكن استخدام LVM لدمج الأقراص المادية في مجموعات الأحجام لتوحيد مساحة التخزين المتاحة على النظام. بعد ذلك، يمكن للمسؤولين تقسيم مجموعة الأحجام إلى أحجام منطقية تُعتبر أقسامًا مرنة.
فهم الامتدادات
كل حجم داخل مجموعة حجوم يتم تقسيمه إلى قطع صغيرة ثابتة الحجم تسمى \textit{الممتدات}. يتم تحديد حجم الممتدات من قبل مجموعة الأقسام. جميع الأحجام داخل المجموعة يتوافق حجم الممتدات فيها.
الممتدات على الأقراص الفعلية تُعرف بـ \textit{الممتدات الفعلية}، بينما تُعرف ممتدات الأقراص المنطقية بـ \textit{ممتدات منطقية}. تعتبر الحجوم المنطقية عبارة عن تطابق يحافظ نظام إدارة الحجوم (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 برسم الخريطة والتعامل مع هذا بالنيابة عنك. يتعين عليك فقط تحديد حجم الحجم واسمه.
في المثال التالي، ستقوم بإنشاء أربعة أحجام لوجيكية منفصلة من مجموعة الأحجام:
- حجم “المشاريع” بحجم 10 جيجا
- حجم “www” بحجم 5 جيجا للمحتوى الويب
- حجم “db” بحجم 20 جيجا لقاعدة البيانات
- حجم “مساحة العمل” الذي سيملأ المساحة المتبقية
لإنشاء أحجام لوجيكية، استخدم أمر 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
في هذا المثال، أضفت العمودين الأخيرين إلى الإخراج. يشير إلى مقدار المساحة المخصصة لأحجامك اللوجيكية.
الآن يمكنك تخصيص بقية المساحة في مجموعة الأصول إلى حجم “مساحة العمل” باستخدام العلم “-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
تم إنشاء حجم “مساحة العمل” واستخدام مجموعة الأصول “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 مع Ubuntu 18.04 .