تكوين LVM على الجهاز الظاهري لـLinux في Azure

سيناقش هذا المستند كيفية تكوين Logical Volume Manager (LVM) في جهاز Azure الظاهري. يمكن استخدام LVM على قرص نظام التشغيل أو أقراص البيانات في أجهزة Azure الظاهرية، ومع ذلك، بشكل افتراضي، لن يكون لمعظم صور السحابة LVM مكونة على قرص نظام التشغيل. ستركز الخطوات أدناه على تكوين LVM لأقراص البيانات الخاصة بك.

وحدات تخزين منطقية خطية مقابل وحدات تخزين مخططة

يمكن استخدام LVM لدمج عدد من الأقراص الفعلية في وحدة تخزين واحدة. بشكل افتراضي، سيقوم LVM عادة بإنشاء وحدات تخزين منطقية خطية، ما يعني أن التخزين الفعلي متسلسل معا. في هذه الحالة، عادة ما يتم إرسال عمليات القراءة/الكتابة إلى قرص واحد فقط. في المقابل، يمكننا أيضا إنشاء وحدات تخزين منطقية مخططة حيث يتم توزيع القراءات والكتابة على أقراص متعددة موجودة في مجموعة وحدات التخزين (على غرار RAID0). لأسباب تتعلق بالأداء، من المحتمل أن ترغب في تخطيط وحدات التخزين المنطقية بحيث تستخدم عمليات القراءة والكتابة جميع أقراص البيانات المرفقة.

سيصف هذا المستند كيفية دمج العديد من أقراص البيانات في مجموعة وحدة تخزين واحدة، ثم إنشاء وحدة تخزين منطقية مخططة. يتم تعميم الخطوات أدناه للعمل مع معظم التوزيعات. في معظم الحالات، لا تختلف الأدوات المساعدة وسير العمل لإدارة LVM على Azure بشكل أساسي عن البيئات الأخرى. كالمعتاد، راجع أيضا مورد Linux للحصول على الوثائق وأفضل الممارسات لاستخدام LVM مع التوزيع الخاص بك.

إرفاق أقراص البيانات

عادة ما يرغب المرء في البدء بقرصين أو أكثر من أقراص البيانات الفارغة عند استخدام LVM. استنادا إلى احتياجات IO الخاصة بك، يمكنك اختيار إرفاق الأقراص المخزنة في التخزين القياسي لدينا، مع ما يصل إلى 500 IO/ps لكل قرص أو تخزين Premium لدينا مع ما يصل إلى 5000 IO/ps لكل قرص. لن تدخل هذه المقالة في تفاصيل حول كيفية توفير أقراص البيانات وإرفاقها بجهاز Linux الظاهري. راجع مقالة Microsoft Azure إرفاق قرص للحصول على إرشادات مفصلة حول كيفية إرفاق قرص بيانات فارغ بجهاز Linux ظاهري على Azure.

تثبيت الأدوات المساعدة LVM

  • Ubuntu

    sudo apt-get update
    sudo apt-get install lvm2
    
  • RHEL وCentOS & Oracle Linux

    sudo yum install lvm2
    
  • SLES 12 وopenSUSE

    sudo zypper install lvm2
    
  • SLES 11

    sudo zypper install lvm2
    

    في SLES11، يجب عليك أيضا التحرير /etc/sysconfig/lvm وتعيين LVM_ACTIVATED_ON_DISCOVERED إلى "تمكين":

    LVM_ACTIVATED_ON_DISCOVERED="enable" 
    

تكوين LVM

في هذا الدليل، سنفترض أنك قمت بإرفاق ثلاثة أقراص بيانات، والتي سنشير إليها باسم /dev/sdcو/dev/sdd./dev/sde قد لا تتطابق هذه المسارات مع أسماء مسارات القرص في الجهاز الظاهري. يمكنك تشغيل "sudo fdisk -l" أو أمر مشابه لسرد الأقراص المتوفرة.

  1. إعداد وحدات التخزين الفعلية:

    sudo pvcreate /dev/sd[cde]
    Physical volume "/dev/sdc" successfully created
    Physical volume "/dev/sdd" successfully created
    Physical volume "/dev/sde" successfully created
    
  2. إنشاء مجموعة وحدات تخزين. في هذا المثال، نقوم باستدعاء مجموعة data-vg01وحدة التخزين :

    sudo vgcreate data-vg01 /dev/sd[cde]
    Volume group "data-vg01" successfully created
    
  3. إنشاء وحدة (وحدات) تخزين منطقية. الأمر أدناه سنقوم بإنشاء وحدة تخزين منطقية واحدة تسمى data-lv01 لتمتد إلى مجموعة وحدة التخزين بأكملها، ولكن لاحظ أنه من الممكن أيضا إنشاء وحدات تخزين منطقية متعددة في مجموعة وحدة التخزين.

    sudo lvcreate --extents 100%FREE --stripes 3 --name data-lv01 data-vg01
    Logical volume "data-lv01" created.
    
  4. تنسيق وحدة التخزين المنطقية

    sudo mkfs -t ext4 /dev/data-vg01/data-lv01
    

    ملاحظة

    مع استخدام -t ext3 SLES11 بدلا من ext4. يدعم SLES11 فقط الوصول للقراءة فقط إلى أنظمة ملفات ext4.

إضافة نظام الملفات الجديد إلى /etc/fstab

هام

قد يؤدي تحرير /etc/fstab الملف بشكل غير صحيح إلى نظام غير قابل للا تمهيد. إذا لم تكن متأكداً من ذلك، راجع وثائق التوزيع للحصول على معلومات بخصوص طريقة تحرير هذا الملف بشكل صحيح. يوصى أيضا بإنشاء نسخة احتياطية /etc/fstab من الملف قبل التحرير.

  1. إنشاء نقطة التحميل المطلوبة لنظام الملفات الجديد، على سبيل المثال:

    sudo mkdir /data
    
  2. تحديد موقع مسار وحدة التخزين المنطقية

    lvdisplay
    --- Logical volume ---
    LV Path                /dev/data-vg01/data-lv01
    ....
    
  3. افتح /etc/fstab في محرر نص وأضف إدخالا لنظام الملفات الجديد، على سبيل المثال:

    /dev/data-vg01/data-lv01  /data  ext4  defaults  0  2
    

    بعد ذلك، احفظ وأغلق /etc/fstab.

  4. اختبر أن /etc/fstab الإدخال صحيح:

    sudo mount -a
    

    إذا كان هذا الأمر يؤدي إلى ظهور رسالة خطأ، فتحقق من بناء الجملة في /etc/fstab الملف.

    بعد ذلك، mount قم بتشغيل الأمر للتأكد من تثبيت نظام الملفات:

    mount
    ......
    /dev/mapper/data--vg01-data--lv01 on /data type ext4 (rw)
    
  5. (اختياري) معلمات التمهيد Failsafe في /etc/fstab

    تتضمن العديد من التوزيعات إما nobootwait معلمات التحميل أو nofail التي يمكن إضافتها /etc/fstab إلى الملف. تسمح هذه المعلمات بالفشل عند تحميل نظام ملفات معين وتسمح لنظام Linux بالاستمرار في التمهيد حتى إذا كان غير قادر على تحميل نظام ملفات RAID بشكل صحيح. راجع وثائق التوزيع للحصول على مزيد من المعلومات حول هذه المعلمات.

    مثال (Ubuntu):

    /dev/data-vg01/data-lv01  /data  ext4  defaults,nobootwait  0  2
    

دعم TRIM/UNMAP

تدعم بعض نوى Linux عمليات TRIM/UNMAP لتجاهل الكتل غير المستخدمة على القرص. هذه العمليات مفيدة بشكل أساسي في التخزين القياسي لإعلام Azure بأن الصفحات المحذوفة لم تعد صالحة ويمكن تجاهلها. يمكن أن يؤدي تجاهل الصفحات إلى توفير التكلفة إذا قمت بإنشاء ملفات كبيرة ثم حذفها.

هناك طريقتان لتمكين دعم TRIM في جهاز Linux الظاهري. كالعادة، استشر التوزيع للحصول على النهج الموصى به:

  • discard استخدم خيار التحميل في /etc/fstab، على سبيل المثال:

    /dev/data-vg01/data-lv01  /data  ext4  defaults,discard  0  2
    
  • في بعض الحالات قد يكون للخيار discard آثار على الأداء. بدلاً من ذلك، يمكنك تشغيل fstrim الأمر يدوياً من سطر الأوامر، أو إضافته إلى crontab لتشغيله بانتظام:

    Ubuntu

    # sudo apt-get install util-linux
    # sudo fstrim /datadrive
    

    RHEL وCentOS & Oracle Linux

    # sudo yum install util-linux
    # sudo fstrim /datadrive