Sdílet prostřednictvím


Zálohování Spravované disky Azure pomocí Azure CLI

Tento článek popisuje, jak zálohovat spravovaný disk Azure pomocí Azure CLI. K vytvoření zásady zálohování a konfiguraci zálohování pro spravovaný disk Azure můžete použít také rozhraní REST API.

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.

Seznamte se s dostupností oblastí zálohování disků Azure, podporovanými scénáři a omezeními.

Poznámka:

  • Pokud je cílový disk připojený jako trvalý svazek ke clusteru AKS, zvolte Azure Backup pro AKS přes samostatné řešení zálohování disků. Umožňuje zálohování disku jako snímků spolu s kontejnerizovanou aplikací způsobem, který je založený na Kubernetes, a to vše jako jedna jednotka. Kromě toho získáte možnosti ochrany proti ransomwaru a obnovení mezi oblastmi pomocí služby AKS Backup.

Vytvoření trezoru 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 úložiště zálohování s nastavenou 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 zálohování použijte příkaz az dataprotection vault create. Přečtěte si více o vytváření trezoru zálohy.

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 je výchozím nastavením naplánovaný spouštěč každé 4 hodiny (PT4H) a uchovat každou zálohu po sedm 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"
          }
        }
      ]

Důležité

Plán zálohování se řídí formátem doby trvání ISO 8601. Předpona R intervalu opakování se ale nepodporuje, protože zálohy jsou nakonfigurované tak, aby běžely neomezeně dlouho. Jakákoli hodnota zadaná pomocí R bude ignorována.

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ž může mít vybraný trezor nastavení globální redundance, Azure Disk Backup v současné době podporuje pouze úložiště 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.

Pokud chcete získat další podrobnosti o vytváření zásad, přečtěte si, jak vytvořit zásady 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říkaz az dataprotection backup-policy trigger set a/nebo příkaz 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í úložiště a zásad existují tři kritické body, které musíte 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ů diskrg pod jiným předplatným.

$DiskId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk"

Snímek skupiny prostředků

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"

Úložiště záloh

Úložiště záloh vyžadují oprávnění v rámci disku a skupiny 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 systémem přiřazenou spravovanou identitu pro úložiště Recovery Services.

az dataprotection backup-vault update -g testBkpVaultRG --vault-name TestBkpVault --type SystemAssigned

Přiřazení uživatelských oprávnění

Prostřednictvím RBAC musíte přiřadit několik oprávnění k trezoru (zastoupené trezorem MSI) a k příslušnému disku nebo skupině prostředků disku. 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 poté je potřeba aktualizovat hodnotu skupiny prostředků pro snímek. 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 v části upravte resource_group_id skupiny prostředků snímku 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í záložní instance můžete zahájit zálohování na vyžádání, pokud nechcete čekat na plánovanou zálohu podle zásad.

Spusťte 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 spuštění zálohování můžete zadat pravidlo a jméno 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ázev značky "default" 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

Další kroky

Obnovení spravovaného disku pomocí webu Azure Portal, Azure PowerShellu a Azure CLI