Säkerhetskopiera alla Azure-blobar i ett lagringskonto med hjälp av Azure PowerShell

Den här artikeln beskriver hur du säkerhetskopierar alla Azure-blobar i ett lagringskonto med hjälp av Azure PowerShell. Nu kan du utföra operativa och valvsäkerhetskopior för att skydda blockblobar i dina lagringskonton med Azure Backup. Du kan också konfigurera säkerhetskopiering med hjälp av REST API

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

Viktigt!

Stöd för Azure-blobar är tillgängligt från version Az 5.9.0.

Innan du börjar

Se förhandskraven och supportmatrisen innan du kommer igång.

Skapa ett säkerhetskopieringsvalv

Ett säkerhetskopieringsvalv är en lagringsentitet i Azure som innehåller säkerhetskopieringsdata för olika nyare arbetsbelastningar som Stöds av Azure Backup, till exempel Azure Database for PostgreSQL-servrar och Azure-blobar. 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 med att skapa säkerhetskopieringsvalvet med lagringsredundansen och platsen. I den här artikeln kommer vi att skapa ett säkerhetskopieringsvalv TestBkpVault i regionen westus, under resursgruppen testBkpVaultRG. Använd kommandot New-AzDataProtectionBackupVault för att skapa ett säkerhetskopieringsvalv. Läs mer om att skapa ett säkerhetskopieringsvalv.

$storageSetting = New-AzDataProtectionBackupVaultStorageSettingObject -Type LocallyRedundant/GeoRedundant -DataStoreType VaultStore

New-AzDataProtectionBackupVault -ResourceGroupName testBkpVaultRG -VaultName TestBkpVault -Location westus -StorageSetting $storageSetting
$TestBkpVault = Get-AzDataProtectionBackupVault -VaultName TestBkpVault
$TestBKPVault | fl
ETag                :
Id                  : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault
Identity            : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.DppIdentityDetails
IdentityPrincipalId :
IdentityTenantId    :
IdentityType        :
Location            : westus
Name                : TestBkpVault
ProvisioningState   : Succeeded
StorageSetting      : {Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.StorageSetting}
SystemData          : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.SystemData
Tag                 : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.DppTrackedResourceTags
Type                : Microsoft.DataProtection/backupVaults

När valvet har skapats ska vi skapa en säkerhetskopieringsprincip för att skydda Azure-blobar.

Viktigt!

Även om du ser redundans i säkerhetskopieringslagringen i valvet, gäller denna redundans inte för den operativa säkerhetskopian av blobar eftersom denna säkerhetskopia är lokal och inga data lagras i säkerhetskopieringsvalvet. Här är säkerhetskopieringsvalvet den hanteringsentitet som hjälper dig att hantera skyddet av blockblobbar i dina lagringskonton.

Skapa en säkerhetskopieringsprincip

Välj en säkerhetskopieringsnivå:

Viktigt!

Läs det här avsnittet innan du fortsätter att skapa principen och konfigurera säkerhetskopior för Azure-blobar.

Om du vill förstå de inre komponenterna i en säkerhetskopieringsprincip för Azure Blob Backup hämtar du principmallen med kommandot Get-AzDataProtectionPolicyTemplate . 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.

$policyDefn = Get-AzDataProtectionPolicyTemplate -DatasourceType AzureBlob
$policyDefn | fl


DatasourceType : {Microsoft.Storage/storageAccounts/blobServices}
ObjectType     : BackupPolicy
PolicyRule     : {Default}

$policyDefn.PolicyRule | fl

IsDefault  : True
Lifecycle  : {Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api202101.SourceLifeCycle}
Name       : Default
ObjectType : AzureRetentionRule

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

$policyDefn.PolicyRule.Lifecycle | fl


DeleteAfterDuration        : P30D
DeleteAfterObjectType      : AbsoluteDeleteOption
SourceDataStoreObjectType  : DataStoreInfoBase
SourceDataStoreType        : OperationalStore
TargetDataStoreCopySetting :

Anmärkning

Återställning över 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 som tagits bort per dag ungefär två timmar för att återställa till en punkt 30 dagar tidigare.

