解决qcow2高版本兼容问题
我在Centos7上面将kvm的模板机镜像转换成qcow2格式的镜像,这样的话文件会是其实际占用磁盘的大小,文件小了传输的时间必然就缩短了。
我在Centos7上面执行:
# qemu-img convert -f raw -O qcow2 demo-centos6.img demo-centos6.img.qcow2
然后demo-centos6.img.qcow2就变成了只有几G,这样传输起来很嗨很快就传完了。
但是有些KVM宿主机是Centos6的系统,kvm虚拟机用的是raw格式的img文件。
然后我在Centos6系统的宿主机上面执行:
#qemu-img convert -f qcow2 -O raw demo-centos6.img.qcow2 demo-centos6.img #我想将img格式从qcow2再转换为raw格式
然后下面就是报错信息了:
'image' uses a qcow2 feature which is not supported by this qemu version: QCOW version 3
Could not open 'demo-centos6.img.qcow2': Operation not supported
Could not open 'demo-centos6.img.qcow2'
我在Centos7的宿主机上面也就是发送机查看了一下:
#qemu-img info demo-centos6.img.qcow2
file format: qcow2 Format specific information: compat: 1.1 lazy refcounts: false
#从上面查看了一下还是qcow2版本。
然后上网搜资料大概了解了,是compat: 1.1地方高了,网上的意思是:为新的QCOW V3 centos7/Fedora20 qemu-img支持格式,通过如下命令转化成低版本支持的QCOW2
然后会发现Centos7上面多了一个子命令:amend
然后在Centos7上面重新执行:
#qemu-img amend -f qcow2 -o compat=0.10 demo-centos6.img.qcow2
#通过上面的命令将我生成的qcow2格式文件的版本再次降低,转换成让低版本的操作系统可以支持的qcow2.
然后再发送到Centos6的宿主机上面去:
再次执行:
#qemu-img convert -f qcow2 -O raw demo-centos6.img.qcow2 demo-centos6.img
#将Centos7系统产生的qcow2格式的文件转换回raw格式。
成功没有报错,只是一个很小的版本问题,也就不做深究和讨论了,就是记录一下。