Fazer backup de um compartilhamento de arquivos do Azure usando o PowerShell

Este artigo descreve como usar o Azure PowerShell para fazer backup de um compartilhamento de arquivos do Azure Files por meio de um cofre dos Serviços de Recuperação de Backup do Azure.

Este artigo explica como:

  • Configure o PowerShell e registre o provedor de Serviços de Recuperação.
  • Crie um cofre dos Serviços de Recuperação.
  • Configure o backup para um compartilhamento de arquivos do Azure.
  • Execute um trabalho de backup.

Antes de começar

  • Saiba mais sobre os cofres dos Serviços de Recuperação.

  • Analise a referência de referência do cmdlet Az.RecoveryServices na biblioteca do Azure.

  • Analise a seguinte hierarquia de objetos do PowerShell para Serviços de Recuperação:

    Hierarquia de objetos dos Serviços de Recuperação

Configurar o PowerShell

Nota

Recomendamos que utilize o módulo Azure Az do PowerShell para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.

Nota

Atualmente, o Azure PowerShell não oferece suporte a políticas de backup com agendamento por hora. Use o Portal do Azure para aproveitar esse recurso. Mais informações

Configure o PowerShell da seguinte maneira:

  1. Baixe a versão mais recente do Azure PowerShell.

    Nota

    A versão mínima do PowerShell necessária para backup de compartilhamentos de arquivos do Azure é Az.RecoveryServices 2.6.0. Usar a versão mais recente, ou pelo menos a versão mínima, ajuda a evitar problemas com scripts existentes. Instale a versão mínima usando o seguinte comando do PowerShell:

    Install-module -Name Az.RecoveryServices -RequiredVersion 2.6.0
    
  2. Encontre os cmdlets do PowerShell para o Backup do Azure usando este comando:

    Get-Command *azrecoveryservices*
    
  3. Analise os aliases e cmdlets do Backup do Azure, do Azure Site Recovery e do cofre dos Serviços de Recuperação. Aqui está um exemplo do que você pode ver. Não é uma lista completa de cmdlets.

    Lista de cmdlets dos Serviços de Recuperação

  4. Entre na sua conta do Azure usando Connect-AzAccount.

  5. Na página Web apresentada, ser-lhe-á pedido que introduza as credenciais da sua conta.

    Como alternativa, você pode incluir suas credenciais de conta como um parâmetro no cmdlet Connect-AzAccount usando -Credential.

    Se você for um parceiro CSP trabalhando em nome de um locatário, especifique o cliente como locatário. Use seu ID de locatário ou nome de domínio principal do locatário. Um exemplo é Connect-AzAccount -Tenant "fabrikam.com".

  6. Associe a subscrição que pretende utilizar à conta, porque uma conta pode ter várias subscrições:

    Select-AzSubscription -SubscriptionName $SubscriptionName
    
  7. Se você estiver usando o Backup do Azure pela primeira vez, use o cmdlet Register-AzResourceProvider para registrar o provedor de Serviços de Recuperação do Azure com sua assinatura:

    Register-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
    
  8. Verifique se os provedores se registraram com êxito:

    Get-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
    
  9. Na saída do comando, verifique se RegistrationState muda para Registered. Caso contrário, execute o cmdlet Register-AzResourceProvider novamente.

Criar um cofre dos Serviços de Recuperação

O cofre dos Serviços de Recuperação é um recurso do Gerenciador de Recursos, portanto, você deve colocá-lo em um grupo de recursos. Você pode usar um grupo de recursos existente ou criar um grupo de recursos usando o cmdlet New-AzResourceGroup . Ao criar um grupo de recursos, especifique o nome e o local para ele.

Siga estas etapas para criar um cofre dos Serviços de Recuperação:

  1. Se você não tiver um grupo de recursos existente, crie um novo usando o cmdlet New-AzResourceGroup . Neste exemplo, criamos um grupo de recursos na região Oeste dos EUA:

    New-AzResourceGroup -Name "test-rg" -Location "West US"
    
  2. Use o cmdlet New-AzRecoveryServicesVault para criar o cofre. Especifique o mesmo local para o cofre que você usou para o grupo de recursos.

    New-AzRecoveryServicesVault -Name "testvault" -ResourceGroupName "test-rg" -Location "West US"
    

Ver os cofres numa subscrição

Para exibir todos os cofres na assinatura, use Get-AzRecoveryServicesVault:

Get-AzRecoveryServicesVault

A saída é semelhante à seguinte. Observe que a saída fornece o grupo de recursos associado e o local.

Name              : Contoso-vault
ID                : /subscriptions/1234
Type              : Microsoft.RecoveryServices/vaults
Location          : WestUS
ResourceGroupName : Contoso-docs-rg
SubscriptionId    : 1234-567f-8910-abc
Properties        : Microsoft.Azure.Commands.RecoveryServices.ARSVaultProperties

Definir o contexto do cofre

