Azure Site Recovery 장애 복구(failback) 도구
연결된 환경에서 Azure Site Recovery 사용하여 Azure Stack Hub에서 실행되는 VM(가상 머신)을 보호할 수 있습니다. 이 문서에서는 환경을 설정하는 방법과 Site Recovery 이러한 워크로드에 대한 전반적인 비즈니스 연속성 및 재해 복구 전략에 기여하는 방법을 설명합니다.
중단이 발생할 경우 Azure Stack Hub 운영자는 장애 조치(failover ) 절차를 거행합니다. Azure Stack Hub가 다시 실행되고 나면 장애 복구 프로세스를 거칩니다. 장애 조치(failover) 프로세스는 이 Site Recovery 문서에서 설명하지만 장애 복구 프로세스에는 다음과 같은 몇 가지 수동 단계가 포함됩니다.
- Azure에서 실행되는 VM을 중지합니다.
- VHD를 다운로드합니다.
- Azure Stack Hub에 VHD를 업로드합니다.
- VM을 다시 만듭니다.
- 마지막으로 Azure Stack Hub에서 실행되는 VM을 시작합니다.
이 프로세스는 오류가 발생하기 쉽고 시간이 오래 걸릴 수 있으므로 이 프로세스를 가속화하고 자동화하는 데 도움이 되는 스크립트를 빌드했습니다.
참고
Azure Site Recovery 도구에는 Azure Stack Hub Az 모듈이 필요합니다. Azure Stack Hub AzureRM 모듈을 실행하는 경우 워크스테이션을 업그레이드하거나 Az 모듈을 사용하여 격리된 환경에서 Azure Site Recovery 장애 복구 도구를 사용해야 합니다. 자세한 내용은 Azure Stack Hub용 PowerShell Az 모듈 설치를 참조하세요.
장애 복구 프로시저
자동화된 장애 복구 프로세스에는 다음 세 가지 기본 부분이 포함됩니다.
Copy-AzSiteRecoveryVmVHD:
- Azure VM을 종료합니다.
- 디스크 내보내기를 준비합니다.
- AzCopy 또는 StorageBlobCopy를 통해 디스크를 복사합니다.
- 디스크를 Azure Stack Hub 스토리지 계정에 업로드합니다.
디스크가 복사되면 Prepare-AzSiteRecoveryVMFailBack에서 다루는 두 가지 시나리오가 있습니다.
- 원래 Azure Stack Hub가 복구되었습니다. 원래 VM은 여전히 존재하며 VHD만 변경하면 됩니다.
- 재해의 경우 원래 VM이 손실된 경우 전체 VM을 다시 빌드해야 합니다.
이 절차에서는 템플릿과 필요한 매개 변수 파일을 만들어 두 시나리오를 모두 다룹니다.
매개 변수 파일을 사용하여 Azure Resource Manager 템플릿을 실제 배포하고 Azure Stack Hub에서 VM을 배포/만듭니다.
사전 요구 사항
장애 복구 절차를 수행하려면 다음 필수 구성 요소가 필요합니다.
PowerShell에서 FailbackTool.psm1 모듈을 가져옵니다.
이 문서의 절차에 따라 Azure Stack Hub용 Az 모듈을 설치합니다.
(선택 사항) AzCopy 버전 10을 다운로드합니다.
- AzCopy를 사용하여 Blob을 복사하는 것이 더 빠르지만 Blob 파일을 일시적으로 저장하려면 추가 로컬 디스크 공간이 필요합니다.
- AzCopy를 사용하지 않으면 AzStorageBlobCopy를 사용하여 VHD 복사본이 수행됩니다. 즉, 로컬 스토리지가 필요하지 않지만 프로세스가 더 오래 걸립니다.
Azure Portal 리소스에 액세스하고 Azure Stack Hub에서 이러한 리소스를 만들기 위한 액세스 권한
1단계: Azure에서 Azure Stack Hub로 Blob 복사
Copy-AzSiteRecoveryVmVHD PowerShell cmdlet을 호출하여 Azure VM을 중지하고, Azure에서 VHD를 다운로드하고, Azure Stack Hub에 업로드합니다. 예:
$uris = Copy-AzSiteRecoveryVmVHD `
-SourceVM $vmOnAzure `
-TargetStorageAccountName "targetaccountName" `
-TargetStorageEndpoint "redmond.ext-v.masd.stbtest.microsoft.com" `
-TargetStorageAccountKey $accountKey `
-AzCopyPath "C:\azcopy_v10\azcopy.exe" `
-VhdLocalFolder "C:\tempfolder"
다음 고려 사항에 유의하세요.
이 예제에서는 를 사용하여
$uris
2단계에서 사용된 값을 저장SourceDiskVhdUris
합니다.매개 변수는
-SourceVM
에서 검색한Get-AzVM
VM 개체입니다.- Azure에서 장애 조치(failover)된 Azure Stack Hub의 보호된 VM입니다.
- 스크립트가 VM을 종료하므로 VM이 실행 중인지는 중요하지 않습니다. 그러나 명시적으로 종료하고 그에 따라 VM 내의 서비스를 중지하는 것이 좋습니다.
Azure Stack Hub 쪽에서 스토리지 계정의 계정 키(사용
TargetStorageAccountKey
) 또는 SAS 토큰(사용TargetStorageAccountSasToken
)을 제공할 수 있습니다. SAS 토큰은 적어도 다음 권한이 있는 스토리지 계정 수준에서 만들어야 합니다.지역 및 FQDN을 포함하는 스토리지 엔드포인트를 제공할 수 있습니다. 예를 들어 ,
regionname.azurestack.microsoft.com
또는 Azure Stack Hub의 환경 이름(예:AzureStackTenant
)입니다. 환경 이름을 사용하는 경우 Get-AzEnvironment를 사용하여 나열해야 합니다.AzCopy 또는 AzStorageBlobCopy를 사용하여 Azure에서 Azure Stack Hub로 VHD를 복사하도록 선택할 수 있습니다. AzCopy 는 더 빠르지만 먼저 로컬 폴더에 VHD 파일을 다운로드해야 합니다.
-
AzCopy를 사용하려면 매개 변수
-AzCopyPath
및-VhdLocalFolder
(VHD가 복사될 경로)를 제공합니다. - 로컬 공간이 부족한 경우 및 매개 변수
-AzCopyPath
-VhdLocalFolder
를 생략하여 AzCopy 없이 VHD를 직접 복사하도록 선택할 수 있습니다. 기본적으로 이 명령은 AzStorageBlobCopy 를 사용하여 Azure Stack Hub 스토리지 계정에 직접 복사합니다.
-
AzCopy를 사용하려면 매개 변수
2단계: Resource Manager 템플릿 생성
디스크를 복사한 후 Prepare-AzSiteRecoveryVMFailBack cmdlet을 사용하여 를 만들고 $templateFile
$parameterFile
Azure Stack Hub에 VM을 배포하는 데 필요합니다.
$templateFile, $parameterFile = Prepare-AzSiteRecoveryVMFailBack `
-SourceContextName "PublicAzure" `
-SourceVM $vmOnAzure `
-SourceDiskVhdUris $uris `
-TargetResourceLocation "redmond" `
-ArmTemplateDestinationPath "C:\ARMtemplates" `
-TargetVM $vmOnHub `
-TargetContextName "AzureStack"
다음 고려 사항에 유의하세요.
이 예제에서는 를 1단계(사용)의 반환 값으로 사용합니다
-SourceDiskVhdUris
$uris
.이 cmdlet은 다음 두 가지 시나리오를 지원합니다.
- 를 지정하면
-TargetVM
VM이 Azure Stack Hub 쪽에서 활성 상태이며 해당 디스크를 Azure에서 복사한 최신 디스크로 바꾸려고 합니다. - 스크립트는 이 VM을 배포하는 Resource Manager 템플릿을 생성하고 Azure Stack Hub에서 기존 VM을 삭제합니다.
참고
Azure Stack Hub VM 자체를 삭제해도 다른 개체(예: VNET, 리소스 그룹, NSG)가 제거되지 않습니다. VM 리소스 자체만 제거한 다음 매개 변수를 사용하여 템플릿을
-incremental
배포합니다.- 매개 변수를
-TargetVM
제공하지 않으면 스크립트는 VM이 Azure Stack Hub 쪽에 더 이상 존재하지 않는다고 가정하므로 스크립트는 완전히 새로운 VM을 배포하는 Resource Manager 템플릿을 만듭니다.
- 를 지정하면
생성된 Resource Manager 템플릿 파일은 아래에
-ArmTemplateDestinationPath
배치되고 템플릿 파일 또는 매개 변수 파일의 전체 경로가 반환됩니다.매개 변수가
-TargetVM
제공되면 cmdlet은 VM을 삭제하므로 다음 단계를 계속할 수 있습니다.
3단계: Resource Manager 템플릿 배포
이 시점에서 VHD는 Azure Stack Hub에 업로드되고 Resource Manager 템플릿 및 해당 매개 변수 파일이 만들어집니다. 남은 것은 Azure Stack Hub에 VM을 배포하는 것입니다.
일부 시나리오에서는 이 템플릿을 편집하고 일부 이름 또는 리소스를 추가, 제거 또는 변경할 수 있습니다. 필요에 따라 템플릿을 편집하고 조정할 수 있으므로 허용됩니다.
준비가 되면 Resource Manager 템플릿의 리소스가 예상대로 표시되는지 확인한 후 New-AzResourceGroupDeployment cmdlet을 호출하여 리소스를 배포할 수 있습니다. 예:
New-AzResourceGroupDeployment `
-Name "Failback" `
-ResourceGroupName "failbackrg" `
-TemplateFile $templateFile `
-TemplateParameterFile $parameterFile `
-Mode Incremental
다음 고려 사항에 유의하세요.
- 매개 변수는
-ResourceGroupName
기존 리소스 그룹이어야 합니다. - 및
-TemplateParameterFile
매개 변수는-TemplateFile
2단계의 반환 값에서 가져옵니다.