Şunlar için geçerlidir: ✔️ Linux VM'leri ✔️ Windows VM'leri ✔️ Esnek ölçek kümeleri
Bu makalede, mevcut bir sanal makinenin VM boyutunun nasıl değiştireceği gösterilmektedir.
Bir sanal makine (VM) oluşturduktan sonra, VM boyutunu değiştirerek VM'nin ölçeğini artırabilir veya azaltabilirsiniz. Bazı durumlarda, önce VM'yi serbest bırakmanız gerekir. Yeni boyut şu anda VM'yi barındıran aynı donanım kümesinde kullanılamıyorsa serbest bırakma gerekli olabilir. Serbest bırakma gerekli olmadığında bile, sanal makine şu anda çalışıyorsa boyutunun değiştirilmesinin yeniden başlatılmasına neden olacağını anlamak önemlidir. Bu nedenle, özellikle VM'de barındırılan durum bilgisi olan iş yükleri için VM boyutunu kesintiye neden olan bir yordam olarak değiştirmeyi göz önünde bulundurmanız gerekir.

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.
VM boyutunu değiştirme
- Azure portalını 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üden boyut'a tıklayın. Kullanılabilir boyutlar listesinden yeni bir uyumlu boyut seçin

- Boyut seçtikten sonra Yeniden Boyutlandır'ı seçin.

Not
Sanal makine şu anda çalışıyorsa, boyutunun değiştirilmesi yeniden başlatılmasına neden olur.
VM'niz hala çalışıyorsa ve listede istediğiniz boyutu görmüyorsanız, sanal makineyi durdurmak daha fazla boyut ortaya çıkabilir.
Uyarı
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.
Bir üretim VM'sini yeniden boyutlandırıyorsanız, bölgedeki İşlem kapasitesini ayırmak için Azure Kapasite Rezervasyonları'nı kullanmayı göz önünde bulundurun.
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 = "<newAv2VMsize>"
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 betiği , $vm
ve $size
değişkenlerini $resourceGroup
sırasıyla kaynak grubu adı, VM adı ve istenen VM boyutuyla başlatır. Ardından cmdlet'ini kullanarak Get-AzVM
Azure'dan VM nesnesini alır. Betik, VM'nin donanım profilinin özelliğini istenen boyuta değiştirir VmSize
. Son olarak, bu değişiklikleri cmdlet'ini kullanarak Azure'daki VM'ye Update-AzVM
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'de ç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.
Not
Yerel PowerShell, vm'nin yeniden başlatılmasını gerektirebilir.
# 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
Uyarı
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.
Bir üretim VM'sini yeniden boyutlandırıyorsanız, bölgedeki İşlem kapasitesini ayırmak için Azure Kapasite Rezervasyonları'nı kullanmayı göz önünde bulundurun.
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. , , $vmName
$newVmSize
ve $availabilitySetName
değerlerini $resourceGroup
kendi değerlerinizle değiştirebilirsiniz.
# 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
Bu betik , , $vmName
$newVmSize
ve $availabilitySetName
değişkenlerini $resourceGroup
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'leri serbest bırakacak, yeniden boyutlandırabilir ve yeniden başlatır. İstenen boyut kullanılabilir durumdaysa, betik VM'yi yeniden boyutlandırıyor.
Bir VM'yi yeniden boyutlandırmak için en son Azure CLI'nin yüklü olması ve az sign-in kullanarak bir Azure hesabında oturum açmanız gerekir.
Aşağıdaki betik, yeniden boyutlandırmadan önce istenen VM boyutunun kullanılabilir olup olmadığını denetler. İstenen boyut kullanılamıyorsa, betik bir hata iletisiyle çıkar. İstenen boyut kullanılabilir durumdaysa, betik VM'yi serbest bırakacak, yeniden boyutlandırabilir ve yeniden başlatır. , vm
ve size
değerlerini resourceGroup
kendi değerlerinizle değiştirebilirsiniz.
# 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
Uyarı
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.
Bir üretim VM'sini yeniden boyutlandırıyorsanız, bölgedeki İşlem kapasitesini ayırmak için Azure Kapasite Rezervasyonları'nı kullanmayı göz önünde bulundurun.
Kullanılabilirlik kümesindeki bir VM'yi yeniden boyutlandırmak için Azure CLI kullanın.
Aşağıdaki betik , vm
ve size
değişkenlerini resourceGroup
ayarlar. 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 kullanılamıyorsa, betik bir hata iletisiyle çıkar. İstenen boyut kullanılabilir durumdaysa, betik VM'yi serbest bırakacak, yeniden boyutlandırabilir ve yeniden başlatır.
# 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
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.
- 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.
- VM'nin depolama kapasitesi tükeniyorsa, daha fazla depolama alanına sahip bir SKU seçmeniz gerekebilir.
Doğru SKU'yu seçme hakkında daha fazla bilgi için aşağıdaki kaynakları kullanabilirsiniz:
Sınırlamalar
Yerel geçici diske sahip bir VM boyutunu, yerel geçici disk içermeyen bir VM boyutuna (veya tam tersi) yeniden boyutlandıramazsınız.
Yeniden boyutlandırma için yalnızca şu bileşimlere izin verilir:
- VM (yerel geçici disk ile) -> VM (yerel geçici disk ile); ve
- 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 geçiş Nasıl yaparım?? . 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.
Sonraki adımlar
- Daha fazla ölçeklenebilirlik için birden çok VM örneği çalıştırın ve ölçeği genişletin.
- SKU seçimi hakkında daha fazla bilgi için bkz . Azure'da sanal makineler için boyutlar.
- VM boyutlarını iş yükü türüne, işletim sistemine ve yazılıma veya dağıtım bölgesine göre belirlemek için bkz . Azure VM Seçicisi.
- Sanal Makine Ölçek Kümeleri (VMSS) boyutları hakkında daha fazla bilgi için bkz. VMSS'de makineleri otomatik olarak ölçeklendirme.
- Daha fazla maliyet yönetimi planlama bilgisi için Bkz . Azure maliyetlerinizi planlama ve yönetme modülü.