vmware和virtualbox的对比

Kvm、VMware、Virtualbox、Xen、Qemu 等
ausun
帖子: 65
注册时间: 2007-05-11 9:21

vmware和virtualbox的对比

#1

帖子 ausun » 2007-06-28 14:46

几星期前我的XP出了个毛病,每隔几分钟就出现键盘和鼠标没有响应,持续5、6秒钟,怀疑是病毒所致,可是却无从下手。加上这段时间大多数时间都在 ubuntu 下面,使用感觉很不错,于是有了使用它作为主操作系统的想法。可是我的工作要求使用windows下的工具进行编程和测试,完全摆脱windows是不可能了,只好在ubuntu里面用虚拟机装个XP。我的想法是这个XP只是工作用,越简单越好,只装必要的软件,并且不给它上网,从而避免病毒和木马的骚扰。这段时间一直在VirtualBox和Vmware之间骑墙,对这两个虚拟机有了一定的了解,做一下总结吧。
先介绍一下基本情况。我有两台电脑,家里是一个台式机,公司里有一个笔记本,ubuntu 7.04是装在移动硬盘里两台机器共用的。虚拟机用的是VirtualBox 1.4.0和Vmware player 2.0.0 build-45731。Guest OS是Windows XP SP2。

1、易用性
两个虚拟机都挺好用的,安装了各自的guest os工具后感觉相当好。不过它们也各有缺点。
VirtualBox总是出一些莫名其妙的毛病。我的ubuntu空间不够用了,所以我把虚拟硬盘放在移动硬盘的FAT32分区上,然后做了个链接过来,结果VirtualBox在台式机上启动后总说我的虚拟机Inaccessiable。有时说WinXP.vdi已经附属于另一个虚拟机了,有时说 Snapshot folder不可访问,让我放弃所有snapshots再试。可是这时在里面根本无法编辑虚拟机的选项,就算想放弃也没办法啊,这点显得有点弱智。我检查过所有链接和文件权限都没问题,而且换在笔记本上也是好好的没这些毛病,真是一点办法都没有。VirtualBox的共享剪贴板有很多可选设置,比 Vmware player更灵活些。
Vmware我装的是免费的player,所以功能上难免有些限制,改动配置基本靠编辑配置文件。其他还好了,反正很少改,就是改变光驱属性有点麻烦,在物理光驱和 ISO文件间切换时需要关闭guest os,编辑配置文件后重启。至于在ISO文件间切换比较好办,在配置文件里只是写一个文件链接,需要改变时让链接指向不同的文件即可。Vmplayer全屏显示时会在屏幕顶端显示一个工具条,可以用来最小化、还原、关闭虚拟机,对习惯鼠标操作的人可能更方便些。Vmare player不支持snapshot,这个的确不大好。

2、速度
VirtualBoxVirtualBox的显示干净利落,一点都不拖泥带水,给人的感觉是运行速度很快,尤其是开机时显示的画面挺顺畅的。
Vmware起初在我的笔记本里运行速度很慢,启动、关机明显比VirtualBox慢,程序运行速度似乎还行。不过让人难以接受的就是系统时间,基本是每隔7、8秒虚拟机里才跳1秒,即使打开vmware tools的时间同步也经常比host机的时间慢1~5分钟,这对于编译程序是不可接受的,可能会造成make误以为某些需要编译的模块已经编译过了。而且其他一些用到计时的程序(比如ping)也不正常。但是在我的台式机上就没有时间变慢这个问题。在网上搜了一下,发现这是一个有悠久历史的问题,按照某些方法加了内核参数不起作用,昨天终于找到了问题所在:

代码: 全选

cat /sys/module/processor/parameters/max_cstate
我的笔记本里这个值是8,解决方法很简单,只要一行命令:

代码: 全选

echo 1 > /sys/module/processor/parameters/max_cstate
执行完后立竿见影,guest os的时间立刻就跟上了,而且运行速度也明显加快,编译程序时感觉就像在真实的机器里一样快,真舒坦。
感觉往往是不准确的,所以我进行了一下测试。两个虚拟机的运行环境基本一样,都是只配了硬盘、内存(320M)和网卡,都是通过samba访问host机上的源文件,装的软件都只是编译必需的,只是vmware的虚拟机里多了一个cooledit,测试时都是开机后直接运行编译命令,编译同一个工程的用时结果如下(所有的时间都是用host机记录的,虚拟机里的时间不准,尤其vmware差异较大):
ubuntu 7.04 + VirtualBox 1.4.0 + 虚拟XP: 3'36"
ubuntu 7.04 + Vmware player 2.0.0 b45731 + 虚拟XP: 1'42"
真实的XP环境: 1'13"
结果真是让人难以置信啊,差距大的有点离谱,不过却是事实。Vmware的速度是可以接受的,毕竟是虚拟机,而且访问文件时绕了那么多弯子。VirtualBox就有点过分了,无论是文件读写还是编译源文件速度都比其他两个慢。
后来又测试了VirtualBox另外两种内存配置下的编译速度,结果没有什么改观:
ubuntu 7.04 + VirtualBox 1.4.0 + 虚拟XP(128M内存): 4'17"
ubuntu 7.04 + VirtualBox 1.4.0 + 虚拟XP(256M内存): 4'02"
以上速度测试涉及网络、内存等综合因素,尤其是vbox的测试,每次测试变化幅度较大,仅供类似使用环境参考。
为了排除网络速度的影响,我又使用super pi 1.2测试了一下104万位的计算时间,结果两个虚拟机都是47秒,看来virtualbox的网速真是大大拖了它的后腿。

