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
.
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:
Ellenőrizze, hogy az
apiversion
értékre van-e állítva2018-02-01
azMicrosoft.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')]", ... }
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átproperties
az alábbi kódrészletben látható módon:"properties": { ... "addonFeatures": ["BackupRestoreService"], "fabricSettings": [ ... ] ... }
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átfabricSettings
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.
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 pedigfabric:/SampleApp/MyStatefulService
. Ez a szolgáltatás egyetlen partícióval van üzembe helyezve, a partíció azonosítója pedig974bd92a-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
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.
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.
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
Kattintson a fogaskerékre az SF Explorer ablakának jobb felső sarkában.
Jelölje be a "Speciális mód" jelölőnégyzetet, és frissítse az SF Explorer oldalt.
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.
Végül válassza ki a kívánt szabályzatot, és kattintson a Biztonsági mentés engedélyezése elemre.
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.
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.
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.