Armazene o objeto do vault em uma variável e defina o contexto do vault.

Muitos cmdlets do Backup do Azure exigem o objeto vault dos Serviços de Recuperação como entrada, por isso é conveniente armazenar o objeto vault em uma variável.

O contexto do cofre é o tipo de dados protegidos no cofre. Defina-o usando Set-AzRecoveryServicesVaultContext. Depois que o contexto é definido, ele se aplica a todos os cmdlets subsequentes.

O exemplo a seguir define o contexto do vault para testvault:

Get-AzRecoveryServicesVault -Name "testvault" | Set-AzRecoveryServicesVaultContext

Buscar o ID do cofre

Planejamos substituir a configuração de contexto do cofre de acordo com as diretrizes do Azure PowerShell. Em vez disso, você pode armazenar ou buscar o ID do cofre e passá-lo para comandos relevantes. Se você não definiu o contexto do vault ou deseja especificar o comando a ser executado para um determinado vault, passe o ID do vault para -vaultID todos os comandos relevantes da seguinte maneira:

$vaultID = Get-AzRecoveryServicesVault -ResourceGroupName "Contoso-docs-rg" -Name "testvault" | select -ExpandProperty ID
New-AzRecoveryServicesBackupProtectionPolicy -Name "NewAFSPolicy" -WorkloadType "AzureFiles" -RetentionPolicy $retPol -SchedulePolicy $schPol -VaultID $vaultID

Configurar uma política de backup

Uma política de backup especifica o agendamento de backups e por quanto tempo os pontos de recuperação de backup devem ser mantidos.

Uma política de backup está associada a pelo menos uma política de retenção. Uma política de retenção define por quanto tempo um ponto de recuperação é mantido antes de ser excluído. Você pode configurar backups com retenção diária, semanal, mensal ou anual. Com a política de vários backups, você também pode configurar a retenção de backups por hora.

Escolha um tipo de política:

Aqui estão alguns cmdlets para políticas de backup:

Por padrão, uma hora de início é definida no objeto de política de agendamento. Use o exemplo a seguir para alterar a hora de início para a hora de início desejada. A hora de início desejada deve estar em Tempo Universal Coordenado (UTC). O exemplo pressupõe que a hora de início desejada é 01:00 AM UTC para backups diários.

$schPol = Get-AzRecoveryServicesBackupSchedulePolicyObject -WorkloadType "AzureFiles"
$UtcTime = Get-Date -Date "2019-03-20 01:30:00Z"
$UtcTime = $UtcTime.ToUniversalTime()
$schpol.ScheduleRunTimes[0] = $UtcTime

Importante

Você precisa fornecer a hora de início em múltiplos de 30 minutos apenas. No exemplo anterior, pode ser apenas "01:00:00" ou "02:30:00". A hora de início não pode ser "01:15:00".

O exemplo a seguir armazena a política de agendamento e a política de retenção em variáveis. Em seguida, usa essas variáveis como parâmetros para uma nova política (NewAFSPolicy). NewAFSPolicy faz um backup diário e o retém por 30 dias.

$schPol = Get-AzRecoveryServicesBackupSchedulePolicyObject -WorkloadType "AzureFiles"
$retPol = Get-AzRecoveryServicesBackupRetentionPolicyObject -WorkloadType "AzureFiles"
New-AzRecoveryServicesBackupProtectionPolicy -Name "NewAFSPolicy" -WorkloadType "AzureFiles" -RetentionPolicy $retPol -SchedulePolicy $schPol

O resultado é semelhante ao seguinte:

Name                 WorkloadType       BackupManagementType BackupTime                DaysOfWeek
----                 ------------       -------------------- ----------                ----------
NewAFSPolicy           AzureFiles            AzureStorage              10/24/2019 1:30:00 AM

Habilitar o backup

Depois de definir a política de backup, você pode habilitar a proteção para o compartilhamento de arquivos do Azure usando a política.

Recuperar uma política de backup

Você busca o objeto de política relevante usando Get-AzRecoveryServicesBackupProtectionPolicy. Use este cmdlet para exibir as políticas associadas a um tipo de carga de trabalho ou para obter uma política específica.

Recuperar uma política para um tipo de carga de trabalho

O exemplo a seguir recupera políticas para o tipo de carga de trabalho AzureFiles:

Get-AzRecoveryServicesBackupProtectionPolicy -WorkloadType "AzureFiles"

O resultado é semelhante ao seguinte:

Name                 WorkloadType       BackupManagementType BackupTime                DaysOfWeek
----                 ------------       -------------------- ----------                ----------
dailyafs             AzureFiles         AzureStorage         1/10/2018 12:30:00 AM

Nota

O fuso horário do campo BackupTime no PowerShell está em UTC. Quando a hora de backup é mostrada no portal do Azure, a hora é ajustada ao seu fuso horário local.

Recuperar uma política específica

A política a seguir recupera a política de backup chamada dailyafs:

