Replikowanie maszyn wirtualnych działających w publicznym mec platformy Azure do regionu platformy Azure

Ważne

Funkcja usługi Azure Site Recovery dla publicznej wersji MEC jest w stanie wersji zapoznawczej.

W tym artykule opisano sposób replikacji, trybu failover i powrotu po awarii maszyn wirtualnych platformy Azure działających w publicznym meC platformy Azure do nadrzędnego regionu świadczenia usługi Azure, w którym jest to rozszerzenie Azure Public MEC.

Odzyskiwanie po awarii w publicznej mec platformy Azure

Site Recovery zapewnia ciągłość działania dzięki zachowaniu obciążeń uruchomionych podczas awarii przez ciągłe replikowanie obciążenia z lokalizacji podstawowej do pomocniczej. Funkcja ASR dla usługi MEC jest dostępna w wersji zapoznawczej.

W tym miejscu lokalizacja podstawowa to publiczny serwer MEC platformy Azure, a lokalizacja pomocnicza to region nadrzędny, z którym połączono publiczną usługę Azure MEC.

Konfigurowanie odzyskiwania po awarii dla maszyn wirtualnych w publicznym meC platformy Azure przy użyciu programu PowerShell

Wymagania wstępne

  • Upewnij się, że moduł Az programu PowerShell platformy Azure jest zainstalowany. Aby uzyskać informacje na temat sposobu instalowania, zobacz Instalowanie modułu Azure Az programu PowerShell.

  • Minimalna wersja programu Azure Az programu PowerShell musi być 4.1.0. Użyj następującego polecenia, aby wyświetlić bieżącą wersję:

    Get-InstalledModule -Name Az
    
  • Upewnij się, że wersja dystrybucji systemu Linux i jądro są obsługiwane przez usługę Azure Site Recovery. Aby uzyskać więcej informacji, zobacz macierz obsługi.

Replikowanie maszyn wirtualnych działających w publicznym meC platformy Azure do regionu świadczenia usługi Azure

Aby replikować maszyny wirtualne uruchomione w publicznym meC platformy Azure do regionu świadczenia usługi Azure, wykonaj następujące kroki:

Uwaga

