Replizieren von in einer Azure Public MEC-Instanz ausgeführten VMs in einer Azure-Region

Wichtig

Die Azure Site Recovery-Funktionalität für öffentliches MEC befindet sich in der Vorschauphase.

In diesem Artikel werden Replikation, Failover und Failback virtueller Azure-Computer (VMs), die unter Azure Public MEC ausgeführt werden, zur übergeordneten Azure-Region beschrieben, in der Azure Public MEC als Erweiterung verwendet wird.

Notfallwiederherstellung in Azure Public MEC

Azure Website Recovery sorgt für Geschäftskontinuität, indem Workloads bei Ausfällen dadurch aufrechterhalten werden, dass die Workload fortlaufend vom primären zum sekundären Standort repliziert wird. Die ASR-Funktionalität für MEC befindet sich in der Vorschauphase.

Hier wird als primärer Standort eine Azure Public MEC-Instanz verwendet, und der sekundäre Standort ist die übergeordnete Region, mit der die Azure Public MEC-Instanz verbunden ist.

Einrichten der Notfallwiederherstellung für VMs in einer Azure Public MEC-Instanz mithilfe von PowerShell

Voraussetzungen

  • Stellen Sie sicher, dass das Azure PowerShell-Modul „Az“ installiert ist. Weitere Informationen zur Installation finden Sie unter Installieren des Azure PowerShell-Moduls „Az“.

  • Als Mindestversion des Azure PowerShell-Moduls „Az“ muss 4.1.0 verwendet werden. Überprüfen Sie mit dem folgenden Befehl die aktuelle Version:

    Get-InstalledModule -Name Az
    
  • Stellen Sie sicher, dass Version und Kernel der Linux-Distribution von Azure Site Recovery unterstützt werden. Weitere Informationen finden Sie in der Supportmatrix.

Replizieren von in einer Azure Public MEC-Instanz ausgeführten VMs in einer Azure-Region

Führen Sie die folgenden Schritte aus, um VMs, die in einer Azure Public MEC-Instanz ausgeführt werden, in einer Azure-Region zu replizieren:

Hinweis

