Tworzenie kopii zapasowej usługi Azure Dyski zarządzane przy użyciu interfejsu wiersza polecenia platformy Azure

W tym artykule opisano sposób tworzenia kopii zapasowej dysku zarządzanego platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure.

Ważne

Obsługa tworzenia kopii zapasowych i przywracania na platformie Azure Dyski zarządzane za pośrednictwem interfejsu wiersza polecenia jest dostępna w wersji zapoznawczej i jest dostępna jako rozszerzenie w wersji Az 2.15.0 lub nowszej. Rozszerzenie jest instalowane automatycznie po uruchomieniu poleceń az dataprotection . Dowiedz się więcej o rozszerzeniach.

Ten artykuł obejmuje następujące zagadnienia:

  • Tworzenie magazynu kopii zapasowych

  • Tworzenie zasad kopii zapasowych

  • Konfigurowanie kopii zapasowej dysku platformy Azure

  • Uruchamianie zadania tworzenia kopii zapasowej na żądanie

Aby uzyskać informacje na temat dostępności regionu kopii zapasowej dysku platformy Azure, obsługiwanych scenariuszy i ograniczeń, zobacz macierz obsługi.

Tworzenie magazynu kopii zapasowych

Magazyn kopii zapasowych to jednostka magazynu na platformie Azure, która przechowuje dane kopii zapasowej dla różnych nowszych obciążeń, które Azure Backup obsługują, takie jak serwery Azure Database for PostgreSQL, obiekty blob na koncie magazynu i dyski platformy Azure. Magazyny kopii zapasowych ułatwiają organizowanie danych kopii zapasowych przy jednoczesnym zminimalizowaniu nakładu pracy związanego z zarządzaniem. Magazyny kopii zapasowych są oparte na modelu usługi Azure Resource Manager platformy Azure, który zapewnia ulepszone funkcje ułatwiające zabezpieczanie danych kopii zapasowych.

Przed utworzeniem magazynu usługi Backup wybierz nadmiarowość magazynu danych w magazynie. Następnie przejdź do tworzenia magazynu kopii zapasowych z tym nadmiarowością magazynu i lokalizacją. W tym artykule utworzymy magazyn usługi Backup TestBkpVault w regionie westus w obszarze test grupy zasobówBkpVaultRG. Użyj polecenia az dataprotection vault create , aby utworzyć magazyn usługi Backup. Dowiedz się więcej o tworzeniu magazynu usługi 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": "2ca1d5f7-38b3-4b61-aa45-8147d7e0edbc",
    "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 utworzeniu magazynu utwórzmy zasady tworzenia kopii zapasowych w celu ochrony dysków platformy Azure.

Tworzenie zasad kopii zapasowych

Aby poznać wewnętrzne składniki zasad kopii zapasowej dla usługi Azure Disk Backup, pobierz szablon zasad przy użyciu polecenia az dataprotection backup-policy get-default-policy-template . To polecenie zwraca domyślny szablon zasad dla danego typu źródła danych. Użyj tego szablonu zasad, aby utworzyć nowe zasady.

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"
    }
  ]
}

Szablon zasad składa się z wyzwalacza (który decyduje, co wyzwala tworzenie kopii zapasowej) i cyklu życia (który decyduje, kiedy usunąć/skopiować/przenieść kopię zapasową). W usłudze Azure Disk Backup wartości domyślne wyzwalacza są wyzwalaczem zaplanowanym przez co 4 godziny (PT4H) i przechowywanie każdej kopii zapasowej przez siedem dni.

Wyzwalacz zaplanowany:

"trigger": {
        "objectType": "ScheduleBasedTriggerContext",
        "schedule": {
          "repeatingTimeIntervals": [
            "R/2020-04-05T13:00:00+00:00/PT4H"
          ]
        }
}

Domyślny cykl przechowywania:

