VMWare,VirtualBox VM 이미지를 KVM 이미지로 변경하기
프로젝트를 하다보니 윈도우즈 시스템을 사용하고 있는 가운데, 리눅스 머신이 필요하게 되어서 vmplayer 를 이용해 가상머신으로서 리눅스를 테스트 용도로 설치해 사용하고 있었다. 이제 프로젝트도 전부 끝나게 되어서 노트북에 설치한 이 VMPlayer 의 OS 를 KVM 시스템으로 옮기 싶었다.
어떻게 VMWare, VirtualBox VM 이미지를 KVM 이미지로 바꿀 수 있을까 싶어 자료 조사를 하고 KVM 시스템으로 옮길 수 있었다. 이에 대한 내용을 정리한다.
qemu-img
VMPlayer 는 무료 소프트웨어이기 때문에 이미지 변경에 대한 툴을 제공하지 않는다. 이 경우에 KVM 리눅스 머신이 존재한다면 VMPlayer 의 이미지를 KVM 리눅스 머신으로 옮긴다.
KVM 리눅스 머신에는 qemu-img 를 사용할 수 있다. 이 명령어는 이미지를 변경할 수 있게 해준다. 만일 이 명령어가 존재하지 않는다면 다음과 같이 설치 해준다.
1 2 3 4 |
# Ubuntu ]$ sudo apt install qemu-utils # RedHat ]$ sudo dnf install qemu-img |
VMPlayer 이미지 옮기기 및 정보
여기서 한가지 조건이 존재한다. VMPlayer 를 이용해 VM 을 생성할때에 스토리지를 하나의 통 파일로 만들건지 아니면 여러조각의 파일로 조각해서 만들건지를 물어본다. 이 경우에는 스토리지 파일을 하나의 통 파일로 작성한 경우에 한 한다.
하나의 통파일로 작성할 경우에 VMPlayer 는 확장자 .vmdk 파일이 존재하게 된다. 이것을 KVM 리눅스 머신으로 옮겨준다. 옮겨준 파일은 qemu-img 명령어를 이용해 파일의 정보를 조회해 볼 수 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
$ qemu-img info RHEL9.0.vmdk image: RHEL9.0.vmdk file format: vmdk virtual size: 30 GiB (32212254720 bytes) disk size: 5.06 GiB cluster_size: 65536 Format specific information: cid: 2869090990 parent cid: 4294967295 create type: monolithicSparse extents: [0]: virtual size: 32212254720 filename: RHEL9.0.vmdk cluster size: 65536 format: |
VMPlayer 에서 스토리지를 생성할때에 30GiB 크기로 생성을 했으며, 사용하는 만큼만 실체적인 용량을 쓰도록 했기 때문에 5.06GiB 의 파일 크기를 가진다.
qcow2, raw 변경
qemu-img 를 사용해 KVM 이미지로 변경할 이미지 포맷을 지정할 수 있다. KVM 의 경우에 qcow2 나 raw 의 이미지를 지원한다. qcow2 의 경우에는 앞서 VMPlayer 파일 형식과 같이 총 용량은 정해져 있지만 사용하는 만큼만 실제 파일시스템에 반영이 된다. raw 는 그냥 전체 생성할때 지정한 용량이 파일 시스템에 반영이 된다.
qcow2 형식으로 변경은 다음과 같이 한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
]$ sudo qemu-img convert -O qcow2 RHEL9.0.vmdk RHEL9.0.qcow2 ]$ qemu-img info RHEL9.0.qcow2 image: RHEL9.0.qcow2 file format: qcow2 virtual size: 30 GiB (32212254720 bytes) disk size: 5.05 GiB cluster_size: 65536 Format specific information: compat: 1.1 compression type: zlib lazy refcounts: false refcount bits: 16 corrupt: false extended l2: false |
raw 형식으로 변경은 다음과 같다.
1 2 3 4 5 6 |
$ sudo qemu-img convert RHEL9.0.vmdk RHEL9.0.img $ sudo qemu-img info RHEL9.0.img image: RHEL9.0.img file format: raw virtual size: 30 GiB (32212254720 bytes) disk size: 5.06 GiB |
결론
qemu-img 명령어를 이용해 VMPlayer 의 이미지를 KVM 이미지로 변경이 가능하다. 변경 후에 VM 이미지를 Import 해 구동하면 정상적으로 OS 가 올라 온다.