3、虚拟硬盘
VirtualBox一个虚拟硬盘一个文件,在FAT32文件系统上每个虚拟硬盘最大只能是4G,可能不太够用。
Vmware的虚拟硬盘可以分割成若干个2GB大小的文件,对于FAT32这样的文件系统很有用。我感觉linux对ntfs的写操作依然不是很稳定,所以我的移动硬盘还是使用FAT32分区,所以对我来说Vmware更好用。

4、USB支持
VirtualBox的USB支持比较麻烦,需要先解决权限的问题。开始时我用添加usbfs用户组的方法:

代码: 全选

sudo addgroup usbfs
注意usbfs组的id号,假如是1002
然后修改/etc/fstab
添加一行

代码: 全选

none /proc/bus/usb usbfs devgid=1002,devmode=664 0 0
把当前帐号加入到usbfs组中

代码: 全选

sudo usermod -G usbfs -a your_account
结果上面的方法不起作用,后来找到另一个方法:
编辑 /etc/udev/rules.d/40-permissions.rules
找到这行:

代码: 全选

SUBSYSTEM=="usb_device", MODE="0664"
改成

代码: 全选

SUBSYSTEM=="usb_device", MODE="0666"
终于搞定了。
Vmware的USB使用就简单多了,直接点按钮就连接上了。

5、音频
我做的工作跟音频有关,所以对于音频要求还是挺高的。
VirtualBox的音频不是很好,用它自带的虚拟声卡播放时经常会卡一下。用USB耳机就更惨了,断断续续的,似乎有声的时候比无声的时候还少。
Vmware的音频相当好,无论用内置的虚拟声卡还是USB耳机都播放的很顺畅。

6、共享文件夹
两个虚拟机的共享文件夹实现都不完美,读、写文件都没问题,不过设置文件属性(比如修改时间)都不行,本来想用共享文件夹访问需要编译的源码的,由于不能设置文件属性造成编译程序出错,只好作罢。
VirtualBox下使用共享文件夹有时会出错,不太稳定。使用共享文件夹需要使用命令行来建立映射:

代码: 全选

net use x: \\vboxsvr\[共享文件夹名称]
ubuntu 7.04里面的Vmware player比较旧,不支持共享文件夹,从vmware网站上下载一个最新的装上就行了。安装过程很简单,基本一路回车。说明文件说可以在网络邻居上浏览到共享文件夹,可是我的系统里在网络邻居里没看到任何东西,不过通过搜索计算机“.host”找到了,然后直接映射就行了。它的共享文件夹比较稳定,我这里还没有出过问题。

7、网络
为了远离病毒和木马,本来不想给虚拟机配置网卡的,可是由于上面提到的共享文件夹的问题,只好通过网络来访问host机上通过samba共享的文件。不过我只希望guest和host之间通讯,不需要连到外面的网上。
VirtualBox我用的是NAT,这种方式配置最简单,host机上不需要做任何操作。guest机启动后就可以通过dhcp分配到IP地址,是 10.0.2.x网段。不过这样的话guest机是可以通过host上网的。为了阻止它连网,我把网卡改成固定IP地址10.0.2.20,并且不配网关,把DNS设置成127.0.0.1,这样它就不能上网了。可是怎么和host机互连呢?在ubuntu下是看不到VirtualBox的网卡的,不知道它用什么方法隐藏起来了,不过这个网卡的地址是10.0.2.2,通过这个地址就能访问host机了。
Vmware里用host-only方式就能实现我的要求,使用和配置都非常简单,不多说了。

由上面的比较可以看出,对于我的需求来说Vmware优点更多些,所以在解决了guest os系统时间变慢的问题后我理所当然的选择了Vmware player。
上次由 ausun 在 2007-07-04 11:06,总共编辑 5 次。
头像
interskh
帖子: 203
注册时间: 2005-11-16 10:42
联系:

#2

帖子 interskh » 2007-06-28 14:52

