Skapa en närhetsplaceringsgrupp med Hjälp av PowerShell

Kommentar

Många av stegen i det här dokumentet gäller för vm-skalningsuppsättningar med enhetlig orkestreringsläge. Vi rekommenderar att du använder flexibel orkestrering för nya arbetsbelastningar. Mer information finns i Orchesration-lägen för VM-skalningsuppsättningar i Azure.

Om du placerar virtuella datorer i en enda region minskar det fysiska avståndet mellan instanserna. Genom att placera dem i en enda tillgänglighetszon förs de också fysiskt närmare varandra. Men när Azure-fotavtrycket växer kan en enda tillgänglighetszon omfatta flera fysiska datacenter, vilket kan leda till att nätverksfördröjningen påverkar ditt program.

För att få virtuella datorer så nära som möjligt och uppnå lägsta möjliga svarstid kan 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.

  • Låg svarstid mellan fristående virtuella datorer.
  • Låg svarstid mellan virtuella datorer i en enda tillgänglighetsuppsättning eller en VM-skalningsuppsättning.
  • Låg svarstid mellan fristående virtuella datorer, virtuella datorer i flera tillgänglighetsuppsättningar eller flera skalningsuppsättningar. Du kan ha flera beräkningsresurser i en enda placeringsgrupp för att sammanföra ett program med flera nivåer.
  • Låg svarstid mellan flera programnivåer med olika maskinvarutyper. Du kan till exempel köra serverdelen med hjälp av M-serien i en tillgänglighetsuppsättning och klientdelen på en D-serieinstans, i en skalningsuppsättning, i en enda närhetsplaceringsgrupp.

Använda närhetsplaceringsgrupper

En närhetsplaceringsgrupp är en resurs i Azure. Du måste skapa en innan du använder den med andra resurser. När den har skapats kan den användas med virtuella datorer, tillgänglighetsuppsättningar eller VM-skalningsuppsättningar. Du anger en närhetsplaceringsgrupp när du skapar beräkningsresurser som tillhandahåller närhetsplaceringsgruppens ID.

Du kan också flytta en befintlig resurs till en närhetsplaceringsgrupp. När du flyttar en resurs till en närhetsplaceringsgrupp bör du stoppa (frigöra) tillgången först eftersom den distribueras om potentiellt till ett annat datacenter i regionen för att uppfylla samlokaliseringsbegränsningen.

När det gäller tillgänglighetsuppsättningar och VM-skalningsuppsättningar bör du ange närhetsplaceringsgruppen på resursnivå i stället för de enskilda virtuella datorerna.

En närhetsplaceringsgrupp är en samlokaliseringsbegränsning snarare än en fästmekanism. Den fästs på ett specifikt datacenter med distributionen av den första resursen som ska användas. När alla resurser som använder närhetsplaceringsgruppen har stoppats (frigjorts) eller tagits bort fästs den inte längre. När du använder en närhetsplaceringsgrupp med flera VM-serier är det därför viktigt att ange alla nödvändiga typer i förväg i en mall när det är möjligt eller följa en distributionssekvens som förbättrar dina chanser för en lyckad distribution. Om distributionen misslyckas startar du om distributionen med vm-storleken som misslyckades som den första storleken som ska distribueras.

Vad du kan förvänta dig när du använder närhetsplaceringsgrupper

Närhetsplaceringsgrupper erbjuder samlokalisering i samma datacenter. Men eftersom närhetsplaceringsgrupper representerar ytterligare en distributionsbegränsning kan allokeringsfel inträffa. Det finns få användningsfall där du kan se allokeringsfel när du använder närhetsplaceringsgrupper:

  • När du frågar efter den första virtuella datorn i närhetsplaceringsgruppen väljs datacentret automatiskt. I vissa fall kan en andra begäran om en annan SKU för virtuella datorer misslyckas om den inte finns i det datacentret. I det här fallet returneras ett OverconstrainedAllocationRequest-fel. För att undvika detta kan du prova att ändra i vilken ordning du distribuerar SKU:er eller distribuera båda resurserna med en enda ARM-mall.
  • När det gäller elastiska arbetsbelastningar, där du lägger till och tar bort virtuella datorinstanser, kan en begränsning av närhetsplaceringsgruppen för distributionen leda till att begäran inte uppfylls, vilket resulterar i Ett AllocationFailure-fel .
  • Att stoppa (frigöra) och starta dina virtuella datorer efter behov är ett annat sätt att uppnå elasticitet. Eftersom kapaciteten inte behålls när du stoppar (frigör) en virtuell dator kan det leda till ett AllocationFailure-fel om du startar den igen.
  • Åtgärder för att starta och distribuera om virtuella datorer fortsätter att respektera närhetsplaceringsgruppen efter konfiguration.

Planerat underhåll och närhetsplaceringsgrupper

Planerade underhållshändelser, till exempel maskinvaruavstängning i ett Azure-datacenter, kan potentiellt påverka anpassningen av resurser i närhetsplaceringsgrupper. Resurser kan flyttas till ett annat datacenter, vilket stör förväntningarna på samverkan och svarstid som är associerade med närhetsplaceringsgruppen.

Kontrollera justeringsstatusen

