Dela via


Förstå regelbunden säkerhetskopieringskonfiguration i Azure Service Fabric

Att konfigurera regelbunden säkerhetskopiering av tillförlitliga tillståndskänsliga tjänster eller Reliable Actors består av följande steg:

  1. Skapa säkerhetskopieringsprinciper: I det här steget skapas en eller flera säkerhetskopieringsprinciper beroende på krav.

  2. Aktivera säkerhetskopiering: I det här steget associerar du säkerhetskopieringsprinciper som skapats i steg 1 med nödvändiga entiteter, program, tjänster eller partitioner.

Skapa säkerhetskopieringsprincip

En säkerhetskopieringsprincip består av följande konfigurationer:

  • Automatisk återställning vid dataförlust: Anger om återställning ska utlösas automatiskt med den senaste tillgängliga säkerhetskopieringen om partitionen skulle få en dataförlusthändelse.

Kommentar

Vi rekommenderar att DU INTE anger automatisk återställning i produktionskluster

  • Maximalt antal inkrementella säkerhetskopior: Definierar det maximala antalet inkrementella säkerhetskopior som ska göras mellan två fullständiga säkerhetskopior. Maximalt antal inkrementella säkerhetskopior anger den övre gränsen. En fullständig säkerhetskopia kan göras innan det angivna antalet inkrementella säkerhetskopior slutförs i något av följande villkor

    1. Repliken har aldrig tagit en fullständig säkerhetskopia eftersom den har blivit primär.

    2. Några av loggposterna sedan den senaste säkerhetskopieringen har trunkerats.

    3. Repliken passerade maxaccumulatedBackupLogSizeInMB-gränsen.

  • Schema för säkerhetskopiering: Den tid eller frekvens då regelbundna säkerhetskopieringar ska utföras. Man kan schemalägga att säkerhetskopior ska vara återkommande vid angivet intervall eller vid en fast tid dagligen/varje vecka.

    1. Schema för frekvensbaserad säkerhetskopiering: Den här schematypen ska användas om du behöver göra säkerhetskopiering av data med fasta intervall. Önskat tidsintervall mellan två på varandra följande säkerhetskopior definieras med ISO8601 format. Frekvensbaserat säkerhetskopieringsschema stöder intervallmatchning till minut.

      {
          "ScheduleKind": "FrequencyBased",
          "Interval": "PT10M"
      }
      
    2. Tidsbaserat säkerhetskopieringsschema: Den här schematypen ska användas om behovet är att säkerhetskopiera data vid specifika tidpunkter på dagen eller veckan. Schemafrekvenstypen kan antingen vara daglig eller veckovis.

      1. Schema för daglig tidsbaserad säkerhetskopiering: Den här schematypen ska användas om du behöver säkerhetskopiera data vid specifika tidpunkter på dagen. Om du vill ange detta anger du ScheduleFrequencyType Till Daglig och anger RunTimes till lista över önskad tid under dagen i ISO8601 format, datum som anges tillsammans med tiden ignoreras. Representerar till exempel 0001-01-01T18:00:00 18 :00 varje dag och ignorerar datumdel 0001-01-01. Nedan visas konfigurationen för att utlösa daglig säkerhetskopiering kl . 09:00 och 18 :00 varje dag.

        {
            "ScheduleKind": "TimeBased",
            "ScheduleFrequencyType": "Daily",
            "RunTimes": [
              "0001-01-01T09:00:00Z",
              "0001-01-01T18:00:00Z"
            ]
        }
        
      2. Schema för veckovis tidsbaserad säkerhetskopiering: Den här schematypen ska användas om behovet är att säkerhetskopiera data vid specifika tidpunkter på dagen. Ange detta genom att ange ScheduleFrequencyType Veckovis. Ange RunDays till lista över dagar i en vecka när säkerhetskopieringen måste utlösas och ange RunTimes en lista över önskad tid under dagen i ISO8601 format, datum som anges tillsammans med tiden ignoreras. Lista över dagar i veckan när den periodiska säkerhetskopieringen ska utlösas. Nedan visas konfigurationen för att utlösa daglig säkerhetskopiering kl . 09:00 och 18 :00 under måndag till fredag.

        {
            "ScheduleKind": "TimeBased",
            "ScheduleFrequencyType": "Weekly",
            "RunDays": [
               "Monday",
               "Tuesday",
               "Wednesday",
               "Thursday",
               "Friday"
            ],
            "RunTimes": [
              "0001-01-01T09:00:00Z",
              "0001-01-01T18:00:00Z"
            ]
        }
        
  • Lagring av säkerhetskopior: Anger platsen för uppladdning av säkerhetskopior. Lagring kan vara antingen Azure Blob Store eller filresurs.

    1. Azure Blob Store med hanterad identitet: Den här lagringstypen bör väljas när behovet är att lagra genererade säkerhetskopior i Azure. Både fristående och molnbaserade kluster kan använda den här lagringstypen. Beskrivning för den här lagringstypen kräver BlobServiceUri och namnet på containern där säkerhetskopior måste laddas upp. Om containern med det angivna namnet inte är tillgänglig skapas den under uppladdningen av en säkerhetskopia. Ersätt account-name med namnet på ditt lagringskonto.

      {
          "StorageKind": "ManagedIdentityAzureBlobStore",
          "FriendlyName": "AzureMI_storagesample",
          "BlobServiceUri": "https://<account-name>.blob.core.windows.net",
          "ContainerName": "backup-container",
          "ManagedIdentityType": "VMSS",
          "ManagedIdentityClientId": "<Client-Id of User-Assigned MI>" 
      }
      

      [OBS] Använd valfri parameter ManagedIdentityClientId med klient-ID för användartilldelad hanterad identitet om flera användartilldelade hanterade identiteter har tilldelats till resursen eller både SAMI och UAMI tilldelade, och vi måste använda UAMI som standard, annars behöver vi inte den här paramtern.

      följ stegen för tilldelning av hanterad identitet på Azure-resursen:

      1. Aktivera systemtilldelad eller Användartilldelad hanterad identitet i VMSS Konfigurera hanterade identiteter på vm-skalningsuppsättning

      2. Tilldela rollen till den HANTERADE VMSS-identiteten till lagringskontot Tilldela Azure-roller med hjälp av Azure-portalen – Azure RBAC

        1. Lagringsblobdatadeltagare som minst

      Mer information om hanterad identitet

    2. Azure Blob Store med ConnectionString: Den här lagringstypen bör väljas när behovet är att lagra genererade säkerhetskopior i Azure. Både fristående och molnbaserade kluster kan använda den här lagringstypen. Beskrivning för den här lagringstypen kräver niska veze och namnet på containern där säkerhetskopior måste laddas upp. Om containern med det angivna namnet inte är tillgänglig skapas den under uppladdningen av en säkerhetskopia.

      {
          "StorageKind": "AzureBlobStore",
          "FriendlyName": "Azure_storagesample",
          "ConnectionString": "<Put your Azure blob store connection string here>",
          "ContainerName": "backup-container"
      }
      

      Kommentar

      Tjänsten för säkerhetskopieringsåterställning fungerar inte med v1 Azure Storage ConnectionString rekommenderas inte i produktion eftersom direkt åtkomst till resurs utan användarautentisering

    3. Filresurs: Den här lagringstypen bör väljas för fristående kluster när behovet är att lagra datasäkerhetskopiering lokalt. Beskrivning för den här lagringstypen kräver filresurssökväg där säkerhetskopior måste laddas upp. Åtkomst till filresursen kan konfigureras med något av följande alternativ

      1. Integrerad Windows-autentisering, där åtkomst till filresurs tillhandahålls till alla datorer som tillhör Service Fabric-klustret. I det här fallet anger du följande fält för att konfigurera filresursbaserad lagring av säkerhetskopior.

        {
            "StorageKind": "FileShare",
            "FriendlyName": "Sample_FileShare",
            "Path": "\\\\StorageServer\\BackupStore"
        }
        
      2. Skydda filresursen med användarnamn och lösenord, där åtkomst till filresursen ges till specifika användare. Lagringsspecifikationen för filresurser ger också möjlighet att ange sekundärt användarnamn och sekundärt lösenord för att tillhandahålla återställningsuppgifter om autentiseringen misslyckas med primärt användarnamn och primärt lösenord. I det här fallet anger du följande fält för att konfigurera filresursbaserad lagring av säkerhetskopior.

        {
            "StorageKind": "FileShare",
            "FriendlyName": "Sample_FileShare",
            "Path": "\\\\StorageServer\\BackupStore",
            "PrimaryUserName": "backupaccount",
            "PrimaryPassword": "<Password for backupaccount>",
            "SecondaryUserName": "backupaccount2",
            "SecondaryPassword": "<Password for backupaccount2>"
        }
        

