1. 背景
在软件开发过程中,通常需要对不同的系统平台进行测试,而不同的系统平台,大多需要安装不同的操作系统,例如win32的windows系统家族以及基于unix/linux的操作系统。如果将这些操作系统安装在不同的机器上,或者将其安装在一台机器上,很多时候无法进行并行的测试。
虚拟机软件是现在在同一个操作系统中运行多种操作系统的功能。这里的虚拟机软件是指操作系统级别的虚拟机软件,当然还有应用程序级别的虚拟机软件,例如Java虚拟机等等。
本文主要介绍了几种常见的虚拟机软件,包括了开源的虚拟机软件以及商用的虚拟机软件。首先将每种虚拟机软件进行简要的功能说明,然后纵向的比较这几种虚拟机软件。
2. VMWare
确切的说,应该是VMWare Workstation。这是笔者最开始接触到的一个虚拟机软件,主要使用该软件进行多系统的并行测试。
VMWare Workstation只是VMWare产品家族中的桌面产品一种。其他一些产品诸如VMWare vSphere(数据中心产品),VMPlayer(免费的虚拟机使用软件-不可以创建虚拟机)等。
通过注册,可以免费获取VMWare Workstation的30天试用版本,超过30天后,软件将不能再使用。但是VMPlayer一样可以运行VMWare Workstation创建的虚拟机。当然,VMWare的功能相对有很多限制。
[tip:运行VMWare软件的操作系统叫做host system,VMWare里面运行的操作系统叫做guest system]
VMWare可以运行多种主流的操作系统。例如对于windows操作系统,涵盖了windows 3.1,95,98,me,NT,2000 pro/server/advance server, xp home/pro, vista, server2003 standard/enterprise, server2008等版本以及对应的64bit版本(如果存在的话)。对于Linux操作系统,包含了RedHat 2/3/4/5, SUSE, Novell, Sun java desktop system, Mandrake,Ubuntu以及未列出的Linux2.2/2.4/2.6内核的操作系统及对应的64bit操作系统(如果存在的话)。当然还包括Novell Netware,Sun Solaris,DOS,BSD*操作系统。
在创建操作系统时,可以指定操作系统(虚拟的)运行的虚拟硬件环境,如下图所示:
例如内存,硬盘,光驱,网卡,USB控制器,声卡以及处理器个数等等。
同时,对于虚拟操作系统(guest系统),可以设置和主机的共享目录,设置网络连接方式(无网络,只和host系统连接,访问internet等),对虚拟操作系统进行某一时刻的snapshot,对运行的guest系统进行录像/捕捉屏幕/保存状态/暂停/重启,在host/guest操作系统之间进行全屏幕的切换等等个性化的设置。
同时,对于虚拟操作系统,可以通过安装VMWareTools进行网络,显卡控制器,鼠标,键盘等进行驱动的安装,从而保持guest操作系统的可用性。
开发team中的一个用户设置好虚拟机之后,可以通过clone的功能,分发给team内的其他成员使用,以保证环境的一致性。
下图显示了一个运行在windows操作系统中的RedHat Linux操作系统。
VMWare Workstation的优点是作为商用软件的稳定性和安全性,同时功能相对强大,并且提供了多平台的版本(Windows/Linux),而guest操作系统也是多平台的操作系统。
缺点自然就是它不是Free软件或者开源软件。并且不提供Community的版本。几百美元对于普通的开发人员还是有些昂贵。
VMware Workstation 6.5 for Windows/Linux: $189.00
VMware Workstation 6.5 for Windows/Linux 5 Pack: $899.00
VMware Workstation 6.5 for Windows/Linux 10 Pack: $1,690.00
3. Sun xVM
对于Sun的VirtualBox的介绍,就对其官方的介绍文档进行一下翻译吧。
无论是对于个人还是企业,VirtualBox都是功能强大的x86/AMD64/Intel64虚拟产品,它不仅仅对于企业来说性能丰富,性能高效,对于个人用户来说,也是开源的唯一专业软件。
目前,VirtualBox运行于Windows,Linux,Mac以及OpenSolaris系统,同时支持非常多的guest操作系统,例如Windows (NT 4.0, 2000, XP, Server 2003, Vista, Windows 7), DOS/Windows 3.x, Linux (2.4 and 2.6), Solaris and OpenSolaris, and OpenBSD等等。
VirtualBox被持续的开发,连续的发布带有新的功能的版本。VirtualBox是community产品,同时由Sun公司来保证其专业性。
下图显示了一个运行于Sun VirtualBox中的CentOS操作系统。
(Windows上的CentOS)
(Fedora上的Ubuntu)
VirtualBox同样可以在设置guest系统运行的硬件环境,host/guest操作系统之间进行全屏幕/无缝/自动调整屏幕,进行快照操作,设置共享目录,随时insert/release CDROM,安装各种驱动程序,设置网络连接模式,其支持的guest操作系统的分类比VMWare更加的详细主要体现在Linux和Solaris操作系统,设置硬盘分区的个数等等。
VirtualBox最大的优点还是在于其开源性,用户不仅可以使用免费的软件,设置可以通过svn获取整个项目的source:svn co http://www.virtualbox.org/svn/vbox/trunk vbox。
其次,多平台,多guest操作系统平台,丰富的虚拟机功能也是其优点。
4. Microsoft VirualPC
微软公司的VirtualPC是一款guest操作系统只能为windows操作系统的虚拟机软件。对于创建的guest操作系统,可以进行的设置选项包括:内存,硬盘,CD/DVD-ROM,COM接口,LPT接口,网络服务,声卡,鼠标,共享目录,显示模式等。和其他的虚拟机软件不同的是,Microsoft Virtual PC可以设置多个虚拟机网络适配器,相当于有多块虚拟网卡。
如下图所示,一般网络的设置包括(不使用网络,仅本地连接,仅访问主机的网络,Internet网络,共享网络等几种)。
同样,VirtualPC也包含全屏幕切换,加载光驱,安装guest操作系统的设备驱动等功能,但是相对前面介绍的两种,其功能相对较少一些。
由于本身只能运行于Windows操作系统中,所以软件的兼容性很好,鼠标的集成(在host和guest系统中跨跃时的连续性等)也比较好。
但是相对于VMWare和VirtualBox,VirtualPC只能运行于Windows操作系统,并且其guest操作系统只能为windows操作系统,所以应该说是为windows软件开发人员设计的虚拟机软件。同时,作为商业软件,普及到一半用户的几率相对较小。
5. Xen
“Xen采用开放式的开发模型,支持工业标准的管理API;同时我们与安全社区建立了紧密的关系,确保hypervisor的安全性。这使得Xen继续领先于那些封闭开发的私有hypervisor产品。” - Ian Pratt,Xen创始者与Xen.org奠基人
提高服务器利用效率、整合服务器资源、降低管理复杂性和整体拥有成本(TCO – Total Cost of Ownership),是企业选择服务器虚拟化的主要推动因素。Xen® hypervisor是当前最快和最安全的整体架构虚拟化解决方案,它支持主流的客户机操作系统,例如Windows®、Linux®、Solaris® ,以及BSD操作系统的不同版本。
在Xen虚拟化架构中,一个纤薄的软件层(Xen hypervisor)取代了原有运行在服务器和桌面机上的操作系统。这个软件层很好地抽象了物理资源,有效地将操作系统(以及运行其上的应用程序)和下面的物理服务器剥离开,从而允许一台物理服务器上同时运行一个或多个虚拟服务器。
Xen hypervisor是一项独一无二的开源技术,由Xen开源社区和来自于50多个公司的工程师共同开发。这些公司提供富有创新性的数据中心解决方案,包括AMD、Citrix、Dell、Fujitsu、HP、IBM、Intel、NEC、Novell、Red Hat、Samsung、SGI、Sun、Unisys和许多其它的业界领先者。Xen采用了GNU通用公共许可证(GPL2),在源代码和目标格式的使用上不需要付费。Xen将来也会一直采用开源模式,继续整合业界和Xen相关资源,加速虚拟化技术在企业中的普及。
Xen的设计理念结构如下(其实也是虚拟机系统的通用理念):
[笔者按:真是惭愧,Xen开源社区和50多个公司,那些公司中有美国,欧洲,日本,韩国,唯独没有中国的企业,不知道中国的IT巨头们在想什么。提起这个,笔者还有一点气,就是在现在开源软件的时候,或者大型的Linux开源操作系统时,一般主站都会分布镜像站点,中国多数时候只有北京或者上海交通大学有那么一个镜像站点(校内网/人人网还有个Apache的镜像呢!),而仅仅一个台湾省差不多有点名气的大学都会有镜像站点。日本的镜像站点也很多,很多时候一找Asia,就只能找到日韩和中国的台湾省了,不知道中国的相关信息产业委员会的满脑子浆糊的人在想什么]
另外就是Xen大会将于2009年在中国上海召开,点击这里更多信息。
由于笔者手头没有Linux的整机操作系统(虚拟机倒是一大堆,但是虚拟机里面再套虚拟机,内存如果有8G,我就做一个),关于Xen的图片从网上贴一个吧:
6. 比较
比较项目 |
VMWare |
Sun VirtualBox |
Microsoft VPC |
Xen |
开源? |
X |
X |
||
跨平台? |
X |
X |
(仅Linux) |
|
虚拟机文件个数 |
多个文件 |
单一文件(vdi) |
两个文件(配置+vhd) |
? |
获得某一时刻的快照 |
X |
X |
X |
|
guest系统种类 |
L/W/S |
L/W/S/I |
L/W/S |
|
安装虚拟机工具(设备驱动程序) |
X |
X |
X |
X |
host/guest的平滑切换 |
X |
X |
X |
X |
自定义的 CTRL+ALT+DELETE (guest:windows) |
X |
X |
X |
|
L: Linux, W: Windows, S: Solaris, I: IBM OS/2
7. 小结
本文主要介绍了VMWare,Sun VirtualBox,Microsoft VirtualPC以及Xen等虚拟机软件,当然还有一些没有介绍的虚拟机软件(商业的/非商业的),之所以介绍VMWare和MPC这两种商业软件,是因为它们都有使用版本可以使用,如果只做短期的测试,是可以使用的。
IBM,HP自己有操作系统(z Series system, s Seriers system, HP-UX...)也有各自操作系统的虚拟机,但是都是商业的虚拟机。
另外,还有一种提供使用版本的是Parrallels虚拟机系统。但是其试用期非常短,只有14天,笔者申请的激活码如下:
Your trial activation key is listed below:
PRODUCT : Parallels Desktop 4 for Windows and Linux
ACTIVATION KEY : GW8KX2-ENJN1P-C02H11-M8DYGK-TMVFE0
START DATE : 2009/10/19
END DATE : 2009/11/01
To download Parallels Desktop 4 for Windows and Linux, please visit Parallels Download Center at
详细的虚拟机软件(OS级别) 请参考虚拟机软件比较。
x.参考资料
VMWare: http://www.vmware.com/
Microsoft VPC: http://www.microsoft.com/windows/virtual-pc/default.aspx
Sun VirtualBox: http://www.virtualbox.org/
Xen: http://www.xen.org/
Xen Intro by creator: http://www.xen.org/files/Marketing/XenBrochure_Q12009_chn.pdf
VirtualMache Wiki: http://en.wikipedia.org/wiki/Virtual_machine
VM comparison Wiki:
http://en.wikipedia.org/wiki/Comparison_of_platform_virtual_machines