Du kan göra följande för att kontrollera justeringsstatusen för dina närhetsplaceringsgrupper.

  • Samlokaliseringsstatus för närhetsplaceringsgrupper kan visas med hjälp av portalen, CLI och PowerShell.

    • För PowerShell kan samlokaliseringsstatus hämtas med hjälp av cmdleten Get-AzProximityPlacementGroup genom att inkludera den valfria parametern "-ColocationStatus".

    • För CLI kan samlokaliseringsstatus hämtas med hjälp az ppg show av den valfria parametern "--include-colocation-status".

  • För varje närhetsplaceringsgrupp ger en egenskap för samlokaliseringsstatus den aktuella justeringsstatussammanfattningen för de grupperade resurserna.

    • Justerad: Resursen ligger inom samma svarstidsslutpunkt för närhetsplaceringsgruppen.

    • Okänd: minst en av de virtuella datorresurserna frigörs. När de har startats återgår statusen till Justerad.

    • Inte justerad: minst en VM-resurs är inte anpassad till närhetsplaceringsgruppen. De specifika resurser som inte är anpassade kommer också att framhävas separat i medlemskapsavsnittet

  • För tillgänglighetsuppsättningar kan du se information om justering av enskilda virtuella datorer på sidan Översikt över tillgänglighetsuppsättningar.

  • För skalningsuppsättningar kan information om justering av enskilda instanser visas på fliken Instansersidan Översikt för skalningsuppsättningen.

Justera om resurser

Om en närhetsplaceringsgrupp är Not Alignedkan du stoppa\frigöra och sedan starta om de berörda resurserna. Om den virtuella datorn finns i en tillgänglighetsuppsättning eller en skalningsuppsättning måste alla virtuella datorer i tillgänglighetsuppsättningen eller skalningsuppsättningen stoppas\frigöras först innan de startas om.

Om det uppstår ett allokeringsfel på grund av distributionsbegränsningar kan du behöva stoppa\frigöra alla resurser i den berörda närhetsplaceringsgruppen (inklusive de justerade resurserna) först och sedan starta om dem för att återställa justeringen.

Bästa praxis

  • Använd närhetsplaceringsgrupper tillsammans med accelererat nätverk för den lägsta svarstiden. Mer information finns i Skapa en virtuell Linux-dator med accelererat nätverk eller Skapa en virtuell Windows-dator med accelererat nätverk.
  • Distribuera alla VM-storlekar i en enda mall. För att undvika att landa på maskinvara som inte har stöd för alla VM-SKU:er och storlekar som du behöver inkluderar du alla programnivåer i en enda mall så att alla distribueras samtidigt.
  • Om du skriptar distributionen med Hjälp av PowerShell, CLI eller SDK kan du få ett allokeringsfel OverconstrainedAllocationRequest. I det här fallet bör du stoppa/frigöra alla befintliga virtuella datorer och ändra sekvensen i distributionsskriptet till att börja med den virtuella datorns SKU/storlekar som misslyckades.
  • När du återanvänder en befintlig placeringsgrupp som virtuella datorer har tagits bort från väntar du tills borttagningen har slutförts helt innan du lägger till virtuella datorer i den.
  • Om svarstiden är din första prioritet placerar du virtuella datorer i en närhetsplaceringsgrupp och hela lösningen i en tillgänglighetszon. Men om återhämtning är din högsta prioritet sprider du dina instanser över flera tillgänglighetszoner (en enda närhetsplaceringsgrupp kan inte sträcka sig över zoner).

Skapa en närhetsplaceringsgrupp

Skapa en närhetsplaceringsgrupp med cmdleten New-AzProximityPlacementGroup .

$resourceGroup = "myPPGResourceGroup"
$location = "East US"
$ppgName = "myPPG"
New-AzResourceGroup -Name $resourceGroup -Location $location
$ppg = New-AzProximityPlacementGroup `
   -Location $location `
   -Name $ppgName `
   -ResourceGroupName $resourceGroup `
   -ProximityPlacementGroupType Standard

Lista närhetsplaceringsgrupper

Du kan lista alla närhetsplaceringsgrupper med hjälp av cmdleten Get-AzProximityPlacementGroup .

Get-AzProximityPlacementGroup

Skapa en skalningsuppsättning i en närhetsplaceringsgrupp

Viktigt!

Från och med november 2023 kommer VM-skalningsuppsättningar som skapats med PowerShell och Azure CLI som standard att vara flexibla orkestreringsläge om inget orkestreringsläge har angetts. Mer information om den här ändringen och vilka åtgärder du bör vidta finns i Icke-bakåtkompatibla ändringar för VMSS PowerShell/CLI-kunder – Microsoft Community Hub

Skapa en skala i närhetsplaceringsgruppen med hjälp av -ProximityPlacementGroup $ppg.Id för att referera till närhetsplaceringsgruppens ID när du använder New-AzVMSS för att skapa skalningsuppsättningen.

$scalesetName = "myVM"

New-AzVmss `
  -ResourceGroupName $resourceGroup `
  -Location $location `
  -OrchestrationMode "Uniform" `
  -VMScaleSetName $scalesetName `
  -VirtualNetworkName "myVnet" `
  -SubnetName "mySubnet" `
  -PublicIpAddressName "myPublicIPAddress" `
  -LoadBalancerName "myLoadBalancer" `
  -ProximityPlacementGroup $ppg.Id

Du kan se instansen i placeringsgruppen med hjälp av Get-AzProximityPlacementGroup.

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

Nästa steg

Du kan också använda Azure CLI för att skapa närhetsplaceringsgrupper.