نسخ الأجهزة الظاهرية التي تعمل في Azure Public MEC إلى منطقة Azure

هام

وظيفة Azure Site Recovery ل Public MEC في حالة المعاينة.

توضح هذه المقالة كيفية النسخ المتماثل وتجاوز الفشل وإرجاع الموارد إلى أجهزة Azure الظاهرية (VMs) التي تعمل على Azure Public MEC إلى منطقة Azure الأصل حيث Azure Public MEC هو ملحق.

الإصلاح بعد كارثة في Azure Public MEC

يضمن Site Recovery استمرارية الأعمال من خلال الحفاظ على تشغيل أحمال العمل أثناء الانقطاعات عن طريق نسخ حمل العمل باستمرار من الموقع الأساسي إلى الموقع الثانوي. وظيفة ASR ل MEC قيد المعاينة.

هنا الموقع الأساسي هو Azure Public MEC والموقع الثانوي هو المنطقة الأصل التي يتصل بها Azure Public MEC.

إعداد الإصلاح بعد كارثة للأجهزة الظاهرية في Azure Public MEC باستخدام PowerShell

المتطلبات الأساسية

  • تأكد من تثبيت وحدة Azure Az PowerShell النمطية. للحصول على معلومات حول كيفية التثبيت، راجع تثبيت الوحدة النمطية Azure Az PowerShell.

  • يجب أن يكون الحد الأدنى لإصدار Azure Az PowerShell هو 4.1.0. استخدم الأمر التالي لمشاهدة الإصدار الحالي:

    Get-InstalledModule -Name Az
    
  • تأكد من دعم إصدار توزيعة Linux والنواة بواسطة Azure Site Recovery. لمزيد من المعلومات، راجع مصفوفة الدعم.

نسخ الأجهزة الظاهرية التي تعمل في Azure Public MEC إلى منطقة Azure

لنسخ الأجهزة الظاهرية التي تعمل في Azure Public MEC إلى منطقة Azure، اتبع الخطوات التالية:

ملاحظة

