مشاركة عبر


توسيع الأقراص الثابتة الظاهرية على جهاز ظاهري يعمل بنظام Linux

ينطبق على: ✔️ أجهزة Linux الظاهرية ✔️ مجموعات مقياس مرنة

تتناول هذه المقالة توسيع أقراص نظام التشغيل (OS) وأقراص البيانات لجهاز Linux الظاهري (VM). يمكنك إضافة أقراص بيانات لتوفير مساحة تخزين أكبر، ويمكنك أيضا توسيع قرص بيانات موجود. عادة ما يكون حجم القرص الثابت الظاهري الافتراضي لنظام التشغيل 30 غيغابايت على جهاز Linux الظاهري في Azure. تتناول هذه المقالة توسيع أقراص نظام التشغيل أو أقراص البيانات. لا يمكنك توسيع حجم وحدات التخزين المخططة.

يبلغ الحد الأقصى لسعة قرص نظام التشغيل 4095 غيغابايت. ومع ذلك، يتم تقسيم العديد من أنظمة التشغيل مع سجل التمهيد الرئيسي (MBR) بشكل افتراضي. يحد MBR من الحجم القابل للاستخدام إلى 2 TiB. إذا كنت بحاجة إلى أكثر من 2 تيرابايت، ففكر في إرفاق أقراص البيانات لتخزين البيانات. إذا كنت بحاجة إلى تخزين البيانات على قرص نظام التشغيل وتتطلب مساحة إضافية، فقم بتحويلها إلى جدول أقسام GUID (GPT).

تحذير

تأكد دائما من أن نظام الملفات الخاص بك في حالة صحية وأن نوع جدول قسم القرص (GPT أو MBR) يمكن أن يدعم الحجم الجديد. قم بنسخ بياناتك احتياطيا قبل إجراء عمليات توسيع القرص. لمزيد من المعلومات، راجع تشغيل سريع لنسخة احتياطية من Azure.

تحديد كائن قرص بيانات Azure داخل نظام التشغيل

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

ابدأ بتحديد العلاقة بين استخدام القرص ونقطة التحميل والجهاز، باستخدام df الأمر .

df -Th
Filesystem                Type      Size  Used Avail Use% Mounted on
/dev/sda1                 xfs        97G  1.8G   95G   2% /
<truncated>
/dev/sdd1                 ext4       32G   30G  727M  98% /opt/db/data
/dev/sde1                 ext4       32G   49M   30G   1% /opt/db/log

هنا يمكنك أن ترى، على سبيل المثال، أن /opt/db/data نظام الملفات ممتلئ تقريبا ويقع على /dev/sdd1 القسم. يظهر إخراج df مسار الجهاز سواء تم تحميل القرص باستخدام مسار الجهاز أو UUID (المفضل) في fstab. لاحظ عمود النوع، الذي يشير إلى تنسيق نظام الملفات. التنسيق مهم لاحقا.

الآن حدد موقع LUN الذي يرتبط /dev/sdd ب عن طريق فحص محتويات /dev/disk/azure/scsi1. يظهر إخراج الأمر التالي ls أن الجهاز المعروف باسم /dev/sdd داخل نظام التشغيل Linux موجود LUN1 عند البحث في مدخل Microsoft Azure.

sudo ls -alF /dev/disk/azure/scsi1/
total 0
drwxr-xr-x. 2 root root 140 Sep  9 21:54 ./
drwxr-xr-x. 4 root root  80 Sep  9 21:48 ../
lrwxrwxrwx. 1 root root  12 Sep  9 21:48 lun0 -> ../../../sdc
lrwxrwxrwx. 1 root root  12 Sep  9 21:48 lun1 -> ../../../sdd
lrwxrwxrwx. 1 root root  13 Sep  9 21:48 lun1-part1 -> ../../../sdd1
lrwxrwxrwx. 1 root root  12 Sep  9 21:54 lun2 -> ../../../sde
lrwxrwxrwx. 1 root root  13 Sep  9 21:54 lun2-part1 -> ../../../sde1

