Dela via


Automatiska instansreparationer för Skalningsuppsättningar för virtuella Azure-datorer

Genom att aktivera automatiska instansreparationer för Azure Virtual Machine Scale Sets kan du uppnå hög tillgänglighet för program genom att upprätthålla en uppsättning felfria instanser. Om en instans med feltillstånd hittas av programhälsotillägget eller lastbalanserarens hälsoavsökningar försöker automatiska instansreparationer återställa instansen genom att utlösa reparationsåtgärder som att ta bort den felaktiga instansen och skapa en ny för att ersätta den, återskapa den felaktiga instansen eller starta om den felaktiga instansen.

Krav för att använda automatiska instansreparationer

Aktivera övervakning av programhälsa för skalningsuppsättning

Skalningsuppsättningen bör ha programhälsoövervakning för instanser aktiverade. Hälsoövervakning kan göras med antingen Application Health-tillägget eller Lastbalanserarens hälsoavsökningar, där endast en kan aktiveras i taget. Programhälsotillägget eller lastbalanserarens avsökningar pingar programslutpunkten som konfigurerats på virtuella datorinstanser för att fastställa programmets hälsostatus. Den här hälsostatusen används av skalningsuppsättningsorkestratorn för att övervaka instanshälsan och utföra reparationer vid behov.

Konfigurera slutpunkten för att ange hälsostatus

Innan du aktiverar principen för automatiska instansreparationer kontrollerar du att dina skalningsuppsättningsinstanser har en programslutpunkt konfigurerad för att generera programmets hälsostatus. Om du vill konfigurera hälsostatus för Application Health-tillägget kan du använda antingen binärt hälsotillstånd eller Rich Health States. Information om hur du konfigurerar hälsostatus med hjälp av hälsoavsökningar för lastbalanserare finns i avsökningsbeteende.

För instanser som har markerats som "Ej felfria" eller "okända" (okänt tillstånd är endast tillgängligt med Application Health-tillägget – Rich Health States) utlöses automatiska reparationer av skalningsuppsättningen. Kontrollera att programslutpunkten är korrekt konfigurerad innan du aktiverar principen för automatiska reparationer för att undvika oavsiktliga instansreparationer medan slutpunkten konfigureras.

API-version

Principen för automatiska reparationer stöds för beräknings-API version 2018-10-01 eller senare.

Inställningen repairAction för Reimage och Restart stöds för beräknings-API-versionerna 2021-11-01 eller senare.

Begränsningar för flytt av resurser eller prenumerationer

Resurs- eller prenumerationsflyttningar stöds för närvarande inte för skalningsuppsättningar när funktionen för automatiska reparationer är aktiverad.

Begränsning för service fabric-skalningsuppsättningar

Den här funktionen stöds för närvarande inte för Service Fabric-skalningsuppsättningar.

Begränsning för virtuella datorer med etableringsfel

Automatiska reparationer stöder för närvarande inte scenarier där en virtuell datorinstans har markerats som Felaktig på grund av ett etableringsfel. Virtuella datorer måste initieras för att aktivera funktioner för hälsoövervakning och automatisk reparation.

Hur fungerar automatiska instansreparationer?

Funktionen för automatisk instansreparation är beroende av hälsoövervakning av enskilda instanser i en skalningsuppsättning. VM-instanser i en skalningsuppsättning kan konfigureras för att generera programhälsostatus med hjälp av antingen Application Health-tillägget eller Lastbalanserarens hälsoavsökningar. Om en instans visar sig vara felaktig utför skalningsuppsättningen en förkonfigurerad reparationsåtgärd på den felaktiga instansen. Automatiska instansreparationer kan aktiveras i vm-skalningsuppsättningsmodellen med hjälp automaticRepairsPolicy av objektet.

Processen för automatiska instansreparationer går enligt följande:

  1. Hälsoavsökningar för programhälsa eller lastbalanserare pingar programslutpunkten i varje virtuell dator i skalningsuppsättningen för att hämta programmets hälsostatus för varje instans.
  2. Om slutpunkten svarar med statusen 200 (OK) markeras instansen som "Felfri". I alla andra fall (inklusive om slutpunkten inte kan nås) markeras instansen som "Inte felfri".
  3. När en instans visar sig vara felaktig tillämpar skalningsuppsättningen den konfigurerade reparationsåtgärden (standard är Ersätt) på den felaktiga instansen.
  4. Instansreparationer utförs i batchar. Vid en viss tidpunkt repareras inte mer än 5 % av de totala instanserna i skalningsuppsättningen. Om en skalningsuppsättning har färre än 20 instanser utförs reparationerna för en instans med fel i taget.
  5. Ovanstående process fortsätter tills alla instanser som inte är felfria i skalningsuppsättningen repareras.

