Share via


Azure 퍼블릭 MEC에서 실행되는 가상 머신을 Azure 지역에 복제

Important

퍼블릭 MEC에 대한 Azure Site Recovery 기능은 미리 보기 상태입니다.

이 문서에서는 Azure 퍼블릭 MEC를 Azure 퍼블릭 MEC가 확장인 부모 Azure 지역에 실행하는 Azure VM(가상 머신)을 복제, 장애 조치(failover) 및 장애 복구(failback)하는 방법을 설명합니다.

Azure 퍼블릭 MEC에서 재해 복구

Site Recovery는 워크로드를 기본 위치에서 보조 위치로 지속적으로 복제하여 중단 중에도 워크로드를 계속 실행함으로써 비즈니스 연속성을 보장합니다. MEC용 ASR 기능은 미리 보기에 있습니다.

여기서 기본 위치는 Azure 퍼블릭 MEC이고, 보조 위치는 Azure 퍼블릭 MEC가 연결된 부모 지역입니다.

PowerShell을 사용하여 Azure 퍼블릭 MEC에서 VM에 대한 재해 복구 설정

필수 조건

  • Azure Az PowerShell 모듈이 설치되어 있는지 확인합니다. 설치하는 방법에 대한 자세한 내용은 Azure Az PowerShell 모듈 설치를 참조하세요.

  • Azure Az PowerShell 버전은 4.1.0 이상이어야 합니다. 다음 명령을 사용하여 현재 버전을 확인합니다.

    Get-InstalledModule -Name Az
    
  • Linux 배포판 버전 및 커널이 Azure Site Recovery에서 지원되는지 확인합니다. 자세한 내용은 지원 매트릭스를 참조하세요.

Azure 퍼블릭 MEC에서 실행되는 가상 머신을 Azure 지역에 복제

Azure 퍼블릭 MEC에서 실행되는 VM을 Azure 지역에 복제하려면 다음 단계를 수행합니다.

참고 항목

