raw
(default) the raw format is a plain binary p_w_picpath of the disc p_w_picpath, and is very portable. On filesystems that support sparse files, p_w_picpaths in this format only use the space actually used by the data recorded in them.
老牌的格式,随便dd一个file就模拟了一个raw格式的镜像。目前来看,KVM和XEN默认的格式好像还是这个格式。因为其原始,有很多原生的特性,例如直接挂载也是一件简单的事情。支持转换成其它格式的虚拟机镜像,空间使用来看,这个很像磁盘,使用多少就是多少(du -h看到的大小就是使用大小),但如果你要把整块磁盘都拿走的话得全盘拿了(copy镜像的时候),会比较消耗网络带宽和I/O。如果那天硬盘不够用了,再买一块盘,可以在原来的盘上追加空间:
dd if=/dev/zero of=zeros.raw bs=1024k count=4096(先创建4G的空间)
cat foresight.img zeros.raw > new-foresight.img(追加到原有的镜像之后)

qcow2
QEMU copy-on-write format with a range of special features, including the ability to take multiple snapshots, smaller p_w_picpaths on filesystems that don’t support sparse files, optional AES encryption, and optional zlib compression
现在比较主流的一种虚拟化镜像格式,经过一代的优化,目前qcow2的性能上接近raw格式的性能。

https://fedoraproject.org/wiki/Features/KVM_qcow2_Performance

对于qcow2的格式,几点还是比较突出的,qcow2的snapshot,可以在镜像上做N多个快照:

更小的存储空间,即使是不支持holes的文件系统也可以(这下du -h和ls -lh看到的就一样了)

Copy-on-write support, where the p_w_picpath only represents changes made to an underlying disk p_w_picpath(这个特性SUN ZFS表现的淋漓尽致)

支持多个snapshot,对历史snapshot进行管理

支持zlib的磁盘压缩

支持AES的加密

1、KVM中磁盘镜像有哪些格式?
kvm从qemu继承了丰富的磁盘格式, 包括裸映象(raw p_w_picpaths), 原始qemu格式(qcow), VMware格式和更多
2、KVM中raw格式和qcow2格式的比较?
kvm虚拟机默认使用raw格式的镜像格式,性能最好,速度最快,它的缺点就是不支持一些新的功能,如支持镜像,zlib磁盘压缩,AES加密等。  要使用镜像功能,磁盘格式必须为qcow2

raw格式的话,速度稍微快点,在高版本的qemu-kvm中,几乎不比qcow2的格式快,而qcow2格式节省空间,可动态增长,在公有云中广泛使用,建议使用qcow2


vmdk 
VMware 3 & 4, or 6 p_w_picpath format, for exchanging p_w_picpaths with that product
VMware的格式,这个格式说的蛋疼一点就有点牛X,原本VMware就是做虚拟化起家,自己做了一个集群的VMDK的pool,做了自己的虚拟机镜像格式。又拉着一些公司搞了一个OVF的统一封包。从性能和功能上来说,vmdk应该算最出色的,由于vmdk结合了VMware的很多能力,目前来看,KVM和XEN使用这种格式的情况不是太多。但就VMware的Esxi来看,它的稳定性和各方面的能力还是可圈可点。

vdi
VirtualBox 1.1 compatible p_w_picpath format, for exchanging p_w_picpaths with VirtualBox.
SUN收购了VirtualBox,Oracle又收购了SUN,这么说呢,vdi也算虚拟化这方面的一朵奇葩,可惜的是入主的两家公司。SUN太专注于技术(可以说是IT技术最前端也不为过),Oracle又是开源杀手(MySQL的没落)。单纯从能力上来说vdi在VirtualBox上的表现还是不错的。也是不错的workstation级别的产品。

说了这么多虚拟机镜像格式,这么多虚拟化,做云计算的伤不起呀,得为长期发展考虑,也有朋友对镜像的转换做了很多事情,简单看看几种镜像的转化:

VMDK–>qcow2:

kevin@kevin:~# qemu-img convert -f vmdk -O qcow2 SLES11SP1-single.vmdk SLES11SP1-single.img

http://www.ibm.com/developerworks/cn/linux/l-cn-mgrtvm3/index.html

qcow2–>raw:

kevin@kevin:~$ qemu-img convert -O qcow2 p_w_picpath-raw.raw p_w_picpath-raw-converted.qcow