توسيع قرص مدار من Azure

توسعة دون وقت تعطل

يمكنك توسيع الأقراص المدارة دون إلغاء تخصيص الجهاز الظاهري. لا يغير إعداد ذاكرة التخزين المؤقت للمضيف على القرص الخاص بك ما إذا كان يمكنك توسيع قرص بيانات أم لا دون إلغاء تخصيص الجهاز الظاهري الخاص بك.

تحتوي هذه الميزة على القيود التالية.

هام

لا ينطبق هذا القيد على Premium SSD v2 أو Ultra Disks.

إذا كان قرص Standard HDD أو Standard SSD أو Premium SSD 4 تيرابايت أو أقل، فقم بإلغاء تخصيص الجهاز الظاهري وفصل القرص قبل توسيعه إلى ما بعد 4 تيرابايت. إذا كان أحد أنواع الأقراص هذه أكبر من 4 تيرابايت بالفعل، يمكنك توسيعه دون إلغاء تخصيص الجهاز الظاهري وفصل القرص.

التوسيع باستخدام Ultra Disks وPremium SSD v2

توسيع الأقراص الفائقة وأقراص Premium SSD v2 دون وقت تعطل له القيود الإضافية التالية:

  • لا يمكنك توسيع قرص أثناء حدوث نسخة خلفية من البيانات أيضا على هذا القرص. مثال على ذلك هو عندما يتم إعادة تعبئة قرص من اللقطات.
  • يمكنك توسيع الأجهزة الظاهرية باستخدام وحدات تحكم NVMe مع الأقراص الفائقة أو أقراص Premium SSD v2 دون وقت تعطل مع هذه المعاينة العامة. نظرا لأن هذا الإصدار هو معاينة عامة، يجب استخدامه فقط لاختبار وظائف التوسيع دون وقت تعطل. لا تقم بتوسيع الأجهزة الظاهرية في الإنتاج.

في المناطق التالية، يمكنك توسيع الأجهزة الظاهرية التي تستخدم وحدات تحكم NVMe مع الأقراص الفائقة أو أقراص Premium SSD v2 دون وقت تعطل. استخدم إما مدخل Azure أو Azure CLI أو الوحدة النمطية Azure PowerShell:

  • جنوب شرق آسيا
  • جنوب البرازيل
  • وسط كندا
  • وسط غرب ألمانيا
  • وسط الهند (غير مدعوم حاليا على V6 VMs)

في المناطق التالية، يمكنك توسيع الأجهزة الظاهرية التي تستخدم وحدات تحكم NVMe مع الأقراص الفائقة أو أقراص Premium SSD v2 دون وقت تعطل. استخدم فقط Azure CLI أو وحدة Azure PowerShell النمطية. لا يمكنك حاليا استخدام مدخل Microsoft Azure:

  • شرق آسيا
  • غرب وسط الولايات المتحدة (غير مدعوم حاليا على V6 VMs)

السماح بما يصل إلى 10 دقائق حتى ينعكس الحجم الصحيح في أجهزة Windows الظاهرية وأجهزة Linux الظاهرية. بالنسبة لأجهزة Linux الظاهرية، يجب عليك تنفيذ وظيفة Linux rescan. بالنسبة إلى Windows VM الذي لا يحتوي على حمل عمل، يجب عليك تنفيذ وظيفة إعادة تفحص Windows. يمكنك إعادة التفحص على الفور، ولكن إذا كان الوقت في غضون 10 دقائق، فقد تحتاج إلى إعادة التفحص مرة أخرى لعرض الحجم الصحيح.

توسيع قرص Azure المدار

تأكد من تثبيت أحدث إصدار من واجهة Azure CLI وتسجيل الدخول إلى حساب Azure باستخدام az login.

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

في العينات التالية، استبدل أسماء معلمات العنصر النائب مثل myResourceGroupوmyVM بقيمك الخاصة.

هام

إذا كان القرص الخاص بك يفي بالمتطلبات في توسيع دون وقت تعطل، يمكنك تخطي الخطوتين 1 و3.

