Применимо к: ✔️ Виртуальные машины Linux ✔️ Виртуальные машины Windows ✔️ Гибкие масштабируемые наборы
В этой статье показано, как изменить размер виртуальной машины существующей виртуальной машины.
После того как вы создали виртуальную машину, ее можно масштабировать, изменяя размер. В некоторых случаях сначала необходимо освободить виртуальную машину. Размещение сделки может потребоваться, если новый размер недоступен в том же аппаратном кластере, который в настоящее время размещает виртуальную машину. Важно понимать, что даже если размещение сделки не требуется, если виртуальная машина в настоящее время запущена, изменение его размера приведет к перезапуску. По этой причине следует рассмотреть возможность изменения размера виртуальной машины в качестве разрушительной процедуры, особенно для рабочих нагрузок с отслеживанием состояния, размещенных на виртуальной машине.

Если виртуальная машина использует хранилище класса Premium, выберите версию размера s, чтобы получить поддержку этого хранилища. Например, выберите Standard_E4s_v3 вместо Standard_E4_v3.
Изменение размера виртуальной машины
- Откройте портал Azure.
- В поле поиска введите виртуальные машины. В разделе Службы выберите Виртуальные машины.

- На странице Виртуальные машины выберите виртуальную машину, которую нужно перезапустить.

- В меню слева выберите Размер. Выберите новый совместимый размер из списка доступных размеров

- После выбора размера нажмите кнопку "Изменить размер".

Примечание.
Если виртуальная машина запущена в данный момент, изменение его размера приведет к перезапуску.
Если виртуальная машина работает, но нужный размер не отображается в списке, можно остановить эту виртуальную машину, чтобы увидеть дополнительные размеры.
Предупреждение
Освобождение виртуальной машины также освобождает все назначенные ей динамические IP-адреса. Это не влияет на диски ОС и данных.
Если вы изменяете размер рабочей виртуальной машины, рассмотрите возможность резервирования емкости Azure для резервирования вычислительной мощности в регионе.
Задайте переменные имени группы ресурсов и имени виртуальной машины. Замените значения данными виртуальной машины, размер которой необходимо изменить.
$resourceGroup = "myResourceGroup"
$vmName = "myVM"
Выведите список размеров виртуальной машины, доступных в кластере оборудования, в котором она размещена.
Get-AzVMSize -ResourceGroupName $resourceGroup -VMName $vmName
Выберите для виртуальной машины новый размер.
$vm = Get-AzVM -ResourceGroupName $resourceGroup -VMName $vmName
$vm.HardwareProfile.VmSize = "<newAv2VMsize>"
Update-AzVM -VM $vm -ResourceGroupName $resourceGroup
Использование PowerShell для изменения размера виртуальной машины, не включенной в группу доступности.
Этот скрипт PowerShell Cloud Shell инициализирует переменные $resourceGroup
, $vm
а $size
также имя группы ресурсов, имя виртуальной машины и требуемый размер виртуальной машины соответственно. Затем он извлекает объект виртуальной машины из Azure с помощью командлета Get-AzVM
. Скрипт изменяет VmSize
свойство профиля оборудования виртуальной машины на нужный размер. Наконец, он применяет эти изменения к виртуальной машине в Azure с помощью командлета Update-AzVM
.
# 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
Предупреждение
Освобождение виртуальной машины также освобождает все назначенные ей динамические IP-адреса. Это не влияет на диски ОС и данных.
Если вы изменяете размер рабочей виртуальной машины, рассмотрите возможность резервирования емкости Azure для резервирования вычислительной мощности в регионе.
Изменение размера виртуальной машины в группе доступности с помощью PowerShell
Если новый размер виртуальной машины в группе доступности недоступен в кластере оборудования, на котором размещена виртуальная машина, необходимо освободить все виртуальные машины в группе доступности, чтобы изменить размер виртуальной машины. После изменения размера одной виртуальной машины может также потребоваться обновить размер остальных виртуальных машин в группе доступности. Чтобы изменить размер виртуальной машины в группе доступности, выполните приведенный ниже сценарий. Значения , $vmName
$newVmSize
а $availabilitySetName
также собственные$resourceGroup
.
# 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
Этот скрипт задает переменные $resourceGroup
, $vmName
$newVmSize
и $availabilitySetName
. Затем он проверяет, доступен ли нужный размер виртуальной машины с помощью Get-AzVMSize
и проверьте, содержит ли выходные данные нужный размер. Если нужный размер недоступен, скрипт освобождает все виртуальные машины в группе доступности, изменяет их размер и снова запускает их. Если нужный размер доступен, скрипт изменяет размер виртуальной машины.
Чтобы изменить размер виртуальной машины, необходимо установить и войти в учетную запись Azure с помощью az sign-in.
Приведенный ниже сценарий проверяет, доступен ли требуемый размер виртуальной машины перед изменением размера. Если нужный размер недоступен, скрипт завершает работу с сообщением об ошибке. Если нужный размер доступен, скрипт освобождает виртуальную машину, изменяет его размер и снова запускает его. Значения , vm
а size
также собственныеresourceGroup
.
# 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
Предупреждение
Освобождение виртуальной машины также освобождает все назначенные ей динамические IP-адреса. Это не влияет на диски ОС и данных.
Если вы изменяете размер рабочей виртуальной машины, рассмотрите возможность резервирования емкости Azure для резервирования вычислительной мощности в регионе.
Используйте Azure CLI для изменения размера виртуальной машины в группе доступности.
Приведенный ниже скрипт задает переменные resourceGroup
, vm
и size
. Затем он проверяет, доступен ли нужный размер виртуальной машины с помощью az vm list-vm-resize-options
и проверьте, содержит ли выходные данные нужный размер. Если нужный размер недоступен, скрипт завершает работу с сообщением об ошибке. Если нужный размер доступен, скрипт освобождает виртуальную машину, изменяет его размер и снова запускает его.
# 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
Выберите нужный номер SKU
При изменении размера виртуальной машины важно выбрать правильный номер SKU на основе сигналов от виртуальной машины, чтобы определить, требуется ли больше ресурсов ЦП, памяти или хранилища:
- Если виртуальная машина выполняет рабочую нагрузку с большим объемом ЦП, например сервер базы данных или веб-сервер с высоким трафиком, может потребоваться выбрать номер SKU с большим количеством ядер ЦП.
- Если виртуальная машина выполняет рабочую нагрузку с интенсивным объемом памяти, например модель машинного обучения или приложение больших данных, может потребоваться выбрать номер SKU с большей памятью.
- Если виртуальная машина не имеет емкости хранилища, может потребоваться выбрать номер SKU с большим объемом хранилища.
Дополнительные сведения о выборе правильного номера SKU можно использовать следующие ресурсы:
Ограничения
Невозможно изменить размер виртуальной машины с локальным временным диском до размера виртуальной машины без локального временного диска и наоборот.
Для изменения размера разрешены только следующие комбинации:
- Виртуальная машина (с локальным временным диском) —> виртуальная машина (с локальным временным диском); а также
- виртуальная машина (без локального временного диска) —> виртуальная машина (без локального временного диска).
Сведения о работе см. в статье Разделы справки миграции с размера виртуальной машины с локальным временным диском на размер виртуальной машины без локального временного диска? Для изменения размера виртуальной машины без локального временного диска на виртуальную машину можно использовать обходную работу с локальным временным диском. Вы создаете моментальный снимок виртуальной машины без локального временного диска > , создающего диск из создаваемого моментального снимка > виртуальной машины с соответствующим размером виртуальной машины, которая поддерживает виртуальные машины с локальным временным диском.
Следующие шаги