Skapa en närhetsplaceringsgrupp med Hjälp av PowerShell

Note

Många av stegen i det här dokumentet gäller för Virtuella Maskinskalsuppsättningar med ett enhetligt orkestreringsläge. Vi rekommenderar att du använder flexibel orkestrering för nya arbetsbelastningar. Mer information finns i Orchestrering-lägen för Virtuella Maskinskalningsuppsä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 fotavtryck växer kan en enda tillgänglighetszon omfatta flera fysiska datacenter, vilket kan leda till en nätverksfördröjning som 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 skalningsuppsättningar för virtuella datorer. 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 Virtual Machine Scale Sets 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 till ett specifikt datacenter när den första resursen som använder den distribueras. När alla resurser som använder närhetsplaceringsgruppen har stoppats (frigjorts) eller tagits bort är den inte längre kopplad. 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. Undvik detta genom att ändra i vilken ordning du distribuerar dina SKU:er eller låta båda resurserna distribueras med hjälp av 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.
  • Virtuella datorers start- och omdistribueringsåtgärder kommer att fortsätta att respektera den närhetsplaceringsgruppen när den väl är framgångsrikt konfigurerad.

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 Get-AzProximityPlacementGroup cmdlet genom att inkludera den valfria parametern "-ColocationStatus".

    • För CLI:t kan samlokaliseringsstatus hämtas med az ppg show genom att inkludera 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 latensomfång för närhetsplaceringsgruppen.

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

    • Inte anpassad: 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 Instanser på sidan Översikt för skalningsuppsättningen.

Justera om resurser

Om en närhetsplaceringsgrupp är Not Aligned, kan 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.

Metodtips

  • 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. Om du vill undvika att landa på maskinvara som inte stöder 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/avallokera alla befintliga virtuella datorer och ändra ordningen i distributionsskriptet så att det börjar med de VM-SKU:er/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 motståndskraft är din högsta prioritet bör du fördela dina instanser över flera tillgänglighetszoner (en enda närhetsplaceringsgrupp kan inte omfatta flera 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 skaluppsättning i en närhetsplaceringsgrupp

Important

Från och med november 2023 kommer VM-skalningsuppsättningar som skapats med PowerShell och Azure CLI som standard använda flexibelt 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 Breaking Change for VMSS PowerShell/CLI Customers – 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.