Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Service Fabric je platforma pro vývoj a správu spolehlivých distribuovaných cloudových aplikací. Podporuje bezstavové i stavové mikroslužby. Stavové služby můžou uchovávat důležitá data nad rámec jedné žádosti nebo transakce. Pokud stavová služba přestane fungovat nebo ztratí data, může být potřeba ji obnovit z nedávné zálohy, aby mohla pokračovat v práci správně.
Service Fabric replikuje stav napříč několika uzly, aby se zajistilo, že je služba vysoce dostupná. I když jeden uzel v clusteru selže, bude služba dál dostupná. V některých případech je však stále žádoucí, aby data služby byla spolehlivá proti širším selháním.
Služba může například chtít zálohovat svá data, aby se chránila před následujícími scénáři:
- V případě trvalé ztráty celého clusteru Service Fabric.
- Trvalá ztráta většiny replik služebního oddílu
- Chyby správy, kdy se stát omylem odstraní nebo poškodí. Například správce s dostatečným oprávněním chybně odstraní službu.
- Chyby ve službě, které způsobují poškození dat K tomu může dojít například v případě, že upgrade kódu služby začne zapisovat chybná data do spolehlivé kolekce. V takovém případě může být nutné vrátit kód i data do dřívějšího stavu.
- Zpracování offline dat. Může být vhodné mít offline zpracování dat pro business intelligence, ke kterým dochází odděleně od služby, která generuje data.
Service Fabric poskytuje předem připravené rozhraní API pro zálohování a obnovení v určitý časový okamžik. Vývojáři aplikací můžou tato rozhraní API používat k pravidelnému zálohování stavu služby. Kromě toho, pokud správci služeb chtějí aktivovat zálohu mimo službu v určitém okamžiku, například před upgradem aplikace, musí vývojáři zveřejnit zálohování (a obnovení) jako rozhraní API ze služby. Údržba záloh je dalším nákladem nad rámec tohoto. Můžete například chtít pořídit pět přírůstkových záloh každou půlhodinu a pak úplné zálohování. Po úplném zálohování můžete předchozí přírůstkové zálohy odstranit. Tento přístup vyžaduje další kód, který při vývoji aplikací vede k dalším nákladům.
Služba Zálohování a obnovení v Service Fabric umožňuje snadné a automatické zálohování informací uložených ve stavových službách. Pravidelné zálohování dat aplikací je zásadní pro ochranu před ztrátou dat a nedostupností služeb. Service Fabric poskytuje volitelnou službu zálohování a obnovení, která umožňuje nakonfigurovat pravidelné zálohování stavových spolehlivých služeb (včetně služeb actor), aniž byste museli psát další kód. Usnadňuje také obnovení dříve provedených záloh.
Service Fabric poskytuje sadu rozhraní API pro dosažení následujících funkcí souvisejících s funkcí pravidelného zálohování a obnovení:
- Naplánujte pravidelné zálohování spolehlivých stavových služeb a Reliable Actors s možností nahrávání záloh do externích úložišť. Podporovaná umístění úložiště
- Azure Storage
- Sdílený disk (lokální)
- Výčet záloh
- Spusťte ad hoc zálohování oddílu
- Obnovení oddílu pomocí předchozí zálohy
- Dočasné pozastavení záloh
- Správa uchování záloh (nadcházející)
Požadavky
- Cluster Service Fabric s verzí Fabric 6.4 nebo vyšší. Postup vytvoření clusteru Service Fabric pomocí šablony prostředků Azure najdete v tomto článku .
- Certifikát X.509 pro šifrování tajných kódů potřebných k připojení k úložišti pro ukládání záloh. V článku se dozvíte, jak získat nebo vytvořit certifikát X.509.
- Spolehlivá stavová aplikace Service Fabric sestavená pomocí sady Service Fabric SDK verze 3.0 nebo vyšší. Pro aplikace, které cílí na .NET Core 2.0, by měla být aplikace sestavena pomocí sady Service Fabric SDK verze 3.1 nebo vyšší.
- Vytvořte účet Azure Storage pro ukládání záloh aplikací.
- Nainstalujte modul Microsoft.ServiceFabric.Powershell.Http pro volání konfigurace.
Install-Module -Name Microsoft.ServiceFabric.Powershell.Http -AllowPrerelease
Poznámka:
Pokud je vaše verze PowerShellGet menší než 1.6.0, budete muset aktualizovat podporu příznaku -AllowPrerelease :
Install-Module -Name PowerShellGet -Force
- Před provedením jakéhokoli požadavku na konfiguraci pomocí modulu Microsoft.ServiceFabric.Powershell.Http se ujistěte, že je cluster připojený pomocí
Connect-SFCluster
příkazu.
Connect-SFCluster -ConnectionEndpoint 'https://mysfcluster.southcentralus.cloudapp.azure.com:19080' -X509Credential -FindType FindByThumbprint -FindValue '1b7ebe2174649c45474a4819dafae956712c31d3' -StoreLocation 'CurrentUser' -StoreName 'My' -ServerCertThumbprint '1b7ebe2174649c45474a4819dafae956712c31d3'
Povolení služby zálohování a obnovení
Pomocí webu Azure Portal
Povolte zaškrtávací Include backup restore service
políčko pod + Show optional settings
na kartě Cluster Configuration
.
Použití šablony Azure Resource Manageru
Nejprve musíte povolit službu zálohování a obnovení ve vašem clusteru. Získejte šablonu pro cluster, který chcete nasadit. Můžete použít ukázkové šablony nebo vytvořit šablonu Resource Manageru. Povolte službu zálohování a obnovení pomocí následujících kroků:
Zkontrolujte, zda je
apiversion
nastaven na2018-02-01
pro prostředekMicrosoft.ServiceFabric/clusters
, a pokud ne, aktualizujte ho, jak je znázorněno v následujícím úryvku kódu.{ "apiVersion": "2018-02-01", "type": "Microsoft.ServiceFabric/clusters", "name": "[parameters('clusterName')]", "location": "[parameters('clusterLocation')]", ... }
Teď povolte službu zálohování a obnovení přidáním následující
addonFeatures
části doproperties
části, jak je znázorněno v následujícím fragmentu kódu:"properties": { ... "addonFeatures": ["BackupRestoreService"], "fabricSettings": [ ... ] ... }
Nakonfigurujte certifikát X.509 pro šifrování přihlašovacích údajů. Je důležité zajistit, aby přihlašovací údaje zadané pro připojení k úložišti byly před uložením zašifrovány. Nakonfigurujte šifrovací certifikát přidáním následující
BackupRestoreService
části dofabricSettings
části, jak je znázorněno v následujícím fragmentu kódu:"properties": { ... "addonFeatures": ["BackupRestoreService"], "fabricSettings": [ { "name": "BackupRestoreService", "parameters": [ { "name": "SecretEncryptionCertThumbprint", "value": "[Thumbprint]" }, { "name": "SecretEncryptionCertX509StoreName", "value": "My" } ] }] ... }
Poznámka:
[Otisk] musí být nahrazen platným otiskem certifikátu, který se použije k šifrování.
Po aktualizaci šablony clusteru s předchozími změnami je použijte a nechte nasazení nebo upgrade dokončit. Po dokončení se služba zálohování a obnovení spustí ve vašem clusteru. Identifikátor URI této služby je
fabric:/System/BackupRestoreService
a služba může být umístěna v části systémová služba v Service Fabric Exploreru.
Povolení pravidelného zálohování pro spolehlivé stavové služby a spolehlivé aktéry
Pojďme si projít kroky, jak povolit pravidelné zálohování pro spolehlivé stavové služby a spolehlivé aktéry. Tyto kroky předpokládají, že
- Cluster je nastaven pomocí zabezpečení X.509 se službou zálohování a obnovení.
- Na cluster byla nasazena spolehlivá stavová služba. Pro tento průvodce rychlým startem je URI aplikace
fabric:/SampleApp
a URI pro spolehlivou stavovou službu patřící této aplikaci jefabric:/SampleApp/MyStatefulService
. Tato služba je nasazena s jedním oddílem a ID oddílu je974bd92a-b395-4631-8a7f-53bd4ae9cf22
. - Klientský certifikát s rolí správce je nainstalován v úložišti Můj (Osobní) jméno úložiště certifikátů aktuálního uživatele v počítači, odkud budou vyvolány následující skripty. Tento příklad používá
1b7ebe2174649c45474a4819dafae956712c31d3
jako kryptografický otisk tohoto certifikátu. Další informace o klientských certifikátech najdete v tématu Řízení přístupu na základě role pro klienty Service Fabric.
Vytvoření zásady zálohování
Prvním krokem je vytvoření zásady zálohování. Tato zásada by měla zahrnovat plán zálohování, cílové úložiště pro zálohovaná data, název zásady, maximální povolený počet přírůstkových záloh před aktivací úplného zálohování a zásady uchovávání informací pro úložiště záloh.
Pro úložiště záloh použijte účet Azure Storage vytvořený výše. Kontejner backup-container
je nakonfigurovaný tak, aby ukládaly zálohy. Kontejner s tímto názvem se vytvoří, pokud ještě neexistuje, během nahrávání záloh. Vyplňte BlobServiceUri
adresou URL účtu služby Azure Storage, nahraďte account-name
názvem svého úložného účtu a vyplňte volitelný parametr ManagedIdentityClientId
ID klienta pro uživatelsky přiřazenou spravovanou identitu, pokud máte k prostředku přiřazeno více spravovaných identit.
Postupujte podle kroků pro přiřazení spravované identity u prostředku Azure:
Povolení systémově nebo uživatelsky přiřazené spravované identity ve škálovacích sadách virtuálních počítačů Konfigurace spravovaných identit ve škálovací sadě virtuálních počítačů
Přiřaďte roli spravované identitě VMSS k účtu úložiště podle pokynů, které začínají krokem dvě přiřazení rolí Azure pomocí portálu Azure - Azure RBAC
- Přispěvatel účtů úložiště, Přispěvatel dat objektů blob úložiště a Přispěvatel dat tabulek úložiště, alespoň jako role.
Další informace o spravované identitě
PowerShell s využitím modulu Microsoft.ServiceFabric.Powershell.Http
Spuštěním následujících rutin PowerShellu vytvořte nové zásady zálohování. Nahraďte account-name
názvem svého účtu úložiště.
New-SFBackupPolicy -Name 'BackupPolicy1' -AutoRestoreOnDataLoss $false -MaxIncrementalBackups 20 -FrequencyBased -Interval "<hh:mm>" -ManagedIdentityAzureBlobStore -FriendlyName "AzureMI_storagesample" -BlobServiceUri 'https://<account-name>.blob.core.windows.net' -ContainerName 'backup-container' -ManagedIdentityType "VMSS" -ManagedIdentityClientId "<Client-Id of User-Assigned MI>" -Basic -RetentionDuration '10.00:00:00'
# Use Optional parameter `ManagedIdentityClientId` with Client-Id of User-Assigned Managed Identity in case of multiple User-Assigned Managed Identities assigned to your resource, or both SAMI & UAMI assigned and we need to use UAMI as the default, else no need of this paramter.
Volání rest pomocí PowerShellu
Spusťte následující skript PowerShellu pro vyvolání požadovaného rozhraní REST API pro vytvoření nové zásady. Nahraďte account-name
názvem svého účtu úložiště.
$StorageInfo = @{
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>" # Use Optional parameter `ManagedIdentityClientId` with Client-Id of User-Assigned Managed Identity in case of multiple User-Assigned Managed Identities assigned to your resource, or both SAMI & UAMI assigned and we need to use UAMI as the default, else no need of this paramter.
}
$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'
Použití Service Fabric Exploreru
V Service Fabric Exploreru klikněte na Cluster na levém bočním panelu, přejděte na kartu Zálohování a vyberte Akce > Vytvořit Zásadu Zálohování.
Vyplňte informace. Podrobnosti o tom, jak zadat interval založený na frekvenci, naleznete ve vlastnosti TimeGrain. U clusterů Azure by se měl vybrat ManagedIdentityAzureBlobStore.
Povolení pravidelného zálohování
Po definování zásad zálohování pro splnění požadavků aplikace na ochranu dat by se zásady zálohování měly přidružit k aplikaci. V závislosti na požadavku může být zásada zálohování přidružená k aplikaci, službě nebo oddílu.
PowerShell s využitím modulu Microsoft.ServiceFabric.Powershell.Http
Enable-SFApplicationBackup -ApplicationId 'SampleApp' -BackupPolicyName 'BackupPolicy1'
Volání rest pomocí PowerShellu
Spusťte následující skript PowerShellu pro vyvolání požadovaného rozhraní REST API pro přidružení zásady zálohování k názvu BackupPolicy1
vytvořenému v předchozím kroku s aplikací 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'
Použití Service Fabric Exploreru
Ujistěte se, že je v clusteru povolená služba BackupRestoreService.
Otevřete Service Fabric Explorer.
Vyberte aplikaci a přejděte do části Zálohování. Klikněte na akci zálohování.
Klikněte na Povolit nebo aktualizovat zálohování aplikací.
Nakonec vyberte požadovanou zásadu a klikněte na Povolit zálohování.
Ověření fungování pravidelných záloh
Po povolení zálohování na úrovni aplikace se všechny oddíly patřící do spolehlivých stavových služeb a Reliable Actors v rámci aplikace začnou pravidelně zálohovat podle přidružených zásad zálohování.
Výpis záloh
Zálohy přidružené ke všem oddílům patřícím k spolehlivým stavovým službám a Reliable Actorům aplikace lze vypsat pomocí rozhraní API GetBackups. Zálohy je možné vyčíslit pro aplikaci, službu nebo oddíl.
PowerShell s využitím modulu Microsoft.ServiceFabric.Powershell.Http
Get-SFApplicationBackupList -ApplicationId WordCount
Volání rest pomocí PowerShellu
Spuštěním následujícího skriptu PowerShellu vyvoláte rozhraní HTTP API pro výčet záloh vytvořených pro všechny oddíly uvnitř SampleApp
aplikace.
$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
Ukázkový výstup pro výše uvedené spuštění:
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 :
Použití Service Fabric Exploreru
Pokud chcete zobrazit zálohy v Service Fabric Exploreru, přejděte na oddíl a vyberte kartu Zálohování.
Omezení/ upozornění
- Cmdlety PowerShell pro Service Fabric jsou v náhledovém režimu.
- V Linuxu se nepodporuje clustery Service Fabric.