Tillgängliga reparationsåtgärder

Det finns tre tillgängliga reparationsåtgärder för automatiska instansreparationer – Replace, Reimage och Restart. Standardreparationsåtgärden är Ersätt, men du kan konfigurera automatiska reparationer för att använda Reimage eller Starta om genom att repairAction ändra inställningen under automaticRepairsPolicy objektet.

  • Ersätt tar bort den felaktiga instansen och skapar en ny instans som ersätter den. Den senaste vm-skalningsuppsättningsmodellen används för att skapa den nya instansen. Den här reparationsåtgärden är standard.

  • Reimage tillämpar återimeringsåtgärden på den felaktiga instansen.

  • Omstart tillämpar omstartsåtgärden på den felaktiga instansen.

I följande tabell jämförs skillnaderna mellan alla tre reparationsåtgärderna:

Reparationsåtgärd Bevarat VM-instans-ID? Bevarad privat IP-adress? Bevarad hanterad datadisk? Hanterad OS-disk bevarad? Bevarad lokal (tillfällig) disk?
Ersätt (standard) Nej Nej Nej Nej Nej
Återställ avbildning Ja Ja Ja No Ja
Starta om Ja Ja Ja Ja Ja

Mer information om hur du uppdaterar reparationsåtgärden under principen för automatiska reparationer finns i avsnittet konfigurera en reparationsåtgärd för principer för automatiska reparationer.

Batchbearbetning

De automatiska instansreparationsåtgärderna utförs i batchar. Vid en viss tidpunkt repareras inte mer än 5 % av instanserna i skalningsuppsättningen via principen för automatiska reparationer. Den här processen hjälper till att undvika samtidig borttagning och återskapande av ett stort antal instanser om det påträffas felfritt samtidigt.

Respitperiod

När en instans genomgår en tillståndsändringsåtgärd på grund av en PUT-, PATCH- eller POST-åtgärd som utförs på skalningsuppsättningen utförs alla reparationsåtgärder på den instansen först när respitperioden är slut. Respitperiod är den tid som instansen ska kunna återgå till felfritt tillstånd. Respitperioden börjar efter att tillståndsändringen har slutförts, vilket hjälper till att undvika för tidiga eller oavsiktliga reparationsåtgärder. Respitperioden respekteras för alla nyligen skapade instanser i skalningsuppsättningen, inklusive den som skapats till följd av reparationsåtgärden. Respitperiod anges i minuter i ISO 8601-format och kan anges med egenskapen automaticRepairsPolicy.gracePeriod. Respitperioden kan variera mellan 10 minuter och 90 minuter och har ett standardvärde på 10 minuter.

Avbrott i reparationer

Vm-skalningsuppsättningar ger möjlighet att tillfälligt pausa automatiska instansreparationer om det behövs. ServiceState för automatiska reparationer under egenskapen orchestrationServices i instansvyn för VM-skalningsuppsättningen visar det aktuella tillståndet för de automatiska reparationerna. När en skalningsuppsättning har valts för automatiska reparationer anges värdet för parametern serviceState till Körs. När de automatiska reparationerna pausas för en skalningsuppsättning är parametern serviceState inställd på Pausad. Om automaticRepairsPolicy definieras på en skalningsuppsättning men funktionen för automatiska reparationer inte är aktiverad, är parametern serviceState inställd på Inte körs.

Om nyligen skapade instanser för att ersätta de felaktiga instanserna i en skalningsuppsättning fortsätter att vara felfria även efter upprepade reparationsåtgärder, uppdaterar plattformen som en säkerhetsåtgärd serviceState för automatiska reparationer till Pausad. Du kan återuppta de automatiska reparationerna igen genom att ange värdet för serviceState för automatiska reparationer till Körs. Detaljerade instruktioner finns i avsnittet om att visa och uppdatera tjänsttillståndet för principen för automatiska reparationer för din skalningsuppsättning.

Du kan också konfigurera Azure Alert Rules för att övervaka serviceState-ändringar och få ett meddelande om automatiska reparationer pausas på din skalningsuppsättning. Mer information finns i Använda Azure-aviseringsregler för att övervaka ändringar i tjänsten för automatisk reparation av instanser.

Instansskydd och automatiska reparationer

