Azure Genel MEC'de çalışan sanal makineleri Azure bölgesine çoğaltma

Önemli

Genel MEC için Azure Site Recovery işlevselliği önizleme durumundadır.

Bu makalede, Azure Genel MEC üzerinde çalışan Azure sanal makinelerini (VM) Azure Genel MEC'nin bir uzantı olduğu üst Azure bölgesine çoğaltma, yük devretme ve yeniden çalışma açıklanmaktadır.

Azure Genel MEC'de olağanüstü durum kurtarma

Site Recovery, iş yükünü birincil konumdan ikincil konuma sürekli çoğaltarak kesintiler sırasında iş yüklerini çalışır durumda tutarak iş sürekliliğini güvence altına alır. MEC için ASR işlevi önizleme aşamasındadır.

Burada birincil konum bir Azure Genel MEC, ikincil konum ise Azure Genel MEC'nin bağlı olduğu üst bölgedir.

PowerShell kullanarak Azure Genel MEC'deki VM'ler için olağanüstü durum kurtarmayı ayarlama

Önkoşullar

  • Azure Az PowerShell modülünün yüklü olduğundan emin olun. Yükleme hakkında bilgi için bkz. Azure Az PowerShell modülünü yükleme.

  • En düşük Azure Az PowerShell sürümü 4.1.0 olmalıdır. Geçerli sürümü görmek için aşağıdaki komutu kullanın:

    Get-InstalledModule -Name Az
    
  • Linux dağıtım sürümünün ve çekirdeğinin Azure Site Recovery tarafından desteklendiğinden emin olun. Daha fazla bilgi için bkz. destek matrisi.

Azure Genel MEC'de çalışan sanal makineleri Azure bölgesine çoğaltma

Azure Genel MEC'de çalışan VM'leri Azure bölgesine çoğaltmak için şu adımları izleyin:

Not

