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 um arquivo do Arquivos do Azure 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.
  • Configurar o backup para um compartilhamento de arquivos do Azure.
  • Execute um trabalho de backup.

Antes de começar

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

  • Examine a referência dereferência do cmdlet AZ.Recoveryservices na biblioteca do Azure.

  • Examine a seguinte hierarquia de objeto do PowerShell para Serviços de recuperação:

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

Configurar o PowerShell

Observação

Recomendamos que você use o módulo Az PowerShell do Azure para interagir com o Azure. Confira Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo Az PowerShell, confira Migrar o Azure PowerShell do AzureRM para o Az.

Observação

Atualmente, o Azure PowerShel não suporta políticas de backup com agendamento por hora. Use o Portal do Azure para aproveitar esse recurso. Saiba mais

Configurar o PowerShell conforme a seguir:

  1. Baixe a última versão do Azure PowerShell.

    Observação

    A versão mínima do PowerShell necessária para o 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. Examine os aliases e os cmdlets do Backup do Azure, do Azure Site Recovery e do cofre do Recovery Services. Aqui está um exemplo do que você pode ver. Esta não é a lista completa dos cmdlets.

    Listar cmdlets dos Serviços de Recuperação

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

  5. Na página da Web que aparece, você será solicitado a inserir as credenciais de sua conta.

    Como alternativa, é possível incluir as credenciais de conta como um parâmetro no cmdlet Connect-AzAccount ao usar o parâmetro -Credential.

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

  6. Associe a assinatura que deseja usar com a conta, porque uma conta pode ter várias assinaturas:

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

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

    Get-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
    
  9. Na saída do comando, verifique se o RegistrationState se altera para Registrado. Se isso não ocorrer, execute novamente o cmdlet Register-AzResourceProvider.

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

O cofre dos Serviços de Recuperação é um recurso do Resource Manager e, portanto, deverá ser colocado em um grupo de recursos. É possível usar um grupo de recursos existente ou criar um grupo de recursos com o cmdlet New-AzResourceGroup. Ao criar um grupo de recursos, especifique o nome e o local.

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

  1. Caso não tenha um grupo de recursos existente, crie um novo com o cmdlet New-AzResourceGroup. Neste exemplo, criaremos 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 usado para o grupo de recursos.

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

Exibir os cofres em uma assinatura

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

Get-AzRecoveryServicesVault

A saída deverá ser semelhante à seguinte. Observe que a saída fornece o grupo de recursos e o local associados.

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 cofre em uma variável e defina o contexto do cofre.

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

O contexto do cofre é o tipo de dados protegido no cofre. Defina-o usando set-AzRecoveryServicesVaultContext. Depois que o contexto estiver definido, ele se aplicará a todos os cmdlets subsequentes.

O exemplo a seguir define o contexto de cofre de testvault:

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

Buscar a ID do cofre

Planejamos substituir a configuração de contexto do cofre de acordo com as diretrizes do Azure PowerShell. Em vez disso, é possível armazenar ou buscar a ID do cofre e passá-la para comandos relevantes. Portanto, se não tiver definido o contexto do cofre ou quiser especificar o comando a ser executado para um determinado cofre, passe a ID do cofre como -vaultID para todo comando relevante, 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 até ser excluído. É possível 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.

Escolher 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 agenda. Use o exemplo a seguir para alterar a hora de início para a hora desejada. A hora de início desejada deve estar no Horário Coordenado Universal (UTC). O exemplo pressupõe que a hora de início desejada seja 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

A hora de início só pode ser definida usando intervalos de 30 minutos. No exemplo anterior, ele pode ser apenas "01:00:00" ou "02:30:00". Mas 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, ele usa essas variáveis como parâmetros para uma nova política (NewAFSPolicy). NewAFSPolicy faz um backup diário e os 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

A saída deverá ser semelhante a esta:

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

Habilitar backup

Após definir a política de backup, poderá habilitar a proteção para o compartilhamento de arquivos do Azure com essa política.

Recuperar uma política de backup

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

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

O exemplo a seguir obtém as políticas para o tipo de carga de trabalho AzureFiles:

Get-AzRecoveryServicesBackupProtectionPolicy -WorkloadType "AzureFiles"

A saída deverá ser semelhante a esta:

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

Observação

O fuso horário do campo BackupTime no PowerShell é o UTC. Quando a hora de backup é mostrada no Portal do Azure, o horário é ajustado para 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 estiver associada ao cofre, os backups serão disparados de acordo com o agendamento 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 configure-protection seja concluído e forneça 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 disponibilidade geral.

Ao habilitar um backup para compartilhamentos de arquivos do Azure, o usuário fornece ao cliente um nome de compartilhamento de arquivo 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 amigável para o usuário. Mas para lidar com o cenário de exclusão reversível, em que 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 nome no objeto/resposta do PowerShell retornado.

É recomendável que liste itens e, em seguida, recupere seu nome exclusivo do campo 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 essa 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 passar o nome do compartilhamento de arquivos para o parâmetro Name, essa 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 dos scripts existentes. Instale a versão mínima do PowerShell usando o seguinte comando:

Install-module -Name Az.RecoveryServices -RequiredVersion 2.6.0

Disparar um backup sob demanda

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

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

Execute um trabalho de backup sob demanda como a seguir:

$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, como 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 é concluído no momento em que o comando retorna essa saída.

Próximas etapas