Vi rekommenderar inte en kvarhållningsperiod eller återställning längre tillbaka än 90 dagar för ett konto med den här ändringstakten.

När principobjektet har alla önskade värden fortsätter du med att skapa en ny princip från principobjektet med kommandot New-AzDataProtectionBackupPolicy .

New-AzDataProtectionBackupPolicy -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name blobBkpPolicy -Policy $policyDefn

Name                   Type
----                   ----
blobBkpPolicy       Microsoft.DataProtection/backupVaults/backupPolicies

$blobBkpPol = Get-AzDataProtectionBackupPolicy -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "blobBkpPolicy"

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 Blobs i ett lagringskonto.

  • Nyckelentiteter
  • Behörigheter

Nyckelentiteter

  • 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 PSTestSA under resursgruppens blobrg i en annan prenumeration.

    $SAId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/PSTestSA"
    
  • Säkerhetskopieringsvalv: Säkerhetskopieringsvalvet kräver behörigheter för lagringskontot för att aktivera säkerhetskopior på 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 Azure RBAC till det skapade valvet (representerat av valvet 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 om att konfigurera blobsäkerhetskopiering

Välj en säkerhetskopieringsnivå:

När alla relevanta behörigheter har angetts utförs konfigurationen av säkerhetskopieringen i två steg. Först förbereder vi den relevanta begäran genom att använda det relevanta valvet, policyn och lagringskontot med kommandot Initialize-AzDataProtectionBackupInstance. Sedan skickar vi begäran om att skydda blobarna i lagringskontot med kommandot New-AzDataProtectionBackupInstance .

$instance = Initialize-AzDataProtectionBackupInstance -DatasourceType AzureBlob -DatasourceLocation $TestBkpvault.Location -PolicyId $blobBkpPol[0].Id -DatasourceId $SAId 
New-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstance $instance

Name                                                       Type                                                  BackupInstanceName
----                                                       ----                                                  ------------------
blobrg-PSTestSA-3df6ac08-9496-4839-8fb5-8b78e594f166 Microsoft.DataProtection/backupVaults/backupInstances blobrg-PSTestSA-3df6ac08-9496-4839-8fb5-8b78e594f166

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.

Uppdatera en säkerhetskopieringsinstans

När du har konfigurerat säkerhetskopieringen kan du ändra den associerade principen med en säkerhetskopieringsinstans. För säkerhetskopior i valv kan du också ändra de containrar som valts för säkerhetskopiering.

Om du vill uppdatera säkerhetskopieringsinstansen kör du följande cmdletar:

  1. Kontrollera om säkerhetskopieringsinstansen är redo att konfigurera säkerhetskopiering med hjälp av kommandot Test-AzDataProtectionBackupInstanceReadiness . Kommandot misslyckas om säkerhetskopieringsinstansen inte är klar.

    Du kan också använda det här kommandot för att kontrollera om säkerhetskopieringsvalvet har alla nödvändiga behörigheter för att konfigurera säkerhetskopiering.

  2. Ändra den princip som används för att säkerhetskopiera Azure Blobs med hjälp av Update-AzDataProtectionBackupInstance. Ange relevant säkerhetskopieringsobjekt och den nya säkerhetskopieringsprincipen.

  3. Uppdatera policyn eller de nya containrarna för befintliga säkerhetskopieringsobjekt.

    1. Skapa lagringskontokontexten med hjälp av cmdleten New-AzStorageContext . Ange parametern -UseConnectedAccount så att dataåtgärder utförs med dina Microsoft Entra-autentiseringsuppgifter. Läs mer om kommandona för lagringskontot.

      Create a context object using Azure AD credentials
      $ctx = New-AzStorageContext -StorageAccountName xxx -UseConnectedAccount 
      
      
    2. Hämta lagringscontainrarna med hjälp av cmdleten Get-AzStorageContainer . Ange parameter -Name för att hämta en enda container. Om du vill returnera en lista över containrar som börjar med en viss teckensträng anger du ett värde för parametern -Prefix .

    I följande exempel hämtas både en enskild container och en lista över containerresurser:

    
    
    # Create variables
    $containerName  = "individual-container"
    $prefixName     = "loop-"
    
    # Approach 1: Retrieve an individual container
    Get-AzStorageContainer -Name $containerName -Context $ctx
    Write-Host
    
    # Approach 2: Retrieve a list of containers
    $targetContainers = Get-AzStorageContainer -Context $ctx | Where-Object { $_.Name -match "cont" } 
    

    Resultatet ger URI för blobslutpunkten och visar en lista över containrar som hämtats med namn och prefix:

    Storage Account Name: demostorageaccount
    
    Name                 PublicAccess         LastModified                   IsDeleted  VersionId        
    ----                 ------------         ------------                   ---------  ---------        
    individual-container                      11/2/2021 5:52:08 PM +00:00                                
    
    loop-container1                           11/2/2021 12:22:00 AM +00:00                               
    loop-container2                           11/2/2021 12:22:00 AM +00:00                               
    
    loop-container1                           11/2/2021 12:22:00 AM +00:00                               
    loop-container2                           11/2/2021 12:22:00 AM +00:00
    loop-container3                           11/2/2021 12:22:00 AM +00:00   True       01D7E7129FDBD7D4
    loop-container4                           11/2/2021 12:22:00 AM +00:00   True       01D7E8A5EF01C787 
    
    1. Hämta den säkerhetskopieringsinstans som måste uppdateras.

      C:\Users\testuser> $instance = Search-AzDataProtectionBackupInstanceInAzGraph -Subscription "Demosub" -ResourceGroup Demo-BCDR-RG -Vault BCDR-BV-EastUS -DatasourceType AzureBlob
      PS C:\Users\testuser> $instance
                     Output
      Name                                                                     BackupInstanceName
      ----                                                                     ------------------
      blobsa-blobsa-c7325e08-980d-43b2-863f-68feee4fd03c               blobsa-blobsa-c7325e08-980d-43b2-863f-68feee4fd03c
      blobsavaulted-blobsavaulted-40c36519-f422-45aa-bbeb-3f0eedb440c7 blobsavaulted-blobsavaulted-40c36519-f422-45aa-bbeb-3f0eedb440c7
      testdpp-testdpp-ff4254dd-7a70-437b-9a10-8c0d2223d037                     testdpp-testdpp-ff4254dd-7a70-437b-9a10-8c0d2223d037
      
      
    2. Hämta säkerhetskopieringsprincipen med namnet på den valvprincip som du vill uppdatera i Säkerhetskopieringsinstansen. Du kan också hämta den nya policyn som ska uppdateras i Backup-instansen.

      $updatePolicy = Get-AzDataProtectionBackupPolicy -SubscriptionId "Demosub" -VaultName BCDR-BV-EastUS -ResourceGroupName Demo-BCDR-RG -name continer-1
      
    3. Uppdatera säkerhetskopieringsinstansen med en ny lista över containrar (befintliga säkerhetskopierade containrar och nya containrar).

      PS C:\Users\testuser> $updateBI = Update-AzDataProtectionBackupInstance -ResourceGroupName Daya-BCDR-RG -VaultName DPBCDR-BV-EastUS -BackupInstanceName $instance[0].Name -SubscriptionId "ef4ab5a7-c2c0-4304-af80-af49f48af3d1"  -PolicyId $updatePolicy.id -VaultedBackupContainer $targetContainers.name
      
      
      PS C:\Users\testuser> $updateBI.Property.PolicyInfo.PolicyId
      /subscriptions/ef4ab5a7-c2c0-4304-af80-af49f48af3d1/resourceGroups/Daya-BCDR-RG/providers/Microsoft.DataProtection/backupVaults/DPBCDR-BV-EastUS/backupPolicies/continerdeltest-1
      PS C:\Users\testuser> $updateBI.Property.PolicyInfo.PolicyParameter.BackupDatasourceParametersList[0].ContainersList
      cont-01
      cont-02
      cont-03
      cont-04
      cont-05
      cont-06
      cont-07
      cont-08
      cont-09
      cont-10
      cont-11
      

Nästa steg

Återställa Azure-blobar med Hjälp av Azure PowerShell.

Återställa Azure Blobs med Azure Backup med hjälp av Azure-portalen, Azure CLI, REST API.