Compartir a través de


Copia de seguridad de los blobs de Azure de una cuenta de almacenamiento mediante la CLI de Azure

En este artículo se describe cómo realizar una copia de seguridad de los blobs de Azure con la CLI de Azure. Ahora puede realizar copias de seguridad operativas y en almacén para proteger los blobs en bloques de las cuentas de almacenamiento mediante Azure Backup. También puede configurar la copia de seguridad mediante la API de REST.

Para obtener información sobre la disponibilidad regional de los blobs de Azure, los escenarios admitidos y las limitaciones, consulte la matriz de compatibilidad.

Antes de comenzar

Vea los requisitos previos y la matriz de compatibilidad antes de empezar.

Creación de un almacén de Backup

Un almacén de copia se seguridad es una entidad de almacenamiento de Azure que contiene los datos de las copias de seguridad de varias cargas de trabajo recientes que admite Azure Backup, como los servidores de Azure Database for PostgreSQL, y los blobs de una cuenta de almacenamiento y los discos de Azure. Los almacenes de Backup facilitan la tarea de organizar los datos de copia de seguridad, al mismo tiempo que reducen al mínimo la sobrecarga administrativa. Los almacenes de copias de seguridad se basan en el modelo de Azure Resource Manager de Azure, que proporciona características para proteger los datos de las copias de seguridad.

Antes de crear un almacén de copia de seguridad, elija la redundancia de almacenamiento de los datos dentro del almacén. Después, continúe con la creación del almacén de copia de seguridad con esa redundancia de almacenamiento y la ubicación. En este artículo, se creará el almacén de copia de seguridad TestBkpVault en la región westus dentro del grupo de recursos testBkpVaultRG. Use el comando az dataprotection vault create para crear un almacén de copia de seguridad. Obtenga más información sobre cómo crear un almacén 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": "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"
}

Importante

Aunque verá la redundancia del almacenamiento de copia de seguridad del almacén, esta redundancia no se aplica a la copia de seguridad operativa de blobs. Esto se debe a que la copia de seguridad es local por naturaleza y no se almacenan datos en el almacén de copia de seguridad. Aquí, el almacén de copia de seguridad es la entidad de administración que le ayuda a administrar la protección de los blobs en bloques en las cuentas de almacenamiento.

Después de crear un almacén, vamos a crear una directiva de copia de seguridad para proteger los blobs de Azure en una cuenta de almacenamiento.

Crear una directiva de copia de seguridad

Puede crear una directiva de copia de seguridad para copia de seguridad operativa y copia de seguridad de almacenes para blobs de Azure mediante la CLI de Azure.

Elegir un nivel de copia de seguridad:

Antes de crear la directiva y configurar las copias de seguridad de los blobs de Azure, consulte los requisitos previos.

Para comprender los componentes internos de una directiva de copia de seguridad para los blobs de Azure, recupere la plantilla de directiva con el comando az dataprotection backup-policy get-default-policy-template. Este comando devuelve una plantilla de directiva predeterminada para un tipo de origen de datos determinado. Use esta plantilla para crear una directiva.

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

La plantilla de directiva solo consta de un ciclo de vida (que decide cuándo eliminar, copiar o mover la copia de seguridad). Dado que la copia de seguridad operativa de los blobs es continua por naturaleza, no necesita una programación para realizar copias de seguridad.

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

Nota:

La restauración de duraciones largas puede dar lugar a que las operaciones de restauración tarden más en completarse. Por otra parte, el tiempo que se tarda en restaurar un conjunto de datos se basa en el número de operaciones de escritura y eliminación realizadas durante el período de restauración. Por ejemplo, una cuenta con un millón de objetos con 3000 objetos agregados al día y 1000 objetos eliminados al día requerirá aproximadamente dos horas para restaurar a un período de 30 días determinado del pasado.

Con esta tasa de cambio, no se recomienda un período de retención ni una restauración que vayan más allá de los 90 días para una cuenta.

Una vez que el objeto JSON de directiva tenga todos los valores necesarios, continúe con la creación de una directiva a partir del objeto de directiva con el 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"
  }

Configuración de la copia de seguridad

Una vez creado el almacén y la directiva, hay dos puntos críticos que debe tener en cuenta para proteger todos los blobs de Azure dentro de una cuenta de almacenamiento.

  • Entidades clave
  • Permisos

Entidades clave

  • Cuenta de almacenamiento que contiene los blobs que se van a proteger: capture el identificador de Azure Resource Manager de la cuenta de almacenamiento que contiene los blobs que se van a proteger. Servirá como identificador de la cuenta de almacenamiento. Usaremos un ejemplo de una cuenta de almacenamiento denominada CLITestSA, en el grupo de recursos blobrg, en una suscripción diferente presente en la región Sudeste de Asia.

    "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/CLITestSA"
    
  • Almacén de Backup: el almacén de Backup requiere permisos en la cuenta de almacenamiento para habilitar las copias de seguridad en blobs presentes en la cuenta de almacenamiento. Para asignar estos permisos, se usa la identidad del almacén administrada asignada por el sistema.

Asignación de permisos

Debe asignar algunos permisos a través de Azure RBAC al almacén creado (representado por el MSI del almacén) y la cuenta de almacenamiento correspondiente. Para ello se puede usar el portal o PowerShell. Obtenga más información sobre todos los permisos relacionados.

Preparación de la solicitud para configurar la copia de seguridad de blobs

Una vez establecidos todos los permisos pertinentes, configure la copia de seguridad mediante la ejecución de los siguientes comandos:

  1. Prepare la solicitud pertinente mediante el almacén, la directiva y la cuenta de almacenamiento pertinentes mediante el 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. Envíe la solicitud mediante el 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

Una vez configurada una cuenta de almacenamiento para la copia de seguridad de blobs, se ven afectadas algunas funcionalidades, como la fuente de cambios y el bloqueo de eliminación. Más información.

Actualización de una instancia de copia de seguridad

Después de configurar la copia de seguridad, puede cambiar la directiva asociada con una instancia de copia de seguridad. En el caso de las copias de seguridad de almacén, también puede cambiar los contenedores seleccionados para la copia de seguridad.

Para actualizar la instancia de copia de seguridad, ejecute el siguiente comando:

  1. Valide si la instancia de copia de seguridad está lista para configurar la copia de seguridad mediante el comando az dataprotection backup-instance validate-for-backup. Se produce un error en el comando si la instancia de copia de seguridad no está lista.
  2. Cambie la directiva que se usa para realizar copias de seguridad de los blobs de Azure mediante az dataprotection backup-instance update. Especifique el elemento de copia de seguridad pertinente y la nueva directiva de copia de seguridad.

Pasos siguientes

Restauración de blobs de Azure mediante la CLI de Azure