Menyebarkan VM ke grup penempatan kedekatan menggunakan Azure PowerShell

Berlaku untuk: ✔️ VM Linux ✔️ VM Windows

Untuk membuat VM sedekat mungkin, mencapai latensi serendah mungkin, Anda harus menyebarkan VM dalam grup penempatan kedekatan.

Grup penempatan kedekatan adalah pengelompokan logis yang digunakan untuk memastikan bahwa sumber daya komputasi Azure secara fisik terletak dekat satu sama lain. Grup penempatan kedekatan berguna untuk beban kerja yang membutuhkan latensi rendah.

Membuat grup penempatan kedekatan

Buat grup penempatan kedekatan menggunakan cmdlet New-AzProximityPlacementGroup.

$resourceGroup = "myPPGResourceGroup"
$location = "East US"
$ppgName = "myPPG"
$zone = "1"
$vmSize1 = "Standard_E64s_v4"
$vmSize2 = "Standard_M416ms_v2"
New-AzResourceGroup -Name $resourceGroup -Location $location
$ppg = New-AzProximityPlacementGroup `
   -Location $location `
   -Name $ppgName `
   -ResourceGroupName $resourceGroup `
   -ProximityPlacementGroupType Standard `
   -Zone $zone `
   -IntentVMSizeList $vmSize1, $vmSize2

Membuat daftar grup penempatan kedekatan

Anda dapat membuat daftar semua grup penempatan kedekatan menggunakan cmdlet Get-AzProximityPlacementGroup.

Get-AzProximityPlacementGroup -ResourceGroupName $resourceGroup -Name $ppgName   

ResourceGroupName           : myPPGResourceGroup
ProximityPlacementGroupType : Standard
Id                          : /subscriptions/[subscriptionId]/resourceGroups/myPPGResourceGroup/providers/Microsoft.Compute/proximityPlacementGroups/myPPG
Name                        : myPPG
Type                        : Microsoft.Compute/proximityPlacementGroups
Location                    : eastus
Tags                        : {}
Intent                      : 
  VmSizes[0]                : Standard_E64s_v4
  VmSizes[1]                : Standard_M416ms_v2
Zones[0]                    : 1

Buat VM

Buat VM di grup penempatan kedekatan menggunakan -ProximityPlacementGroup $ppg.Id untuk merujuk ke ID grup penempatan kedekatan saat Anda menggunakan New-AzVM untuk membuat VM.

$vmName = "myVM"

New-AzVm `
  -ResourceGroupName $resourceGroup `
  -Name $vmName `
  -Location $location `
  -ProximityPlacementGroup $ppg.Id

Anda dapat melihat VM di grup penempatan menggunakan Get-AzProximityPlacementGroup.

Get-AzProximityPlacementGroup -ResourceId $ppg.Id |
    Format-Table -Property VirtualMachines -Wrap

Memindahkan VM yang ada ke dalam grup penempatan kedekatan

Anda juga dapat menambahkan VM yang ada ke grup penempatan kedekatan. Anda perlu menghentikan\membatalkan alokasi VM terlebih dahulu, lalu memperbarui VM dan menghidupkan ulang.

$ppg = Get-AzProximityPlacementGroup -ResourceGroupName myPPGResourceGroup -Name myPPG
$vm = Get-AzVM -ResourceGroupName myResourceGroup -Name myVM
Stop-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
Update-AzVM -VM $vm -ResourceGroupName $vm.ResourceGroupName -ProximityPlacementGroupId $ppg.Id
Start-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName

Memindahkan VM yang ada dari grup penempatan kedekatan

Untuk menghapus VM dari grup penempatan kedekatan, Anda perlu menghentikan\membatalkan alokasi VM terlebih dahulu, lalu memperbarui VM dan menghidupkan ulang.

$ppg = Get-AzProximityPlacementGroup -ResourceGroupName myPPGResourceGroup -Name myPPG
$vm = Get-AzVM -ResourceGroupName myResourceGroup -Name myVM
Stop-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
$vm.ProximityPlacementGroup = ""
Update-AzVM -VM $vm -ResourceGroupName $vm.ResourceGroupName 
Start-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName

Kumpulan ketersediaan

