Partilhar via


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.

  1. Inicie sessão na sua conta do Azure.

    Connect-AzAccount
    
  2. Selecione Subscrição certa.

    $subscription = Get-AzSubscription -SubscriptionName "<SubscriptionName>" 
    Set-AzContext $subscription.Id 
    
  3. Obtenha os detalhes da máquina virtual que planeia replicar.

    $VM = Get-AzVM -ResourceGroupName "<ResourceGroupName>" -Name "<VMName>" 
    
    Write-Output $VM 
    
  4. 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>"
    
  5. 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
    
  6. Defina o contexto do cofre.

    Set-AzRecoveryServicesAsrVaultContext -Vault $vault 
    
  7. Crie recursos de infraestrutura Site Recovery primários.

    $TempASRJob = New-AzRecoveryServicesAsrFabric -Azure -Location “<EdgeZoneRegion>” -
    Name "EdgeZoneFabric"
    
    1. Controle o estado da tarefa para verificar a conclusão.

      while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){
      
    2. 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
      }
      
    3. 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"
      
  8. 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"
    
    1. 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
      
    2. 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"
      
  9. Criar uma política de replicação.

    $TempASRJob = New-AzRecoveryServicesAsrPolicy -AzureToAzure -Name 
    "ReplicationPolicy" -RecoveryPointRetentionInHours 24 -
    ApplicationConsistentSnapshotFrequencyInHours 4
    
    1. 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
      }
      
    2. 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"
      
  10. 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
    
    1. 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
      }
      
    2. 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"
      
    3. 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
      
      1. 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
        }
        
      2. 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"
        
  11. 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
    
  12. 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
    
  13. 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.

    1. 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>"
      
    2. Obter conteúdo de VM e apresentação.

      $vm = Get-AzVM -Name $vmName -ResourceGroupName $primaryResourceGroupName
      
    3. 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
      
    4. Disco de dados

      1. 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
        
    5. 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”
      
    6. 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 
      } 
      
    7. 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
      
    8. 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.

    Captura de ecrã a mostrar os itens replicados.

    Quando a replicação estiver concluída, os itens de replicação do Cofre serão apresentados abaixo:

    Captura de ecrã a mostrar a replicação do Cofre.

    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.

    Captura de ecrã a mostrar o estado proteção.

  14. 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.

    1. 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
      
    2. 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
      
    3. 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
      }
      
    4. 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
    
  15. 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
    
    1. 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
      
  16. 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 
    
    1. 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
      
  17. 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.

    1. 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
      
    2. 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.

    Captura de ecrã da lista Itens protegidos.

  18. Desative a replicação.

    Remove-AzRecoveryServicesAsrReplicationProtectedItem -ReplicationProtectedItem 
    $ReplicationProtectedItem
    
  19. Limpe o ambiente. Este passo é opcional e pode ser utilizado para remover o grupo de recursos.

    Remove-AzResourceGroup -Name $Name -Force