لا يتم دعم تقليص قرص موجود وقد يؤدي إلى فقدان البيانات.

بعد توسيع الأقراص، قم بتوسيع وحدة التخزين في نظام التشغيل للاستفادة من القرص الأكبر.

  1. لا يمكن تنفيذ العمليات على الأقراص الثابتة الظاهرية مع تشغيل الجهاز الظاهري. بادر بإلغاء تخصيص جهاز ظاهري مع az vm deallocate. في المثال التالي، سيتم إلغاء تخصيص الجهاز الظاهري المُسمى myVM في مجموعة الموارد المُسماة myResourceGroup:

    az vm deallocate --resource-group myResourceGroup --name myVM
    

    يجب إلغاء تخصيص الجهاز الظاهري لتوسيع القرص الثابت الظاهري. إيقاف الجهاز الظاهري مع az vm stop لا يحرر موارد الحوسبة. لتحرير موارد الحساب، استخدم az vm deallocate.

  2. عرض قائمة بالأقراص المُدارة في مجموعة موارد باستخدام قائمة أقراص az. يوضح المثال التالي قائمة بالأقراص المدارة في مجموعة الموارد المسماة myResourceGroup:

    az disk list \
        --resource-group myResourceGroup  \
        --query '[*].{Name:name,size:diskSizeGB,Tier:sku.tier}' \
        --output table
    

    بادر بتوسيع القرص المطلوب باستخدام az disk update. المثال التالي يوسِّع القرص المُدار المُسمى myDataDisk إلى 200 غيغابايت:

    az disk update \
        --resource-group myResourceGroup \
        --name myDataDisk \
        --size-gb 200
    

    عندما توسِّع قرص مُدار، يتم تقريب الحجم المحدث إلى أقرب حجم للقرص المُدار.

  3. ابدأ تشغيل جهازك الظاهري باستخدام az vm start. في المثال التالي، سيبدأ الجهاز الظاهري المُسمى myVM في مجموعة الموارد المُسماة myResourceGroup:

    az vm start --resource-group myResourceGroup --name myVM
    

توسيع قسم القرص ونظام الملفات

يمكنك استخدام العديد من الأدوات لإجراء تغيير حجم القسم. الأدوات المفصلة في باقي هذه المقالة هي نفس الأدوات التي تستخدمها بعض العمليات التلقائية، مثل cloud-init. كما هو موضح هنا، growpart توفر الأداة مع gdisk الحزمة توافقا عالميا مع أقراص GPT لأن الإصدارات القديمة من بعض الأدوات مثل fdisk لا تدعم GPT.

الكشف عن تغيير حجم القرص

إذا استخدمت الإجراء المذكور سابقا لتوسيع قرص بيانات دون وقت تعطل، فلن يتغير حجم القرص المبلغ عنه حتى تتم إعادة تفحص الجهاز. تحدث إعادة التفحص عادة فقط أثناء عملية التمهيد. لاستدعاء هذا rescan عند الطلب، استخدم الإجراء التالي. عند استخدام الأساليب الواردة في هذه المقالة، لاحظ أنه في هذا المثال، يتم تغيير حجم قرص البيانات حاليا /dev/sda وتم تغيير حجمه من 256 غيغابايت إلى 512 غيغابايت.

  1. حدد الحجم الذي تم التعرف عليه حاليا في السطر الأول من الإخراج من fdisk -l /dev/sda:

    sudo fdisk -l /dev/sda
    
    Disk /dev/sda: 256 GiB, 274877906944 bytes, 536870912 sectors
    Disk model: Virtual Disk
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 4096 bytes
    I/O size (minimum/optimal): 4096 bytes / 4096 bytes
    Disklabel type: dos
    Disk identifier: 0x43d10aad
    
    Device     Boot Start       End   Sectors  Size Id Type
    /dev/sda1        2048 536870878 536868831  256G 83 Linux
    
  2. 1 إدراج حرف في ملف إعادة التفحص لهذا الجهاز. لاحظ الإشارة إلى sda في المثال. يتغير معرف القرص إذا تم تغيير حجم جهاز قرص مختلف.

    echo 1 | sudo tee /sys/class/block/sda/device/rescan
    
  3. تحقق من التعرف على حجم القرص الجديد الآن.

    sudo fdisk -l /dev/sda
    
    Disk /dev/sda: 512 GiB, 549755813888 bytes, 1073741824 sectors
    Disk model: Virtual Disk
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 4096 bytes
    I/O size (minimum/optimal): 4096 bytes / 4096 bytes
    Disklabel type: dos
    Disk identifier: 0x43d10aad
    
    Device     Boot Start       End   Sectors  Size Id Type
    /dev/sda1        2048 536870878 536868831  256G 83 Linux
    

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

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

