Po utworzeniu maszyny wirtualnej można skalować maszynę wirtualną w górę lub w dół, zmieniając rozmiar maszyny wirtualnej. W niektórych przypadkach należy najpierw cofnąć przydział maszyny wirtualnej. Cofnięcie przydziału może być konieczne, jeśli nowy rozmiar nie jest dostępny w tym samym klastrze sprzętowym, który obecnie hostuje maszynę wirtualną. Ważne jest, aby zrozumieć, że nawet jeśli cofanie przydziału nie jest konieczne, jeśli maszyna wirtualna jest aktualnie uruchomiona, zmiana jego rozmiaru spowoduje ponowne uruchomienie. Z tego powodu należy rozważyć zmianę rozmiaru maszyny wirtualnej jako procedurę zakłócającą, szczególnie w przypadku obciążeń stanowych hostowanych na maszynie wirtualnej.
Jeśli maszyna wirtualna korzysta z usługi Premium Storage, upewnij się, że wybrano wersję rozmiaru, aby uzyskać pomoc techniczną usługi Premium Storage. Na przykład wybierz Standard_E4s_v3 zamiast Standard_E4_v3.
Wpisz maszyny wirtualne w wyszukiwaniu. W obszarze Usługi wybierz pozycję Maszyny wirtualne.
Na stronie Maszyny wirtualne wybierz maszynę wirtualną, którą chcesz zmienić.
W menu po lewej stronie wybierz pozycję Rozmiar. Wybierz nowy zgodny rozmiar z listy dostępnych rozmiarów
Po wybraniu rozmiaru wybierz pozycję Zmień rozmiar.
Uwaga
Jeśli maszyna wirtualna jest obecnie uruchomiona, zmiana jego rozmiaru spowoduje jego ponowne uruchomienie.
Jeśli maszyna wirtualna jest nadal uruchomiona i nie widzisz żądanego rozmiaru na liście, zatrzymanie maszyny wirtualnej może spowodować wyświetlenie większej liczby rozmiarów.
Ostrzeżenie
Cofnięcie przydziału maszyny wirtualnej powoduje również wydanie wszystkich dynamicznych adresów IP przypisanych do maszyny wirtualnej. Nie ma to wpływu na dyski systemu operacyjnego i danych.
Jeśli zmieniasz rozmiar produkcyjnej maszyny wirtualnej, rozważ użycie rezerwacji pojemności platformy Azure do zarezerwowania pojemności obliczeniowej w regionie.
Ustaw zmienne nazw grupy zasobów i maszyny wirtualnej. Zastąp wartości informacjami o maszynie wirtualnej, którą chcesz zmienić.
Użyj programu PowerShell, aby zmienić rozmiar maszyny wirtualnej, która nie jest w zestawie dostępności.
Ten skrypt programu PowerShell usługi Cloud Shell inicjuje zmienne $resourceGroup, $vmi $size z odpowiednio nazwą grupy zasobów, nazwą maszyny wirtualnej i żądanym rozmiarem maszyny wirtualnej. Następnie pobiera obiekt maszyny wirtualnej z platformy Azure przy użyciu Get-AzVM polecenia cmdlet . Skrypt modyfikuje VmSize właściwość profilu sprzętowego maszyny wirtualnej do żądanego rozmiaru. Na koniec te zmiany są stosowane do maszyny wirtualnej na platformie Azure przy użyciu Update-AzVM polecenia 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
Alternatywą dla uruchamiania skryptu w usłudze Azure Cloud Shell możesz również wykonać go lokalnie na maszynie. Ta lokalna wersja skryptu programu PowerShell zawiera dodatkowe kroki importowania modułu platformy Azure i uwierzytelniania konta platformy Azure.
Uwaga
Lokalny program PowerShell może wymagać ponownego uruchomienia maszyny wirtualnej, aby zaczęły obowiązywać.
# 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
Ostrzeżenie
Cofnięcie przydziału maszyny wirtualnej powoduje również wydanie wszystkich dynamicznych adresów IP przypisanych do maszyny wirtualnej. Nie ma to wpływu na dyski systemu operacyjnego i danych.
Jeśli zmieniasz rozmiar produkcyjnej maszyny wirtualnej, rozważ użycie rezerwacji pojemności platformy Azure do zarezerwowania pojemności obliczeniowej w regionie.
Zmienianie rozmiaru maszyny wirtualnej w zestawie dostępności przy użyciu programu PowerShell
Jeśli nowy rozmiar maszyny wirtualnej w zestawie dostępności nie jest dostępny w klastrze sprzętowym hostującym obecnie maszynę wirtualną, należy cofnąć przydział wszystkich maszyn wirtualnych w zestawie dostępności, aby zmienić rozmiar maszyny wirtualnej. Może być również konieczne zaktualizowanie rozmiaru innych maszyn wirtualnych w zestawie dostępności po zmianie rozmiaru jednej maszyny wirtualnej. Aby zmienić rozmiar maszyny wirtualnej w zestawie dostępności, uruchom poniższy skrypt. Możesz zastąpić wartości $resourceGroup, , $vmName$newVmSizei $availabilitySetName własnymi.
# 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
Ten skrypt ustawia zmienne $resourceGroup, , $vmName$newVmSizei $availabilitySetName. Następnie sprawdza, czy żądany rozmiar maszyny wirtualnej jest dostępny, i Get-AzVMSize sprawdza, czy dane wyjściowe zawierają żądany rozmiar. Jeśli żądany rozmiar jest niedostępny, skrypt cofa przydział wszystkich maszyn wirtualnych w zestawie dostępności, zmienia ich rozmiar i uruchamia je ponownie. Jeśli żądany rozmiar jest dostępny, skrypt zmienia rozmiar maszyny wirtualnej.
Aby zmienić rozmiar maszyny wirtualnej, musisz zainstalować najnowszy interfejs wiersza polecenia platformy Azure i zalogować się na koncie platformy Azure przy użyciu polecenia az sign-in.
Poniższy skrypt sprawdza, czy żądany rozmiar maszyny wirtualnej jest dostępny przed zmianą rozmiaru. Jeśli żądany rozmiar jest niedostępny, skrypt kończy działanie z komunikatem o błędzie. Jeśli żądany rozmiar jest dostępny, skrypt cofa przydział maszyny wirtualnej, zmienia jego rozmiar i uruchamia go ponownie. Możesz zastąpić wartości resourceGroup, vmi size własnymi.
# 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
Ostrzeżenie
Cofnięcie przydziału maszyny wirtualnej powoduje również wydanie wszystkich dynamicznych adresów IP przypisanych do maszyny wirtualnej. Nie ma to wpływu na dyski systemu operacyjnego i danych.
Jeśli zmieniasz rozmiar produkcyjnej maszyny wirtualnej, rozważ użycie rezerwacji pojemności platformy Azure do zarezerwowania pojemności obliczeniowej w regionie.
Użyj interfejsu wiersza polecenia platformy Azure, aby zmienić rozmiar maszyny wirtualnej w zestawie dostępności.
Poniższy skrypt ustawia zmienne resourceGroup, vmi size. Następnie sprawdza, czy żądany rozmiar maszyny wirtualnej jest dostępny, i az vm list-vm-resize-options sprawdza, czy dane wyjściowe zawierają żądany rozmiar. Jeśli żądany rozmiar jest niedostępny, skrypt kończy działanie z komunikatem o błędzie. Jeśli żądany rozmiar jest dostępny, skrypt cofa przydział maszyny wirtualnej, zmienia jego rozmiar i uruchamia go ponownie.
# 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
Aby zmienić rozmiar maszyny wirtualnej w kodzie programu Terraform, należy zmodyfikować size parametr w azurerm_linux_virtual_machine blokach zasobów lub azurerm_windows_virtual_machine do żądanego rozmiaru i uruchomić terraform plan -out main.tfplan polecenie , aby zobaczyć zmianę rozmiaru maszyny wirtualnej, która zostanie wprowadzona. Następnie uruchom polecenie terraform apply main.tfplan , aby zastosować zmiany w celu zmiany rozmiaru maszyny wirtualnej.
Ważne
Poniższy przykład programu Terraform modyfikuje rozmiar istniejącej maszyny wirtualnej podczas korzystania z pliku stanu, który utworzył oryginalną maszynę wirtualną. Pełny kod narzędzia Terraform można znaleźć w przewodniku Szybki start narzędzia Windows Terraform.
Cofnięcie przydziału maszyny wirtualnej powoduje również wydanie wszystkich dynamicznych adresów IP przypisanych do maszyny wirtualnej. Nie ma to wpływu na dyski systemu operacyjnego i danych.
Jeśli zmieniasz rozmiar produkcyjnej maszyny wirtualnej, rozważ użycie rezerwacji pojemności platformy Azure do zarezerwowania pojemności obliczeniowej w regionie.
Wybieranie odpowiedniej jednostki SKU
Podczas zmiany rozmiaru maszyny wirtualnej ważne jest, aby wybrać odpowiednią jednostkę SKU na podstawie sygnałów z maszyny wirtualnej, aby określić, czy potrzebujesz więcej procesora CPU, pamięci lub pojemności magazynu:
Jeśli maszyna wirtualna korzysta z obciążenia intensywnie korzystającego z procesora CPU, takiego jak serwer bazy danych lub serwer internetowy o dużym natężeniu ruchu, może być konieczne wybranie jednostki SKU z większą większa większa liczba rdzeni procesora CPU.
Jeśli maszyna wirtualna korzysta z obciążenia intensywnie korzystającego z pamięci, takiego jak model uczenia maszynowego lub aplikacja danych big data, może być konieczne wybranie jednostki SKU z większą ilością pamięci.
Jeśli maszyna wirtualna nie ma pojemności magazynu, może być konieczne wybranie jednostki SKU z większą ilością miejsca do magazynowania.
Aby uzyskać więcej informacji na temat wybierania odpowiedniej jednostki SKU, możesz użyć następujących zasobów:
Selektor maszyn wirtualnych platformy Azure: to narzędzie ułatwia znalezienie odpowiedniej jednostki SKU maszyny wirtualnej na podstawie typu obciążenia, systemu operacyjnego i oprogramowania oraz regionu wdrażania.
Ograniczenia
Nie można zmienić rozmiaru maszyny wirtualnej, który ma lokalny dysk tymczasowy na rozmiar maszyny wirtualnej bez lokalnego dysku tymczasowego i na odwrót.
Jedyne kombinacje dozwolone do zmiany rozmiaru to:
Maszyna wirtualna (z lokalnym dyskiem tymczasowym) —> maszyna wirtualna (z lokalnym dyskiem tymczasowym) i
Aby określić rozmiary maszyn wirtualnych według typu obciążenia, systemu operacyjnego i oprogramowania lub regionu wdrażania, zobacz Selektor maszyn wirtualnych platformy Azure.