kvm(RHEV, RHV)의 vm guest 파일(qcow2)을 VMWare ESXi vmdk 형태로 변환하는 방법.
두번의 변환 과정이 필요하며 아래와 같은 방법으로 변환하면 된다.
1. qcow2 -> vmdk 변환
아래 명령을 통해 vmdk로 변환한다.
# qemu-img convert -f qcow2 myImage.qcow2 -O vmdk myNewImage.vmdk
- 이렇게 변환을 하면 기존에 Assign 했던 용량이 100G 라면 실제 사용했던 크기 만큼의 크기로 파일이 변환된다. 만약 실제 사용했던 용량이 20G 였다면 20G의 파일로 생성된다.
- 변환된 myNewImage.vmdk 파일을 esxi 데이터 스토어에 업로드
- 만약 이 상태의 파일로 ESXi위에 VM을 부팅하면 부트로더만 읽혀지며 부팅이 잠시 되다가 용량이 부족하다는 메시지와 함께 부팅이 실패된다. 더 이상 Write를 할 수 있는 공간이 없어서 그렇다.
(하지만 VMWare Workstation으로 부팅을 하면 정상적으로 부팅이 가능하다.)
2. vmdk -> vmdk(Assign 용량만큼의 크기로 사용 가능한 thin 프로비저닝 형태) 변환
ESXi 호스트의 ssh로 터미널 접속 후, myNewImage.vmdk 가 저장된 데이터 스토어 내의 파일을 다시 esxi vmdk 형태로 변환한다.
# vmkfstools -i myImage.vmdk outputName.vmdk -d thin
- qemu-img 툴을 통해 변환된 vmdk 파일을 다시 최초 Assign 했던 용량만큼으로 사용할 수 있도록 변환하는 것이다.
3. vm 가동
새로운 VM을 생성할 때 outputName.vmdk 를 지정하여 VM을 가동하면 된다.
* 참고)
qemu-img 툴은 리눅스 qemu-img-rhev 패키지에 포함된 파일이다.
만약 윈도우에서 qcow2 -> vmdk로 변환 하고자 한다면 아래 사이트에서 받아서 해당 프로그램을 설치 후 변환할 것.
https://www.qemu.org/download/#windows
- GUI가 아니므로 설치된 디렉토리에서 CLI 기반으로 변환. 리눅스와 컨버팅하는 명령어와 옵션은 기본적으로 같다.
- 프로그램 설치 후 C:\Program Files\qemu 디렉토리에서 아래와 같은 방식으로 실행
c:\Program Files\qemu> qemu-img.exe convert -f qcow2 d:\myImage.qcow2 -O vmdk d:\myNewImage.vmdk