Dela via


Skapa en vm-skalningsuppsättning som använder Tillgänglighetszoner

Azure-tillgänglighetszoner är felisolerade platser i en Azure-region som tillhandahåller redundant ström, kylning och nätverk. De gör att du kan köra program med hög tillgänglighet och feltolerans mot datacenterfel. Azure-regioner som stöder Tillgänglighetszoner ha minst tre separata zoner. Varje tillgänglighetszon består av ett eller flera datacenter som är utrustade med oberoende infrastrukturkraft, nätverk och kylning. Tillgänglighetszoner är anslutna via ett högpresterande nätverk med en svarstid på mindre än 2 millisekunder. Mer information finns i Översikt över Tillgänglighetszoner.

Om du vill skydda dina vm-skalningsuppsättningar mot fel på datacenternivå kan du skapa en skalningsuppsättning över Tillgänglighetszoner. Om du vill använda Tillgänglighetszoner måste skalningsuppsättningen skapas i en Azure-region som stöds.

Designöverväganden för tillgänglighetszoner

Vm-skalningsuppsättningar stöder tre zonindelade distributionsmodeller:

  • Zonredundant eller zonintervall (rekommenderas)
  • Zonindelad eller zonjusterad (enskild zon)
  • Regional

Zonredundant eller zonintervall

En zonredundant eller zon som sträcker sig över skalningsuppsättningen sprider instanser över alla valda zoner, "zones": ["1","2","3"]. Som standard utför skalningsuppsättningen bästa möjliga metod för att jämnt sprida instanser över valda zoner. Du kan dock ange att du vill ha strikt zonsaldo genom att ange "zoneBalance": "true" i distributionen. Varje virtuell dator och dess diskar är zonindelat, så de fästs i en specifik zon. Instanser mellan zoner är anslutna via högpresterande nätverk med låg svarstid. I händelse av ett zonindelade avbrott eller anslutningsproblem kan anslutningen till instanser i den berörda zonen äventyras, medan instanser i andra tillgänglighetszoner inte bör påverkas. Du kan lägga till kapacitet i skalningsuppsättningen under ett zonindelade avbrott och skalningsuppsättningen lägger till fler instanser i de opåverkade zonerna. När zonen återställs kan du behöva skala ned skalningsuppsättningen till den ursprungliga kapaciteten. Bästa praxis är att konfigurera regler för autoskalning baserat på cpu- eller minnesanvändning. Reglerna för autoskalning skulle göra det möjligt för skalningsuppsättningen att svara på en förlust av de virtuella datorinstanserna i den zonen genom att skala ut nya instanser i de återstående driftzonerna.

Spridning av instanser mellan tillgänglighetszoner uppfyller serviceavtalet på 99,99 % för instanser spridda över tillgänglighetszoner och rekommenderas för de flesta arbetsbelastningar i Azure.

Zonindelad eller zonjusterad (enskild zon)

En zonindelad eller zonjusterad skalningsuppsättning placerar instanser i en enda tillgänglighetszon "zones": ['1']. Varje virtuell dator och dess diskar är zonindelat, så de fästs i en specifik zon. Den här konfigurationen används främst när du behöver kortare svarstid mellan instanser.

Regional

En regional vm-skalningsuppsättning är när zontilldelningen inte uttryckligen anges ("zones"=[] eller "zones"=null). I den här konfigurationen skapar skalningsuppsättningen regionala (inte zonfästa) instanser och placerar implicit instanser i hela regionen. Det finns ingen garanti för balans eller spridning mellan zoner eller att instanser hamnar i samma tillgänglighetszon. Disksamlokalisering garanteras för Ultra- och Premium v2-diskar, bästa arbete för Premium V1-diskar och garanteras inte för Standard SKU-diskar (SSD eller HDD).

I sällsynta fall av ett fullständigt zonindelade avbrott kan alla instanser i skalningsuppsättningen påverkas.

Feldomäner och tillgänglighetszoner

