Поделиться через


Резервное копирование больших двоичных объектов Azure в учетной записи хранения с помощью Azure CLI

В этой статье описано, как создавать резервные копии BLOB-объектов с помощью Azure CLI. Теперь вы можете выполнять операционные и хранилища резервные копии для защиты блочных BLOB-объектов в учетных записях хранения с помощью Azure Backup. Вы также можете настроить резервное копирование с помощью REST API.

Сведения о доступности в регионах, поддерживаемых сценариях и ограничениях для резервного копирования BLOB-объектов Azure см. в матрице поддержки.

Перед началом работы

Перед началом работы ознакомьтесь с предварительными требованиями и матрицей поддержки.

создание хранилища Azure Backup;

Хранилище Azure Backup — это объект хранения Azure, который содержит данные резервных копий для разных новых рабочих нагрузок, поддерживаемых в Azure Backup, таких как серверы Базы данных Azure для PostgreSQL, а также для BLOB-объектов в учетной записи хранения и дисков Azure. Они упрощают организацию данных резервного копирования и одновременно снижают накладные затраты на управление. Хранилища резервных копий основаны на модели Azure Resource Manager в экосистеме Azure, которая предоставляет расширенные возможности для защиты данных, резервная копия которых создается.

Перед созданием хранилища Backup выберите параметры избыточности хранения данных. Затем перейдите к созданию хранилища 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, избыточность не применяется к операционному резервному копированию BLOB-объектов. Это связано с тем, что резервное копирование выполняется исключительно локально и не сохраняет данные в хранилище Backup. Хранилище Backup — это сущность управления, которая помогает управлять защитой блочных BLOB-объектов в учетных записях хранения.

После создания хранилища мы создадим политику Backup для защиты BLOB-объектов Azure в учетной записи хранения.

создание политики архивации;

Вы можете создать политику резервного копирования для оперативного резервного копирования и хранилища резервных копий для больших двоичных объектов Azure с помощью Azure CLI.

Выберите уровень резервного копирования:

Прежде чем создавать политику и настраивать резервные копии для БОЛЬШИХ двоичных объектов Azure, ознакомьтесь с предварительными условиями.

Чтобы получить сведения о внутренних компонентах политики резервного копирования для BLOB-объектов Azure, извлеките шаблон политики с помощью команды az dataprotection backup-policy get-default-policy-template. Эта команда возвращает шаблон политики по умолчанию для заданного типа источника данных. Используйте этот шаблон политики для создания новой политики.

az dataprotection backup-policy get-default-policy-template --datasource-type AzureBlob

{
  "datasourceTypes": [
    "Microsoft.Storage/storageAccounts/blobServices"
  ],
  "name": "BlobPolicy1",
  "objectType": "BackupPolicy",
  "policyRules": [
    {
      "isDefault": true,
      "lifecycles": [
        {
          "deleteAfter": {
            "duration": "P30D",
            "objectType": "AbsoluteDeleteOption"
          },
          "sourceDataStore": {
            "dataStoreType": "OperationalStore",
            "objectType": "DataStoreInfoBase"
          }
        }
      ],
      "name": "Default",
      "objectType": "AzureRetentionRule"
    }
  ]
}

Шаблон политики состоит только из жизненного цикла, который принимает решение об удалении, копировании и перемещении резервной копии. Поскольку операционное резервное копирование больших двоичных объектов является непрерывным действием, для резервного копирования не требуется создавать расписание.

"policyRules": [
    {
      "isDefault": true,
      "lifecycles": [
        {
          "deleteAfter": {
            "duration": "P30D",
            "objectType": "AbsoluteDeleteOption"
          },
          "sourceDataStore": {
            "dataStoreType": "OperationalStore",
            "objectType": "DataStoreInfoBase"
          }
        }
      ],
      "name": "Default",
      "objectType": "AzureRetentionRule"
    }
  ]

Примечание.

Восстановление в течение длительных периодов может привести к тому, что операции восстановления занимают больше времени. Кроме того, требуемое для восстановления набора данных время зависит от числа операций записи и удаления, выполненных в период восстановления. Например, для учетной записи с 1 миллионом объектов, 3000 объектов, добавляемых в день и 1000 объектов, удаляемых в день, потребуется примерно два часа для восстановления до состояния на 30 дней назад.

Для учетной записи с такой частотой изменений мы не рекомендуем использовать период хранения более 90 дней и восстанавливать ее состояние до более ранней точки во времени.

Когда в коде JSON для политики будут настроены все нужные данные, переходите к созданию политики на основе объекта политики с помощью команды az dataprotection backup-policy create.

az dataprotection backup-policy get-default-policy-template --datasource-type AzureBlob > policy.json
az dataprotection backup-policy create -g testBkpVaultRG --vault-name TestBkpVault -n BlobBackup-Policy --policy policy.json

