توسيع الأقراص الثابتة الظاهرية على جهاز ظاهري يعمل بنظام 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.
يمكنك توسيع الأقراص المدارة دون إلغاء تخصيص الجهاز الظاهري. لا يغير إعداد ذاكرة التخزين المؤقت للمضيف على القرص الخاص بك ما إذا كان يمكنك توسيع قرص بيانات أم لا دون إلغاء تخصيص الجهاز الظاهري الخاص بك.
تحتوي هذه الميزة على القيود التالية:
مدعوم فقط لأقراص البيانات.
إذا كان قرص SSD القياسي أو Standard SSD أو Premium SSD 4 تيرابايت أو أقل، فقم بإلغاء تخصيص الجهاز الظاهري وفصل القرص قبل توسيعه إلى ما بعد 4 تيرابايت. إذا كان أحد أنواع الأقراص هذه أكبر من 4 تيرابايت بالفعل، يمكنك توسيعه دون إلغاء تخصيص الجهاز الظاهري وفصل القرص. لا ينطبق هذا على Premium SSD v2 أو Ultra Disks.
أو قالب Azure Resource Manager مع إصدار واجهة برمجة التطبيقات الذي يكون 2021-04-01 أو أحدث.
غير متوفر على بعض الأجهزة الظاهرية الكلاسيكية. استخدم هذا البرنامج النصي للحصول على قائمة بوحدات SKU للأجهزة الظاهرية الكلاسيكية التي تدعم التوسع دون وقت تعطل.
لا يمكنك توسيع قرص أثناء حدوث نسخة خلفية من البيانات أيضا على هذا القرص، كما هو الحال عند ترطيب قرص من اللقطات.
لا يمكنك توسيع جهاز ظاهري يستخدم وحدات تحكم NVMe لأقراص Ultra أو أقراص Premium SSD v2 دون وقت تعطل.
التوفر الإقليمي
يتوفر حاليا تغيير حجم أقراص Ultra وأقراص Premium SSD v2 في جميع مناطق Premium SSD v2 و Ultra المدعومة باستثناء ما يلي:
US West 2
أوروبا الغربية
شرق الولايات المتحدة
توسيع 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 غيغابايت.
في المثال السابق، يمكننا أن نرى أنه تم زيادة حجم نظام الملفات لقرص نظام التشغيل.
اتبع الإجراء الموضح مسبقا لتوسيع القرص في البنية الأساسية ل Azure.
الوصول إلى الجهاز الظاهري كمستخدم جذر باستخدام sudo الأمر بعد تسجيل الدخول كمستخدم آخر:
sudo -i
استخدم الأمر lsblk لتحديد وحدة التخزين المنطقية (LV) التي يتم تركيبها على جذر نظام الملفات (/). في هذه الحالة، نرى أن rootvg-rootlv مثبت على /. إذا كان نظام ملفات مختلف بحاجة إلى تغيير الحجم، فاستبدل LV ونقطة التحميل في هذا القسم.
تحقق مما إذا كانت هناك مساحة حرة في مجموعة وحدة تخزين LVM (VG) التي تحتوي على قسم الجذر. إذا كانت هناك مساحة خالية، فانتقل إلى الخطوة 12.
vgdisplay rootvg
--- Volume group ---
VG Name rootvg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 7
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 6
Open LV 6
Max PV 0
Cur PV 1
Act PV 1
VG Size <63.02 GiB
PE Size 4.00 MiB
Total PE 16132
Alloc PE / Size 6400 / 25.00 GiB
Free PE / Size 9732 / <38.02 GiB
VG UUID lPUfnV-3aYT-zDJJ-JaPX-L2d7-n8sL-A9AgJb
في هذا المثال، يوضح الخط FREE PE / Size أن هناك 38.02 غيغابايت مجانا في مجموعة وحدة التخزين، حيث تم تغيير حجم القرص بالفعل.
قم بتثبيت حزمة cloud-utils-growpart لتوفير الأمر growpart ، وهو مطلوب لزيادة حجم قرص نظام التشغيل ومعالج gdisk لتخطيطات قرص GPT يتم تثبيت هذه الحزمة مسبقا على معظم صور السوق
dnf install cloud-utils-growpart gdisk
في الإصدارات 7 من Red Hat والإصدارات أدناه، يمكنك استخدام yum الأمر بدلا من dnf.
حدد القرص والقسم الذي يحتوي على وحدة التخزين الفعلية LVM (PV) أو وحدات التخزين في مجموعة وحدة التخزين المسماة rootvg باستخدام الأمر pvscan . لاحظ الحجم والمساحة الخالية المُدرجة بين قوسين ([ و ]).
قم بتوسيع القسم الذي يحتوي على PV هذا باستخدام growpart واسم الجهاز ورقم القسم. يؤدي القيام بذلك إلى توسيع القسم المحدد لاستخدام جميع المساحة الحرة المتجاورة على الجهاز.
قم بتوسيع LV بالمقدار المطلوب، والذي لا يحتاج إلى أن يكون كل المساحة الحرة في مجموعة وحدة التخزين. في المثال التالي، يتم تغيير حجم /dev/mapper/rootvg-rootlv من 2 غيغابايت إلى 12 غيغابايت (بزيادة 10 غيغابايت) من خلال الأمر التالي. يقوم هذا الأمر أيضا بتغيير حجم نظام الملفات على LV.
lvresize يستدعي الأمر تلقائيا أمر تغيير الحجم المناسب لنظام الملفات في LV. تحقق مما إذا كان /dev/mapper/rootvg-rootlv، الذي يتم تحميله على ، يحتوي على /حجم نظام ملفات متزايد باستخدام df -Th الأمر :
مثال على الإخراج:
df -Th /
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/rootvg-rootlv xfs 12G 71M 12G 1% /
إشعار
لاستخدام نفس الإجراء لتغيير حجم أي وحدة تخزين منطقية أخرى، قم بتغيير اسم lv في الخطوة 12.
اتبع الإجراء الموضح مسبقا لتوسيع القرص في البنية الأساسية ل Azure.
الوصول إلى الجهاز الظاهري كمستخدم جذر باستخدام sudo الأمر بعد تسجيل الدخول كمستخدم آخر:
sudo -i
عند إعادة تشغيل الجهاز الظاهري بالكامل، قم بتنفيذ الخطوات التالية:
باشر بتثبيت حزمة cloud-utils-growpart لتوفير الأمر growpart، وهو أمر مطلوب لزيادة حجم قرص نظام التشغيل ومعالج gdisk لتخطيطات قرص GPT. هذه الحزمة مثبتة مسبقا على معظم صور السوق
dnf install cloud-utils-growpart gdisk
في الإصدارات 7 من Red Hat والإصدارات أدناه، يمكنك استخدام yum الأمر بدلا من dnf.
استخدم الأمر lsblk -f للتحقق من نوع القسم ونظام الملفات الذي يحتفظ بالقسم الجذر (/)
للتحقق، ابدأ بإدراج جدول أقسام قرص sda مع gdisk. في هذا المثال، نرى قرص 48.0 غيغابايت مع القسم #2 بحجم 29.0 غيغابايت. تم توسيع القرص من 30 غيغابايت إلى 48 غيغابايت في مدخل Azure.
gdisk -l /dev/sda
GPT fdisk (gdisk) version 0.8.10
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Disk /dev/sda: 100663296 sectors, 48.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 78CDF84D-9C8E-4B9F-8978-8C496A1BEC83
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 62914526
Partitions will be aligned on 2048-sector boundaries
Total free space is 6076 sectors (3.0 MiB)
Number Start (sector) End (sector) Size Code Name
1 1026048 2050047 500.0 MiB 0700
2 2050048 62912511 29.0 GiB 0700
14 2048 10239 4.0 MiB EF02
15 10240 1024000 495.0 MiB EF00 EFI System Partition
باشر بتوسيع القسم الخاص بالجذر، في هذه الحالة sda2 باستخدام الأمر growpart. يؤدي استخدام هذا الأمر إلى توسيع القسم لاستخدام جميع المساحة المتجاورة على القرص.
الآن اطبع جدول الأقسام الجديد باستخدام gdisk مرةً أخرى. لاحظ أن القسم 2 الآن بحجم 47.0 غيغابايت
gdisk -l /dev/sda
GPT fdisk (gdisk) version 0.8.10
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Disk /dev/sda: 100663296 sectors, 48.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 78CDF84D-9C8E-4B9F-8978-8C496A1BEC83
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 100663262
Partitions will be aligned on 2048-sector boundaries
Total free space is 4062 sectors (2.0 MiB)
Number Start (sector) End (sector) Size Code Name
1 1026048 2050047 500.0 MiB 0700
2 2050048 100663261 47.0 GiB 0700
14 2048 10239 4.0 MiB EF02
15 10240 1024000 495.0 MiB EF00 EFI System Partition
بادر بتوسيع نظام الملفات على القسم باستخدام xfs_growfs، وهو مناسب لنظام RedHat القياسي الذي تم إنشاؤه في السوق: