Linux的桌面虚拟化技术KVM,四——虚拟机镜像格式对比与转换 Linux的桌面虚拟化技术KVM

(1).常用镜像格式对比

  目前常用虚拟机镜像格式:raw、cow、qcow、qcow2、vmdk。

 1)raw

  raw格式:老牌的镜像格式,用一个字来说就是裸,也就是赤裸裸,你随便dd一个file就模拟了一个raw格式的镜像。由于裸的彻底,性能上来说的话还是不错的。centos6上KVM和XEN默认的格式还是这个格式。centos7以上默认是qcow2 。

  裸的好处还有就是简单,支持转换成其它格式的虚拟机镜像对裸露的它来说还是很简单的(如果其它格式需要转换,有时候还是需要它做为中间格式),空间使用来看,这个很像磁盘,使用多少就是多少(du -h看到的大小就是使用大小)。

  例: qcow2 转为 vmdk 方法是: qcow2 转为 raw ,然后把raw转为vmdk 。也可以直接qcow2转为vmdk

  佳能相机上的高保真用的就是这格式。RAW的原意就是“未经加工”。可以理解为:RAW图像就是CMOS或者CCD图像感应器将捕捉到的光源信号转化为数字信号的原始数据。RAW理解为“数字底片”

  缺点:不支持snapshot快照。

 2)cow、qcow、qcow2

  cow格式:还没有成熟,就被放弃了。后来被qcow格式所取代。

  qcow格式:刚刚出现的时候有比较好的特性,但其性能和raw格式对比还是有很大的差距,目前已经被新版本的qcow2取代。

  qcow2格式:现在比较主流的一种虚拟化镜像格式,经过一代的优化,目前qcow2的性能上接近raw裸格式的性能。qcow2格式支持snapshot快照,可以在镜像上做多个快照,具有以下优点:更小的存储空间;支持创建image镜像;支持多个snapshot快照,对历史snapshot进行行管理;支持zlib的磁盘压缩;支持AES的加密。

 3)vmdk

  vmdk格式:VMware的格式,整体性能最好,因为VMware就是做虚拟化起家。从性能和功能上来说,vmdk应该算最出色的,由于vmdk结合了VMware的很多能力,目前来看,KVM和XEN使用这种格式的情况不是太多。但就VMware的企业级虚拟化Esxi来看,它的稳定性和各方面的能力都很好。

(2).常用镜像格式转换

  格式转换使用qemu-img convert -f [源镜像格式] -O [目标镜像格式] [源镜像地址] [目标镜像地址]

  例如,将centos7.0由qcow2格式转换为raw格式

[root@youxi1 ~]# qemu-img convert -f qcow2 -O raw /var/lib/libvirt/images/centos7.0.qcow2 /var/lib/libvirt/images/centos7.0.raw
[root@youxi1 ~]# qemu-img info /var/lib/libvirt/images/centos7.0.raw
image: /var/lib/libvirt/images/centos7.0.raw
file format: raw  //可以看到格式已经变了
virtual size: 10G (10737418240 bytes)
disk size: 1.3G

  注意:如果修改了镜像格式,需要去修改其相应的配置文件才能使用。

  修改配置文件的方法一:该方法不需要重启libvirtd服务

[root@youxi1 ~]# virsh edit centos7.0
//修改第33~34行
      <driver name=\'qemu\' type=\'raw\'/>
      <source file=\'/var/lib/libvirt/images/centos7.0.raw\'/>

  修改配置文件的方法二:该方法需要重启libvirtd服务

[root@youxi1 ~]# vim /etc/libvirt/qemu/centos7.0.xml
//修改第40~41行
      <driver name=\'qemu\' type=\'raw\'/>
      <source file=\'/var/lib/libvirt/images/centos7.0.raw\'/>
[root@youxi1 ~]# systemctl restart libvirtd