Share via


Rendszeres biztonsági mentés és visszaállítás egy Azure Service Fabric-fürtben

A Service Fabric egy elosztott rendszerplatform, amely megkönnyíti a megbízható, elosztott, mikroszolgáltatás-alapú felhőalkalmazások fejlesztését és kezelését. Lehetővé teszi az állapot nélküli és az állapotalapú mikroszolgáltatások futtatását is. Az állapotalapú szolgáltatások a kérésen és a válaszon vagy a teljes tranzakción túl is megőrizhetik a módosítható, mérvadó állapotot. Ha egy állapotalapú szolgáltatás hosszú ideig leáll, vagy egy katasztrófa miatt elveszíti az információkat, előfordulhat, hogy vissza kell állítani az állapotának néhány legutóbbi biztonsági mentésére annak érdekében, hogy a szolgáltatás a biztonsági mentés után is rendelkezésre álljon.

A Service Fabric több csomóponton replikálja az állapotot, hogy a szolgáltatás magas rendelkezésre állású legyen. A szolgáltatás akkor is elérhető marad, ha a fürt egyik csomópontja meghibásodik. Bizonyos esetekben azonban továbbra is kívánatos, hogy a szolgáltatásadatok megbízhatóak legyenek a szélesebb körű hibákkal szemben.

Előfordulhat például, hogy a szolgáltatás biztonsági másolatot szeretne készíteni az adatairól a következő forgatókönyvek elleni védelem érdekében:

  • Egy teljes Service Fabric-fürt végleges elvesztése esetén.
  • Szolgáltatáspartíció replikáinak többségének végleges elvesztése
  • Adminisztratív hibák, amikor az állapot véletlenül törlődik vagy megsérül. Egy megfelelő jogosultsággal rendelkező rendszergazda például hibásan törli a szolgáltatást.
  • Adatsérülést okozó hibák a szolgáltatásban. Ez például akkor fordulhat elő, ha egy szolgáltatáskód frissítése hibás adatokat kezd írni egy Reliable Collectionbe. Ilyen esetben előfordulhat, hogy a kódot és az adatokat is vissza kell állítani egy korábbi állapotba.
  • Offline adatfeldolgozás. Az üzleti intelligencia számára kényelmes lehet az adatok offline feldolgozása, amely az adatokat létrehozó szolgáltatástól elkülönítve történik.

A Service Fabric egy beépített API-t biztosít az időponthoz kötött biztonsági mentéshez és visszaállításhoz. Az alkalmazásfejlesztők ezeket az API-kat használhatják a szolgáltatás állapotának rendszeres biztonsági mentéséhez. Emellett ha a szolgáltatásadminisztrátorok egy adott időpontban, például az alkalmazás frissítése előtt szeretnének biztonsági másolatot indítani a szolgáltatáson kívülről, a fejlesztőknek api-ként kell elérhetővé tenni a biztonsági mentést (és a visszaállítást) a szolgáltatásból. A biztonsági másolatok karbantartása további költséggel jár. Előfordulhat például, hogy félóránként öt növekményes biztonsági mentést szeretne készíteni, majd egy teljes biztonsági mentést. A teljes biztonsági mentés után törölheti a korábbi növekményes biztonsági másolatokat. Ehhez a megközelítéshez további kódra van szükség, amely további költségeket eredményez az alkalmazásfejlesztés során.

A Service Fabric Biztonsági mentési és visszaállítási szolgáltatása egyszerű és automatikus biztonsági mentést tesz lehetővé az állapotalapú szolgáltatásokban tárolt információkról. Az alkalmazásadatok rendszeres biztonsági mentése alapvető fontosságú az adatvesztés és a szolgáltatás elérhetetlensége elleni védelemhez. A Service Fabric opcionális biztonsági mentési és visszaállítási szolgáltatást biztosít, amely lehetővé teszi az állapotalapú Reliable Services rendszeres biztonsági mentésének konfigurálását (beleértve az Aktor-szolgáltatásokat is) anélkül, hogy további kódot kellene írnia. Emellett megkönnyíti a korábban készített biztonsági másolatok visszaállítását is.

