Dotyczy: ✔️ Maszyny wirtualne z systemem Linux Maszyny wirtualne z systemem Windows — elastyczne zestawy ✔️ ✔️ skalowania
W tym artykule pokazano, jak zmienić rozmiar maszyny wirtualnej istniejącej maszyny wirtualnej.
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.
Zmienianie rozmiaru maszyny wirtualnej
- Otwórz portal Azure Portal.
- 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ć.
$resourceGroup = "myResourceGroup"
$vmName = "myVM"
Wyświetl listę rozmiarów maszyn wirtualnych dostępnych w klastrze sprzętowym, w którym jest hostowana maszyna wirtualna.
Get-AzVMSize -ResourceGroupName $resourceGroup -VMName $vmName
Zmień rozmiar maszyny wirtualnej na nowy rozmiar.
$vm = Get-AzVM -ResourceGroupName $resourceGroup -VMName $vmName
$vm.HardwareProfile.VmSize = "<newAv2VMsize>"
Update-AzVM -VM $vm -ResourceGroupName $resourceGroup
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
, $vm
i $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
$newVmSize
i $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
$newVmSize
i $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
, vm
i 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
, vm
i 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
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:
- Rozmiary maszyn wirtualnych na platformie Azure: w tym artykule wymieniono wszystkie rozmiary maszyn wirtualnych dostępne na platformie Azure.
- 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
- Maszyna wirtualna (bez dysku tymczasowego lokalnego) —> maszyna wirtualna (bez lokalnego dysku tymczasowego).
Aby zapoznać się z obejściem, zobacz Jak mogę migracji z rozmiaru maszyny wirtualnej z lokalnym dyskiem tymczasowym do rozmiaru maszyny wirtualnej bez lokalnego dysku tymczasowego? . Obejście może służyć do zmiany rozmiaru maszyny wirtualnej bez lokalnego dysku tymczasowego na maszynę wirtualną z lokalnym dyskiem tymczasowym. Utworzysz migawkę maszyny wirtualnej bez lokalnego dysku > tymczasowego, utwórz dysk na podstawie migawki > utwórz maszynę wirtualną z dysku o odpowiednim rozmiarze maszyny wirtualnej obsługującej maszyny wirtualne z lokalnym dyskiem tymczasowym.
Następne kroki