Compartilhar via


Fazer backup de todos os blobs do Azure em uma conta de armazenamento usando o Azure PowerShell

Este artigo descreve como fazer backup de todos os blobs do Azure em uma conta de armazenamento usando o Azure PowerShell. Agora você pode realizar backups operacionais e protegidos para proteger blobs de blocos em suas contas de armazenamento usando o Backup do Azure. Você também pode configurar o backup usando a API REST

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

Importante

O suporte para os blobs do Azure está disponível na versão Az 5.9.0.

Antes de começar

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

Criar um cofre de backup

Um cofre de backup é uma entidade de armazenamento no Azure que armazena dados de backup para várias cargas de trabalho mais recentes que o Azure Backup suporta, como servidores do Azure Database para PostgreSQL e blobs 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 New-AzDataProtectionBackupVault para criar um cofre de backup. Saiba mais sobre como criar um cofre de backup.

$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

Após a criação do cofre, vamos criar uma política de backup para proteger os blobs do Azure.

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, pois 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.

Criar uma política de backup

Escolher um nível de backup:

Importante

Leia esta seção antes de prosseguir para criar a política e configurar backups para blobs do Azure.

Para entender os componentes internos de uma política de backup para o backup de blob do Azure, recupere o modelo de política usando o comando Get-AzDataProtectionPolicyTemplate. 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.

$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

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.

$policyDefn.PolicyRule.Lifecycle | fl


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

Observação

Realizar restaurações ao longo de um longo período pode fazer com que as operações de restauração demorem mais para serem concluídas. Além disso, o tempo necessário 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 o objeto de política tiver todos os valores desejados, prossiga para criar uma política com base no objeto de política usando o comando 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"

Configurar cópia de segurança

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 PSTestSA, no grupo de recursos blobrg, em outra assinatura.

    $SAId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/blobrg/providers/Microsoft.Storage/storageAccounts/PSTestSA"
    
  • Cofre do Backup: O cofre do Backup requer permissões na conta de armazenamento para habilitar 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 ao cofre que foi criado (representado pelo MSI do cofre) e à conta de armazenamento relevante, utilizando o RBAC do Azure. 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

Escolher um nível de backup:

Depois que todas as permissões relevantes forem definidas, a configuração do backup será executada em duas etapas. Primeiro, preparamos a solicitação relevante usando o cofre, a política e a conta de armazenamento relevantes por meio do comando Initialize-AzDataProtectionBackupInstance. Em seguida, enviamos a solicitação para proteger os blobs na conta de armazenamento usando o comando 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

Importante

Depois que uma conta de armazenamento é configurada para o backup de blobs, algumas funcionalidades são afetadas, como o feed de alterações e o bloqueio de exclusão. Saiba mais.

Atualizar uma instância de backup

Depois de configurar o backup, você poderá alterar a política associada a uma instância de backup. Para backups em cofre, você também pode alterar os contêineres selecionados para backup.

Para atualizar a instância de backup, execute os seguintes cmdlets:

  1. Valide se a instância de backup está pronta para configurar o backup usando o comando Test-AzDataProtectionBackupInstanceReadiness. O comando falhará se a instância de backup não estiver pronta.

    Você também pode usar esse comando para verificar se o cofre de backup tem todas as permissões necessárias para configurar o backup.

  2. Altere a política usada para fazer backup dos Blobs do Azure usando o Update-AzDataProtectionBackupInstance. Especifique o item de backup relevante e a nova política de backup.

  3. Atualize a política ou os novos contêineres para itens de backup existentes.

    1. Crie o contexto da conta de armazenamento usando o cmdlet New-AzStorageContext. Forneça o parâmetro -UseConnectedAccount para que as operações de dados sejam executadas usando suas credenciais do Microsoft Entra. Saiba mais sobre os comandos da conta de armazenamento.

      Create a context object using Azure AD credentials
      $ctx = New-AzStorageContext -StorageAccountName xxx -UseConnectedAccount 
      
      
    2. Recupere os contêineres de armazenamento usando o cmdlet Get-AzStorageContainer. Para recuperar um único contêiner, forneça o parâmetro -Name. Para retornar uma lista de contêineres que começa com uma determinada sequência de caracteres, especifique um valor para o parâmetro -Prefix.

    O exemplo a seguir recupera um contêiner individual e uma lista de recursos de contêiner:

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

    O resultado fornece o URI do ponto de extremidade do blob e lista os contêineres recuperados por nome e prefixo:

    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. Busque a instância de backup que precisa ser atualizada.

      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. Busque a política de backup com o nome da política de vault que você deseja atualizar na Instância de Backup. Você também pode buscar a nova política que precisa ser atualizada na Instância de Backup.

      $updatePolicy = Get-AzDataProtectionBackupPolicy -SubscriptionId "Demosub" -VaultName BCDR-BV-EastUS -ResourceGroupName Demo-BCDR-RG -name continer-1
      
    3. Atualize a instância de backup com a nova lista de contêineres (os contêineres de backup existentes e os novos contêineres).

      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
      

Próximas etapas

Restaurar os Blobs do Azure usando o Azure PowerShell.

Restaure os Blobs do Azure pelo Backup do Azure usando o portal do Azure, a CLI do Azure, a API REST.