Sdílet prostřednictvím


Replikace virtuálních počítačů běžících ve veřejném mec Azure do oblasti Azure

Důležité

Funkce Azure Site Recovery pro veřejný MEC jsou ve stavu Preview.

Tento článek popisuje, jak replikovat, převzetí služeb při selhání a navrácení služeb po obnovení virtuálních počítačů Azure spuštěných ve veřejném mec Azure do nadřazené oblasti Azure, kde je rozšířením Azure Public MEC.

Zotavení po havárii ve službě Azure Public MEC

Site Recovery zajišťuje provozní kontinuitu tím, že udržuje úlohy spuštěné během výpadků tím, že nepřetržitě replikuje úlohy z primárního do sekundárního umístění. Funkce ASR pro MEC je ve verzi Preview.

Tady je primárním umístěním veřejný mec Azure a sekundární umístění je nadřazená oblast, ke které je veřejný MEC Azure připojený.

Nastavení zotavení po havárii pro virtuální počítače ve veřejném mec Azure pomocí PowerShellu

Požadavky

  • Ujistěte se, že je nainstalovaný modul Azure Az PowerShell. Informace o instalaci najdete v tématu Instalace modulu Azure Az PowerShell.

  • Minimální verze Azure Az PowerShellu musí být 4.1.0. Aktuální verzi zobrazíte pomocí následujícího příkazu:

    Get-InstalledModule -Name Az
    
  • Ujistěte se, že azure Site Recovery podporuje verzi distribuce Linuxu a jádro. Další informace najdete v matici podpory.

Replikace virtuálních počítačů běžících ve veřejném mec Azure do oblasti Azure

Pokud chcete replikovat virtuální počítače spuštěné ve veřejném mec Azure do oblasti Azure, postupujte takto:

Poznámka