Om en instans i en skalningsuppsättning skyddas genom att tillämpa någon av skyddsprinciperna utförs inte automatiska reparationer på den instansen. Det här beteendet gäller för båda skyddsprinciperna: Skydda mot inskalning och Skydda mot skalningsuppsättningsåtgärder .

Avsluta aviseringar och automatiska reparationer

Om funktionen avsluta meddelande är aktiverad på en skalningsuppsättning följer borttagningen av en instans som inte är felfri under en replace-åtgärd konfigurationen avsluta meddelande. Ett avisering om att avsluta skickas via Azure-metadatatjänsten – schemalagda händelser – och borttagningen av instanser fördröjs under tidsgränsen för den konfigurerade fördröjningen. Men skapandet av en ny instans för att ersätta den felaktiga väntar inte på att tidsgränsen för fördröjningen ska slutföras.

Aktivera principen för automatiska reparationer när du skapar en ny skalningsuppsättning

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

Om du vill aktivera principen för automatiska reparationer när du skapar en ny skalningsuppsättning kontrollerar du att alla krav för att välja den här funktionen uppfylls. Programslutpunkten bör vara korrekt konfigurerad för skalningsuppsättningsinstanser för att undvika att utlösa oavsiktliga reparationer medan slutpunkten konfigureras. För nyligen skapade skalningsuppsättningar utförs alla instansreparationer endast när respitperioden har slutförts. Om du vill aktivera automatisk instansreparation i en skalningsuppsättning använder du automaticRepairsPolicy-objektet i vm-skalningsuppsättningsmodellen.

Du kan också använda den här snabbstartsmallen för att distribuera en VM-skalningsuppsättning. Skalningsuppsättningen har en hälsoavsökning för lastbalanseraren och automatiska instansreparationer aktiverade med en respitperiod på 30 minuter.

Följande steg aktiverar principen för automatisk reparation när du skapar en ny skalningsuppsättning.

  1. Gå till Vm-skalningsuppsättningar.
  2. Välj + Lägg till för att skapa en ny skalningsuppsättning.
  3. Gå till fliken Hälsa .
  4. Leta upp avsnittet Hälsa.
  5. Aktivera alternativet Övervaka programmets hälsotillstånd .
  6. Leta upp avsnittet Automatisk reparationsprincip .
  7. Aktivera alternativet Automatiska reparationer.
  8. I Respitperiod (min)anger du respitperioden i minuter, tillåtna värden är mellan 10 och 90 minuter.
  9. När du är klar med att skapa den nya skalningsuppsättningen väljer du knappen Granska + skapa .

Aktivera principen för automatiska reparationer när du uppdaterar en befintlig skalningsuppsättning

Innan du aktiverar principen för automatiska reparationer i en befintlig skalningsuppsättning ska du se till att alla krav för att välja den här funktionen uppfylls. Programslutpunkten bör vara korrekt konfigurerad för skalningsuppsättningsinstanser för att undvika att utlösa oavsiktliga reparationer medan slutpunkten konfigureras. Om du vill aktivera automatisk instansreparation i en skalningsuppsättning använder du automaticRepairsPolicy-objektet i vm-skalningsuppsättningsmodellen.

När du har uppdaterat modellen för en befintlig skalningsuppsättning kontrollerar du att den senaste modellen tillämpas på alla instanser av skalan. Se instruktionen om att uppdatera virtuella datorer med den senaste skalningsuppsättningsmodellen.

Du kan ändra principen för automatiska reparationer för en befintlig skalningsuppsättning via Azure-portalen.

  1. Gå till en befintlig VM-skalningsuppsättning.0
  2. Under Inställningar i menyn till vänster väljer du Hälsa och reparation.
  3. Aktivera alternativet Övervaka programmets hälsotillstånd .

Om du övervakar din skalningsuppsättning med hjälp av tillägget Programhälsa:

  1. Välj Application Health-tillägget i listrutan Övervakare av programhälsa.

  2. I listrutan Protokoll väljer du det nätverksprotokoll som används av ditt program för att rapportera hälsotillståndet. Välj lämpligt protokoll baserat på dina programkrav. Protokollalternativen är HTTP, HTTPS eller TCP.

  3. I rutan Portnummerkonfiguration skriver du den nätverksport som används för att övervaka programmets hälsotillstånd.

  4. För Sökväg anger du den programslutpunktssökväg (till exempel "/") som används för att rapportera programmets hälsotillstånd.

    Kommentar

    Application Health-tillägget pingar den här sökvägen i varje virtuell dator i skalningsuppsättningen för att hämta programmets hälsostatus för varje instans. Om du använder binärt hälsotillstånd och slutpunkten svarar med statusen 200 (OK) markeras instansen som "Felfri". I alla andra fall (inklusive om slutpunkten inte kan nås) markeras instansen som "Inte felfri". Om du vill ha fler alternativ för hälsotillstånd kan du utforska Rich Health States.

Om du övervakar din skalningsuppsättning med SLB Health-avsökningar:

  • Välj Lastbalanserareavsökning i listrutan Programhälsaövervakare.– För hälsoavsökningen load balancer väljer du en befintlig hälsoavsökning eller skapar en ny hälsoavsökning för övervakning.

Så här aktiverar du automatiska reparationer:

  1. Leta upp avsnittet Automatisk reparationsprincip .
  2. Aktivera alternativet Automatiska reparationer.
  3. I Respitperiod (min)anger du respitperioden i minuter. Tillåtna värden är mellan 10 och 90 minuter.
  4. När du är klar väljer du Spara.

Konfigurera en reparationsåtgärd för principen för automatiska reparationer

Med repairAction inställningen under automaticRepairsPolicy kan du ange önskad reparationsåtgärd som utförs som svar på en instans med feltillstånd. Om du uppdaterar reparationsåtgärden för en befintlig princip för automatiska reparationer måste du först inaktivera automatiska reparationer på skalningsuppsättningen och återaktivera med den uppdaterade reparationsåtgärden. Den här processen visas i exemplen nedan.

Det här exemplet visar hur du uppdaterar reparationsåtgärden på en skalningsuppsättning med en befintlig princip för automatiska reparationer. Använd API-version 2021-11-01 eller senare.

Inaktivera den befintliga principen för automatiska reparationer i skalningsuppsättningen

PUT or PATCH on '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}?api-version=2021-11-01'
{
  "properties": {
    "automaticRepairsPolicy": {
            "enabled": "false"
        }
    }
}

Återaktivera principen för automatiska reparationer med önskad reparationsåtgärd

PUT or PATCH on '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}?api-version=2021-11-01'
{
  "properties": {
    "automaticRepairsPolicy": {
            "enabled": "true",
            "gracePeriod": "PT40M",
            "repairAction": "Reimage"
        }
    }
}

Visa och uppdatera tjänsttillståndet för principen för automatiska instansreparationer

Använd Hämta instansvy med API-version 2019-12-01 eller senare för Vm-skalningsuppsättning för att visa serviceState för automatiska reparationer under egenskapen orchestrationServices.

GET '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/instanceView?api-version=2019-12-01'
{
  "orchestrationServices": [
    {
      "serviceName": "AutomaticRepairs",
      "serviceState": "Running"
    }
  ]
}

Använd Set Orchestration Service State för att pausa eller återuppta serviceState för automatiska reparationer.

POST '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmScaleSetName}/instanceView?api-version=2023-07-01'

{
  "serviceName": "AutomaticRepairs",
  "action": "Suspend"
}

Felsöka

Det gick inte att aktivera principen för automatiska reparationer

Om du får felet "BadRequest" med meddelandet "Det gick inte att hitta medlemmen 'automaticRepairsPolicy' för objektet av typen "egenskaper" kontrollerar du DEN API-version som används för Vm-skalningsuppsättning. API-version 2018-10-01 eller senare krävs för den här funktionen.

Instansen repareras inte ens när principen är aktiverad

Instansen kan vara i respitperiod. Den här perioden är den tid som ska vänta efter tillståndsändringar på instansen innan du utför reparationer, vilket hjälper till att undvika eventuella för tidiga eller oavsiktliga reparationer. Reparationsåtgärden bör utföras när respitperioden har slutförts för instansen.

Visa programmets hälsostatus för skalningsuppsättningsinstanser

Du kan använda API:et Hämta instansvy för instanser i en vm-skalningsuppsättning för att visa programmets hälsostatus. Med Azure PowerShell kan du använda cmdleten Get-AzVmssVM med flaggan -InstanceView . Programmets hälsostatus anges under egenskapen vmHealth.

I Azure-portalen kan du också se hälsostatusen. Gå till en befintlig skalningsuppsättning, välj Instanser på menyn till vänster och titta på kolumnen Hälsotillstånd för hälsostatus för varje skalningsuppsättningsinstans.

Nästa steg

Lär dig hur du konfigurerar programhälsotillägg eller hälsoavsökningar för lastbalanserare för dina skalningsuppsättningar .