Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo descreve como replicar, fazer failover e failback de máquinas virtuais (VMs) do Azure em execução numa Zona Estendida do Azure para a região principal do Azure.
Importante
A funcionalidade do Azure Site Recovery para Zonas Estendidas está em estado de visualização.
Recuperação de desastres na Zona Estendida do Azure
A Recuperação de Site garante a continuidade dos negócios mantendo as cargas de trabalho em execução durante interrupções, replicando continuamente a carga de trabalho de um local principal para um local secundário. A funcionalidade ASR para Zonas Estendidas está em pré-visualização.
Aqui, o local primário é uma Zona Estendida do Azure e o local secundário é a região pai à qual a Zona Estendida do Azure está conectada.
Importante
- Durante a criação de VM, não oferecemos suporte à replicação na Zona Estendida. Pode ser ativado na VM ou nas páginas do Vault uma vez que a VM seja criada.
- Se estiver a usar uma conta de Armazenamento de Zona Estendida como conta de armazenamento em cache, somente as Contas de Armazenamento Premium de Blob de Blocos serão suportadas.
- Se estiver a usar uma conta de Armazenamento de Zona Estendida como conta de armazenamento em cache, apenas High-Churn é suportado.
Se a conta de armazenamento da região do Azure for usada como conta de armazenamento em cache, há suporte para a rotatividade normal ou alta.
Configurar a recuperação de desastres para VMs em uma Zona Estendida do Azure usando o PowerShell
A seguir estão os pré-requisitos para configurar a recuperação de desastres para VMs em uma Zona Estendida do Azure usando o PowerShell:
Pré-requisitos
Verifique se o módulo Azure Az PowerShell está instalado. Para obter informações sobre como instalar, consulte Instalar o módulo Azure Az PowerShell.
A versão mínima do Azure Az PowerShell deve ser 4.1.0. Use o seguinte comando para ver a versão atual:
Get-InstalledModule -Name AzVerifique se a versão da distro Linux e o kernel são suportados pelo Azure Site Recovery. Para obter mais informações, veja a matriz de suporte.
Replicar máquinas virtuais em execução em uma Zona Estendida do Azure para uma região do Azure
Para replicar VMs em execução em uma Zona Estendida do Azure para uma região do Azure, siga estas etapas:
Nota
Neste exemplo, o local principal é uma Zona Estendida do Azure e o local secundário/de recuperação é a região da Zona Estendida do Azure.
Entre na sua conta do Azure.
Connect-AzAccountSelecione Subscrição correta.
$subscription = Get-AzSubscription -SubscriptionName "<SubscriptionName>" Set-AzContext $subscription.IdObtenha os detalhes da máquina virtual que você planeja replicar.
$VM = Get-AzVM -ResourceGroupName "<ResourceGroupName>" -Name "<VMName>" Write-Output $VMCrie um grupo de recursos para o cofre de serviços de recuperação na região secundária do Azure.
New-AzResourceGroup -Name "edgezonerecoveryrg" -Location "<AzureRegion>"Crie um novo cofre de Serviços de Recuperação na região secundária.
$vault = New-AzRecoveryServicesVault -Name "EdgeZoneRecoveryVault" - ResourceGroupName "edgezonerecovery" -Location "\<EdgeZoneRegion\>" Write-Output $vaultDefina o contexto do cofre.
Set-AzRecoveryServicesAsrVaultContext -Vault $vaultCrie a estrutura de recuperação do site primário.
$TempASRJob = New-AzRecoveryServicesAsrFabric -Azure -Location “<AzureRegion>” - Name "EdgeZoneFabric"Acompanhe o status do trabalho para verificar a conclusão.
while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){Se a tarefa não tiver sido concluída, espere 10 segundos antes de verificar o estado da tarefa novamente.
sleep 10; $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob }Após a conclusão bem-sucedida, o estado do trabalho deve ser bem-sucedido.
Write-Output $TempASRJob.State $PrimaryFabric = Get-AzRecoveryServicesAsrFabric -Name "EdgeZoneFabric"
Use a malha primária para criar contêineres de proteção primária e de recuperação.
$TempASRJob = New-AzRecoveryServicesAsrProtectionContainer -InputObject $PrimaryFabric -Name "EdgeZoneProtectionContainer"Acompanhe o status do trabalho para verificar a conclusão.
while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){ sleep 10; $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob } Write-Output $TempASRJob.StateOs contêineres de proteção primário e de recuperação são criados na região primária (dentro da malha primária).
$PrimaryProtectionContainer = Get-AzRecoveryServicesAsrProtectionContainer -Fabric $primaryFabric -Name "EdgeZoneProtectionContainer" $RecoveryProtectionContainer = Get-AzRecoveryServicesAsrProtectionContainer -Fabric $primaryFabric -Name "EdgeZoneProtectionContainer-t"
Criar uma política de replicação.
$TempASRJob = New-AzRecoveryServicesAsrPolicy -AzureToAzure -Name "ReplicationPolicy" -RecoveryPointRetentionInHours 24 - ApplicationConsistentSnapshotFrequencyInHours 4Acompanhe o status do trabalho para verificar a conclusão.
while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){ sleep 10; $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob }Após a conclusão bem-sucedida, o estado do trabalho deve ser bem-sucedido.
Write-Output $TempASRJob.State $ReplicationPolicy = Get-AzRecoveryServicesAsrPolicy -Name "ReplicationPolicy"
Crie um mapeamento entre o container de proteção principal e o de recuperação utilizando a política de replicação.
$TempASRJob = New-AzRecoveryServicesAsrProtectionContainerMapping -Name "PrimaryToRecovery" -Policy $ReplicationPolicy -PrimaryProtectionContainer $PrimaryProtectionContainer -RecoveryProtectionContainer $RecoveryProtectionContainerAcompanhe o status do trabalho para verificar a conclusão.
while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){ sleep 10; $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob }Após a conclusão bem-sucedida, o estado do trabalho deve ser bem-sucedido.
Write-Output $TempASRJob.State $EdgeZoneToAzurePCMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping - ProtectionContainer $PrimaryProtectionContainer -Name "PrimaryToRecovery"Crie um mapeamento de contêiner de proteção para o processo de failback, entre os contêineres de recuperação e de proteção principal utilizando a política de replicação.
$TempASRJob = New-AzRecoveryServicesAsrProtectionContainerMapping -Name "RecoveryToPrimary" -Policy $ReplicationPolicy -PrimaryProtectionContainer $RecoveryProtectionContainer -RecoveryProtectionContainer $PrimaryProtectionContainerAcompanhe o status do trabalho para verificar a conclusão.
while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){ sleep 10; $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob }Após a conclusão bem-sucedida, o estado do trabalho deve ser Succeeded.
Write-Output $TempASRJob.State $AzureToEdgeZonePCMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping - ProtectionContainer $RecoveryProtectionContainer -Name "RecoveryToPrimary"
Crie uma conta de armazenamento em cache para logs de replicação na região primária. A conta de armazenamento em cache é criada na região primária.
$CacheStorageAccount = New-AzStorageAccount -Name "cachestorage" -ResourceGroupName "<primary ResourceGroupName>" -Location '<AzureRegion>' -SkuName Standard_LRS - Kind StorageCertifique-se de criar uma rede virtual no local de destino. Crie uma rede de recuperação na região de recuperação.
$recoveryVnet = New-AzVirtualNetwork -Name "recoveryvnet" -ResourceGroupName "recoveryrg" -Location '<AzureRegion>' -AddressPrefix "10.0.0.0/16" Add-AzVirtualNetworkSubnetConfig -Name "defaultsubnetconf" -VirtualNetwork $recoveryVnet -AddressPrefix "10.0.0.0/24" | Set-AzVirtualNetwork $recoveryNetwork = $recoveryVnet.IdUse o seguinte cmdlet do PowerShell para replicar uma máquina virtual da Zona Estendida do Azure com discos gerenciados. Esta etapa pode levar cerca de 20 minutos para ser concluída.
Obtenha o grupo de recursos no qual a máquina virtual deve ser criada quando houver failover.
$RecoveryRG = Get-AzResourceGroup -Name "edgezonerecoveryrg" -Location " <AzureRegion>"Obtenha VM e exiba conteúdo.
$vm = Get-AzVM -Name $vmName -ResourceGroupName $primaryResourceGroupNameEspecifique as propriedades de replicação para cada disco da VM que deve ser replicado (criar configuração de replicação de disco).
#OsDisk $OSdiskId = $vm.StorageProfile.OsDisk.ManagedDisk.Id $RecoveryOSDiskAccountType = $vm.StorageProfile.OsDisk.ManagedDisk.StorageAccountType $RecoveryReplicaDiskAccountType = $vm.StorageProfile.OsDisk.ManagedDisk.StorageAccountType $OSDiskReplicationConfig = New-AzRecoveryServicesAsrAzureToAzureDiskReplicationConfig - ManagedDisk -LogStorageAccountId $CacheStorageAccount.Id ` -DiskId $OSdiskId -RecoveryResourceGroupId $RecoveryRG.ResourceId - RecoveryReplicaDiskAccountType $RecoveryReplicaDiskAccountType ` -RecoveryTargetDiskAccountType $RecoveryOSDiskAccountTypeDisco de dados
Se a VM tiver disco de dados, use o seguinte comando para criar a configuração do disco. Caso contrário, pode ignorar esta secção. De
$datadiskIda$DataDisk1ReplicationConfig $datadiskId = $vm.StorageProfile.OSDisk.ManagedDisk.Id.Como alternativa,
$RecoveryReplicaDiskAccountType = "Premium_LRS" $RecoveryTargetDiskAccountType = "Premium_LRS" $RecoveryRGId = $RecoveryRG.ResourceId $DataDisk1ReplicationConfig = New-AzRecoveryServicesAsrAzureToAzureDiskReplicationConfig -ManagedDisk -LogStorageAccountId $CacheStorageAccount.Id ` -DiskId $OSdiskId -RecoveryResourceGroupId $RecoveryRGId - RecoveryReplicaDiskAccountType $RecoveryReplicaDiskAccountType ` -RecoveryTargetDiskAccountType $RecoveryTargetDiskAccountType
Crie um item protegido por replicação para iniciar a replicação. Use um identificador GUID para nomear o item protegido por replicação, garantindo a exclusividade do nome. Se não estiver a recuperar para uma zona de disponibilidade, então não forneça o parâmetro
-RecoveryAvailabilityZone.$TempASRJob = New-AzRecoveryServicesAsrReplicationProtectedItem -AzureToAzure -AzureVmId $VM.Id -Name $vm.Name -ProtectionContainerMapping $EdgeZoneToAzurePCMapping - AzureToAzureDiskReplicationConfiguration $DataDisk1ReplicationConfig - RecoveryResourceGroupId $RecoveryRGId -RecoveryAvailabilityZone “1” - RecoveryAzureNetworkId $recoveryVnet.Id -RecoveryAzureSubnetName “defaultsubnetconf”Acompanhe o status do trabalho para verificar a conclusão.
while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){ sleep 10; $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob }Verifique se o trabalho foi concluído com êxito. O estado atualizado de um trabalho que foi concluído com êxito deve ser Bem-sucedido.
Write-Output $TempASRJob.StateDepois que a operação para iniciar a replicação for bem-sucedida, os dados da máquina virtual serão replicados para a região de recuperação.
Inicialmente, quando o processo de replicação é iniciado, ele cria uma cópia dos discos replicantes da máquina virtual na região de recuperação. Essa fase é chamada de fase inicial de replicação. Este passo demora cerca de 20 minutos. Veja o estado da replicação no painel do Vault em Itens replicados.
Quando a replicação for concluída, os itens de replicação do Vault serão mostrados como abaixo:
Agora a máquina virtual está protegida e você pode executar uma operação de failover de teste. O estado de replicação do item replicado que representa a máquina virtual vai para o estado protegido após a conclusão da replicação inicial.
Monitore o estado de replicação e a integridade da replicação para a máquina virtual obtendo detalhes do item protegido de replicação que corresponde a ela:
$PE = Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $PrimaryProtectionContainer | Select FriendlyName, ProtectionState, ReplicationHealth $PESe Protegido aparecer no Estado de Proteção, estará pronto para prosseguir com o teste de falha.
Execute, valide e limpe um failover de teste. Você pode ignorar o teste de failover. No entanto, recomendamos a execução de teste de failover para garantir que a sua região secundária apareça como esperado.
Crie uma rede separada para failover de teste (não conectada à minha rede DR).
$TFOVnet = New-AzVirtualNetwork -Name "TFOvnet" -ResourceGroupName "edgezonerecoveryrg" -Location '<AzureRegion>' -AddressPrefix "10.3.0.0/26" Add-AzVirtualNetworkSubnetConfig -Name "default" -VirtualNetwork $TFOVnet -AddressPrefix "10.3.0.0/26" | Set-AzVirtualNetwork $TFONetwork= $TFOVnet.IdRealize um failover de teste.
$ReplicationProtectedItem = Get-AzRecoveryServicesAsrReplicationProtectedItem - FriendlyName "<VMName>" -ProtectionContainer $PrimaryProtectionContainer $TFOJob = Start-AzRecoveryServicesAsrTestFailoverJob -ReplicationProtectedItem $ReplicationProtectedItem -AzureVMNetworkId $TFONetwork -Direction PrimaryToRecoveryAguarde até que o trabalho seja concluído.
while (($TFOJob.State -eq "InProgress") -or ($TFOJob.State -eq "NotStarted")){ sleep 10; $TFOJob = Get-AzRecoveryServicesAsrJob -Job $TFOJob }Aguarde a conclusão do teste de failover.
Get-AzRecoveryServicesAsrJob -Job $TFOJob
Nota
Você também pode verificar o progresso do trabalho acessando o portal, selecionando o Vault e, em seguida, selecionando os Trabalhos de Recuperação de Site.
Depois que o trabalho de failover de teste for concluído com sucesso, poderá conectar-se à máquina virtual em que foi realizado o failover de teste e validar o failover de teste. Quando o teste estiver concluído na máquina virtual onde o teste falhou, limpe a cópia de teste iniciando a operação de limpeza do failover de teste. Esta operação elimina a cópia de teste da máquina virtual que foi criada pelo teste failover. Verifique se todas as configurações de destino estão corretas na VM de failover de teste, incluindo local, configuração de rede, sem corrupção de dados e sem perda de dados na VM de destino. Agora você pode excluir o failover de teste e iniciar o failover.
$Job_TFOCleanup = Start-AzRecoveryServicesAsrTestFailoverCleanupJob - ReplicationProtectedItem $ReplicationProtectedItem Get-AzRecoveryServicesAsrJob -Job $Job_TFOCleanup | Select StateO próximo passo seria fazer failover da máquina virtual. Esta etapa criará a VM usando os discos replicados na região de recuperação.
$ReplicationProtectedItem = Get-AzRecoveryServicesAsrReplicationProtectedItem - FriendlyName "<VMName>" -ProtectionContainer $PrimaryProtectionContainer $RecoveryPoints = Get-AzRecoveryServicesAsrRecoveryPoint -ReplicationProtectedItem $ReplicationProtectedItemA lista de pontos de recuperação devolvidos não pode ser ordenada cronologicamente. Você precisa classificá-los primeiro para encontrar os pontos de recuperação mais antigos ou mais recentes para a máquina virtual.
"{0} {1}" -f $RecoveryPoints[0].RecoveryPointType, $RecoveryPoints[- 1].RecoveryPointTimeInicie o trabalho de failover.
$Job_Failover = Start-AzRecoveryServicesAsrUnplannedFailoverJob - ReplicationProtectedItem $ReplicationProtectedItem -Direction PrimaryToRecovery - RecoveryPoint $RecoveryPoints[-1] do { $Job_Failover = Get-AzRecoveryServicesAsrJob -Job $Job_Failover; sleep 30; } while (($Job_Failover.State -eq "InProgress") -or ($JobFailover.State -eq "NotStarted")) $Job_Failover.State
Quando a tarefa de failover for bem-sucedida, poderá confirmar o failover.
$CommitFailoverJob = Start-AzRecoveryServicesAsrCommitFailoverJob - ReplicationProtectedItem $ReplicationProtectedItemAguarde até que o trabalho de confirmação do failover seja concluído.
while (($CommitFailoverJob.State -eq "InProgress") -or ($CommitFailoverJob.State -eq "NotStarted")){ sleep 10; $CommitFailoverJob = Get-AzRecoveryServicesAsrJob -Job $CommitFailoverJob } Get-AzRecoveryServicesAsrJob -Job $CommitFailoverJOb
Após um failover, quando estiver pronto para voltar à região original, inicie a replicação reversa para o item protegido de replicação usando o
Update-AzRecoveryServicesAsrProtectionDirectioncmdlet.Crie uma conta de armazenamento em cache para logs de replicação na região de recuperação.
$EdgeZoneCacheStorageAccount = New-AzStorageAccount -Name "cachestorageedgezone" - ResourceGroupName "<ResourceGroupName>" -Location '<AzureRegion>' -SkuName Standard_LRS -Kind StorageUse o contêiner de proteção de recuperação, a nova conta de armazenamento de cache na região da Zona Estendida do Azure e o grupo de recursos de VM da região de origem.
$ReplicationProtectedItem = Get-AzRecoveryServicesAsrReplicationProtectedItem - FriendlyName $vm.name -ProtectionContainer $PrimaryProtectionContainer $sourceVMResourcegroupId = $(Get-AzResourceGroup -Name $vm.ResourceGroupName). ResourceId Update-ASRProtectionDirection -ReplicationProtectedItem $ReplicationProtectedItem ` -AzureToAzure ` -ProtectionContainerMapping $AzureToEdgeZonePCMapping ` -LogStorageAccountId $EdgeZoneCacheStorageAccount.Id ` -RecoveryResourceGroupID $sourceVMResourcegroupId
Esta etapa leva ~20 minutos e o status passará de Em andamento para Bem sucedido.
Desative a replicação.
Remove-AzRecoveryServicesAsrReplicationProtectedItem -ReplicationProtectedItem $ReplicationProtectedItemLimpe o ambiente. Esta etapa é opcional e pode ser usada para remover o grupo de recursos.
Remove-AzResourceGroup -Name $Name -Force
Próximos passos
- Exiba a referência do PowerShell do Azure Site Recovery para saber como pode criar planos de recuperação, executar failovers e failbacks com o PowerShell.