2009年03月21日

VirtualBox 2.1.4试用手记

作者 非鱼

一直以来,vmware都是我的系统里必装的系统级软件,两三个虚拟机各司其职,互不影响,用的时候打开,不用了就关掉。可是,自从vmware进入500M安装文件的时代,连它的运行效率也打了个折扣,6.5.1的磁盘性能实在很难令人满意,跑起来的非常的慢。再加上,vmware的版本划分实在是太多了,比windows分的版本还多,免费的,收费的,高端服务器,低端服务器,等等等等,而且没有一个统一的关于性能和功能方面的说明,实在是让人摸不着头脑。因此,最近一直在寻找它的真正的替代品。

今天又重新试了一下virtualbox,因为它已经出了2.x,比1.x版本提升很多。装上以后才知道,它真的出乎我的意料了。

2.1.4版软件下载,virtualbox支持多种操作系统平台,而且有专门的AMD64位版本。

安装程序30几M,安装完启动,建立新的虚拟机,终于可以创建固定大小的虚拟磁盘了,这样磁盘的读写性能肯定比自动扩展的磁盘文件要好一些,因为不需要计算大小,不需要申请新的空间。然后安装虚拟的2003,安装过程很顺利,速度也非常的快,绝对不比vmware慢。而且,整个安装过程中,虚拟机的内存占用始终在30M以内。不可思议,我给它分配了512M的内存。

安装完成以后启动进入2003,安装增强驱动,修改分辨率。最大只能使用1024*768,奇怪。看到菜单里有自动调整分辨率的功能,而鼠标放到窗口右下角又有拉伸的箭头出现,于是把窗口往右边拉大,奇迹发生了,guest系统的分辨率自动调整,随便把窗口拉多大都没关系,分辨率都会自动调整到适合的大小。

再查看虚拟机的内存占用,还是30M以内。这……怎么可能呢?

再安装Java,安装Eclipse,安装Python,SVN客户端,把项目导入,打开,非常的平滑而且顺利,硬盘也没有出现使用vmware的时候那样狂转不止的情况。看来virtualbox的性能果然不是盖的。

在虚拟机的设置项里面可以启动CPU级的VT功能以增强虚拟机的性能,但是在虚拟机里面始终只能使用单核,不像vmware那样可以完全使用双核,而且启动了VT以后,当virtualbox的虚拟机在运行的时候,vmware的虚拟机就启动不了了。

virtualbox的稳定性也已经相当成熟,目前跟vmware相比唯一的缺点就是网络功能,确切的说是桥接网络功能。它不像vmware的网络那样可以直接设置客户端使用桥接功能,从而可以使虚拟机跟主机处于完全平等的网络中,与本网络中的其它机器可以简单的进行双向的访问,从而,可以简单的在虚拟机里建立服务器,或者多个虚拟机建立复杂的测试网络。而virtualbox没有桥接功能,只能使用主机系统提供的网卡桥接功能,无疑方便性要大打折扣了。

Sorry,前面的话是基于1.5版的印象写的,今天重新读了一下2.1.4版的用户手册,发现情况已经发生了变化。virtualbox的虚拟网卡里有四个选项,第一个是默认的NAT模式,也就是自古以来的模式,以最简单的方式实现虚拟系统里面的上网,而外部是无法访问该虚拟系统的。第二个是无网络,选了这个的话,虚拟系统并不是无网卡,而是显示网卡没有插网线的情况。第三个是Host Interface,这个就是vmware里面的桥接模式,选了这个方式以后,需要选择一个主机里面的物理网卡,虚拟系统就会通过这个网卡,实现桥接功能,虚拟系统可以拿到跟主机同一个网段的IP,大家可以相互访问,在同网段的其它机器也可以直接访问该虚拟机。第四个是Local模式,根据用户手册上的说明,选了这个方式以后,虚拟机可以自如的同外部沟通,而这个“外部”指的是同一台机器上选了同样网卡模式的其它虚拟机,也就是说,多个虚拟机之间可以通过这个模式自如的互相访问,而且效率比第三种模式要高,因为无需在主机的物理网卡上进行绑定和修改网络数据。而且,更强大的是,virtualbox实现这些功能并不需要给你的主机系统安装任何虚拟网卡驱动,比vmware更干净更高效。至此,virtualbox跟vmware相比已经没有缺点,接近完美。

PS:virtualbox的低内存占用是假的,虽然在主机里面查看进程,它的进程只占用10几M内存,但是实际上你的可用物理内存少了几百M,我想可能是自动使用了类似sql server的PAE模式来完成的,你永远看不到真正的内存占用量。另外它的CPU占用率要高一些,但是反正速度的确很快。不过,似乎会导致主机里面程序的反应速度变慢。随便开几个应用,最小化virtualbox,再在主机里面运行程序,会明显的出现卡的问题,要过一段时间才能反应过来。