Kommentar

Se till att lagringstillförlitligheten uppfyller eller överskrider tillförlitlighetskraven för säkerhetskopierade data.

  • Kvarhållningsprincip: Anger principen för att behålla säkerhetskopior i den konfigurerade lagringen. Endast grundläggande kvarhållningsprincip stöds.
    1. Grundläggande kvarhållningsprincip: Med den här kvarhållningsprincipen kan du säkerställa optimal lagringsanvändning genom att ta bort säkerhetskopierade filer som inte längre krävs. RetentionDuration kan anges för att ange det tidsintervall för vilket säkerhetskopior måste behållas i lagringen. MinimumNumberOfBackups är en valfri parameter som kan anges för att se till att det angivna antalet säkerhetskopior alltid behålls oavsett RetentionDuration. Exemplet nedan illustrerar konfigurationen för att behålla säkerhetskopior i 10 dagar och tillåter inte att antalet säkerhetskopior hamnar under 20.

      {
          "RetentionPolicyType": "Basic",
          "RetentionDuration": "P10D",
          "MinimumNumberOfBackups": 20
      }
      

Aktivera periodisk säkerhetskopiering

När du har definierat säkerhetskopieringsprincipen för att uppfylla kraven för datasäkerhetskopiering bör säkerhetskopieringsprincipen vara korrekt associerad med ett program, en tjänst eller en partition.

