Udostępnij za pośrednictwem


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

W tym artykule opisano sposób replikacji, trybu failover i powrotu po awarii maszyn wirtualnych platformy Azure działających w strefie rozszerzonej platformy Azure do nadrzędnego regionu świadczenia usługi Azure.

Ważne

Funkcja usługi Azure Site Recovery dla stref rozszerzonych jest w stanie wersji zapoznawczej.

Odzyskiwanie po awarii w strefie rozszerzonej platformy Azure

Usługa Site Recovery zapewnia ciągłość działania dzięki zachowaniu obciążeń uruchomionych podczas przestojów przez ciągłe replikowanie obciążenia z lokalizacji podstawowej do lokalizacji dodatkowej. Funkcje usługi ASR dla stref rozszerzonych są w wersji zapoznawczej.

W tym miejscu lokalizacja podstawowa to strefa rozszerzona platformy Azure, a lokalizacja pomocnicza to region nadrzędny, z którym jest połączona strefa rozszerzona platformy Azure.

Ważne

  • Podczas tworzenia maszyny wirtualnej nie obsługujemy replikacji w strefie rozszerzonej. Można ją włączyć na maszynie wirtualnej lub na stronach magazynu po utworzeniu maszyny wirtualnej.
  • W przypadku korzystania z konta magazynu strefy rozszerzonej jako konta magazynu pamięci podręcznej będą obsługiwane tylko konta usługi Block Blob Premium Storage.
  • W przypadku korzystania z konta magazynu rozszerzonej strefy jako konta magazynu pamięci podręcznej obsługiwane jest tylko wysokie współczynniki zmian.

Jeśli konto magazynu w regionie świadczenia usługi Azure jest używane jako konto magazynu pamięci podręcznej, obsługiwane są zarówno normalne, jak i wysokie współczynniki zmian.

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

Poniżej przedstawiono wymagania wstępne dotyczące konfigurowania odzyskiwania po awarii dla maszyn wirtualnych w strefie rozszerzonej platformy Azure przy użyciu programu PowerShell:

Wymagania wstępne

  • Upewnij się, że moduł Azure Az programu PowerShell 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 pomocy technicznej.

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

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

Uwaga

W tym przykładzie lokalizacja podstawowa to strefa rozszerzona platformy Azure, a lokalizacja pomocnicza/odzyskiwania to region strefy rozszerzonej platformy Azure.

  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 "<AzureRegion>"
    
  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ą usługi Primary Site Recovery.

    $TempASRJob = New-AzRecoveryServicesAsrFabric -Azure -Location “<AzureRegion>” -
    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, spaj 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 ramach podstawowej sieci szkieletowej).

      $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 ochrony podstawowej 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 na potrzeby 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 '<AzureRegion>' -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 '<AzureRegion>' -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ć maszynę wirtualną strefy rozszerzonej platformy Azure z dyskami zarządzanymi. Wykonanie tego kroku może potrwać około 20 minut.

    1. Pobierz grupę zasobów, w której musi zostać utworzona maszyna wirtualna po przejściu w tryb failover.

      $RecoveryRG = Get-AzResourceGroup -Name "edgezonerecoveryrg" -Location "
      <AzureRegion>"
      
    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óry musi zostać zreplikowany (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.

        Inna możliwość:

        $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 chronionego elementu replikacji, 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 tworzona jest kopia 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 replikowane 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ę pracy w trybie 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, uzyskując 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 przystąpić do testowania pracy w trybie failover.

    Zrzut ekranu przedstawiający stan ochrony.

  14. Przeprowadź, 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 pracy w trybie failover (nie połączono z siecią odzyskiwania po awarii).

      $TFOVnet = New-AzVirtualNetwork -Name "TFOvnet" -ResourceGroupName "edgezonerecoveryrg" 
      -Location '<AzureRegion>' -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 pozycję Zadania usługi Site Recovery.

    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 przełączonej w tryb failover testu wyczyść kopię testową, uruchamiając operację testowania pracy w trybie failover. Ta operacja usuwa testową kopię maszyny wirtualnej, która została utworzona przez test pracy w trybie failover. Sprawdź, czy wszystkie ustawienia docelowe znajdują się w 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 je posortować, 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. Po pomyślnym zakończeniu zadania trybu failover możesz zatwierdzić tryb failover.

     $CommitFailoverJob = Start-AzRecoveryServicesAsrCommitFailoverJob -
    ReplicationProtectedItem $ReplicationProtectedItem 
    
    1. Poczekaj 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 chronionego elementu replikacji przy użyciu Update-AzRecoveryServicesAsrProtectionDirection polecenia cmdlet .

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

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

      $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 zmieni się z W toku na Powodzenie.

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

  18. Wyłącz replikację.

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

    Remove-AzResourceGroup -Name $Name -Force
    

Następne kroki

  • Zapoznaj się z dokumentacją programu PowerShell usługi Azure Site Recovery, aby dowiedzieć się, jak tworzyć plany odzyskiwania, wykonywać przejścia w tryb failover i powroty po awarii za pomocą programu PowerShell.