Zálohování Spravované disky Azure pomocí Azure CLI
Tento článek popisuje, jak zálohovat spravovaný disk Azure pomocí Azure CLI.
Důležité
Podpora zálohování a obnovení Azure Spravované disky prostřednictvím rozhraní příkazového řádku je ve verzi Preview a je dostupná jako rozšíření ve verzi Az 2.15.0 a novější. Rozšíření se nainstaluje automaticky při spuštění příkazů az dataprotection . Přečtěte si další informace o rozšířeních.
Informace o dostupnosti oblastí zálohování disků Azure, podporovaných scénářích a omezeních najdete v matici podpory.
Vytvoření trezoru služby Backup
Trezor záloh je entita úložiště v Azure, která ukládá zálohovaná data pro různé novější úlohy, které Azure Backup podporuje, jako jsou servery Azure Database for PostgreSQL, objekty blob v účtu úložiště a disky Azure. Trezory záloh usnadňují uspořádání zálohovaných dat a zároveň minimalizují režijní náklady na správu. Trezory záloh jsou založené na modelu Azure Resource Manageru v Azure, který poskytuje vylepšené možnosti, které pomáhají zabezpečit zálohovaná data.
Než vytvoříte trezor služby Backup, zvolte redundanci úložiště dat v trezoru. Pak pokračujte vytvořením trezoru služby Backup s danou redundancí úložiště a umístěním. V tomto článku vytvoříme trezor záloh TestBkpVault v oblasti westus v rámci skupiny prostředků testBkpVaultRG. K vytvoření trezoru služby Backup použijte příkaz az dataprotection vault create. Přečtěte si další informace o vytváření trezoru služby Backup.
az dataprotection backup-vault create -g testBkpVaultRG --vault-name TestBkpVault -l westus --type SystemAssigned --storage-settings datastore-type="VaultStore" type="LocallyRedundant"
{
"eTag": null,
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/testBkpVaultRG/providers/Microsoft.DataProtection/BackupVaults/TestBkpVault",
"identity": {
"principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
"tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "SystemAssigned"
},
"location": "westus",
"name": "TestBkpVault",
"properties": {
"provisioningState": "Succeeded",
"storageSettings": [
{
"datastoreType": "VaultStore",
"type": "LocallyRedundant"
}
]
},
"resourceGroup": "testBkpVaultRG",
"systemData": null,
"tags": null,
"type": "Microsoft.DataProtection/backupVaults"
}
Po vytvoření trezoru vytvoříme zásadu zálohování pro ochranu disků Azure.
Vytvoření zásady zálohování
Pokud chcete porozumět vnitřním komponentám zásad zálohování pro službu Azure Disk Backup, načtěte šablonu zásad pomocí příkazu az dataprotection backup-policy get-default-policy-template . Tento příkaz vrátí výchozí šablonu zásad pro daný typ zdroje dat. Pomocí této šablony zásad můžete vytvořit novou zásadu.
az dataprotection backup-policy get-default-policy-template --datasource-type AzureDisk
{
"datasourceTypes": [
"Microsoft.Compute/disks"
],
"name": "DiskPolicy",
"objectType": "BackupPolicy",
"policyRules": [
{
"backupParameters": {
"backupType": "Incremental",
"objectType": "AzureBackupParams"
},
"dataStore": {
"dataStoreType": "OperationalStore",
"objectType": "DataStoreInfoBase"
},
"name": "BackupHourly",
"objectType": "AzureBackupRule",
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2020-04-05T13:00:00+00:00/PT4H"
]
},
"taggingCriteria": [
{
"isDefault": true,
"tagInfo": {
"id": "Default_",
"tagName": "Default"
},
"taggingPriority": 99
}
]
}
},
{
"isDefault": true,
"lifecycles": [
{
"deleteAfter": {
"duration": "P7D",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "OperationalStore",
"objectType": "DataStoreInfoBase"
}
}
],
"name": "Default",
"objectType": "AzureRetentionRule"
}
]
}
Šablona zásad se skládá z triggeru (který rozhoduje o tom, co aktivuje zálohování) a životního cyklu (který se rozhodne, kdy se má záloha odstranit, zkopírovat nebo přesunout). Ve službě Azure Disk Backup jsou výchozí hodnoty triggeru naplánovanou aktivační událostí každých 4 hodin (PT4H) a uchovávat každou zálohu po dobu sedmi dnů.
Naplánovaná aktivační událost:
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2020-04-05T13:00:00+00:00/PT4H"
]
}
}
Výchozí životní cyklus uchovávání:
"lifecycles": [
{
"deleteAfter": {
"duration": "P7D",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "OperationalStore",
"objectType": "DataStoreInfoBase"
}
}
]
Azure Disk Backup nabízí více záloh za den. Pokud požadujete častější zálohování, zvolte frekvenci zálohování po hodinách s možností provádět zálohy s intervaly každých 4, 6, 8 nebo 12 hodin. Zálohy jsou naplánované na základě vybraného časového intervalu.
Pokud například vyberete každých 4 hodiny, zálohy se provádějí přibližně v intervalu každých 4 hodin, aby se zálohy distribuují rovnoměrně po celý den. Pokud stačí jednodenní zálohování, zvolte frekvenci denního zálohování. V denní frekvenci zálohování můžete zadat čas dne, kdy jsou zálohy pořízeny.
Důležité
Čas dne označuje čas spuštění zálohování, nikoli čas dokončení zálohování.
Doba potřebná k dokončení operace zálohování závisí na různých faktorech, včetně velikosti disku, a četnost změn mezi po sobě jdoucími zálohami. Zálohování disků Azure je však zálohování bez agentů, které používá přírůstkové snímky, což nemá vliv na výkon produkční aplikace.
Poznámka:
I když vybraný trezor může mít nastavení globální redundance, azure Disk Backup v současné době podporuje pouze úložiště dat snímků. Všechny zálohy se ukládají ve skupině prostředků ve vašem předplatném a nekopírují se do úložiště trezoru služby Backup.
Další podrobnosti o vytváření zásad najdete v dokumentu zásad zálohování disků Azure.
Jakmile se šablona stáhne jako soubor JSON, můžete ji upravit pro plánování a uchovávání podle potřeby. Pak vytvořte novou zásadu s výsledným kódem JSON. Pokud chcete upravit hodinovou frekvenci nebo dobu uchovávání, použijte příkazy az dataprotection backup-policy trigger set nebo az dataprotection backup-policy retention-rule set . Jakmile json zásady obsahuje všechny požadované hodnoty, pokračujte vytvořením nové zásady z objektu zásad pomocí příkazu az dataprotection backup-policy create .
az dataprotection backup-policy get-default-policy-template --datasource-type AzureDisk > policy.json
az dataprotection backup-policy create -g testBkpVaultRG --vault-name TestBkpVault -n mypolicy --policy policy.json
{
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault/backupPolicies/mypolicy",
"name": "mypolicy",
"properties": {
"datasourceTypes": [
"Microsoft.Compute/disks"
],
"objectType": "BackupPolicy",
"policyRules": [
{
"backupParameters": {
"backupType": "Incremental",
"objectType": "AzureBackupParams"
},
"dataStore": {
"dataStoreType": "OperationalStore",
"objectType": "DataStoreInfoBase"
},
"name": "BackupHourly",
"objectType": "AzureBackupRule",
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2020-04-05T13:00:00+00:00/PT4H"
]
},
"taggingCriteria": [
{
"criteria": null,
"isDefault": true,
"tagInfo": {
"eTag": null,
"id": "Default_",
"tagName": "Default"
},
"taggingPriority": 99
}
]
}
},
{
"isDefault": true,
"lifecycles": [
{
"deleteAfter": {
"duration": "P7D",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "OperationalStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": null
}
],
"name": "Default",
"objectType": "AzureRetentionRule"
}
]
},
"resourceGroup": "testBkpVaultRG",
"systemData": null,
"type": "Microsoft.DataProtection/backupVaults/backupPolicies"
}
Konfigurace zálohování
Po vytvoření trezoru a zásad existují tři kritické body, které je potřeba zvážit při ochraně disku Azure.
Zahrnuté klíčové entity
Disk, který se má chránit
Načtěte ID ARM a umístění disku, které chcete chránit. Bude sloužit jako identifikátor disku. Použijeme příklad disku s názvem CLITestDisk v rámci skupiny prostředků v jiném předplatném.
$DiskId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk"
Skupina prostředků snímku
Snímky disků jsou uložené ve skupině prostředků v rámci vašeho předplatného. Jako vodítko doporučujeme vytvořit vyhrazenou skupinu prostředků jako úložiště dat snímků, které bude služba Azure Backup používat. Vyhrazená skupina prostředků umožňuje omezit přístupová oprávnění pro skupinu prostředků a zajistit tak bezpečnost a snadnou správu zálohovaných dat. Poznamenejte si ID ARM pro skupinu prostředků, do které chcete umístit snímky disků.
$snapshotrg = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourceGroups/snapshotrg"
Trezor služby Backup
Trezory služby Backup vyžadují oprávnění na disku a skupině prostředků snímků, aby mohly aktivovat snímky a spravovat jejich životní cyklus. Spravovaná identita trezoru přiřazená systémem se používá k přiřazení těchto oprávnění. Pomocí příkazu az dataprotection backup-vault update povolte spravovanou identitu přiřazenou systémem pro trezor služby Recovery Services.
az dataprotection backup-vault update -g testBkpVaultRG --vault-name TestBkpVault --type SystemAssigned
Přiřazení uživatelských oprávnění
K trezoru (reprezentované MSI trezoru) a příslušnému disku nebo skupině prostředků disku musíte přiřadit několik oprávnění prostřednictvím RBAC. Ty je možné provést prostřednictvím webu Azure Portal nebo rozhraní příkazového řádku. Pokud chcete přiřadit související oprávnění, přečtěte si požadavky na konfiguraci zálohování spravovaných disků.
Příprava požadavku
Jakmile jsou nastavena všechna příslušná oprávnění, konfigurace zálohování se provádí ve dvou krocích. Nejprve připravíme relevantní požadavek pomocí příslušné skupiny prostředků trezoru, zásady, disku a snímku pomocí příkazu az dataprotection backup-instance initialize . Inicializační příkaz vrátí soubor JSON a pak musíte aktualizovat hodnotu skupiny prostředků snímku. Pak odešleme požadavek na ochranu disku pomocí příkazu az dataprotection backup-instance create .
az dataprotection backup-instance initialize --datasource-type AzureDisk -l southeastasia --policy-id "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault/backupPolicies/mypolicy" --datasource-id "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk" > backup_instance.json
Otevřete soubor JSON a upravte ID skupiny prostředků snímku v resource_group_id
části data_store_parameters_list
.
{
"backup_instance_name": "diskrg-CLITestDisk-3df6ac08-9496-4839-8fb5-8b78e594f166",
"properties": {
"data_source_info": {
"datasource_type": "Microsoft.Compute/disks",
"object_type": "Datasource",
"resource_id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk",
"resource_location": "southeastasia",
"resource_name": "CLITestDisk",
"resource_type": "Microsoft.Compute/disks",
"resource_uri": ""
},
"data_source_set_info": null,
"object_type": "BackupInstance",
"policy_info": {
"policy_id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/testBkpVaultRG/providers/Microsoft.DataProtection/BackupVaults/TestBkpVault/backupPolicies/DiskPolicy",
"policy_parameters": {
"data_store_parameters_list": [
{
"data_store_type": "OperationalStore",
"object_type": "AzureOperationalStoreParameters",
"resource_group_id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/snapshotrg"
}
]
}
}
}
}
Poznámka:
Název instance zálohování generuje klienti, aby to byla jedinečná hodnota. Je založená na názvu zdroje dat a jedinečném identifikátoru GUID. Jakmile zobrazíte seznam instancí zálohování, měli byste být schopni zkontrolovat název instance zálohování a příslušný název zdroje dat.
Pomocí upraveného souboru JSON vytvořte záložní instanci spravovaného disku Azure.
az dataprotection backup-instance create -g testBkpVaultRG --vault-name TestBkpVault --backup-instance backup_instance.json
{
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/testBkpVaultRG/providers/Microsoft.DataProtection/BackupVaults/TestBkpVault/backupInstances/diskrg-CLITestDisk-3df6ac08-9496-4839-8fb5-8b78e594f166",
"name": "diskrg-CLITestDisk-3df6ac08-9496-4839-8fb5-8b78e594f166",
"properties": {
"currentProtectionState": "ProtectionConfigured",
"dataSourceInfo": {
"datasourceType": "Microsoft.Compute/disks",
"objectType": "Datasource",
"resourceId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk",
"resourceLocation": "southeastasia",
"resourceName": "CLITestDisk",
"resourceType": "Microsoft.Compute/disks",
"resourceUri": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk"
},
"dataSourceSetInfo": null,
"friendlyName": "CLITestDisk",
"objectType": "BackupInstance",
"policyInfo": {
"policyId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/testBkpVaultRG/providers/Microsoft.DataProtection/BackupVaults/TestBkpVault/backupPolicies/DiskPolicy",
"policyParameters": {
"dataStoreParametersList": [
{
"dataStoreType": "OperationalStore",
"objectType": "AzureOperationalStoreParameters",
"resourceGroupId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/sarath-rg"
}
]
},
"policyVersion": null
},
"protectionErrorDetails": null,
"protectionStatus": {
"errorDetails": null,
"status": "ProtectionConfigured"
},
"provisioningState": "Succeeded"
},
"resourceGroup": "testBkpVaultRG",
"systemData": null,
"type": "Microsoft.DataProtection/backupVaults/backupInstances"
}
Po vytvoření instance zálohování můžete pokračovat aktivací zálohy na vyžádání, pokud nechcete čekat na naplánované zásady.
Spuštění zálohování na vyžádání
Vypíše všechny instance zálohování v trezoru pomocí příkazu az dataprotection backup-instance list a pak načte příslušnou instanci pomocí příkazu az dataprotection backup-instance show . Alternativně pro scénáře ve velkém měřítku můžete vypsat instance zálohování napříč trezory a předplatnými pomocí příkazu az dataprotection backup-instance list-from-resourcegraph .
az dataprotection backup-instance list-from-resourcegraph --datasource-type AzureDisk --datasource-id /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk
[
{
"datasourceId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk",
"extendedLocation": null,
"id": "//subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/testBkpVaultRG/providers/Microsoft.DataProtection/BackupVaults/TestBkpVault/backupInstances/diskrg-CLITestDisk-3df6ac08-9496-4839-8fb5-8b78e594f166",
"identity": null,
"kind": "",
"location": "",
"managedBy": "",
"name": "diskrg-CLITestDisk-3df6ac08-9496-4839-8fb5-8b78e594f166",
"plan": null,
"properties": {
"currentProtectionState": "ProtectionConfigured",
"dataSourceInfo": {
"baseUri": null,
"datasourceType": "Microsoft.Compute/disks",
"objectType": "Datasource",
"resourceID": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk",
"resourceLocation": "westus",
"resourceName": "CLITestDisk",
"resourceType": "Microsoft.Compute/disks",
"resourceUri": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk"
},
"dataSourceProperties": null,
"dataSourceSetInfo": null,
"datasourceAuthCredentials": null,
"friendlyName": "CLITestDisk",
"objectType": "BackupInstance",
"policyInfo": {
"policyId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/testBkpVaultRG/providers/Microsoft.DataProtection/BackupVaults/TestBkpVault/backupPolicies/DiskPolicy",
"policyParameters": {
"dataStoreParametersList": [
{
"dataStoreType": "OperationalStore",
"objectType": "AzureOperationalStoreParameters",
"resourceGroupId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/snapshotrg"
}
]
},
"policyVersion": null
},
"protectionErrorDetails": null,
"protectionStatus": {
"errorDetails": null,
"status": "ProtectionConfigured"
},
"provisioningState": "Succeeded"
},
"protectionState": "ProtectionConfigured",
"resourceGroup": "testBkpVaultRG",
"sku": null,
"subscriptionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"tags": null,
"tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "microsoft.dataprotection/backupvaults/backupinstances",
"vaultName": "TestBkpVault",
"zones": null
}
]
Při aktivaci zálohování můžete zadat pravidlo a název značky. Pokud chcete zobrazit pravidla v zásadách, projděte si JSON zásad. V následujícím příkladu se zobrazí pravidlo s názvem "BackupDaily"
a názvem "default"
značky a použijeme toto pravidlo pro zálohování na vyžádání.
"name": "BackupDaily",
"objectType": "AzureBackupRule",
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2022-09-27T23:30:00+00:00/P1D"
],
"timeZone": "UTC"
},
"taggingCriteria": [
{
"criteria": null,
"isDefault": true,
"tagInfo": {
"eTag": null,
"id": "Default_",
"tagName": "Default"
},
"taggingPriority": 99
}
Aktivujte zálohování na vyžádání pomocí příkazu az dataprotection backup-instance adhoc-backup .
az dataprotection backup-instance adhoc-backup --name "diskrg-CLITestDisk-3df6ac08-9496-4839-8fb5-8b78e594f166" --rule-name "BackupDaily" --resource-group "000pikumar" --vault-name "PratikPrivatePreviewVault1" --retention-tag-override "default"
Sledování úloh
Pomocí příkazu az dataprotection job list sledujte všechny úlohy. Můžete zobrazit seznam všech úloh a načíst konkrétní podrobnosti úlohy.
Ke sledování všech úloh napříč všemi trezory služby Backup můžete použít také Az.ResourceGraph. Pomocí příkazu az dataprotection job list-from-resourcegraph získejte příslušnou úlohu, která může být v libovolném trezoru služby Backup.
az dataprotection job list-from-resourcegraph --datasource-type AzureDisk --status Completed