Applies to: ✔️ Linux VM'leri ✔️ Windows VM'ler ✔️ Esnek ölçek kümeleri
Bu makalede, mevcut bir sanal makinenin VM boyutunun nasıl değiştireceği gösterilmektedir.
Vm oluşturduktan sonra, VM boyutunu değiştirerek ölçeği artırabilir veya azaltabilirsiniz. Bu işlem, VM'nin şu anda çalışıyor veya zaten ayrılmış durumda olmasına fark etmeksizin çalışır.
Bazı durumlarda, yeniden boyutlandırmadan önce VM'yi serbest bırakmanız gerekir. Yeni boyut şu anda VM'yi barındıran donanım kümesinde mevcut değilse kaynakların serbest bırakılması gerekebilir. Serbest bırakma gerekli olmasa bile, çalışan bir VM'nin boyutunu değiştirmek, makinenin yeniden başlatılmasına yol açar. Bu nedenle, özellikle durum bilgisi olan iş yükleri için vm'yi yeniden boyutlandırmak kesintiye neden olan bir işlem olarak kabul edilmelidir.
Uyarı
Sanal makine şu anda çalışıyorsa, boyutunun değiştirilmesi yeniden başlatılmasına neden olur.
VM'nin serbest bırakılması, VM'ye atanan tüm dinamik IP adreslerini de serbest bırakır. İşletim sistemi ve veri diskleri etkilenmez.
Yeniden boyutlandırma işlemi başarısız olursa, VM modeli istenen boyutu görüntülemeye devam eder, ancak yeniden boyutlandırma başarıyla ayrılana kadar VM önceki boyutunda çalışmaya devam eder. Bu davranış hem Azure portalı hem de tüm GET işlemleri için geçerlidir. Görüntülenen boyut her zaman gerçek çalışma boyutunu değil, en son uygulanan yapılandırmayı yansıtır.
Doğru SKU'yu seçin
Vm'yi yeniden boyutlandırırken, daha fazla CPU, bellek veya depolama kapasitesine ihtiyacınız olup olmadığını belirlemek için VM'den gelen sinyallere göre doğru SKU'yu seçmeniz önemlidir:
- VM, veritabanı sunucusu veya trafiğin yüksek olduğu bir web sunucusu gibi yoğun CPU kullanan bir iş yükü çalıştırıyorsa, daha fazla CPU çekirdeğine sahip bir SKU seçmeniz gerekebilir. Daha fazla bilgi için Hesaplama için optimize edilmiş boyutlara bkz.
- VM, makine öğrenmesi modeli veya büyük veri uygulaması gibi yoğun bellek kullanan bir iş yükü çalıştırıyorsa, daha fazla belleğe sahip bir SKU seçmeniz gerekebilir. Daha fazla bilgi için bkz . Bellek için iyileştirilmiş boyutlar.
- VM'nin depolama kapasitesi tükeniyorsa, daha fazla depolama alanına sahip bir SKU seçmeniz gerekebilir. Daha fazla bilgi için Depolama için optimize edilmiş boyutlara bakın.
- VM'niz Premium Depolama kullanıyorsa, Premium Depolama destek almak için boyutun s sürümünü seçtiğinizden emin olun. Örneğin, Standard_E4_v3 yerine Standard_E4_v3 seçin.
Doğru SKU'yu seçme hakkında daha fazla bilgi için aşağıdaki kaynakları kullanabilirsiniz:
-
Azure'daki VM Boyutları: Bu makalede, Azure'da kullanılabilen tüm VM boyutları verilmektedir.
-
Azure VM Seçici: Bu araç iş yükü türünüz, işletim sisteminiz ve yazılımınız ve dağıtım bölgenize göre doğru VM SKU'yu bulmanıza yardımcı olur.
Sınırlamalar
Yerel geçici diske sahip VM boyutları ile yerel geçici diski olmayan VM boyutları arasında yeniden boyutlandırma, Linux VM'ler için desteklenir. Windows VM'ler için yalnızca aşağıdaki yeniden boyutlandırma bileşimlerine izin verilir:
- VM (yerel geçici disk ile) -> VM (yerel geçici disk ile);
- VM (yerel geçici disk olmadan) -> VM (yerel geçici disk olmadan).
Geçici çözüm için bkz. Yerel geçici disk içeren bir VM boyutundan yerel geçici disk içermeyen bir VM boyutuna nasıl geçiş yapabilirim? Geçici çözüm, yerel geçici diske sahip VM'ye yerel geçici disk içermeyen bir VM'yi yeniden boyutlandırmak için kullanılabilir. Yerel geçici disk olmadan VM'nin anlık görüntüsünü oluşturursunuz anlık görüntüden > bir disk oluşturursunuz. Yerel geçici diske > sahip VM'leri destekleyen uygun VM boyutuna sahip diskten VM oluşturun.
SCSI tabanlı VM'ye sahip bir VM boyutunu, uzak NVMe özellikli vm'ye sahip bir VM boyutuna yeniden boyutlandıramazsınız.
Geçici bir çözüm için bkz. SCSI tabanlı bir VM'yi farklı boyuttaki uzak NVMe özellikli bir VM'ye nasıl yeniden boyutlandırabilirim?
VM boyutunu değiştirme
VM boyutunu değiştirmek için bir seçenek belirleyin:
Azure portalını kullanarak VM boyutunu değiştirmek için:
-
Azure portal açın.
- Aramaya sanal makineler yazın. Hizmetler'in altında Sanal makineler'i seçin.
-
Sanal makineler sayfasında yeniden boyutlandırmak istediğiniz sanal makineyi seçin.
- Soldaki menüde , Kullanılabilirlik + ölçek bölümünde boyut'a tıklayın.
- Kullanılabilir boyutlar listesinden uyumlu yeni bir boyut seçin ve ardından Yeniden Boyutlandır'ı seçin.
VM'niz hala çalışıyorsa ve listede istediğiniz boyutu görmüyorsanız, sanal makineyi durdurmak daha fazla boyut ortaya çıkabilir.
PowerShell kullanarak VM'nin boyutunu değiştirmek için:
Kaynak grubu ve VM adı değişkenlerini ayarlayın. Değerleri yeniden boyutlandırmak istediğiniz VM'nin bilgileriyle değiştirin.
$resourceGroup = "myResourceGroup"
$vmName = "myVM"
VM'nin barındırıldığı donanım kümesinde kullanılabilen VM boyutlarını listeleyin.
Get-AzVMSize -ResourceGroupName $resourceGroup -VMName $vmName
VM'yi yeni boyuta yeniden boyutlandırın.
$vm = Get-AzVM -ResourceGroupName $resourceGroup -VMName $vmName
$vm.HardwareProfile.VmSize = "<newVMsize>"
Update-AzVM -VM $vm -ResourceGroupName $resourceGroup
Kullanılabilirlik kümesinde olmayan bir VM'yi yeniden boyutlandırmak için PowerShell'i kullanın.
Bu Cloud Shell PowerShell komut betiği, $resourceGroup, $vm ve $size değişkenlerini sırasıyla kaynak grubu adı, VM adı ve istenen VM boyutuyla başlatır. Ardından Get-AzVM cmdlet'ini kullanarak VM nesnesini Azure'dan alır. Betik, VM'nin donanım profilindeki VmSize özelliğini istenen boyuta değiştirir. Son olarak, Update-AzVM cmdlet'ini kullanarak bu değişiklikleri Azure vm'ye uygular.
# 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
Betiği Azure Cloud Shell çalıştırmaya alternatif olarak, bunu makinenizde yerel olarak da yürütebilirsiniz. PowerShell betiğinin bu yerel sürümü, Azure modülünü içeri aktarmak ve Azure hesabınızın kimliğini doğrulamak için ek adımlar içerir.
Uyarı
Yerel PowerShell'in etkili olabilmesi için VM'nin yeniden başlatılması gerekebilir.
# 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
Kullanılabilirlik kümesindeki vm'yi yeniden boyutlandırmak için PowerShell kullanma
Kullanılabilirlik kümesindeki bir VM'nin yeni boyutu şu anda VM'yi barındıran donanım kümesinde kullanılamıyorsa, VM'yi yeniden boyutlandırmak için kullanılabilirlik kümesindeki tüm VM'leri serbest bırakmanız gerekir. Ayrıca, bir VM yeniden boyutlandırıldıktan sonra kullanılabilirlik kümesindeki diğer VM'lerin boyutunu da güncelleştirmeniz gerekebilir. Kullanılabilirlik kümesindeki bir VM'yi yeniden boyutlandırmak için aşağıdaki betiği çalıştırın.
Bu betik, $resourceGroup, $vmName, $newVmSize ve $availabilitySetName değişkenlerini ayarlar. Daha sonra kullanarak Get-AzVMSize istenen VM boyutunun kullanılabilir olup olmadığını denetler ve çıkışın istenen boyutu içerip içermediğini denetler. İstenen boyut kullanılamıyorsa, betik kullanılabilirlik kümesindeki tüm VM'lerin tahsisini iptal eder, yeniden boyutlandırır ve onları yeniden başlatır. İstenen boyut kullanılabilir durumdaysa, betik VM'yi yeniden boyutlandırıyor.
$resourceGroup, $vmName, $newVmSize ve $availabilitySetName değerlerini kendi değerlerinizle değiştirin.
# 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
Vm'yi yeniden boyutlandırmak için en son Azure CLI yüklü olmalıdır ve az sign-in kullanarak Azure hesabınızda oturum açmanız gerekir.
Aşağıdaki betik, yeniden boyutlandırmadan önce istenen VM boyutunun kullanılabilir olup olmadığını denetler. İstenen boyut mevcut değilse, betik bir hata iletisiyle sonlanır. İstenen boyut kullanılabilir durumdaysa, betik VM'yi serbest bırakır, yeniden boyutlandırır ve yeniden başlatır.
, resourceGroupve vm değerlerini sizekendi değerlerinizle değiştirin.
# 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
Kullanılabilirlik kümesindeki bir VM'yi yeniden boyutlandırmak için Azure CLI kullanın.
Aşağıdaki betik resourceGroup, vm ve size değişkenlerini tanımlar. Daha sonra kullanarak az vm list-vm-resize-options istenen VM boyutunun kullanılabilir olup olmadığını denetler ve çıkışın istenen boyutu içerip içermediğini denetler. İstenen boyut mevcut değilse, betik bir hata iletisiyle sonlanır. İstenen boyut kullanılabilir durumdaysa, betik VM'yi serbest bırakır, yeniden boyutlandırır ve yeniden başlatır.
, resourceGroupve vm değerlerini sizekendi değerlerinizle değiştirin.
# 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
Sonraki Adımlar