توسيع الأقراص الثابتة الظاهرية على جهاز ظاهري يعمل بنظام Linux
ينطبق على: ✔️ أجهزة Linux الظاهرية ✔️ مجموعات مقياس مرنة
تغطي هذه المقالة توسيع أقراص نظام التشغيل وأقراص البيانات لجهاز 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
توسعة دون وقت تعطل
يمكنك توسيع الأقراص المدارة دون إلغاء تخصيص الجهاز الظاهري. لا يغير إعداد ذاكرة التخزين المؤقت للمضيف على القرص الخاص بك ما إذا كان يمكنك توسيع قرص بيانات أم لا دون إلغاء تخصيص الجهاز الظاهري الخاص بك.
تحتوي هذه الميزة على القيود التالية:
- مدعوم فقط لأقراص البيانات.
- إذا كان قرص SSD القياسي أو Standard SSD أو Premium SSD 4 تيرابايت أو أقل، فقم بإلغاء تخصيص الجهاز الظاهري وفصل القرص قبل توسيعه إلى ما بعد 4 تيرابايت. إذا كان أحد أنواع الأقراص هذه أكبر من 4 تيرابايت بالفعل، يمكنك توسيعه دون إلغاء تخصيص الجهاز الظاهري وفصل القرص. لا ينطبق هذا على Premium SSD v2 أو Ultra Disks.
- غير معتمد للأقراص المشتركة.
- تثبيت واستخدام إما:
- واجهة Azure CLI الأحدث
- وحدة Azure PowerShell الأحدث
- مدخل Microsoft Azure
- أو قالب Azure Resource Manager مع إصدار واجهة برمجة التطبيقات الذي يكون
2021-04-01
أو أحدث.
- غير متوفر على بعض الأجهزة الظاهرية الكلاسيكية. استخدم هذا البرنامج النصي للحصول على قائمة بوحدات SKU للأجهزة الظاهرية الكلاسيكية التي تدعم التوسع دون وقت تعطل.
التوسيع باستخدام Ultra Disk وPremium SSD v2
توسيع الأقراص الفائقة وأقراص Premium SSD v2 لها القيود الإضافية التالية:
- لا يمكنك توسيع قرص أثناء حدوث نسخة خلفية من البيانات أيضا على هذا القرص، كما هو الحال عند إعادة تعبئة قرص من اللقطات.
- لا يمكنك توسيع جهاز ظاهري يستخدم وحدات تحكم NVMe لأقراص Ultra أو أقراص Premium SSD v2 دون وقت تعطل.
هام
السماح بما يصل إلى 10 دقائق حتى ينعكس الحجم الصحيح في أجهزة Windows الظاهرية وأجهزة Linux الظاهرية. بالنسبة لأجهزة Linux الظاهرية، يجب عليك تنفيذ وظيفة Linux rescan. بالنسبة إلى Windows VM الذي لا يحتوي على حمل عمل، يجب عليك تنفيذ وظيفة إعادة تفحص Windows. يمكنك إعادة التفحص على الفور، ولكن إذا كان في غضون 10 دقائق، فقد تحتاج إلى إعادة التفحص مرة أخرى لعرض الحجم الصحيح.
التوفر الإقليمي
يتوفر حاليا تغيير حجم أقراص Ultra وأقراص Premium SSD v2 في جميع مناطق Premium SSD v2 و Ultra المدعومة.
توسيع Azure Managed Disk
تأكد من تثبيت أحدث إصدار من واجهة Azure CLI وتسجيل الدخول إلى حساب Azure باستخدام az login.
تتطلب هذه المقالة جهاز ظاهري موجود في Azure مع قرص بيانات واحد على الأقل مُرفق ومُعد. إذا لم يكن لديك بالفعل جهاز ظاهري يمكنك استخدامه، فشاهد إنشاء جهاز ظاهري وإعداده باستخدام أقراص البيانات.
في النماذج التالية، استبدل أسماء معلمات الأمثلة مثل myResourceGroup و myVM بالقيم الخاصة بك.
هام
إذا كان القرص الخاص بك يفي بالمتطلبات في التوسع دون وقت تعطل، يمكنك تخطي الخطوتين 1 و3.
لا يتوفر دعم تقليص قرص موجود، وقد يؤدي ذلك إلى فقد البيانات.
بعد توسيع الأقراص، تحتاج إلى توسيع وحدة التخزين في نظام التشغيل للاستفادة من القرص الأكبر.
لا يمكن تنفيذ العمليات على الأقراص الثابتة الظاهرية مع تشغيل الجهاز الظاهري. بادر بإلغاء تخصيص جهاز ظاهري مع az vm deallocate. في المثال التالي، سيتم إلغاء تخصيص الجهاز الظاهري المُسمى myVM في مجموعة الموارد المُسماة myResourceGroup:
az vm deallocate --resource-group myResourceGroup --name myVM
إشعار
يجب إلغاء تخصيص الجهاز الظاهري لتوسيع القرص الثابت الظاهري. إيقاف الجهاز الظاهري مع
az vm stop
لا يحرر موارد الحوسبة. لتحرير موارد الحساب، استخدمaz vm deallocate
.عرض قائمة بالأقراص المُدارة في مجموعة موارد باستخدام قائمة أقراص 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
إشعار
عندما توسِّع قرص مُدار، يتم تقريب الحجم المحدث إلى أقرب حجم للقرص المُدار. للحصول على جدول بأحجام القرص المدارة المتاحة والمستواه، راجع فهم فوترة Azure Disk Storage.
ابدأ تشغيل جهازك الظاهري باستخدام az vm start. في المثال التالي، سيبدأ الجهاز الظاهري المُسمى myVM في مجموعة الموارد المُسماة myResourceGroup:
az vm start --resource-group myResourceGroup --name myVM
توسيع قسم القرص ونظام الملفات
إشعار
في حين أن هناك العديد من الأدوات التي يمكن استخدامها لإجراء تغيير حجم القسم، فإن الأدوات المفصلة في الجزء المتبقي من هذا المستند هي نفس الأدوات المستخدمة من قبل بعض العمليات التلقائية مثل cloud-init. كما هو موضح هنا، growpart
توفر الأداة التي تحتوي على gdisk
الحزمة توافقا عالميا مع أقراص جدول أقسام GUID (GPT)، حيث لا تدعم الإصدارات القديمة من بعض الأدوات مثل fdisk
GPT.
الكشف عن تغيير حجم القرص
إذا تم توسيع قرص بيانات دون وقت تعطل باستخدام الإجراء المذكور سابقا، فلن يتغير حجم القرص المبلغ عنه حتى تتم إعادة تفحص الجهاز، والذي يحدث عادة فقط أثناء عملية التمهيد. يمكن استدعاء هذا rescan عند الطلب مع الإجراء التالي. في هذا المثال، نجد باستخدام الأساليب في هذا المستند أن قرص البيانات حاليا /dev/sda
وتم تغيير حجمه من 256 غيغابايت إلى 512 غيغابايت.
تحديد الحجم الذي تم التعرف عليه حاليا في السطر الأول من الإخراج من
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
1
إدراج حرف في ملف إعادة التفحص لهذا الجهاز. لاحظ مرجع sda في المثال. سيتغير معرف القرص إذا تم تغيير حجم جهاز قرص مختلف.echo 1 | sudo tee /sys/class/block/sda/device/rescan
تحقق من التعرف على حجم القرص الجديد الآن
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، شريطة أن يكون هناك القليل من المساحة الفارغة لعملية تغيير الحجم. في هذه الحالة، يكون التسلسل ببساطة
- زيادة حجم قرص نظام التشغيل كما هو مفصل سابقا
- أعد تشغيل الجهاز الظاهري، ثم قم بالوصول إلى الجهاز الظاهري باستخدام حساب المستخدم الجذر .
- تحقق من أن قرص نظام التشغيل يعرض الآن زيادة في حجم نظام الملفات.
كما هو موضح في المثال التالي، تم تغيير حجم قرص نظام التشغيل من المدخل إلى 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
}
}
}