不错
我还是用virtualbox.. 反正windows用的很少.
头像
Lejcey
帖子: 105
注册时间: 2005-08-18 22:24
来自: 广东省中山市

#3

帖子 Lejcey » 2007-06-29 21:51

LZ分析得很详细,很有用,谢谢提供。
只有当一个人全面了解自己后,他才会知道自己需要的是什么。
同理,只有当一个人全面了解linux以后,他才会知道自己需要的linux软件是什么。
ino1
帖子: 266
注册时间: 2006-10-28 18:05

#4

帖子 ino1 » 2007-06-30 0:02

VBox的网卡不是一般的慢,与VM是10M:1000M的比例关系,所以,通过VBox网卡的大数据传输,明显感觉得到停顿。
P4M 2.4GHz 256+512MDDR IGP340M共享64M
越来越喜欢beryl了,把我的桌面扩展得好大呀!
LONGSV
帖子: 136
注册时间: 2005-03-28 22:30

Re: vmware和virtualbox的对比

#5

帖子 LONGSV » 2007-06-30 0:34

ausun 写了:2丶速度
VirtualBox的速度还是挺快的,尤其是开机时显示的画面挺顺畅的。
Vmware起初在我的笔记本里运行速度很慢,启动丶关机明显比VirtualBox慢,程序运行速度似乎还行。不过让人难以接受的就是系统时间,基本是每隔7丶8秒虚拟机里才跳1秒,即使打开vmware tools的时间同步也经常比host机的时间慢1~5分钟,这对于编译程序是不可接受的,可能会造成make误以为某些需要编译的模块已经编译过了。而且其他一些用到计时的程序(比如ping)也不正常。但是在我的台式机上就没有时间变慢这个问题。在网上搜了一下,发现这是一个有悠久历史的问题,按照某些方法加了内核参数不起作用,昨天终于解决了,方法很简单,只要一行命令:

代码: 全选

echo 1 > /sys/module/processor/parameters/max_cstate
执行完后立竿见影,guest os的时间立刻就跟上了,而且运行速度也明显加快,编译程序时感觉就像在真实的机器里一样快,真舒坦。
感觉往往是不准确的,所以我进行了一下测试。两个虚拟机的运行环境基本一样,都是只配了硬盘丶内存(320M)和网卡,都是通过samba访问host机上的源文件,装的软件都只是编译必需的,只是vmware的虚拟机里多了一个cooledit,测试时都是开机后直接运行编译命令,编译同一个工程的用时结果如下:
ubuntu 7.04 + VirtualBox 1.4.0 + 虚拟XP: 3'36"
ubuntu 7.04 + Vmware player 2.0.0 b45731 + 虚拟XP: 1'42"
真实的XP环境: 1'13"
结果真是让人难以置信啊,差距大的有点离谱,不过却是事实。Vmware的速度是可以接受的,毕竟是虚拟机,而且访问文件时绕了那么多弯子。VirtualBox就有点过分了,无论是文件读写还是编译源文件速度都比其他两个慢。
关于第二点“速度”,我想楼主的测试方法完全不对,请楼主上网找一找关于VirtualBox的内存使用原理看看,就会明白了。
按楼主说的VirtualBox和Vmware内存都分320M是很不合适的,建议楼主把VirtualBox的内存只分128M试试。
zhudachang
帖子: 40
注册时间: 2007-06-25 8:19
来自: 德国

#6

帖子 zhudachang » 2007-06-30 14:11

我的VirtualBox不知道什么原因,在我使用虚拟XP的时候,经常莫名奇妙的中断;

还是安装个Vmware算了.
2007年6月进入 Linux 世界,你可以嘲讽我的无知与浅薄,但是你不能否定我的努力和不断进步。
ausun
帖子: 65
注册时间: 2007-05-11 9:21

#7

帖子 ausun » 2007-07-02 12:50

我以前的确没研究过virtualbox内存分配的问题,刚刚做了一下测试,没发现什么变化:
ubuntu 7.04 + VirtualBox 1.4.0 + 虚拟XP(128M内存): 4'17"
ubuntu 7.04 + VirtualBox 1.4.0 + 虚拟XP(256M内存): 4'02"
而且即使它的编译速度跟vmware不相上下,其他几个问题还是挺麻烦,对我的需求来说比较难接受
ino1
帖子: 266
注册时间: 2006-10-28 18:05

#8

帖子 ino1 » 2007-07-02 19:20

关于速度,不知道楼主编译时对samba网络的依赖程度,如果真的有大数据通过网络的话,VBox的确会很慢,同样使用网络打印机,VBox简直比真机传输速度慢几十倍。
所以,建议楼主比较计算速度的时候,先剔网络速度的巨大差异。
P4M 2.4GHz 256+512MDDR IGP340M共享64M
越来越喜欢beryl了,把我的桌面扩展得好大呀!
ausun
帖子: 65
注册时间: 2007-05-11 9:21

