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:
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:
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
Encontre os cmdlets do PowerShell para o Backup do Azure usando este comando:
Get-Command *azrecoveryservices*
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.
Entre na sua conta do Azure usando Connect-AzAccount.
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".
Associe a subscrição que pretende utilizar à conta, porque uma conta pode ter várias subscrições:
Select-AzSubscription -SubscriptionName $SubscriptionName
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"
Verifique se os provedores se registraram com êxito:
Get-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
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:
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"
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:
- Exiba a retenção de política de backup padrão usando Get-AzRecoveryServicesBackupRetentionPolicyObject.
- Exiba o agendamento de política de backup padrão usando Get-AzRecoveryServicesBackupSchedulePolicyObject.
- Crie uma nova política de backup usando New-AzRecoveryServicesBackupProtectionPolicy. Você insere os objetos de agenda e política de retenção como entrada.
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:
- Recupere a conta de armazenamento do contêiner no cofre que contém seus dados de backup usando Get-AzRecoveryServicesBackupContainer.
- Para iniciar um trabalho de backup, obtenha informações sobre o compartilhamento de arquivos do Azure usando Get-AzRecoveryServicesBackupItem.
- 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
- Saiba mais sobre como fazer backup dos Arquivos do Azure no portal do Azure.
- Consulte o script de exemplo no GitHub para usar um runbook de Automação do Azure para agendar backups.