Kommentar

Kontrollera att inga programuppgraderingar pågår innan du aktiverar säkerhetskopiering

Hierarkisk spridning av säkerhetskopieringsprincip

I Service Fabric är relationen mellan program, tjänst och partitioner hierarkisk enligt beskrivningen i Programmodell. Säkerhetskopieringsprincip kan associeras med ett program, en tjänst eller en partition i hierarkin. Säkerhetskopieringsprincipen sprids hierarkiskt till nästa nivå. Förutsatt att det bara finns en säkerhetskopieringsprincip som skapats och associerats med ett program, säkerhetskopieras alla tillståndskänsliga partitioner som tillhör alla tillförlitliga tillståndskänsliga tjänster och Reliable Actors i programmet med hjälp av säkerhetskopieringsprincipen. Eller om säkerhetskopieringsprincipen är associerad med en tillförlitlig tillståndskänslig tjänst säkerhetskopieras alla dess partitioner med hjälp av säkerhetskopieringsprincipen.

Åsidosättande säkerhetskopieringsprincip

Det kan finnas ett scenario där säkerhetskopiering av data med samma säkerhetskopieringsschema krävs för alla tjänster i programmet förutom för specifika tjänster där behovet är att ha säkerhetskopiering av data med högre frekvensschema eller säkerhetskopiering till ett annat lagringskonto eller fildelning. För att hantera sådana scenarier tillhandahåller tjänsten för säkerhetskopieringsåterställning möjlighet att åsidosätta spridd princip i tjänst- och partitionsomfång. När säkerhetskopieringsprincipen är associerad vid tjänst eller partition åsidosätter den eventuell spridd säkerhetskopieringsprincip.

Exempel

I det här exemplet används konfiguration med två program, MyApp_A och MyApp_B. Program MyApp_A innehåller två Reliable Stateful-tjänster, SvcA1 & SvcA3 och en Reliable Actor-tjänst, ActorA2. SvcA1 innehåller tre partitioner medan ActorA2 och SvcA3 innehåller två partitioner vardera. Program MyApp_B innehåller tre Reliable Stateful-tjänster, SvcB1, SvcB2 och SvcB3. _SvcB1 och SvcB2 innehåller två partitioner vardera medan SvcB3 innehåller tre partitioner.