{
    "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault/backupPolicies/BlobBackup-Policy",
    "name": "BlobBackup-Policy",
    "properties": {
      "datasourceTypes": [
        "Microsoft.Storage/storageAccounts/blobServices"
      ],
      "objectType": "BackupPolicy",
      "policyRules": [
        {
          "isDefault": true,
          "lifecycles": [
            {
              "deleteAfter": {
                "duration": "P2D",
                "objectType": "AbsoluteDeleteOption"
              },
              "sourceDataStore": {
                "dataStoreType": "OperationalStore",
                "objectType": "DataStoreInfoBase"
              },
              "targetDataStoreCopySettings": []
            }
          ],
          "name": "Default",
          "objectType": "AzureRetentionRule"
        }
      ]
    },
    "resourceGroup": "testBkpVaultRG",
    "systemData": null,
    "type": "Microsoft.DataProtection/backupVaults/backupPolicies"
  }

Настроить резервное копирование

После создания хранилища и политики необходимо учитывать две критически важные точки, которые необходимо учитывать для защиты всех BLOB-объектов Azure в учетной записи хранения.

  • Основные сущности
  • Разрешения

Основные сущности

  • Учетная запись хранения, содержащая большие двоичные объекты, которые необходимо защитить: получение идентификатора Azure Resource Manager учетной записи хранения, содержащей защищаемые большие двоичные объекты. Он будет служить идентификатором учетной записи хранения. Мы будем использовать пример учетной записи хранения с именем CLITestSA в группе ресурсов BLOBRG в другой подписке, присутствующих в регионе Юго-Восточной Азии.

    "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/CLITestSA"
    
  • Хранилище резервных копий. Для резервного копирования в учетной записи хранения требуются разрешения для включения резервных копий в больших двоичных объектах, присутствующих в учетной записи хранения. Для назначения таких разрешений используется назначенное системой управляемое удостоверение хранилища.

Назначение разрешений

Необходимо назначить несколько разрешений с помощью Azure RBAC созданному хранилищу (представленному MSI хранилища) и соответствующей учетной записи хранения. Эту операцию можно выполнить на портале или с помощью PowerShell. Дополнительные сведения обо всех связанных разрешениях.

Подготовка запроса к настройке резервного копирования BLOB-объектов

После установки всех соответствующих разрешений настройте резервную копию, выполнив следующие команды:

  1. Подготовьте соответствующий запрос с помощью соответствующего хранилища, политики, учетной записи хранения с помощью команды az dataprotection backup-instance initialize .

    az dataprotection backup-instance initialize --datasource-type AzureBlob  -l southeastasia --policy-id "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault/backupPolicies/BlobBackup-Policy" --datasource-id "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/CLITestSA" > backup_instance.json
    
  2. Отправьте запрос с помощью команды create az dataprotection backup-instance.

    az dataprotection backup-instance create -g testBkpVaultRG --vault-name TestBkpVault --backup-instance backup_instance.json
    
    {
        "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault/backupInstances/CLITestSA-CLITestSA-c3a2a98c-def8-44db-bd1d-ff6bc86ed036",
        "name": "CLITestSA-CLITestSA-c3a2a98c-def8-44db-bd1d-ff6bc86ed036",
        "properties": {
          "currentProtectionState": "ProtectionConfigured",
          "dataSourceInfo": {
            "datasourceType": "Microsoft.Storage/storageAccounts/blobServices",
            "objectType": "Datasource",
            "resourceId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/CLITestSA",
            "resourceLocation": "southeastasia",
            "resourceName": "CLITestSA",
            "resourceType": "Microsoft.Storage/storageAccounts",
            "resourceUri": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/CLITestSA"
          },
          "dataSourceSetInfo": null,
          "friendlyName": "CLITestSA",
          "objectType": "BackupInstance",
          "policyInfo": {
            "policyId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault/backupPolicies/BlobBackup-Policy",
            "policyParameters": {
              "dataStoreParametersList": [
                {
                  "dataStoreType": "OperationalStore",
                  "objectType": "AzureOperationalStoreParameters",
                  "resourceGroupId": ""
                }
              ]
            },
            "policyVersion": ""
          },
          "protectionErrorDetails": null,
          "protectionStatus": {
            "errorDetails": null,
            "status": "ProtectionConfigured"
          },
          "provisioningState": "Succeeded"
        },
        "resourceGroup": "testBkpVaultRG",
        "systemData": null,
        "type": "Microsoft.DataProtection/backupVaults/backupInstances"
      }
    

Внимание

После настройки учетной записи хранения для резервного копирования БОЛЬШИХ двоичных объектов затронуты некоторые возможности, такие как канал изменений и блокировка удаления. Подробнее.

Обновление экземпляра резервного копирования

После настройки резервной копии можно изменить связанную политику с экземпляром резервного копирования. Для хранилищ резервных копий можно также изменить контейнеры, выбранные для резервного копирования.

Чтобы обновить экземпляр резервного копирования, выполните следующую команду:

  1. Проверьте, готов ли экземпляр резервного копирования к настройке резервного копирования с помощью команды az dataprotection backup-instance validate-for-backup . Команда завершается ошибкой, если экземпляр резервного копирования не готов.
  2. Измените политику резервного копирования, используемую для резервного копирования BLOB-объектов Azure с помощью обновления az dataprotection backup-instance. Укажите соответствующий объект резервного копирования и новую политику резервного копирования.

Следующие шаги

Восстановление BLOB-объектов Azure с помощью Azure CLI