على سبيل المثال، الموقع الأساسي هو Azure Public MEC، وموقع الثانوي/الاسترداد هو منطقة Azure Public MEC.

  1. سجل الدخول إلى حساب Azure الخاص بك.

    Connect-AzAccount
    
  2. حدد Right subscription.

    $subscription = Get-AzSubscription -SubscriptionName "<SubscriptionName>" 
    Set-AzContext $subscription.Id 
    
  3. احصل على تفاصيل الجهاز الظاهري الذي تخطط لنسخه نسخا متماثلا.

    $VM = Get-AzVM -ResourceGroupName "<ResourceGroupName>" -Name "<VMName>" 
    
    Write-Output $VM 
    
  4. إنشاء مجموعة موارد لمخزن خدمات الاسترداد في منطقة Azure الثانوية.

    New-AzResourceGroup -Name "edgezonerecoveryrg" -Location "<EdgeZoneRegion>"
    
  5. إنشاء مخزن جديد لخدمات الاسترداد في المنطقة الثانوية.

    $vault = New-AzRecoveryServicesVault -Name "EdgeZoneRecoveryVault" -
    ResourceGroupName "edgezonerecovery" -Location "\<EdgeZoneRegion\>"
    Write-Output $vault
    
  6. اضبط سياق المخزن.

    Set-AzRecoveryServicesAsrVaultContext -Vault $vault 
    
  7. إنشاء نسيج استرداد الموقع الأساسي.

    $TempASRJob = New-AzRecoveryServicesAsrFabric -Azure -Location “<EdgeZoneRegion>” -
    Name "EdgeZoneFabric"
    
    1. تعقب حالة المهمة للتحقق من اكتمالها.

      while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){
      
    2. إذا لم تكتمل المهمة، فانام لمدة 10 ثوان قبل التحقق من حالة الوظيفة مرة أخرى.

      sleep 10;
      $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob
      }
      
    3. عند الانتهاء بنجاح، يجب أن تكون حالة الوظيفة ناجحة.

      Write-Output $TempASRJob.State
      $PrimaryFabric = Get-AzRecoveryServicesAsrFabric -Name "EdgeZoneFabric"
      
  8. استخدم النسيج الأساسي لإنشاء حاويات حماية أساسية واسترداد.

    $TempASRJob = New-AzRecoveryServicesAsrProtectionContainer -InputObject 
    $PrimaryFabric -Name "EdgeZoneProtectionContainer"
    
    1. تعقب حالة المهمة للتحقق من اكتمالها.

      while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq 
      "NotStarted")){
       sleep 10;
       $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob
      }
      Write-Output $TempASRJob.State
      
    2. يتم إنشاء حاويات الحماية الأساسية والاسترداد في المنطقة الأساسية (داخل النسيج الأساسي).

      $PrimaryProtectionContainer = Get-AzRecoveryServicesAsrProtectionContainer -Fabric 
      $primaryFabric -Name "EdgeZoneProtectionContainer"
      $RecoveryProtectionContainer = Get-AzRecoveryServicesAsrProtectionContainer -Fabric 
      $primaryFabric -Name "EdgeZoneProtectionContainer-t"
      
  9. إنشاء سياسة نسخ متماثل.

    $TempASRJob = New-AzRecoveryServicesAsrPolicy -AzureToAzure -Name 
    "ReplicationPolicy" -RecoveryPointRetentionInHours 24 -
    ApplicationConsistentSnapshotFrequencyInHours 4
    
    1. تعقب حالة المهمة للتحقق من اكتمالها.

      while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq 
      "NotStarted")){
       sleep 10;
       $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob
      }
      
    2. عند الانتهاء بنجاح، يجب أن تكون حالة الوظيفة ناجحة.

      Write-Output $TempASRJob.State
      
      $ReplicationPolicy = Get-AzRecoveryServicesAsrPolicy -Name "ReplicationPolicy"
      
  10. إنشاء تعيين حاوية حماية بين حاويات الحماية الأساسية وحاويات الحماية للاسترداد باستخدام نهج النسخ المتماثل.

    $TempASRJob = New-AzRecoveryServicesAsrProtectionContainerMapping -Name 
    "PrimaryToRecovery" -Policy $ReplicationPolicy -PrimaryProtectionContainer 
    $PrimaryProtectionContainer -RecoveryProtectionContainer 
    $RecoveryProtectionContainer
    
    1. تعقب حالة المهمة للتحقق من اكتمالها.

      while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq 
      "NotStarted")){
       sleep 10;
       $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob
      }
      
    2. عند الانتهاء بنجاح، يجب أن تكون حالة الوظيفة ناجحة.

      Write-Output $TempASRJob.State
      
      $EdgeZoneToAzurePCMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping -
      ProtectionContainer $PrimaryProtectionContainer -Name "PrimaryToRecovery"
      
    3. إنشاء تعيين حاوية حماية لإرجاع الموارد، بين حاويات الاسترداد والحماية الأساسية باستخدام نهج النسخ المتماثل.

      $TempASRJob = New-AzRecoveryServicesAsrProtectionContainerMapping -Name 
      "RecoveryToPrimary" -Policy $ReplicationPolicy -PrimaryProtectionContainer 
      $RecoveryProtectionContainer -RecoveryProtectionContainer 
      $PrimaryProtectionContainer
      
      1. تعقب حالة المهمة للتحقق من اكتمالها.

        while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq 
        "NotStarted")){
         sleep 10;
         $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob
        }
        
      2. عند الانتهاء بنجاح، يجب أن تكون حالة الوظيفة ناجحة.

        Write-Output $TempASRJob.State 
        $AzureToEdgeZonePCMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping -
        ProtectionContainer $RecoveryProtectionContainer -Name "RecoveryToPrimary"
        
  11. إنشاء حساب تخزين ذاكرة التخزين المؤقت لسجلات النسخ المتماثل في المنطقة الأساسية. يتم إنشاء حساب تخزين ذاكرة التخزين المؤقت في المنطقة الأساسية.

    $CacheStorageAccount = New-AzStorageAccount -Name "cachestorage" -ResourceGroupName 
    "<primary ResourceGroupName>" -Location '<EdgeZoneRegion>' -SkuName Standard_LRS -
    Kind Storage
    
  12. تأكد من إنشاء شبكة ظاهرية في الموقع الهدف. إنشاء شبكة استرداد في منطقة الاسترداد.

    $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. استخدم PowerShell cmdlet التالي لنسخ جهاز Azure الظاهري Azure Public MEC Azure مع أقراص مدارة. قد تستغرق هذه الخطوة حوالي 20 دقيقة لإكمالها.

    1. احصل على مجموعة الموارد التي يجب إنشاء الجهاز الظاهري فيها عند تجاوز الفشل.

      $RecoveryRG = Get-AzResourceGroup -Name "edgezonerecoveryrg" -Location "
      <EdgeZoneRegion>"
      
    2. الحصول على الجهاز الظاهري وعرض المحتويات.

      $vm = Get-AzVM -Name $vmName -ResourceGroupName $primaryResourceGroupName
      
    3. حدد خصائص النسخ المتماثل لكل قرص من الجهاز الظاهري الذي يجب نسخه نسخا متماثلا (إنشاء تكوين النسخ المتماثل للقرص).

      #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. قرص البيانات

      1. إذا كان الجهاز الظاهري يحتوي على قرص بيانات، فاستخدم الأمر التالي لإنشاء تكوين القرص. إذا لم يكن الأمر كذلك، يمكنك تخطي هذا القسم. من $datadiskId إلى $DataDisk1ReplicationConfig $datadiskId = $vm.StorageProfile.OSDisk.ManagedDisk.Id.

        بدلا

        $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. إنشاء عنصر محمي بالنسخ المتماثل لبدء النسخ المتماثل. استخدم GUID لاسم العنصر المحمي بالنسخ المتماثل لضمان تفرد الاسم. إذا كنت لا تتعافى إلى منطقة توفر، فلا تقم بتوفير المعلمة -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. تعقب حالة المهمة للتحقق من اكتمالها.

      while (($TempASRJob.State -eq "InProgress") -or ($TempASRJob.State -eq "NotStarted")){
      sleep 10; 
      $TempASRJob = Get-AzRecoveryServicesAsrJob -Job $TempASRJob 
      } 
      
    7. تحقق مما إذا كانت المهمة قد اكتملت بنجاح. يجب أن تكون حالة المهمة المحدثة لوظيفة مكتملة بنجاح ناجحة.

      Write-Output $TempASRJob.State
      
    8. بعد نجاح عملية بدء النسخ المتماثل، يتم نسخ بيانات الجهاز الظاهري إلى منطقة الاستعادة.

    في البداية، عند بدء عملية النسخ المتماثل، فإنه ينشئ نسخة من أقراص النسخ المتماثل للجهاز الظاهري في منطقة الاسترداد. وتُسمى هذه المرحلة مرحلة النسخ المتماثل الأولي. تستغرق هذه الخطوة حوالي 20 دقيقة. راجع حالة النسخ المتماثل في شفرة Vault ضمن العناصر المنسوخة نسخا متماثلا.

    لقطة شاشة للعناصر المنسوخة نسخا متماثلا.

    عند اكتمال النسخ المتماثل، ستظهر عناصر النسخ المتماثل Vault كما يلي:

    لقطة شاشة للنسخ المتماثل للمخزن.

    الآن الجهاز الظاهري محمي، ويمكنك إجراء عملية اختبار تجاوز الفشل. تنتقل حالة النسخ المتماثل للعنصر المنسوخ نسخا متماثلا الذي يمثل الجهاز الظاهري إلى الحالة المحمية بعد اكتمال النسخ المتماثل الأولي.

    راقب حالة النسخ المتماثل وصحة النسخ المتماثل للجهاز الظاهري من خلال الحصول على تفاصيل العنصر المحمي من النسخ المتماثل الذي يتوافق معه:

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

    إذا رأيت محميا في ProtectionState، فأنت مستعد للمتابعة لاختبار تجاوز الفشل.

    لقطة شاشة لحالة الحماية.

  14. ⁧⁩إجراء اختبار تجاوز الفشل والتحقق منه وتنظيفه ⁧⁩. يمكنك تخطي اختبار تجاوز الفشل. ومع ذلك، نوصي بتنفيذ اختبار تجاوز الفشل للتأكد من ظهور منطقتك الثانوية كما هو متوقع.

    1. إنشاء شبكة منفصلة لاختبار تجاوز الفشل (غير متصل بشبكة الإصلاح بعد كارثة).

      $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. قم بإجراء اختبار تجاوز الفشل.

      $ReplicationProtectedItem = Get-AzRecoveryServicesAsrReplicationProtectedItem -
      FriendlyName "<VMName>" -ProtectionContainer $PrimaryProtectionContainer
      
      $TFOJob = Start-AzRecoveryServicesAsrTestFailoverJob -ReplicationProtectedItem 
      $ReplicationProtectedItem -AzureVMNetworkId $TFONetwork -Direction PrimaryToRecovery
      
    3. انتظر حتى تنتهي المهمة.

      while (($TFOJob.State -eq "InProgress") -or ($TFOJob.State -eq 
      "NotStarted")){
       sleep 10;
       $TFOJob = Get-AzRecoveryServicesAsrJob -Job $TFOJob
      }
      
    4. انتظر حتى يكتمل اختبار تجاوز الفشل.

      Get-AzRecoveryServicesAsrJob -Job $TFOJob
      

    ملاحظة

    يمكنك أيضا التحقق من تقدم المهمة عن طريق الانتقال إلى المدخل، وتحديد Vault ثم تحديد Site Recovery Jobs.

    بعد اكتمال مهمة اختبار تجاوز الفشل بنجاح، يمكنك الاتصال بالاختبار الذي فشل عبر الجهاز الظاهري والتحقق من صحة تجاوز فشل الاختبار. بمجرد التحقق من صحة تجاوز فشل الاختبار عبر الجهاز الظاهري، قم بتنظيف نسخة الاختبار عن طريق بدء عملية تنظيف تجاوز فشل الاختبار. تقوم هذه العملية بحذف نسخة الاختبار من الجهاز الظاهري الذي تم إنشاؤه بواسطة تجاوز فشل الاختبار. تحقق من أن جميع الإعدادات الهدف صحيحة في اختبار تجاوز الفشل VM بما في ذلك الموقع وإعداد الشبكة وعدم تلف البيانات وعدم فقدان أي بيانات في الجهاز الظاهري الهدف. الآن يمكنك حذف اختبار تجاوز الفشل وبدء تجاوز الفشل.

    $Job_TFOCleanup = Start-AzRecoveryServicesAsrTestFailoverCleanupJob -
    ReplicationProtectedItem $ReplicationProtectedItem 
    Get-AzRecoveryServicesAsrJob -Job $Job_TFOCleanup | Select State
    
  15. ستكون الخطوة التالية هي الفشل عبر الجهاز الظاهري. ستقوم هذه الخطوة بإنشاء الجهاز الظاهري باستخدام الأقراص المنسوخة نسخا متماثلا في منطقة الاسترداد.

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

    قد لا يتم فرز قائمة نقاط الاسترداد التي تم إرجاعها زمنيا. تحتاج إلى فرز هذه أولا للعثور على أقدم أو أحدث نقاط الاسترداد للجهاز الظاهري.

     "{0} {1}" -f $RecoveryPoints[0].RecoveryPointType, $RecoveryPoints[-
    1].RecoveryPointTime
    
    1. بدء مهمة تجاوز الفشل.

      $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. عند نجاح مهمة تجاوز الفشل، يمكنك تنفيذ تجاوز الفشل.

     $CommitFailoverJob = Start-AzRecoveryServicesAsrCommitFailoverJob -
    ReplicationProtectedItem $ReplicationProtectedItem 
    
    1. انتظر حتى تنتهي مهمة تجاوز فشل التثبيت.

      while (($CommitFailoverJob.State -eq "InProgress") -or ($CommitFailoverJob.State 
      -eq "NotStarted")){
       sleep 10;
       $CommitFailoverJob = Get-AzRecoveryServicesAsrJob -Job $CommitFailoverJob
      }
       Get-AzRecoveryServicesAsrJob -Job $CommitFailoverJOb
      
  17. بعد تجاوز الفشل، عندما تكون مستعدا للعودة إلى المنطقة الأصلية، ابدأ النسخ المتماثل العكسي للعنصر المحمي بالنسخ المتماثل باستخدام cmdlet Update-AzRecoveryServicesAsrProtectionDirection.

    1. إنشاء حساب تخزين ذاكرة التخزين المؤقت لسجلات النسخ المتماثل في منطقة الاسترداد.

      $EdgeZoneCacheStorageAccount = New-AzStorageAccount -Name "cachestorageedgezone" -
      ResourceGroupName "<ResourceGroupName>" -Location '<EdgeZoneRegion>' -SkuName 
      Standard_LRS -Kind Storage
      
    2. استخدم حاوية حماية الاسترداد وحساب تخزين ذاكرة التخزين المؤقت الجديد في منطقة Azure Public MEC ومجموعة موارد الجهاز الظاهري للمنطقة المصدر.

      $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
      

    تستغرق هذه الخطوة حوالي 20 دقيقة وستنتقل الحالة من قيد التقدم إلى ناجح.

    لقطة شاشة لقائمة العناصر المحمية.

  18. تعطيل النسخ المتماثل.

    Remove-AzRecoveryServicesAsrReplicationProtectedItem -ReplicationProtectedItem 
    $ReplicationProtectedItem
    
  19. تنظيف البيئة. هذه الخطوة اختيارية ويمكن استخدامها لإزالة مجموعة الموارد.

    Remove-AzResourceGroup -Name $Name -Force