Gilt für: ✔️ Linux-VMs ✔️ Windows-VMs ✔️ Flexible Skalierungsgruppen
In diesem Artikel erfahren Sie, wie Sie die VM-Größe einer vorhandenen VM ändern.
Nachdem Sie einen virtuellen Computer (virtual machine; VM) erstellen, können Sie den virtuellen Computer zentral hoch- oder herunterskalieren, indem Sie die VM-Größe ändern. In einigen Fällen müssen Sie zuerst die Zuordnung des virtuellen Computers aufheben. Die Belegungsfreigabe kann erforderlich sein, wenn die neue Größe nicht auf demselben Hardwarecluster verfügbar ist, auf dem derzeit die VM gehostet wird. Es ist wichtig zu verstehen, dass auch bei einer nicht erforderlichen Aufhebung der Zuordnung das Ändern der Größe eines virtuellen Computers dazu führt, dass dieser neu gestartet wird, wenn er derzeit ausgeführt wird. Aus diesem Grund sollten Sie die VM-Größe als unterbrechendes Verfahren ändern, insbesondere für zustandsbehaftete Workloads, die auf der VM gehostet werden.
Wenn Ihr virtueller Computer Storage Premium verwendet, stellen Sie sicher, dass Sie für die Größe eine s-Version auswählen, damit Storage Premium unterstützt wird. Wählen Sie z. B. Standard_E4s_v3 statt Standard_E4_v3 aus.
Geben Sie in das Suchfeld virtuelle Computer ein. Wählen Sie unter Dienste die Option Virtuelle Computer aus.
Wählen Sie auf der Seite Virtuelle Computer den virtuellen Computer aus, dessen Größe Sie ändern möchten.
Wählen Sie im linken Menü die Option Größe aus. Wählen Sie in der Liste der verfügbaren Größen eine neue kompatible-Größe aus
Wählen Sie nach der Auswahl einer Größe Größe ändern aus.
Hinweis
Wenn der virtuelle Computer zurzeit ausgeführt wird, führt eine Änderung seiner Größe zu einem Neustart.
Wenn Ihr virtueller Computer noch ausgeführt wird und die von Ihnen gewünschte Größe in der Liste nicht angezeigt wird, werden beim Beenden des virtuellen Computers möglicherweise weitere Größen angezeigt.
Warnung
Die Aufhebung der Zuordnung der VM gibt auch jegliche dynamische IP-Adressen frei, die der VM zugewiesen sind. Das Betriebssystem und die Datenträger sind nicht betroffen.
Wenn Sie die Größe einer Produktions-VM ändern, sollten Sie Azure Capacity Reservations verwenden, um die Computekapazität in der Region zu reservieren.
Legen Sie die Variablen für die Ressourcengruppe und den VM-Namen fest. Ersetzen Sie die Werte durch die Informationen der VM, deren Größe Sie ändern möchten.
Verwenden von PowerShell zum Ändern der Größe einer VM, die sich nicht in einer Verfügbarkeitsgruppe befindet
Dieses PowerShell-Skript der Cloudshell initialisiert die Variablen $resourceGroup, $vm und $size mit dem Ressourcengruppennamen, dem VM-Namen bzw. der gewünschten VM-Größe. Anschließend wird das VM-Objekt mit dem Cmdlet Get-AzVM aus Azure abgerufen. Das Skript ändert die VmSize-Eigenschaft des VM-Hardwareprofils in die gewünschte Größe. Schließlich werden diese Änderungen mithilfe des Cmdlets Update-AzVM auf die Azure-VM angewendet.
# 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
Statt das Skript in Azure Cloud Shell auszuführen, können Sie es auch lokal auf Ihrem Computer ausführen. Diese lokale Version des PowerShell-Skripts enthält zusätzliche Schritte zum Importieren des Azure-Moduls und zum Authentifizieren Ihres Azure-Kontos.
Hinweis
Das lokale PowerShell-Skript erfordert möglicherweise einen Neustart des virtuellen Computers, damit die Änderungen wirksam zu werden.
# 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
Warnung
Die Aufhebung der Zuordnung der VM gibt auch jegliche dynamische IP-Adressen frei, die der VM zugewiesen sind. Das Betriebssystem und die Datenträger sind nicht betroffen.
Wenn Sie die Größe einer Produktions-VM ändern, sollten Sie Azure Capacity Reservations verwenden, um die Computekapazität in der Region zu reservieren.
Verwenden von PowerShell zum Ändern der Größe einer VM in einer Verfügbarkeitsgruppe
Wenn die neue Größe für eine VM in einer Verfügbarkeitsgruppe nicht im Hardwarecluster verfügbar ist, auf dem die VM derzeit gehostet wird, muss bei allen VMs in der Verfügbarkeitsgruppe die Zuordnung aufgehoben werden, um die Größe der VM ändern zu können. Sie müssen möglicherweise auch die Größe der anderen virtuellen Computer in der Verfügbarkeitsgruppe aktualisieren, nachdem die Größe eines virtuellen Computers geändert wurde. Führen Sie das folgende Skript aus, um die Größe einer VM in einer Verfügbarkeitsgruppe zu ändern. Sie können die Werte von $resourceGroup, $vmName, $newVmSize und $availabilitySetName durch Ihre eigenen ersetzen.
# 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
Dieses Skript legt die Variablen $resourceGroup, $vmName, $newVmSize und $availabilitySetName fest. Anschließend wird mithilfe von Get-AzVMSize überprüft, ob die gewünschte VM-Größe verfügbar ist, und überprüft, ob die Ausgabe die gewünschte Größe enthält. Wenn die gewünschte Größe nicht verfügbar ist, wird die Zuordnung aller VMs in der Verfügbarkeitsgruppe aufgehoben, ihre Größe geändert und sie werden erneut gestartet. Wenn die gewünschte Größe verfügbar ist, ändert das Skript die Größe der VM.
Zum Ändern der Größe eines virtuellen Computers muss die neueste Azure CLI installiert sein, und Sie müssen über az sign-in bei einem Azure-Konto angemeldet sein.
Das folgende Skript überprüft, ob die gewünschte VM-Größe verfügbar ist, bevor die Größe geändert wird. Wenn die gewünschte Größe nicht verfügbar ist, wird das Skript mit einer Fehlermeldung beendet. Wenn die gewünschte Größe verfügbar ist, wird die Zuordnung der VM aufgehoben, ihre Größe geändert und sie wird erneut gestartet. Sie können die Werte von resourceGroup, vm und size durch Ihre eigenen ersetzen.
# 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
Warnung
Die Aufhebung der Zuordnung der VM gibt auch jegliche dynamische IP-Adressen frei, die der VM zugewiesen sind. Das Betriebssystem und die Datenträger sind nicht betroffen.
Wenn Sie die Größe einer Produktions-VM ändern, sollten Sie Azure Capacity Reservations verwenden, um die Computekapazität in der Region zu reservieren.
Verwenden von Azure CLI zum Ändern der Größe einer VM in einer Verfügbarkeitsgruppe.
Das folgende Skript legt die Variablen resourceGroup, vm und sizefest. Anschließend wird mithilfe von az vm list-vm-resize-options überprüft, ob die gewünschte VM-Größe verfügbar ist, und überprüft, ob die Ausgabe die gewünschte Größe enthält. Wenn die gewünschte Größe nicht verfügbar ist, wird das Skript mit einer Fehlermeldung beendet. Wenn die gewünschte Größe verfügbar ist, wird die Zuordnung der VM aufgehoben, ihre Größe geändert und sie wird erneut gestartet.
# 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
Um die Größe Ihrer VM im Terraform-Code zu ändern, ändern Sie den size-Parameter in den Ressourcenblöcken azurerm_linux_virtual_machine oder azurerm_windows_virtual_machine auf die gewünschte Größe, und führen Sie terraform plan -out main.tfplan aus, um die VM-Größenänderung anzuzeigen, die vorgenommen wird. Führen Sie dann terraform apply main.tfplan aus, um die Änderungen anzuwenden, um die Größe der VM zu ändern.
Wichtig
Im folgenden Terraform-Beispiel wird die Größe einer vorhandenen virtuellen Maschine geändert, wenn Sie die Zustandsdatei verwenden, die den ursprünglichen virtuellen Computer erstellt hat. Den vollständigen Terraform-Code finden Sie im Schnellstart zu Windows Terraform.
Die Aufhebung der Zuordnung der VM gibt auch jegliche dynamische IP-Adressen frei, die der VM zugewiesen sind. Das Betriebssystem und die Datenträger sind nicht betroffen.
Wenn Sie die Größe einer Produktions-VM ändern, sollten Sie Azure Capacity Reservations verwenden, um die Computekapazität in der Region zu reservieren.
Auswählen der richtigen SKU
Beim Ändern der Größe eines virtuellen Computers ist es wichtig, die richtige SKU basierend auf den Signalen der VM auszuwählen, um zu ermitteln, ob Sie mehr CPU, Arbeitsspeicher oder Speicherkapazität benötigen:
Wenn auf der VM ein CPU-intensiver Workload ausgeführt wird, z. B. ein Datenbankserver oder ein Webserver mit hohem Datenverkehr, müssen Sie möglicherweise eine SKU mit mehr CPU-Kernen auswählen.
Wenn auf der VM eine speicherintensive Workload ausgeführt wird, z. B. ein Machine Learning-Modell oder eine Big Data-Anwendung, müssen Sie möglicherweise eine SKU mit mehr Arbeitsspeicher auswählen.
Wenn auf der VM keine Speicherkapazität mehr vorhanden ist, müssen Sie möglicherweise eine SKU mit mehr Speicher auswählen.
Weitere Informationen zur Auswahl der richtigen SKU erhalten Sie in folgenden Ressourcen:
Größen für VMs in Azure: In diesem Artikel werden alle in Azure verfügbaren VM-Größen aufgeführt.
Azure VM Selector: Dieses Tool hilft Ihnen, die richtige VM-SKU basierend auf Workloadtyp, Betriebssystem und Software sowie Bereitstellungsregion zu finden.
Begrenzungen
Sie können eine VM-Größe mit lokalem temporärem Datenträger nicht in eine VM-Größe ohne lokalen temporären Datenträger ändern (und umgekehrt).
Eine Größenänderung ist nur für die folgenden Kombinationen zulässig:
VM (mit lokalem temporärem Datenträger) > VM (mit lokalem temporärem Datenträger) und
VM (ohne lokalen temporären Datenträger) > VM (ohne lokalen temporären Datenträger)
Wenn Sie an einer Problemumgehung interessiert sind,lesen Sie Wie migriere ich von einer VM-Größe mit lokalem temporärem Datenträger zu einer VM-Größe ohne lokalen temporären Datenträger? . Die Problemumgehung kann verwendet werden, um die Größe eines virtuellen Computers ohne lokalen temporären Datenträger in einen virtuellen Computer mit einem lokalen temporären Datenträger zu ändern. Sie erstellen eine Momentaufnahme des virtuellen Computers ohne lokalen temporären Datenträger> Sie erstellen einen Datenträger aus der Momentaufnahme > erstellen Sie einen virtuellen Computer von dem Datenträger mit der entsprechenden VM-Größe, die VMs mit einem lokalen temporären Datenträger unterstützt.
Nächste Schritte
Führen Sie mehr VM-Instanzen aus, und skalieren Sie diese auf, um zusätzliche Skalierbarkeit zu erhalten.