Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье объясняется, как создавать резервные копии управляемых дисков Azure с помощью Azure CLI.
Внимание
Поддержка резервного копирования и восстановления управляемых дисков Azure с помощью CLI предоставляется как расширение для Az версии 2.15.0 и выше. Доступна предварительная версия функции. Это расширение автоматически устанавливается при выполнении команд az dataprotection. Подробнее о расширениях.
Сведения о доступности регионов, поддерживаемых сценариях и ограничениях для резервного копирования дисков Azure см. в таблице поддержки.
Создание хранилища для резервных копий
Хранилище резервных копий — это элемент хранилища Azure, который содержит данные резервного копирования для различных новых поддерживаемых рабочих нагрузок в Azure Backup, таких как серверы баз данных в Azure для PostgreSQL, BLOB-объекты в учетных записях хранения и диски Azure. Хранилища резервных копий упрощают организацию данных резервного копирования, одновременно снижая накладные затраты на управление. Хранилища резервных копий основаны на модели Azure Resource Manager в экосистеме Azure, которая предоставляет расширенные возможности для более надежной защиты данных резервного копирования.
Перед созданием хранилища Backup выберите избыточность данных в хранилище. Затем приступите к созданию резервного хранилища с указанной избыточностью и расположением. В этой статье показано, как создать хранилище Backup с именем TestBkpVault в регионе westus и группе ресурсов testBkpVaultRG. Выполните команду az dataprotection vault create, чтобы создать хранилище Backup. Дополнительные сведения о создании хранилища Azure 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"
}
После создания хранилища мы создадим политику Backup для защиты дисков Azure.
Создание политики резервного копирования
Чтобы получить сведения о внутренних компонентах политики Backup для резервного копирования дисков Azure, извлеките шаблон политики с помощью команды az dataprotection backup-policy get-default-policy-template. Эта команда возвращает шаблон политики по умолчанию для заданного типа источника данных. Используйте этот шаблон политики для создания новой политики.
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"
}
]
}
Шаблон политики состоит из триггера (который определяет, что активирует резервное копирование) и жизненного цикла (который принимает решение об удалении, копировании и перемещении резервной копии). При резервном копировании диска Azure значение триггера по умолчанию — запланированная активация каждые 4 часа (PT4H) и хранение каждой резервной копии в течение семи дней.
Триггер по расписанию:
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2020-04-05T13:00:00+00:00/PT4H"
]
}
}
Жизненный цикл хранения по умолчанию:
"lifecycles": [
{
"deleteAfter": {
"duration": "P7D",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "OperationalStore",
"objectType": "DataStoreInfoBase"
}
}
]
Служба резервного копирования дисков Azure предлагает создавать резервные копии несколько раз в день. Если необходимо выполнять резервное копирование чаще, выберите частоту резервного копирования Ежечасно, после чего можно будет выбрать промежутки между резервным копированием в 4, 6, 8 или 12 часов. Резервное копирование добавляется в расписание в соответствии с выбранным в поле Время интервалом.
Например, если выбрать Каждые 4 часа, то резервные копии будут создаваться с промежутками приблизительно в 4 часа, так что моменты резервного копирования будут равномерно распределены по длительности суток. Если резервного копирования, выполняемого один раз в день, будет достаточно, выберите для частоты резервного копирования значение Ежедневно. В случае ежедневного резервного копирования можно указать время суток, в которое будут создаваться резервные копии.
Внимание
Указываемое время суток обозначает время запуска резервного копирования, а не время, когда создание резервной копии будет завершено.
Время, требуемое для завершения операции резервного копирования, зависит от различных факторов, включая размер диска и частоту обновлений между последовательными резервными копиями. Но резервное копирование дисков Azure выполняется без агента и использует добавочные моментальные снимки, которые не влияют на производительность приложения в рабочей среде.
Примечание.
Хотя для выбранного хранилища можно задать параметр глобальной избыточности, сейчас резервное копирование дисков Azure поддерживает только хранилище данных моментальных снимков. Все резервные копии хранятся в группе ресурсов в вашей подписке и не копируются в хранилище Backup.
Дополнительные сведения о создании политик см. в документе Политика резервного копирования дисков Azure.
После загрузки шаблона в виде JSON-файла его можно изменить для планирования и хранения по мере необходимости. Затем создайте новую политику с этим JSON-файлом. Если вы хотите изменить частоту резервного копирования или период хранения, используйте команду az dataprotection backup-policy trigger set и (или) az dataprotection backup-policy retention-rule set. Когда в коде JSON для политики будут настроены все нужные данные, создайте новую политику из объекта политики с помощью команды 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"
}
Настроить резервное копирование
После создания хранилища и политики вам следует принять во внимание три важных пункта, касающихся защиты диска Azure.
Ключевые задействованные сущности
Защищаемый диск
Получите идентификатор ARM и сведения о расположении защищаемого диска. Он будет служить идентификатором диска. В качестве примера мы будем использовать диск с именем CLITestDisk в группе ресурсов diskrg в другой подписке.
$DiskId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk"
Группа ресурсов моментальных снимков
Моментальные снимки диска сохраняются в группе ресурсов в вашей подписке. Как правило, рекомендуется создавать выделенную группу ресурсов в качестве хранилища данных моментальных снимков для использования службой Azure Backup. Наличие выделенной группы ресурсов позволяет ограничивать права доступа к этой группе ресурсов, тем самым обеспечивая безопасность и простоту управления данными резервных копий. Обратите внимание на идентификатор ARM для группы ресурсов, где вы хотите разместить моментальные снимки диска.
$snapshotrg = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourceGroups/snapshotrg"
Хранилище резервных копий
Хранилищам Backup требуются разрешения на диск и группу ресурсов моментальных снимков для активации моментальных снимков и управления их жизненным циклом. Для назначения таких разрешений используется назначенное системой управляемое удостоверение хранилища. Включите управляемое удостоверение, назначаемое системой, для хранилища Служб восстановления с помощью команды az dataprotection backup-vault update.
az dataprotection backup-vault update -g testBkpVaultRG --vault-name TestBkpVault --type SystemAssigned
Назначьте разрешения
Вам необходимо назначить несколько разрешений через RBAC хранилищу (представленному MSI хранилища), а также соответствующему диску и (или) диску RG. Эту операцию можно выполнить на портале Azure или с помощью CLI. Чтобы назначить связанные разрешения, см. предварительные требования для настройки резервного копирования управляемых дисков.
Подготовка запроса
После установки всех соответствующих разрешений выполняется конфигурация резервного копирования, состоящая из двух этапов. Сначала мы готовим соответствующий запрос с помощью соответствующей группы ресурсов хранилища, политики, диска и моментального снимка путем выполнения команды az dataprotection backup-instance initialize. Команда initialize создаст JSON-файл, после чего нужно будет обновить значение ресурсной группы снимка. Затем мы отправим этот запрос на защиту диска, выполнив команду 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
Откройте JSON-файл и измените идентификатор группы ресурсов моментальных снимков в блоке resource_group_id
, расположенном в секции 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"
}
]
}
}
}
}
Примечание.
Имя экземпляра резервной копии создается клиентами, поэтому это значение будет уникальным. Это основывается на имени источника данных и уникальном идентификаторе GUID. После вывода списка экземпляров резервной копии вы сможете проверить имя экземпляра резервной копии и соответствующее имя источника данных.
Создайте экземпляр резервной копии управляемого диска Azure с помощью отредактированного JSON-файла.
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"
}
После создания экземпляра резервной копии можно перейти к активации резервного копирования по запросу, если вы не хотите ждать запланированного политикой резервного копирования.
Выполнение резервного копирования по требованию
Выведите список всех экземпляров резервных копий в хранилище с помощью команды az dataprotection backup-instance list, а затем получите нужный экземпляр с помощью команды az dataprotection backup-instance show. Кроме того, для крупномасштабных сценариев вы можете вывести список экземпляров резервных копий в разных хранилищах и подписках с помощью команды 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
}
]
При активации резервного копирования можно указать правило и имя тега. Чтобы просмотреть правила в политике, ознакомьтесь с файлом JSON политики. В следующем примере отображается правило с именем "BackupDaily"
и именем "default"
тега, и мы будем использовать это правило для резервного копирования по запросу.
"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
}
Активируйте резервное копирование по запросу с помощью команды 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"
Отслеживание заданий
Для отслеживания заданий используется команда az dataprotection job list. Можно вывести список всех заданий и получить сведения о конкретном задании.
Для отслеживания всех заданий во всех хранилищах Backup можно также использовать Az.ResourceGraph. Используйте команду az dataprotection job list-from-resourcegraph для получения соответствующего задания, которое может находиться в любом из хранилищ Backup.
az dataprotection job list-from-resourcegraph --datasource-type AzureDisk --status Completed