En feldomän är en felisoleringsgrupp i en tillgänglighetszon eller ett datacenter med maskinvarunoder som delar samma schema för energi, nätverk, kylning och plattformsunderhåll. Vm-instanser som finns på olika feldomäner påverkas sannolikt inte av samma planerade eller oplanerade avbrott. Du kan ange hur instanser sprids över feldomäner inom en region eller zon.

  • Maximal spridning (platformFaultDomainCount = 1)
  • Statisk fast spridning (platformFaultDomainCount = 5)
  • Spridning i linje med feldomäner för lagringsdiskar (platformFaultDomainCount = 2 eller 3, endast för regionala distributioner)

Med maximal spridning sprider skalningsuppsättningen dina virtuella datorer över så många feldomäner som möjligt inom varje zon. Den här spridningen kan vara över större eller färre än fem feldomäner per zon. Med statisk fast spridning sprider skalningsuppsättningen dina virtuella datorer över exakt fem feldomäner per zon. Om skalningsuppsättningen inte kan hitta fem distinkta feldomäner per zon för att uppfylla allokeringsbegäran misslyckas begäran.

Vi rekommenderar att du distribuerar med maximal spridning för de flesta arbetsbelastningar, eftersom den här metoden ger den bästa spridningen i de flesta fall. Om du behöver repliker som ska spridas över distinkta maskinvaruisoleringsenheter rekommenderar vi att du sprider dig över Tillgänglighetszoner och använder maximal spridning inom varje zon.

Kommentar

Med maximal spridning ser du bara en feldomän i instansvyn för skalningsuppsättningen och i instansmetadata oavsett hur många feldomäner som de virtuella datorerna är spridda över. Spridningen inom varje zon är implicit.

Placeringsgrupper

Viktigt!

Placeringsgrupper gäller endast för vm-skalningsuppsättningar som körs i enhetligt orkestreringsläge.

När du distribuerar en skalningsuppsättning kan du distribuera med en enda placeringsgrupp per tillgänglighetszon eller med flera per zon. För regionala (icke-zonindelade) skalningsuppsättningar är valet att ha en enda placeringsgrupp i regionen eller att ha flera i regionen. Om skalningsuppsättningsegenskapen som heter singlePlacementGroup är inställd på false kan skalningsuppsättningen bestå av flera placeringsgrupper och har ett intervall på 0–1 000 virtuella datorer. När skalningsuppsättningen är inställd på standardvärdet true består den av en enskild placeringsgrupp och har ett intervall på 0–100 virtuella datorer. För de flesta arbetsbelastningar rekommenderar vi flera placeringsgrupper, vilket möjliggör större skalning. I API-version 2017-12-01 är skalningsuppsättningar som standard flera placeringsgrupper för skalningsuppsättningar med en zon och flera zoner, men de är standard för en enda placeringsgrupp för regionala skalningsuppsättningar (icke-zonindelade).

Kommentar

Om du använder maximal spridning måste du använda flera placeringsgrupper.

Zonutjämning

För skalningsuppsättningar som distribueras över flera zoner har du också möjlighet att välja "zonsaldo för bästa ansträngning" eller "strikt zonsaldo". En skalningsuppsättning anses vara "balanserad" om varje zon har samma antal virtuella datorer +\- 1 virtuell dator som alla andra zoner för skalningsuppsättningen. Till exempel:

  • En skalningsuppsättning med 2 virtuella datorer i zon 1, 3 virtuella datorer i zon 2 och 3 virtuella datorer i zon 3 anses vara balanserade. Det finns bara en zon med ett annat antal virtuella datorer och det är bara 1 mindre än de andra zonerna.
  • En skalningsuppsättning med 1 virtuell dator i zon 1, 3 virtuella datorer i zon 2 och 3 virtuella datorer i zon 3 anses vara obalanserad. Zon 1 har 2 färre virtuella datorer än zonerna 2 och 3.

Det är möjligt att virtuella datorer i skalningsuppsättningen har skapats, men tillägg på dessa virtuella datorer kan inte distribueras. Dessa virtuella datorer med tilläggsfel räknas fortfarande när du avgör om en skalningsuppsättning är balanserad. Till exempel anses en skalningsuppsättning med 3 virtuella datorer i zon 1, 3 virtuella datorer i zon 2 och 3 virtuella datorer i zon 3 vara balanserade även om alla tillägg misslyckades i zon 1 och alla tillägg lyckades i zon 2 och 3.

