ينطبق على: ✔️ أجهزة لينكس الافتراضية ✔️ Windows الآلات الافتراضية ✔️ مجموعات مقياس مرنة
توضح لك هذه المقالة كيفية تغيير حجم الجهاز الظاهري للجهاز الظاهري الموجود.
بعد إنشاء آلة افتراضية، يمكنك تكبيرها أو تصغيرها عن طريق تغيير حجم الجهاز الافتراضي. تعمل هذه العملية سواء كانت الآلة الافتراضية تعمل حاليا أو تم التعامل معها بالفعل.
في بعض الحالات، يجب عليك التعامل مع موقع الجهاز الافتراضي قبل تغيير الحجم. قد يكون من الضروري تخصيص المعاملات إذا لم يكن الحجم الجديد متوفرا على مجموعة الأجهزة التي تستضيف الجهاز الحالي. حتى عندما لا يكون تخصيص الصفقات مطلوبا، فإن تغيير حجم جهاز افتراضي يعمل سيؤدي إلى إعادة تشغيله. لهذا السبب، يجب اعتبار تغيير حجم الجهاز الافتراضي عملية مزعجة، خاصة بالنسبة لأحمال العمل ذات الحالة.
Warning
إذا كان الجهاز الظاهري قيد التشغيل حاليا، فسيؤدي تغيير حجمه إلى إعادة تشغيله.
يؤدي إلغاء تخصيص الجهاز الظاهري أيضا إلى إصدار أي عناوين IP ديناميكية معينة للجهاز الظاهري. لا يتأثر نظام التشغيل وأقراص البيانات.
إذا فشلت عملية تغيير الحجم، فسيستمر طراز الجهاز الظاهري في عرض الحجم المطلوب، ولكن سيستمر الجهاز الظاهري في العمل على حجمه السابق حتى يتم تخصيص تغيير الحجم بنجاح. ينطبق هذا السلوك على كل من بوابة Azure وجميع عمليات GET، حيث أن الحجم المعروض يعكس دائما أحدث تكوين مطبق، وليس حجم التشغيل الفعلي.
اختر رمز التخزين التعريفي المناسب
عند تغيير حجم جهاز ظاهري، من المهم اختيار SKU المناسب استنادا إلى الإشارات من الجهاز الظاهري لتحديد ما إذا كنت بحاجة إلى المزيد من وحدة المعالجة المركزية أو الذاكرة أو سعة التخزين:
- إذا كان الجهاز الظاهري يقوم بتشغيل حمل عمل كثيف الاستخدام لوحدة المعالجة المركزية، مثل خادم قاعدة بيانات أو خادم ويب ذو نسبة استخدام مرور عالية، فقد تحتاج إلى اختيار SKU مع المزيد من مراكز وحدة المعالجة المركزية. لمزيد من المعلومات، راجع حساب الأحجام المحسنة .
- إذا كان الجهاز الظاهري يقوم بتشغيل حمل عمل كثيف الذاكرة، مثل نموذج التعلم الآلي أو تطبيق البيانات الضخمة، فقد تحتاج إلى اختيار SKU بذاكرة أكبر. لمزيد من المعلومات، راجع أحجام الذاكرة المحسنة .
- إذا نفدت سعة التخزين في الجهاز الظاهري، فقد تحتاج إلى اختيار SKU بسعة تخزين أكبر. لمزيد من المعلومات، راجع أحجام التخزين المحسنة .
- إذا كانت آلتك الافتراضية تستخدم Premium Storage، تأكد من اختيار نسخة s من الحجم للحصول على دعم Premium Storage. على سبيل المثال ، اختر Standard_E4s_v3 بدلا من Standard_E4_v3.
لمزيد من المعلومات حول اختيار رمز التخزين التعريفي المناسب ، يمكنك استخدام الموارد التالية:
-
أحجام للآلات الافتراضية في Azure: تسرد هذه المقالة جميع أحجام الآلات الافتراضية المتوفرة في Azure.
-
Azure VM Selector: تساعدك هذه الأداة في العثور على وحدة SKU المناسبة للجهاز الافتراضي بناء على نوع عبء العمل، ونظام التشغيل والبرمجيات، ومنطقة النشر.
القيود
يدعم تغيير الحجم بين أحجام الأجهزة الافتراضية التي تحتوي على قرص مؤقت محلي وأحجام الأجهزة الافتراضية التي لا تحتوي على قرص مؤقت محلي لأجهزة لينكس. بالنسبة لأجهزة Windows الافتراضية، يسمح فقط بتركيبات إعادة الحجم التالية:
- الجهاز الظاهري (مع القرص المؤقت المحلي) -> الجهاز الظاهري (مع القرص المؤقت المحلي)؛ و
- الجهاز الظاهري (بدون قرص مؤقت محلي) -> الجهاز الظاهري (بدون قرص مؤقت محلي).
لحل بديل، انظر كيف يمكنني الانتقال من حجم جهاز افتراضي يحتوي على قرص مؤقت محلي إلى حجم جهاز افتراضي بدون قرص مؤقت محلي؟ يمكن استخدام الحل المؤقت لتغيير حجم جهاز افتراضي بدون قرص مؤقت محلي إلى جهاز افتراضي مع قرص مؤقت محلي. يمكنك إنشاء لقطة للجهاز الظاهري بدون قرص مؤقت محلي، > وإنشاء قرص من اللقطة > ، وإنشاء جهاز ظاهري من القرص بحجم الجهاز الظاهري المناسب الذي يدعم الأجهزة الظاهرية ذات القرص المؤقت المحلي.
لا يمكنك تغيير حجم جهاز ظاهري يحتوي على جهاز ظاهري يستند إلى SCSI إلى حجم جهاز ظاهري يحتوي على جهاز ظاهري بعيد يدعم NVMe.
للحصول على حل بديل، راجع كيف يمكنني تغيير حجم جهاز ظاهري يستند إلى SCSI إلى جهاز ظاهري بعيد يدعم NVMe بحجم مختلف؟
تغيير حجم الجهاز الظاهري
حدد خيارا لتغيير حجم الجهاز الظاهري:
لتغيير حجم الجهاز الافتراضي باستخدام بوابة Azure:
- افتح بوابة Azure.
- اكتب الأجهزة الظاهرية في البحث. ضمن الخدمات، حدد الأجهزة الظاهرية.
- في صفحة الأجهزة الظاهرية ، حدد الجهاز الظاهري الذي تريد تغيير حجمه.
- في القائمة اليمنى، في قسم التوفر + المقياس ، حدد الحجم.
- اختر حجما متوافقا جديدا من قائمة الأحجام المتوفرة ثم حدد تغيير الحجم.
إذا كان الجهاز الظاهري لا يزال قيد التشغيل ولا ترى الحجم الذي تريده في القائمة، فقد يكشف إيقاف الجهاز الظاهري عن المزيد من الأحجام.
لتغيير حجم جهاز ظاهري باستخدام PowerShell:
قم بتعيين مجموعة الموارد ومتغيرات اسم الجهاز الظاهري. استبدل القيم بمعلومات الجهاز الظاهري الذي تريد تغيير حجمه.
$resourceGroup = "myResourceGroup"
$vmName = "myVM"
سرد أحجام الأجهزة الظاهرية المتوفرة على مجموعة الأجهزة حيث يتم استضافة الجهاز الظاهري.
Get-AzVMSize -ResourceGroupName $resourceGroup -VMName $vmName
قم بتغيير حجم الجهاز الظاهري إلى الحجم الجديد.
$vm = Get-AzVM -ResourceGroupName $resourceGroup -VMName $vmName
$vm.HardwareProfile.VmSize = "<newVMsize>"
Update-AzVM -VM $vm -ResourceGroupName $resourceGroup
استخدم PowerShell لتغيير حجم جهاز ظاهري غير موجود في مجموعة توفر.
يقوم البرنامج النصي PowerShell Cloud shell بتهيئة المتغيرات $resourceGroup، $vmومع $size اسم مجموعة الموارد واسم الجهاز الظاهري وحجم الجهاز الظاهري المطلوب على التوالي. ثم يسترجع كائن الآلة الافتراضية من Azure باستخدام Get-AzVM cmdlet. يقوم VmSize البرنامج النصي بتعديل خاصية ملف تعريف أجهزة الجهاز الظاهري إلى الحجم المطلوب. وأخيرا، يطبق هذه التغييرات على الجهاز الافتراضي في Azure باستخدام Update-AzVM cmdlet.
# Set variables
$resourceGroup = 'myResourceGroup'
$vmName = 'myVM'
$size = 'Standard_DS3_v2'
# Get the VM
$vm = Get-AzVM -ResourceGroupName $resourceGroup -Name $vmName
# Change the VM size
$vm.HardwareProfile.VmSize = $size
# Update the VM
Update-AzVM -ResourceGroupName $resourceGroup -VM $vm
كبديل لتشغيل السكريبت في Azure Cloud Shell، يمكنك أيضا تنفيذه محليا على جهازك. يتضمن هذا الإصدار المحلي من سكريبت PowerShell خطوات إضافية لاستيراد وحدة Azure ومصادقة حساب Azure الخاص بك.
إشعار
قد يتطلب PowerShell المحلي إعادة تشغيل الجهاز الظاهري ليصبح ساري المفعول.
# Import the Azure module
Import-Module Az
# Login to your Azure account
Connect-AzAccount
# Set variables
$resourceGroup = 'myResourceGroup'
$vmName = 'myVM'
$size = 'Standard_DS3_v2'
# Select the subscription
Select-AzSubscription -SubscriptionId '<subscriptionID>'
# Get the VM
$vm = Get-AzVM -ResourceGroupName $resourceGroup -Name $vmName
# Change the VM size
$vm.HardwareProfile.VmSize = $size
# Update the VM
Update-AzVM -ResourceGroupName $resourceGroup -VM $vm
استخدام PowerShell لتغيير حجم جهاز ظاهري في مجموعة توفر
إذا لم يكن الحجم الجديد لجهاز ظاهري في مجموعة توفر متوفرا على مجموعة الأجهزة التي تستضيف الجهاز الظاهري حاليا، فأنت بحاجة إلى إلغاء تخصيص جميع الأجهزة الظاهرية في مجموعة التوفر لتغيير حجم الجهاز الظاهري. قد تحتاج أيضا إلى تحديث حجم الأجهزة الظاهرية الأخرى في مجموعة التوفر بعد تغيير حجم جهاز ظاهري واحد. لتغيير حجم جهاز ظاهري في مجموعة توفر، قم بتشغيل البرنامج النصي أدناه.
يقوم هذا البرنامج النصي بتعيين المتغيرات $resourceGroup، $vmName، $newVmSizeو .$availabilitySetName ثم يتحقق مما إذا كان حجم الجهاز الظاهري المطلوب متاحا باستخدام Get-AzVMSize والتحقق مما إذا كان الإخراج يحتوي على الحجم المطلوب. إذا لم يكن الحجم المطلوب متاحا، يقوم البرنامج النصي بإلغاء تخصيص جميع الأجهزة الظاهرية في مجموعة التوفر، وتغيير حجمها، وبدء تشغيلها مرة أخرى. إذا كان الحجم المطلوب متاحا، يقوم البرنامج النصي بتغيير حجم الجهاز الظاهري.
استبدل قيم ، ، وقيم $resourceGroup قيم ، وبقيمتك$vmName. $newVmSize$availabilitySetName
# Set variables
$resourceGroup = "myResourceGroup"
$vmName = "myVM"
$newVmSize = "<newVmSize>"
$availabilitySetName = "<availabilitySetName>"
# Check if the desired VM size is available
$availableSizes = Get-AzVMSize `
-ResourceGroupName $resourceGroup `
-VMName $vmName |
Select-Object -ExpandProperty Name
if ($availableSizes -notcontains $newVmSize) {
# Deallocate all VMs in the availability set
$as = Get-AzAvailabilitySet `
-ResourceGroupName $resourceGroup `
-Name $availabilitySetName
$virtualMachines = $as.VirtualMachinesReferences | Get-AzResource | Get-AzVM
$virtualMachines | Stop-AzVM -Force -NoWait
# Resize and restart the VMs in the availability set
$virtualMachines | Foreach-Object { $_.HardwareProfile.VmSize = $newVmSize }
$virtualMachines | Update-AzVM
$virtualMachines | Start-AzVM
exit
}
# Resize the VM
$vm = Get-AzVM `
-ResourceGroupName $resourceGroup `
-VMName $vmName
$vm.HardwareProfile.VmSize = $newVmSize
Update-AzVM `
-VM $vm `
-ResourceGroupName $resourceGroup
لتغيير حجم الجهاز الافتراضي، تحتاج إلى تحديث Azure CLI مثبت ويجب أن تكون مسجلا الدخول إلى حسابك Azure باستخدام az sign-in.
يتحقق البرنامج النصي أدناه مما إذا كان حجم الجهاز الظاهري المطلوب متاحا قبل تغيير الحجم. إذا لم يكن الحجم المطلوب متاحا، يخرج البرنامج النصي برسالة خطأ. إذا كان الحجم المطلوب متاحا، يقوم البرنامج النصي بإلغاء تخصيص الجهاز الظاهري، وتغيير حجمه، وبدء تشغيله مرة أخرى.
استبدل قيم ، resourceGroupوقيم vm ، وبقيمتكsize.
# Set variables
resourceGroup=myResourceGroup
vm=myVM
size=Standard_DS3_v2
# Check if the desired VM size is available
if ! az vm list-vm-resize-options --resource-group $resourceGroup --name $vm --query "[].name" | grep -q $size; then
echo "The desired VM size is not available."
exit 1
fi
# Deallocate the VM
az vm deallocate --resource-group $resourceGroup --name $vm
# Resize the VM
az vm resize --resource-group $resourceGroup --name $vm --size $size
# Start the VM
az vm start --resource-group $resourceGroup --name $vm
استخدم Azure CLI لتغيير حجم جهاز افتراضي في مجموعة توافر.
يحدد البرنامج النصي أدناه المتغيرات resourceGroup، vmو size. ثم يتحقق مما إذا كان حجم الجهاز الظاهري المطلوب متاحا باستخدام az vm list-vm-resize-options والتحقق مما إذا كان الإخراج يحتوي على الحجم المطلوب. إذا لم يكن الحجم المطلوب متاحا، يخرج البرنامج النصي برسالة خطأ. إذا كان الحجم المطلوب متاحا، يقوم البرنامج النصي بإلغاء تخصيص الجهاز الظاهري، وتغيير حجمه، وبدء تشغيله مرة أخرى.
استبدل قيم ، resourceGroupوقيم vm ، وبقيمتكsize.
# Set variables
resourceGroup="myResourceGroup"
vmName="myVM"
newVmSize="<newVmSize>"
availabilitySetName="<availabilitySetName>"
# Check if the desired VM size is available
availableSizes=$(az vm list-vm-resize-options \
--resource-group $resourceGroup \
--name $vmName \
--query "[].name" \
--output tsv)
if [[ ! $availableSizes =~ $newVmSize ]]; then
# Deallocate all VMs in the availability set
vmIds=$(az vmss list-instances \
--resource-group $resourceGroup \
--name $availabilitySetName \
--query "[].instanceId" \
--output tsv)
az vm deallocate \
--ids $vmIds \
--no-wait
# Resize and restart the VMs in the availability set
az vmss update \
--resource-group $resourceGroup \
--name $availabilitySetName \
--set virtualMachineProfile.hardwareProfile.vmSize=$newVmSize
az vmss start \
--resource-group $resourceGroup \
--name $availabilitySetName \
--instance-ids $vmIds
exit
fi
# Resize the VM
az vm resize \
--resource-group $resourceGroup \
--name $vmName \
--size $newVmSize
الخطوات التالية