다중 디스크 기반 VMware 가상 머신을 직접 볼륨 복사 기능을 사용하여 IBM Cloud 으로 마이그레이션
qemu-img를 사용한 직접 볼륨 복사 또는 virt-v2v 을 통해 디스크 수준에서 완벽하게 제어하며, 다중 디스크 기반 VMware 가상 머신(VM)을 IBM Cloud VPC 가상 서버로 마이그레이션합니다.
아키텍처 구성 요소
다음 표에는 직접 볼륨 복사본 마이그레이션의 아키텍처 구성 요소가 나와 있습니다.
| 아키텍처 구성 요소 | 설명 |
|---|---|
| 작업자 가상 서버 인스턴스 |
마이그레이션 작업 공간으로 사용되는 임시 가상 서버 인스턴스입니다. 이 가상 서버 인스턴스를 사용하려면 다음 전제 조건이 필요합니다.
|
| 임시 가상 서버 인스턴스 | 올바른 구성으로 부팅 및 데이터 볼륨을 생성하기 위해서만 생성되는 단기 가상 서버 인스턴스입니다. 이 가상 서버 인스턴스는 즉시 삭제하지만 볼륨은 유지합니다. |
| 대상 볼륨 | 마이그레이션된 VM 의 디스크가 되는 실제 볼륨입니다. |
직접 볼륨 마이그레이션 복사 프로세스 개요
다음 단계는 직접 볼륨 복사를 사용하여 마이그레이션하는 프로세스의 레이아웃입니다.
-
작업자 가상 서버 인스턴스 프로비저닝
- Ubuntu 또는 적절한 작업 공간을 갖춘 RHEL 인스턴스
- VMDK를 위한 작업 공간이 필요한 경우 큰 보조 볼륨을 연결합니다
- 필요한 도구 설치
qemu-imglibguestfs-tools( virt-v2v )
-
일시적인 가상 서버 인스턴스 생성
- 대상에 맞게 구성 VM (OS, 부팅 디스크 크기, 보조 디스크 수/크기)
- 중요: 모든 볼륨에서 자동 삭제 사용 안 함
- 중요: 부팅 볼륨에
general-purpose스토리지 프로필 사용 - 네트워크 구성은 버릴 수 있습니다
- 볼륨 크기와 순서에 유의하세요
-
임시 가상 서버 인스턴스 삭제, 볼륨 유지
- UI 또는 CLI를 통해 가상 서버 인스턴스를 삭제합니다
- 볼륨이 여전히 존재하고 첨부할 수 있는지 확인합니다
-
워커 가상 서버 인스턴스에 볼륨 연결하기
- 생성한 순서와 동일한 순서로 첨부합니다
- 장치 이름(예: /dev/vdb, /dev/vdc, 등)을 참고하세요
- 크기를 확인합니다:
blockdev --getsize64 /dev/vdb
-
VM 디스크 전송 및 변환
- 내보낸 경우: 작업자 가상 서버 인스턴스에 VMDK 복사
- 한 번에 변환하고 작성하세요:
qemu-img convert -f vmdk -O raw source-vm-boot.vmdk /dev/vdb qemu-img convert -f vmdk -O raw source-vm-data.vmdk /dev/vdc- 선택적으로 Windows 드라이버 주입을 위해 virt-v2v 을 사용합니다(다음 Windows 섹션 참조)
-
확인 및 플러시
- 파티션 테이블을 확인합니다:
fdisk -l /dev/vdb - 버퍼를 플러시합니다:
blockdev --flushbufs /dev/vdb
- 파티션 테이블을 확인합니다:
-
워커에서 볼륨 분리하기
- 모든 대상 볼륨 분리
- 이제 최종 가상 서버 인스턴스에 연결할 준비가 되었습니다
-
기존 부팅 볼륨에서 최종 가상 서버 인스턴스 생성
- 이미지를 선택하는 대신 "기존 부팅 볼륨"을 선택합니다
- 채운 부팅 볼륨을 선택합니다
- 네트워크, 보안 그룹, SSH 키 구성(기존 VM )인 경우 사용하지 않더라도 필수입니다
- 보조 볼륨의 경우: CLI/API를 사용하거나 생성 후 연결하고 다시 시작합니다
-
마이그레이션 후 구성
- 가상 서버 인스턴스 부팅, 네트워크 구성 조정이 필요한 경우 VNC 콘솔을 통한 액세스
- 모든 디스크가 존재하고 마운트되었는지 확인합니다
- 부팅 볼륨 파티션 크기를 상향 조정한 경우 확장하기
직접 볼륨 복사 설계의 장점
다음 표에는 직접 볼륨 복사본 마이그레이션의 설계상 이점이 나와 있습니다.
| 디자인 이점 | 설명 |
|---|---|
| 다중 디스크 지원 | 멀티 디스크 지원은 VPC의 12개 디스크 제한까지 디스크 수에 관계없이 가상 머신을 처리합니다. |
| 이미지 과다 게재 금지 | 각 가상 머신에 대해 사용자 지정 이미지를 생성하는 것이 아닙니다. 사용자 지정 이미지 목록은 깔끔하게 유지됩니다. |
| 유연한 변환 | 드라이버 주입, OS 조정 등을 위해 virt-v2v 와 쉽게 통합할 수 있습니다. |
| 저장 효율 옵션 | 기본 템플릿을 사용자 지정 이미지로 가져와 임시 가상 서버 인스턴스의 부팅 볼륨 소스로 사용하는 경우(2단계), 최종 부팅 볼륨은 링크된 복제 공간 효율성을 상속받습니다. |
직접 볼륨 복사 디자인 제약 조건 및 제한 사항
다음 표에는 직접 볼륨 복사본 마이그레이션의 제약 조건과 제한 사항이 나와 있습니다.
| 제한 또는 제약 | 설명 |
|---|---|
| 오케스트레이션의 복잡성 | 더 많은 단계와 움직이는 부분이 있습니다. 견고한 런북과 가급적이면 자동화(Terraform, Ansible, 스크립트)가 필요합니다. |
| 볼륨 연결 제한 사항 |
IBM Cloud 사용자 인터페이스(UI)는 가상 서버 인스턴스 생성 중에 보조 볼륨을 연결하는 기능을 지원하지 않습니다. 다음 중 하나를 수행해야 합니다.
|
| 오버헤드 내보내기 | VMware 에서 VMDK를 내보내는 경우에도 여전히 오버헤드가 발생합니다(OVA 내보내기보다는 적지만). |
네트워크 전송을 사용하여 내보내기 건너뛰기
방법 2와 네트워크 전송 기술(방법 3에 자세히 설명되어 있음)을 결합하여 VMDK를 완전히 내보내지 않을 수 있습니다. ISO에서 소스 VM 를 부팅하고, 작업자 가상 서버 인스턴스에 네트워크 연결을 설정한 다음 디스크 콘텐츠를 직접 스트리밍합니다:
-
작업자 가상 서버 인스턴스(대상)에서 다음 명령을 실행합니다:
nc -l 192.168.100.5 8080 | gunzip | dd of=/dev/vdb bs=16M status=progress -
소스 가상 머신(ISO에서 부팅한)에서 다음 명령을 실행합니다:
dd if=/dev/sda bs=16M | gzip | nc -N -v 192.168.100.5 8080
이 프로세스를 사용하면 내보내기 시간 및 내보내기 저장 공간이 필요하지 않습니다.
이 프로세스는 정밀한 제어를 원하거나 사용자 지정 이미지 확산을 방지하는 것이 중요한 시나리오에서 멀티 디스크 가상 머신에 사용합니다. 네트워크 전송을 통해 효율성을 향상시킬 수도 있습니다.