Med zonbalans med bästa förmåga försöker skalningsuppsättningen skala in och ut samtidigt som balansen bibehålls. Men om zonbalansen av någon anledning inte är möjlig (till exempel om en zon går ned kan skalningsuppsättningen inte skapa en ny virtuell dator i den zonen), gör skalningsuppsättningen att tillfällig obalans kan skalas in eller ut. Vid efterföljande utskalningsförsök lägger skalningsuppsättningen till virtuella datorer i zoner som behöver fler virtuella datorer för att skalningsuppsättningen ska balanseras. På samma sätt tar skalningsuppsättningen bort virtuella datorer från zoner som behöver färre virtuella datorer för att skalningsuppsättningen ska balanseras vid efterföljande skalningsförsök. Med "strikt zonbalans" misslyckas skalningsuppsättningen alla försök att skala in eller ut om detta skulle orsaka obalans.

Om du vill använda zonsaldo för bästa insats anger du zoneBalance till false. Den här inställningen är standardinställningen i API-version 2017-12-01. Om du vill använda strikt zonbalans anger du zoneBalance till true.

Kommentar

Egenskapen zoneBalance kan bara anges om egenskapen zones för skalningsuppsättningen innehåller mer än en zon. Om det inte finns några zoner eller bara en angiven zon bör egenskapen zoneBalance inte anges.

Skapa zonintervall eller zonindelade skalningsuppsättningar

När du distribuerar en VM-skalningsuppsättning kan du välja att använda en enda tillgänglighetszon i en region eller flera zoner.

Du kan skapa en skalningsuppsättning som använder Tillgänglighetszoner med någon av följande metoder:

Använda Azure Portal

Processen för att skapa en skalningsuppsättning som använder en tillgänglighetszon är densamma som i artikeln komma igång. När du väljer en Azure-region som stöds kan du skapa en skalningsuppsättning i en eller flera tillgängliga zoner, enligt följande exempel:

Skapa en skalningsuppsättning i en enda tillgänglighetszon

Skalningsuppsättningen och stödresurserna, till exempel Azure-lastbalanseraren och den offentliga IP-adressen, skapas i den enda zon som du anger.

Använda Azure CLI

Processen för att skapa en skalningsuppsättning som använder en tillgänglighetszon är densamma som i artikeln komma igång. Om du vill använda Tillgänglighetszoner måste du skapa din skalningsuppsättning i en Azure-region som stöds.

Lägg till parametern --zones i kommandot az vmss create och ange vilken zon som ska användas (till exempel zon 1, 2 eller 3).

az vmss create \
    --resource-group myResourceGroup \
    --name myScaleSet \
    --image <SKU Image> \
    --upgrade-policy-mode automatic \
    --admin-username azureuser \
    --generate-ssh-keys \
    --zones 1 2 3

Det tar några minuter att skapa och konfigurera alla skalningsuppsättningsresurser och virtuella datorer i de zoner som du anger. Ett fullständigt exempel på en zonredundant skalningsuppsättning och nätverksresurser finns i det här CLI-exempelskriptet

Använda Azure PowerShell

Om du vill använda Tillgänglighetszoner måste du skapa din skalningsuppsättning i en Azure-region som stöds. Lägg till parametern -Zone i kommandot New-AzVmssConfig och ange vilken zon eller zon som ska användas (till exempel zon 1, 2 eller 3).

