Van toepassing op: ✔️ Virtuele Linux-machines voor Windows-VM's ✔️ ✔️ Flexibele schaalsets
In dit artikel leest u hoe u de VM-grootte van een bestaande virtuele machine wijzigt.
Nadat u een virtuele machine (VM) hebt gemaakt, kunt u de VM omhoog of omlaag schalen door de VM-grootte te wijzigen. In sommige gevallen moet u de toewijzing van de VIRTUELE machine eerst ongedaan maken. Deallocatie kan nodig zijn als de nieuwe grootte niet beschikbaar is op hetzelfde hardwarecluster dat momenteel als host fungeert voor de VIRTUELE machine. Het is belangrijk om te begrijpen dat zelfs wanneer deallocatie niet nodig is, als de virtuele machine momenteel wordt uitgevoerd, de grootte ervan wordt gewijzigd, waardoor deze opnieuw wordt opgestart. Daarom moet u overwegen om de VM-grootte te wijzigen als een verstorende procedure, met name voor stateful workloads die worden gehost op de VIRTUELE machine.
Als uw VM Gebruikmaakt van Premium Storage, moet u ervoor zorgen dat u een s-versie van de grootte kiest om ondersteuning voor Premium Storage te krijgen. Kies bijvoorbeeld Standard_E4s_v3 in plaats van Standard_E4_v3.
Typ virtuele machines in de zoekopdracht. Selecteer virtuele machines onder Services.
Selecteer op de pagina Virtuele machines de virtuele machine die u wilt wijzigen.
Selecteer de grootte in het linkermenu. Kies een nieuwe compatibele grootte in de lijst met beschikbare grootten
Nadat u een grootte hebt gekozen, selecteert u Formaat wijzigen.
Notitie
Als de virtuele machine momenteel wordt uitgevoerd, zorgt het wijzigen van de grootte ervoor dat deze opnieuw wordt opgestart.
Als uw virtuele machine nog steeds wordt uitgevoerd en u de gewenste grootte niet in de lijst ziet, kan het stoppen van de virtuele machine meer grootten onthullen.
Waarschuwing
Als u de VIRTUELE machine verplaatst, worden ook alle dynamische IP-adressen uitgebracht die aan de VIRTUELE machine zijn toegewezen. Het besturingssysteem en de gegevensschijven worden niet beïnvloed.
Als u de grootte van een productie-VM wijzigt, kunt u Overwegen Azure Capacity Reservations te gebruiken om rekencapaciteit in de regio te reserveren.
Stel de resourcegroep- en VM-naamvariabelen in. Vervang de waarden door informatie over de VM waarvan u het formaat wilt wijzigen.
Gebruik PowerShell om het formaat van een VM niet in een beschikbaarheidsset te wijzigen.
Met dit PowerShell-script voor Cloud Shell worden de variabelen $resourceGroup$vmgeïnitialiseerd, en $size met respectievelijk de naam van de resourcegroep, de VM-naam en de gewenste VM-grootte. Vervolgens wordt het VM-object opgehaald uit Azure met behulp van de Get-AzVM cmdlet. Het script wijzigt de VmSize eigenschap van het hardwareprofiel van de VM in de gewenste grootte. Ten slotte worden deze wijzigingen toegepast op de VIRTUELE machine in Azure met behulp van de 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
Als alternatief voor het uitvoeren van het script in Azure Cloud Shell kunt u het ook lokaal uitvoeren op uw computer. Deze lokale versie van het PowerShell-script bevat aanvullende stappen voor het importeren van de Azure-module en het verifiëren van uw Azure-account.
Notitie
De lokale PowerShell vereist mogelijk dat de virtuele machine opnieuw wordt opgestart om van kracht te worden.
# 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
Waarschuwing
Als u de VIRTUELE machine verplaatst, worden ook alle dynamische IP-adressen uitgebracht die aan de VIRTUELE machine zijn toegewezen. Het besturingssysteem en de gegevensschijven worden niet beïnvloed.
Als u de grootte van een productie-VM wijzigt, kunt u Overwegen Azure Capacity Reservations te gebruiken om rekencapaciteit in de regio te reserveren.
PowerShell gebruiken om het formaat van een VIRTUELE machine in een beschikbaarheidsset te wijzigen
Als de nieuwe grootte voor een VIRTUELE machine in een beschikbaarheidsset niet beschikbaar is op het hardwarecluster dat momenteel als host fungeert voor de VIRTUELE machine, moet u de toewijzing van alle VM's in de beschikbaarheidsset ongedaan maken om het formaat van de VIRTUELE machine te wijzigen. Mogelijk moet u ook de grootte van andere VM's in de beschikbaarheidsset bijwerken nadat de grootte van één VIRTUELE machine is gewijzigd. Als u het formaat van een VIRTUELE machine in een beschikbaarheidsset wilt wijzigen, voert u het onderstaande script uit. U kunt de waarden van $resourceGroup, $vmNameen $newVmSize$availabilitySetName door uw eigen waarden vervangen.
# 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
Met dit script worden de variabelen $resourceGroup, $vmName, en $newVmSize$availabilitySetName. Vervolgens wordt gecontroleerd of de gewenste VM-grootte beschikbaar is door te gebruiken Get-AzVMSize en te controleren of de uitvoer de gewenste grootte bevat. Als de gewenste grootte niet beschikbaar is, wordt de toewijzing van alle VM's in de beschikbaarheidsset ongedaan gemaakt door het script, de grootte ervan te wijzigen en opnieuw te starten. Als de gewenste grootte beschikbaar is, wijzigt het script de grootte van de VIRTUELE machine.
Als u het formaat van een VIRTUELE machine wilt wijzigen, hebt u de nieuwste Azure CLI geïnstalleerd en aangemeld bij een Azure-account met behulp van az sign-in.
Met het onderstaande script wordt gecontroleerd of de gewenste VM-grootte beschikbaar is voordat u het formaat wijzigt. Als de gewenste grootte niet beschikbaar is, wordt het script afgesloten met een foutbericht. Als de gewenste grootte beschikbaar is, wordt de toewijzing van de virtuele machine ongedaan gemaakt, de grootte ervan gewijzigd en opnieuw gestart. U kunt de waarden van resourceGroup, vmen size door uw eigen waarden vervangen.
# 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
Waarschuwing
Als u de VIRTUELE machine verplaatst, worden ook alle dynamische IP-adressen uitgebracht die aan de VIRTUELE machine zijn toegewezen. Het besturingssysteem en de gegevensschijven worden niet beïnvloed.
Als u de grootte van een productie-VM wijzigt, kunt u Overwegen Azure Capacity Reservations te gebruiken om rekencapaciteit in de regio te reserveren.
Gebruik Azure CLI om het formaat van een VIRTUELE machine in een beschikbaarheidsset te wijzigen.
Met het onderstaande script worden de variabelen resourceGroup, vmen size. Vervolgens wordt gecontroleerd of de gewenste VM-grootte beschikbaar is door te gebruiken az vm list-vm-resize-options en te controleren of de uitvoer de gewenste grootte bevat. Als de gewenste grootte niet beschikbaar is, wordt het script afgesloten met een foutbericht. Als de gewenste grootte beschikbaar is, wordt de toewijzing van de virtuele machine ongedaan gemaakt, de grootte ervan gewijzigd en opnieuw gestart.
# 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
Als u het formaat van de VIRTUELE machine in Terraform-code wilt wijzigen, wijzigt u de size parameter in de azurerm_linux_virtual_machine of azurerm_windows_virtual_machine resourceblokken in de gewenste grootte en voert u deze uit terraform plan -out main.tfplan om de wijziging van de VM-grootte te zien die wordt aangebracht. Voer vervolgens uit terraform apply main.tfplan om de wijzigingen toe te passen om het formaat van de VIRTUELE machine te wijzigen.
Belangrijk
In het onderstaande Terraform-voorbeeld wordt de grootte van een bestaande virtuele machine gewijzigd wanneer u het statusbestand gebruikt dat de oorspronkelijke virtuele machine heeft gemaakt. Zie de quickstart voor Windows Terraform voor de volledige Terraform-code.
Als u de VIRTUELE machine verplaatst, worden ook alle dynamische IP-adressen uitgebracht die aan de VIRTUELE machine zijn toegewezen. Het besturingssysteem en de gegevensschijven worden niet beïnvloed.
Als u de grootte van een productie-VM wijzigt, kunt u Overwegen Azure Capacity Reservations te gebruiken om rekencapaciteit in de regio te reserveren.
De juiste SKU kiezen
Wanneer u het formaat van een VIRTUELE machine wijzigt, is het belangrijk om de juiste SKU te kiezen op basis van de signalen van de VIRTUELE machine om te bepalen of u meer CPU-, geheugen- of opslagcapaciteit nodig hebt:
Als de VM een CPU-intensieve werkbelasting uitvoert, zoals een databaseserver of een webserver met hoog verkeer, moet u mogelijk een SKU met meer CPU-kernen kiezen.
Als op de VM een geheugenintensieve workload wordt uitgevoerd, zoals een machine learning-model of een big data-toepassing, moet u mogelijk een SKU met meer geheugen kiezen.
Als de VM onvoldoende opslagcapaciteit heeft, moet u mogelijk een SKU met meer opslag kiezen.
Voor meer informatie over het kiezen van de juiste SKU kunt u de volgende resources gebruiken:
Azure VM Selector: Met dit hulpprogramma kunt u de juiste VM-SKU vinden op basis van uw workloadtype, besturingssysteem en software en implementatieregio.
Beperkingen
U kunt de grootte van een VIRTUELE machine met een lokale tijdelijke schijf niet wijzigen in een VM-grootte zonder lokale tijdelijke schijf en omgekeerd.
De enige combinaties die zijn toegestaan voor het wijzigen van het formaat zijn:
VM (met lokale tijdelijke schijf) -> VM (met lokale tijdelijke schijf); en
VM (zonder lokale tijdelijke schijf) -> VM (zonder lokale tijdelijke schijf).
Zie voor een tijdelijke oplossing Hoe kan ik migreren van een VM-grootte met lokale tijdelijke schijf naar een VM-grootte zonder lokale tijdelijke schijf? De work-around kan worden gebruikt om het formaat van een virtuele machine te wijzigen zonder lokale tijdelijke schijf naar vm met een lokale tijdelijke schijf. U maakt een momentopname van de virtuele machine zonder lokale tijdelijke schijf > , maakt een schijf op basis van de momentopname > van de vm maken vanaf de schijf met de juiste VM-grootte die vm's met een lokale tijdelijke schijf ondersteunt.
Volgende stappen
Voor meer schaalbaarheid voert u meerdere VM-exemplaren uit en schaalt u uit.