Virtuele machines die worden uitgevoerd in een openbare Azure MEC-regio repliceren naar Azure

Belangrijk

De Azure Site Recovery-functionaliteit voor openbare MEC bevindt zich in de preview-status.

In dit artikel wordt beschreven hoe u virtuele Azure-machines (VM's) die worden uitgevoerd op Azure Public MEC, repliceren, failover uitvoeren en failback uitvoeren naar de bovenliggende Azure-regio waar Azure Public MEC een extensie is.

Herstel na noodgeval in Azure Public MEC

Site Recovery zorgt voor bedrijfscontinuïteit door workloads actief te houden tijdens storingen door de workload continu te repliceren van de primaire naar de secundaire locatie. De ASR-functionaliteit voor MEC is in preview.

Hier is de primaire locatie een openbare Azure-MEC en de secundaire locatie de bovenliggende regio waarmee de openbare Azure MEC is verbonden.

Herstel na noodgevallen instellen voor VM's in een openbaar Azure MEC met behulp van PowerShell

Vereisten

  • Zorg ervoor dat de Azure Az PowerShell-module is geïnstalleerd. Zie De Azure Az PowerShell-module installeren voor meer informatie over het installeren.

  • De minimale Azure Az PowerShell-versie moet 4.1.0 zijn. Gebruik de volgende opdracht om de huidige versie te bekijken:

    Get-InstalledModule -Name Az
    
  • Zorg ervoor dat de Linux-distributieversie en -kernel worden ondersteund door Azure Site Recovery. Zie de ondersteuningsmatrix voor meer informatie.

Virtuele machines die worden uitgevoerd in een openbare Azure MEC-regio repliceren naar Azure

Volg deze stappen om VM's die worden uitgevoerd in een openbare Azure MEC-regio te repliceren naar Azure:

Notitie

In dit voorbeeld is de primaire locatie een openbaar Azure-MEC en de secundaire/herstellocatie de regio van het openbare Azure MEC.

  1. Meld u aan bij uw Azure-account.

    Connect-AzAccount
    
  2. Selecteer Juiste abonnement.

    $subscription = Get-AzSubscription -SubscriptionName "<SubscriptionName>" 
    Set-AzContext $subscription.Id 
    
  3. Haal de details op van de virtuele machine die u wilt repliceren.

    $VM = Get-AzVM -ResourceGroupName "<ResourceGroupName>" -Name "<VMName>" 
    
    Write-Output $VM 
    
  4. Maak een resourcegroep voor de Recovery Services-kluis in de secundaire Azure-regio.

    New-AzResourceGroup -Name "edgezonerecoveryrg" -Location "<EdgeZoneRegion>"
    
  5. Maak een nieuwe Recovery Services-kluis in de secundaire regio.

    $vault = New-AzRecoveryServicesVault -Name "EdgeZoneRecoveryVault" -
    ResourceGroupName "edgezonerecovery" -Location "\<EdgeZoneRegion\>"
    Write-Output $vault
    
  6. Stel de kluiscontext in.

    Set-AzRecoveryServicesAsrVaultContext -Vault $vault 
    
  7. Primaire Site Recovery fabric maken.

    $TempASRJob = New-AzRecoveryServicesAsrFabric -Azure -Location “<EdgeZoneRegion>” -
    Name "EdgeZoneFabric"
    
    1. Houd de taakstatus bij om te controleren op voltooiing.

      while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){
      
    2. Als de taak niet is voltooid, wacht u 10 seconden voordat u de taakstatus opnieuw controleert.

      sleep 10;
      $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob
      }
      
    3. Als de taak is voltooid, moet de taakstatus Geslaagd zijn.

      Write-Output $TempASRJob.State
      $PrimaryFabric = Get-AzRecoveryServicesAsrFabric -Name "EdgeZoneFabric"
      
  8. Gebruik de primaire infrastructuur om zowel primaire als herstelbeveiligingscontainers te maken.

    $TempASRJob = New-AzRecoveryServicesAsrProtectionContainer -InputObject 
    $PrimaryFabric -Name "EdgeZoneProtectionContainer"
    
    1. Houd de taakstatus bij om te controleren op voltooiing.

      while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq 
      "NotStarted")){
       sleep 10;
       $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob
      }
      Write-Output $TempASRJob.State
      
    2. Zowel primaire als herstelbeveiligingscontainers worden gemaakt in de primaire regio (binnen de primaire infrastructuur).

      $PrimaryProtectionContainer = Get-AzRecoveryServicesAsrProtectionContainer -Fabric 
      $primaryFabric -Name "EdgeZoneProtectionContainer"
      $RecoveryProtectionContainer = Get-AzRecoveryServicesAsrProtectionContainer -Fabric 
      $primaryFabric -Name "EdgeZoneProtectionContainer-t"
      
  9. Een replicatiebeleid maken.

    $TempASRJob = New-AzRecoveryServicesAsrPolicy -AzureToAzure -Name 
    "ReplicationPolicy" -RecoveryPointRetentionInHours 24 -
    ApplicationConsistentSnapshotFrequencyInHours 4
    
    1. Houd de taakstatus bij om te controleren op voltooiing.

      while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq 
      "NotStarted")){
       sleep 10;
       $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob
      }
      
    2. Als de taak is voltooid, moet de taakstatus Geslaagd zijn.

      Write-Output $TempASRJob.State
      
      $ReplicationPolicy = Get-AzRecoveryServicesAsrPolicy -Name "ReplicationPolicy"
      
  10. Maak een beveiligingscontainertoewijzing tussen de primaire en herstelbeveiligingscontainers met het replicatiebeleid.

    $TempASRJob = New-AzRecoveryServicesAsrProtectionContainerMapping -Name 
    "PrimaryToRecovery" -Policy $ReplicationPolicy -PrimaryProtectionContainer 
    $PrimaryProtectionContainer -RecoveryProtectionContainer 
    $RecoveryProtectionContainer
    
    1. Houd de taakstatus bij om te controleren op voltooiing.

      while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq 
      "NotStarted")){
       sleep 10;
       $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob
      }
      
    2. Als de taak is voltooid, moet de taakstatus Geslaagd zijn.

      Write-Output $TempASRJob.State
      
      $EdgeZoneToAzurePCMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping -
      ProtectionContainer $PrimaryProtectionContainer -Name "PrimaryToRecovery"
      
    3. Maak een beveiligingscontainertoewijzing voor failback, tussen de herstel- en primaire beveiligingscontainers met het replicatiebeleid.

      $TempASRJob = New-AzRecoveryServicesAsrProtectionContainerMapping -Name 
      "RecoveryToPrimary" -Policy $ReplicationPolicy -PrimaryProtectionContainer 
      $RecoveryProtectionContainer -RecoveryProtectionContainer 
      $PrimaryProtectionContainer
      
      1. Houd de taakstatus bij om te controleren op voltooiing.

        while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq 
        "NotStarted")){
         sleep 10;
         $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob
        }
        
      2. Als de taak is voltooid, moet de taakstatus Geslaagd zijn.

        Write-Output $TempASRJob.State 
        $AzureToEdgeZonePCMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping -
        ProtectionContainer $RecoveryProtectionContainer -Name "RecoveryToPrimary"
        
  11. Maak een cacheopslagaccount voor replicatielogboeken in de primaire regio. Het cacheopslagaccount wordt gemaakt in de primaire regio.

    $CacheStorageAccount = New-AzStorageAccount -Name "cachestorage" -ResourceGroupName 
    "<primary ResourceGroupName>" -Location '<EdgeZoneRegion>' -SkuName Standard_LRS -
    Kind Storage
    
  12. Zorg ervoor dat u een virtueel netwerk op de doellocatie maakt. Maak een herstelnetwerk in de herstelregio.

    $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. Gebruik de volgende PowerShell-cmdlet voor het repliceren van een virtuele Azure-machine met een openbare MEC Azure-machine met beheerde schijven. Deze stap kan ongeveer 20 minuten duren.

    1. Haal de resourcegroep op waarin de virtuele machine moet worden gemaakt wanneer er een failover wordt uitgevoerd.

      $RecoveryRG = Get-AzResourceGroup -Name "edgezonerecoveryrg" -Location "
      <EdgeZoneRegion>"
      
    2. VM ophalen en inhoud weergeven.

      $vm = Get-AzVM -Name $vmName -ResourceGroupName $primaryResourceGroupName
      
    3. Geef replicatie-eigenschappen op voor elke schijf van de VM die moet worden gerepliceerd (schijfreplicatieconfiguratie maken).

      #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. Gegevensschijf

      1. Als de VM een gegevensschijf heeft, gebruikt u de volgende opdracht om een schijfconfiguratie te maken. Zo niet, dan kunt u deze sectie overslaan. Van $datadiskId tot $DataDisk1ReplicationConfig $datadiskId = $vm.StorageProfile.OSDisk.ManagedDisk.Id.

        U kunt ook

        $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. Maak een item met replicatiebeveiliging om de replicatie te starten. Gebruik een GUID voor de naam van het item met replicatiebeveiliging om ervoor te zorgen dat de naam uniek is. Als u niet herstelt naar een beschikbaarheidszone, geeft u de -RecoveryAvailabilityZone parameter niet op.

      $TempASRJob = New-AzRecoveryServicesAsrReplicationProtectedItem -AzureToAzure -AzureVmId 
      $VM.Id -Name $vm.Name -ProtectionContainerMapping $EdgeZoneToAzurePCMapping -
      AzureToAzureDiskReplicationConfiguration $DataDisk1ReplicationConfig -
      RecoveryResourceGroupId $RecoveryRGId -RecoveryAvailabilityZone “1” -
      RecoveryAzureNetworkId $recoveryVnet.Id -RecoveryAzureSubnetName “defaultsubnetconf”
      
    6. Houd de taakstatus bij om te controleren op voltooiing.

      while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){
      sleep 10; 
      $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob 
      } 
      
    7. Controleer of de taak is voltooid. De bijgewerkte taakstatus van een voltooide taak moet Geslaagd zijn.

      Write-Output $TempASRJob.State
      
    8. Nadat de bewerking voor het starten van de replicatie is geslaagd, worden de gegevens van de virtuele machine gerepliceerd naar de herstelregio.

    Wanneer het replicatieproces in eerste instantie wordt gestart, wordt er een kopie gemaakt van de replicerende schijven van de virtuele machine in de herstelregio. Deze fase wordt de initiële replicatiefase genoemd. Deze stap duurt ongeveer 20 minuten. Bekijk de status van de replicatie op de blade Kluis onder Gerepliceerde items.

    Schermopname van gerepliceerde items.

    Wanneer de replicatie is voltooid, worden de kluisreplicatie-items weergegeven als hieronder:

    Schermopname van kluisreplicatie.

    De virtuele machine is nu beveiligd en u kunt een testfailoverbewerking uitvoeren. De replicatiestatus van het gerepliceerde item dat de virtuele machine vertegenwoordigt, gaat naar de beveiligde status nadat de initiële replicatie is voltooid.

    Bewaak de replicatiestatus en replicatiestatus voor de virtuele machine door details op te halen van het met replicatie beveiligde item dat hiermee overeenkomt:

    $PE = Get-AzRecoveryServicesAsrReplicationProtectedItem
     -ProtectionContainer $PrimaryProtectionContainer
    | Select FriendlyName, ProtectionState, ReplicationHealth
    $PE
    

    Als u Protected ziet in de ProtectionState, kunt u doorgaan met de testfailover.

    Schermopname van de beveiligingsstatus.

  14. Een testfailover uitvoeren, valideren en opschonen. U kunt de testfailover overslaan. We raden u echter aan om een testfailover uit te voeren om ervoor te zorgen dat uw secundaire regio wordt weergegeven zoals verwacht.

    1. Maak een afzonderlijk netwerk voor testfailover (niet verbonden met mijn DR-netwerk).

      $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. Voer een testfailover uit.

      $ReplicationProtectedItem = Get-AzRecoveryServicesAsrReplicationProtectedItem -
      FriendlyName "<VMName>" -ProtectionContainer $PrimaryProtectionContainer
      
      $TFOJob = Start-AzRecoveryServicesAsrTestFailoverJob -ReplicationProtectedItem 
      $ReplicationProtectedItem -AzureVMNetworkId $TFONetwork -Direction PrimaryToRecovery
      
    3. Wacht totdat de taak is voltooid.

      while (($TFOJob.State -eq "InProgress") -or ($TFOJob.State -eq 
      "NotStarted")){
       sleep 10;
       $TFOJob = Get-AzRecoveryServicesAsrJob -Job $TFOJob
      }
      
    4. Wacht tot de testfailover is voltooid.

      Get-AzRecoveryServicesAsrJob -Job $TFOJob
      

    Notitie

    U kunt de voortgang van de taak ook controleren door naar de portal te gaan, de kluis te selecteren en vervolgens de Site Recovery Taken te selecteren.

    Nadat de testfailovertaak is voltooid, kunt u verbinding maken met de testfailover virtuele machine en de testfailover valideren. Zodra het testen is voltooid op de virtuele machine waarvoor een failover is uitgevoerd, schoont u de testkopie op door de failoverbewerking voor het opschonen te starten. Met deze bewerking verwijdert u de testkopie van de virtuele machine die is gemaakt door de testfailover. Controleer of alle doelinstellingen juist zijn in de testfailover-VM, inclusief locatie, netwerkinstelling, geen beschadigde gegevens en geen gegevens verloren gaan in de doel-VM. U kunt nu de testfailover verwijderen en de failover starten.

    $Job_TFOCleanup = Start-AzRecoveryServicesAsrTestFailoverCleanupJob -
    ReplicationProtectedItem $ReplicationProtectedItem 
    Get-AzRecoveryServicesAsrJob -Job $Job_TFOCleanup | Select State
    
  15. De volgende stap is het uitvoeren van een failover van de virtuele machine. Met deze stap wordt de VIRTUELE machine gemaakt met behulp van de gerepliceerde schijven in de herstelregio.

    $ReplicationProtectedItem = Get-AzRecoveryServicesAsrReplicationProtectedItem -
    FriendlyName "<VMName>" -ProtectionContainer $PrimaryProtectionContainer
    $RecoveryPoints = Get-AzRecoveryServicesAsrRecoveryPoint -ReplicationProtectedItem 
    $ReplicationProtectedItem 
    

    De lijst met geretourneerde herstelpunten is mogelijk niet chronologisch gesorteerd. U moet deze eerst sorteren om de oudste of meest recente herstelpunten voor de virtuele machine te vinden.

     "{0} {1}" -f $RecoveryPoints[0].RecoveryPointType, $RecoveryPoints[-
    1].RecoveryPointTime
    
    1. Start de failovertaak.

      $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. Wanneer de failovertaak is geslaagd, kunt u de failover doorvoeren.

     $CommitFailoverJob = Start-AzRecoveryServicesAsrCommitFailoverJob -
    ReplicationProtectedItem $ReplicationProtectedItem 
    
    1. Wacht totdat de doorvoerfailovertaak is voltooid.

      while (($CommitFailoverJob.State -eq "InProgress") -or ($CommitFailoverJob.State 
      -eq "NotStarted")){
       sleep 10;
       $CommitFailoverJob = Get-AzRecoveryServicesAsrJob -Job $CommitFailoverJob
      }
       Get-AzRecoveryServicesAsrJob -Job $CommitFailoverJOb
      
  17. Wanneer u na een failover klaar bent om terug te gaan naar de oorspronkelijke regio, start u de omgekeerde replicatie voor het item met replicatiebeveiliging met behulp van de Update-AzRecoveryServicesAsrProtectionDirection cmdlet.

    1. Maak cacheopslagaccount voor replicatielogboeken in de herstelregio.

      $EdgeZoneCacheStorageAccount = New-AzStorageAccount -Name "cachestorageedgezone" -
      ResourceGroupName "<ResourceGroupName>" -Location '<EdgeZoneRegion>' -SkuName 
      Standard_LRS -Kind Storage
      
    2. Gebruik de herstelbeveiligingscontainer, het nieuwe cacheopslagaccount in de regio van Azure Public MEC en de bronregio-VM-resourcegroep.

      $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
      

    Deze stap duurt ongeveer 20 minuten en de status wordt verplaatst van In uitvoering naar Geslaagd.

    Schermopname van de lijst Met beveiligde items.

  18. Replicatie uitschakelen.

    Remove-AzRecoveryServicesAsrReplicationProtectedItem -ReplicationProtectedItem 
    $ReplicationProtectedItem
    
  19. Schoon het milieu op. Deze stap is optioneel en kan worden gebruikt om de resourcegroep te verwijderen.

    Remove-AzResourceGroup -Name $Name -Force