"lifecycles": [
        {
          "deleteAfter": {
            "duration": "P7D",
            "objectType": "AbsoluteDeleteOption"
          },
          "sourceDataStore": {
            "dataStoreType": "OperationalStore",
            "objectType": "DataStoreInfoBase"
          }
        }
      ]

Usługa Azure Disk Backup oferuje wiele kopii zapasowych dziennie. Jeśli potrzebujesz częstszych kopii zapasowych, wybierz częstotliwość co godzinę tworzenia kopii zapasowych z możliwością tworzenia kopii zapasowych z interwałami co 4, 6, 8 lub 12 godzin. Kopie zapasowe są zaplanowane na podstawie wybranego interwału czasu .

Jeśli na przykład wybierzesz co 4 godziny, kopie zapasowe są wykonywane w przybliżeniu w przedziale co 4 godziny, dzięki czemu kopie zapasowe są dystrybuowane równomiernie w ciągu dnia. Jeśli wystarczy kopia zapasowa raz dziennie, wybierz częstotliwość codziennego tworzenia kopii zapasowych. W częstotliwości wykonywania codziennych kopii zapasowych można określić godzinę wykonania kopii zapasowych.

Ważne

Godzina dnia wskazuje godzinę rozpoczęcia tworzenia kopii zapasowej, a nie godzinę zakończenia tworzenia kopii zapasowej.

Czas wymagany do ukończenia operacji tworzenia kopii zapasowej zależy od różnych czynników, w tym rozmiaru dysku i współczynnika zmian między kolejnymi kopiami zapasowymi. Jednak usługa Azure Disk Backup to bez agenta kopia zapasowa, która używa migawek przyrostowych, co nie wpływa na wydajność aplikacji produkcyjnych.

Uwaga

Mimo że wybrany magazyn może mieć ustawienie nadmiarowości globalnej, obecnie usługa Azure Disk Backup obsługuje tylko magazyn danych migawek. Wszystkie kopie zapasowe są przechowywane w grupie zasobów w ramach subskrypcji i nie są kopiowane do magazynu usługi Backup.

Aby dowiedzieć się więcej na temat tworzenia zasad, zapoznaj się z dokumentem Dotyczącym zasad usługi Azure Disk Backup .

Po pobraniu szablonu jako pliku JSON można go edytować do planowania i przechowywania zgodnie z potrzebami. Następnie utwórz nowe zasady z wynikowym kodem JSON. Jeśli chcesz edytować częstotliwość godzinową lub okres przechowywania, użyj polecenia az dataprotection backup-policy trigger set i/lub az dataprotection backup-policy retention-set . Gdy kod JSON zasad zawiera wszystkie wymagane wartości, utwórz nowe zasady z obiektu zasad za pomocą polecenia 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"
}

Konfigurowanie kopii zapasowych

Po utworzeniu magazynu i zasad istnieją trzy krytyczne punkty, które należy wziąć pod uwagę, aby chronić dysk platformy Azure.

Kluczowe jednostki zaangażowane

Dysk do ochrony

Pobierz identyfikator arm i lokalizację dysku, który ma być chroniony. Będzie to służyć jako identyfikator dysku. Użyjemy przykładu dysku o nazwie CLITestDisk w ramach grupy zasobów diskrg w ramach innej subskrypcji.

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

Grupa zasobów migawki

Migawki dysku są przechowywane w grupie zasobów w ramach subskrypcji. Jako wskazówki zalecamy utworzenie dedykowanej grupy zasobów jako magazynu danych migawek do użycia przez usługę Azure Backup. Posiadanie dedykowanej grupy zasobów umożliwia ograniczenie uprawnień dostępu do grupy zasobów, zapewniając bezpieczeństwo i łatwość zarządzania danymi kopii zapasowych. Zanotuj identyfikator usługi ARM dla grupy zasobów, w której chcesz umieścić migawki dysku

$snapshotrg = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourceGroups/snapshotrg"

Magazyn kopii zapasowych

