Friday, October 24, 2008

虚拟机调研报告






Virtual Box:



Virtual Box 的速度比较快,并且支持大量的操作系统,也有现成的API文档,支持COM方式和webservice两种方式调用。其优势在于桌面应用。网络方面,为了使得Guest OS可以被外界用户所访问到,需要建立网桥,过程并不是很麻烦。我们在Windows操作系统下建立了3个不同的Guest OS并且对其网络进行测试,结果令人满意。在虚拟机启动的时候,Windows会通过网桥机制为各个虚拟机的网卡动态地设置ip地址。



总的来说,我们认为Virtual Box有如下一些优势:



  1. 速度快,并且不需要硬件的支持


  2. 有现成的API,并且提供COM以及webservice的方式进行调用。





但是,Virtual Box有如下一些劣势:



  1. 不支持动态迁移,并且官方并没有给出开发的意向


  2. Ubuntu Server Edition不能安装Virtual Box (需要进一步确认)




TODO:Ubuntu下测试Virtual Box (KVM和Virtual Box有冲突,已经装了KVM的内核下,Virtual Box 1.6 启动不了,也许 2.0版本可以运行)





XEN:

XEN同时支持全虚拟化(需要硬件支持)以及半虚拟化,并且支持动态迁移。XEN已经开发有3年以上,算是比较成熟的一个虚拟机。但是自从Ubuntu 8.10开始起,将不再具有对XEN的支持,因此在Ubuntu平台上XEN的后续开发不是很现实。

TO BE CONTINUED....



KVM:




KVM是比较新的一个虚拟机,而且在短时间内就得到了Linux内核的支持。自从2.6.20开始的linux内核都添加了对KVM的支持,这是KVM的一大优势。KVM的安装很方便,而且虚拟机的创建比较简单,已经有一个现成的Python脚本可以直接从命令行创建虚拟机,并且可以作许多的设置。该脚本的说明中,甚至给出了直接从命令行创建虚拟机、对镜像分区、配置网络、设置用户密码并且安装相应软件的详细方法。不过这些功能似乎只适用于Ubuntu Host OS,Windows Host并没有给出具体的说明。在官方说明中指出KVM在安装Windows XP时,在电源管理部分有一个小问题,但是并不影响系统的使用(在我们的测试中,WinXp在从光盘拷贝完文件到硬盘上之后,在一次重启之后直接就挂掉了) 经过我们的测试,发现Winxp是可以安装的:

kvm-img create -f qcow2 win.cow 5G    建立cow格式的硬盘,大小为5G


kvm -hda win.cow -boot d -m 192 -localtime -net nic -net user -soundhw es1370 -cdrom XPSP2VOLIBM_EN.iso       配置硬盘、时间、网络以及声卡,从光盘开始起动安装winxp


kvm -hda win.cow -boot c -m 192 -localtime -net nic -net user -soundhw es1370         安装完后,从硬盘启动winxp

安装速度很快,并且没有任何问题

Vista的安装我们目前还未测试(TODO)。Windows 2003 Server可以安装。Windows 2000及以前版本的安装并不支持。

我们利用KVM安装了Ubuntu 8.04 desktop和server 版本,在硬件的支持下,速度和真实电脑没有太大区别,表现超过了Virtual Box。但是我们在笔记本电脑上测试时,由于没有硬件的支持,仅能利用qemu进行模拟,速度不到物理机器的1/4。

我们看了一下几个Linux社区上关于KVM和XEN的评论,基本都认为KVM是未来虚拟机的方向,比XEN要有前景一些。KVM有以下的一些情况:



  1. KVM直接得到来自Linux内核的支持,因此可以做得小巧一些
  2. KVM目前还未支持动态迁移,但是该方面的工作已经开始,相信很快就会有支持动态迁移的版本


0 comments: