虚拟机硬盘格式的选择:qcow2、 raw
时间:2010-06-11
来源:互联网
搜了下,发现大部分用qemu或者kvm的,都默认使用qcow2来作为虚拟硬盘,但qemu官方默认是用raw。
下面是qemu wiki对两种格式的描述:
raw
Raw disk image format (default). This format has the advantage of being simple and easily exportable to all other emulators. If your file system supports holes (for example in ext2 or ext3 on Linux or NTFS on Windows), then only the written sectors will reserve space. Use qemu-img info to know the real size used by the image or ls -ls on Unix/Linux.
qcow2
QEMU image format, the most versatile format. Use it to have smaller images (useful if your filesystem does not supports holes, for example on Windows), optional AES encryption, zlib based compression and support of multiple VM snapshots.
raw的优势(能找到的相关资料太少,不知道是不是理解有误):
1、简单,并能够导出为其他虚拟机的虚拟硬盘格式
2、根据实际使用量来占用空间使用量,而非原先设定的最大值(比如设定最高20G,而实际只使用3G)。——需要宿主分区支持hole(比如ext2 ext3 ntfs等)
3、以后能够改变空间最大值(把最高值20G提高到200G,qcow2也可以,不过要转为raw)
4、能够直接被宿主机挂载,不用开虚拟机即可在宿主和虚拟机间进行数据传输(注意,此时虚拟机不要开)
而qcow2的优势:
1、更小的虚拟硬盘空间(尤其是宿主分区不支持hole的情况下)
2、optional AES encryption, zlib based compression and support of multiple VM snapshots.
另外,根据fedora12的wiki,说测试结果是raw比qcow2性能更好,即使是新版的qcow2。http://fedoraproject.org/wiki/Featur...w2_Performance
如果单纯靠这些信息,那么raw好像更有优势,而且更方便。(raw支持快照否???)
那么,为什么大家都默认使用qcow2呢?为什么?
同样的,还有vmdk vdi等虚拟机硬盘格式的优劣表现在哪方面呢?
又看到一个资料,说raw 格式是一种”直读直写”的格式,不具备特殊的特性。也就是说,qcow2具备的这两个AES encryption, zlib based compression,raw就没有。
kqemu是qemu的内核加速模块,不是kvm。wiki里qemu部分有写,和kvm是分为两部分的,是两种不同的内核加速模块。
qemu跑98、me、xp是很慢的,但跑win95,win2000,是飞速的,尤其是win2000(nnd,win2000好像在普通电脑里相比那几个好像是最慢的)。98、me要快,可以用定制版的windows,好像叫lite的。
但今天再回过头来看,发现其实raw更好:
raw相比qcow2就缺乏的四个功能,但都能通过别的方式解决:
1、加密功能:把raw本身就当普通文件加密之搞定
2、快照功能:把raw加入版本管理目录中,具体需要的设置可能稍微有点多。
3、宿主机不支持按需打孔模式(hole):这个可以自己根据使用情况来扩展raw的最大值
4、硬盘压缩:就当普通电脑文件压缩之即可
而raw有qcow2所无法媲美的功能:
1、效率高于qcow2
2、直接读写虚拟机硬盘里面的文件,这比较“暴力”,但既然可以这么暴力,那么也就不怕虚拟机出任何问题了。
3、通用性好,是转为其他虚拟机的格式的通用中间格式,这样就不用担心转换虚拟机系统了。
ps:我知道这不是事情的最终面目,这个只是我目前的理解阶段,所以提出来供大家讨论,以期提高。
作者: jobinson99 发布时间: 2010-06-11
作者: playfish 发布时间: 2010-06-11
作者: playfish
顶一个,最近想换kvm,一直在犹豫用哪种格式。此外,还研究了spice协议,据说用这个,可以让kvm拿到native级别的图形加速性能。不过现在还在开发阶段,arch上还没有现成的东西。此外,spice server必须依赖64位系统。这点相当不爽。
|
对spice不熟,感觉就是一个虚拟机通用的后端/前端图形界面,但这个用远程桌面不也可以实现?(已经被我下面的否定了,两者不一样,spice应该是:远程桌面+远程资源本地映射)
刚刚看了其英文介绍,简要翻译下:
“图形”硬件加速方面:
1、“客户端”2D使用通用的Cairo渲染
2、“客户端”windows下使用GDI,linux下使用Opengl
3、使用“客户端”的GPU来替换CPU渲染:可因此获得高效的渲染,并改善虚拟机的CPU使用率
4、“服务端”使用Opengl来渲染
ps:这很好玩,不管虚拟的机子是什么类型,都可以根据自己电脑的配置,来使用本地的硬件,那这样的话,同样的一个虚拟机,在不同的电脑上显示效果可就不一样了。
作者: jobinson99 发布时间: 2010-06-12
其他系统好像还没那么明显,用mac的时候一有磁盘io系统就卡.
作者: CnkknD 发布时间: 2010-06-12
作者: jobinson99
kvm好像本来就应该依赖64位硬件的吧?
|
http://wiki.ubuntu.org.cn/UbuntuHelp:KVM/Installation里如是说:
1. To serve more than 2GB of RAM for your VMs, you must use a 64-bit kernel (see 32bit_and_64bit). On a 32-bit kernel install, you'll be limited to 2GB RAM at maximum for a given VM.
2. Also, a 64-bit system can host both 32-bit and 64-bit guests. A 32-bit system can only host 32-bit guests.
它们的区别只是客户端使用内存的大小。
作者: playfish 发布时间: 2010-06-12
作者: playfish
kvm是64/32通用的啊?
http://wiki.ubuntu.org.cn/UbuntuHelp:KVM/Installation里如是说: 1. To serve more than 2GB of RAM for your VMs, you must use a 64-bit kernel (see 32bit_and_64bit). On a 32-bit kernel install, you'll be limited to 2GB RAM at maximum for a given VM. 2. Also, a 64-bit system can host both 32-bit and 64-bit guests. A 32-bit system can only host 32-bit guests. 它们的区别只是客户端使用内存的大小。 |
应该是依赖于多核是否支持虚拟化。
作者: jobinson99 发布时间: 2010-06-12
话说虚拟盘所在分区用什么格式比较好啊,我感觉reiserfs和ext4还算好,XFS慢死。。。
作者: liwangli 发布时间: 2010-06-12
作者: liwangli
我一般用RAW。
话说虚拟盘所在分区用什么格式比较好啊,我感觉reiserfs和ext4还算好,XFS慢死。。。 |
至于虚拟盘所在分区用什么格式,这个好像要根据使用情况吧?每种需求对应不同的分区格式。
作者: jobinson99 发布时间: 2010-06-12
作者: jobinson99
能说说理由么?
至于虚拟盘所在分区用什么格式,这个好像要根据使用情况吧?每种需求对应不同的分区格式。 |
我说的是虚拟盘(文件)所在宿主机的分区格式啦
作者: liwangli 发布时间: 2010-06-12
作者: playfish 发布时间: 2010-06-12
作者: liwangli
理由和你的大体差不多了,RAW通用性好,可以直接挂载。
我说的是虚拟盘(文件)所在宿主机的分区格式啦 |
对于主机系统,既然是对大文件操作,从这两篇文章看
http://www.phoronix.com/scan.php?pag...nchmarks&num=1
http://www.phoronix.com/scan.php?pag..._2634_fs&num=1
ext4无可争议的是最佳选择。对于4GB大文件,连续创建和随机读写速度都是最快的。8GB的时候就更快了。
作者: playfish 发布时间: 2010-06-12
作者: liwangli 发布时间: 2010-06-12
作者: liwangli
其实我用过感觉最快还还是单独分出一个分区,再把虚拟机安装位置指定过去。比任何虚拟的磁盘文件都快。
|
不过可能跟平台和软件有关,你们可以试试
我用在win7下用vmware player跑mac,开始指定物理分区,以为能快点,结果卡得不行,换到虚拟文件上以后好得多,可能读写物理分区时占用cpu更多,不知道是vmware的问题还是win7的问题.
作者: CnkknD 发布时间: 2010-06-13
但就我的使用情况来看,没开效果更好
我分配的是1g内存,装的arch,平时在虚拟机里装个kde,主要开netbeans和浏览器.差不多够用.
在我分配了1g的swap(专门添加的一块虚拟磁盘)以后,虽然linux会尽多的使用物理内存,但免不了和虚拟内存交换, 一交换就有磁盘io, 有磁盘io系统就容易卡, 比如鼠标窗口移动是不平滑, 而不挂swap就不会这样.
我想可能是没挂swap的时候,有程序允许需要分配内存了,linux发现内存不够会释放一些缓存,而不是与swap交换, 磁盘io量小. 虚拟磁盘读写性能以及cpu占用率差距大, 所以, 即使是缓存小了, 系统需要时再从磁盘载入影响也不太大.
我随便想的, 希望有人一起探讨.
ps 我现在非常喜欢虚拟机, 只要内存够大, 几个os可以相互弥补不足. 我基本上是用玩游戏的win做host, 虚拟机一个是测试用的xp, 一个是开发和上网用的arch, 还有偶尔品尝一下的mac.
作者: CnkknD 发布时间: 2010-06-13
作者: CnkknD
我现在还有一个问题,虚拟机里开不开虚拟内存?我发现说法都不一,不过大部分说开
但就我的使用情况来看,没开效果更好 我分配的是1g内存,装的arch,平时在虚拟机里装个kde,主要开netbeans和浏览器.差不多够用. 在我分配了1g的swap(专门添加的一块虚拟磁盘)以后,虽然linux会尽多的使用物理内存,但免不了和虚拟内存交换, 一交换就有磁盘io, 有磁盘io系统就容易卡, 比如鼠标窗口移动是不平滑, 而不挂swap就不会这样. 我想可能是没挂swap的时候,有程序允许需要分配内存了,linux发现内存不够会释放一些缓存,而不是与swap交换, 磁盘io量小. 虚拟磁盘读写性能以及cpu占用率差距大, 所以, 即使是缓存小了, 系统需要时再从磁盘载入影响也不太大. 我随便想的, 希望有人一起探讨. ps 我现在非常喜欢虚拟机, 只要内存够大, 几个os可以相互弥补不足. 我基本上是用玩游戏的win做host, 虚拟机一个是测试用的xp, 一个是开发和上网用的arch, 还有偶尔品尝一下的mac. |
硬盘的最大性能>特定分区格式和系统所能利用的最大性能>虚拟机虚拟硬盘所能利用的最大性能>虚拟机中的操作系统和分区格式所能利用的最大性能
经过这么多层的削弱,估计确实非常有必要有一种专门为虚拟机设计的分区格式,比如lvm之类的,来获得更搞的性能。
虚拟机中,linux的swap还是要开的,因为你无法确定某一天你会大量使用内存(尤其是用于服务器方面的),以至你原来给的内存不够用,所以需要预留这些空间,有了这点缓冲时间,估计够在线解决问题了。
但挂了swap之后慢,可能和我上面说的:虚拟机的硬盘性能最大只能达到宿主的硬盘性能上限,而不会超过它,所以导致的。
作者: jobinson99 发布时间: 2010-06-14
这样看来还是RAW盘比较好!
大家继续讨论呀,非常有意义的贴子!
作者: rjyang 发布时间: 2010-06-25
作者: rjyang
强贴,我也正在考虑究竟用什么磁盘格式性能最好,马上就要在生产系统上使用了。
这样看来还是RAW盘比较好! 大家继续讨论呀,非常有意义的贴子! |
比如我上面列举的4个raw可以通过别的方式搞定的功能,实际上有个前提:能够随时关机。(不关机也可以,但因为这方面并没有经过多少验证,安全性稳定性如何存疑。)
而raw的很多优势,也是基于关机状态才具备的优势,比如:直接挂载。
也就是说,如果要在线具备更高级的硬盘特性/稳定性/有保障的品质追求,那么raw可能不是个好选择。
作者: jobinson99 发布时间: 2010-06-26
作者: 暮雪清浊 发布时间: 2010-06-29
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28