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:
Configurar o PowerShell
Observação
Recomendamos que você use o módulo Az PowerShell do Azure para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. 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:
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
Encontre os cmdlets do PowerShell para o Backup do Azure usando este comando:
Get-Command *azrecoveryservices*
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.
Entre em sua conta do Azure usando Connect-AzAccount.
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" .
Associe a assinatura que deseja usar com a conta, porque uma conta pode ter várias assinaturas:
Select-AzSubscription -SubscriptionName $SubscriptionName
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"
Verifique se os provedores foram registrados com êxito:
Get-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
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:
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"
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.
Importante
Os seguintes cmdlets são usados para as 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
. Forneça os objetos de política de agendamento e retenção como entradas.
Para criar uma política de backup que configure vários backups por dia, siga estas etapas:
Busque o objeto de política de agendamento usando o cmdlet abaixo:
$schPol=Get-AzRecoveryServicesBackupSchedulePolicyObject -WorkloadType AzureFiles -BackupManagementType AzureStorage -ScheduleRunFrequency Hourly $schPol
A saída deverá ser semelhante a:
ScheduleRunFrequency : Hourly ScheduleRunDays : ScheduleRunTimes : ScheduleInterval : 8 ScheduleWindowStartTime : 12/22/2021 8:00:00 AM ScheduleWindowDuration : 16 ScheduleRunTimeZone : India Standard Time
Defina os diferentes parâmetros da agenda conforme necessário.
$schpol.ScheduleInterval=4 $schpol.ScheduleWindowDuration=12
A configuração anterior ajuda a agendar 4 backups por dia em uma janela das 8h às 20h (8h+ 12h). Você também pode definir o fuso horário conforme mencionado no cmdlet a seguir:
$timeZone= $timeZone=Get-TimeZone -ListAvailable |Where-Object{$_.Id-match "Russia Time Zone 11"} $schPol.ScheduleRunTimeZone=$timeZone.Id
Para criar uma política com programação diária, execute o seguinte cmdlet:
$UtcTime = Get-Date -Date "2019-03-20 01:30:00Z" $UtcTime = $UtcTime.ToUniversalTime() $schpol.ScheduleRunTimes[0] = $UtcTime
Busque o objeto de política de retenção usando o seguinte cmdlet:
$retPol=Get-AzRecoveryServicesBackupRetentionPolicyObject -WorkloadType AzureFiles -BackupManagementType AzureStorage -ScheduleRunFrequency Hourly
Defina os valores de retenção conforme necessário.
$retPol.DailySchedule.DurationCountInDays=15
Crie uma nova política de backup usando New-AzRecoveryServicesBackupProtectionPolicy.
É possível passar o agendamento e os objetos de política de retenção definidos anteriormente como entradas.
New-AzRecoveryServicesBackupProtectionPolicy -Name "FilesPolicytesting" -WorkloadType AzureFiles -RetentionPolicy $retpol -SchedulePolicy $schpol
A saída exibe a configuração da política:
Name WorkloadType BackupManagementType ScheduleFrequency BackupTime WindowStartTime Interval WindowDuration TimeZone (UTC) (Hours) ---- ------------ -------------------- ----------------- ------------ --------------- -------- -------------- -------- FilesPolicy testing AzureFiles AzureStorage Hourly 12/22/2021 8:00:00 AM 4 12 Russia Time Zone 11
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:
- Recupere a conta de armazenamento do contêiner no cofre que contém os dados de backup usando Get-AzRecoveryServicesBackupContainer.
- Para iniciar um trabalho de backup, obtenha informações sobre o compartilhamento de arquivos do Azure usando GetAzRecoveryServicesBackupItem.
- 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
- Saiba mais sobre como fazer backup de 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.