$afsPol =  Get-AzRecoveryServicesBackupProtectionPolicy -Name "dailyafs"

Habilitar a proteção e aplicar a política

Habilite a proteção usando Enable-AzRecoveryServicesBackupProtection. Depois que a política é associada ao cofre, os backups são acionados de acordo com o cronograma da política.

O exemplo a seguir habilita a proteção para o compartilhamento de arquivos do Azure testAzureFS na conta de armazenamento testStorageAcct, com a política dailyafs:

Enable-AzRecoveryServicesBackupProtection -StorageAccountName "testStorageAcct" -Name "testAzureFS" -Policy $afsPol

O comando aguarda até que o trabalho de proteção de configuração seja concluído e fornece uma saída semelhante ao exemplo a seguir:

WorkloadName       Operation            Status                 StartTime                                                                                                         EndTime                   JobID
------------             ---------            ------               ---------                                  -------                   -----
testAzureFS       ConfigureBackup      Completed            11/12/2018 2:15:26 PM     11/12/2018 2:16:11 PM     ec7d4f1d-40bd-46a4-9edb-3193c41f6bf6

Para obter mais informações sobre como obter uma lista de compartilhamentos de arquivos para uma conta de armazenamento, consulte este artigo.

Aviso importante: Identificação do item de backup

Esta seção descreve uma alteração importante nos backups de compartilhamentos de arquivos do Azure em preparação para a disponibilidade geral.

Ao habilitar um backup para compartilhamentos de arquivos do Azure, o usuário dá ao cliente um nome de compartilhamento de arquivos como o nome da entidade e um item de backup é criado. O nome do item de backup é um identificador exclusivo que o serviço de Backup do Azure cria. Normalmente, o identificador é um nome de fácil utilização. Mas para lidar com o cenário de exclusão suave, onde um compartilhamento de arquivos pode ser excluído e outro compartilhamento de arquivos pode ser criado com o mesmo nome, a identidade exclusiva de um compartilhamento de arquivos do Azure agora é uma ID.

Para saber a ID exclusiva de cada item, execute o comando Get-AzRecoveryServicesBackupItem com os filtros relevantes para backupManagementType e WorkloadType para obter todos os itens relevantes. Em seguida, observe o campo de nome no objeto/resposta do PowerShell retornado.

Recomendamos que você liste itens e, em seguida, recupere seu nome exclusivo no campo de nome na resposta. Use esse valor para filtrar os itens com o parâmetro Name . Caso contrário, use o parâmetro FriendlyName para recuperar o item com sua ID.

Importante

Verifique se o PowerShell foi atualizado para a versão mínima (Az.RecoveryServices 2.6.0) para backups de compartilhamentos de arquivos do Azure. Com esta versão, o filtro FriendlyName está disponível para o comando Get-AzRecoveryServicesBackupItem .

Passe o nome do compartilhamento de arquivos do Azure para o parâmetro FriendlyName . Se você passar o nome do compartilhamento de arquivos para o parâmetro Name , esta versão lançará um aviso para passar o nome para o parâmetro FriendlyName .

Não instalar a versão mínima pode resultar em uma falha de scripts existentes. Instale a versão mínima do PowerShell usando o seguinte comando:

Install-module -Name Az.RecoveryServices -RequiredVersion 2.6.0

Acionar um backup sob demanda

Use Backup-AzRecoveryServicesBackupItem para executar um backup sob demanda para um compartilhamento de arquivos protegido do Azure:

  1. Recupere a conta de armazenamento do contêiner no cofre que contém seus dados de backup usando Get-AzRecoveryServicesBackupContainer.
  2. Para iniciar um trabalho de backup, obtenha informações sobre o compartilhamento de arquivos do Azure usando Get-AzRecoveryServicesBackupItem.
  3. Execute um backup sob demanda usando Backup-AzRecoveryServicesBackupItem.

Execute o backup sob demanda da seguinte maneira:

$afsContainer = Get-AzRecoveryServicesBackupContainer -FriendlyName "testStorageAcct" -ContainerType AzureStorage
$afsBkpItem = Get-AzRecoveryServicesBackupItem -Container $afsContainer -WorkloadType "AzureFiles" -FriendlyName "testAzureFS"
$job =  Backup-AzRecoveryServicesBackupItem -Item $afsBkpItem

O comando retorna um trabalho com uma ID a ser rastreada, conforme mostrado no exemplo a seguir:

WorkloadName     Operation            Status               StartTime                 EndTime                   JobID
------------     ---------            ------               ---------                 -------                   -----
testAzureFS       Backup               Completed            11/12/2018 2:42:07 PM     11/12/2018 2:42:11 PM     8bdfe3ab-9bf7-4be6-83d6-37ff1ca13ab6

Os instantâneos de compartilhamento de arquivos do Azure são usados enquanto os backups são feitos. Normalmente, o trabalho termina no momento em que o comando retorna essa saída.

Próximos passos