V tomto příkladu je primárním umístěním veřejný mec Azure a sekundárním/obnovovacím umístěním je oblast Azure Public MEC.

  1. Přihlaste se ke svému účtu Azure.

    Connect-AzAccount
    
  2. Vyberte Správné předplatné.

    $subscription = Get-AzSubscription -SubscriptionName "<SubscriptionName>" 
    Set-AzContext $subscription.Id 
    
  3. Získejte podrobnosti o virtuálním počítači, který plánujete replikovat.

    $VM = Get-AzVM -ResourceGroupName "<ResourceGroupName>" -Name "<VMName>" 
    
    Write-Output $VM 
    
  4. Vytvořte skupinu prostředků pro trezor služby Recovery Services v sekundární oblasti Azure.

    New-AzResourceGroup -Name "edgezonerecoveryrg" -Location "<EdgeZoneRegion>"
    
  5. Vytvořte nový trezor služby Recovery Services v sekundární oblasti.

    $vault = New-AzRecoveryServicesVault -Name "EdgeZoneRecoveryVault" -
    ResourceGroupName "edgezonerecovery" -Location "\<EdgeZoneRegion\>"
    Write-Output $vault
    
  6. Nastavte kontext trezoru.

    Set-AzRecoveryServicesAsrVaultContext -Vault $vault 
    
  7. Vytvoření primárního Site Recovery prostředků infrastruktury

    $TempASRJob = New-AzRecoveryServicesAsrFabric -Azure -Location “<EdgeZoneRegion>” -
    Name "EdgeZoneFabric"
    
    1. Sledujte stav úlohy a zkontrolujte dokončení.

      while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){
      
    2. Pokud se úloha nedokončila, 10 sekund v režimu spánku před opětovnou kontrolou stavu úlohy.

      sleep 10;
      $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob
      }
      
    3. Po úspěšném dokončení musí být stav úlohy Úspěšný.

      Write-Output $TempASRJob.State
      $PrimaryFabric = Get-AzRecoveryServicesAsrFabric -Name "EdgeZoneFabric"
      
  8. Primární prostředky infrastruktury použijte k vytvoření primárního kontejneru i kontejneru ochrany pro obnovení.

    $TempASRJob = New-AzRecoveryServicesAsrProtectionContainer -InputObject 
    $PrimaryFabric -Name "EdgeZoneProtectionContainer"
    
    1. Sledujte stav úlohy a zkontrolujte dokončení.

      while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq 
      "NotStarted")){
       sleep 10;
       $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob
      }
      Write-Output $TempASRJob.State
      
    2. V primární oblasti (v rámci primárních prostředků infrastruktury) se vytvoří primární kontejnery i kontejnery Recovery Protection.

      $PrimaryProtectionContainer = Get-AzRecoveryServicesAsrProtectionContainer -Fabric 
      $primaryFabric -Name "EdgeZoneProtectionContainer"
      $RecoveryProtectionContainer = Get-AzRecoveryServicesAsrProtectionContainer -Fabric 
      $primaryFabric -Name "EdgeZoneProtectionContainer-t"
      
  9. Vytvořit zásadu replikace.

    $TempASRJob = New-AzRecoveryServicesAsrPolicy -AzureToAzure -Name 
    "ReplicationPolicy" -RecoveryPointRetentionInHours 24 -
    ApplicationConsistentSnapshotFrequencyInHours 4
    
    1. Sledujte stav úlohy a zkontrolujte dokončení.

      while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq 
      "NotStarted")){
       sleep 10;
       $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob
      }
      
    2. Po úspěšném dokončení musí být stav úlohy Úspěšný.

      Write-Output $TempASRJob.State
      
      $ReplicationPolicy = Get-AzRecoveryServicesAsrPolicy -Name "ReplicationPolicy"
      
  10. Vytvořte mapování kontejneru ochrany mezi primárním kontejnerem ochrany a kontejnerem ochrany obnovení pomocí zásad replikace.

    $TempASRJob = New-AzRecoveryServicesAsrProtectionContainerMapping -Name 
    "PrimaryToRecovery" -Policy $ReplicationPolicy -PrimaryProtectionContainer 
    $PrimaryProtectionContainer -RecoveryProtectionContainer 
    $RecoveryProtectionContainer
    
    1. Sledujte stav úlohy a zkontrolujte dokončení.

      while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq 
      "NotStarted")){
       sleep 10;
       $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob
      }
      
    2. Po úspěšném dokončení musí být stav úlohy Úspěšný.

      Write-Output $TempASRJob.State
      
      $EdgeZoneToAzurePCMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping -
      ProtectionContainer $PrimaryProtectionContainer -Name "PrimaryToRecovery"
      
    3. Vytvořte mapování kontejneru ochrany pro navrácení služeb po obnovení mezi kontejnery obnovení a primární ochrany pomocí zásad replikace.

      $TempASRJob = New-AzRecoveryServicesAsrProtectionContainerMapping -Name 
      "RecoveryToPrimary" -Policy $ReplicationPolicy -PrimaryProtectionContainer 
      $RecoveryProtectionContainer -RecoveryProtectionContainer 
      $PrimaryProtectionContainer
      
      1. Sledujte stav úlohy a zkontrolujte dokončení.

        while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq 
        "NotStarted")){
         sleep 10;
         $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob
        }
        
      2. Po úspěšném dokončení musí být stav úlohy Úspěšný.

        Write-Output $TempASRJob.State 
        $AzureToEdgeZonePCMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping -
        ProtectionContainer $RecoveryProtectionContainer -Name "RecoveryToPrimary"
        
  11. Vytvořte účet úložiště mezipaměti pro protokoly replikace v primární oblasti. Účet úložiště mezipaměti se vytvoří v primární oblasti.

    $CacheStorageAccount = New-AzStorageAccount -Name "cachestorage" -ResourceGroupName 
    "<primary ResourceGroupName>" -Location '<EdgeZoneRegion>' -SkuName Standard_LRS -
    Kind Storage
    
  12. Ujistěte se, že v cílovém umístění vytvoříte virtuální síť. V oblasti obnovení vytvořte síť obnovení.

    $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. Pomocí následující rutiny PowerShellu replikujte veřejný virtuální počítač Azure MEC Azure se spravovanými disky. Dokončení tohoto kroku může trvat přibližně 20 minut.

    1. Získejte skupinu prostředků, ve které se virtuální počítač musí vytvořit při převzetí služeb při selhání.

      $RecoveryRG = Get-AzResourceGroup -Name "edgezonerecoveryrg" -Location "
      <EdgeZoneRegion>"
      
    2. Získání virtuálního počítače a zobrazení obsahu

      $vm = Get-AzVM -Name $vmName -ResourceGroupName $primaryResourceGroupName
      
    3. Zadejte vlastnosti replikace pro každý disk virtuálního počítače, který se musí replikovat (vytvořte konfiguraci replikace disku).

      #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. Datový disk

      1. Pokud má virtuální počítač datový disk, pomocí následujícího příkazu vytvořte konfiguraci disku. Pokud ne, můžete tuto část přeskočit. Od $datadiskId do $DataDisk1ReplicationConfig $datadiskId = $vm.StorageProfile.OSDisk.ManagedDisk.Id.

        Alternativně

        $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. Vytvořte položku chráněnou replikací, která spustí replikaci. Pokud chcete zajistit jedinečnost názvu, použijte identifikátor GUID pro název položky chráněné replikací. Pokud se neobnovujete do zóny dostupnosti, nezadávejte -RecoveryAvailabilityZone parametr.

      $TempASRJob = New-AzRecoveryServicesAsrReplicationProtectedItem -AzureToAzure -AzureVmId 
      $VM.Id -Name $vm.Name -ProtectionContainerMapping $EdgeZoneToAzurePCMapping -
      AzureToAzureDiskReplicationConfiguration $DataDisk1ReplicationConfig -
      RecoveryResourceGroupId $RecoveryRGId -RecoveryAvailabilityZone “1” -
      RecoveryAzureNetworkId $recoveryVnet.Id -RecoveryAzureSubnetName “defaultsubnetconf”
      
    6. Sledujte stav úlohy a zkontrolujte dokončení.

      while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){
      sleep 10; 
      $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob 
      } 
      
    7. Zkontrolujte, jestli se úloha úspěšně dokončila. Aktualizovaný stav úlohy úspěšně dokončené musí být Úspěch.

      Write-Output $TempASRJob.State
      
    8. Po úspěšném spuštění replikace se data virtuálního počítače replikují do oblasti obnovení.

    Při zahájení procesu replikace nejprve vytvoří kopii replikovaných disků virtuálního počítače v oblasti obnovení. Tato fáze se nazývá počáteční fáze replikace. Tento krok trvá přibližně 20 minut. Stav replikace najdete v okně Trezor v části Replikované položky.

    Snímek obrazovky s replikovanými položkami

    Po dokončení replikace se položky replikace trezoru zobrazí takto:

    Snímek obrazovky s replikací trezoru

    Virtuální počítač je teď chráněný a můžete provést testovací operaci převzetí služeb při selhání. Stav replikace replikované položky, která představuje virtuální počítač, přejde po dokončení počáteční replikace do chráněného stavu.

    Sledujte stav replikace a stav replikace virtuálního počítače tím, že získáte podrobnosti o položce chráněné replikací, která jí odpovídá:

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

    Pokud se v protectionstate zobrazí Chráněno, můžete pokračovat k testování převzetí služeb při selhání.

    Snímek obrazovky se stavem ochrany

  14. Proveďte, ověřte a vyčistíte testovací převzetí služeb při selhání. Testovací převzetí služeb při selhání můžete přeskočit. Doporučujeme ale provést testovací převzetí služeb při selhání, abyste měli jistotu, že vaše sekundární oblast bude fungovat podle očekávání.

    1. Vytvořte samostatnou síť pro testovací převzetí služeb při selhání (není připojená k síti zotavení po havárii).

      $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. Proveďte testovací převzetí služeb při selhání.

      $ReplicationProtectedItem = Get-AzRecoveryServicesAsrReplicationProtectedItem -
      FriendlyName "<VMName>" -ProtectionContainer $PrimaryProtectionContainer
      
      $TFOJob = Start-AzRecoveryServicesAsrTestFailoverJob -ReplicationProtectedItem 
      $ReplicationProtectedItem -AzureVMNetworkId $TFONetwork -Direction PrimaryToRecovery
      
    3. Počkejte, až se úloha dokončí.

      while (($TFOJob.State -eq "InProgress") -or ($TFOJob.State -eq 
      "NotStarted")){
       sleep 10;
       $TFOJob = Get-AzRecoveryServicesAsrJob -Job $TFOJob
      }
      
    4. Počkejte na dokončení testovacího převzetí služeb při selhání.

      Get-AzRecoveryServicesAsrJob -Job $TFOJob
      

    Poznámka

    Průběh úlohy můžete také zkontrolovat tak, že přejdete na portál, vyberete trezor a pak vyberete Site Recovery Úlohy.

    Po úspěšném dokončení testovací úlohy převzetí služeb při selhání se můžete připojit k testovacímu virtuálnímu počítači, u které došlo k převzetí služeb při selhání, a ověřit testovací převzetí služeb při selhání. Po dokončení testování na testovacím virtuálním počítači, u které došlo k převzetí služeb při selhání, vyčistěte testovací kopii spuštěním operace testovacího převzetí služeb při selhání. Tato operace odstraní testovací kopii virtuálního počítače, která byla vytvořena testovacím převzetím služeb při selhání. Ověřte, že všechna nastavení cíle jsou na testovacím virtuálním počítači s podporou převzetí služeb při selhání správná, včetně umístění, nastavení sítě, žádného poškození dat a žádné ztráty dat v cílovém virtuálním počítači. Teď můžete testovací převzetí služeb při selhání odstranit a spustit převzetí služeb při selhání.

    $Job_TFOCleanup = Start-AzRecoveryServicesAsrTestFailoverCleanupJob -
    ReplicationProtectedItem $ReplicationProtectedItem 
    Get-AzRecoveryServicesAsrJob -Job $Job_TFOCleanup | Select State
    
  15. Dalším krokem bude převzetí služeb při selhání virtuálního počítače. Tento krok vytvoří virtuální počítač pomocí replikovaných disků v oblasti obnovení.

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

    Seznam vrácených bodů obnovení nemusí být seřazen chronologicky. Abyste našli nejstarší nebo nejnovější body obnovení pro virtuální počítač, musíte je nejprve seřadit.

     "{0} {1}" -f $RecoveryPoints[0].RecoveryPointType, $RecoveryPoints[-
    1].RecoveryPointTime
    
    1. Spusťte úlohu převzetí služeb při selhání.

      $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. Když je úloha převzetí služeb při selhání úspěšná, můžete převzetí služeb při selhání potvrdit.

     $CommitFailoverJob = Start-AzRecoveryServicesAsrCommitFailoverJob -
    ReplicationProtectedItem $ReplicationProtectedItem 
    
    1. Počkejte, dokud se úloha potvrzení převzetí služeb při selhání nedokončí.

      while (($CommitFailoverJob.State -eq "InProgress") -or ($CommitFailoverJob.State 
      -eq "NotStarted")){
       sleep 10;
       $CommitFailoverJob = Get-AzRecoveryServicesAsrJob -Job $CommitFailoverJob
      }
       Get-AzRecoveryServicesAsrJob -Job $CommitFailoverJOb
      
  17. Jakmile budete po převzetí služeb při selhání připraveni vrátit se zpět do původní oblasti, spusťte pomocí rutiny zpětnou replikaci položky chráněné replikací Update-AzRecoveryServicesAsrProtectionDirection .

    1. Vytvořte účet úložiště mezipaměti pro protokoly replikace v oblasti obnovení.

      $EdgeZoneCacheStorageAccount = New-AzStorageAccount -Name "cachestorageedgezone" -
      ResourceGroupName "<ResourceGroupName>" -Location '<EdgeZoneRegion>' -SkuName 
      Standard_LRS -Kind Storage
      
    2. Použijte kontejner ochrany před obnovením, nový účet úložiště mezipaměti v oblasti Azure Public MEC a skupinu prostředků virtuálních počítačů ve zdrojové oblasti.

      $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
      

    Tento krok trvá přibližně 20 minut a stav se přesune z Probíhající na Úspěšný.

    Snímek obrazovky se seznamem Chráněných položek

  18. Zakažte replikaci.

    Remove-AzRecoveryServicesAsrReplicationProtectedItem -ReplicationProtectedItem 
    $ReplicationProtectedItem
    
  19. Vyčistěte prostředí. Tento krok je volitelný a dá se použít k odebrání skupiny prostředků.

    Remove-AzResourceGroup -Name $Name -Force