qcow二、raw、vmdk等镜像格式

qcow二、raw、vmdk等镜像格式

 来源 http://www.cnblogs.com/feisky/archive/2012/07/03/2575167.htmlhtml

云计算用一个朋友的话来讲:”作云计算最苦逼的就是得时时刻刻为一些可能一生都碰不到的事作好准备。更苦逼的就是刚觉得一个问题不会遇到,马上就发生了。。。“。这个还真的没有办法,谁让哥我是搞云计算的呢,简单一个虚拟化就搞的你蛋疼,你还能想其它的吗?一直纠结在作虚拟化使用什么镜像格式,刚刚开始用了raw的file,后来发现LVM的不少特性对于虚拟化仍是有比较理想的能力,并且性能也很不错就用了LVM。后来被VMware骗了跑去搞Esxi接触了VMDK,最近研究openstack发现了qcow2格式,貌似如今很流行呀。也说不上分析这些镜像格式的能力,就简单说说本身的一些使用心得。前端

目前主要有那些格式来做为虚拟机的镜像:
raw
(default) the raw format is a plain binary image of the disc image, and is very portable. On filesystems that support sparse files, images 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。接下来还有个有趣的问题,若是那天你的硬盘用着用着不够用了,你咋办,在买一块盘。但raw格式的就比较犀利了,能够在原来的盘上追加空间:
dd if=/dev/zero of=zeros.raw bs=1024k count=4096(先建立4G的空间)
cat foresight.img zeros.raw > new-foresight.img(追加到原有的镜像以后)
固然,好东西是吹出来的,谁用谁知道,仍是有挺多问题的。因为原生的裸格式,不支持snapshot也是很正常的。传说有朋友用版本管理软件对raw格式的文件作版本管理从而达到snapshot的能力,估计可行,但没试过,这里也不妄加评论。但若是你使用LVM的裸设备,那就另当别论。说到LVM仍是十分的犀利的,当年用LVM作虚拟机的镜像,那性能杠杠的。并且如今好多兄弟用虚拟化都采用LVM来作的。在LVM上作了不少的优化,国外据说也有朋友在LVM增量备份方面作了不少的工做。目前来LVM的snapshot、性能、可扩展性方面都仍是有至关的效果的。目前来看的话,备份的话也问题不大。就是在虚拟机迁移方面仍是有很大的限制。但目前虚拟化的现状来看,真正须要热迁移的状况目前需求还不是是否的强烈。虽然使用LVM作虚拟机镜像的相关公开资料比较少,但目前来看牺牲一点灵活性,换取性能和便于管理仍是不错的选择。mysql

对于LVM相关的特性及使用能够参考以下连接:linux

http://www.ibm.com/developerworks/linux/library/l-lvm2/index.htmlsql

cow
copy-on-write format, supported for historical reasons only and not available to QEMU on Windows
曾经qemu的写时拷贝的镜像格式,目前因为历史遗留缘由不支持窗口模式。从某种意义上来讲是个弃婴,还没得它成熟就死在腹中,后来被qcow格式所取代。网络

qcow
the old QEMU copy-on-write format, supported for historical reasons and superseded by qcow2性能

一代的qemu的cow格式,刚刚出现的时候有比较好的特性,但其性能和raw格式对比仍是有很大的差距,目前已经被新版本的qcow2取代。其性能能够查看以下连接:
http://www.linux-kvm.org/page/Qcow2优化

qcow2
QEMU copy-on-write format with a range of special features, including the ability to take multiple snapshots, smaller images on filesystems that don’t support sparse files, optional AES encryption, and optional zlib compression
如今比较主流的一种虚拟化镜像格式,通过一代的优化,目前qcow2的性能上接近raw裸格式的性能,这个也算是redhat的官方渠道了,哈哈,但愿有朋友能拍他们砖:this

https://fedoraproject.org/wiki/Features/KVM_qcow2_Performance云计算

对于qcow2的格式,几点仍是比较突出的,qcow2的snapshot,能够在镜像上作N多个快照:

  • 更小的存储空间,即便是不支持holes的文件系统也能够(这下du -h和ls -lh看到的就同样了)
  • Copy-on-write support, where the image only represents changes made to an underlying disk image(这个特性SUN ZFS表现的淋漓尽致)
  • 支持多个snapshot,对历史snapshot进行管理
  • 支持zlib的磁盘压缩
  • 支持AES的加密

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

vdi
VirtualBox 1.1 compatible image format, for exchanging images 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 image-raw.raw image-raw-converted.qcow

 

ova转ovf

ovftool --lax Centos6.6-lamp.ova Centos6.6-lamp.ovf
ovftool --overwrite --shaAlgorithm=sha1 --lax Centos6.6-lamp.ova Centos6.6-lamp.ovf

修改.ovf文件,将
<vssd:VirtualSystemType>virtualbox-2.2</vssd:VirtualSystemType>
修改成
<vssd:VirtualSystemType>vmx-07</vssd:VirtualSystemType>

修改mf文件的sha1
echo sha1(file_get_contents('xxx.mf'))

 

================= End

相关文章
相关标签/搜索