OpenVZ 7 supports both KVM VM and OpenVZ containers. For a customer, we were trying to import a CentOS 7 based KVM VM to OpenVZ 7 KVM VM. But the problem is, the VM was created in RAW format. But OpenVZ 7 KVM does not support RAW files for KVM, it supports QCOW2. Hence, we had to first convert the RAW image into a QCOW2 image first.
How to convert RAW KVM VM Image to QCOW2 VM Image
To convert raw to qcow2, you may use qemu-img kvm tool. This tool comes with the KVM setup. Let’s say your raw image is ‘harddisk.hdd.raw’, and you would like to produce a qcow2 image, called ‘harddisk.hdd’. To do that, you may run the following:
qemu-img convert -f raw -O qcow2 /root/harddisk.hdd.raw /root/harddisk.hdd.qcow2
Make sure, you are running this script from the place where you have the harddisk.hdd.raw stored.
Replace the disk in OpenVZ 7
In our case, our files are stored under /vz/vmprivate/. Under this folder of OpenVZ, you would find folders with VM id. In our case, it was under the following:
/vz/vmprivate/9d07cfef-42bf-4fbe-ac6a-7af9c85c9475
You can also see the list of VMs UUID, by typing the following command:
prlctl list --all
First, stop the VM
prlctl stop 9d07cfef-42bf-4fbe-ac6a-7af9c85c9475
Now, all you need to do, is to replace the ‘harddisk.hdd’ with the one we had converted
cd /vz/vmprivate/9d07cfef-42bf-4fbe-ac6a-7af9c85c9475
mv harddisk.hdd harddisk.hdd_backup
mv /root/harddisk.hdd.qcow2 harddisk.hdd
Now, start the VM, and you should be good to go
prlctl start 9d07cfef-42bf-4fbe-ac6a-7af9c85c9475