Bei diesem Beispiel ist der primäre Standort eine Azure Public MEC-Instanz, und der sekundäre Standort bzw. der Wiederherstellungsstandort ist die Region der Azure Public MEC-Instanz.

  1. Melden Sie sich bei Ihrem Azure-Konto an.

    Connect-AzAccount
    
  2. Wählen Sie das richtige Abonnement aus.

    $subscription = Get-AzSubscription -SubscriptionName "<SubscriptionName>" 
    Set-AzContext $subscription.Id 
    
  3. Rufen Sie die Details des virtuellen Computers ab, den Sie replizieren möchten.

    $VM = Get-AzVM -ResourceGroupName "<ResourceGroupName>" -Name "<VMName>" 
    
    Write-Output $VM 
    
  4. Erstellen Sie in der sekundären Azure-Region eine Ressourcengruppe für den Recovery Services-Tresor.

    New-AzResourceGroup -Name "edgezonerecoveryrg" -Location "<EdgeZoneRegion>"
    
  5. Erstellen Sie in der sekundären Region einen neuen Recovery Services-Tresor.

    $vault = New-AzRecoveryServicesVault -Name "EdgeZoneRecoveryVault" -
    ResourceGroupName "edgezonerecovery" -Location "\<EdgeZoneRegion\>"
    Write-Output $vault
    
  6. Legen Sie den Tresorkontext fest.

    Set-AzRecoveryServicesAsrVaultContext -Vault $vault 
    
  7. Erstellen Sie die primäre Site Recovery-Fabric.

    $TempASRJob = New-AzRecoveryServicesAsrFabric -Azure -Location “<EdgeZoneRegion>” -
    Name "EdgeZoneFabric"
    
    1. Verfolgen Sie, ob „Auftragsstatus“ auf „Abgeschlossen“ festgelegt ist.

      while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){
      
    2. Wenn der Auftrag nicht abgeschlossen wurde, wird der Standbymodus 10 Sekunden fortgesetzt, ehe der Auftragsstatus erneut überprüft wird.

      sleep 10;
      $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob
      }
      
    3. Nach erfolgreichem Abschluss muss der Auftragsstatus Erfolgreich lauten.

      Write-Output $TempASRJob.State
      $PrimaryFabric = Get-AzRecoveryServicesAsrFabric -Name "EdgeZoneFabric"
      
  8. Verwenden Sie die primäre Fabric, um sowohl primäre Container als auch Azure Site Recovery-Schutzcontainer zu erstellen.

    $TempASRJob = New-AzRecoveryServicesAsrProtectionContainer -InputObject 
    $PrimaryFabric -Name "EdgeZoneProtectionContainer"
    
    1. Verfolgen Sie, ob „Auftragsstatus“ auf „Abgeschlossen“ festgelegt ist.

      while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq 
      "NotStarted")){
       sleep 10;
       $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob
      }
      Write-Output $TempASRJob.State
      
    2. Sowohl primäre Container als auch Azure Site Recovery-Schutzcontainer werden in der primären Region (innerhalb der primären Fabric) erstellt.

      $PrimaryProtectionContainer = Get-AzRecoveryServicesAsrProtectionContainer -Fabric 
      $primaryFabric -Name "EdgeZoneProtectionContainer"
      $RecoveryProtectionContainer = Get-AzRecoveryServicesAsrProtectionContainer -Fabric 
      $primaryFabric -Name "EdgeZoneProtectionContainer-t"
      
  9. Erstellen einer Replikationsrichtlinie

    $TempASRJob = New-AzRecoveryServicesAsrPolicy -AzureToAzure -Name 
    "ReplicationPolicy" -RecoveryPointRetentionInHours 24 -
    ApplicationConsistentSnapshotFrequencyInHours 4
    
    1. Verfolgen Sie, ob „Auftragsstatus“ auf „Abgeschlossen“ festgelegt ist.

      while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq 
      "NotStarted")){
       sleep 10;
       $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob
      }
      
    2. Nach erfolgreichem Abschluss muss der Auftragsstatus Erfolgreich lauten.

      Write-Output $TempASRJob.State
      
      $ReplicationPolicy = Get-AzRecoveryServicesAsrPolicy -Name "ReplicationPolicy"
      
  10. Erstellen Sie mithilfe der Replikationsrichtlinie eine Schutzcontainerzuordnung zwischen dem primären Schutzcontainer und Azure Site Recovery-Schutzcontainer.

    $TempASRJob = New-AzRecoveryServicesAsrProtectionContainerMapping -Name 
    "PrimaryToRecovery" -Policy $ReplicationPolicy -PrimaryProtectionContainer 
    $PrimaryProtectionContainer -RecoveryProtectionContainer 
    $RecoveryProtectionContainer
    
    1. Verfolgen Sie, ob „Auftragsstatus“ auf „Abgeschlossen“ festgelegt ist.

      while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq 
      "NotStarted")){
       sleep 10;
       $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob
      }
      
    2. Nach erfolgreichem Abschluss muss der Auftragsstatus Erfolgreich lauten.

      Write-Output $TempASRJob.State
      
      $EdgeZoneToAzurePCMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping -
      ProtectionContainer $PrimaryProtectionContainer -Name "PrimaryToRecovery"
      
    3. Erstellen Sie mithilfe der Replikationsrichtlinie eine Schutzcontainerzuordnung für ein Failback zwischen dem Azure Site Recovery-Schutzcontainer und primären Schutzcontainer.

      $TempASRJob = New-AzRecoveryServicesAsrProtectionContainerMapping -Name 
      "RecoveryToPrimary" -Policy $ReplicationPolicy -PrimaryProtectionContainer 
      $RecoveryProtectionContainer -RecoveryProtectionContainer 
      $PrimaryProtectionContainer
      
      1. Verfolgen Sie, ob „Auftragsstatus“ auf „Abgeschlossen“ festgelegt ist.

        while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq 
        "NotStarted")){
         sleep 10;
         $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob
        }
        
      2. Nach erfolgreichem Abschluss muss der Auftragsstatus Erfolgreich lauten.

        Write-Output $TempASRJob.State 
        $AzureToEdgeZonePCMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping -
        ProtectionContainer $RecoveryProtectionContainer -Name "RecoveryToPrimary"
        
  11. Erstellen Sie ein Cachespeicherkonto für Replikationsprotokolle in der primären Region. Das Cachespeicherkonto wird in der primären Region erstellt.

    $CacheStorageAccount = New-AzStorageAccount -Name "cachestorage" -ResourceGroupName 
    "<primary ResourceGroupName>" -Location '<EdgeZoneRegion>' -SkuName Standard_LRS -
    Kind Storage
    
  12. Erstellen Sie am Zielstandort auf jeden Fall ein virtuelles Netzwerk. Erstellen Sie in der Wiederherstellungsregion ein Wiederherstellungsnetzwerk.

    $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. Verwenden Sie das folgende PowerShell-Cmdlet, um einen virtuellen Azure-Computer mit verwalteten Datenträgern einer Azure Public MEC-Instanz zu replizieren. Dieser Schritt dauert etwa 20 Minuten.

    1. Rufen Sie die Ressourcengruppe ab, in der der virtuelle Computer erstellt werden muss, wenn ein Failover erfolgt.

      $RecoveryRG = Get-AzResourceGroup -Name "edgezonerecoveryrg" -Location "
      <EdgeZoneRegion>"
      
    2. Rufen Sie die VM ab, und zeigen Sie den Inhalt an.

      $vm = Get-AzVM -Name $vmName -ResourceGroupName $primaryResourceGroupName
      
    3. Geben Sie die Replikationseigenschaften für jeden Datenträger der VM an, der repliziert werden muss (Erstellen Sie eine Konfiguration der Datenträgerreplikation).

      #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. Datenträger

      1. Wenn die VM über einen Datenträger verfügt, verwenden Sie den folgenden Befehl, um die Datenträgerkonfiguration zu erstellen. Falls nicht, können Sie diesen Abschnitt überspringen. Von $datadiskId in $DataDisk1ReplicationConfig $datadiskId = $vm.StorageProfile.OSDisk.ManagedDisk.Id.

        Alternative:

        $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. Erstellen Sie ein durch Replikation geschütztes Element, um die Replikation zu starten. Verwenden Sie eine GUID für den Namen des per Replikation geschützten Elements, um dessen Eindeutigkeit sicherzustellen. Wenn Sie keine Wiederherstellung in einer Verfügbarkeitszone ausführen, geben Sie den Parameter -RecoveryAvailabilityZone nicht an.

      $TempASRJob = New-AzRecoveryServicesAsrReplicationProtectedItem -AzureToAzure -AzureVmId 
      $VM.Id -Name $vm.Name -ProtectionContainerMapping $EdgeZoneToAzurePCMapping -
      AzureToAzureDiskReplicationConfiguration $DataDisk1ReplicationConfig -
      RecoveryResourceGroupId $RecoveryRGId -RecoveryAvailabilityZone “1” -
      RecoveryAzureNetworkId $recoveryVnet.Id -RecoveryAzureSubnetName “defaultsubnetconf”
      
    6. Verfolgen Sie, ob „Auftragsstatus“ auf „Abgeschlossen“ festgelegt ist.

      while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){
      sleep 10; 
      $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob 
      } 
      
    7. Überprüfen Sie, ob der Auftrag erfolgreich abgeschlossen wurde. Der aktualisierte Auftragsstatus eines erfolgreich abgeschlossenen Auftrags muss Erfolgreich sein.

      Write-Output $TempASRJob.State
      
    8. Nachdem der Replikationsvorgang erfolgreich gestartet wurde, werden Daten des virtuellen Computers in die Wiederherstellungsregion repliziert.

    Wenn der Replikationsprozess beginnt, wird zunächst eine Kopie der replizierten Datenträger der VM in der Wiederherstellungsregion erstellt. Diese Phase wird als erste Replikationsphase bezeichnet. Dieser Schritt dauert ungefähr 20 Minuten. Prüfen Sie auf dem Blatt „Tresor“ unter Replizierte Elemente den Status der Replikation.

    Screenshot replizierter Elemente.

    Nach Abschluss der Replikation werden die Tresorreplikationselemente wie folgt angezeigt:

    Screenshot der Tresorreplikation.

    Nun ist der virtuelle Computer geschützt, sodass Sie ein Testfailover durchführen können. Nach Abschluss der ersten Replikation wechselt der Replikationsstatus des replizierten Elements, das den virtuellen Computer darstellt, in den Status „Geschützt“.

    Überwachen Sie den Replikationsstatus und die Replikationsintegrität für den virtuellen Computer, indem Sie Details des ihm entsprechenden replikationsgeschützten Elements abrufen:

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

    Wenn Geschützt in ProtectionState angezeigt wird, können Sie mit dem Testfailover fortfahren.

    Screenshot des Schutzstatus.

  14. Führen Sie ein Testfailover durch, überprüfen und bereinigen Sie es. Sie können das Testfailover überspringen. Ein Testfailover wird jedoch empfohlen, um sicherzustellen, dass Ihre sekundäre Region wie erwartet aktiv wird.

    1. Erstellen Sie ein separates Netzwerk für das Testfailover (das nicht mit dem Notfallwiederherstellungsnetzwerk verbunden ist).

      $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. Ausführen eines Testfailovers.

      $ReplicationProtectedItem = Get-AzRecoveryServicesAsrReplicationProtectedItem -
      FriendlyName "<VMName>" -ProtectionContainer $PrimaryProtectionContainer
      
      $TFOJob = Start-AzRecoveryServicesAsrTestFailoverJob -ReplicationProtectedItem 
      $ReplicationProtectedItem -AzureVMNetworkId $TFONetwork -Direction PrimaryToRecovery
      
    3. Warten Sie, bis der Auftrag abgeschlossen ist.

      while (($TFOJob.State -eq "InProgress") -or ($TFOJob.State -eq 
      "NotStarted")){
       sleep 10;
       $TFOJob = Get-AzRecoveryServicesAsrJob -Job $TFOJob
      }
      
    4. Warten Sie, bis das Testfailover abgeschlossen ist.

      Get-AzRecoveryServicesAsrJob -Job $TFOJob
      

    Hinweis

    Sie können auch den Fortschritt des Auftrags überprüfen, indem Sie zum Portal wechseln und zuerst den Tresor und dann die Site Recovery-Aufträge auswählen.

    Wenn das Testfailover erfolgreich angeschlossen wurde, können Sie eine Verbindung mit der Testfailover-VM herstellen und das Testfailover überprüfen. Nachdem Sie den Test für den virtuellen Testfailover-Computer abgeschlossen haben, bereinigen Sie die Testkopie, indem Sie den Vorgang zum Bereinigen des Testfailovers starten. Dieser Vorgang löscht die Testkopie des virtuellen Computers, die vom Testfailover erstellt wurde. Stellen Sie sicher, dass alle Zieleinstellungen auf der Testfailover-VM stimmen, einschließlich Standort, Netzwerkeinstellung, keine Datenbeschädigung und keine verloren gegangenen Daten auf der Ziel-VM. Jetzt können Sie das Testfailover löschen und das Failover starten.

    $Job_TFOCleanup = Start-AzRecoveryServicesAsrTestFailoverCleanupJob -
    ReplicationProtectedItem $ReplicationProtectedItem 
    Get-AzRecoveryServicesAsrJob -Job $Job_TFOCleanup | Select State
    
  15. Der nächste Schritt besteht im Ausführen eines Failovers für den virtuellen Computer. Bei diesem Schritt wird die VM mithilfe der replizierten Datenträger in der Wiederherstellungsregion erstellt.

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

    Die Liste der zurückgegebenen Wiederherstellungspunkte ist möglicherweise nicht chronologisch sortiert. Sie müssen diese zuerst so sortieren, dass Sie den ältesten oder neuesten Wiederherstellungspunkt für die VM finden können.

     "{0} {1}" -f $RecoveryPoints[0].RecoveryPointType, $RecoveryPoints[-
    1].RecoveryPointTime
    
    1. Starten Sie den Failoverauftrag.

      $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. Wenn der Failoverauftrag erfolgreich war, können Sie für das Failover ein Commit ausführen.

     $CommitFailoverJob = Start-AzRecoveryServicesAsrCommitFailoverJob -
    ReplicationProtectedItem $ReplicationProtectedItem 
    
    1. Warten Sie, bis der committete Failoverauftrag abgeschlossen ist.

      while (($CommitFailoverJob.State -eq "InProgress") -or ($CommitFailoverJob.State 
      -eq "NotStarted")){
       sleep 10;
       $CommitFailoverJob = Get-AzRecoveryServicesAsrJob -Job $CommitFailoverJob
      }
       Get-AzRecoveryServicesAsrJob -Job $CommitFailoverJOb
      
  17. Wenn Sie nach einem Failover zur ursprünglichen Region zurückkehren möchten, starten Sie eine umgekehrte Replikation für das replikationsgeschützte Element mit dem Cmdlet Update-AzRecoveryServicesAsrProtectionDirection.

    1. Erstellen Sie ein Cachespeicherkonto für Replikationsprotokolle in der Wiederherstellungsregion.

      $EdgeZoneCacheStorageAccount = New-AzStorageAccount -Name "cachestorageedgezone" -
      ResourceGroupName "<ResourceGroupName>" -Location '<EdgeZoneRegion>' -SkuName 
      Standard_LRS -Kind Storage
      
    2. Verwenden Sie den Wiederherstellungsschutzcontainer, das neue Cachespeicherkonto in der Region der Azure Public MEC-Instanz und die VM-Ressourcengruppe in der Quellregion.

      $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
      

    Dieser Schritt dauert ca. 20 Minuten, und der Status wechselt von In Bearbeitung zu Erfolgreich.

    Screenshot der Liste „Geschützte Elemente“.

  18. Deaktivieren der Replikation

    Remove-AzRecoveryServicesAsrReplicationProtectedItem -ReplicationProtectedItem 
    $ReplicationProtectedItem
    
  19. Bereinigen Sie die Umgebung. Dieser Schritt ist optional und dient zum Entfernen der Ressourcengruppe.

    Remove-AzResourceGroup -Name $Name -Force