- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
Xen和虚拟化技术学习指南
1.引言
现代计算机具有足够强大的能力来利用虚拟化技术支持多个虚拟机(VM:virtual
machines),并且在每个虚拟机上各自运行单独的操作系统实例。这直接导致了虚拟机技
术发展的又一个春天。在本文中,我们提出了Xen,一个高性能的用于资源管理的虚拟机监
视器(VMM:VMmonitor)。Xen能够支持的应用比如:serverconsolidation,co-located
hostingfacilities,distributedwebservices,securecomputingplatforms[12,16]和
applicationmobility。
成功地对一台机器进行划分,使它能够支持多个操作系统的并发执行,这个过程具有很多的
挑战。首先,虚拟机必须是彼此相隔离的:如果一个虚拟机的执行会影响另一个的性能,这
是不可以被接受的。这一点在操作各个虚拟机的用户相互间并不信任的情况下显得特别重
要。其次,它必须支持多种多样的不同操作系统以提供给各种异构(heterogeneity)的流
行应用的支持(//这里的异构指的是应用开发依托的操作系统不同,因此在实现上也就有很
大差异,使得应用并不能够跨平台移植,因为Xen不需要对应用程序进行修改,那么它就
必须支持各种常用的操作系统;所谓流行的应用,就是那些大家常用的、必需的应用)。第
三,由虚拟化技术引入的性能开销必须要小。
Xen操控(//host:操作和控制)的是常用的操作系统,但是需要对操作系统中的某些相关
部分进行一些修改。在本文中描述和评估的Xen原型系统能够支持多个我们研发的
XenoLinuxguestOS实例的并发执行;每个实例都给出了和非虚拟化情况下的Linux2.4
中相同的应用二进制接口。目前,我们对WindowsXP到Xen的移植还没有完全完成,但
是已经能够运行简单的用户空间进程。移植NetBSD的工作也在进行中。
Xen使得用户能够动态地实例化一个操作系统以执行他们需要的应用。在XenoServer项目
[15,35]中,我们在ISP或者Internetexchange(//布置在这些场合中经济划算而且又具有
战略意义的地方)的标准服务器硬件上配置了Xen。我们在启动一个新的虚拟机的时候需要
执行许可控制(admissioncontrol),希望每个虚拟机能够以某种方式为它需要的资源付出
代价。我们在其它文章中讨论过我们在这个方向上的思路和方法[21];现在这篇文章则将焦
点关注于虚拟机。
现在有一些方法用于构建能够在共享的机器上操控多个应用和服务器(//server:这里提到
的server应该是大规模应用的意思,比如数据库服务器)的系统。也许最简单的方法就是
部署一个或多个运行着标准操作系统(如Linux或者Windows)的主机,然后允许用户们
安装文件和启动进程—应用间的保护是由传统的操作系统技术提供的(//这里提到的做法,
就是类似并行机性质的,各个节点都是独立的主机,但是一个应用可以在多个节点上面并行
执行)。实验显示:由于要针对各个脱节(//supposedlydisjoint:逻辑上脱节,指的是应用
不具有连贯性/兼容性,所以针对每个应用都要单独配置一次,如果能想办法将前后有关联
的应用放在一起执行,可以大大减少相关的开销,如配置开销,通信开销等等)的应用进行
复杂的配置,这些配置过程导致的交互行为会使系统管理任务迅速成为时间消耗巨大的任
务。
更重要的是,这样的系统不能够充分地支持性能隔离;某个进程的调度优先级,存储要求,
网络通信量和磁盘访问等等特征都会影响到其它进程的性能。如果是在资源供应充足而且用
户群体是限定(比如计算网格或者PlanetLab平台实验)的情况下,这个系统还是可以接受
的。但是当资源是供不应求的时候,或者用户间不相协作(//uncooperative:不相协作,比
如用户间的需求有冲突,那么一定会互相影响的)的时候就不行了。一个解决这个问题的方
法是改进对操作系统性能隔离的支持。这已经在resourcecontainers,Linux/RK,QLinux
和SILK中被或多或少地实现了。这些方法中存在着一个难点是难以确保所有的资源都能够
正确地分配给有相应资源需求的进程。例如,缓冲区cache或者存储页面的替换算法导致
的在应用间的复杂的交互行为(//比如存储
文档评论(0)