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.
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.
Kullanılabilirlik kümesinde olmayan bir VM'yi yeniden boyutlandırmak için PowerShell'i kullanın.
Bu Cloud Shell PowerShell betiği , $vmve $size değişkenlerini $resourceGroupsı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$newVmSizeve $availabilitySetName değerlerini $resourceGroupkendi 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$newVmSizeve $availabilitySetNamedeğişkenlerini $resourceGroupayarlar. 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. , vmve size değerlerini resourceGroupkendi 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 , vmve sizedeğişkenlerini resourceGroupayarlar. 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
Terraform kodunda VM'nizi yeniden boyutlandırmak için, veya kaynak bloklarındaki azurerm_linux_virtual_machine parametresini istediğiniz boyutta değiştirir size ve çalıştırarak terraform plan -out main.tfplan yapılacak VM boyutu değişikliğini görürsünüz.azurerm_windows_virtual_machine Ardından vm'yi yeniden boyutlandırmak üzere değişiklikleri uygulamak için komutunu çalıştırın terraform apply main.tfplan .
Önemli
Aşağıdaki Terraform örneği, özgün sanal makineyi oluşturan durum dosyasını kullanırken mevcut bir sanal makinenin boyutunu değiştirir. Terraform kodunun tamamı için Windows Terraform hızlı başlangıcına bakın.
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.
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: