가상화에 관심이 많다면 VirtualBox와 VMware 제품을 동시에 사용하는 경우가 종종 있을 것입니다. 이때 가상 디스크를 한 형식에서 다른 형식으로 변환해야 할 필요가 생기는데, 그 이유는 다양합니다. 라이선스를 보존하거나, 특정 시점의 머신 상태를 그대로 유지한 채 옮기거나, 호환성 테스트를 위해 다른 소프트웨어에서 실행해 보는 등 가상화 애호가라면 충분히 마주칠 수 있는 상황입니다.
이번 글에서는 VirtualBox에서 사용하는 .vdi 형식의 가상 하드 디스크를 VMware에서 사용하는 .vmdk 형식으로 변환하는 확실한 방법 두 가지와, 상황에 따라 쓸 수 있는 방법 하나를 소개합니다. 물론 반대 방향(VMDK → VDI) 변환도 가능합니다. 나아가 VHD, RAW 등 다른 형식으로의 변환 방법까지 함께 다룹니다. VBoxManage 명령줄 유틸리티와 QEMU를 활용하고, 이전에 소개한 적 있는 VMware Converter도 살펴보겠습니다. 이 튜토리얼을 통해 여러분의 가상화 환경은 한층 더 유연하고 이동성이 높아질 것입니다.
변환 방법 1: VBoxManage
이전에 VirtualBox 디스크를 복제할 때 VBoxManage를 사용해 본 적이 있습니다. 여기서 사용하는 방법도 동일하며, 다만 출력 디스크 형식만 다르게 지정하면 됩니다.
VBoxManage clonehd source.vdi target.vmdk --format VMDK
여기서 source는 원본 VirtualBox 디스크, target은 생성될 VMware 디스크, --format VMDK는 원하는 출력 형식입니다. 반대로 VMDK를 소스로, VDI를 타깃으로 지정하면 역방향 변환도 가능합니다. 올바른 디스크 형식을 지정하는 것만 잊지 마세요. clonehd 명령은 VMDK 외에도 다양한 형식을 지원합니다.
실행 예시는 아래와 같습니다.

참고로 가상 머신을 외장 디스크에 저장하면 대량 I/O로 인한 성능 저하를 줄일 수 있습니다. 가상 머신 최적화에 대한 자세한 내용은 별도의 가상화 팁 가이드를 참고하세요.
변환이 완료될 때까지 기다립니다.


변환이 성공적으로 끝나면 VMware 제품에서 새 가상 머신을 생성하고, 변환된 디스크를 스토리지로 지정하면 됩니다.
생각보다 허용 범위가 넓습니다. 실제로 필자는 다른 머신(쿼드코어 인텔 CPU)에 설치되어 있던 VirtualBox 가상 머신을 변환한 뒤, 한 세대 이전 듀얼코어 인텔 CPU를 탑재한 머신의 VMware 디스크로 옮겨본 경험이 있습니다. 게스트 OS에는 VirtualBox Guest Additions가 설치되어 있었고, VMware 쪽에서는 PAE 확장을 활성화했으며 VirtualBox에서는 이 기능을 꺼둔 상태였습니다. 심지어 VMware 머신 설정에서 디스크 컨트롤러를 IDE에서 SCSI로 변경했는데도 큰 문제 없이 작동했습니다. 부팅 시 새 하드웨어 드라이버를 설치하는 정도의 사소한 불편함만 있었습니다. 즉, 변환 작업에는 상당한 오차 여유가 있으니 유연하게 접근해도 됩니다.
테스트에 사용한 환경
소스 호스트는 i5 프로세서를 탑재한 HP Pavilion dv6-2130ej 노트북으로 Ubuntu 10.04가 구동 중이었습니다. 타깃 호스트는 조금 오래됐지만 여전히 강력한 Core 2 Duo P7450 프로세서를 장착한 LG RD510 노트북으로, 역시 Ubuntu 10.04에 VirtualBox와 VMware Workstation을 모두 갖추고 있었습니다.
덧붙이자면, Workstation은 Lucid Lynx(Ubuntu 10.04)에 openSUSE 11.2보다도 매끄럽게 설치되었습니다. Ubuntu에서 VMware Server를 설치할 때의 복잡하고 까다로운 과정과 비교하면 놀라울 정도의 결과입니다.

Workstation(및 기타 VMware 제품)은 가상 머신을 최신 버전으로 업그레이드할지 묻습니다. 구버전 제품과 함께 사용할 계획이라면 이 제안을 거부하는 것이 좋습니다.

결과를 확인해 보겠습니다.

시리얼 번호가 동일하게 유지되는 점에 주목하세요. 또한 변환된 가상 머신 복사본에서 PAE 기능이 어떻게 적용되었는지도 확인해 보세요.

주의할 점: 가상 머신에서 Windows를 구동한다면, 여러 인스턴스를 동시에 실행할 수 있는 충분한 라이선스를 보유하고 있는지 확인해야 합니다. 몇 초간의 테스트는 괜찮지만, 각 가상 머신에는 개별 라이선스가 필요하며 경우에 따라 재인증이 요구될 수 있습니다.
반대 방향 변환
반대 방향(VMDK → VDI)도 아주 간단합니다.
VBoxManage clonehd source.vmdk target.vdi --format VDI
이것으로 끝입니다.
변환 방법 2: QEMU
QEMU도 오랜 친구입니다. 필자의 첫 가상화 글에서부터 등장했고, Amazon EC2에서 사용하기 위해 VMDK 디스크를 RAW 형식으로 변환할 때도 활용한 바 있습니다. 원리는 동일하며 양방향 모두 작동합니다.
VDI → VMDK
매우 간단합니다.
qemu-img convert something.vdi -O vmdk something.vmdk
VMDK → VDI
두 가지 방법이 있습니다. qemu-img-vdi 도구로 한 번에 처리하거나, 전통적인 qemu-img를 사용해 RAW 형식을 거치는 방식입니다.
qemu-img-vdi 사용
앞서 살펴본 다른 변환들과 거의 같습니다.
qemu-img-vdi convert something.vmdk -O vdi something.vdi
qemu-img 사용
qemu-img를 사용할 때는 두 단계를 거칩니다. 먼저 RAW 형식으로 변환한 뒤, VBoxManage로 VDI로 변환합니다. 예전 버전의 VirtualBox는 vditool이라는 도구를 사용했으므로, 온라인 자료에서 이 유틸리티를 언급하는 경우도 있을 겁니다.
1단계: VMDK를 RAW로 변환 (파일 확장자는 굳이 붙이지 않아도 됩니다)
qemu-img convert something.vmdk something.raw
2단계: RAW를 VDI로 변환
VBoxManage convertdd something.raw something.vdi
주의: 스파스(sparse) 디스크를 사용하는 경우, RAW 파일은 디스크의 최대 용량만큼 늘어납니다. 실제 사용량이 2.4GB뿐이더라도 20GB 디스크는 하드 디스크에 20GB짜리 파일로 생성됩니다.
이 정도면 충분합니다. 다음 방법으로 넘어가죠!
변환 방법 3 (조건부): VMware Converter
필자가 아는 한, 그리고 과거에도 언급했듯이 VMware Converter는 VirtualBox를 공식적으로 지원하지 않는 것으로 보입니다. 따라서 이 방법은 성공할 수도, 실패할 수도 있습니다.
대안으로 다른 경로를 시도해 볼 수 있습니다. VirtualBox 가상 머신을 어플라이언스로 내보내면 .ovf 형식으로 저장되며, 이때 VMDK 디스크가 함께 포함됩니다. 그런 다음 이 어플라이언스를 VMware Converter로 변환하는 것입니다. 물론 보장은 없지만, 여러 포럼에서 성공했다는 사용자들의 후기를 본 적이 있으니 실제로 가능할 수도 있습니다.
필자는 아직 성공하지 못했으니, 이 점을 염두에 두세요!


또 다른 선택지는 다른 도구로 먼저 VMDK로 변환한 후, VMware Converter를 이용해 ESXi 디스크를 포함한 추가 변환을 진행하는 것입니다. Converter를 직접 사용할 수 없더라도, 이후 단계에서는 충분히 활용할 수 있습니다.
변환 시 일반 팁
변환 작업이 상당히 유연하긴 하지만, VMware와 VirtualBox는 기능을 조금씩 다르게 지원한다는 점을 고려해야 합니다. 멀티 프로세서, 비디오 가속 같은 특수 기능이 활성화되어 있으면 변환이 실패할 수 있습니다.
따라서 변환이 잘 되지 않는다면 다음 항목들을 시도해 보세요.
- 디스크가 여러 파일로 분할되어 있다면 하나로 병합합니다.
- 비디오 가속 등 특수 기능을 비활성화합니다.
- 스냅샷을 삭제합니다.
- VMware Tools 및 Guest Additions를 제거합니다.
- 소스와 대상 가상 머신의 설정을 최대한 일치시킵니다.
이러한 주의사항은 Linux보다 Windows에서 더욱 중요합니다. 다시 한번 강조하지만, 상용 소프트웨어를 사용하는 경우 라이선스 문제가 발생할 수 있습니다. 가상 머신 마이그레이션으로 제품 라이선스가 무효화되지 않도록 반드시 확인하세요.
함께 읽으면 좋은 글
가상화 관련 튜토리얼, 가이드, 팁이 가득한 아래 글들도 확인해 보세요.
- VirtualBox 3 개요
- VirtualBox 3에서 Compiz Fusion 사용하기
- VirtualBox 3에서 DirectX 사용하기
- VirtualBox의 심리스(Seamless) 모드
- VirtualBox 데스크톱 바로 가기
- 포터블 VirtualBox
- VirtualBox에 새 하드 디스크 추가하기
- VirtualBox에서 디스크 복제하기
- VirtualBox에서 디스크 축소/확장하기
- VirtualBox Guest Additions 설치하기
- VirtualBox 네트워크 및 공유 설정
- 최신 VirtualBox에서 CD-ROM 부팅하기
- VirtualBox에서 USB 지원 활성화하기
마무리
오늘은 가상화 제품을 다룰 때 자유도와 유연성을 높여주는 또 하나의 유용한 기술을 배웠습니다. 이제 가상 머신을 제품 간에 자유롭게 변환하고, 필요에 따라 머신 간에 이전할 수 있습니다. 검증된 방법 두 가지에 추가로 세 번째 방법까지 갖춰졌고, 무엇보다 VDI와 VMDK에만 국한되지 않고 다양한 형식으로 변환할 수 있습니다. 이 글이 도움이 되었기를 바랍니다. 즐거운 가상화 되세요!