Compartilhar via


Fazer backup de todos os blobs do Azure em uma conta de armazenamento com o CLI do Azure

Este artigo descreve como fazer backup dos Blobs do Azure usando a CLI do Azure. Agora você pode executar backups operacionais e em cofre para proteger blobs de blocos em suas contas de armazenamento usando o Backup do Azure.

Para obter informações sobre a disponibilidade de regiões dos Blobs do Azure, os cenários compatíveis e as limitações, confira a matriz de suporte.

Antes de começar

Confira os pré-requisitos e a matriz de suporte antes de começar.

Criar um cofre de backup

O cofre de backup é uma entidade de armazenamento no Azure que mantém dados de backup para várias cargas de trabalho mais recentes com suporte no Backup do Azure, como servidores para o Banco de Dados do Azure para PostgreSQL e os blobs em uma conta de armazenamento e nos Discos do Azure. Os cofres de backup facilitam a organização dos dados de backup, minimizando a sobrecarga de gerenciamento. Os cofres de backup são baseados no modelo de Azure Resource Manager do Azure, que fornece recursos avançados para ajudar a proteger os dados de backup.

Antes de criar um Cofre de backup, escolha a redundância de armazenamento dos dados no cofre. Em seguida, continue a criar o Cofre de backup com essa redundância de armazenamento e a localização. Neste artigo, criaremos um Cofre de backup TestBkpVault, na região westus, no grupo de recursos testBkpVaultRG. Use o comando az dataprotection vault create para criar um Cofre de backup. Saiba mais sobre como criar um cofre de 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"
}

Importante

Embora você veja a redundância de armazenamento de backup do cofre, a redundância não se aplica ao backup operacional de blobs. Isso porque o backup é local por natureza e nenhum dado é armazenado no Cofre de backup. Aqui, o Cofre de backup é a entidade de gerenciamento usada para ajudar você a gerenciar a proteção de blobs de blocos nas suas contas de armazenamento.

Depois de criar um cofre, vamos criar uma Política de backup para proteger os Blobs do Azure em uma conta de armazenamento.

Criar uma política de backup

Você pode criar uma política de backup para backup operacional e backup protegido para Blobs do Azure usando a CLI do Azure.

Escolher um nível de backup:

Antes de criar a política e configurar backups para Blobs do Azure, confira os pré-requisitos.

Para entender os componentes internos de uma Política de backup para o backup de Blobs do Azure, recupere o modelo de política usando o comando az dataprotection backup-policy get-default-policy-template. Esse comando retorna um modelo de política padrão para um determinado tipo de fonte de dados. Use este modelo de política para criar uma nova política.

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

O modelo de política consiste apenas em um ciclo de vida (que decide quando excluir/copiar/mover o backup). Como o backup operacional para blobs é contínuo por natureza, você não precisa de uma agenda para executar os backups.

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

Observação

A restauração por longa duração pode levar a uma conclusão mais lenta da operação de restauração. Além disso, o tempo gasto para restaurar um conjunto de dados é baseado no número de operações de gravação e exclusão feitas durante o período de restauração. Por exemplo, uma conta com 1 milhão objetos com 3.000 objetos adicionados por dia e 1.000 objetos excluídos por dia exigirá aproximadamente duas horas para restaurar para um ponto de 30 dias no passado.

Não recomendamos um período de retenção e uma restauração superiores a 90 dias no passado para uma conta com essa taxa de alteração.

Depois que a política JSON tiver todos os valores necessários, prossiga para criar uma política com base no objeto de política usando o comando 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"
  }

Configurar backup

Depois que o cofre e a política são criados, há dois pontos críticos que você precisa considerar para proteger todos os Blobs do Azure em uma conta de armazenamento.

  • Entidades principais
  • Permissões

Entidades principais

  • Conta de armazenamento que contém os blobs a serem protegidos: busque a ID do Azure Resource Manager da conta de armazenamento que contém os blobs a serem protegidos. Isso servirá como o identificador da conta de armazenamento. Usaremos um exemplo de uma conta de armazenamento chamada CLITestSA, no grupo de recursos blobrg, em uma assinatura diferente presente na região do Sudeste da Ásia.

    "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/CLITestSA"
    
  • Cofre do Backup: o cofre do Backup requer permissões na conta de armazenamento para permitir backups em blobs presentes na conta de armazenamento. A identidade gerenciada atribuída ao sistema do cofre é usada para atribuir essas permissões.

Atribuir permissões

Você precisa atribuir algumas permissões por meio do RBAC do Azure ao cofre criado (representado pelo MSI do cofre) e à conta de armazenamento relevante. Eles podem ser executados por meio do portal ou do PowerShell. Saiba mais sobre todas as permissões relacionadas.

Preparar a solicitação para configurar o backup de blob

Quando todas as permissões relevantes estiverem definidas, configure o backup executando os seguintes comandos:

  1. Prepare a solicitação relevante usando o cofre, a política e a conta de armazenamento relevantes usando o comando 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. Envie a solicitação usando o comando az dataprotection backup-instance create.

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

Importante

Depois que uma conta de armazenamento é configurada para backup de blobs, alguns recursos, como alteração de feed e bloqueio de exclusão, são afetados. Saiba mais.

Próximas etapas

Restaurar os Blobs do Azure usando a CLI do Azure