Xen 和虚拟化技术 发布日期:2005-8-2 12:29:14 1 .引言 现代计算机具有足够强大的能力来利用虚拟化技术支持多个虚拟机(VM: virtual machines),并且在每个虚拟机上各自运行单独的操作系统实例。这直接导致了虚拟机技术发展的又一个春天。在本文中,我们提出了 Xen,一个高性能的用于资源管理的虚拟机监视器(VMM: VM monitor)。Xen 能够支持的应用比如:server consolidation,co-located hosting facilities,distributed web services,secure computing platforms[12,16]和 application mobility。 成功地对一台机器进行划分,使它能够支持多个操作系统的并发执行,这个过程具有很多的挑战。首先,虚拟机必须是彼此相隔离的:如果一个虚拟机的执行会影响另一个的性能,这是不可以被接受的。这一点在操作各个虚拟机的用户相互间并不信任的情况下显得特别重要。其次,它必须支持多种多样的不同操作系统以提供给各种异构(heterogeneity)的流行应用的支持(//这里的异构指的是应用开发依托的操作系统不同,因此在实现上也就有很大差异,使得应用并不能够跨平台移植,因为Xen 不需要对应用程序进行修改,那么它就必须支持各种常用的操作系统;所谓流行的应用,就是那些大家常用的、必需的应用)。第三,由虚拟化技术引入的性能开销必须要小。 Xen 操控(//host:操作和控制)的是常用的操作系统,但是需要对操作系统中的某些相关部分进行一些修改。在本文中描述和评估的 Xen 原型系统能够支持多个我们研发的XenoLinux guest OS 实例的并发执行;每个实例都给出了和非虚拟化情况下的 Linux 2.4 中相同的应用二进制接口。目前,我们对 Windows XP 到Xen 的移植还没有完全完成,但是已经能够运行简单的用户空间进程。移植NetBSD 的工作也在进行中。 Xen 使得用户能够动态地实例化一个操作系统以执行他们需要的应用。在 XenoServer项目[15,35]中,我们在 ISP 或者Internet exchange(//布置在这些场合中经济划算而且又具有战略意义的地方)的标准服务器硬件上配置了 Xen。我们在启动一个新的虚拟机的时候需要执行许可控制(admission control),希望每个虚拟机能够以某种方式为它需要的资源付出代价。我们在其它文章中讨论过我们在这个方向上的思路和方法[21];现在这篇文章则将焦点关注于虚拟机。 现在有一些方法用于构建能够在共享的机器上操控多个应用和服务器(//server:这里提到的 ser...