Anda juga dapat membuat kumpulan ketersediaan di grup penempatan kedekatan Anda. Gunakan parameter -ProximityPlacementGroup yang sama dengan cmdlet New-AzAvailabilitySet untuk membuat kumpulan ketersediaan dan semua VM yang dibuat dalam kumpulan ketersediaan tersebut juga akan dibuat dalam grup penempatan kedekatan yang sama.

Untuk menambahkan atau menghapus kumpulan ketersediaan yang sudah ada ke grup penempatan kedekatan, pertama-tama Anda harus menghentikan semua VM dalam kumpulan ketersediaan tersebut.

Memindahkan kumpulan ketersediaan yang sudah ada ke dalam grup penempatan kedekatan

$resourceGroup = "myResourceGroup"
$avSetName = "myAvailabilitySet"
$avSet = Get-AzAvailabilitySet -ResourceGroupName $resourceGroup -Name $avSetName
$vmIds = $avSet.VirtualMachinesReferences
foreach ($vmId in $vmIDs){
    $string = $vmID.Id.Split("/")
    $vmName = $string[8]
    Stop-AzVM -ResourceGroupName $resourceGroup -Name $vmName -Force
    } 

$ppg = Get-AzProximityPlacementGroup -ResourceGroupName myPPG -Name myPPG
Update-AzAvailabilitySet -AvailabilitySet $avSet -ProximityPlacementGroupId $ppg.Id
foreach ($vmId in $vmIDs){
    $string = $vmID.Id.Split("/")
    $vmName = $string[8]
    Start-AzVM -ResourceGroupName $resourceGroup -Name $vmName 
    } 

Memindahkan kumpulan ketersediaan yang sudah ada dari grup penempatan kedekatan

$resourceGroup = "myResourceGroup"
$avSetName = "myAvailabilitySet"
$avSet = Get-AzAvailabilitySet -ResourceGroupName $resourceGroup -Name $avSetName
$vmIds = $avSet.VirtualMachinesReferences
foreach ($vmId in $vmIDs){
    $string = $vmID.Id.Split("/")
    $vmName = $string[8]
    Stop-AzVM -ResourceGroupName $resourceGroup -Name $vmName -Force
    } 

$avSet.ProximityPlacementGroup = ""
Update-AzAvailabilitySet -AvailabilitySet $avSet 
foreach ($vmId in $vmIDs){
    $string = $vmID.Id.Split("/")
    $vmName = $string[8]
    Start-AzVM -ResourceGroupName $resourceGroup -Name $vmName 
    } 

Kumpulan skala

Anda juga dapat membuat kumpulan skala di grup penempatan kedekatan Anda. Gunakan parameter -ProximityPlacementGroup yang sama dengan New-AzVmss untuk membuat kumpulan skala dan semua instans akan dibuat dalam grup penempatan kedekatan yang sama.

Untuk menambahkan atau menghapus kumpulan skala yang ada ke grup penempatan kedekatan, Anda harus menghentikan kumpulan skala tersebut terlebih dahulu.

Memindahkan kumpulan skala yang sudah ada ke dalam grup penempatan kedekatan

$ppg = Get-AzProximityPlacementGroup -ResourceGroupName myPPG -Name myPPG
$vmss = Get-AzVmss -ResourceGroupName myVMSSResourceGroup -VMScaleSetName myScaleSet
Stop-AzVmss -VMScaleSetName $vmss.Name -ResourceGroupName $vmss.ResourceGroupName
Update-AzVmss -VMScaleSetName $vmss.Name -ResourceGroupName $vmss.ResourceGroupName -ProximityPlacementGroupId $ppg.Id
Start-AzVmss -VMScaleSetName $vmss.Name -ResourceGroupName $vmss.ResourceGroupName

Memindahkan kumpulan skala yang sudah ada dari grup penempatan kedekatan

$vmss = Get-AzVmss -ResourceGroupName myVMSSResourceGroup -VMScaleSetName myScaleSet
Stop-AzVmss -VMScaleSetName $vmss.Name -ResourceGroupName $vmss.ResourceGroupName
$vmss.ProximityPlacementGroup = ""
Update-AzVmss -VirtualMachineScaleSet $vmss -VMScaleSetName $vmss.Name -ResourceGroupName $vmss.ResourceGroupName  
Start-AzVmss -VMScaleSetName $vmss.Name -ResourceGroupName $vmss.ResourceGroupName

Langkah berikutnya

Anda juga dapat menggunakan Azure CLI untuk membuat grup penempatan kedekatan.