البحث في الموقع
المحتوى عن 'lvm'.
-
سنقدم في هذا المقال دليلًا شاملًا لإدارة الحجوم المنطقية LVM في لينكس، حيث سنتعرف على فكرة LVM ومكوناتها والفائدة من تطبيقها، وسنغطي الجانبين النظري والعملي عبر أمثلة عن إنشاء وإدارة الحجوم المنطقية في لينكس، حيث سيكون لديك في نهاية هذا المقال المعلومات الكافية للتطبيق العملي على الحجوم المنطقية. ما هي إدارة الحجوم المنطقية LVM في لينكس LVM هي اختصار لإدارة الحجوم المنطقية أو Logical Volume Management، وهي طريقة بديلة لإدارة أنظمة التخزين عن الطرق التقليدية المُعتمدة على التقسيم، فبدلًا من إنشاء الأقسام على الأقراص يمكن بسهولة إنشاء حجوم منطقية وتركيبها على نظام الملفات كما نفعل عند تقسيم القرص، لكن الاستثناء الوحيد على ذلك هو عدم إمكانية تركيب تلك الأحجام المنطقية على المسار /boot واعتماد أحدها كقرص إقلاع، وذلك لأن محمل الإقلاع GRUB الشائع استخدامه في لينكس لا يدعم قراءة الحجوم المنطقية، ومحمل الإقلاع البديل له systemd-boot لن نتمكن من استخدامه أيضًا لأنه يدعم قراءة أنظمة الملفات من النوع vfat فقط. مكونات LVM يوجد ثلاث مكونات رئيسية ضمن LVM: الحجوم الفيزيائية مجموعات الحجوم الحجوم المنطقية اثنان فقط من تلك المكونات يقابلها نظير في نظام التقسيم التقليدي، الجدول التالي يوضح هذا التقابل: table { width: 100%; } thead { vertical-align: middle; text-align: center; } td, th { border: 1px solid #dddddd; text-align: right; padding: 8px; text-align: inherit; } tr:nth-child(even) { background-color: #dddddd; } نظام تقسيم القرص LVM الأقسام الحجوم المنطقية الأقراص مجموعات الحجوم أما الحجوم الفيزيائية فليس لها نظير مقابل وسنتحدث عنها. لماذا نستخدم LVM؟ الميزة الأساسية من استخدام LVM هي سهولة تغيير حجم أو مجموعة الحجم، فهي توفر طبقة استخدام مجردة عالية المستوى تجعلنا نركز في إدارة مجمع التخزين المركزي فقط، وتتولى هي إدارة الأمور منخفضة المستوى مثل الأقسام وتفاصيل الأقراص الخام، ستلاحظ سهولة استخدام LVM في حال حاولت مسبقًا تقسيم قرص ما واختبرت الصعوبة في ذلك. تحضيرات المثال العملي سنركز في هذا المقال على الشق العملي بجانب النظري، وسننفذ الأوامر أثناء شرحها، لأن التطبيق العملي أفضل وسيلة للتعلم، لذا وفي حال أردت التنفيذ يفضل استخدام آلة افتراضية، لهذا يمكنك الاستفادة من ملف الإعدادات Vagrantfile لتشغيل آلة افتراضية خفيفة باستخدام برنامج VirtualBox، حيث تملك هذه الآلة ثلاث أقراص إضافية يمكن استخدامها لتطبيق الأمثلة في هذا المقال، ويمكنك إنشاء مجلد جديد في مكان ما على جهازك وحفظ المحتوى التالي في ملف بالاسم Vagrantfile: Vagrant.configure "2" do |config| config.vm.box = "ubuntu/focal64" config.vm.hostname = "lvm" 3.times {|i| config.vm.disk :disk, size: "5GB", name: "drive-#{i}"} config.vm.provider :virtualbox do |machine| machine.memory = 1024 machine.cpus = 1 machine.customize ["modifyvm", :id, "--cpuexecutioncap", "50"] end end # vi: set ft=ruby أو يمكن جلب محتوى هذا الملف باستخدام wget عبر تنفيذ الأمر التالي: wget https://gist.githubusercontent.com/debdutdeb/98ed1b6aef36885d07ce8247188dfd5e/raw/524259da5dfa2d8750883d01c8159829729e224d/Vagrantfile يجب التأكد أولًا من تثبيت Vagrant و VirtualBox بعد حفظ ملف Vagrantfile نُعين قيمة متغير البيئة VAGRANT_EXPERIMENTAL إلى disks عبر تنفيذ الأمر: export VAGRANT_EXPERIMENTAL=disks أخيرًا يمكن تشغيل الآلة الافتراضية باستخدام الأمر التالي مع التأكد من تعديل مسار العمل الحالي إلى المجلد الحاوي على ملف Vagrantfile: vagrant up بعد تشغيل الآلة يمكننا الدخول إليها عبر SSH بتنفيذ الأمر vagrant ssh لتنفيذ الأوامر في هذا المقال، وبعد الانتهاء يمكنك حذف الآلة عبر تنفيذ الأمر vagrant destroy أيضًا من داخل المجلد الحاوي على الملف Vagrantfile. تثبيت LVM قبل تنفيذ الأوامر يجب أولًا تثبيت الحزمة lvm2، وعادة تأتي تلك الحزمة مثبتة مسبقًا في معظم التوزيعات الحديثة خصوصًا المبنية على أوبنتو، ولكن يجب التأكد من تثبيتها أولًا، لذا يمكنك مراجعة توثيق التوزيعة التي تعمل منها للتحقق من طريقة تثبيت الحزمة lvm2. المثال العملي على استخدام LVM بنينا سابقًا آلة افتراضية تملك سعة تخزين 40 جيجابايت في الجذر، وتملك ثلاث أقراص خارجية سعة كل منها 5 جيجابايت وهي ما يهمنا، وتلك السعة عشوائية ولا تعني شيئًا محددًا. vagrant@lvm:~$ lsblk -o name,size,fstype NAME SIZE FSTYPE loop0 55.5M squashfs loop1 32.3M squashfs loop2 70.4M squashfs sda 40G └─sda1 40G ext4 sdb 10M iso9660 sdc 5G sdd 5G sde 5G كما هو واضح من الخرج السابق الأقراص التي سنستخدمها هي sdc و sdd و sde، تذكر أن المكونات الرئيسية الثلاث لـ LVM هي: الحجوم الفيزيائية مجموعات الحجوم الحجوم المنطقية سنشرح تلك المكونات بالترتيب. 1. الحجوم الفيزيائية أول مكون يجب معرفته في LVM هو الحجوم الفيزيائية، وهي الوحدة الأساسية التي تبني طبقة التجريد العليا للحجوم المنطقية، ببساطة تُمثل الحجوم الفيزيائية الوحدات المنطقية لنظام LVM، ويمكن للحجم المنطقي أن يمثل أي شيء، مثل قرص أو قسم من قرص، حيث أن إنشاء وتهيئة حجم فيزيائي يمثلان الأمر نفسه، فكل منهما يعني أننا نٌحضِّر الوحدات الأساسية مثل الأقسام أو الأقراص وغيرها لعمليات لاحقة عليها، ستتوضح هذه الفكرة لاحقًا. الأدوات: جميع أدوات إدارة الحجوم الفيزيائية تبدأ بالأحرف pv وهي اختصار للأحرف الأولى من حجم فيزيائي Physical Volume، مثل pvcreate و pvchange و pvs و pvdisplay وغيرها. كل الأوامر التي سنذكرها من الآن وصاعدًا مدمرة أي لا يمكن الرجوع عنها، لذا إذا لم تكن تطبق تلك الأوامر ضمن بيئة افتراضية أو خادم ضمن السحابة لا يحوي على بيانات مهمة مخزنة ضمنه أو بيانات يمكنه له الوصول إليها، ننصح بالتوقف عن التطبيق وأخذ الحذر. إنشاء حجوم فيزيائية يمكن إنشاء حجوم فيزيائية باستخدام قرص خام غير مقسم بعد أو باستخدام الأقسام الموجودة مسبقًا، وكما ذكرنا سابقًا لدينا ثلاث محركات أقراص خارجية متصلة بالآلة الافتراضية، لنبدأ بالقرص /dev/sdc، حيث يمكن استخدام الأمر pvcreate لإنشاء حجم فيزيائي، وذلك فقط عبر تمرير اسم الجهاز له كالتالي: sudo pvcreate /dev/sdc ليظهر لنا خرج مشابه للتالي: vagrant@lvm:~$ sudo pvcreate /dev/sdc Physical volume "/dev/sdc" successfully created. سنقسم الآن الجهاز /dev/sdd إلى أقسام متساوية، ويمكن استخدام العديد من الأدوات لتنفيذ ذلك مثل cfdisk و parted و fdisk وغيرها: vagrant@lvm:~$ lsblk -o name,size,fstype | grep sdd sdd 5G ├─sdd1 2.5G └─sdd2 2.5G يمكن الآن إنشاء أكثر من حجم فيزيائي من تلك الأقسام بخطوة واحدة وذلك عبر تمرير أسماء تلك الأجهزة معًا إلى الأمر pvcreate كالتالي: sudo pvcreate /dev/sdd1 /dev/sdd2 بتنفيذ الأمر السابق يتم إنشاء القسمين معًا: vagrant@lvm:~$ sudo pvcreate /dev/sdd1 /dev/sdd2 Physical volume "/dev/sdd1" successfully created. Physical volume "/dev/sdd2" successfully created. عرض الحجوم الفيزيائية المتاحة لعرض الحجوم الفيزيائية المتاحة يمكن استخدام أحد الأوامر الثلاثة التالية pvscan و pvs و pvdisplay، دون تمرير أي معاملات أو خيارات لتلك الأوامر كالتالي: تنفيذ الأمر pvscan: vagrant@lvm:~$ sudo pvscan PV /dev/sdc lvm2 [5.00 GiB] PV /dev/sdd1 lvm2 [2.50 GiB] PV /dev/sdd2 lvm2 [<2.50 GiB] Total: 3 [<10.00 GiB] / in use: 0 [0 ] / in no VG: 3 [<10.00 GiB] تنفيذ الأمر pvs: vagrant@lvm:~$ sudo pvs PV VG Fmt Attr PSize PFree /dev/sdc lvm2 --- 5.00g 5.00g /dev/sdd1 lvm2 --- 2.50g 2.50g /dev/sdd2 lvm2 --- <2.50g <2.50g تنفيذ الأمر pvdisplay: vagrant@lvm:~$ sudo pvdisplay "/dev/sdc" is a new physical volume of "5.00 GiB" --- NEW Physical volume --- PV Name /dev/sdc VG Name PV Size 5.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID SzSkdD-xKYa-4y7P-teyU-481p-uiQ8-qieMJJ "/dev/sdd1" is a new physical volume of "2.50 GiB" --- NEW Physical volume --- PV Name /dev/sdd1 VG Name PV Size 2.50 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID 553Iy4-JJ21-LfIw-udtO-j9Cd-7gFS-iXXFVS "/dev/sdd2" is a new physical volume of "<2.50 GiB" --- NEW Physical volume --- PV Name /dev/sdd2 VG Name PV Size <2.50 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID bf7ghn-QkPm-EUdp-GdyW-shMG-5sMn-VhNtYB كما نلاحظ من الخرج تظهر لنا الحجوم الفيزيائية المتاحة مع معلومات مفيدة خاصة بها. إزالة حجم فيزيائي يمكن إزالة حجم فيزيائي باستخدام الأمر pvremove، وذلك بشكل مشابه لاستخدام الأمر pvcreate، حيث نمرر أسماء الأجهزة التي هيئناها كحجوم فيزيائية إلى الأمر pvremove، وسنطبق ذلك عبر إزالة الجهاز /dev/sdd2 من قائمة الحجوم كالتالي: sudo pvremove /dev/sdd2 الخرج سيكون مطابقًا للتالي: vagrant@lvm:~$ sudo pvremove /dev/sdd2 Labels on physical volume "/dev/sdd2" successfully wiped. يمكن التأكد من عملية الإزالة بعرض قائمة الحجوم الفيزيائية المتاحة عبر تنفيذ الأمر sudo pvs: vagrant@lvm:~$ sudo pvs PV VG Fmt Attr PSize PFree /dev/sdc lvm2 --- 5.00g 5.00g /dev/sdd1 lvm2 --- 2.50g 2.50g نلاحظ عدم ظهور الحجم /dev/sdd2 أي تمت إزالته. 2. مجموعات الحجوم مجموعات الحجوم تُعبّر عن مجموعة من الحجوم الفيزيائية، وهي الطبقة الثانية من التجريد التي يوفرها LVM، مجموعات الحجوم هي مجمع التخزين الذي يدمج معًا سعات التخزين لعدة أجهزة. الأدوات: تبدأ أسماء جميع أدوات مجموعة الحجم بالأحرف vg وهي الأحرف الأولى من مجموعة حجم Volume Group، مثل vgcreate و vgs و vgrename وغيرها. إنشاء مجموعات الحجم يمكن إنشاء مجموعات الحجم باستخدام الأمر vgcreate، حيث نمرر له كمعامل أول اسم يتم إسناده لمجموعة الحجم، والمعاملات البقية هي الحجوم الفيزيائية التي سنضمها إلى مجمع التخزين: sudo vgcreate lvm_tutorial /dev/sdc /dev/sdd1 مثال: vagrant@lvm:~$ sudo vgcreate lvm_tutorial /dev/sdc /dev/sdd1 Volume group "lvm_tutorial" successfully created عرض مجموعات الحجم بشكل مشابه لطريقة عرض الحجوم الفيزيائية يمكننا عرض مجموعات الحجم باستخدام أوامر مختلفة تُقدِّم كل منها درجة من مختلفة التفاصيل بعد تنفيذها، أوامر مثل vgdisplay و vgscan و vgs: تنفيذ الأمر vgs: vagrant@lvm:~$ sudo vgs VG #PV #LV #SN Attr VSize VFree lvm_tutorial 2 0 0 wz--n- 7.49g 7.49g تنفيذ الأمر vgscan: vagrant@lvm:~$ sudo vgscan Found volume group "lvm_tutorial" using metadata type lvm2 تنفيذ الأمر vgdisplay: vagrant@lvm:~$ sudo vgdisplay --- Volume group --- VG Name lvm_tutorial System ID Format lvm2 Metadata Areas 2 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 2 Act PV 2 VG Size 7.49 GiB PE Size 4.00 MiB Total PE 1918 Alloc PE / Size 0 / 0 Free PE / Size 1918 / 7.49 GiB VG UUID LYVE9P-vY0G-OAW6-an8q-yfBx-rrB1-YU61m1 عرض الحجوم الفيزيائية المرتبطة بمجموعة حجم معينة يمكننا عرض الحجوم الفيزيائية المرتبطة بمجموعة حجم معينة عبر تنفيذ الأمر التالي: sudo pvdisplay -S vgname=<volume_group_name> -C -o pv_name مثال: vagrant@lvm:~$ sudo pvdisplay -S vgname=lvm_tutorial -C -o pv_name PV /dev/sdc /dev/sdd1 يمكن أيضًا إظهار عدد الحجوم الفيزيائية كالتالي: sudo vgdisplay -S vgname=<volume_group_name> -C -o pv_count مثال: vagrant@lvm:~$ sudo vgdisplay -S vgname=lvm_tutorial -C -o pv_count #PV 3 توسيع مجموعة حجم توسيع مجموعة حجم يعني إضافة حجوم فيزيائية إضافية إلى تلك المجموعة، حيث يمكن استخدام الأمر vgextend لتنفيذ ذلك، وصيغة تنفيذ هذا الأمر بسيطة وهي: vgextend <volume_group> <physical_volume1> <physical_volume2> .... لننفذ ذلك بتوسيع المجموعة lvm_tutorial وإضافة الحجم /dev/sdd2 لها. sudo vgextend lvm_tutorial /dev/sdd2 لاحظ خرج الأمر التالي: vagrant@lvm:~$ sudo vgextend lvm_tutorial /dev/sdd2 Physical volume "/dev/sdd2" successfully created. Volume group "lvm_tutorial" successfully extended أزلنا في فقرة سابقة الجهاز /dev/sdd2 من الحجم الفيزيائي، لذا قبل إضافة أي جهاز إلى مجموعة الحجم يجب تهيئته كحجم فيزيائي أولًا، ليتمكن LVM من إدارته كقسم من المجموعة، لذا جهّز الأمر vgextend لنا الجهاز /dev/sdd2 كحجم فيزيائي قبل إضافته إلى المجموعة، وللتأكد يمكننا الآن عرض الحجوم الفيزيائية المرتبطة بمجموعة حجم هذه: sudo pvdisplay -S vgname=lvm_tutorial -C -o pv_name الخرج: vagrant@lvm:~$ sudo pvdisplay -S vgname=lvm_tutorial -C -o pv_name PV /dev/sdc /dev/sdd1 /dev/sdd2 نلاحظ كيف تم إضافة الجهاز /dev/sdd2 إلى قائمة الأجهزة المرتبطة بالمجموعة كما هو متوقع. تقليص مجموعة حجم على عكس عملية توسيع مجموعة حجم، فإن تقليص مجموعة حجم تعني إزالة حجم فيزيائي أو أكثر من تلك المجموعة، حيث يمكننا استخدام الأمر vgreduce لتنفيذ ذلك، وصيغة الأمر تكون كالتالي: vgreduce <vgname> <physical_volume1> <physical_volume2> .... لنجرب إزالة الحجوم الفيزيائية /dev/sdc و /dev/sdd1 كالتالي: sudo vgreduce lvm_tutorial /dev/sdc /dev/sdd1 مثال: vagrant@lvm:~$ sudo vgreduce lvm_tutorial /dev/sdc /dev/sdd1 Removed "/dev/sdc" from volume group "lvm_tutorial" Removed "/dev/sdd1" from volume group "lvm_tutorial" لن نتمكن من تقليص مجموعة الحجم في حال كان يوجد ضمنها أي حجوم منطقية فعالة، والآن نعرض قائمة الحجوم الفيزيائية الموجودة: sudo pvdisplay -S vgname=lvm_tutorial -C -o pv_name الخرج: vagrant@lvm:~$ sudo pvdisplay -S vgname=lvm_tutorial -C -o pv_name PV /dev/sdd2 نلاحظ كيف تم إزالة الحجمين الفيزيائيين من المجموعة، لكننا سنحتاج لوجود تلك الحجوم ضمن المجموعة في الأمثلة لاحقة، لذا سنعيدها إلى المجموعة مجددًا بتنفيذ الأمر: sudo vgextend lvm_tutorial /dev/sdc /dev/sdd1 إزالة مجموعة حجم يمكن إزالة حجم منطقي باستخدام الأمر vgremove كالتالي: sudo vgremove lvm_tutorial لا تنفذ الأمر حاليًا كي لا تضطر لإعادة إنشاء مجموعة الحجم مجددًا، لكن يمكنك اختبار تنفيذ هذا الأمر في نهاية المقال إذا أردت. 3. الحجوم المنطقية وهي ما نتعامل معه في أغلب الوقت، الحجم المنطقي يشبه القسم، لكن الفرق بينهما أن الأقسام تُبنى فوق القرص مباشرة، أما الأحجام المنطقية فهي تُبنى فوق مجموعة الحجم، وهي تمكننا من: تنسيق الحجم المنطقي بأي نظام ملفات نريد. تركيبه في أي مكان نريده ضمن نظام الملفات. سنتعلم في هذا القسم الأمور التالية: كيف ننشئ الحجوم المنطقية. إجراء عمليات شائعة على الحجوم المنطقية. تعديل مساحة حجم منطقي. إزالة حجم منطقي. الأدوات: تبدأ أسماء جميع أدوات الحجوم المنطقية بالأحرف vl وهي الأحرف الأولى من حجم منطقي Logical Volume، مثل lvcreate و lvs و lvreduce وغيرها. إنشاء حجوم منطقية يمكن إنشاء الحجوم المنطقية باستخدام الأمر lvcreate، وصيغة استخدامه هي كالتالي: sudo lvcreate -L <size> -n <lvname> <vgname> لنشرح أجزاء ذلك الأمر: الخيار -L يدل على الحجم الجديد للحجم المنطقي، حيث يمكن استخدام عدد متبوعًا بوحدة الحجم مثل "GB" للجيجابايت أو "MB" للميجابايت أو "KB" للكيلو بايت، مثال "1GB" وتعني 1 جيجابايت. الخيار -n يستخدم لتسمية الحجم المنطقي. أخيرًا سنحتاج لتمرير اسم مجموعة الحجم التي سينضم الحجم المنطقي هذا إليها، لذا يجب التأكد من أن الحجم المحدد للحجم المنطقي هذا متاح كمساحة فارغة ضمن مجموعة الحجم التي سينضم إليها. ننفذ الأمر التالي: sudo lvcreate -L 5GB -n lv1 lvm_tutorial الخرج: vagrant@lvm:~$ sudo lvcreate -L 5GB -n lv1 lvm_tutorial Logical volume "lv1" created. عمليات شائعة على حجم منطقي كما ذكرنا سابقًا يمكن وضع نظام ملفات ضمن حجم منطقي وتركيبه أيضًا في أي مكان على نظام الملفات، فبعد إنشاءه يمكننا العثور على الحجم المنطقي ضمن المسار /dev/<vgname>/<lvname>، في مثالنا سيكون الحجم متاحًا على المسار /dev/lvm_tutorial/lv1. vagrant@lvm:~$ ls -l /dev/lvm_tutorial/lv1 lrwxrwxrwx 1 root root 7 May 17 02:09 /dev/lvm_tutorial/lv1 -> ../dm-0 يمكننا استخدامه الآن كأي قسم اعتيادي، حيث يمكننا تنسيقه بتنسيق ext4 كالتالي: sudo mkfs.ext4 /dev/lvm_tutorial/lv1 وتركيبه في مكان ضمن بنية المجلدات الحالية مثل /mnt: sudo mount -t ext4 /dev/lvm_tutorial/lv1 /mnt تعديل مساحة حجم منطقي يمكن توسيع حجم منطقي باستخدام الأمر lvextend وتقليص حجمه باستخدام الأمر lvreduce، ويمكننا بدلًا من ذلك استخدام الأمر lvresize فقط لتنفيذ كلا العمليتين، أولًا نتأكد من توفر مساحة كافية في مجموعة الحجم: sudo vgs -S vgname=lvm_tutorial -o vg_free الخرج: vagrant@lvm:~$ sudo vgs -S vgname=lvm_tutorial -o vg_free VFree <4.99g بحسب الخرج السابق يتوفر لدينا مساحة كافية، لذا سنزيد الحجم بمقدار 2 جيجابايت، وتذكر بأن الحجم المنطقي لا يزال مركبًا ضمن المسار /mnt. vagrant@lvm:~$ mount | grep '/mnt' /dev/mapper/lvm_tutorial-lv1 on /mnt type ext4 (rw,relatime) باستخدام الأمر التالي يمكننا تعديل مساحة الحجم المنطقي: sudo lvresize -L +2GB lvm_tutorial/lv1 صيغة الأمر العامة تكون كالتالي: lvresize -L [+|-][Size] <vgname>/<lvname> الرموز + أو - بعد الخيار -L نضيفها بحسب العملية التي سنجريها إذا كانت زيادة أو تقليص للحجم على الترتيب، فبعد زيادة الحجم يجب تعديل حجم نظام الملفات أيضًا، فلنظام ملفات من نوع ext4 يمكن استخدام الأمر resize2fs كالتالي: sudo resize2fs /dev/lvm_tutorial/lv1 الخرج: vagrant@lvm:~$ sudo resize2fs /dev/lvm_tutorial/lv1 resize2fs 1.45.5 (07-Jan-2020) Filesystem at /dev/lvm_tutorial/lv1 is mounted on /mnt; on-line resizing required old_desc_blocks = 1, new_desc_blocks = 1 The filesystem on /dev/lvm_tutorial/lv1 is now 1835008 (4k) blocks long. لا تدعم كل أنظمة الملفات التعديل الساخن، ومن الأنظمة التي تدعم ذلك هي Ext4 و XFS، لذا ينصح باستخدامها دومًا، عملية تقليص مساحة حجم افتراضي مهمة معقدة قليلًا ولن نشرحها في هذا المقال. إزالة حجم منطقي يمكن إزالة حجم منطقي باستخدام الأمر lvremove، وصيغته تكون كالتالي: lvremove <vgname>/<lvname> بتنفيذ هذا الأمر: sudo lvremove lvm_tutorial/lv1 نحصل على الخرج: vagrant@lvm:~$ sudo lvremove lvm_tutorial/lv1 Do you really want to remove and DISCARD active logical volume lvm_tutorial/lv1? [y/n]: y Logical volume "lv1" successfully removed خاتمة يوجد الكثير من العمليات التي يمكن تنفيذها على الحجوم المنطقية والفيزيائية ومجموعات الحجوم، وهي أكثر من أن يتم حصرها ضمن مقال واحد، حيث تبقى لدينا قرص واحد داخل الآلة الافتراضية لم ننفذ عليه أي عمليات وهو /dev/sde، يمكن استخدامه للتدرب على بعض الأوامر التي شرحناها في هذا المقال، كإنشاء مجموعة حجم جديدة وتوسيع حجم مجموعة موجودة مسبقًا. ترجمة -وبتصرف- للمقال The Complete Beginner's Guide to LVM in Linux لصاحبه Debdut Chakraborty. اقرأ أيضًا مدخل إلى مدير وحدات التّخزين المنطقيّة في نظام لينكس LVM مدخل إلى مصطلحات ومفاهيم التخزين في لينكس إدارة أجهزة التخزين بآليّة LVM على أوبونتو: عرض المكوّنات.
-
تعرّفنا في الجزأين السابقيْن من هذا الدليل على كيفية عرض معلومات عن مساحات التخزين وإنشاء مساحات تخزين جديدة وتحجيمها. سنكمل في هذا الجزأ - الأخير من الدليل - ما تعلمناه سابقا ونتعرّف على المهمة الأخيرة من بين المهمّات الأساسية في إدارة التخزين بآلية LVM. تنبيه: تأكّد من أنّ الأجهزة التّي تودّ تطبيق الأوامر المذكورة في هذا الدرس عليها لا تحتوي على بيانات مُهمّة. استخدام هذه الأجهزة مع LVM سيؤدّي إلى الكتابة فوق المحتويات الحاليّة. يُفضَّل أن تختبر الخطوات المعروضة أدناه في آلة افتراضية أو على خادوم خاصّ بأغراض التجربة والاختبار. إزالة أو تقليص مُكوّنات LVM بما أن تقليص مساحة التّخزين قد يؤدي إلى فقدان البيانات، فإجراءات تقليص المساحة المتوفّرة، سواءٌ بتقليص حجم أو حذف المكوّنات، أكثر تعقيدًا من بقية المهامّ. تخفيض حجم وحدة تخزين منطقيّة لتقليص وحدة تخزين منطقيّة، يجب عليك أولا أخذ نسخة احتياطية من بياناتك. فبما أن هذه العمليّة تقلّص مساحة التّخزين المُتوفّرة فإن أي خطأ يُمكن له أن يُؤدي إلى فقدان البيانات. إذا كنت جاهزا، تأكّد من حجم المساحة المُستخدمة حاليّا: df -h المُخرج: Filesystem Size Used Avail Use% Mounted on . . . /dev/mapper/LVMVolGroup-test 4.8G 521M 4.1G 12% /mnt/test في هذا المثال، يبدو بأنّنا نستخدم حاليّا حوالي 521M من المساحة. استعمل هذه المعلومة لتحديد الحجم الذي تريد تقليص وحدة التخزين إليه. تاليّا، أزل تركيب نظام الملفّات. فعلى عكس التوسيعات، يجب عليك تقليص مساحة نظام الملفّات أثناء إزالة التركيب: cd ~ sudo umount /dev/LVMVolGroup/test بعد إزالة التركيب، تأكّد من أن نظام الملفّات في حالة جيّدة. مرّر نوع نظام الملفّات عبر الخيار -t. سنستعمل الخيار -f للتّحقّق من أن كل شيء على ما يرام حتى ولو بدا كذلك: sudo fsck -t ext4 -f /dev/LVMVolGroup/test بعد التّحقّق من سلامة نظام الملفّات، يُمكنك تقليص مساحته باستخدام الأدوات الخاصّة، في حالة Ext4، فالأمر سيكون resize2fs. مرّر الحجم النّهائي لنظام الملفّات. تنبيه: أكثر خيار أمانا هو تمرير حجم نهائي أكبر بكثير من الحجم المُستخدم حاليا. أعط نفسك مساحة أمان لتجنّب فقدان البيانات وتأكّد من إنشاء نسخ احتياطيّة. sudo resize2fs -p /dev/LVMVolGroup/test 3G حالما تنتهي العمليّة، قلّص حجم وحدة التّخزين المنطقيّة عبر تمرير نفس الحجم (3G في هذه الحالة) إلى الأمر lvresize عبر الخيار -L. sudo lvresize -L 3G LVMVolGroup/test ستستقبل تنبيها حول فقدان البيانات، إن كنت جاهزا، فاكتب y للاستمرار. بعد تقليص حجم وحدة التّخزين المنطقيّة، تحقّق من سلامة نظام الملفّات مُجدّدا: sudo fsck -t ext4 -f /dev/LVMVolGroup/test إن سار كلّ شيء على ما يرام، فستستطيع إعادة وصل نظام الملفّات بالأمر المُعتاد: sudo mount /dev/LVMVolGroup/test /mnt/test ينبغي الآن على وحدة التّخزين المنطقيّة أن تُقلّص إلى الحجم المُحدّد. حذف وحدة تخزين منطقيّة إن لم تعد بحاجة إلى وحدة تخزين منطقيّة، يُمكنك حذفها باستعمال الأمر lvremove. أولا، أزل تركيب وحدة التخزين: cd ~ sudo umount /dev/LVMVolGroup/test بعدها، احذف وحدة التخزين بالأمر التّالي: sudo lvremove LVMVolGroup/test سيُطلب منك تأكيد العمليّة، إن كنت متأكّدا من رغبتك في حذف وحدة التّخزين، فاكتب y. حذف مجموعة تخزين لحذف مجموعة تخزين كاملة، بما في ذلك جميع وحدات التّخزين المنطقيّة المتواجدة بها، استعمل الأمر vgremove. قبل حذف مجموعة تخزين، عليك حذف وحدات التّخزين بداخلها بالعمليّة أعلاه. أو على الأقل، تأكّد من إزالة تركيب جميع وحدات التّخزين بداخل المجموعة: sudo umount /dev/LVMVolGroup/www sudo umount /dev/LVMVolGroup/projects sudo umount /dev/LVMVolGroup/db بعدها يُمكنك حذف مجموعة التّخزين عبر تمرير اسمها إلى الأمر vgremove: sudo vgremove LVMVolGroup سيُطلب منك تأكيد عمليّة حذف المجموعة. إذا كانت هناك أية وحدات تخزين منطقيّة مُتبقيّة، ستُسأل عن تأكيد حذفها واحدة واحدة قبل حذف المجموعة. حذف وحدة تخزين ماديّة إن أردت إزالة وحدة تخزين ماديّة من إدارة LVM، فسيعتمد الإجراء المطلوب على ما إذا كانت الوحدة مُستخدمة من طرف LVM أو لا. إن كانت وحدة التّخزين الماديّة مُستخدَمة، سيتوجّب عليك نقل المداءات الماديّة على الجهاز إلى مكان آخر. سيتطلّب ذلك وجود وحدات تخزين ماديّة أخرى لتحتضن المداءات الماديّة. إن كنت تستعمل أنواعا مُعقّدة من وحدات التّخزين المنطقيّة، فقد يتوجّب عليك الحصول على المزيد من وحدات التّخزين الماديّة حتى ولو كانت لديك مساحة تخزين كافيّة. إن كان لديك عدد كاف من وحدات التّخزين الماديّة في مجموعة التّخزين لاحتضان المداءات الماديّة، فانقلها إلى خارج وحدة التّخزين الماديّة التي ترغب في إزالتها عبر كتابة ما يلي: sudo pvmove /dev/sda يُمكن لهذه العمليّة أن تأخذ وقتا طويلا حسب حجم وحدات التّخزين وكميّة البيانات التي يتوجب نقلها. حالما تنتقل المداءات إلى وحدات تخزين أخرى، يُمكنك حذف وحدة التّخزين الماديّة من مجموعة التّخزين عبر الأمر التّالي: sudo vgreduce LVMVolGroup /dev/sda هذه العمليّة كفيلة بإزالة وحدات التّخزين التي أُخلِيت من مجموعة التّخزين. بعد انتهاء العمليّة، يُمكنك حذف علامة وحدة التّخزين الماديّة من جهاز التّخزين عبر الأمر: sudo pvremove /dev/sda ينبغي الآن أن تتمكّن من استعمال جهاز التّخزين المُزال لأغراض أخرى أو إزالته من النّظام بالكامل. ختاما إلى هذه النّقطة، يجب أن يكون لديك فهم لكيفيّة إدارة أجهزة التّخزين على أوبونتو 16.04 مع LVM. يجب أن تعرف كيفيّة الحصول على معلومات عن مكوّنات LVM، كيفيّة استخدام LVM لتركيب نظام تخزين خاص بك، وكيفيّة تعديل وحدات التّخزين لتلبيّة حاجاتك. يُمكنك اختبار هذه المبادئ في بيئة آمنة لفهم أعمق حول آليّة عمل LVM ومكوّناته. ترجمة – بتصرّف - للمقال How To Use LVM To Manage Storage Devices on Ubuntu 16.04 لكاتبه Justin Ellingwood.
-
- لينكس
- وحدة تخزين
-
(و 3 أكثر)
موسوم في:
-
بعد أن تعرّفنا في الجزء السابق على كيفية عرض معلومات عن مختلف العناصر في LVM، سنتطرّق في هذا الجزء من الدليل إلى كيفية التحكم في هذه المكوّنات بإنشاء مكوّنات جديدة أو إعادة تحجيم (توسيع أو تقليص) مكوّنات موجودة. إنشاء أو توسيع مكوّنات LVM سنتحدّث في هذه الفقرات عن كيفيّة إنشاء وتوسيع وحدات التّخزين الماديّة والمنطقيّة وكذا مجموعات التّخزين. إنشاء وحدات تخزين ماديّة من أجهزة تخزين خام لاستعمال أجهزة التّخزين مع LVM، يجب عليها أولا أن تُعلّم على أنها وحدات تخزين ماديّة. ما يُحدّد إمكانيّة استخدام الجهاز داخل مجموعة تخزين. أولا، استعمل الأمر lvmdiskscan لإيجاد جميع أجهزة التّخزين التي يُمكن لـLVM رؤيتها واستخدامها: sudo lvmdiskscan المُخرج: /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 في المُخرج أعلاه، بتجاهل أجهزة /dev/ram*، يُمكننا رؤية الأجهزة التّي يُمكن تحويلها إلى وحدات تخزين ماديّة لـLVM. تنبيه: تأكّد من أنّ الأجهزة التّي ترغب باستعمالها مع LVM لا تحتوي على أيّة بيانات مُهمّة. استخدام هذه الأجهزة مع LVM سيؤدّي إلى الكتابة فوق المحتويات الحاليّة. إذا كنت تمتلك بيانات مهمّة على خادومك فأنشئ نسخا احتياطية قبل الاستمرار في تطبيق الدّرس. لجعل أجهزة التّخزين وحدات تخزين ماديّة خاصّة بـLVM، استعمل الأمر pvcreate. يُمكنك تمرير عدّة أجهزة في نفس الوقت: sudo pvcreate /dev/sda /dev/sdb هذا الأمر سيكتب ترويسة LVM على جميع الأجهزة الهدف لتخصيصها كوحدات تخزين LVM ماديّة. إنشاء مجموعة تخزين من وحدات التّخزين الماديّة لإنشاء مجموعة تخزين جديدة من وحدات التّخزين الماديّة، استعمل الأمر vgcreate. سيتوجّب عليك تمرير اسم للمجموعة متبوعا بوحدة تخزين ماديّة واحدة على الأقل: sudo vgcreate volume_group_name /dev/sda استبدل volume_group_name باسم من اختيارك لمجموعة التّخزين. سينشئ المثال أعلاه مجموعة تخزين انطلاقا من وحدة تخزين ماديّة واحدة فقط. يُمكنك تمرير أكثر من وحدة تخزين ماديّة عند إنشاء المجموعة إن أردت ذلك: sudo vgcreate volume_group_name /dev/sda /dev/sdb /dev/sdc عادة ستحتاج إلى مجموعة تخزين واحدة فقط لكل خادوم. بحيث يُمكنك إضافة أي مساحة تخزين إضافيّة لمنطقة مُوحّدة ثمّ تخصيص وحدات تخزين منطقيّة منها. الحاجة إلى استخدام أحجام مداءات مُختلفة من الأسباب التّي قد تدفعك إلى إنشاء أكثر من مجموعة تخزين واحدة. في العادة، لن يتوجّب عليك تحديد حجم المدى (الحجم المبدئي هو 4M ويُعدّ كافيّا لمُعظم الاستخدامات)، لكنّ إن أردت، يُمكنك تحديد حجم المداءات عند إنشاء مجموعة التّخزين باستعمال الخيار -s: sudo vgcreate -s 8M volume_group_name /dev/sda سينشئ هذا الأمر مجموعة تخزين مع حجم مداءات يُساوي 8M. إضافة وحدة تخزين ماديّة إلى مجموعة تخزين موجودة مُسبقا لتوسيع مجموعة تخزين عبر إضافة وحدات تخزين ماديّة، استخدم الأمر vgextend. يأخذ هذا الأمر مجموعة تخزين متبوعة بوحدات التّخزين الماديّة التّي ترغب بإضافتها إلى المجموعة. يُمكنك كذلك تمرير أكثر من جهاز في نفس الوقت إن أردت: sudo vgextend volume_group_name /dev/sdb ستُضاف وحدة التّخزين الماديّة إلى مجموعة التّخزين موسّعة بذلك مساحة التّخزين المُتوفّرة على المجموعة. إنشاء وحدة تخزين منطقيّة بحجم مُحدّد لإنشاء وحدة تخزين منطقيّة من مجموعة تخزين، استعمل الأمر lvcreate. حدّد حجم وحدة التّخزين المنطقيّة باستخدام الخيار -L، وحدّد اسما عبر الخيار -n، ومرّر مجموعة التّخزين الأم. على سبيل المثال، لإنشاء وحدة تخزين منطقيّة تُسمّى test من مجموعة تخزين تُسمّى LVMVolGroup، اكتب: sudo lvcreate -L 10G -n test LVMVolGroup على افتراض أنّ بمجموعة التّخزين مساحة تخزين فارغة توافق حجم وحدة التّخزين، فإنشاء وحدة التّخزين الجديدة سيتمّ بنجاح. إنشاء وحدة تخزين منطقيّة من كامل باقي المساحة الفارغة إن أردت إنشاء وحدة تخزين من باقي المساحة الفارغة على مجموعة تخزين، استعمل الأمر vgcreate مع الخيار -n لتحديد اسم لها ثمّ مرّر مجموعة التّخزين كما في السّابق. عوضا عن تمرير حجم مُعيّن، استعمل الخيار -l 100%FREE لتحديد بقيّة المساحة الفارغة في المجموعة: sudo lvcreate -l 100%FREE -n test2 LVMVolGroup إنشاء وحدات تخزين منطقيّة مع خيارات مُتقدّمة يُمكنك إنشاء وحدات تخزين منطقيّة مع خيارات مُتقدّمة كذلك. التّالي بعض من الخيارات التي يُمكن أن تأخذها بعين الاعتبار: --type: يقوم هذا الخيار بتحديد نوع وحدة التّخزين المنطقيّة ما يُحدّد كيفيّة تخصيص مساحة له. بعض من هذه الأنواع لن تكون مُتوفّرة إن لم يكن لديك الحدّ الأدنى من وحدات التّخزين الماديّة التي يتطلّبها النّوع. بعض من أكثر هذه الأنواع شيوعا هي كما يلي: linear: النّوع المبدئي. أجهزة التّخزين المُستخدمة ستُضاف بعضها على بعض واحدا تلو الآخر. striped: مُشابه لـRAID 0، تُقسّم البيانات إلى قطع صغيرة وتُنشر على شكل قوس على وحدات التّخزين الماديّة المُستعملة. ما يؤدّي إلى تحسينات في الأداء، لكن يُمكن أن يؤدي إلى زيادة في قابليّة إصابة البيانات. لتحديد هذا النّوع، يجب عليك تمرير الخيار -i ويتطلّب وحدتي تخزين ماديّتين على الأقل. raid1: إنشاء وحدة تخزين RAID 1 مُنعكسة Mirrored. مبدئيًّا، سيكون للانعكاس نُسختان، لكن يُمكنك تحديد عدد أكبر عبر الخيار -m المشروح أسفله. هذا الخيار يتطلّب وحدتي تخزين ماديّتين على الأقل. raid5: إنشاء وحدة تخزين RAID 5. يتطلّب ثلاثة وحدات تخزين ماديّة على الأقل. raid6: إنشاء وحدة تخزين RAID 6. يتطلّب أربعة وحدات تخزين ماديّة على الأقل. -m: يحدّد عدد نُسخ البيانات الإضافيّة. إن مرّرت القيمة 1 فهذا يعني بأنّ نُسخة واحدة إضافيّة من البيانات ستُصان، بحيث يكون لديك مجموعتان من نفس البيانات. -i: يُحدّد عدد الشّرائط Stripes. هذا الخيار مطلوب للنوع striped، ويُمكن أن يُؤثّر على بعض خيارات RAID الأخرى. -s: يُحدّد بأنّ أخذ لقطة يجب أن يتمّ على مُستوى وحدة التّخزين المنطقيّة الحاليّة عوضا عن إنشاء وحدة تخزين منطقيّة جديدة ومُستقلّة. سنلقي نظرة على بضعة أمثلة لهذه الخيارات لنرى حالات الاستخدام الشّائعة. لإنشاء وحدة تخزين شريطيّة Striped volume، يجب عليك تحديد شريطين على الأقل. هذه العمليّة تحتاج إلى وحدتي تخزين ماديّتين على الأقل مع مساحة تخزين متوافقة مع الحجم المُراد: sudo lvcreate --type striped -i 2 -L 10G -n striped_vol LVMVolGroup لإنشاء مساحة تخزين مُنعكسة Mirrored volume، استخدم النّوع raid1. إن أردت أكثر من مجموعتي بيانات، استعمل الخيار -m. المثال التّالي يستعمل -m 2 لإنشاء ثلاث مجموعات من البيانات (يعتبر LVM بأنّها مجموعة واحدة من البيانات مع انعكاسين). ستحتاج إلى ثلاثة وحدات تخزين ماديّة على الأقل لنجاح العمليّة: sudo lvcreate --type raid1 -m 2 -L 20G -n mirrored_vol LVMVolGroup لإنشاء لقطة لوحدة تخزين ما، يجب عليك تحديد وحدة التّخزين المنطقيّة الأصل التي ستأخذ منها اللقطة وليس كامل مجموعة التّخزين. لا تحجز اللقطات الكثير من المساحة في البدء، لكنّ حجمها يزداد كلّما أُجرِيَت تغييرات على وحدة التّخزين المنطقيّة الأصليّة. عند إنشاء لقطة ما، فالحجم المُخصّص يكون أقصى حدّ يُمكن للقطة أن تصل إليه (اللقطات التي تزيد عن هذا الحجم مُعطّلة وغير قابلة للاستخدام؛ لكن يُمكن توسيع اللقطات التي تقترب من هذا الحجم): sudo lvcreate -s -L 10G -n snap_test LVMVolGroup/test تنبيه: لإعادة وحدة تخزين إلى الحالة التي تتواجد بها اللقطة، استخدم الأمر lvconvert --merge: sudo lvconvert --merge LVMVolGroup/snap_test سيقوم هذا الأمر بإعادة اللقطة إلى الحالة التي كانت عليها عندما تمّ إنشاؤها. كما ترى، هناك العديد من الخيارات التي يُمكن لها أن تُغيّر طريقة عمل وحدة التخزين المنطقيّة بشكل كبير. زيادة حجم وحدة تخزين منطقيّة المرونة في التّعامل مع وحدات التّخزين المنطقيّة من أكثر المميّزات المتوفّرة في LVM. إذ يُمكنك بسهولة تعديل عدد أو حجم وحدات التّخزين المنطقيّة دون إيقاف النّظام. لزيادة حجم وحدة تخزين منطقيّة أنشئت مُسبقا، استعمل الأمر lvresize. مرّر قيمة إلى الخيار -L لتحديد حجم جديد. يُمكنك كذلك استخدام أحجام نسبيّة عبر الرّمز +. في هذه الحالة سيقوم LVM بإضافة الكميّة المُحدّدة إلى الحجم الكلي لوحدة التّخزين. لتعديل حجم نظام الملفّات المُستخدم على وحدة التّخزين بشكل آلي، استعمل الخيار --resizefs. لتحديد اسم صحيح لوحدة التّخزين التي ترغب بتوسيعها، سيتوجّب عليك تحديد مجموعة التّخزين، ثمّ رمز / متبوعا باسم وحدة التّخزين المنطقيّة: sudo lvresize -L +5G --resizefs LVMVolGroup/test في هذا المثال، سيتمّ زيادة 5G لكل من وحدة التّخزين test ونظام الملفّات المُستخدم. إن أردت توسيع نظام الملفّات يدويًّا، يُمكنك حذف الخيار --resizefs واستعمال أداة توسيع نظام الملفّات الخاصّة. مثلا، لو كان نظام الملفّات هو Ext4 فيُمكن أن تكتب: sudo lvresize -L +5G LVMVolGroup/test sudo resize2fs /dev/LVMVolGroup/test سيكون لهذه العمليّة نفس تأثير ما سبق. ترجمة – بتصرّف - للمقال How To Use LVM To Manage Storage Devices on Ubuntu 16.04 لكاتبه Justin Ellingwood.
-
- لينكس
- وحدة تخزين
-
(و 3 أكثر)
موسوم في:
-
مُقدّمة LVM اختصار لعبارة Logical Volume Management، عبارة عن تقنيّة لإدارة أجهزة التّخزين تُمكّن المُستخدمين من توحيد وتجريد التّخطيط الماديّ لمكونات أجهزة التّخزين، لإدارتها بسهولة ومرونة. يُمكن استعمال النّسخة الحاليّة LVM2 بالاعتماد على إطار العمل الخاصّ بربط الأجهزة في نواة لينكس لجمع أجهزة التّخزين المُتوفّرة في مجموعات وتخصيص وحدات منطقيّة Logical units من المساحة المُركّبة حسب الطّلب. سنتعرّف في هذا الدليل على كيفية استخدام LVM لإدارة أجهزة التّخزين الخاصّة بك. سنرى كيفيّة عرض معلومات حول وحدات التّخزين وأهداف مُحتملة، كيفيّة إنشاء ومحو مُختلف أنواع وحدات التّخزين، وكيفيّة تعديل وحدات تخزينيّة متواجدة عبر إعادة تخصيص حجم لها وتحويلها. سنعتمد على Ubuntu 16.04 لأمثلة على تنفيذ هذه العمليّات. المُتطلّبات لمُتابعة الدّرس، يجب أن تكون قادرا على الوصول إلى خادوم Ubuntu 16.04. ستحتاج إلى مُستخدم ذي صلاحيّات sudo مع ضبط مُسبق لتمكينه من تنفيذ مهام إداريّة، غير المستخدم الجذر root. لأخذ فكرة حول مكوّنات LVM ومبادئه ولاختبار إعداد بسيط باستخدام LVM، اتّبع درس مدخل إلى LVM قبل الشّروع في هذا الدّرس. إن كنت جاهزا، ادخل إلى خادومك باستخدام حساب المُستخدم ذي صلاحيّات sudo. ملحوظة: يُفضَّل إن كانت هذه أول مرة تتعامل فيها مع LVM أو إن لم تكن متأكّدا من ما تريد فعله أن تختبر الخطوات المعروضة في هذا الدليل في آلة افتراضية أو على خادوم خاصّ بأغراض التجربة والاختبار. قد يؤدّي تنفيذ أوامر بطريقة غير صحيحة إلى ضياع البيانات. عرض معلومات حول وحدات التّخزين الماديّة، مجموعات التّخزين، ووحدات التّخزين المنطقيّة من المُهمّ أن تكون قادرا على الحصول على معلومات حول مُختلف مُكوّنات LVM في نظامك بسهولة. لحسن الحظّ، توفّر حزمة أدوات LVM كميّة وفيرة من الأدوات لعرض معلومات حول كلّ طبقة من طبقات كومة LVM. عرض معلومات حول جميع أجهزة التّخزين الكتليّة المتوافقة مع LVM لعرض جميع أجهزة التّخزين الكتليّة التي يُمكن لـLVM إدارتها، استخدم الأمر lvmdiskscan: sudo lvmdiskscan المُخرَج: /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 بتجاهل أجهزة /dev/ram* (التي تُعتبر جزءا من قرص الذاكرة العشوائيّة في لينكس)، يُمكننا مُلاحظة الأجهزة التي يُمكن استخدامها لتشكيل وحدات تخزين ماديّة لـLVM. ستكون هذه الخطوة في الغالب أول خطوة لتحديد أجهزة تخزين لاستعمالها مع LVM. عرض معلومات عن وحدات التّخزين الماديّة تُكتَب ترويسة Header على أجهزة التّخزين لتعليمها على أنها مكوّنات يُمكن لـLVM استخدامها. الأجهزة التي تحمل ترويسة تُسمّى بوحدات التّخزين الماديّة Physical Volumes. يُمكنك عرض جميع أجهزة التّخزين الماديّة على جهازك عبر استخدام الأمر lvmdiskscan مع خيار -l، ما سيُرجع وحدات التّخزين الماديّة فقط في نتيجة تنفيذ الأمر: sudo lvmdiskscan -l المُخرج: WARNING: only considering LVM devices /dev/sda [ 200.00 GiB] LVM physical volume /dev/sdb [ 100.00 GiB] LVM physical volume 2 LVM physical volume whole disks 0 LVM physical volumes الأمر pvscan مُشابه لما سبق، إذ يبحث عن جميع وحدات التّخزين الماديّة الخاصّة بـLVM. إلّا أنّ تنسيق المُخرج مُختلف نوعا ما، إذ يعرض معلومات إضافيّة: sudo pvscan المُخرج: PV /dev/sda VG LVMVolGroup lvm2 [200.00 GiB / 0 free] PV /dev/sdb VG LVMVolGroup lvm2 [100.00 GiB / 10.00 GiB free] Total: 2 [299.99 GiB] / in use: 2 [299.99 GiB] / in no VG: 0 [0 ] إن كنت ترغب بالحصول على المزيد من المعلومات، فاستعمال الأمرين pvs وpvdisplay خيار أفضل. يتميّز الأمر pvs بقابليّة تخصيصه وإمكانيّة استخدامه لعرض المعلومات في عدّة أشكال وتنسيقات مُختلفة. ولأنّ مُخرجات الأمر قابلة للتّخصيص، فاستخدامه شائع في السكريبتات أو عند الحاجة إلى أتمتة الأمور Automation. تُوفّر المُخرجات الأساسيّة للأمر خلاصة مُفيدة مُشابهة لما سبق: sudo pvs المُخرج: PV VG Fmt Attr PSize PFree /dev/sda LVMVolGroup lvm2 a-- 200.00g 0 /dev/sdb LVMVolGroup lvm2 a-- 100.00g 10.00g لمعلومات أكثر إسهابا وقابليّة للقراءة، فالأمر pvdisplay عادة ما يكون خيارا أفضل: sudo pvdisplay المُخرج: --- Physical volume --- PV Name /dev/sda VG Name LVMVolGroup PV Size 200.00 GiB / not usable 4.00 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 51199 Free PE 0 Allocated PE 51199 PV UUID kRUOyU-0ib4-ujPh-kAJP-eeQv-ztRL-4EkaDQ --- Physical volume --- PV Name /dev/sdb VG Name LVMVolGroup PV Size 100.00 GiB / not usable 4.00 MiB Allocatable yes PE Size 4.00 MiB Total PE 25599 Free PE 2560 Allocated PE 23039 PV UUID udcuRJ-jCDC-26nD-ro9u-QQNd-D6VL-GEIlD7 كما ترى، فالأمر pvdisplay أسهل أمر للحصول على معلومات مُفصّلة عن وحدات التّخزين الماديّة. لاستكشاف المدااءات المنطقيّة المُرتبطة بكلّ وحدة تخزين، مرّر الخيار -m إلى الأمر pvdisplay: sudo pvdisplay -m المُخرج: --- Physical volume --- PV Name /dev/sda VG Name LVMVolGroup PV Size 200.00 GiB / not usable 4.00 MiB Allocatable yes PE Size 4.00 MiB Total PE 51199 Free PE 38395 Allocated PE 12804 PV UUID kRUOyU-0ib4-ujPh-kAJP-eeQv-ztRL-4EkaDQ --- Physical Segments --- Physical extent 0 to 0: Logical volume /dev/LVMVolGroup/db_rmeta_0 Logical extents 0 to 0 Physical extent 1 to 5120: Logical volume /dev/LVMVolGroup/db_rimage_0 Logical extents 0 to 5119 . . . يُمكن لهذا الأمر أن يكون مُفيدا لك عند الرّغبة في تحديد أي بيانات تتواجد في أي من الأقراص الماديّة لأغراض إداريّة. عرض معلومات عن مجموعات التّخزين Volume Groups يحتوي LVM على العديد من الأدوات التّي يُمكن بها عرض معلومات حول مجموعات التّخزين. يُستعملُ الأمر vgscan لفحص النّظام عن مجموعات التّخزين المتوفّرة. بالإضافة إلى إعادة بناء ملفّ التّخبئة Cache عند الحاجة. ويُعدّ أمرا جيّدا للاستخدام عند استيراد مجموعة تخزين إلى نظام جديد: sudo vgscan المُخرج: Reading all physical volumes. This may take a while... Found volume group "LVMVolGroup" using metadata type lvm2 المُخرج لا يُعطي الكثير من المعلومات، لكن يجب عليه أن يكون قادرا على إيجاد جميع مجموعات التّخزين على النّظام. لعرض المزيد من المعلومات، فالأمران vgs و vgdisplay مُتوفّران لذلك. تماما مثل مثيله المُخصّص لوحدات التّخزين الماديّة، فالأمر vgs مُتعدّد الاستعمالات ويُمكن له أن يعرض كميّة ضخمة من المعلومات في أشكال مُتعدّدة. ولأنّ إمكانيّة تخصيص مُخرجات الأمر عاليّة المرونة، فاستخدامه في برمجة السكريبتات والأتمتة أمر شائع. على سبيل المثال، من الأمور المُفيدة التي يُمكنك فعلها هي تخصيص المُخرج ليعرض فقط الأجهزة الماديّة ومسار وحدات التّخزين المنطقيّة: sudo vgs -o +devices,lv_path المُخرج: VG #PV #LV #SN Attr VSize VFree Devices Path LVMVolGroup 2 4 0 wz--n- 299.99g 10.00g /dev/sda(0) /dev/LVMVolGroup/projects LVMVolGroup 2 4 0 wz--n- 299.99g 10.00g /dev/sda(2560) /dev/LVMVolGroup/www LVMVolGroup 2 4 0 wz--n- 299.99g 10.00g /dev/sda(3840) /dev/LVMVolGroup/db LVMVolGroup 2 4 0 wz--n- 299.99g 10.00g /dev/sda(8960) /dev/LVMVolGroup/workspace LVMVolGroup 2 4 0 wz--n- 299.99g 10.00g /dev/sdb(0) /dev/LVMVolGroup/workspace لمُخرج أكثر إسهابا وقابليّة للقراءة، فالأمر vgdisplay عادة ما يكون خيارا أفضل. إضافة الخيار -v يُوفّر كذلك معلومات حول وحدات التّخزين الماديّة التّي تُشكّل مجموعة التّخزين، بالإضافة إلى وحدات التّخزين المنطقيّة التي تمّ إنشاءها باستخدام مجموعة التّخزين: sudo vgdisplay -v المُخرج: Using volume group(s) on command line. --- Volume group --- VG Name LVMVolGroup . . . --- Logical volume --- LV Path /dev/LVMVolGroup/projects . . . --- Logical volume --- LV Path /dev/LVMVolGroup/www . . . --- Logical volume --- LV Path /dev/LVMVolGroup/db . . . --- Logical volume --- LV Path /dev/LVMVolGroup/workspace . . . --- Physical volumes --- PV Name /dev/sda . . . PV Name /dev/sdb . . . الأمر vgdisplay مُفيد لقُدرته على الرّبط بين المعلومات حول مُختلف عناصر كومة LVM. عرض معلومات حول وحدات التّخزين المنطقيّة يمتلك LVM مجموعة من الأدوات لعرض معلومات عن وحدات التّخزين المنطقيّة كذلك. كما الحال مع مُكوّنات LVM الأخرى، يُمكن استعمال الأمر lvscan لفحص النّظام وعرض معلومات وجيزة حول وحدات التّخزين المنطقيّة التي يجدها: sudo lvscan المُخرج: ACTIVE '/dev/LVMVolGroup/projects' [10.00 GiB] inherit ACTIVE '/dev/LVMVolGroup/www' [5.00 GiB] inherit ACTIVE '/dev/LVMVolGroup/db' [20.00 GiB] inherit ACTIVE '/dev/LVMVolGroup/workspace' [254.99 GiB] inherit لمعلومات أكثر كمالا، يُمكنك استخدام الأمر lvs الذي يتمتّع بمرونة وقوّة بالإضافة إلى سهولة استخدامه في السكربتات: sudo lvs المُخرج: LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert db LVMVolGroup -wi-ao---- 20.00g projects LVMVolGroup -wi-ao---- 10.00g workspace LVMVolGroup -wi-ao---- 254.99g www LVMVolGroup -wi-ao---- 5.00g لإيجاد عدد شرائط Stripes وحدة التّخزين المنطقيّة ونوعها، استعمل الخيار --segments: sudo lvs --segments المُخرج: LV VG Attr #Str Type SSize db LVMVolGroup rwi-a-r--- 2 raid1 20.00g mirrored_vol LVMVolGroup rwi-a-r--- 3 raid1 10.00g test LVMVolGroup rwi-a-r--- 3 raid5 10.00g test2 LVMVolGroup -wi-a----- 2 striped 10.00g test3 LVMVolGroup rwi-a-r--- 2 raid1 10.00g يُمكن الحصول على أكثر مُخرج قابل للقراءة عبر الأمر lvdisplay. عند إضافة الخيار -m، فستعرض الأداة معلومات حول مكوّنات وحدة التّخزين المنطقيّة وكيفيّة توزيعها: sudo lvdisplay -m المُخرج: --- Logical volume --- LV Path /dev/LVMVolGroup/projects LV Name projects VG Name LVMVolGroup LV UUID IN4GZm-ePJU-zAAn-DRO3-1f2w-qSN8-ahisNK LV Write Access read/write LV Creation host, time lvmtest, 2016-09-09 21:00:03 +0000 LV Status available # open 1 LV Size 10.00 GiB Current LE 2560 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 252:0 --- Segments --- Logical extents 0 to 2559: Type linear Physical volume /dev/sda Physical extents 0 to 2559 . . . كما تُلاحظ من الجزء السّفلي للمُخرج أعلاه، فوحدة التّخزين المنطقيّة /dev/LVMVolGroup/projects متواجدة بالكامل على وحدة التّخزين الماديّة /dev/sda في هذا المثال. هذه المعلومة مُفيدة إن كنت ترغب بإزالة جهاز التّخزين المُعتمد عليه وتريد نقل البيانات إلى مكان مُحدّد. رأينا في هذا الجزء من الدليل كيفية عرض معلومات عن مختلف المكوّنات في LVM. سنكمل في الأجزاء التالية بقيّة المهام الإدارية. ترجمة – بتصرّف - للمقال How To Use LVM To Manage Storage Devices on Ubuntu 16.04 لكاتبه Justin Ellingwood.
-
- وحدة تخزين
- أوبنتو
-
(و 1 أكثر)
موسوم في:
-
تمهيد LVM اختصار لعبارة Logical Volume Management، عبارة عن تقنيّة لإدارة أجهزة التّخزين تُمكّن المُستخدمين من توحيد وتجريد التّخطيط الماديّ (الفعلي) لمكونات أجهزة التّخزين، لإدارتها بسهولة ومرونة. يُمكن استعمال النّسخة الحاليّة LVM2 بالاعتماد على إطار العمل الخاصّ بربط الأجهزة Device mapper في نواة لينكس لجمع أجهزة التّخزين المُتوفّرة في مجموعات وتخصيص وحدات منطقيّة Logical units من المساحة المُركّبة حسب الطّلب. التّجريد، المرونة والتّحكم من الميزات الرّئيسيّة لاستخدام LVM. يُمكن لوحدات التّخزين Volumes أن تحمل أسماء ذات معنى واضح مثل “database” أو “root-backup”. يُمكن إعادة ضبط حجم وحدات التّخزين ديناميكيًّا حسب تغيّر متطلّبات المساحة، يُمكن كذلك تهجيرها بين الأجهزة الماديّة داخل مجمع التخزين Storage pool أو على نظام قيد التّنفيذ. يُوفّر LVM كذلك ميزات مُتقدّمة مثل أخذ اللقطات Snapshotting، الدّمج Striping والمُطابقة Mirroring. في هذا الدّرس، سنتحدّث باختصار عن آليّة عمل LVM وبعدها سنستعرض بعضا من الأوامر التي ستحتاج إليها في البداية. مبادئ ومُصطلحات LVM قبل أن أن ننتقل إلى أوامر LVM الإداريّة، من المهمّ أن تفهم مبدئيًّا كيف ينظّم LVM أجهزة التّخزين وبعضا من المُصطلحات المُستعملة. بنيات مُدير التّخزين في LVM يعمل LVM عبر إنشاء طبقات مُجرّدة فوق أجهزة التّخزين الماديّة. الطّبقات التي يستعملها LVM بدءا بأكثرها بدائيّة هي كالتّالي: وحدات التّخزين الماديّة Physical Volumes: السابقة في أداة LVM: المقطع pv... الوصف: الأجهزة الماديّة أو الأجهزة التي تشبه الأقراص (مثلا، أجهزة تخزين أنشِئت باستعمال رابط الأجهزة Device Mapper مثل مصفوفات RAID)، وتعدّ المّادة الأساسيّة التي يستعملها LVM للطبقات العليا من التّجريد. وحدات التّخزين الماديّة عبارة عن أجهزة تخزين عاديّة. يكتب LVM ترويسة Header على الجهاز لتخصيصه ليكون قابلا للإدارة. مجموعات وحدات التّخزين Volume Groups: السابقة في أداة LVM: المقطع vg... الوصف: يجمع LVM وحدات التّخزين الماديّة في مساحات تخزينيّة موحّدة تُسمى “مجموعات وحدات التّخزين”. تجرّد مجموعات التّخزين هذه أجهزة التّخزين التّابعة لها من مواصفاتها لتعمل على شكل جهاز تخزين منطقيّ واحد مع جمع المساحات التّخزينيّة الخاصّة بوحدات التّخزين التي تُكوّن المجموعة. وحدات التّخزين المنطقيّة Logical Volumes: السابقة في أداة LVM: المقطع lv... (أدوات LVM العامّة تبدأ عادة بالمقطع lvm...) الوصف: يُمكن تقسيم مجموعة تخزين إلى أي عدد من وحدات التّخزين المنطقيّة. وحدات التّخزين المنطقيّة تُعادل وظيفيّا التجزئات Partitions في قرص ماديّ، لكنّها تتمتّع بمرونة أكثر. تعدّ وحدات التّخزين المنطقيّة المكوّن الأساسيّ الذي يتعامل معه المستخدمون والتّطبيقات. باختصار، يُمكن استعمال LVM لجمع وحدات التّخزين الماديّة في مجموعات تخزين لتوحيد مساحة التّخزين المتواجدة على نظام ما. بعدها، يُمكن للمدراء تقسيم مجموعة التّخزين إلى وحدات تخزين منطقيّة تعمل على شكل تجزئات مرنة. ما هي المداءات Extents؟ تُقسَّمُ كلّ وحدة تخزين ضمن مجموعة تخزين إلى قطع صغيرة ذات حجم ثابت تُسمّى المداءات (جمع مدى). تحدّد مجموعة التّخزين حجم المدى (جميع وحدات التّخزين بداخل المجموعة تحمل نفس حجم المدى). المداءات في وحدة تخزين ماديّة تُسمّى بالمداءات الماديّة، أمّا المداءات في وحدات التّخزين المنطقيّة فتُسمّى مداءات منطقيّة. وحدة تخزين منطقيّة عبارة ببساطة عن رابط يصونه LVM بين المداءات المنطقيّة و الماديّة. بسبب هذه العلاقة، يُمثّل حجم المداءات أصغر مقدار من المساحة التي يُمكن لـLVM تخصيصها. المداءات سبب رئيسيّ للمرونة والقوّة اللتان يتمتّع بهما LVM. إذ ليس من الضّروريّ على المداءات الماديّة الارتباط بالمداءات المنطقيّة المُمثّلة على شكل جهاز تخزين موحّد بواسطة LVM. يُمكن لـLVM نسخ وإعادة ترتيب المداءات الماديّة التي تُكوّن وحدة تخزين منطقيّة دون إعاقة سير الأمور بالنّسبة للمُستخدم. يُمكن كذلك توسيع أو تقليص وحدات التّخزين المنطقيّة ببساطة عبر إضافة أو إزالة المداءات من وحدة التّخزين. حالة الاستخدام البسيطة والآن بعد أن تعرّفنا على بعض من المُصطلحات والبنيات التي يستعملها LVM، يُمكننا استكشاف بعض من أكثر استخدامات LVM شيوعا. سنبدأ التّعرّف على إجراء بسيط يُمكّننا من استعمال قرصين ماديّين لإنشاء أربع وحدات تخزين منطقيّة. تنبيه: تأكّد من أنّ الأجهزة التّي ترغب باستعمالها مع LVM لا تحتوي على أيّة بيانات مُهمّة. استخدام هذه الأجهزة مع LVM سيؤدّي إلى الكتابة فوق المحتويات الحاليّة. إذا كانت لديك بيانات مهمّة على خادومك فأنشئ نسخا احتياطية قبل الاستمرار في تطبيق الدّرس. إن كنت تريد استكشاف آلية العمل بأمان فالأفضل أن تستخدم آلة افتراضية للتطبيق عليها. تحديد الأجهزة الماديّة Physical Devices لتُشكّل وحدات تخزين ماديّة Physical Volumes أول خطوة هي فحص النّظام للوصول إلى الأجهزة التّي يُمكن لـLVM رؤيتها وإدارتها. يُمكنك القيام بهذه الخطوة عبر كتابة ما يلي في الطّرفيّة: sudo lvmdiskscan المُخرَج سيكون عبارة عن قائمة بجميع الأجهزة التّي يُمكن لـLVM التّعامل معها: /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* لزيادة الأداء. الأقراص في هذا المثال هي /dev/sda الذي يحتوي على 200G من المساحة، و /dev/sdb ذي المساحة 100G. بعد تحديد الأجهزة الماديّة التي نريد استخدامها، يُمكننا الآن تخصيصها لتكون وحدات تخزين ماديّة داخل LVM باستخدام الأمر pvcreate: sudo pvcreate /dev/sda /dev/sdb المُخرَج: Physical volume "/dev/sda" successfully created Physical volume "/dev/sdb" successfully created ستقوم هذه العمليّة بكتابة ترويسة LVM على الأجهزة للإشارة إلى أنّها جاهزة للإضافة إلى مجموعة تخزين. يُمكنك التّحقّق من أنّ وحدات التّخزين الماديّة قد سُجّلت بنجاح من طرف LVM عبر كتابة الأمر التّالي: sudo pvs المُخرج: PV VG Fmt Attr PSize PFree /dev/sda lvm2 --- 200.00g 200.00g /dev/sdb lvm2 --- 100.00g 100.00g كما ترى، كلا الجهازان مُتواجدان تحت عمودPV (اختصار لـPhysical Volume). إضافة وحدات التّخزين الماديّة إلى مجموعة تخزين بعد أن أنشأنا وحدات تخزين ماديّة من أجهزتنا، يُمكننا الآن إنشاء مجموعة تخزين. سيتوجّب علينا اختيار اسم لمجموعة التّخزين، سنختار اسما عامّا لتبسيط الأمور. في معظم الأوقات، ستجد مجموعة واحدة فقط لكل نظام من أجل الحصول على أقصى درجة من المرونة في التّخصيص. سنُسمّي مجموعة التّخزين الخاصّة بنا بالاسم LVMVolGroup لتبسيط الأمور. لإنشاء مجموعة تخزين وإضافة وحدتي التّخزين الماديّتين إليها في أمر واحد، اكتب ما يلي: sudo vgcreate LVMVolGroup /dev/sda /dev/sdb المُخرج: Volume group "LVMVolGroup" successfully created إن اطّلعنا على مُخرج الأمر pvs مُجدّدا، يُمكننا أن نرى بأنّ وحدتي التّخزين الماديّتين أصبحتا مرتبطتين بمجموعة التّخزين الجديدة: sudo pvs المُخرَج: PV VG Fmt Attr PSize PFree /dev/sda LVMVolGroup lvm2 a-- 200.00g 200.00g /dev/sdb LVMVolGroup lvm2 a-- 100.00g 100.00g يُمكننا الحصول على خلاصة موجزة لمجموعة التّخزين عبر الأمر التّالي: sudo vgs المُخرَج: VG #PV #LV #SN Attr VSize VFree LVMVolGroup 2 0 0 wz--n- 299.99g 299.99g كما ترى، مجموعة التّخزين الخاصّة بنا تمتلك وحدتي تخزين ماديّتين، دون أية وحدات تخزين منطقيّة، كما لها مساحة تخزين تُساوي مجموعة مساحتي الجهازيْن المُستخدمين. إنشاء وحدات تخزين منطقيّة من مجموعة التّخزين المُوحّدة الآن وقد أصبحت لدينا مجموعة تخزين، يُمكننا استخدامها لتخصيص وحدات تخزين منطقيّة منها. على عكس تقسيم القرص التّقليديّ، فعند العمل مع وحدات التّخزين المنطقيّة، لا تحتاج إلى معرفة تخطيط وحدة التّخزين لأنّ LVM يتكلّف بالأمر من أجلنا. ستحتاج فقط إلى تمرير حجم وحدة التّخزين واسم لها. سننشئ أربعة وحدات تخزين منطقيّة من مجموعة التّخزين الخاصّة بنا: وحدة تخزين باسم projects بمساحة 10G، وحدة تخزين www بمساحة 5G لمحتوى الوِب، وحدة تخزين db بمساحة 20G لقاعدة البيانات، وحدة تخزين workspace للاستفادة من باقي المساحة. لإنشاء وحدات تخزين منطقيّة، نستعمل الأمر 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 المُخرَج: Logical volume "projects" created. Logical volume "www" created. Logical volume "db" created. يُمكننا الاطّلاع على وحدات التّخزين المنطقيّة وعلاقتها بمجموعة التّخزين عبر تحديد مُخرج مُخصّص من الأمر vgs كما يلي: sudo vgs -o +lv_size,lv_name المُخرج: 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 المُخرج: Logical volume "workspace" created. إذا أعدنا التّحقّق من معلومات مجموعة التّخزين، سنُلاحظ بأنّنا قد استعملنا كافّة المساحة المُتوفّرة: sudo vgs -o +lv_size,lv_name المُخرَج: 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/volume_group_name/logical_volume_name /dev/mapper/volume_group_name-logical_volume_name مع تغيير قيمة volume_group_name باسم مجموعة التّخزين، وتغيير قيمة logical_volume_name باسم وحدة التّخزين المنطقيّة. لذا لتهيئة وحدات التّخزين المنطقيّة الخاصّة بنا باستخدام نظام الملفّات 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 بعد التّهيئة، يُمكننا إنشاء نقاط تركيب Mount points كما يلي: 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 كما لو كانت أجهزة تخزين عاديّة: 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 يجب على نظام التّشغيل الآن أن يركّب وحدات التّخزين المنطقيّة الخاصّة بـLVM آليًّا عند التشغيل. ختاما نأمل أن يكون لديك الآن فهم جيّد لمُختلف المُكوّنات التّي يُديرها LVM لإنشاء نظام تخزين مرن. يجب كذلك أن تكون لديك قدرة على إنشاء أجهزة واستعمالها مع LVM. هذا الدّرس مجرّد مُقدّمة وجيزة لما يُمكن لـLVM توفيره لمُدراء أنظمة Linux. للاستزادة حول كيفيّة العمل مع LVM، ألق نظرة على درس كيفيّة استخدام LVM مع Ubuntu 16.04. ترجمة - بتصرّف - للمقال An Introduction to LVM Concepts, Terminology, and Operations لكاتبه Justin Ellingwood.
-
- وحدة تخزين
- تهيئة قرص صلب
-
(و 2 أكثر)
موسوم في:
-
بعد أن تطرّقنا في الدّرس السّابق إلى كيفية تنصيب نسخة الخواديم من نظام أوبنتو إضافة إلى كيفية إعداد مُختلف تطبيقاته، سنستعرض في هذا المقال بعض الخصائص المُتقدّمة التي قد تحتاج إليها لدى تنصيبك للنّظام. RAID برمجيمصفوفة التعدد للأقراص المستقلة (Redundant Array of Independent Disks أو اختصارًا RAID) هي طريقة لاستخدام عدِّة أقراص صلبة لتوفير توازن بين زيادة مرونة ووثوقيّة تخزين البيانات، و/أو زيادة أداء القراءة والكتابة، وذلك بالاعتماد على مستوى RAID المطبَّق؛ ويمكن تطبيق RAID إما بطريقة برمجية (حيث يَعلم نظام التشغيل عن القرصين المستخدمين، ويصون العلاقة بينهما)، أو عن طريق العتاد (حيث يضاف متحكم خاص يجعل نظام التشغيل يعتقد أنه يتعامل مع قرص واحد، ويتحكم بالأقراص تحكمًا «خفيًا»). النسخة البرمجية من RAID الموجودة في الإصدارات الحالية من لينُكس (وأوبنتو) هي مبنية على محرك «mdadm» الذي يعمل عملًا ممتازًا، وحتى أنه أفضل من متحكمات RAID «الفيزيائية»؛ سيدلُّك هذا القسم على طريقة تثبيت نسخة الخادوم من أوبنتو باستخدام قسمَي RAID1 على قرصين صلبين منفصلين، واحد من أجل نظام ملفات الجذر (/)، والآخر لذاكرة التبديل (swap). التقسيماتَّبِع تعليمات التثبيت إلى أن تصل إلى خطوة تقسيم الأقراص، عندها: اختر طريقة التقسيم اليدوية.اختر القرص الصلب الأول، ووافق على «هل تريد إنشاء جدول تجزئة جديد وفارغ على هذا الجهاز؟» ، أعد هذه الخطوة لجميع الأجهزة التي تريدها أن تصبح جزءًا من مصفوفة RAID.اختر «المساحة المتاحة» في أول قرص، ثم حدد «إنشاء جزء [قسم] جديد».اختر بعدها المساحة التخزينية لهذا القسم، سيكون هذا القسم هو القسم الخاص بذاكرة التبديل، والقاعدة العامة لحجم ذاكرة التبديل هي أن تكون ضعف حجم ذاكرة الوصول العشوائي (RAM)، اختر المساحة التخزينية للقسم، ثم اختر «أولي»، ثم «في البداية» (مكان بدء القطاعات).ملاحظة: لا يُستحسَن دومًا أن يكون حجم ذاكرة التخزين ضعف حجم الذاكرة، وخصوصًا في الأنظمة التي تملك مقدارًا كبيرًا من الذاكرة، يتوقف حساب الحجم التخزيني لقسم ذاكرة التبديل على طريقة استخدام النظام.اختر سطر «طريقة الاستخدام» من الأعلى، الذي يكون افتراضيًا «نظام ملفات Ext4»، وغيرّه إلى «حجم فيزيائي لمصفوفة RAID» (أو «الكتلة الجسمية لـ RAID») ، ثم اختر «انتهى إعداد الجزء [القسم]».ولتهيئة قسم الجذر (/) فاختر «المساحة المتاحة» مرةً أخرى على القرص الصلب الأول، ثم اختر «إنشاء جزء [قسم] جديد».اختر ما تبقى من مساحة القرص التخزينية، ثم اضغط على متابعة، ثم «أولي».وكما في قرص ذاكرة التبديل، اختر «طريقة الاستخدام» ثم «حجم فيزيائي لمصفوفة RAID»، ثم اختر سطر «وسم إمكانية الإقلاع»، وغيرها إلى «ممكَّن»، ثم اختر «انتهى إعداد الجزء [القسم]».أعد تنفيذ الخطوات من ثلاثة إلى ثمانية للأقراص والأقسام الأخرى.إعداد RAIDبعد أن أُعِّدَت الأقسام، يمكن الآن ضبط المصفوفة: عد إلى صفحة «تقسيم الأقراص» الرئيسية، ثم اختر «تهيئة مصفوفة RAID البرمجية» في الأعلى.اختر «نعم» لكتابة التغيرات إلى القرص.اختر «إنشاء جهاز MD».لهذا المثال، اختر «RAID1»، لكن إن كنت تستخدم ضبطًا مختلفًا، فاختر النوع الملائم (RAID0، أو RAID1، أو RAID5). ملاحظة: ستحتاج إلى ثلاثة أقراص على الأقل لاستخدام RAID5، أما استخدام RAID0 أو RAID1، فيلزمك قرصان فقط.أدخِل رقم الأجهزة الفعالة (2)، أو مقدار الأقراص الصلبة التي عندك والتي ترغب باستخدامها في المصفوفة، ثم اختر «متابعة».أدخل رقم الأقراص البديلة (في حالة حدوث عطب في أحد الأقراص)، الذي هو «0» افتراضيًا، ثم اختر «متابعة».اختر الأقسام التي تريد استخدامها، عمومًا، ستكون sda1, sdb1, sdc1 ...إلخ. ستتطابق الأرقام غالبًا، وستختلف الأحرف للدلالة على اختلاف الأقراص الصلبة.لقسم ذاكرة التبديل، اختر sda1، و sdb1، ثم اختر «متابعة» للذهاب للخطوة الآتية.أعد الخطوات من ثلاثة إلى سبعة لقسم الجذر (/) باختيار sda2، و sdb2.بعد انتهائك من الضبط، اختر «إنهاء».التهيئةيجب أن تحصل الآن على قائمة بالأقراص الصلبة وأجهزة RAID، الخطوة الآتية هي التهيئة وإعداد نقاط الوصل لأجهزة RAID؛ عامل جهاز RAID كقرص صلب، هيِّئه وصِلْه كالمعتاد. اختر «#1» تحت قسم «RAID1 برمجي الجهاز #0».اختر «استخدام كـ»، ثم اختر «ذاكرة التبديل»، ثم «انتهى إعداد الجزء [القسم]».ثم اختر «#1» تحت قسم «RAID1 برمجي الجهاز #1».اختر «طريقة الاستخدام»، ثم اختر «نظام ملفات Ext4 سجلي».اختر «نقطة الوصل»، واضبطها على «/ - جذر نظام الملفات»، عدِّل الخيارات الأخرى كما تريد، ثم اختر «انتهى إعداد الجزء [القسم]».في النهاية، اختر «إنهاء التجزئة، وكتابة التغيرات إلى القرص».إذا اخترت وضع قسم الجذر في مصفوفة RAID، فسيسألك المثبت إذا كنت تريد الإقلاع بحالة «منخفضة» (degraded)، راجع القسم «مصفوفة RAID ذات الحالة المتدهورة (degraded state)» للمزيد من التفاصيل. يجب أن تُكمَل عملية التثبيت بشكلٍ اعتيادي. مصفوفة RAID ذات الحالة المتدهورة (degraded state)قد يحصل خلل في القرص في نقطة ما من حياة الحاسوب؛ وعندما يحصل ذلك وقت استخدام مصفوفة RAID برمجية، فسيضع نظام التشغيل المصفوفة في ما يدعى «الحالة المتدهورة» (degraded state). إذا أصبحت المصفوفة في الحالة المتدهورة -ربما لحدوث تلف في البيانات- فعندها تحاول نسخة الخادوم من أوبنتو افتراضيًا الإقلاع إلى initramfs بعد ثلاثين ثانية، وعندما يكتمل إقلاع initramfs، فسيظهر مِحَث لمدة خمس عشرة ثانية يسمح لك بالاختيار بين إقلاع النظام أو محاولة استرداده يدويًا؛ ربما لا يكون الإقلاع إلى محث initramfs هو السلوك المطلوب، وخصوصًا إن كان الحاسوب في مكان بعيد عنك. يمكن إعداد الإقلاع إلى مصفوفة متدهورة بعدة طرق: الأداة dpkg-reconfigure التي تستخدم لضبط السلوك الافتراضي؛ وستُسأل خلال العملية عن الخيارات الإضافية المتعلقة بالمصفوفة، كالمراقبة، وتنبيهات البريد ...إلخ. أدخِل الأمر الآتي لإعداد mdadm: sudo dpkg-reconfigure mdadmستغير عملية dpkg-reconfigure mdadm ملف الإعدادات /etc/initramfs-tools /conf.d/mdadm، لدى هذا الملف ميزة القدرة على الإعداد المسبق لسلوك النظام، ويمكن تعديله يدويًا: BOOT_DEGRADED=tureملاحظة: يمكن تجاوز ملف الإعدادات باستخدام وسيط يمرر للنواة. يَسمح استخدام وسيط يمرر للنواة لك أيضًا بإقلاع النظام من مصفوفة ذات الحالة المتدهورة كما يلي: عندما يقلع الخادوم، اضغط على Shift لفتح قائمة جروب (Grub).اضغط e لتعديل خيارات النواة.اضغط على زر السم السفلي لتعليم سطر النواة.أضف «bootdegraded=true» (دون علامات الاقتباس) إلى نهاية السطر.اضغط على Ctrl+x لإقلاع النظام.بعد أن يُقلِع النظام، تستطيع إما إصلاح المصفوفة (انظر قسم «صيانة مصفوفات RAID» للتفاصيل) أو نسخ المعلومات المهمة إلى جهاز آخر بسبب عطب في العتاد. صيانة مصفوفات RAIDيمكن أن تَعرِض الأداة mdadm حالة المصفوفة، أو تستطيع إضافة أو إزالة أقراص في المصفوفة ...إلخ. لإظهار حالة مصفوفة أقراص، فأدخِل الأمر الآتي إلى الطرفية: sudo mdadm -D /dev/md0الخيار -D يخبر mdadm أن يُظهِر معلوماتٍ تفصيلية حول الجهاز /dev/md0، استبدل مسار جهاز RAID المناسب بالمسار /dev/md0. لعرض حالة قرص في مصفوفة: sudo mdadm -E /dev/sda1ستُشابِه مخرجات الأمر السابق مخرجات الأمر mdadm -D؛ عدِّل /dev/sda1 لكل قرص من أقراص المصفوفة. إذا عُطِبَ قرصٌ ما، فيجب أن يُزال من المصفوفة: sudo mdadm --remove /dev/mo0 /dev/sda1بدِّل كلًّا من /dev/md0 و /dev/sda1 إلى جهاز RAID والقرص الملائمَين بالتوالي وبالترتيب. وبطريقة مشابهة، لإضافة قرص جديد: sudo mdadm --add /dev/md0 /dev/sda1يمكن أن تُبَدَّل حالة القرص في بعض الأحيان إلى «مُعَاب» (faulty)، حتى وإن لم يكن فيه خلل فيزيائي؛ من المفيد في كثير من الأحيان إزالة القرص من المصفوفة، ثم إعادة إضافته؛ وهذا ما يجعل القرص يُزامَن مرةً أخرى مع المصفوفة؛ وإذا لم يزامن القرص مع المصفوفة، فهذا دليلٌ قويٌ على وجود مشكلة فيزيائية فيه. يحتوي الملف /proc/mdstat على معلومات مفيدة حول حالة أجهزة RAID في النظام: cat /proc/mdstatPersonalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid1 sda1[0] sdb1[1] 10016384 blocks [2/2] [UU] unused devices: <none>الأمر الآتي رائع لمشاهدة حالة مزامنة قرص: watch -n1 cat /proc/mdstatاضغط على Ctrl+c لإيقاف الأمر watch. إذا احتجت لاستبدال قرص معطوب، فيجب أن يعاد تثبيت محمل الإقلاع «جروب» (grub) مرةً أخرى بعد استبدال القرص المعطوب بالجديد ومزامنته؛ أدخِل الأمر الآتي لتثبيت «جروب» على القرص الجديد: sudo grub-install /dev/md0ضع اسم جهاز المصفوفة الملائم بدلًا من /dev/md0. مصادرإن موضوع مصفوفات RAID هو موضوع معقد نتيجةً لوفرة الطرق التي يمكن ضبط RAID فيها، رجاءً راجع الروابط الآتية لمزيدٍ من المعلومات: المقالات التي تتحدث عن RAID في ويكي أوبنتو. مقالة بعنوان «Software RAID HOWTO».كتاب «Managing RAID on Linux».مدير الحجوم المنطقية (LVM)يسمح مدير الحجوم المنطقية (Logical Volume Manager) لمدراء الأنظمة بإنشاء حجوم تخزينية على قرصٍ واحد أو أقراصٍ صلبة متعددة؛ ويمكن إنشاء حجوم LVM على أقسام في مصفوفة RAID أو على الأقسام الموجودة في قرص واحد، ويمكن أيضًا توسيع تلك الحجوم، مما يضيف مرونةً كبيرةً للنظام عندما تتغير المتطلبات التشغيلية. لمحة عامةتأثيرٌ جانبي لقوة ومرونة LVM هو درجة كبيرةٌ من التعقيد؛ ويجدر بنا التعرف على بعض المصطلحات قبل الخوض في عملية تثبيت LVM: الحجم الفيزيائي (PV): القرص الصلب الفيزيائي، أو قسم في قرص، أو قسم مصفوفة RAID برمجية؛ مهيئين للعمل كحجم LVM.مجموعة الحجوم (VG): التي تُصنَع من حجم فيزيائي واحد أو أكثر؛ ويمكن أن تُوسَّع مجموعة الحجوم بإضافة المزيد من الحجوم الفيزيائية، حيث تكون مجموعة الحجوم كقرص صلب وهمي (virtual disk drive)، الذي يُنشَأ منه المزيد من الحجوم المنطقية.حجم منطقي (LV): الذي يشبه القسم في الأنظمة الأخرى (التي ليست LVM)، حيث يُهيَّأ الحجم المنطقي بنظام الملفات المطلوب (Ext3، أو XFS، أو JFS ...إلخ.)، ويكون متوفرًا للوصل وتخزين البيانات.التثبيتسيشرح المثال في هذا القسم طريقة تثبيت نسخة الخادوم من أوبنتو مع وصل مجلد /srv على حجم LVM، إذ سيُضاف حجمٌ فيزيائيٌ (PV) واحدٌ فقط أثناء عملية التثبيت، والذي يمثِّل جزءًا من مجموعة الحجوم؛ وسيضاف حجم فيزيائي آخر بعد التثبيت لشرح كيف يمكن أن تُوسَّع مجموعة الحجوم. هنالك خياراتُ تثبيتٍ عدِّة لاستخدام LVM، الخيار الأول «موجّه - استخدام القرص بأكمله وإعداد LVM» الذي يسمح بإعطاء جزء من المساحة التخزينية المتوفرة لاستخدامها في LVM، والخيار الآخر «موجّه - استخدام القرص بأكمله وإعداد LVM مشفّر»، أو إعداد الأقسام وضبط LVM يدويًا؛ والطريقة الوحيدة لهذه اللحظة لإعداد النظام لاستخدام LVM والأقسام الاعتيادية أثناء التثبيت هو استخدام الطريقة اليدوية. اتَّبِع خطوات التثبيت إلى أن تصل إلى خطوة «تقسيم الأقراص»، عندها: في صفحة «تقسيم الأقراص»، اختر «يدويًا».اختر القرص الصلب، ثم في الشاشة التالية اختر «نعم» للرد على الرسالة «هل تريد إنشاء جدول تجزئة جديد وفارغ على هذا الجهاز؟».ثم أنشئ أقسام /boot، و swap، و / بأي نظام ملفات تريد.ولإنشاء /srv باستخدام LVM، فأنشئ قسمًا منطقيًا جديدًا، ثم غير «طريقة الاستخدام» إلى «حجم فيزيائي لتخزين LVM»، ثم اختر «انتهى إعداد الجزء [القسم]».اختر الآن «إعداد مدير الحجوم المنطقية» في الأعلى، ثم اختر «نعم» لكتابة التعديلات إلى القرص.والآن اختر «إنشاء مجموعة حجوم» في «إعدادات LVM» في الشاشة التالية، ثم اختر اسمًا لمجموعة الحجوم، وليكن vg01، أو أي شيء يصفها أكثر من ذلك؛ وبعد اختيار الاسم، اختر القسم المُعَدّ لاستخدام LVM عليه، ثم «متابعة».وبالعودة لصفحة «إعدادات LVM»، اختر «إنشاء حجم منطقي»، واختر مجموعة الحجوم المُنشَأة منذ قليل، وأدخل اسمًا للحجم المنطقي الجديد (على سبيل المثالsrv ﻷنه اسم نقطة الوصل المخطط لها) ثم اختر المساحة التخزينية، التي ستكون القسم بأكمله، لا تنسَ أنه يمكنك دائمًا زيادتها لاحقًا، ثم اختر «إنهاء» ويجب أن تعود لشاشة «تقسيم الأقراص».لإضافة نظام ملفات إلى LVM الجديد، اختر القسم تحت «LVM VG vg01, LV srv»، أو أي اسم قد اخترته في الخطوة السابقة، ثم اختر «طريقة الاستخدام»، واضبط نظام الملفات كالمعتاد باختيار /srv نقطةً للوصل، ثم اضغط على «انتهى إعداد الجزء [القسم]» عند الفراغ منه.في النهاية، اختر «إنهاء التجزئة وكتابة التغيرات إلى القرص»، ثم وافق على إجراء التغيرات، وأكمل عملية التثبيت.هذه بعض الأدوات المفيدة لعرض المعلومات حول LVM: الأمر pvdisplay: عرض معلومات حول الحجوم الفيزيائية.الأمر vgdisplay: عرض معلومات حول مجموعات الحجوم.الأمر lvdisplay: عرض معلومات حول الحجوم المنطقية.توسيع مجموعات الحجومبإكمال مثالنا المتعلق بحجم LVM واستخدامه كنقطة وصل لمجلد /srv، فسيناقش هذا القسم إضافة قرص صلب آخر، وإنشاء حجم فيزيائي (PV)، وإضافته إلى مجموعة الحجوم (VG)، وتوسيع الحجم المنطقي srv، ثم في النهاية توسيع نظام الملفات؛ يفترض هذا المثال أنَّ قرصًا صلبًا ثانيًا قد أُضيف إلى النظام، وفي هذا المثال، سيكون اسمه /dev/sdbوسنستخدم القرص بأكمله كحجمٍ فيزيائي (بإمكانك إنشاء أقسام واستخدامها كحجوم فيزيائية مختلفة). تحذير: تأكد أنه ليس لديك قرص صلب باسم /dev/sdbقبل تنفيذ الأوامر الآتية، قد تخسر بعض البيانات إذا نفَّذت هذه الأوامر على قرص غير فارغ. أولًا، أنشِئ الحجم الفيزيائي بتنفيذ الأمر الآتي في الطرفية: sudo pvcreate /dev/sdbوسِّع الآن مجموعة الحجوم (VG): sudo vgextend vg01 /dev/sdbاستخدم vgdisplay لمعرفة الامتدادات الفيزيائية أو PE (physical extents)، التي هي الامتدادات الفيزيائية الحرة / الحجم (الحجم التخزيني الذي حددته)، سنعتبر أن المساحة الفارغة هي 511 PE (مما يساوي2 غيغابايت إذا كان حجم PE هو 4 ميغابايت)، وسنستخدم كل المساحة الفارغة المتاحة، لا تنسَ استخدام رقم PE -أو الحجم التخزيني الحر- المتوفر عندك. يمكن توسيع الحجم المنطقي بعدِّة طرق، وسنشرح كيف يمكن استخدام PE لتوسعة حجم منطقي: sudo lvextend /dev/vg01/srv -l +511إن الخيار -l يسمح بتوسعة الحجم المنطقي باستخدام PE، يسمح الخيار -L للحجم المنطقي بأن يُوسَّع باستخدام الميغا، أو الغيغا، أو التيرابايت ...إلخ. حتى وإن كان من المفترض أنه باستطاعتك توسيع نظام ملفات ext3 أو ext4 دون فصله أولًا، لكن من العادات الجيدة فصله على أيّة حال وتفحص نظام الملفات؛ وبهذا لن تخرِّب شيئًا في اليوم الذي تريد فيه تقليل الحجم المنطقي (إذ يكون فصل نظام الملفات في هذه الحالة إلزاميًا). الأوامر الآتية ﻷنظمة الملفات EXT3 أو EXT4، إذا كنت تستخدم أنظمة ملفات أخرى، فتتوفر أدوات مختلفة: sudo umount /srv sudo e2fsck -f /dev/vg01/srvالخيار -f يجبر الأداة e2fsck على تفحص نظام الملفات وإن كان يبدو «نظيفًا». في النهاية، غيِّر حجم نظام الملفات: sudo resize2fs /dev/vg01/srvثم صِل نظام الملفات وتأكد من حجمه التخزيني: mount /dev/vg01/srv /srv && df -h /srvمصادرراجع المقالات حول LVM في ويكي أوبنتو.انظر مقالة LVM HOWTO للمزيد من المعلومات.مقالة أخرى جيدة هي «Managing Disk Space with LVM» في موقع O'Reilly المدعو linuxdevcenter.com.للمزيد من المعلومات حول fdisk، انظر صفحة الدليل الخاصة به.رجمة -وبتصرّف- للمقال Ubuntu Server Guide: Advanced Installation.