Berlaku untuk: ✔️ mesin virtual Linux ✔️ mesin virtual Windows ✔️ Set skala fleksibel
Artikel ini menunjukkan kepada Anda cara mengubah ukuran VM komputer virtual yang ada.
Setelah Anda membuat mesin virtual (VM), Anda dapat menaikkan atau menurunkan skala VM dengan mengubah ukuran VM. Dalam beberapa kasus, Anda harus membatalkan alokasi VM terlebih dahulu. Dealokasi mungkin diperlukan jika ukuran baru tidak tersedia pada kluster perangkat keras yang sama yang saat ini menghosting VM. Penting untuk dipahami bahwa bahkan ketika pembatalan tidak diperlukan, jika komputer virtual saat ini berjalan, mengubah ukurannya akan menyebabkannya dimulai ulang. Untuk alasan ini, Anda harus mempertimbangkan untuk mengubah ukuran VM sebagai prosedur yang mengganggu, terutama untuk beban kerja stateful yang dihosting di VM.
Jika VM Anda menggunakan Penyimpanan Premium, pastikan Anda memilih versi ukuran s untuk mendapatkan dukungan Penyimpanan Premium. Misalnya, pilih Standard_E4s_v3 dan bukan Standard_E4_v3.
Ketikkan komputer virtual di kotak pencarian. Pada Layanan, pilih Mesin virtual.
Di halaman Mesin virtual, pilih mesin virtual yang ingin Anda ubah ukurannya.
Di menu sebelah kiri, pilih Ukuran. Pilih ukuran baru yang kompatibel dari daftar ukuran yang tersedia
Setelah memilih ukuran, pilih Mengubah Ukuran.
Catatan
Jika komputer virtual saat ini berjalan, mengubah ukurannya akan menyebabkannya dimulai ulang.
Jika VM masih berjalan dan Anda tidak melihat ukuran yang Anda inginkan dalam daftar, menghentikan mesin virtual dapat menampilkan lebih banyak ukuran.
Peringatan
Membatalkan alokasi VM juga merilis alamat IP dinamis yang ditetapkan ke VM. Disk OS dan data tidak terpengaruh.
Jika Anda mengubah ukuran mesin virtual produksi, pertimbangkan untuk menggunakan Reservasi Kapasitas Azure untuk memesan kapasitas Komputasi di wilayah tersebut.
Atur grup sumber daya dan nama variabel VM. Ganti nilai dengan informasi VM yang ingin Anda ubah ukurannya.
Gunakan PowerShell untuk mengubah ukuran VM yang tidak dalam kumpulan ketersediaan.
Skrip Cloud shell PowerShell ini menginisialisasi variabel $resourceGroup, , $vmdan $size dengan nama grup sumber daya, nama VM, dan ukuran VM yang diinginkan masing-masing. Kemudian mengambil objek VM dari Azure menggunakan Get-AzVM cmdlet . Skrip memodifikasi VmSize properti profil perangkat keras VM ke ukuran yang diinginkan. Terakhir, ini menerapkan perubahan ini ke VM di Azure menggunakan 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
Sebagai alternatif untuk menjalankan skrip di Azure Cloud Shell, Anda juga dapat menjalankannya secara lokal di komputer Anda. Versi lokal skrip PowerShell ini menyertakan langkah-langkah tambahan untuk mengimpor modul Azure dan mengautentikasi akun Azure Anda.
Catatan
PowerShell lokal mungkin mengharuskan VM untuk memulai ulang agar berlaku.
# 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
Peringatan
Membatalkan alokasi VM juga merilis alamat IP dinamis yang ditetapkan ke VM. Disk OS dan data tidak terpengaruh.
Jika Anda mengubah ukuran mesin virtual produksi, pertimbangkan untuk menggunakan Reservasi Kapasitas Azure untuk memesan kapasitas Komputasi di wilayah tersebut.
Menggunakan PowerShell untuk mengubah ukuran VM dalam set ketersediaan
Jika ukuran baru untuk VM dalam set ketersediaan tidak tersedia pada kluster perangkat keras yang saat ini menghosting VM, maka Anda perlu membatalkan alokasi semua VM dalam ketersediaan yang ditetapkan untuk mengubah ukuran VM. Anda juga mungkin perlu memperbarui ukuran VM lainnya dalam set ketersediaan yang ditetapkan setelah satu VM diubah ukurannya. Untuk mengubah ukuran VM dalam set ketersediaan, jalankan skrip di bawah ini. Anda dapat mengganti nilai , , $vmName$newVmSize, dan $availabilitySetName dengan nilai $resourceGroupAnda sendiri.
# 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
Skrip ini mengatur variabel $resourceGroup, , $vmName, $newVmSizedan $availabilitySetName. Kemudian memeriksa apakah ukuran VM yang diinginkan tersedia dengan menggunakan Get-AzVMSize dan memeriksa apakah output berisi ukuran yang diinginkan. Jika ukuran yang diinginkan tidak tersedia, skrip membatalkan alokasi semua VM dalam set ketersediaan, mengubah ukurannya, dan memulainya lagi. Jika ukuran yang diinginkan tersedia, skrip akan mengubah ukuran VM.
Untuk mengubah ukuran VM, Anda memerlukan Azure CLI terbaru yang diinstal dan masuk ke akun Azure menggunakan az sign-in.
Skrip di bawah ini memeriksa apakah ukuran VM yang diinginkan tersedia sebelum mengubah ukuran. Jika ukuran yang diinginkan tidak tersedia, skrip akan keluar dengan pesan kesalahan. Jika ukuran yang diinginkan tersedia, skrip membatalkan alokasi VM, mengubah ukurannya, dan memulainya lagi. Anda dapat mengganti nilai , , vmdan size dengan nilai resourceGroupAnda sendiri.
# 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
Peringatan
Membatalkan alokasi VM juga merilis alamat IP dinamis yang ditetapkan ke VM. Disk OS dan data tidak terpengaruh.
Jika Anda mengubah ukuran mesin virtual produksi, pertimbangkan untuk menggunakan Reservasi Kapasitas Azure untuk memesan kapasitas Komputasi di wilayah tersebut.
Gunakan Azure CLI untuk mengubah ukuran VM dalam set ketersediaan.
Skrip di bawah ini mengatur variabel resourceGroup, , vmdan size. Kemudian memeriksa apakah ukuran VM yang diinginkan tersedia dengan menggunakan az vm list-vm-resize-options dan memeriksa apakah output berisi ukuran yang diinginkan. Jika ukuran yang diinginkan tidak tersedia, skrip akan keluar dengan pesan kesalahan. Jika ukuran yang diinginkan tersedia, skrip membatalkan alokasi VM, mengubah ukurannya, dan memulainya lagi.
# 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
Untuk mengubah ukuran VM Anda dalam kode Terraform, Anda memodifikasi size parameter di azurerm_linux_virtual_machine blok sumber daya atau azurerm_windows_virtual_machine ke ukuran yang diinginkan dan menjalankan terraform plan -out main.tfplan untuk melihat perubahan ukuran VM yang akan dilakukan. Kemudian jalankan terraform apply main.tfplan untuk menerapkan perubahan untuk mengubah ukuran VM.
Penting
Contoh Terraform di bawah ini memodifikasi ukuran komputer virtual yang ada saat Anda menggunakan file status yang membuat komputer virtual asli. Untuk kode Terraform lengkap, lihat mulai cepat Terraform Windows.
Membatalkan alokasi VM juga merilis alamat IP dinamis yang ditetapkan ke VM. Disk OS dan data tidak terpengaruh.
Jika Anda mengubah ukuran mesin virtual produksi, pertimbangkan untuk menggunakan Reservasi Kapasitas Azure untuk memesan kapasitas Komputasi di wilayah tersebut.
Pilih SKU yang tepat
Saat mengubah ukuran VM, penting untuk memilih SKU yang tepat berdasarkan sinyal dari VM untuk menentukan apakah Anda memerlukan lebih banyak kapasitas CPU, memori, atau penyimpanan:
Jika VM menjalankan beban kerja intensif CPU, seperti server database atau server web dengan lalu lintas tinggi, Anda mungkin perlu memilih SKU dengan lebih banyak inti CPU.
Jika VM menjalankan beban kerja intensif memori, seperti model pembelajaran mesin atau aplikasi big data, Anda mungkin perlu memilih SKU dengan lebih banyak memori.
Jika VM kehabisan kapasitas penyimpanan, Anda mungkin perlu memilih SKU dengan lebih banyak penyimpanan.
Untuk informasi selengkapnya tentang memilih SKU yang tepat, Anda dapat menggunakan sumber daya berikut:
Azure VM Selector: Alat ini membantu Anda menemukan SKU VM yang tepat berdasarkan jenis beban kerja, OS dan perangkat lunak, dan wilayah penyebaran Anda.
Batasan
Anda tidak dapat mengubah ukuran VM yang memiliki disk sementara lokal ke ukuran VM tanpa disk sementara lokal dan sebaliknya.
Satu-satunya kombinasi yang diperbolehkan untuk mengubah ukuran adalah:
VM (dengan disk sementara lokal) - VM > (dengan disk sementara lokal); dan
VM (tanpa disk sementara lokal) - VM> (tanpa disk sementara lokal).