W tym przykładzie lokalizacja podstawowa to publiczny interfejs MEC platformy Azure, a lokalizacja pomocnicza/odzyskiwania to region publicznej usługi Azure MEC.

  1. Zaloguj się do konta platformy Azure.

    Connect-AzAccount
    
  2. Wybierz pozycję Właściwa subskrypcja.

    $subscription = Get-AzSubscription -SubscriptionName "<SubscriptionName>" 
    Set-AzContext $subscription.Id 
    
  3. Uzyskaj szczegółowe informacje o maszynie wirtualnej, którą planujesz replikować.

    $VM = Get-AzVM -ResourceGroupName "<ResourceGroupName>" -Name "<VMName>" 
    
    Write-Output $VM 
    
  4. Utwórz grupę zasobów dla magazynu usługi Recovery Services w regionie pomocniczym platformy Azure.

    New-AzResourceGroup -Name "edgezonerecoveryrg" -Location "<EdgeZoneRegion>"
    
  5. Utwórz nowy magazyn usługi Recovery Services w regionie pomocniczym.

    $vault = New-AzRecoveryServicesVault -Name "EdgeZoneRecoveryVault" -
    ResourceGroupName "edgezonerecovery" -Location "\<EdgeZoneRegion\>"
    Write-Output $vault
    
  6. Ustaw kontekst magazynu.

    Set-AzRecoveryServicesAsrVaultContext -Vault $vault 
    
  7. Utwórz sieć szkieletową podstawowej Site Recovery.

    $TempASRJob = New-AzRecoveryServicesAsrFabric -Azure -Location “<EdgeZoneRegion>” -
    Name "EdgeZoneFabric"
    
    1. Śledzenie stanu zadania w celu sprawdzenia ukończenia.

      while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){
      
    2. Jeśli zadanie nie zostało ukończone, przesypij przez 10 sekund przed ponownym sprawdzeniem stanu zadania.

      sleep 10;
      $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob
      }
      
    3. Po pomyślnym zakończeniu stan zadania musi mieć wartość Powodzenie.

      Write-Output $TempASRJob.State
      $PrimaryFabric = Get-AzRecoveryServicesAsrFabric -Name "EdgeZoneFabric"
      
  8. Użyj podstawowej sieci szkieletowej, aby utworzyć zarówno podstawowe, jak i kontenery ochrony odzyskiwania.

    $TempASRJob = New-AzRecoveryServicesAsrProtectionContainer -InputObject 
    $PrimaryFabric -Name "EdgeZoneProtectionContainer"
    
    1. Śledzenie stanu zadania w celu sprawdzenia ukończenia.

      while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq 
      "NotStarted")){
       sleep 10;
       $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob
      }
      Write-Output $TempASRJob.State
      
    2. Kontenery ochrony podstawowej i odzyskiwania są tworzone w regionie podstawowym (w sieci szkieletowej podstawowej).

      $PrimaryProtectionContainer = Get-AzRecoveryServicesAsrProtectionContainer -Fabric 
      $primaryFabric -Name "EdgeZoneProtectionContainer"
      $RecoveryProtectionContainer = Get-AzRecoveryServicesAsrProtectionContainer -Fabric 
      $primaryFabric -Name "EdgeZoneProtectionContainer-t"
      
  9. Tworzenie zasad replikacji.

    $TempASRJob = New-AzRecoveryServicesAsrPolicy -AzureToAzure -Name 
    "ReplicationPolicy" -RecoveryPointRetentionInHours 24 -
    ApplicationConsistentSnapshotFrequencyInHours 4
    
    1. Śledzenie stanu zadania w celu sprawdzenia ukończenia.

      while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq 
      "NotStarted")){
       sleep 10;
       $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob
      }
      
    2. Po pomyślnym zakończeniu stan zadania musi mieć wartość Powodzenie.

      Write-Output $TempASRJob.State
      
      $ReplicationPolicy = Get-AzRecoveryServicesAsrPolicy -Name "ReplicationPolicy"
      
  10. Utwórz mapowanie kontenera ochrony między kontenerami ochrony podstawowej i odzyskiwania przy użyciu zasad replikacji.

    $TempASRJob = New-AzRecoveryServicesAsrProtectionContainerMapping -Name 
    "PrimaryToRecovery" -Policy $ReplicationPolicy -PrimaryProtectionContainer 
    $PrimaryProtectionContainer -RecoveryProtectionContainer 
    $RecoveryProtectionContainer
    
    1. Śledzenie stanu zadania w celu sprawdzenia ukończenia.

      while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq 
      "NotStarted")){
       sleep 10;
       $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob
      }
      
    2. Po pomyślnym zakończeniu stan zadania musi mieć wartość Powodzenie.

      Write-Output $TempASRJob.State
      
      $EdgeZoneToAzurePCMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping -
      ProtectionContainer $PrimaryProtectionContainer -Name "PrimaryToRecovery"
      
    3. Utwórz mapowanie kontenera ochrony na potrzeby powrotu po awarii między kontenerami odzyskiwania i podstawowej ochrony przy użyciu zasad replikacji.

      $TempASRJob = New-AzRecoveryServicesAsrProtectionContainerMapping -Name 
      "RecoveryToPrimary" -Policy $ReplicationPolicy -PrimaryProtectionContainer 
      $RecoveryProtectionContainer -RecoveryProtectionContainer 
      $PrimaryProtectionContainer
      
      1. Śledzenie stanu zadania w celu sprawdzenia ukończenia.

        while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq 
        "NotStarted")){
         sleep 10;
         $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob
        }
        
      2. Po pomyślnym zakończeniu stan zadania musi mieć wartość Powodzenie.

        Write-Output $TempASRJob.State 
        $AzureToEdgeZonePCMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping -
        ProtectionContainer $RecoveryProtectionContainer -Name "RecoveryToPrimary"
        
  11. Utwórz konto magazynu pamięci podręcznej dla dzienników replikacji w regionie podstawowym. Konto magazynu pamięci podręcznej jest tworzone w regionie podstawowym.

    $CacheStorageAccount = New-AzStorageAccount -Name "cachestorage" -ResourceGroupName 
    "<primary ResourceGroupName>" -Location '<EdgeZoneRegion>' -SkuName Standard_LRS -
    Kind Storage
    
  12. Upewnij się, że sieć wirtualna zostanie utworzona w lokalizacji docelowej. Utwórz sieć odzyskiwania w regionie odzyskiwania.

    $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. Użyj następującego polecenia cmdlet programu PowerShell, aby replikować publiczną maszynę wirtualną platformy Azure MEC platformy Azure z dyskami zarządzanymi. Ukończenie tego kroku może potrwać około 20 minut.

    1. Pobierz grupę zasobów, w ramach którą należy utworzyć maszynę wirtualną po przejściu w tryb failover.

      $RecoveryRG = Get-AzResourceGroup -Name "edgezonerecoveryrg" -Location "
      <EdgeZoneRegion>"
      
    2. Pobierz maszynę wirtualną i wyświetl zawartość.

      $vm = Get-AzVM -Name $vmName -ResourceGroupName $primaryResourceGroupName
      
    3. Określ właściwości replikacji dla każdego dysku maszyny wirtualnej, które muszą być replikowane (utwórz konfigurację replikacji dysku).

      #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. Dysk danych

      1. Jeśli maszyna wirtualna ma dysk danych, użyj następującego polecenia, aby utworzyć konfigurację dysku. Jeśli nie, możesz pominąć tę sekcję. Od $datadiskId do $DataDisk1ReplicationConfig $datadiskId = $vm.StorageProfile.OSDisk.ManagedDisk.Id.

        Alternatywnie

        $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. Utwórz element chroniony przez replikację, aby rozpocząć replikację. Użyj identyfikatora GUID nazwy elementu chronionego przez replikację, aby zapewnić unikatowość nazwy. Jeśli nie odzyskujesz danych do strefy dostępności, nie podaj parametru -RecoveryAvailabilityZone .

      $TempASRJob = New-AzRecoveryServicesAsrReplicationProtectedItem -AzureToAzure -AzureVmId 
      $VM.Id -Name $vm.Name -ProtectionContainerMapping $EdgeZoneToAzurePCMapping -
      AzureToAzureDiskReplicationConfiguration $DataDisk1ReplicationConfig -
      RecoveryResourceGroupId $RecoveryRGId -RecoveryAvailabilityZone “1” -
      RecoveryAzureNetworkId $recoveryVnet.Id -RecoveryAzureSubnetName “defaultsubnetconf”
      
    6. Śledzenie stanu zadania w celu sprawdzenia ukończenia.

      while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){
      sleep 10; 
      $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob 
      } 
      
    7. Sprawdź, czy zadanie zostało ukończone pomyślnie. Zaktualizowany stan zadania zakończonego pomyślnie musi mieć wartość Powodzenie.

      Write-Output $TempASRJob.State
      
    8. Po pomyślnym zakończeniu operacji uruchamiania replikacji dane maszyny wirtualnej są replikowane do regionu odzyskiwania.

    Początkowo po uruchomieniu procesu replikacji tworzy kopię replikujących dysków maszyny wirtualnej w regionie odzyskiwania. Ta faza jest nazywana fazą replikacji początkowej. Ten krok trwa około 20 minut. Zobacz stan replikacji w bloku Magazyn w obszarze Zreplikowane elementy.

    Zrzut ekranu przedstawiający zreplikowane elementy.

    Po zakończeniu replikacji elementy replikacji magazynu będą wyświetlane w następujący sposób:

    Zrzut ekranu przedstawiający replikację magazynu.

    Teraz maszyna wirtualna jest chroniona i można wykonać testową operację trybu failover. Stan replikacji replikowanego elementu, który reprezentuje maszynę wirtualną, przechodzi do stanu chronionego po zakończeniu replikacji początkowej.

    Monitoruj stan replikacji i kondycję replikacji dla maszyny wirtualnej, aby uzyskać szczegółowe informacje o chronionym elemencie replikacji, który mu odpowiada:

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

    Jeśli w obszarze ProtectionState jest widoczna wartość Chroniona, możesz przejść do testowania trybu failover.

    Zrzut ekranu przedstawiający stan ochrony.

  14. Wykonaj, zweryfikuj i wyczyść test pracy w trybie failover. Możesz pominąć test pracy w trybie failover. Zalecamy jednak wykonanie testu pracy w trybie failover, aby upewnić się, że region pomocniczy jest wyświetlany zgodnie z oczekiwaniami.

    1. Utwórz oddzielną sieć do testowania trybu failover (nie połączono z siecią odzyskiwania po awarii).

      $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. Przeprowadź test pracy w trybie failover.

      $ReplicationProtectedItem = Get-AzRecoveryServicesAsrReplicationProtectedItem -
      FriendlyName "<VMName>" -ProtectionContainer $PrimaryProtectionContainer
      
      $TFOJob = Start-AzRecoveryServicesAsrTestFailoverJob -ReplicationProtectedItem 
      $ReplicationProtectedItem -AzureVMNetworkId $TFONetwork -Direction PrimaryToRecovery
      
    3. Poczekaj na zakończenie zadania.

      while (($TFOJob.State -eq "InProgress") -or ($TFOJob.State -eq 
      "NotStarted")){
       sleep 10;
       $TFOJob = Get-AzRecoveryServicesAsrJob -Job $TFOJob
      }
      
    4. Poczekaj na ukończenie testu pracy w trybie failover.

      Get-AzRecoveryServicesAsrJob -Job $TFOJob
      

    Uwaga

    Możesz również sprawdzić postęp zadania, przechodząc do portalu, wybierając magazyn, a następnie wybierając Site Recovery Zadania.

    Po pomyślnym zakończeniu testu pracy w trybie failover można nawiązać połączenie z testowym przełączonym w tryb failover maszyną wirtualną i zweryfikować test pracy w trybie failover. Po zakończeniu testowania na maszynie wirtualnej w trybie failover przeczyść kopię testową, uruchamiając operację testu pracy w trybie failover. Ta operacja usuwa kopię testową maszyny wirtualnej, która została utworzona przez test pracy w trybie failover. Sprawdź, czy wszystkie ustawienia docelowe znajdują się bezpośrednio na testowej maszynie wirtualnej trybu failover, w tym lokalizacji, ustawieniu sieci, braku uszkodzenia danych i utracieniu danych na docelowej maszynie wirtualnej. Teraz możesz usunąć test pracy w trybie failover i uruchomić tryb failover.

    $Job_TFOCleanup = Start-AzRecoveryServicesAsrTestFailoverCleanupJob -
    ReplicationProtectedItem $ReplicationProtectedItem 
    Get-AzRecoveryServicesAsrJob -Job $Job_TFOCleanup | Select State
    
  15. Następnym krokiem będzie przełączenie maszyny wirtualnej w tryb failover. Ten krok spowoduje utworzenie maszyny wirtualnej przy użyciu replikowanych dysków w regionie odzyskiwania.

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

    Lista zwracanych punktów odzyskiwania może nie być sortowana chronologicznie. Najpierw należy posortować te elementy, aby znaleźć najstarsze lub najnowsze punkty odzyskiwania dla maszyny wirtualnej.

     "{0} {1}" -f $RecoveryPoints[0].RecoveryPointType, $RecoveryPoints[-
    1].RecoveryPointTime
    
    1. Uruchom zadanie trybu 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
      
  16. Gdy zadanie trybu failover zakończy się pomyślnie, możesz zatwierdzić tryb failover.

     $CommitFailoverJob = Start-AzRecoveryServicesAsrCommitFailoverJob -
    ReplicationProtectedItem $ReplicationProtectedItem 
    
    1. Zaczekaj na zakończenie zadania zatwierdzania trybu failover.

      while (($CommitFailoverJob.State -eq "InProgress") -or ($CommitFailoverJob.State 
      -eq "NotStarted")){
       sleep 10;
       $CommitFailoverJob = Get-AzRecoveryServicesAsrJob -Job $CommitFailoverJob
      }
       Get-AzRecoveryServicesAsrJob -Job $CommitFailoverJOb
      
  17. Po przejściu w tryb failover, gdy wszystko będzie gotowe do powrotu do oryginalnego regionu, uruchom replikację odwrotną dla elementu chronionego replikacją przy użyciu Update-AzRecoveryServicesAsrProtectionDirection polecenia cmdlet .

    1. Utwórz konto magazynu pamięci podręcznej dla dzienników replikacji w regionie odzyskiwania.

      $EdgeZoneCacheStorageAccount = New-AzStorageAccount -Name "cachestorageedgezone" -
      ResourceGroupName "<ResourceGroupName>" -Location '<EdgeZoneRegion>' -SkuName 
      Standard_LRS -Kind Storage
      
    2. Użyj kontenera ochrony odzyskiwania, nowego konta magazynu pamięci podręcznej w regionie publicznej usługi Azure MEC i grupy zasobów maszyny wirtualnej regionu źródłowego.

      $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
      

    Ten krok trwa ok. 20 minut, a stan zostanie przeniesiony z W toku do Pomyślne.

    Zrzut ekranu przedstawiający listę Elementów chronionych.

  18. Wyłącz replikację.

    Remove-AzRecoveryServicesAsrReplicationProtectedItem -ReplicationProtectedItem 
    $ReplicationProtectedItem
    
  19. Wyczyść środowisko. Ten krok jest opcjonalny i może służyć do usunięcia grupy zasobów.

    Remove-AzResourceGroup -Name $Name -Force