Magazyny kopii zapasowych wymagają uprawnień na dysku i grupie zasobów migawki, aby móc wyzwalać migawki i zarządzać ich cyklem życia. Tożsamość zarządzana przypisana przez system magazynu służy do przypisywania takich uprawnień. Użyj polecenia az dataprotection backup-vault update , aby włączyć tożsamość zarządzaną przypisaną przez system dla magazynu usługi Recovery Services.

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

Przypisywanie uprawnień

Musisz przypisać kilka uprawnień za pośrednictwem kontroli dostępu opartej na rolach do magazynu (reprezentowanego przez tożsamość usługi zarządzanej magazynu) oraz odpowiedniego dysku i/lub grupy zasobów dysku. Można je wykonać za pomocą Azure Portal lub interfejsu wiersza polecenia. Aby przypisać powiązane uprawnienia, zobacz wymagania wstępne dotyczące konfigurowania kopii zapasowych dysków zarządzanych.

Przygotowywanie żądania

Po ustawieniu wszystkich odpowiednich uprawnień konfiguracja kopii zapasowej jest wykonywana w dwóch krokach. Najpierw przygotowujemy odpowiednie żądanie przy użyciu odpowiedniego magazynu, zasad, dysku i grupy zasobów migawki za pomocą polecenia az dataprotection backup-instance initialize . Zainicjuj polecenie zwróci plik JSON, a następnie trzeba zaktualizować wartość grupy zasobów migawki. Następnie przesyłamy żądanie ochrony dysku za pomocą polecenia 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

Otwórz plik JSON i edytuj identyfikator grupy zasobów migawki w resource_group_iddata_store_parameters_list sekcji .

{
  "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"
          }
        ]
      }
    }
  }
}

Uwaga

Nazwa wystąpienia kopii zapasowej jest generowana przez klientów, dzięki czemu będzie to unikatowa wartość. Jest ona oparta na nazwie źródła danych i unikatowym identyfikatorze GUID. Po wyświetleniu listy wystąpień kopii zapasowych powinno być możliwe sprawdzenie nazwy wystąpienia kopii zapasowej i odpowiedniej nazwy źródła danych.

Użyj edytowanego pliku JSON, aby utworzyć wystąpienie kopii zapasowej dysku zarządzanego platformy 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 utworzeniu wystąpienia kopii zapasowej możesz kontynuować wyzwalanie kopii zapasowej na żądanie, jeśli nie chcesz czekać na zaplanowane zasady.

Uruchamianie tworzenia kopii zapasowej na żądanie

Wyświetl listę wszystkich wystąpień kopii zapasowej w magazynie przy użyciu polecenia az dataprotection backup-instance list , a następnie pobierz odpowiednie wystąpienie przy użyciu polecenia az dataprotection backup-instance show . Alternatywnie w przypadku scenariuszy na dużą skalę można wyświetlić listę wystąpień kopii zapasowych w magazynach i subskrypcjach przy użyciu polecenia 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
  }
]

Podczas wyzwalania kopii zapasowej można określić regułę i nazwę tagu. Aby wyświetlić reguły w zasadach, zapoznaj się z kodem JSON zasad. W poniższym przykładzie zostanie wyświetlona reguła o nazwie i nazwie "BackupDaily""default" tagu. Użyjemy tej reguły dla kopii zapasowej na żądanie.

"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
    }

Wyzwól tworzenie kopii zapasowej na żądanie przy użyciu polecenia 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"

Śledzenie zadań

Śledź wszystkie zadania za pomocą polecenia az dataprotection job list . Możesz wyświetlić listę wszystkich zadań i pobrać szczegóły określonego zadania.

Możesz również użyć narzędzia Az.ResourceGraph do śledzenia wszystkich zadań we wszystkich magazynach usługi Backup. Użyj polecenia az dataprotection job list-from-resourcegraph , aby uzyskać odpowiednie zadanie, które może znajdować się w dowolnym magazynie usługi Backup.

az dataprotection job list-from-resourcegraph --datasource-type AzureDisk --status Completed

Następne kroki

Przywracanie Dyski zarządzane platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure