Share via


Säkerhetskopiera Azure-blobbar i lagringskonto genom Azure CLI

Den här artikeln beskriver hur du säkerhetskopierar Azure Blobs med hjälp av Azure CLI.

Viktigt

Stöd för säkerhetskopiering och återställning av Azure-blobar via CLI finns i förhandsversion och är tillgängligt som ett tillägg i Az 2.15.0-versionen och senare. Tillägget installeras automatiskt när du kör kommandona az dataprotection . Läs mer om tillägg.

I den här artikeln får du lära dig att:

  • Innan du börjar

  • Skapa ett Säkerhetskopieringsvalv

  • Skapa en säkerhetskopieringsprincip

  • Konfigurera säkerhetskopiering av en Azure-blob

  • Köra ett säkerhetskopieringsjobb på begäran

Information om tillgänglighet för Azure Blobs-regioner, scenarier som stöds och begränsningar finns i supportmatrisen.

Innan du börjar

Se förutsättningarna och supportmatrisen innan du börjar.

Skapa ett Säkerhetskopieringsvalv

Säkerhetskopieringsvalv är en lagringsentitet i Azure som lagrar säkerhetskopierade data för olika nyare arbetsbelastningar som Azure Backup stöder, till exempel Azure Database for PostgreSQL servrar och blobar i ett lagringskonto och Azure Disks. Säkerhetskopieringsvalv gör det enkelt att organisera dina säkerhetskopierade data, samtidigt som hanteringskostnaderna minimeras. Säkerhetskopieringsvalv baseras på Azure Resource Manager azure-modellen, som ger förbättrade funktioner för att skydda säkerhetskopierade data.

Innan du skapar ett Säkerhetskopieringsvalv väljer du lagringsredundans för data i valvet. Fortsätt sedan med att skapa Säkerhetskopieringsvalvet med lagringsredundansen och platsen. I den här artikeln skapar vi ett Säkerhetskopieringsvalv TestBkpVault i regionen westus under resursgruppen testBkpVaultRG. Använd kommandot az dataprotection vault create för att skapa ett Säkerhetskopieringsvalv. Läs mer om hur du skapar ett Backup-valv.

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

Viktigt

Även om du ser redundansen för Säkerhetskopieringslagring för valvet gäller inte redundansen för driftsäkerhetskopiering av blobar. Det beror på att säkerhetskopieringen är lokal och inga data lagras i Säkerhetskopieringsvalvet. Här är Backup-valvet hanteringsentiteten som hjälper dig att hantera skyddet av blockblobar i dina lagringskonton.

När vi har skapat ett valv ska vi skapa en säkerhetskopieringsprincip för att skydda Azure Blobs i ett lagringskonto.

Skapa en säkerhetskopieringsprincip

Viktigt

Läs det här avsnittet innan du skapar principen och konfigurerar säkerhetskopior för Azure Blobs.

För att förstå de inre komponenterna i en säkerhetskopieringspolicy för Säkerhetskopiering av Azure Blobs hämtar du principmallen med kommandot az dataprotection backup-policy get-default-policy-template . Det här kommandot returnerar en standardprincipmall för en viss typ av datakälla. Använd den här principmallen för att skapa en ny princip.

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

Principmallen består endast av en livscykel (som bestämmer när säkerhetskopieringen ska tas bort/kopieras/flyttas). Eftersom driftsäkerhetskopiering för blobar är kontinuerlig behöver du inget schema för att utföra säkerhetskopieringar.

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

Anteckning

Återställning under lång tid kan leda till att återställningsåtgärder tar längre tid att slutföra. Dessutom baseras den tid det tar att återställa en uppsättning data på antalet skriv- och borttagningsåtgärder som gjorts under återställningsperioden. Till exempel kräver ett konto med en miljon objekt med 3 000 objekt tillagda per dag och 1 000 objekt borttagna per dag cirka två timmar för att återställa till en punkt 30 dagar tidigare.

Vi rekommenderar inte en kvarhållningsperiod och återställning mer än 90 dagar tidigare för ett konto med den här ändringstakten.

När principens JSON har alla nödvändiga värden fortsätter du med att skapa en ny princip från principobjektet med kommandot 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"
  }

Konfigurera säkerhetskopiering

När valvet och principen har skapats finns det två viktiga punkter som du måste överväga för att skydda alla Azure-blobar i ett lagringskonto.

Viktiga entiteter som berörs

Lagringskonto som innehåller de blobar som ska skyddas

Hämta Azure Resource Manager-ID:t för lagringskontot som innehåller de blobar som ska skyddas. Detta fungerar som identifierare för lagringskontot. Vi använder ett exempel på ett lagringskonto med namnet CLITestSA, under resursgruppen blobrg, i en annan prenumeration som finns i regionen Sydostasien.

"/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/CLITestSA"

Backup-valv

Säkerhetskopieringsvalvet kräver behörigheter för lagringskontot för att aktivera säkerhetskopiering av blobar som finns i lagringskontot. Den systemtilldelade hanterade identiteten för valvet används för att tilldela sådana behörigheter.

Tilldela behörigheter

Du måste tilldela några behörigheter via RBAC till valvet (representeras av valvets MSI) och det relevanta lagringskontot. Dessa kan utföras via portalen eller PowerShell. Läs mer om alla relaterade behörigheter.

Förbereda begäran

När alla relevanta behörigheter har angetts utförs konfigurationen av säkerhetskopieringen i två steg. Först förbereder vi relevant begäran med hjälp av relevant valv, princip, lagringskonto med kommandot az dataprotection backup-instance initialize . Sedan skickar vi begäran om att skydda disken med kommandot az dataprotection backup-instance create .

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

Viktigt

När ett lagringskonto har konfigurerats för säkerhetskopiering av blobar påverkas några funktioner, till exempel ändringsflöde och borttagningslås. Läs mer.

Nästa steg

Återställa Azure-blobar med Hjälp av Azure CLI