做虚拟化的朋友肯定对各种镜像文件格式比较熟悉了,下面就简单说说各大平台的镜像文件格式。

目前主要有那些格式来作为虚拟机的镜像:

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格式的就比较犀利了,可以在原来的盘上追加空间:

1
2
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做虚拟机镜像的相关公开资料比较少,但目前来看牺牲一点灵活性,换取性能和便于管理还是不错的选择。

对于LVM相关的特性及使用可以参考如下链接:http://www.ibm.com/developerworks/linux/library/l-lvm2/index.html

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的官方渠道了,哈哈,希望有朋友能拍他们砖:https://fedoraproject.org/wiki/Features/KVM_qcow2_Performance

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

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

qcow3

The proposal for QCOW3 is different: It includes a version number increase in order to introduce some incompatible features, however it's strictly an extension of QCOW2 and keeps the fundamental structure unchanged, so that a single codebase will be enough for working with both QCOW2 and QCOW3 images.

Internally, QEMU will have a single driver for both QCOW2 and QCOW3 images, so it's an option to continue letting users know the format as "qcow2", just with an additional flag that can be set on image creation and specifies which version number should be used (and therefore, which features should be available).

也就是说,qcow3是qcow2的一个版本迭代,继承了qcow2的一些特性,并且在使用的叫法上仍然是qcow2,不想qcow和qcow2一样改变了非常多的东西,在版本号上qcow2是=0.10,qcow3=1.1.
具体的qcow3的特性可以访问wiki:http://wiki.qemu-project.org/Features/Qcow3

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级别的产品。

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

转换工具

  • v2v,可以看我的另外一篇文档,v2v可以i转换vmdk,cow,ovf,qcow2等镜像格式为qcow,raw等格式。这个工具很强大,另外使用qemu-img也可以在linux qemu下转换raw等格式,比较局限可以参考,我的另外一篇文章qemu-img的使用
最新最早最热

各种虚拟化镜像文件格式相关推荐

  1. qemu-img转换镜像文件格式

    qemu-img转换镜像文件格式 qemu-img转换镜像文件格式 qemu-img转换镜像文件格式 命令: qemu-img convert -f qcow2 -O raw test.qcow2 t ...

  2. 刻录启动镜像之一:镜像文件格式详解

    刻录启动镜像之一:镜像文件格式详解 Disk Image CD/DVD Live CD .iso .bin / .raw / .img .cue .dmg .nrg Disk Image 磁盘映像是包 ...

  3. ISO文件镜像部署至云(镜像文件格式转换)

    由于阿里云需求,无法上传ISO镜像,需要将格式转化. 前两天文章有误,于此修改. 这两天测试下来以下方案对我来说较为简便. 一. 新建虚拟机并导入镜像 1. 下载并安装VirtualBox Oracl ...

  4. 虚拟机镜像文件格式-raw

    目前公司以raw作为虚拟机模板的储存方式,在部署虚拟机的时候,采用的是LV作为储存设备.这样的好处是可以用于局域网内的服务器共享,也方便在不同服务器上进行传输,单个服务器可以利用lv的快照特性来备份. ...

  5. Docker虚拟化镜像制作

    一个完整的Docker镜像可以支撑一个Docker容器的运行,在Docker容器运行过程中主要提供文件系统数据支撑.Docker镜像时分层结构的,是由多个层级组成,每个层级分别存储各种软件实现某个功能 ...

  6. Linux内核镜像文件格式与生成过程(转)

    <Linux内核镜像格式>   Linux内核有多种格式的镜像,包括vmlinux.Image.zImage.bzImage.uImage.xipImage.bootpImage等. ➤k ...

  7. libvirt Java 实现远程管理虚拟机

    libvirt Java 实现远程管理虚拟机 from csdn.kyyee 虚拟化简介 虚拟化是将计算机的各种实体资源(CPU.内存.存储.网络等)进行抽象后呈现出来,即是将一台物理计算机分割成多台 ...

  8. 从网上搜索到的虚拟化笔记

    第一课时 [S1 虚拟化与云计算] 通过网络获取所需服务 分为三类: SaaS EndUsers 基础设施类 PaaS ApplicationDeveloper 平台服务 IaaS NetworkAr ...

  9. 虚拟化与网络存储技术:虚拟化技术、Qemu-KVM

    目录 虚拟化技术 一.虚拟化技术分类 二.XEN虚拟化技术简介 XEN虚拟化技术的优缺点: 三.KVM虚拟化技术简介 KVM虚拟化技术的优势 四.红帽RHEV虚拟化系统简介 1.红帽RHEV虚拟化系统 ...

最新文章

  1. CentOS 6.x搭建Open***实现双IDC互联
  2. 语言求余和乘除优先级_愉快地学Java语言:第二章基本程序设计 第2讲
  3. 遍历同辈节电的方法_JQuery遍历DOM节点的方法
  4. 面试中遇到回答不上来的问题可以这样做
  5. 【STL深入学习】SGI STL空间配置器详解(二)-第二级空间配置器
  6. Docker技术入门与实战
  7. LeetCode(303)——区域和检索 - 数组不可变(JavaScript)
  8. [转]RDLC 动态列
  9. python按位与怎么算_python 的按位与、或、异或 运算
  10. STM32 IWDG时间计算方法
  11. linux下升级glibc-2.14问题
  12. 文件(夹)操作SHFileOperation (删除 复制 移动) 报错 无法读取源文件或磁盘
  13. C#网络编程技术SuperSocket实战项目演练
  14. 数字电路专题:常用逻辑门符号
  15. 解读全新闪存FlashSystem 9100
  16. Pwnable.kr collision [Writeup]
  17. Compiz Fusion 安装后的设置
  18. Python学习之道-烤机测试日志Log分析统计
  19. ARM售价超400亿美元?软银与英伟达有望达成史上最大半导体交易-1
  20. 数据结构——二叉树——特点及性质

热门文章

  1. CUDA安装详细教程
  2. SCI投稿过程总结、投稿状态解析、拒稿后对策及接受后期相关问答
  3. 滑动平均滤波_单片机数字滤波算法如何实现?(附代码)
  4. 建筑设备自动化——I/O接口数字量与模拟量
  5. 10G SFP+ DWDM波分光模块在长途骨干网中的应用
  6. [linux]循序渐进学运维-基础命令篇-文件的归档和压缩
  7. 最近找到的几个不错的手机APP
  8. Python——windows下pip换源 和 自动生成和安装requirements.txt
  9. 短信验证码和语音验证码该如何选择?
  10. 《Linux/UNIX OpenLDAP实战指南》——2.4 OpenLDAP配置