이 예제의 경우 기본 위치는 Azure 퍼블릭 MEC이고, 보조/복구 위치는 Azure 퍼블릭 MEC의 Azure 지역입니다.

  1. Azure 계정에 로그인합니다.

    Connect-AzAccount
    
  2. 올바른 구독을 선택합니다.

    $subscription = Get-AzSubscription -SubscriptionName "<SubscriptionName>" 
    Set-AzContext $subscription.Id 
    
  3. 복제하려는 가상 머신의 세부 정보를 가져옵니다.

    $VM = Get-AzVM -ResourceGroupName "<ResourceGroupName>" -Name "<VMName>" 
    
    Write-Output $VM 
    
  4. 보조 Azure 지역에서 Recovery Services 자격 증명 모음에 대한 리소스 그룹을 만듭니다.

    New-AzResourceGroup -Name "edgezonerecoveryrg" -Location "<EdgeZoneRegion>"
    
  5. 새 Recovery Services 자격 증명 모음을 보조 지역에 만듭니다.

    $vault = New-AzRecoveryServicesVault -Name "EdgeZoneRecoveryVault" -
    ResourceGroupName "edgezonerecovery" -Location "\<EdgeZoneRegion\>"
    Write-Output $vault
    
  6. 자격 증명 모음 컨텍스트를 설정합니다.

    Set-AzRecoveryServicesAsrVaultContext -Vault $vault 
    
  7. 기본 Site Recovery 패브릭을 만듭니다.

    $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 퍼블릭 MEC Azure 가상 머신을 복제합니다. 이 단계를 완료하는 데 약 20분 정도 걸릴 수 있습니다.

    1. 장애 조치(failover) 시 가상 머신을 만들어야 하는 리소스 그룹을 가져옵니다.

      $RecoveryRG = Get-AzResourceGroup -Name "edgezonerecoveryrg" -Location "
      <EdgeZoneRegion>"
      
    2. VM을 가져오고 콘텐츠를 표시합니다.

      $vm = Get-AzVM -Name $vmName -ResourceGroupName $primaryResourceGroupName
      
    3. 복제해야 하는 VM의 각 디스크에 대한 복제 속성을 지정합니다(디스크 복제 구성 만들기).

      #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. VM에 데이터 디스크가 있는 경우 다음 명령을 사용하여 디스크 구성을 만듭니다. 그렇지 않은 경우 이 섹션을 건너뛸 수 있습니다. $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분 정도 걸립니다. [자격 증명 모음] 블레이드의 복제된 항목 아래에서 복제 상태를 확인합니다.

    Screenshot of replicated items.

    복제가 완료되면 자격 증명 모음 복제 항목이 다음과 같이 표시됩니다.

    Screenshot of Vault replication.

    이제 가상 머신이 보호되고 테스트 장애 조치(failover) 작업을 수행할 수 있습니다. 초기 복제가 완료되면 가상 머신을 나타내는 복제된 항목의 복제 상태는 '보호됨' 상태가 됩니다.

    가상 머신에 해당하는 복제 보호된 항목의 세부 정보를 가져와서 해당 가상 머신에 대한 복제 상태를 모니터링합니다.

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

    ProtectionStateProtected가 표시되면 테스트 장애 조치(failover)를 진행할 준비가 된 것입니다.

    Screenshot of Protection state.

  14. 테스트 장애 조치(failover)를 수행, 유효성 검사 및 정리합니다. 테스트 장애 조치(failover)는 건너뛸 수 있습니다. 그러나 테스트 장애 조치(failover)를 실행하여 보조 지역이 예상대로 표시되는지 확인하는 것이 좋습니다.

    1. 테스트 장애 조치(failover)를 위한 별도의 네트워크를 만듭니다(내 DR 네트워크에 연결되지 않음).

      $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. 테스트 장애 조치(failover)를 수행합니다.

      $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. 테스트 장애 조치(failover)가 완료될 때까지 기다립니다.

      Get-AzRecoveryServicesAsrJob -Job $TFOJob
      

    참고 항목

    포털로 이동하여 자격 증명 모음을 선택한 다음, Site Recovery 작업을 선택하여 작업 진행 상황을 확인할 수도 있습니다.

    테스트 장애 조치(failover) 작업이 성공적으로 완료되면 테스트 장애 조치된 가상 머신에 연결하고 테스트 장애 조치의 유효성을 검사할 수 있습니다. 테스트 장애 조치(failover)된 가상 머신에서 테스트가 완료되면 테스트 장애 조치(failover) 정리 작업을 시작하여 테스트 복사본을 정리합니다. 이 작업은 테스트 장애 조치(failover)로 만들어진 가상 머신의 테스트 복사본을 삭제합니다. 위치, 네트워크 설정, 데이터 손상 없음 및 대상 VM에서 손실된 데이터 없음을 포함하여 모든 대상 설정이 테스트 장애 조치(failover) VM에서 올바른지 확인합니다. 이제 테스트 장애 조치(failover)를 삭제하고 장애 조치(failover)를 시작할 수 있습니다.

    $Job_TFOCleanup = Start-AzRecoveryServicesAsrTestFailoverCleanupJob -
    ReplicationProtectedItem $ReplicationProtectedItem 
    Get-AzRecoveryServicesAsrJob -Job $Job_TFOCleanup | Select State
    
  15. 다음 단계는 가상 머신을 장애 조치(failover)하는 것입니다. 이 단계에서는 복구 지역의 복제된 디스크를 사용하여 VM을 만듭니다.

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

    반환되는 복구 지점 목록은 시간순으로 정렬되지 않을 수 있습니다. 가상 머신에 대한 가장 오래된 복구 지점 또는 최신 복구 지점을 찾으려면 먼저 이러한 복구 지점을 정렬해야 합니다.

     "{0} {1}" -f $RecoveryPoints[0].RecoveryPointType, $RecoveryPoints[-
    1].RecoveryPointTime
    
    1. 장애 조치(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. 장애 조치(failover) 작업이 성공하면 장애 조치를 커밋할 수 있습니다.

     $CommitFailoverJob = Start-AzRecoveryServicesAsrCommitFailoverJob -
    ReplicationProtectedItem $ReplicationProtectedItem 
    
    1. 장애 조치(failover) 커밋 작업이 완료될 때까지 기다립니다.

      while (($CommitFailoverJob.State -eq "InProgress") -or ($CommitFailoverJob.State 
      -eq "NotStarted")){
       sleep 10;
       $CommitFailoverJob = Get-AzRecoveryServicesAsrJob -Job $CommitFailoverJob
      }
       Get-AzRecoveryServicesAsrJob -Job $CommitFailoverJOb
      
  17. 장애 조치 후, 원래 지역으로 되돌릴 준비가 되면 Update-AzRecoveryServicesAsrProtectionDirection cmdlet을 사용하여 복제 보호된 항목에 대한 역방향 복제를 시작합니다.

    1. 복제 로그에 대한 캐시 스토리지 계정을 복구 지역에 만듭니다.

      $EdgeZoneCacheStorageAccount = New-AzStorageAccount -Name "cachestorageedgezone" -
      ResourceGroupName "<ResourceGroupName>" -Location '<EdgeZoneRegion>' -SkuName 
      Standard_LRS -Kind Storage
      
    2. 복구 보호 컨테이너, Azure 퍼블릭 MEC의 지역에 있는 새 캐시 스토리지 계정 및 원본 지역 VM 리소스 그룹을 사용합니다.

      $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분 정도 걸리며, 상태가 진행 중에서 성공으로 바뀝니다.

    Screenshot of Protected items list.

  18. 복제를 사용하지 않도록 설정합니다.

    Remove-AzRecoveryServicesAsrReplicationProtectedItem -ReplicationProtectedItem 
    $ReplicationProtectedItem
    
  19. 환경을 정리합니다. 이 단계는 선택 사항이며 리소스 그룹을 제거하는 데 사용할 수 있습니다.

    Remove-AzResourceGroup -Name $Name -Force