Bu örnekte birincil konum bir Azure Genel MEC, ikincil/kurtarma konumu ise Azure Genel MEC'nin bölgesidir.

  1. Azure hesabınızda oturum açın.

    Connect-AzAccount
    
  2. Doğru abonelik'i seçin.

    $subscription = Get-AzSubscription -SubscriptionName "<SubscriptionName>" 
    Set-AzContext $subscription.Id 
    
  3. Çoğaltmayı planladığınız sanal makinenin ayrıntılarını alın.

    $VM = Get-AzVM -ResourceGroupName "<ResourceGroupName>" -Name "<VMName>" 
    
    Write-Output $VM 
    
  4. İkincil Azure bölgesinde kurtarma hizmetleri kasası için bir kaynak grubu oluşturun.

    New-AzResourceGroup -Name "edgezonerecoveryrg" -Location "<EdgeZoneRegion>"
    
  5. İkincil bölgede yeni bir Kurtarma hizmetleri kasası oluşturun.

    $vault = New-AzRecoveryServicesVault -Name "EdgeZoneRecoveryVault" -
    ResourceGroupName "edgezonerecovery" -Location "\<EdgeZoneRegion\>"
    Write-Output $vault
    
  6. Kasa bağlamını ayarlayın.

    Set-AzRecoveryServicesAsrVaultContext -Vault $vault 
    
  7. Birincil Site Recovery dokusu oluşturun.

    $TempASRJob = New-AzRecoveryServicesAsrFabric -Azure -Location “<EdgeZoneRegion>” -
    Name "EdgeZoneFabric"
    
    1. Tamamlanmasını denetlemek için İş durumunu izleyin.

      while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){
      
    2. İş tamamlanmadıysa, iş durumunu yeniden denetlemeden önce 10 saniye uyku moduna geçin.

      sleep 10;
      $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob
      }
      
    3. Başarıyla tamamlandığında, iş durumu Başarılı olmalıdır.

      Write-Output $TempASRJob.State
      $PrimaryFabric = Get-AzRecoveryServicesAsrFabric -Name "EdgeZoneFabric"
      
  8. Hem birincil hem de kurtarma koruma kapsayıcıları oluşturmak için birincil dokuyu kullanın.

    $TempASRJob = New-AzRecoveryServicesAsrProtectionContainer -InputObject 
    $PrimaryFabric -Name "EdgeZoneProtectionContainer"
    
    1. Tamamlanmasını denetlemek için İş durumunu izleyin.

      while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq 
      "NotStarted")){
       sleep 10;
       $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob
      }
      Write-Output $TempASRJob.State
      
    2. Hem birincil hem de kurtarma Koruması kapsayıcıları birincil bölgede (Birincil doku içinde) oluşturulur.

      $PrimaryProtectionContainer = Get-AzRecoveryServicesAsrProtectionContainer -Fabric 
      $primaryFabric -Name "EdgeZoneProtectionContainer"
      $RecoveryProtectionContainer = Get-AzRecoveryServicesAsrProtectionContainer -Fabric 
      $primaryFabric -Name "EdgeZoneProtectionContainer-t"
      
  9. Bir çoğaltma ilkesi oluşturma.

    $TempASRJob = New-AzRecoveryServicesAsrPolicy -AzureToAzure -Name 
    "ReplicationPolicy" -RecoveryPointRetentionInHours 24 -
    ApplicationConsistentSnapshotFrequencyInHours 4
    
    1. Tamamlanmasını denetlemek için İş durumunu izleyin.

      while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq 
      "NotStarted")){
       sleep 10;
       $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob
      }
      
    2. Başarıyla tamamlandığında, iş durumu Başarılı olmalıdır.

      Write-Output $TempASRJob.State
      
      $ReplicationPolicy = Get-AzRecoveryServicesAsrPolicy -Name "ReplicationPolicy"
      
  10. Çoğaltma ilkesiyle birincil ve kurtarma koruma kapsayıcıları arasında bir koruma kapsayıcısı eşlemesi oluşturun.

    $TempASRJob = New-AzRecoveryServicesAsrProtectionContainerMapping -Name 
    "PrimaryToRecovery" -Policy $ReplicationPolicy -PrimaryProtectionContainer 
    $PrimaryProtectionContainer -RecoveryProtectionContainer 
    $RecoveryProtectionContainer
    
    1. Tamamlanmasını denetlemek için İş durumunu izleyin.

      while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq 
      "NotStarted")){
       sleep 10;
       $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob
      }
      
    2. Başarıyla tamamlandığında, iş durumu Başarılı olmalıdır.

      Write-Output $TempASRJob.State
      
      $EdgeZoneToAzurePCMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping -
      ProtectionContainer $PrimaryProtectionContainer -Name "PrimaryToRecovery"
      
    3. Çoğaltma ilkesiyle kurtarma ve birincil koruma kapsayıcıları arasında yeniden çalışma için bir koruma kapsayıcısı eşlemesi oluşturun.

      $TempASRJob = New-AzRecoveryServicesAsrProtectionContainerMapping -Name 
      "RecoveryToPrimary" -Policy $ReplicationPolicy -PrimaryProtectionContainer 
      $RecoveryProtectionContainer -RecoveryProtectionContainer 
      $PrimaryProtectionContainer
      
      1. Tamamlanmasını denetlemek için İş durumunu izleyin.

        while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq 
        "NotStarted")){
         sleep 10;
         $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob
        }
        
      2. Başarıyla tamamlandığında, iş durumu Başarılı olmalıdır.

        Write-Output $TempASRJob.State 
        $AzureToEdgeZonePCMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping -
        ProtectionContainer $RecoveryProtectionContainer -Name "RecoveryToPrimary"
        
  11. Birincil bölgedeki çoğaltma günlükleri için bir önbellek depolama hesabı oluşturun. Önbellek depolama hesabı birincil bölgede oluşturulur.

    $CacheStorageAccount = New-AzStorageAccount -Name "cachestorage" -ResourceGroupName 
    "<primary ResourceGroupName>" -Location '<EdgeZoneRegion>' -SkuName Standard_LRS -
    Kind Storage
    
  12. Hedef konumda bir sanal ağ oluşturduğunuzdan emin olun. Kurtarma bölgesinde bir Kurtarma Ağı oluşturun.

    $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. Azure Genel MEC Azure sanal makinesini yönetilen disklerle çoğaltmak için aşağıdaki PowerShell cmdlet'ini kullanın. Bu adımın tamamlanması yaklaşık 20 dakika sürebilir.

    1. Yük devredildiğinde sanal makinenin oluşturulması gereken kaynak grubunu alın.

      $RecoveryRG = Get-AzResourceGroup -Name "edgezonerecoveryrg" -Location "
      <EdgeZoneRegion>"
      
    2. VM alma ve içeriği görüntüleme.

      $vm = Get-AzVM -Name $vmName -ResourceGroupName $primaryResourceGroupName
      
    3. Çoğaltılması gereken vm'nin her diski için çoğaltma özelliklerini belirtin (disk çoğaltma yapılandırması oluşturun).

      #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. Veri diski

      1. VM'de veri diski varsa, disk yapılandırması oluşturmak için aşağıdaki komutu kullanın. Aksi takdirde bu bölümü atlayabilirsiniz. Kaynaktan $datadiskId öğesine $DataDisk1ReplicationConfig $datadiskId = $vm.StorageProfile.OSDisk.ManagedDisk.Id.

        Alternatif olarak

        $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. Çoğaltmayı başlatmak için çoğaltma korumalı bir öğe oluşturun. Adın benzersiz olduğundan emin olmak için çoğaltma korumalı öğenin adı için BIR GUID kullanın. Kullanılabilirlik Alanına kurtarmıyorsanız parametresini sağlamayın -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. Tamamlanmasını denetlemek için İş durumunu izleyin.

      while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){
      sleep 10; 
      $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob 
      } 
      
    7. İşin başarıyla tamamlandığını denetleyin. Başarıyla tamamlanan bir işin güncelleştirilmiş iş durumu Başarılı olmalıdır.

      Write-Output $TempASRJob.State
      
    8. Çoğaltmayı başlatma işlemi başarılı olduktan sonra sanal makine verileri kurtarma bölgesine çoğaltılır.

    Başlangıçta, çoğaltma işlemi başladığında, kurtarma bölgesindeki sanal makinenin çoğaltma disklerinin bir kopyasını oluşturur. Bu aşama ilk çoğaltma aşaması olarak adlandırılır. Bu adım yaklaşık 20 dakika sürer. Çoğaltılan öğeler altındaki Kasa dikey penceresinde çoğaltmanın durumuna bakın.

    Çoğaltılan öğelerin ekran görüntüsü.

    Çoğaltma tamamlandığında, Kasa çoğaltma öğeleri aşağıdaki gibi gösterilir:

    Kasa çoğaltmasının ekran görüntüsü.

    Artık sanal makine korunuyor ve yük devretme testi işlemi gerçekleştirebilirsiniz. Sanal makineyi temsil eden çoğaltılan öğenin çoğaltma durumu, ilk çoğaltma tamamlandıktan sonra korumalı duruma gider.

    Sanal makineye karşılık gelen çoğaltma korumalı öğenin ayrıntılarını alarak sanal makine için çoğaltma durumunu ve çoğaltma durumunu izleyin:

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

    ProtectionState içinde Protected ifadesini görürseniz yük devretme testine devam etmeye hazırsınızdır.

    Koruma durumunun ekran görüntüsü.

  14. Yük devretme testi gerçekleştirme, doğrulama ve temizleme. Yük devretme testi'ni atlayabilirsiniz. Ancak, ikincil bölgenizin beklendiği gibi geldiğinden emin olmak için yük devretme testi yürütmenizi öneririz.

    1. Yük devretme testi için ayrı bir ağ oluşturun (DR ağıma bağlı değil).

      $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. Yük devretme testi gerçekleştirin.

      $ReplicationProtectedItem = Get-AzRecoveryServicesAsrReplicationProtectedItem -
      FriendlyName "<VMName>" -ProtectionContainer $PrimaryProtectionContainer
      
      $TFOJob = Start-AzRecoveryServicesAsrTestFailoverJob -ReplicationProtectedItem 
      $ReplicationProtectedItem -AzureVMNetworkId $TFONetwork -Direction PrimaryToRecovery
      
    3. İş bitene kadar bekleyin.

      while (($TFOJob.State -eq "InProgress") -or ($TFOJob.State -eq 
      "NotStarted")){
       sleep 10;
       $TFOJob = Get-AzRecoveryServicesAsrJob -Job $TFOJob
      }
      
    4. Yük devretme testinin tamamlanmasını bekleyin.

      Get-AzRecoveryServicesAsrJob -Job $TFOJob
      

    Not

    Ayrıca portala gidip Kasa'yı ve ardından İşler'i Site Recovery seçerek işin ilerleme durumunu de kontrol edebilirsiniz.

    Yük devretme testi işi başarıyla tamamlandıktan sonra sanal makinede başarısız olan teste bağlanabilir ve yük devretme testini doğrulayabilirsiniz. Sanal makinede yük devretme testi tamamlandıktan sonra, test yük devretme işlemini başlatarak test kopyasını temizleyin. Bu işlem, yük devretme testi tarafından oluşturulan sanal makinenin test kopyasını siler. Konum, ağ ayarı, veri bozulması ve hedef VM'de veri kaybı olmaması dahil olmak üzere tüm hedef ayarların yük devretme testi VM'sinde doğru olduğunu doğrulayın. Artık yük devretme testini silebilir ve yük devretmeyi başlatabilirsiniz.

    $Job_TFOCleanup = Start-AzRecoveryServicesAsrTestFailoverCleanupJob -
    ReplicationProtectedItem $ReplicationProtectedItem 
    Get-AzRecoveryServicesAsrJob -Job $Job_TFOCleanup | Select State
    
  15. Sonraki adım sanal makinenin yükünü devretmek olacaktır. Bu adım, kurtarma bölgesindeki çoğaltılan diskleri kullanarak VM'yi oluşturur.

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

    Döndürülen kurtarma noktaları listesi kronolojik olarak sıralanmayabilir. Sanal makinenin en eski veya en son kurtarma noktalarını bulmak için önce bunları sıralamanız gerekir.

     "{0} {1}" -f $RecoveryPoints[0].RecoveryPointType, $RecoveryPoints[-
    1].RecoveryPointTime
    
    1. Yük devretme işini başlatı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. Yük devretme işi başarılı olduğunda yük devretmeyi işleyebilirsiniz.

     $CommitFailoverJob = Start-AzRecoveryServicesAsrCommitFailoverJob -
    ReplicationProtectedItem $ReplicationProtectedItem 
    
    1. İşleme yük devretme işi tamamlanana kadar bekleyin.

      while (($CommitFailoverJob.State -eq "InProgress") -or ($CommitFailoverJob.State 
      -eq "NotStarted")){
       sleep 10;
       $CommitFailoverJob = Get-AzRecoveryServicesAsrJob -Job $CommitFailoverJob
      }
       Get-AzRecoveryServicesAsrJob -Job $CommitFailoverJOb
      
  17. Yük devretme işleminden sonra, özgün bölgeye geri dönmeye hazır olduğunuzda, cmdlet'ini kullanarak çoğaltma korumalı öğe için ters çoğaltmayı Update-AzRecoveryServicesAsrProtectionDirection başlatın.

    1. Kurtarma bölgesindeki çoğaltma günlükleri için Önbellek depolama hesabı oluşturun.

      $EdgeZoneCacheStorageAccount = New-AzStorageAccount -Name "cachestorageedgezone" -
      ResourceGroupName "<ResourceGroupName>" -Location '<EdgeZoneRegion>' -SkuName 
      Standard_LRS -Kind Storage
      
    2. Kurtarma koruma kapsayıcısını, Azure Genel MEC bölgesindeki yeni önbellek depolama hesabını ve kaynak bölge VM kaynak grubunu kullanın.

      $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
      

    Bu adım yaklaşık 20 dakika sürer ve durum Sürüyor durumundan Başarılı'ya geçer.

    Korumalı öğeler listesinin ekran görüntüsü.

  18. Çoğaltmayı devre dışı bırakın.

    Remove-AzRecoveryServicesAsrReplicationProtectedItem -ReplicationProtectedItem 
    $ReplicationProtectedItem
    
  19. Ortamı temizleyin. Bu adım isteğe bağlıdır ve kaynak grubunu kaldırmak için kullanılabilir.

    Remove-AzResourceGroup -Name $Name -Force