#9

帖子 ausun » 2007-07-03 9:48

刚才用super pi 1.2测了一下,104万位的计算时间都是47秒左右,看来真的是网络速度拖了vbox的后腿。不过我实在不想把代码放在虚拟硬盘上编译,占地方,也不安全,万一虚拟硬盘坏了我的代码就完了,而且vbox的确整天让我discard那些snapshots,看着比较担心。
头像
skyx
论坛版主
帖子: 9202
注册时间: 2006-12-23 13:46
来自: Azores Islands
联系:

Re: vmware和virtualbox的对比

#10

帖子 skyx » 2007-07-03 10:10

ausun 写了:编译同一个工程的用时结果如下(所有的时间都是用host机记录的,虚拟机里的时间不准,尤其vmware差异较大):
ubuntu 7.04 + VirtualBox 1.4.0 + 虚拟XP(128M内存): 4'17"
ubuntu 7.04 + VirtualBox 1.4.0 + 虚拟XP(256M内存): 4'02"
ubuntu 7.04 + VirtualBox 1.4.0 + 虚拟XP: 3'36"
ubuntu 7.04 + Vmware player 2.0.0 b45731 + 虚拟XP: 1'42"
真实的XP环境: 1'13"

我没有这样比过,楼主的这种对比方法可能对vbox有些不公平。

有一点huahua曾明确指出过,vbox设定中人为地增加或减少内存容量会严重影响vbox的性能。实践也证明了huahua的观点

在我的真实xp环境下,super pi 104m的成绩是38s
在vbox  中,成绩是40s

性能在vbox中几乎没有损失!!
我的内存只有512m ,另外vbox中的内存设定没有人为做任何修改。
no security measure is worth anything if an attacker has physical access to the machine
ausun
帖子: 65
注册时间: 2007-05-11 9:21

#11

帖子 ausun » 2007-07-04 10:45

谢谢各位关于vbox内存使用的提示。我使用vbox默认的192M内存做了几次测试,有时很快,3'40",有时很慢,4'08",很不稳定,我觉得我做的这个测试的结果受网速影响更大些,综合因素较多。如果只关注cpu使用效率,那么在192M内存时super pi 104万位依然是47秒,和vmware一样(注意,在vmware里测super pi时不能看super pi自己的显示结果,它自己显示1'24",可是实际只有48秒)。
这种测试我以后不会做了,对于我的情况,综合来说vbox肯定太慢。如果只算cpu,两者不相上下,如果说vbox没损失,那么vmware也没有。
头像
猛将兄
帖子: 2052
注册时间: 2005-10-19 17:33

Re: vmware和virtualbox的对比

#12

帖子 猛将兄 » 2007-07-04 11:29

skyx 写了:
ausun 写了:编译同一个工程的用时结果如下(所有的时间都是用host机记录的,虚拟机里的时间不准,尤其vmware差异较大):
ubuntu 7.04 + VirtualBox 1.4.0 + 虚拟XP(128M内存): 4'17"
ubuntu 7.04 + VirtualBox 1.4.0 + 虚拟XP(256M内存): 4'02"
ubuntu 7.04 + VirtualBox 1.4.0 + 虚拟XP: 3'36"
ubuntu 7.04 + Vmware player 2.0.0 b45731 + 虚拟XP: 1'42"
真实的XP环境: 1'13"

我没有这样比过,楼主的这种对比方法可能对vbox有些不公平。

有一点huahua曾明确指出过,vbox设定中人为地增加或减少内存容量会严重影响vbox的性能。实践也证明了huahua的观点

在我的真实xp环境下,super pi 104m的成绩是38s
在vbox  中,成绩是40s

性能在vbox中几乎没有损失!!
我的内存只有512m ,另外vbox中的内存设定没有人为做任何修改。
何必一定要宗教式地“劝”人用某个软件呢。每个人有每个人适用的软件。我基本情况和楼主相似,所以根据实际情况,一台笔记本是用Virtualbox,一台就是Vmware,没有必然哪个比哪个绝对好的道理
头像
soliton
帖子: 338
注册时间: 2006-05-13 14:00

#13

帖子 soliton » 2007-10-20 15:09

good
jeep6420
帖子: 56
注册时间: 2005-12-30 14:29

关于内核参数processor.max_cstate

#14

帖子 jeep6420 » 2007-10-20 15:48

LZ能不能阐述一下关于内核参数processor.max_cstate的问题
beming
帖子: 66
注册时间: 2007-10-09 16:40

#15

帖子 beming » 2007-10-22 14:49

楼主机器配置怎么样好像都没有提到的

现在我也要碰到这个情况,我打算安装ubuntu,再虚拟一个windows做.net的开发,正愁不知道该用vmware好还是vbox好。
回复