A Service Fabric API-k készletét biztosítja az időszakos biztonsági mentési és visszaállítási funkcióhoz kapcsolódó következő funkciók eléréséhez:

  • A Reliable Stateful szolgáltatások és a Reliable Actors rendszeres biztonsági mentésének ütemezése támogatással a biztonsági mentés (külső) tárolási helyekre való feltöltéséhez. Támogatott tárolási helyek
    • Azure Storage
    • Fájlmegosztás (helyszíni)
  • Biztonsági másolatok számbavétele
  • Partíció alkalmi biztonsági mentésének aktiválása
  • Partíció visszaállítása az előző biztonsági mentéssel
  • Biztonsági mentések ideiglenes felfüggesztése
  • Biztonsági másolatok megőrzési kezelése (közelgő)

Előfeltételek

  • Service Fabric-fürt a Fabric 6.4-es vagy újabb verziójával. A Service Fabric-fürt Azure-erőforrássablonnal történő létrehozásának lépéseit ebben a cikkben találja.
  • X.509-tanúsítvány a tárolóhoz való csatlakozáshoz szükséges titkos kódok titkosításához a biztonsági másolatok tárolásához. A cikkből megtudhatja, hogyan szerezhet be vagy hozhat létre X.509-tanúsítványt.
  • Service Fabric Reliable Stateful alkalmazás, amely a Service Fabric SDK 3.0-s vagy újabb verziójával készült. A .NET Core 2.0-t célzó alkalmazások esetében az alkalmazást a Service Fabric SDK 3.1-es vagy újabb verziójával kell felépíteni.
  • Azure Storage-fiók létrehozása az alkalmazás biztonsági mentéseinek tárolásához.
  • Telepítse a Microsoft.ServiceFabric.Powershell.Http modult (előzetes verzió) konfigurációs hívások indításához.
    Install-Module -Name Microsoft.ServiceFabric.Powershell.Http -AllowPrerelease

Megjegyzés

Ha a PowerShellGet-verzió 1.6.0-nál kisebb, frissítenie kell az -AllowPrerelease jelző támogatásának hozzáadásához:

Install-Module -Name PowerShellGet -Force

  • Mielőtt konfigurációs kérést végezne a Microsoft.ServiceFabric.Powershell.Http modullal, győződjön meg arról, hogy a fürt az Connect-SFCluster paranccsal csatlakozik.

    Connect-SFCluster -ConnectionEndpoint 'https://mysfcluster.southcentralus.cloudapp.azure.com:19080'   -X509Credential -FindType FindByThumbprint -FindValue '1b7ebe2174649c45474a4819dafae956712c31d3' -StoreLocation 'CurrentUser' -StoreName 'My' -ServerCertThumbprint '1b7ebe2174649c45474a4819dafae956712c31d3'

A biztonsági mentési és visszaállítási szolgáltatás engedélyezése

Az Azure Portal használata

A Lap alatt + Show optional settings jelölje be az Engedélyezés Include backup restore service jelölőnégyzetetCluster Configuration.

Biztonsági mentési visszaállítási szolgáltatás engedélyezése a portálon

Az Azure Resource Manager-sablon használata

