Dela via


Säkerhetskopiera Azure Managed Disks med Azure CLI

I den här artikeln beskrivs hur du säkerhetskopierar Azure Managed Disk med Hjälp av Azure CLI.

Viktigt!

Stöd för säkerhetskopiering och återställning av Azure Managed Disks 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.

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

Skapa ett säkerhetskopieringsvalv

Backup Vault är en lagringsentitet i Azure som lagrar säkerhetskopieringsdata för olika nyare arbetsbelastningar som Stöds av Azure Backup, till exempel Azure Database for PostgreSQL-servrar, blobbar 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-modellen i Azure, 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 att skapa säkerhetskopieringsvalvet med lagringsredundansen och platsen. I den här artikeln skapar vi ett TestBkpVault för säkerhetskopieringsvalvet i regionen westus under resursgruppen testBkpVaultRG. Använd kommandot az dataprotection vault create för att skapa ett säkerhetskopieringsvalv. Läs mer om att skapa ett säkerhetskopieringsvalv.

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

När du har skapat valvet ska vi skapa en säkerhetskopieringsprincip för att skydda Azure-diskar.

Skapa en säkerhetskopieringsprincip

Om du vill förstå de inre komponenterna i en säkerhetskopieringsprincip för Azure Disk Backup 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 datakällatyp. Använd den här principmallen för att skapa en ny princip.

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

Principmallen består av en utlösare (som bestämmer vad som utlöser säkerhetskopieringen) och en livscykel (som bestämmer när säkerhetskopieringen ska tas bort/kopieras/flyttas). I Azure Disk Backup är standardvärdena för utlösare en schemalagd utlösare var fjärde timme (PT4H) och för att behålla varje säkerhetskopia i sju dagar.

Schemalagd utlösare:

"trigger": {
        "objectType": "ScheduleBasedTriggerContext",
        "schedule": {
          "repeatingTimeIntervals": [
            "R/2020-04-05T13:00:00+00:00/PT4H"
          ]
        }
}

Standardlivscykel för kvarhållning:

"lifecycles": [
        {
          "deleteAfter": {
            "duration": "P7D",
            "objectType": "AbsoluteDeleteOption"
          },
          "sourceDataStore": {
            "dataStoreType": "OperationalStore",
            "objectType": "DataStoreInfoBase"
          }
        }
      ]

Azure Disk Backup erbjuder flera säkerhetskopior per dag. Om du behöver mer frekventa säkerhetskopieringar väljer du säkerhetskopieringsfrekvensen varje timme med möjlighet att göra säkerhetskopior med intervall på var 4:e, 6:e, 8:e eller 12:e timme. Säkerhetskopiorna schemaläggs baserat på det valda tidsintervallet .

Om du till exempel väljer Var fjärde timme tas säkerhetskopiorna ungefär i intervallet var 4:e timme så att säkerhetskopiorna fördelas lika över dagen. Om en säkerhetskopiering en gång om dagen räcker väljer du frekvensen För daglig säkerhetskopiering. I den dagliga säkerhetskopieringsfrekvensen kan du ange den tid på dagen då dina säkerhetskopior görs.

Viktigt!

Tiden på dagen anger starttiden för säkerhetskopieringen och inte tiden då säkerhetskopieringen slutförs.

Den tid som krävs för att slutföra säkerhetskopieringsåtgärden beror på olika faktorer, inklusive diskens storlek och omsättningshastigheten mellan på varandra följande säkerhetskopior. Azure Disk Backup är dock en agentlös säkerhetskopia som använder inkrementella ögonblicksbilder, vilket inte påverkar prestanda för produktionsprogram.

Kommentar

Även om det valda valvet kan ha inställningen global redundans stöder Azure Disk Backup för närvarande endast datalager för ögonblicksbilder. Alla säkerhetskopior lagras i en resursgrupp i din prenumeration och kopieras inte till Lagring av säkerhetskopieringsvalv.

Mer information om hur du skapar principer finns i dokumentet azure disksäkerhetskopieringsprincip .

När mallen har laddats ned som en JSON-fil kan du redigera den för schemaläggning och kvarhållning efter behov. Skapa sedan en ny princip med den resulterande JSON:n. Om du vill redigera timfrekvensen eller kvarhållningsperioden använder du utlösaruppsättningen az dataprotection backup-policy och/eller az dataprotection backup-policy retention-rule set-kommandon. 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 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"
}

Konfigurera säkerhetskopiering

