Migrate to Virtual Machines를 사용하면 자동으로 원본 환경에서 Google Compute Engine으로 가상 머신(VM)을 마이그레이션(리프트 앤 시프트)할 수 있습니다. Migrate to Virtual Machines에는 소스에 다운타임을 일으키지 않고 소스 VM의 디스크 데이터를 Google Cloud로 연속적으로 복제하는 데이터 복제 기법이 사용됩니다. 그런 후 복제된 데이터에서 테스트용으로 VM 클론을 만들고, Google Cloud에서 실행되는 최종 워크로드로 예측 가능한 VM 컷오버를 수행합니다.
데이터 복제를 사용하면 Migrate to Virtual Machines가 소스 VM에서 데이터의 초기 복제를 수행하여 마이그레이션된 VM을 빠르게 클론하고 테스트할 수 있습니다. 하지만 테스트 도중을 비롯하여 마이그레이션 프로세스 중에도 소스 VM이 계속 실행되기 때문에 마이그레이션된 VM에 대해 최종 컷오버를 수행할 때까지 Migrate to Virtual Machines가 데이터를 계속 복제합니다.
Migrate to Virtual Machines는 Google Cloud 콘솔에 완전히 통합되어 있습니다. 즉, Google Cloud 콘솔 UI 내에서 모든 마이그레이션 작업을 수행할 수 있습니다.
마이그레이션 프로세스 정보
Migrate to Virtual Machines는 VM을 Compute Engine으로 마이그레이션하기 위한 간단한 경로를 제공합니다. 마이그레이션 프로세스는 다음과 같은 고유 단계들로 수행됩니다.
온보드: 마이그레이션하려는 소스 VM을 선택합니다.
복제: 소스 VM에서 Google Cloud로 데이터를 복제합니다. 데이터 복제는 최종 컷오버를 수행하거나 마이그레이션을 삭제할 때까지 백그라운드에서 수행되는 연속적인 프로세스입니다.
VM 대상 세부정보 설정: 프로젝트, 인스턴스 유형, 메모리, 네트워크 등과 같은 마이그레이션된 VM에 대한 Compute Engine 설정을 구성합니다.
테스트 클론: 복제 데이터에서 소스 VM의 Compute Engine 클론을 선택적으로 만들고 이를 Google Cloud에서 테스트합니다.
컷오버: 소스 VM을 Compute Engine에 마이그레이션합니다. 이 프로세스에는 소스 VM을 중지하고, 최종 복제를 완료하고, 소스 VM에서 프로덕션 Compute Engine 인스턴스를 만드는 과정이 포함됩니다.
완료: 마이그레이션이 완료된 후 최종 삭제를 수행합니다.
다음 이미지는 이러한 단계를 보여줍니다.
다음 섹션에서 각 단계를 더 자세히 설명합니다.
온보딩 단계
첫 번째 마이그레이션 단계는 마이그레이션할 VM을 선택하는 온보딩 단계입니다.
예를 들어 vSphere 데이터 센터의 경우 Google Cloud 콘솔에 데이터 센터의 모든 VM이 표시됩니다. 마이그레이션할 VM만 선택하여 VM을 온보딩합니다.
복제 단계
VM을 온보딩한 후에는 소스 VM에서 Google Cloud로 디스크 데이터 복제를 시작합니다. 소스 VM은 복제 중 계속 실행됩니다.
데이터 복제는 소스 VM에 대한 영향을 최소화하면서 백그라운드에서 수행되는 연속적인 프로세스입니다.
데이터 복제는 두 단계로 구성됩니다.
첫 번째 복제 단계: Migrate to Virtual Machines는 소스 VM 데이터 디스크의 초기 스냅샷을 만들고 스냅샷 데이터를 Google Cloud에 복제합니다. 소스 VM의 디스크 데이터 양에 따라 첫 번째 복제가 완료되려면 몇 분 또는 몇 시간이 걸릴 수 있습니다.
증분 복제 단계: 첫 번째 복제 단계가 성공한 후 설정된 시간 간격(기본적으로 2시간 간격)에 따라 증분 복제 단계가 수행됩니다. 각 단계마다 모든 데이터 디스크에 대한 새 스냅샷이 생성됩니다. 변경 블록 추적(CBT) 메커니즘에 따라 이전 단계 이후에 발생한 데이터 업데이트만 Google Cloud에 복제됩니다.
소스 VM 복제를 시작하면 마이그레이션을 삭제할 때까지 복제가 계속됩니다.
언제든지 VM에 대해 복제를 일시중지할 수 있습니다. 예를 들어 하나 이상의 VM에서 복제를 일시중지하여 네트워크 리소스를 최소화하거나 일시중지되지 않은 마이그레이션 중인 VM에 더 높은 우선순위를 설정할 수 있습니다. 그런 다음 나중에 복제를 재개할 수 있습니다.
OS 적용
마이그레이션된 VM이 Google Cloud에서 올바르게 작동하기 위해서는 구성 변경이 필요할 수 있습니다. 이러한 프로세스를 OS 적응이라고 합니다. 운영체제(OS) 적응 프로세스는 Google Cloud에서 VM을 실행하도록 준비하기 위해 각 복제 단계가 완료될 때 수행됩니다.
예를 들어 Migrate to Virtual Machines는 네트워크 구성을 조정하고, Compute Engine 에이전트를 배포하며, 마이그레이션된 VM에 직렬 콘솔을 사용 설정합니다. Linux 및 Windows VM에 적용되는 특정 적응을 포함하여 자세한 내용은 OS 적응을 참조하세요.
대상 세부정보 설정
데이터 복제를 시작한 후에는 Google Cloud에서 마이그레이션된 VM에 대해 Compute Engine 대상 환경을 설정합니다.
Compute Engine 대상 세부정보는 Google Cloud에서 마이그레이션된 VM에 대해 시작 영역을 정의합니다. 이러한 세부정보에는 프로젝트, 인스턴스 유형, 네트워크 설정 등이 포함됩니다. 그런 후 Migrate to Virtual Machines는 대상 세부정보를 사용하여 마이그레이션된 VM을 호스팅하기 위해 Compute Engine 인스턴스를 만듭니다.
대상 세부정보는 언제든지 수정할 수 있습니다. 테스트 클론 또는 컷오버 단계를 위해 Compute Engine 인스턴스를 인스턴스화할 때 Migrate to Virtual Machines는 작업 시작 시 대상 세부정보 설정을 사용합니다.
테스트 클론 단계
소스 VM에서 디스크 데이터의 초기 복제 단계가 완료된 후 언제든지 테스트를 위해 소스 VM을 Compute Engine 인스턴스로 클론할 수 있습니다.
종종 소스 VM 또는 대상 세부정보를 수정할 때 마이그레이션 프로세스 전반에 걸쳐 테스트 클론을 만듭니다. 테스트 클론은 현재 복제 데이터와 대상 세부정보에서 생성된 소스 VM의 정적 스냅샷입니다. 새 복제 데이터 및 대상 세부정보 수정 사항은 기존 테스트 클론이 아닌 신규 테스트 클론에만 적용됩니다.
필수는 아니지만 프로덕션에 배포하기 전 VM의 테스트 클론을 만드는 것이 좋습니다. 마이그레이션 프로세스 중 테스트는 마이그레이션된 VM이 Google Cloud에서 올바르게 작동하는지 확인하기 위해 매우 중요합니다.
소스 VM에서 테스트 클론을 만들 경우 Migrate to Virtual Machines가 대상 세부정보를 사용하여 최신 복제 데이터로부터 Compute Engine 인스턴스를 만듭니다.
참고: 소스 VM은 테스트 단계 중에도 계속 실행되므로 데이터 복제도 계속 진행됩니다.
테스트 단계 중 소스 VM이 계속 실행되기 때문에 테스트 VM을 원래 소스 VM과 구분하는 샌드박스 환경에서 테스트를 수행해야 합니다.
테스트 VM이 작동되어 실행되면 테스트 VM이 예상한 대로 작동하는지 확인하고, Google Cloud에서 VM을 작동하기 위해 필요한 변경사항을 기록할 수 있습니다. 테스트가 완료되면 일반적으로 테스트용 Compute Engine 인스턴스를 삭제하고 컷오버 단계 중 프로덕션 Compute Engine 인스턴스를 만듭니다.
컷오버 단계
컷오버 단계에서는 Migrate to Virtual Machines에 의해 소스 VM이 중지되고, 복제가 마무리되고, Google Cloud에서 Compute Engine에 새 VM 인스턴스가 생성됩니다.
권장되는 테스트 단계 중에 모든 검증을 수행한 후에만 컷오버를 수행해야 합니다.
컷오버 단계는 짧은 VM 다운타임을 포함하므로 예약된 유지보수 기간 중에 수행되어야 합니다. 먼저 소스 VM을 중지하고 Compute Engine에서 실행되는 마이그레이션된 VM으로 트래픽을 리디렉션할 수 있는 유지보수 기간을 결정해야 합니다.
VM 마이그레이션에 대해 컷오버를 시작하면 Migrate to Virtual Machines에서 수행되는 다음 일련의 작업이 시작됩니다.
소스 VM을 종료합니다.
최종 데이터 복제를 수행합니다. 모든 마이그레이션 단계에서 복제가 수행되므로 복제할 데이터 양이 너무 크지 않아야 합니다. 복제가 진행되고 있으면 완료된 것입니다. 복제가 진행되고 있지 않으면 최종 복제를 수행합니다.
복제를 중지합니다.
최종 복제된 데이터에서 Compute Engine 인스턴스를 만듭니다.
컷오버 후 마이그레이션된 VM에서 최종 검증을 수행합니다. 컷오버 결과에 따라 다음 작업이 결정됩니다.
컷오버 실패: 특정 이유로 인해 Compute Engine에서 새 VM 인스턴스에 대한 컷오버가 실패했습니다. 네트워크 문제 또는 기타 단순한 문제 때문일 수 있습니다. 이 시점에서 소스 VM은 중지되어 있고 최종 복제 데이터가 아직 유효한 상태입니다. 컷오버를 재시도하여 오류가 해결되는지 확인합니다.
컷오버가 성공했지만 새 VM 인스턴스가 올바르게 작동하지 않음: Compute Engine의 새 VM 인스턴스가 올바르게 작동하지 않으면 Compute Engine VM을 삭제하고 소스 VM을 시작합니다. 이 프로세스를 '롤백'이라고 합니다.
마이그레이션 롤백이 복잡하기 때문에 롤백은 자동화된 프로세스가 아닙니다. 롤백을 수행해야 하면 트래픽을 다시 소스 VM으로 리디렉션해야 합니다. 또한 Compute Engine 인스턴스에 기록된 데이터는 원래 소스 VM에 다시 푸시되지 않습니다.
소스 VM이 다시 작동하면 마이그레이션 오류를 진단하고 해결할 수 있습니다. 오류가 해결된 다음 복제를 다시 시작하고 마이그레이션을 다시 시도할 수 있습니다.
컷오버 성공 및 새 VM 인스턴스가 올바르게 작동함: 검증 결과에 따라 새 VM이 올바르게 작동하는 것으로 확인되었으면 마이그레이션이 완료된 것입니다.
완료 단계
컷오버가 성공한 후 마이그레이션을 완료합니다. 완료를 수행하면 모든 복제 데이터 및 마이그레이션된 VM과 연결된 다른 스토리지 리소스가 모두 삭제되고 VM의 상태가 완료됨으로 변경됩니다.
완료는 컷오버 상태의 VM에서만 수행할 수 있습니다.
Compute Engine VM을 만드는 데 사용되는 복제 데이터는 컷오버 이후 유지됩니다. 즉, 컷오버 이후 해당 데이터를 사용하여 마이그레이션된 VM의 추가 인스턴스를 만들 수 있습니다. 하지만 결국 완료 단계에서 스토리지 여유 공간을 확보하는 것이 좋습니다.
완료를 수행한 후 마이그레이션에 허용되는 유일한 작업은 다음과 같습니다.
- 마이그레이션 삭제
- 그룹에 추가 또는 그룹에서 삭제