大多数管理员都很熟悉虚拟计算的概念,或者熟悉使用软件在一台计算机中创建多台计算机。每台子机都可以装载各自的操作系统和应用程序。
多数常见的虚拟计算工具是通过商业应用软件实现的,如VMware和Microsoft Virtual Server。但是对开源爱好者来说,一个叫做Xen的GNU GPL变体比这些商业软件产品使用了更好的整合虚拟化技术。
Xen的基本想法和商业产品一样,就是让你在同一台计算机上运行一个或多个操作系统的大量实例。不同的是,Xen的实施需要管理员做的更多,不过效果明显要好一点。
Virtual Server和VMware可以本地运行多个操作系统,但是这样做会让它们的性能降低20%。即使是现代处理器的速度,在同时运行多个操作系统时性能也是一个很大的问题。
在Xen下,操作系统(OS)必须做一些调整。OS必须要调整或稍微改动一下才能使用Xen API(应用程序接口)。不过性能损失很小,大约在2%到8%之间。Xen和VMware的运行基准显示,Xen性能在某些方面几乎要高一个级别。
改动操作系统的技术叫做准虚拟化(paravirtualization)。过去,类似的技术也在其它地方使用过。IBM的VM操作系统在大型机继承领域也完成过许多同样的工作,正如现在Xen的使用一样。VMware和其它虚拟机系统并不使用准虚拟化技术——至少现在还没使用。相反,它们选择牺牲一点性能,仅仅尽可能地模拟仿真机的行为,从而允许guest OS不经改动就能运行。
Xen最大的资本之一在于它从准虚拟化技术获得的性能。另外,Xen是免费的、开源的解决方案。VMware和Microsoft Virtual Server有免费的工具,其中前者是以Virtual machine player的形式,后者是以完整的免费版的形式。但是它们保留了产品所有权而且不开源,这就意味着用户不可以对它们进行修改从而适用于特定的需求。另一方面,使用Xen有一个最大的缺点,就是需要大量谨慎的设置,而且对每一个有问题的操作系统都要求有专家级的理解。它不是一个真正的即插即用的解决方案。
相比之下,VMware和其它这样的软件对非技术终端用户来说,通常要更友好、好用一点,因为它们只需要对guest OS做很小的改动。在这样的系统下运行的guest OS通常需要一个扩展包(add-up pack)才能充分利用虚拟环境。这些扩展包并不是至关重要的,没有它们系统也通常可以正常运行,但是扩展包可以改善用户与虚拟机之间的交互等。例如,微软为Microsoft Virtual Server下的Linux提供了一组附件,可以改善鼠标和视频支持,调整停机和主机时间同步。
用户最容易掌握的Xen扩展是一个叫做VMC的第三方管理控制台(现在的是预测试版,不过即将开源)。VMC和Microsoft Virtual Server的管理控制台一样,运行于Web浏览器,而且包含像虚拟机应用库(application repositories)和包管理(package management)这样的功能等。不过,这个支持似乎仅限于Linux/Unix子机。微软子机需要依赖于现有的技术,如GPO(组策略),才能实现软件管理。但是,它和Virtual Server下运行的Windows没什么差别。
Xen对作为guest OS运行的Windows有一些小小的限制,而且Xen还不能作为主机运行Windows。在Xen 3.0之前的版本中,作为子机运行Windows是可以的,只需要修改一下Windows。但是,由于微软的许可限制,这些修改不能散布。Xen 3.0版做了略微的改动,以使用Intel的VT-X Vanderpool处理器指令系统。这使得Windows不需任何改动即可运行。(AMD一个类似的扩展集即将推出,叫做Pacifica。Xen也计划支持Pacifica)
Microsoft Virtual Server新增了对即将发布的Virtual Server中的硬件辅助模拟的支持,因此在未来的几年里我们有可能会把半虚拟化机模拟(paravirtualized machine emulation)作为标准,而不再是例外。到那时,Xen和商业虚拟化系统的主要区别将是许可证和源代码可用性的差异了。
为Xen装配OS最好的方法是从零开始建立一个OS,Xen自己的维基百科有为Linux正确地安装OS的说明。也有为NetBSD安装OS的类似说明。有些即开即用的OS还包含对Xen内核的支持:与Red Hat的Fedora Core 5和Debian Linux一样,Novell SUSE Linux 10也包含Xen 3。你可以试试Xen的live ISO CD(运行Dbian),并至少尝试一种Linux,如Xenophilia,本地使用Xen。