Distribuera virtuella datorer till närhetsplaceringsgrupper med Hjälp av Azure PowerShell
Gäller för: ✔️ Virtuella Linux-datorer ✔️, virtuella Windows-datorer
För att få virtuella datorer så nära som möjligt och uppnå lägsta möjliga svarstid bör du distribuera dem inom en närhetsplaceringsgrupp.
En närhetsplaceringsgrupp är en logisk gruppering som används för att se till att Azure-beräkningsresurser finns fysiskt nära varandra. Närhetsplaceringsgrupper är användbara för arbetsbelastningar där låg svarstid är ett krav.
Skapa en närhetsplaceringsgrupp
Skapa en närhetsplaceringsgrupp med cmdleten 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
Lista närhetsplaceringsgrupper
Du kan lista alla närhetsplaceringsgrupper med hjälp av cmdleten 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
Skapa en virtuell dator
Skapa en virtuell dator i närhetsplaceringsgruppen med hjälp av -ProximityPlacementGroup $ppg.Id
för att referera till närhetsplaceringsgruppens ID när du använder New-AzVM för att skapa den virtuella datorn.
$vmName = "myVM"
New-AzVm `
-ResourceGroupName $resourceGroup `
-Name $vmName `
-Location $location `
-ProximityPlacementGroup $ppg.Id
Du kan se den virtuella datorn i placeringsgruppen med hjälp av Get-AzProximityPlacementGroup.
Get-AzProximityPlacementGroup -ResourceId $ppg.Id |
Format-Table -Property VirtualMachines -Wrap
Flytta en befintlig virtuell dator till en närhetsplaceringsgrupp
Du kan också lägga till en befintlig virtuell dator i en närhetsplaceringsgrupp. Du måste stoppa\frigöra den virtuella datorn först och sedan uppdatera den virtuella datorn och starta om.
$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
Flytta en befintlig virtuell dator från en närhetsplaceringsgrupp
Om du vill ta bort en virtuell dator från en närhetsplaceringsgrupp måste du först stoppa/frigöra den virtuella datorn och sedan uppdatera den virtuella datorn och starta om.
$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
Tillgänglighetsuppsättningar
Du kan också skapa en tillgänglighetsuppsättning i närhetsplaceringsgruppen. Använd samma -ProximityPlacementGroup
parameter med cmdleten New-AzAvailabilitySet för att skapa en tillgänglighetsuppsättning och alla virtuella datorer som skapas i tillgänglighetsuppsättningen skapas också i samma närhetsplaceringsgrupp.
Om du vill lägga till eller ta bort en befintlig tillgänglighetsuppsättning till en närhetsplaceringsgrupp måste du först stoppa alla virtuella datorer i tillgänglighetsuppsättningen.
Flytta en befintlig tillgänglighetsuppsättning till en närhetsplaceringsgrupp
$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
}
Flytta en befintlig tillgänglighetsuppsättning från en närhetsplaceringsgrupp
$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
}
Skalningsuppsättningar
Du kan också skapa en skalningsuppsättning i närhetsplaceringsgruppen. Använd samma -ProximityPlacementGroup
parameter med New-AzVmss för att skapa en skalningsuppsättning och alla instanser skapas i samma närhetsplaceringsgrupp.
Om du vill lägga till eller ta bort en befintlig skalningsuppsättning till en närhetsplaceringsgrupp måste du först stoppa skalningsuppsättningen.
Flytta en befintlig skalningsuppsättning till en närhetsplaceringsgrupp
$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
Flytta en befintlig skalningsuppsättning från en närhetsplaceringsgrupp
$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
Nästa steg
Du kan också använda Azure CLI för att skapa närhetsplaceringsgrupper.