زيادة حجم قرص نظام التشغيل

تنطبق الإرشادات التالية على توزيعات Linux المعتمدة.

قبل المتابعة، قم بعمل نسخة احتياطية كاملة من الجهاز الظاهري الخاص بك أو، كحد أدنى، أخذ لقطة من قرص نظام التشغيل الخاص بك.

في Ubuntu 16.x والإصدارات الأحدث، يتم توسيع القسم الجذر لقرص نظام التشغيل ونظام الملفات تلقائيا لاستخدام جميع المساحة المتجاورة الحرة على القرص الجذر بواسطة cloud-init. يجب أن تتوفر كمية صغيرة من المساحة الحرة لعملية تغيير الحجم. في هذه الحالة، التسلسل هو:

  1. قم بزيادة حجم قرص نظام التشغيل كما هو موضح سابقا.
  2. أعد تشغيل الجهاز الظاهري، ثم قم بالوصول إلى الجهاز الظاهري باستخدام حساب المستخدم الجذر .
  3. تحقق من أن قرص نظام التشغيل يعرض الآن زيادة حجم نظام الملفات.

كما هو موضح في المثال التالي، تم تغيير حجم قرص نظام التشغيل من المدخل إلى 100 غيغابايت. /dev/sda1 يعرض نظام الملفات الذي تم تحميله / الآن 97 غيغابايت.

df -Th
Filesystem     Type      Size  Used Avail Use% Mounted on
udev           devtmpfs  314M     0  314M   0% /dev
tmpfs          tmpfs      65M  2.3M   63M   4% /run
/dev/sda1      ext4       97G  1.8G   95G   2% /
tmpfs          tmpfs     324M     0  324M   0% /dev/shm
tmpfs          tmpfs     5.0M     0  5.0M   0% /run/lock
tmpfs          tmpfs     324M     0  324M   0% /sys/fs/cgroup
/dev/sda15     vfat      105M  3.6M  101M   4% /boot/efi
/dev/sdb1      ext4       20G   44M   19G   1% /mnt
tmpfs          tmpfs      65M     0   65M   0% /run/user/1000
user@ubuntu:~#

التوسيع دون دعم VM SKU الكلاسيكي لوقت التعطل

إذا كنت تستخدم VM SKU كلاسيكي، فقد لا يدعم توسيع الأقراص دون وقت تعطل.

استخدم البرنامج النصي PowerShell التالي لتحديد وحدات SKU للجهاز الظاهري المتوفرة مع:

Connect-AzAccount
$subscriptionId="yourSubID"
$location="desiredRegion"
Set-AzContext -Subscription $subscriptionId
$vmSizes=Get-AzComputeResourceSku -Location $location | where{$_.ResourceType -eq 'virtualMachines'}

foreach($vmSize in $vmSizes){
    foreach($capability in $vmSize.Capabilities)
    {
       if(($capability.Name -eq "EphemeralOSDiskSupported" -and $capability.Value -eq "True") -or ($capability.Name -eq "PremiumIO" -and $capability.Value -eq "True") -or ($capability.Name -eq "HyperVGenerations" -and $capability.Value -match "V2"))
        {
            $vmSize.Name
       }
   }
}