Először engedélyeznie kell a biztonsági mentési és visszaállítási szolgáltatást a fürtben. Szerezze be az üzembe helyezni kívánt fürt sablonját. Használhatja a mintasablonokat, vagy létrehozhat egy Resource Manager sablont. Engedélyezze a biztonsági mentési és visszaállítási szolgáltatást az alábbi lépésekkel:

  1. Ellenőrizze, hogy az apiversion értékre van-e állítva 2018-02-01 az Microsoft.ServiceFabric/clusters erőforráshoz, és ha nem, frissítse az alábbi kódrészletben látható módon:

    {
        "apiVersion": "2018-02-01",
        "type": "Microsoft.ServiceFabric/clusters",
        "name": "[parameters('clusterName')]",
        "location": "[parameters('clusterLocation')]",
        ...
    }
    
  2. Most engedélyezze a biztonsági mentési és visszaállítási szolgáltatást úgy, hogy hozzáadja a szakasz következő addonFeatures szakaszát properties az alábbi kódrészletben látható módon:

        "properties": {
            ...
            "addonFeatures":  ["BackupRestoreService"],
            "fabricSettings": [ ... ]
            ...
        }
    
    
  3. Konfigurálja az X.509-tanúsítványt a hitelesítő adatok titkosításához. Ez fontos annak biztosítása érdekében, hogy a tárolóhoz való csatlakozáshoz megadott hitelesítő adatok titkosítva legyenek a tárolás előtt. A titkosítási tanúsítvány konfigurálásához adja hozzá a szakasz következő BackupRestoreService szakaszát fabricSettings az alábbi kódrészletben látható módon:

    "properties": {
        ...
        "addonFeatures": ["BackupRestoreService"],
        "fabricSettings": [{
            "name": "BackupRestoreService",
            "parameters":  [{
                "name": "SecretEncryptionCertThumbprint",
                "value": "[Thumbprint]"
            },{
                "name": "SecretEncryptionCertX509StoreName",
                "value": "My"
            }]
        }
        ...
    }
    

    Megjegyzés

    A [Ujjlenyomat] helyett érvényes tanúsítvány-ujjlenyomatot kell használni a titkosításhoz.

  4. Miután frissítette a fürtsablont az előző módosításokkal, alkalmazza őket, és hagyja, hogy az üzembe helyezés/frissítés befejeződjön. Ha végzett, a biztonsági mentési és visszaállítási szolgáltatás elindul a fürtben. A szolgáltatás URI-ja, fabric:/System/BackupRestoreService a szolgáltatás pedig a Service Fabric Explorer rendszerszolgáltatás szakaszában található.

Rendszeres biztonsági mentés engedélyezése a Reliable Stateful szolgáltatáshoz és a Reliable Actorshez

Tekintsük át a Reliable Stateful szolgáltatás és a Reliable Actors rendszeres biztonsági mentésének engedélyezésének lépéseit. Ezek a lépések feltételezik, hogy

  • Azt, hogy a fürt az X.509 biztonsági mentési és visszaállítási szolgáltatással van beállítva.
  • Egy Reliable Stateful szolgáltatás van üzembe helyezve a fürtön. Ebben a rövid útmutatóban az alkalmazás URI-ja, fabric:/SampleApp az alkalmazáshoz tartozó Reliable Stateful szolgáltatás URI-ja pedig fabric:/SampleApp/MyStatefulService. Ez a szolgáltatás egyetlen partícióval van üzembe helyezve, a partíció azonosítója pedig 974bd92a-b395-4631-8a7f-53bd4ae9cf22.
  • A rendszergazdai szerepkörrel rendelkező ügyféltanúsítvány a számítógép CurrentUser tanúsítványtárolójának a Saját (személyes) tárolójának nevére van telepítve, ahonnan az alábbi szkripteket fogja meghívni. Ez a példa a tanúsítvány ujjlenyomataként szolgál 1b7ebe2174649c45474a4819dafae956712c31d3 . További információ az ügyféltanúsítványokról: Szerepköralapú hozzáférés-vezérlés Service Fabric-ügyfelekhez.

Biztonsági mentési szabályzat létrehozása

Az első lépés a biztonsági mentés ütemezését leíró biztonsági mentési szabályzat létrehozása, a biztonsági mentési adatok céltárolója, a szabályzat neve, a maximális növekményes biztonsági mentések engedélyezése, mielőtt aktiválja a biztonsági mentési tár teljes biztonsági mentési és adatmegőrzési szabályzatát.

Biztonsági mentési tároláshoz használja a fent létrehozott Azure Storage-fiókot. A tároló backup-container biztonsági másolatok tárolására van konfigurálva. A biztonsági mentés feltöltése során létrejön egy ilyen nevű tároló, ha még nem létezik. Töltse ki ConnectionString érvényes kapcsolati sztring az Azure Storage-fiókhoz, cserélje le account-name a elemet a tárfiók nevére és account-key a tárfiók kulcsára.

PowerShell a Microsoft.ServiceFabric.Powershell.Http modul használatával

Hajtsa végre az alábbi PowerShell-parancsmagokat az új biztonsági mentési szabályzat létrehozásához. Cserélje le account-name a elemet a tárfiók nevére, majd account-key a tárfiók kulcsára.


New-SFBackupPolicy -Name 'BackupPolicy1' -AutoRestoreOnDataLoss $true -MaxIncrementalBackups 20 -FrequencyBased -Interval 00:15:00 -AzureBlobStore -ConnectionString 'DefaultEndpointsProtocol=https;AccountName=<account-name>;AccountKey=<account-key>;EndpointSuffix=core.windows.net' -ContainerName 'backup-container' -Basic -RetentionDuration '10.00:00:00'

Rest Call a PowerShell használatával

Hajtsa végre a következő PowerShell-szkriptet a szükséges REST API meghívásához az új szabályzat létrehozásához. Cserélje le account-name a elemet a tárfiók nevére, majd account-key a tárfiók kulcsára.

$StorageInfo = @{
    ConnectionString = 'DefaultEndpointsProtocol=https;AccountName=<account-name>;AccountKey=<account-key>;EndpointSuffix=core.windows.net'
    ContainerName = 'backup-container'
    StorageKind = 'AzureBlobStore'
}

$ScheduleInfo = @{
    Interval = 'PT15M'
    ScheduleKind = 'FrequencyBased'
}

$RetentionPolicy = @{
    RetentionPolicyType = 'Basic'
    RetentionDuration =  'P10D'
}

$BackupPolicy = @{
    Name = 'BackupPolicy1'
    MaxIncrementalBackups = 20
    Schedule = $ScheduleInfo
    Storage = $StorageInfo
    RetentionPolicy = $RetentionPolicy
}

$body = (ConvertTo-Json $BackupPolicy)
$url = "https://mysfcluster.southcentralus.cloudapp.azure.com:19080/BackupRestore/BackupPolicies/$/Create?api-version=6.4"

Invoke-WebRequest -Uri $url -Method Post -Body $body -ContentType 'application/json' -CertificateThumbprint '1b7ebe2174649c45474a4819dafae956712c31d3'

A Service Fabric Explorer használata

  1. A Service Fabric Explorer lépjen a Biztonsági mentések lapra, és válassza a Műveletek > Biztonsági mentési szabályzat létrehozása lehetőséget.

    Biztonsági mentési szabályzat létrehozása

  2. Töltse ki az információkat. A gyakoriságalapú időközök megadásának részletes leírását a TimeGrain tulajdonságban találja. Az Azure-fürtök esetében az AzureBlobStore lehetőséget kell kiválasztani.

    Biztonsági mentési szabályzat létrehozása Azure Blob Storage

Rendszeres biztonsági mentés engedélyezése

Miután meghatározta az alkalmazás adatvédelmi követelményeinek megfelelő biztonsági mentési szabályzatot, a biztonsági mentési szabályzatot az alkalmazáshoz kell társítani. A biztonsági mentési szabályzat a követelményektől függően társítható egy alkalmazáshoz, szolgáltatáshoz vagy partícióhoz.

PowerShell a Microsoft.ServiceFabric.Powershell.Http modul használatával


Enable-SFApplicationBackup -ApplicationId 'SampleApp' -BackupPolicyName 'BackupPolicy1'

Rest Call a PowerShell használatával

Hajtsa végre a következő PowerShell-szkriptet a szükséges REST API meghívásához a biztonsági mentési szabályzat és a fenti lépésben létrehozott név BackupPolicy1 társításához az alkalmazással SampleApp.

$BackupPolicyReference = @{
    BackupPolicyName = 'BackupPolicy1'
}

$body = (ConvertTo-Json $BackupPolicyReference)
$url = "https://mysfcluster.southcentralus.cloudapp.azure.com:19080/Applications/SampleApp/$/EnableBackup?api-version=6.4"

Invoke-WebRequest -Uri $url -Method Post -Body $body -ContentType 'application/json' -CertificateThumbprint '1b7ebe2174649c45474a4819dafae956712c31d3'

A Service Fabric Explorer használata

Győződjön meg arról, hogy az Service Fabric Explorer speciális módja engedélyezve van

  1. Kattintson a fogaskerékre az SF Explorer ablakának jobb felső sarkában.

  2. Jelölje be a "Speciális mód" jelölőnégyzetet, és frissítse az SF Explorer oldalt.

  3. Válasszon ki egy alkalmazást, és lépjen a művelethez. Kattintson az Alkalmazás biztonsági mentésének engedélyezése/frissítése elemre.

    Alkalmazás biztonsági mentésének engedélyezése

  4. Végül válassza ki a kívánt szabályzatot, és kattintson a Biztonsági mentés engedélyezése elemre.

    Szabályzat kiválasztása

Ellenőrizze, hogy az időszakos biztonsági mentések működnek-e

Miután engedélyezte a biztonsági mentést az alkalmazás szintjén, az alkalmazáshoz tartozó Reliable Stateful-szolgáltatásokhoz és Reliable Actors-hez tartozó összes partícióról rendszeres időközönként biztonsági mentés készül a kapcsolódó biztonsági mentési szabályzatnak megfelelően.

Partition BackedUp Health Event

Biztonsági másolatok listázása

A Reliable Stateful szolgáltatásokhoz és az alkalmazás Reliable Actors-jeihez tartozó összes partícióhoz társított biztonsági másolatok a GetBackups API használatával számba vehetők. A biztonsági másolatok számba vehetők egy alkalmazáshoz, szolgáltatáshoz vagy partícióhoz.

PowerShell a Microsoft.ServiceFabric.Powershell.Http modul használatával


Get-SFApplicationBackupList -ApplicationId WordCount

Rest Call a PowerShell használatával

Hajtsa végre a következő PowerShell-szkriptet a HTTP API meghívásához az alkalmazáson belüli SampleApp összes partícióhoz létrehozott biztonsági másolatok számbavételéhez.

$url = "https://mysfcluster.southcentralus.cloudapp.azure.com:19080/Applications/SampleApp/$/GetBackups?api-version=6.4"

$response = Invoke-WebRequest -Uri $url -Method Get -CertificateThumbprint '1b7ebe2174649c45474a4819dafae956712c31d3'

$BackupPoints = (ConvertFrom-Json $response.Content)
$BackupPoints.Items

Mintakimenet a fenti futtatáshoz:

BackupId                : b9577400-1131-4f88-b309-2bb1e943322c
BackupChainId           : b9577400-1131-4f88-b309-2bb1e943322c
ApplicationName         : fabric:/SampleApp
ServiceName             : fabric:/SampleApp/MyStatefulService
PartitionInformation    : @{LowKey=-9223372036854775808; HighKey=9223372036854775807; ServicePartitionKind=Int64Range; Id=974bd92a-b395-4631-8a7f-53bd4ae9cf22}
BackupLocation          : SampleApp\MyStatefulService\974bd92a-b395-4631-8a7f-53bd4ae9cf22\2018-04-06 20.55.16.zip
BackupType              : Full
EpochOfLastBackupRecord : @{DataLossNumber=131675205859825409; ConfigurationNumber=8589934592}
LsnOfLastBackupRecord   : 3334
CreationTimeUtc         : 2018-04-06T20:55:16Z
FailureError            :

BackupId                : b0035075-b327-41a5-a58f-3ea94b68faa4
BackupChainId           : b9577400-1131-4f88-b309-2bb1e943322c
ApplicationName         : fabric:/SampleApp
ServiceName             : fabric:/SampleApp/MyStatefulService
PartitionInformation    : @{LowKey=-9223372036854775808; HighKey=9223372036854775807; ServicePartitionKind=Int64Range; Id=974bd92a-b395-4631-8a7f-53bd4ae9cf22}
BackupLocation          : SampleApp\MyStatefulService\974bd92a-b395-4631-8a7f-53bd4ae9cf22\2018-04-06 21.10.27.zip
BackupType              : Incremental
EpochOfLastBackupRecord : @{DataLossNumber=131675205859825409; ConfigurationNumber=8589934592}
LsnOfLastBackupRecord   : 3552
CreationTimeUtc         : 2018-04-06T21:10:27Z
FailureError            :

BackupId                : 69436834-c810-4163-9386-a7a800f78359
BackupChainId           : b9577400-1131-4f88-b309-2bb1e943322c
ApplicationName         : fabric:/SampleApp
ServiceName             : fabric:/SampleApp/MyStatefulService
PartitionInformation    : @{LowKey=-9223372036854775808; HighKey=9223372036854775807; ServicePartitionKind=Int64Range; Id=974bd92a-b395-4631-8a7f-53bd4ae9cf22}
BackupLocation          : SampleApp\MyStatefulService\974bd92a-b395-4631-8a7f-53bd4ae9cf22\2018-04-06 21.25.36.zip
BackupType              : Incremental
EpochOfLastBackupRecord : @{DataLossNumber=131675205859825409; ConfigurationNumber=8589934592}
LsnOfLastBackupRecord   : 3764
CreationTimeUtc         : 2018-04-06T21:25:36Z
FailureError            :

A Service Fabric Explorer használata

Ha meg szeretné tekinteni a biztonsági másolatokat Service Fabric Explorer, lépjen egy partícióra, és válassza a Biztonsági másolatok lapot.

Biztonsági másolatok számbavétele

Korlátozások/kikötések

  • A Service Fabric PowerShell-parancsmagok előnézeti módban vannak.
  • A Service Fabric-fürtök nem támogatottak Linuxon.

Következő lépések