New-AzVmss `
  -ResourceGroupName "myResourceGroup" `
  -Location "EastUS2" `
  -VMScaleSetName "myScaleSet" `
  -VirtualNetworkName "myVnet" `
  -SubnetName "mySubnet" `
  -PublicIpAddressName "myPublicIPAddress" `
  -LoadBalancerName "myLoadBalancer" `
  -UpgradePolicy "Automatic" `
  -Zone "1", "2", "3"

Använda Azure Resource Manager-mallar

Processen för att skapa en skalningsuppsättning som använder en tillgänglighetszon är densamma som i artikeln komma igång för Linux eller Windows.

{
  "type": "Microsoft.Compute/virtualMachineScaleSets",
  "name": "myScaleSet",
  "location": "East US 2",
  "apiVersion": "2017-12-01",
  "zones": [
        "1",
        "2",
        "3"
      ]
}

Om du skapar en offentlig IP-adress eller en lastbalanserare anger du egenskapen "sku": {"name":"Standard"} för att skapa zonredundanta nätverksresurser. Du måste också skapa en nätverkssäkerhetsgrupp och regler för att tillåta all trafik. Mer information finns i Översikt över Azure Load Balancer Standard och Standard Load Balancer och Tillgänglighetszoner.

Ett fullständigt exempel på en zonredundant skalningsuppsättning och nätverksresurser finns i vår Resource Manager-exempelmall.

Uppdatera skalningsuppsättning för att lägga till tillgänglighetszoner

Du kan ändra en skalning för att utöka den uppsättning zoner som virtuella datorinstanser ska spridas över. Om du expanderar kan du dra nytta av SLA för högre zontillgänglighet (99,99 %) jämfört med serviceavtal för regional tillgänglighet (99,95 %). Eller expandera skalningsuppsättningen för att dra nytta av nya tillgänglighetszoner som inte var tillgängliga när skalningsuppsättningen skapades.

Viktigt!

Uppdatering av vm-skalningsuppsättningar för att lägga till tillgänglighetszoner är för närvarande i förhandsversion. Förhandsversioner görs tillgängliga för dig under förutsättning att du godkänner de kompletterande användningsvillkoren. Vissa aspekter av funktionen kan ändras innan den är allmänt tillgänglig (GA).

Viktigt!

Den här funktionen är avsedd för tillståndslösa arbetsbelastningar på VM-skalningsuppsättningar. Skalningsuppsättningar med tillståndskänsliga arbetsbelastningar eller som används med Service Fabric eller Azure Kubernetes Services stöds inte för zonindelad expansion.

Den här funktionen kan användas med API-version 2023-03-01 eller senare.

Aktivera din prenumeration för att använda zonindelad expansionsfunktion

Du måste registrera dig för fyra funktionsflaggor i din prenumeration:

az feature register --namespace Microsoft.Compute --name VmssAllowRegionalToZonalMigration
az feature register --namespace Microsoft.Compute --name VmssAllowExpansionOfAvailabilityZones
az feature register --namespace Microsoft.Compute --name VmssFlexAllowExpansionOfAvailabilityZones
az feature register --namespace Microsoft.Compute --name VmssFlexAllowRegionalToZonalMigration

Du kan kontrollera registreringsstatusen för varje funktion med hjälp av:

az feature show --namespace Microsoft.Compute --name \<feature-name\>

Expandera skalningsuppsättning för att använda tillgänglighetszoner

Du kan uppdatera skalningsuppsättningen för att skala ut instanser till en eller flera ytterligare tillgänglighetszoner, upp till antalet tillgänglighetszoner som stöds av regionen. För regioner som stöder zoner är det minsta antalet zoner 3.

Viktigt!

När du utökar skalningsuppsättningen till ytterligare zoner kommer de ursprungliga instanserna inte att migreras eller ändras. När du skalar ut skapas nya instanser och sprids jämnt över de valda tillgänglighetszonerna. När du skalar i skalningsuppsättningen kommer alla regionala instanser först att initieras för borttagning. Därefter tas instanser bort baserat på skalan i principen.

Du expanderar till en zonindelad skalningsuppsättning i tre steg:

  1. Förbered för zonindelad expansion
  2. Parametern Uppdatera zoner i skalningsuppsättningen
  3. Lägga till nya zoninstanser och ta bort ursprungliga instanser

Förbered för zonindelad expansion

Varning

Med den här funktionen kan du lägga till zoner i skalningsuppsättningen. Du kan inte gå tillbaka till en regional skalningsuppsättning eller ta bort zoner när de har lagts till.

För att förbereda för zonindelad expansion:

  • Kontrollera att du har tillräckligt med kvot för vm-storleken i den valda regionen för att hantera fler instanser.
  • Kontrollera att vm-storleken och disktyperna som du använder är tillgängliga i alla önskade zoner. Du kan använda API:et för SKU:er för beräkningsresurser för att avgöra vilka storlekar som är tillgängliga i vilka zoner
  • Kontrollera att skalningsuppsättningskonfigurationen är giltig för zonindelade skalningsuppsättningar:
    • platformFaultDomainCount måste vara inställt på 1 eller 5. Fast spridning med 2 eller 3 feldomäner stöds inte för zonindelade distributioner.
    • Kapacitetsreservationer stöds inte under zonexpansionen. När skalningsuppsättningen är helt zonindelad (inga fler regionala instanser) kan du lägga till en kapacitetsreservationsgrupp i skalningsuppsättningen.
    • Azure Dedicated Host-distributioner stöds inte.

Uppdatera zonparametern i skalningsuppsättningen

Uppdatera skalningsuppsättningen för att ändra zonparametern.

  1. Gå till den skalningsuppsättning som du vill uppdatera
  2. På fliken Egenskaper på landningssidan för skalningsuppsättningen letar du reda på egenskapen Tillgänglighetszon och trycker på Redigera
  3. I dialogrutan Redigera plats väljer du önskade zoner
  4. Välj Använd

Lägga till nya zoninstanser och ta bort ursprungliga instanser

Skala ut och in manuellt

Uppdatera kapaciteten för skalningsuppsättningen för att lägga till fler instanser. Den nya kapaciteten ska anges till den ursprungliga kapaciteten plus antalet nya instanser. Om din skalningsuppsättning till exempel hade 5 regionala instanser och du vill skala ut så att du har 3 instanser i var och en av tre zoner bör du ange kapaciteten till 14.

Du kan uppdatera zonparametern och skalningsuppsättningskapaciteten i samma ARM-mall eller REST API-anrop.

När du är nöjd med att de nya instanserna är klara skalar du i skalningsuppsättningen för att ta bort de ursprungliga regionala instanserna. Du kan antingen ta bort de specifika regionala instanserna manuellt eller skala in genom att minska skalningsuppsättningskapaciteten. När du skalar in via att minska skalningsuppsättningskapaciteten föredrar plattformen alltid att ta bort de regionala instanserna och sedan följa skalan i principen.

Automatisera med löpande uppgraderingar + MaxSurge

Med löpande uppgraderingar + MaxSurge skapas nya zoninstanser och är uppdaterade med den senaste skalningsmodellen i batchar. När en batch med nya instanser har lagts till i skalningsuppsättningen och rapporten är felfri, tas en batch med gamla instanser bort från skalningsuppsättningen. Uppgraderingarna fortsätter tills alla instanser har uppdaterats.

Viktigt!

Löpande uppgraderingar med MaxSurge finns för närvarande under offentlig förhandsversion. Den är endast tillgänglig för VMSS Uniform Orchestration Mode.

Kända problem och begränsningar

  • Funktionen är avsedd för tillståndslösa arbetsbelastningar i VM-skalningsuppsättningar.

  • Skalningsuppsättningar som kör Service Fabric eller Azure Kubernetes Service stöds inte.

  • Du kan inte ta bort eller ersätta zoner, bara lägga till zoner

  • Du kan inte uppdatera från en zon som sträcker sig över eller zonindelad skalningsuppsättning till en regional skalningsuppsättning.

  • platformFaultDomainCount måste vara inställt på 1 eller 5. Fast spridning med 2 eller 3 feldomäner stöds inte för zonindelade distributioner.

  • Kapacitetsreservationer stöds inte under zonexpansionen. När skalningsuppsättningen är helt zonindelad (inga fler regionala instanser) kan du lägga till en kapacitetsreservationsgrupp i skalningsuppsättningen.

  • Azure Dedicated Host-distributioner stöds inte

Nästa steg

Nu när du har skapat en skalningsuppsättning i en tillgänglighetszon kan du lära dig hur du distribuerar program på vm-skalningsuppsättningar eller använder autoskalning med vm-skalningsuppsättningar.