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.
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ń obsługiwanych przez usługę Azure Backup, takich jak serwery usługi Azure Database for PostgreSQL, obiekty blob na koncie magazynu i dyski platformy Azure. Magazyny kopii zapasowych ułatwiają organizowanie danych kopii zapasowych, jednocześnie minimalizując obciążenie związane z zarządzaniem. Magazyny kopii zapasowych są oparte na modelu usługi Azure Resource Manager platformy Azure, który zapewnia rozszerzone możliwości ułatwiające zabezpieczanie danych kopii zapasowych.
Przed utworzeniem magazynu usługi Backup wybierz nadmiarowość magazynu danych w magazynie. Następnie przejdź do utworzenia magazynu kopii zapasowych z nadmiarowością magazynu i lokalizacją. W tym artykule utworzymy magazyn kopii zapasowych TestBkpVault w regionie westus w obszarze test grupy zasobówBkpVaultRG. Użyj polecenia az dataprotection vault create, aby utworzyć magazyn kopii zapasowych. Dowiedz się więcej o tworzeniu magazynu kopii zapasowych.
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 kopii zapasowej w celu ochrony dysków platformy Azure.
Tworzenie zasad kopii zapasowych
Aby zrozumieć składniki wewnętrzne 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 o wyzwalaczu 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 zachowywaniem 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 życia 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 odstępie co 4 godziny, dzięki czemu kopie zapasowe są równomiernie dystrybuowane w ciągu dnia. Jeśli wystarczy kopia zapasowa raz dziennie, wybierz częstotliwość codziennego tworzenia kopii zapasowych. W dziennej częstotliwości tworzenia 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 ma wpływu 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 magazynu kopii zapasowych.
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ć w celu 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, przejdź do utworzenia nowych zasad z obiektu zasad przy użyciu 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 usługi 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 wytyczne zalecamy utworzenie dedykowanej grupy zasobów jako magazynu danych migawek, który będzie używany 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ń użytkowników
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 zasobów dysku. Można je wykonać za pośrednictwem witryny 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 przy użyciu polecenia az dataprotection backup-instance initialize . Zainicjuj polecenie zwróci plik JSON, a następnie musisz zaktualizować wartość grupy zasobów migawki. Następnie przesyłamy żądanie ochrony dysku przy użyciu 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_id
data_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 zapasowej 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
}
]
Regułę i nazwę tagu można określić podczas wyzwalania kopii zapasowej. 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
}
Wyzwalanie 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 przy użyciu 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ępny krok
Przywracanie usługi Azure Dyski zarządzane przy użyciu interfejsu wiersza polecenia platformy Azure