Anta att de här programmens krav på datasäkerhetskopiering är följande

  1. MyApp_A

    1. Skapa daglig säkerhetskopiering av data för alla partitioner av alla Reliable Stateful-tjänster och Reliable Actors som tillhör programmet. Ladda upp säkerhetskopierade data till platsen BackupStore1.

    2. En av tjänsterna, SvcA3, kräver säkerhetskopiering av data varje timme.

    3. Datastorleken i partitionen SvcA1_P2 är mer än förväntat och dess säkerhetskopieringsdata bör lagras på en annan lagringsplats , BackupStore2.

  2. MyApp_B

    1. Skapa säkerhetskopiering av data varje söndag kl. 08:00 för alla partitioner av SvcB1-tjänsten . Ladda upp säkerhetskopierade data till platsen BackupStore1.

    2. Skapa en säkerhetskopia av data varje dag kl. 08:00 för partition SvcB2_P1. Ladda upp säkerhetskopierade data till platsen BackupStore1.

För att uppfylla dessa krav för säkerhetskopiering av data skapas säkerhetskopieringsprinciper BP_1 till BP_5 och säkerhetskopiering aktiveras på följande sätt.

  1. MyApp_A

    1. Skapa säkerhetskopieringsprincip, BP_1, med frekvensbaserat säkerhetskopieringsschema där frekvensen är inställd på 24 timmar. och lagring av säkerhetskopior som konfigurerats för att använda lagringsplatsen BackupStore1. Aktivera den här principen för Program MyApp_A med aktivera API för programsäkerhetskopiering. Den här åtgärden möjliggör säkerhetskopiering av data med hjälp av säkerhetskopieringsprinciper BP_1 för alla partitioner av Reliable Stateful-tjänster och Reliable Actors som tillhör program MyApp_A.

    2. Skapa säkerhetskopieringsprincip, BP_2, med frekvensbaserat säkerhetskopieringsschema där frekvensen är inställd på 1 timme. och lagring av säkerhetskopior som konfigurerats för att använda lagringsplatsen BackupStore1. Aktivera den här principen för service SvcA3 med hjälp av Aktivera API för tjänstsäkerhetskopiering . Den här åtgärden åsidosätter spridd princip BP_1 av explicit aktiverad säkerhetskopieringsprincip BP_2 för alla partitioner av tjänsten SvcA3 som leder till säkerhetskopiering av data med hjälp av säkerhetskopieringsprincip BP_2 för dessa partitioner.

    3. Skapa säkerhetskopieringsprincip, BP_3, med frekvensbaserat säkerhetskopieringsschema där frekvensen är inställd på 24 timmar. och säkerhetskopieringslagring som konfigurerats för att använda lagringsplatsen BackupStore2. Aktivera den här principen för partitions-SvcA1_P2 med aktivera API för partitionssäkerhetskopiering. Den här åtgärden åsidosätter spridd princip BP_1 av explicit aktiverad säkerhetskopieringsprincip BP_3 för partitions SvcA1_P2.

  2. MyApp_B

    1. Skapa säkerhetskopieringsprincip, BP_4, med tidsbaserat säkerhetskopieringsschema där schemafrekvenstypen är inställd på varje vecka, kördagar är inställt på söndag och körningstiderna är inställda på 08:00. Säkerhetskopieringslagring som konfigurerats för att använda lagringsplatsen BackupStore1. Aktivera den här principen för service SvcB1 med hjälp av AKTIVERA API för tjänstsäkerhetskopiering . Den här åtgärden aktiverar säkerhetskopiering av data med hjälp av säkerhetskopieringsprinciper BP_4 för alla partitioner av tjänsten SvcB1.

    2. Skapa en säkerhetskopieringsprincip, BP_5, med tidsbaserat säkerhetskopieringsschema där schemafrekvenstypen är inställd på dagligen och körningstiderna är inställda på 08:00. Säkerhetskopieringslagring som konfigurerats för att använda lagringsplatsen BackupStore1. Aktivera den här principen för partitions-SvcB2_P1 med aktivera API för partitionssäkerhetskopiering. Den här åtgärden aktiverar säkerhetskopiering av data med hjälp av säkerhetskopieringsprinciper BP_5 för partitions SvcB2_P1.

Följande diagram visar uttryckligen aktiverade säkerhetskopieringsprinciper och spridade säkerhetskopieringsprinciper.

Programhierarki för Service Fabric

Inaktivera säkerhetskopiering

Säkerhetskopieringsprinciper kan inaktiveras när du inte behöver säkerhetskopiera data. Säkerhetskopieringsprinciper som är aktiverade i ett program kan bara inaktiveras i samma program med hjälp av Inaktivera API för programsäkerhetskopiering, Säkerhetskopieringsprincip som är aktiverad i en tjänst kan inaktiveras i samma tjänst med hjälp av Inaktivera API för tjänstsäkerhetskopiering och Säkerhetskopieringsprincip som är aktiverad vid en partition kan inaktiveras på samma partition med hjälp av Inaktivera API för partitionssäkerhetskopiering.

  • Om du inaktiverar en säkerhetskopieringsprincip för ett program stoppas alla periodiska säkerhetskopieringar till följd av spridning av säkerhetskopieringsprincipen till Reliable Stateful-tjänstpartitioner eller Reliable Actor-partitioner.

  • Om du inaktiverar en säkerhetskopieringsprincip för en tjänst stoppas alla periodiska säkerhetskopieringar av data till följd av spridning av den här säkerhetskopieringsprincipen till tjänstens partitioner.

  • Om du inaktiverar en säkerhetskopieringsprincip för en partition stoppas all periodisk säkerhetskopiering av data på grund av säkerhetskopieringsprincipen på partitionen.

  • När du inaktiverar säkerhetskopiering för en entitet (program/tjänst/partition) CleanBackup kan ställas in på true för att ta bort alla säkerhetskopior i konfigurerad lagring.

    {
        "CleanBackup": true 
    }
    

Kommentar

Kontrollera att inga programuppgraderingar pågår innan du inaktiverar säkerhetskopieringen

Pausa och återuppta säkerhetskopiering

Vissa situationer kan kräva att periodisk säkerhetskopiering av data tillfälligt avbryts. I sådana situationer, beroende på kravet, kan pausa säkerhetskopierings-API:et användas i ett program, en tjänst eller en partition. Periodisk säkerhetskopieringsavstängning är transitiv över underträd i programmets hierarki från den punkt där den tillämpas.

  • När avstängning tillämpas på ett program som använder Suspend Application Backup API, pausas alla tjänster och partitioner under det här programmet för regelbunden säkerhetskopiering av data.

  • När avstängning tillämpas på en tjänst med hjälp av API för tjänstsäkerhetskopiering pausas alla partitioner under den här tjänsten för regelbunden säkerhetskopiering av data.

  • När avstängning tillämpas på en partition med hjälp av API för pausad partitionssäkerhetskopiering pausas partitioner under den här tjänsten för regelbunden säkerhetskopiering av data.

När behovet av avstängning är över kan den periodiska säkerhetskopieringen av data återställas med respektive API för återupptad säkerhetskopiering. Periodisk säkerhetskopiering måste återupptas vid samma program, tjänst eller partition där den pausades.

Skillnad mellan pausa och inaktivera säkerhetskopior

Inaktivera säkerhetskopiering ska användas när säkerhetskopior inte längre krävs för ett visst program, en tjänst eller en partition. Man kan anropa inaktivera säkerhetskopieringsbegäran tillsammans med parametern rena säkerhetskopior för att vara sant, vilket skulle innebära att alla befintliga säkerhetskopior också tas bort. Pausa ska dock användas i scenarier där man tillfälligt vill stänga av säkerhetskopieringar som när den lokala disken blir full eller om det inte går att ladda upp säkerhetskopian på grund av kända nätverksproblem osv.

Inaktivera kan endast anropas på en nivå, vilket tidigare var aktiverat för säkerhetskopiering, men avstängning kan tillämpas på valfri nivå, vilket för närvarande är aktiverat för säkerhetskopiering antingen direkt eller via arv/hierarki. Om säkerhetskopiering till exempel är aktiverat på programnivå kan man bara anropa inaktivera på programnivå, men paus kan anropas i programmet, valfri tjänst eller partition under programmet.

Automatisk återställning vid dataförlust

Tjänstpartitionen kan förlora data på grund av oväntade fel. Disken för två av tre repliker för en partition (inklusive den primära repliken) skadas eller rensas till exempel.

När Service Fabric upptäcker att partitionen är i dataförlust anropar OnDataLossAsync den gränssnittsmetoden på partitionen och förväntar sig att partitionen vidtar den nödvändiga åtgärden för att komma ur dataförlust. I det här fallet, om den effektiva säkerhetskopieringsprincipen på partitionen har AutoRestoreOnDataLoss flaggan inställd true på, utlöses återställningen automatiskt med hjälp av den senaste tillgängliga säkerhetskopieringen för den här partitionen.

Kommentar

Vi rekommenderar att DU INTE anger automatisk återställning i produktionskluster

Hämta säkerhetskopieringskonfiguration

Separata API:er görs tillgängliga för att hämta konfigurationsinformation för säkerhetskopiering i ett program, en tjänst och ett partitionsområde. Hämta konfigurationsinformation för programsäkerhetskopiering, Hämta konfigurationsinformation för tjänstsäkerhetskopiering och Hämta konfigurationsinformation för partitionssäkerhetskopiering är dessa API:er. I huvudsak returnerar dessa API:er den tillämpliga säkerhetskopieringsprincipen, omfånget där säkerhetskopieringsprincipen tillämpas och information om säkerhetskopieringsavstängning. Följande är en kort beskrivning av returnerade resultat av dessa API:er.

  • Konfigurationsinformation för programsäkerhetskopiering: innehåller information om säkerhetskopieringsprinciper som tillämpas i programmet och alla principöversidosättningar på tjänster och partitioner som tillhör programmet. Den innehåller även information om avstängning för programmet och dess tjänster samt partitioner.

  • Konfigurationsinformation för tjänstsäkerhetskopiering: innehåller information om effektiv säkerhetskopieringsprincip i tjänsten och omfånget där den här principen tillämpades och alla åsidosättna principer på dess partitioner. Den innehåller även information om avstängning för tjänsten och dess partitioner.

  • Konfigurationsinformation för partitionssäkerhetskopiering: innehåller information om effektiv säkerhetskopieringsprincip vid partition och det omfång där den här principen tillämpades. Den innehåller också information om avstängning för partitionerna.

Lista tillgängliga säkerhetskopior

Tillgängliga säkerhetskopior kan visas med api:et Hämta säkerhetskopieringslista. Resultatet av API-anropet innehåller informationsobjekt för säkerhetskopiering som är relaterade till alla säkerhetskopior som är tillgängliga i lagringen för säkerhetskopior, som konfigureras i den tillämpliga säkerhetskopieringsprincipen. Olika varianter av det här API:et tillhandahålls för att lista tillgängliga säkerhetskopior som tillhör ett program, en tjänst eller en partition. Dessa API:er har stöd för att få den senaste tillgängliga säkerhetskopieringen av alla tillämpliga partitioner eller filtrering av säkerhetskopior baserat på startdatum och slutdatum.

Dessa API:er stöder också sidnumrering av resultaten, när MaxResults-parametern är inställd på ett icke-nollposal positivt heltal, returnerar API:et maximalt MaxResults-informationsobjekt för säkerhetskopiering. Om det finns fler tillgängliga objekt för säkerhetskopieringsinformation än MaxResults-värdet returneras en fortsättningstoken. Giltig fortsättningstokenparameter kan användas för att hämta nästa uppsättning resultat. När giltigt värde för fortsättningstoken skickas till nästa anrop av API:et returnerar API:et nästa uppsättning resultat. Ingen fortsättningstoken ingår i svaret när alla tillgängliga resultat returneras.

Följande är den korta informationen om varianter som stöds.

Nästa steg