När valvet och principen har skapats finns det tre viktiga punkter som du måste överväga för att skydda en Azure Disk.

Viktiga entiteter som berörs

Disk som ska skyddas

Hämta ARM-ID:t och platsen för disken som ska skyddas. Detta fungerar som diskens identifierare. Vi använder ett exempel på en disk med namnet CLITestDisk, under en resursgruppsdiskrg, under en annan prenumeration.

$DiskId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/diskrg/providers/Microsoft.Compute/disks/CLITestDisk"

Resursgrupp för ögonblicksbilder

Diskögonblicksbilderna lagras i en resursgrupp i din prenumeration. Som en riktlinje rekommenderar vi att du skapar en dedikerad resursgrupp som ett datalager för ögonblicksbilder som ska användas av Azure Backup-tjänsten. Med en dedikerad resursgrupp kan du begränsa åtkomstbehörigheterna för resursgruppen, vilket ger säkerhet och enkel hantering av säkerhetskopierade data. Observera ARM-ID:t för resursgruppen där du vill placera diskögonblicksbilderna

$snapshotrg = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourceGroups/snapshotrg"

Backup-valv

Säkerhetskopieringsvalv kräver behörigheter på disken och resursgruppen för ögonblicksbilder för att kunna utlösa ögonblicksbilder och hantera deras livscykel. Den systemtilldelade hanterade identiteten för valvet används för att tilldela sådana behörigheter. Använd kommandot az dataprotection backup-vault update för att aktivera systemtilldelad hanterad identitet för Recovery Services-valvet.

az dataprotection backup-vault update -g testBkpVaultRG --vault-name TestBkpVault --type SystemAssigned

Tilldela behörigheter

Du måste tilldela några behörigheter via RBAC till valvet (representeras av valvets MSI) och relevant disk och/eller disk-RG. Dessa kan utföras via Azure Portal eller CLI. Information om hur du tilldelar relaterade behörigheter finns i kraven för att konfigurera säkerhetskopiering av hanterade diskar.

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, disk och resursgrupp för ögonblicksbilder med hjälp av kommandot az dataprotection backup-instance initialize . Kommandot initialisera returnerar en JSON-fil och sedan måste du uppdatera resursgruppsvärdet för ögonblicksbilden. Sedan skickar vi begäran för att skydda disken med kommandot 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

Öppna JSON-filen och redigera resursgrupps-ID:t för ögonblicksbilder resource_group_id i avsnittet data_store_parameters_list under.

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

Kommentar

Namnet på säkerhetskopieringsinstansen genereras av klienter så att detta blir ett unikt värde. Den baseras på datakällans namn och ett unikt GUID. När du har listat säkerhetskopieringsinstanserna bör du kunna kontrollera namnet på säkerhetskopieringsinstansen och det relevanta datakällans namn.

Använd den redigerade JSON-filen för att skapa en säkerhetskopieringsinstans av Azure Managed Disk.

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

När säkerhetskopieringsinstansen har skapats kan du fortsätta att utlösa en säkerhetskopiering på begäran om du inte vill vänta på att principen är schemalagd.

Köra en säkerhetskopiering på begäran

Visa en lista över alla säkerhetskopieringsinstanser i ett valv med kommandot az dataprotection backup-instance list och hämta sedan relevant instans med kommandot az dataprotection backup-instance show . För scenarier i stor skala kan du också lista säkerhetskopieringsinstanser över valv och prenumerationer med kommandot 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
  }
]

Du kan ange en regel och ett taggnamn när du utlöser säkerhetskopiering. Om du vill visa reglerna i principen tittar du igenom principens JSON. I följande exempel visas regeln med namnet "BackupDaily", och taggnamnet "default" , och vi använder den regeln för säkerhetskopiering på begäran.

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

Utlös en säkerhetskopiering på begäran med kommandot 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"

Spåra jobb

Spåra alla jobb med kommandot az dataprotection job list . Du kan visa en lista över alla jobb och hämta en viss jobbinformation.

Du kan också använda Az.ResourceGraph för att spåra alla jobb i alla Backup-valv. Använd kommandot az dataprotection job list-from-resourcegraph för att hämta det relevanta jobb som kan finnas i valfritt säkerhetskopieringsvalv.

az dataprotection job list-from-resourcegraph --datasource-type AzureDisk --status Completed

Gå vidare

Återställa Azure Managed Disks med Hjälp av Azure CLI