Replicar máquinas virtuais em execução num MEC Público do Azure para a região do Azure
Importante
A funcionalidade Site Recovery do Azure para MEC Público está no estado de pré-visualização.
Este artigo descreve como replicar, efetuar a ativação pós-falha e a reativação pós-falha de máquinas virtuais (VMs) do Azure em execução no MEC Público do Azure para a região principal do Azure onde o MEC Público do Azure é uma extensão.
Recuperação após desastre no MEC Público do Azure
Site Recovery garante a continuidade do negócio ao manter as cargas de trabalho em execução durante as interrupções ao replicar continuamente a carga de trabalho da localização primária para a secundária. A funcionalidade ASR para MEC está em pré-visualização.
Aqui, a localização primária é um MEC Público do Azure e a localização secundária é a região principal à qual o MEC Público do Azure está ligado.
Configurar a recuperação após desastre para VMs num MEC Público do Azure com o PowerShell
Pré-requisitos
Certifique-se de que o módulo do Azure Az PowerShell está instalado. Para obter informações sobre como instalar, veja Instalar o módulo do Azure Az PowerShell.
A versão mínima do Azure Az PowerShell tem de ser 4.1.0. Utilize o seguinte comando para ver a versão atual:
Get-InstalledModule -Name Az
Certifique-se de que a versão de distribuição e o kernel do Linux são suportados pelo Azure Site Recovery. Para obter mais informações, veja a matriz de suporte.
Replicar Máquinas virtuais em execução num MEC Público do Azure para a região do Azure
Para replicar VMs em execução num MEC Público do Azure para a região do Azure, siga estes passos:
Nota
Para este exemplo, a localização primária é um MEC Público do Azure e a localização secundária/de recuperação é a região do MEC Público do Azure.
Inicie sessão na sua conta do Azure.
Connect-AzAccount
Selecione Subscrição certa.
$subscription = Get-AzSubscription -SubscriptionName "<SubscriptionName>" Set-AzContext $subscription.Id
Obtenha os detalhes da máquina virtual que planeia replicar.
$VM = Get-AzVM -ResourceGroupName "<ResourceGroupName>" -Name "<VMName>" Write-Output $VM
Crie um grupo de recursos para o cofre dos serviços de recuperação na região secundária do Azure.
New-AzResourceGroup -Name "edgezonerecoveryrg" -Location "<EdgeZoneRegion>"
Crie um novo cofre dos Serviços de recuperação na região secundária.
$vault = New-AzRecoveryServicesVault -Name "EdgeZoneRecoveryVault" - ResourceGroupName "edgezonerecovery" -Location "\<EdgeZoneRegion\>" Write-Output $vault
Defina o contexto do cofre.
Set-AzRecoveryServicesAsrVaultContext -Vault $vault
Crie recursos de infraestrutura Site Recovery primários.
$TempASRJob = New-AzRecoveryServicesAsrFabric -Azure -Location “<EdgeZoneRegion>” - Name "EdgeZoneFabric"
Controle o estado da tarefa para verificar a conclusão.
while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){
Se a tarefa ainda não tiver sido concluída, durma durante 10 segundos antes de verificar novamente o estado da tarefa.
sleep 10; $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob }
Após a conclusão com êxito, o estado da tarefa tem de ser Bem-sucedido.
Write-Output $TempASRJob.State $PrimaryFabric = Get-AzRecoveryServicesAsrFabric -Name "EdgeZoneFabric"
Utilize os recursos de infraestrutura primários para criar contentores de proteção de recuperação e primários.
$TempASRJob = New-AzRecoveryServicesAsrProtectionContainer -InputObject $PrimaryFabric -Name "EdgeZoneProtectionContainer"
Controle o estado da tarefa 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.State
Os contentores primários e de proteção de recuperação são criados na região primária (nos recursos de infraestrutura primários).
$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 4
Controle o estado da tarefa 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 com êxito, o estado da tarefa tem de ser Bem-sucedido.
Write-Output $TempASRJob.State $ReplicationPolicy = Get-AzRecoveryServicesAsrPolicy -Name "ReplicationPolicy"
Crie um mapeamento de contentor de proteção entre os contentores de proteção primária e de recuperação com a política de Replicação.
$TempASRJob = New-AzRecoveryServicesAsrProtectionContainerMapping -Name "PrimaryToRecovery" -Policy $ReplicationPolicy -PrimaryProtectionContainer $PrimaryProtectionContainer -RecoveryProtectionContainer $RecoveryProtectionContainer
Controle o estado da tarefa 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 com êxito, o estado da tarefa tem de ser Bem-sucedido.
Write-Output $TempASRJob.State $EdgeZoneToAzurePCMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping - ProtectionContainer $PrimaryProtectionContainer -Name "PrimaryToRecovery"
Crie um mapeamento de contentor de proteção para reativação pós-falha, entre os contentores de proteção primária e de recuperação com a política de Replicação.
$TempASRJob = New-AzRecoveryServicesAsrProtectionContainerMapping -Name "RecoveryToPrimary" -Policy $ReplicationPolicy -PrimaryProtectionContainer $RecoveryProtectionContainer -RecoveryProtectionContainer $PrimaryProtectionContainer
Controle o estado da tarefa 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 com êxito, o estado da tarefa tem de ser Bem-sucedido.
Write-Output $TempASRJob.State $AzureToEdgeZonePCMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping - ProtectionContainer $RecoveryProtectionContainer -Name "RecoveryToPrimary"
Crie uma conta de armazenamento em cache para registos 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 '<EdgeZoneRegion>' -SkuName Standard_LRS - Kind Storage
Certifique-se de que cria uma rede virtual na localização de destino. Crie uma Rede de Recuperação na região de recuperação.
$recoveryVnet = New-AzVirtualNetwork -Name "recoveryvnet" -ResourceGroupName "recoveryrg" -Location '<EdgeZoneRegion>' -AddressPrefix "10.0.0.0/16" Add-AzVirtualNetworkSubnetConfig -Name "defaultsubnetconf" -VirtualNetwork $recoveryVnet -AddressPrefix "10.0.0.0/24" | Set-AzVirtualNetwork $recoveryNetwork = $recoveryVnet.Id
Utilize o seguinte cmdlet do PowerShell para replicar uma máquina virtual do Azure MEC Público do Azure com discos geridos. Este passo pode demorar cerca de 20 minutos a concluir.
Obtenha o grupo de recursos no qual a máquina virtual tem de ser criada quando a ativação pós-falha for efetuada.
$RecoveryRG = Get-AzResourceGroup -Name "edgezonerecoveryrg" -Location " <EdgeZoneRegion>"
Obter conteúdo de VM e apresentação.
$vm = Get-AzVM -Name $vmName -ResourceGroupName $primaryResourceGroupName
Especifique as propriedades de replicação para cada disco da VM que tem de ser replicada (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 $RecoveryOSDiskAccountType
Disco de dados
Se a VM tiver um disco de dados, utilize o seguinte comando para criar a configuração do disco. Caso contrário, pode ignorar esta secção. De
$datadiskId
a$DataDisk1ReplicationConfig $datadiskId = $vm.StorageProfile.OSDisk.ManagedDisk.Id
.Em 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. Utilize um GUID para o nome do item protegido por replicação para garantir a exclusividade do nome. Se não estiver a recuperar para uma Zona de Disponibilidade, não forneça o
-RecoveryAvailabilityZone
parâmetro .$TempASRJob = New-AzRecoveryServicesAsrReplicationProtectedItem -AzureToAzure -AzureVmId $VM.Id -Name $vm.Name -ProtectionContainerMapping $EdgeZoneToAzurePCMapping - AzureToAzureDiskReplicationConfiguration $DataDisk1ReplicationConfig - RecoveryResourceGroupId $RecoveryRGId -RecoveryAvailabilityZone “1” - RecoveryAzureNetworkId $recoveryVnet.Id -RecoveryAzureSubnetName “defaultsubnetconf”
Controle o estado da tarefa para verificar a conclusão.
while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){ sleep 10; $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob }
Verifique se a Tarefa foi concluída com êxito. O estado da tarefa atualizada de uma tarefa concluída com êxito tem de ser bem-sucedido.
Write-Output $TempASRJob.State
Após a operação para iniciar a replicação com êxito, os dados da máquina virtual são replicados para a região de recuperação.
Inicialmente, quando o processo de replicação é iniciado, cria uma cópia dos discos de replicação da máquina virtual na região de recuperação. Esta fase é denominada fase de replicação inicial. Este passo demora cerca de 20 minutos. Veja o estado da replicação no painel Cofre em Itens replicados.
Quando a replicação estiver concluída, os itens de replicação do Cofre serão apresentados abaixo:
Agora, a máquina virtual está protegida e pode executar uma operação de ativação pós-falha 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.
Monitorize o estado de replicação e o estado de funcionamento da replicação da máquina virtual ao obter detalhes do item protegido pela replicação que corresponde ao mesmo:
$PE = Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $PrimaryProtectionContainer | Select FriendlyName, ProtectionState, ReplicationHealth $PE
Se vir Protegido no ProtectionState, está pronto para continuar a testar a ativação pós-falha.
Executar, validar e limpar uma ativação pós-falha de teste. Pode ignorar a ativação pós-falha de teste. No entanto, recomendamos a execução da ativação pós-falha de teste para garantir que a sua região secundária aparece conforme esperado.
Crie uma rede separada para a ativação pós-falha de teste (não ligada à minha rede DR).
$TFOVnet = New-AzVirtualNetwork -Name "TFOvnet" -ResourceGroupName "edgezonerecoveryrg" -Location '<EdgeZoneRegion>' -AddressPrefix "10.3.0.0/26" Add-AzVirtualNetworkSubnetConfig -Name "default" -VirtualNetwork $TFOVnet -AddressPrefix "10.3.0.0/26" | Set-AzVirtualNetwork $TFONetwork= $TFOVnet.Id
Executar uma ativação pós-falha de teste.
$ReplicationProtectedItem = Get-AzRecoveryServicesAsrReplicationProtectedItem - FriendlyName "<VMName>" -ProtectionContainer $PrimaryProtectionContainer $TFOJob = Start-AzRecoveryServicesAsrTestFailoverJob -ReplicationProtectedItem $ReplicationProtectedItem -AzureVMNetworkId $TFONetwork -Direction PrimaryToRecovery
Aguarde até que a tarefa esteja concluída.
while (($TFOJob.State -eq "InProgress") -or ($TFOJob.State -eq "NotStarted")){ sleep 10; $TFOJob = Get-AzRecoveryServicesAsrJob -Job $TFOJob }
Aguarde que a ativação pós-falha de teste seja concluída.
Get-AzRecoveryServicesAsrJob -Job $TFOJob
Nota
Também pode verificar o progresso da tarefa acedendo ao portal, selecionando o Cofre e, em seguida, selecione o Site Recovery Tarefas.
Após a conclusão da tarefa de ativação pós-falha de teste com êxito, pode ligar-se ao teste com falha na máquina virtual e validar a ativação pós-falha de teste. Assim que o teste estiver concluído no teste, efetue a ativação pós-falha da máquina virtual, limpe a cópia de teste ao iniciar a operação de ativação pós-falha de teste de limpeza. Esta operação elimina a cópia de teste da máquina virtual criada pela ativação pós-falha de teste. Verifique se todas as definições de destino estão corretas na VM de ativação pós-falha de teste, incluindo localização, definição de rede, sem danos em dados e não se perdem dados na VM de destino. Agora, pode eliminar a ativação pós-falha de teste e iniciar a ativação pós-falha.
$Job_TFOCleanup = Start-AzRecoveryServicesAsrTestFailoverCleanupJob - ReplicationProtectedItem $ReplicationProtectedItem Get-AzRecoveryServicesAsrJob -Job $Job_TFOCleanup | Select State
O próximo passo seria efetuar a ativação pós-falha da máquina virtual. Este passo irá criar a VM com os discos replicados na região de recuperação.
$ReplicationProtectedItem = Get-AzRecoveryServicesAsrReplicationProtectedItem - FriendlyName "<VMName>" -ProtectionContainer $PrimaryProtectionContainer $RecoveryPoints = Get-AzRecoveryServicesAsrRecoveryPoint -ReplicationProtectedItem $ReplicationProtectedItem
A lista de pontos de recuperação devolvidos pode não ser ordenada cronologicamente. Tem de ordenar estes primeiros para encontrar os pontos de recuperação mais antigos ou mais recentes da máquina virtual.
"{0} {1}" -f $RecoveryPoints[0].RecoveryPointType, $RecoveryPoints[- 1].RecoveryPointTime
Inicie a tarefa de ativação pós-falha.
$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 ativação pós-falha for bem-sucedida, pode consolidar a ativação pós-falha.
$CommitFailoverJob = Start-AzRecoveryServicesAsrCommitFailoverJob - ReplicationProtectedItem $ReplicationProtectedItem
Aguarde até que a tarefa de ativação pós-falha de consolidação esteja concluída.
while (($CommitFailoverJob.State -eq "InProgress") -or ($CommitFailoverJob.State -eq "NotStarted")){ sleep 10; $CommitFailoverJob = Get-AzRecoveryServicesAsrJob -Job $CommitFailoverJob } Get-AzRecoveryServicesAsrJob -Job $CommitFailoverJOb
Após uma ativação pós-falha, quando estiver pronto para voltar à região original, inicie a replicação inversa para o item protegido por replicação com o
Update-AzRecoveryServicesAsrProtectionDirection
cmdlet.Criar conta de armazenamento em cache para registos de replicação na região de recuperação.
$EdgeZoneCacheStorageAccount = New-AzStorageAccount -Name "cachestorageedgezone" - ResourceGroupName "<ResourceGroupName>" -Location '<EdgeZoneRegion>' -SkuName Standard_LRS -Kind Storage
Utilize o contentor de proteção de recuperação, a nova conta de armazenamento em cache na região do MEC Público do Azure e o grupo de recursos da 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
Este passo demora cerca de 20 minutos e o estado passará de Em curso para Com Êxito.
Desative a replicação.
Remove-AzRecoveryServicesAsrReplicationProtectedItem -ReplicationProtectedItem $ReplicationProtectedItem
Limpe o ambiente. Este passo é opcional e pode ser utilizado para remover o grupo de recursos.
Remove-AzResourceGroup -Name $Name -Force