新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 网络学院 > 操作系统 > Linux教程 > 正文:深入学习Xen新起点 全面介绍Xen虚拟机

深入学习Xen新起点 全面介绍Xen虚拟机

新客网 XKER.COM 2006-05-30 来源: 收藏本文

本文主要是写给新接触Xen的开发者及想深入了解Xen的人。

Xen VMM(virtual machine monitor)是由剑桥大学计算机实验室开发的一个开源项目,它能够让我们创建更多的虚拟机,每一个虚拟机都是运行在同一个操作系统上的实例。

这些客户OS可以是修补过的Linux内核2.4或2.6,也可以是修补过的NetBSD/FreeBSD内核。用户应用程序就运行在这些客户OS上,并不需要修改任何代码。

我曾经紧密跟踪Xen项目一年多。对Xen产生兴趣是在读了2004年的OLS(Ottawa Linux Symposium)论文集之后。

完全虚拟化已经被一些硬件仿真程序实现了。硬件仿真器的不利因素是它们的性能。

Xen项目(半虚拟化)的思想已经不是很新鲜了。性能度量和它达到的高效性,能够被看作是一个突破,运行Xen的系统开销确实非常小,大约占3%。

就像刚才所说的那样,现在的Xen要为内核打补丁,但是,将来的处理器能支持虚拟化,内核也就不需要打补丁了。比如说,Intel的VT和AMD的Pacifica处理器都将包括这种支持。

XenSource公司2005年8月在Intel开发者论坛(IDF)上发表声明说,它已经利用Intel的VT-Enabled平台和Xen技术虚拟化了Linux和Windows XP SP 2。

如果没有其它虚拟化方法的话,Intel的VT和AMD的Pacifica将会在对Xen的支持上展开竞争。

同时参与竞争的还有VMWare公司的ESX Server,它不是基于Xen的虚拟化解决方案。VMWare公司2005年8月初声明,他将通过一个叫VMware Community Source的计划允许他的合作伙伴使用VMware ESX Server的源代码和接口。

VMware的一个显著优势就是它不需要在客户OS上打补丁。VMware可能比Xen运行地慢一些,因为它使用影子页表(shadow page tables),而Xen同时使用直接和影子页表。

Xen已经在像Fedora Core 4、Debian和SuSE Professional 9.3这些产品中捆绑发行了,它也将被包含在RHEL 5中。

针对其它处理器的支持正在有条不紊地进行着。Xen小组致力于x86_64 port,同时IBM着手于提供Power 5芯片的支持。

保护环

在Xen中,一个“系统管理程序”运行在0环,客户OS运行在1环,应用程序运行在3环。这种关系对于x64/64有一点不同,就是客户内核和应用程序都运行在3环上。

Xen自身被称为“系统管理程序”,是因为它比客户OS的系统管理代码运行所需的特权级还高。

系统引导的时候,Xen被装载到0环的内存中。它在1环上启动修补过的内核,这被称作是domain 0(译者注:domain是指一个运行中的虚拟机,在其上有一个guest OS在执行)。从这个domain开始,你可以创建更多的domain,也可以销毁它们,可以进行domain的迁移、设置参数等等。你创建的那些domain也运行在1环它们的内核中。用户应用程序运行在3环。


目前,修补过的Linux内核2.4和2.6可以作为domain 0。据Xen开发者所说,将来domain 0仅支持2.6的内核补丁。构造domain 0的大部分工作是在xen/arch/x86/domain_build.c中的construct_dom0()方法中实现的。

物理设备驱动程序只能运行在特权级,也就是domain 0上。Xen依靠Linux或其它修补过的OS内核对它所有的设备提供虚拟化支持。这样的好处就是Xen的开发者不必再去开发设备驱动程序。

在一个有标签TLB的处理器上使用Xen能够大大提高性能。标签TLB能够把ASID(address space identifier)放在TLB入口处。有了这个特性,当处理器在系统管理程序和客户OS之间切换时就不需要刷新TLB了,这大大减少了系统开销。

Xend Deamon

首先,我们介绍一下Xend,它是Xen控制器daemon,意思是说它负责处理创建、销毁、迁移以及其它许多domain管理的任务。它很大一部分动作是基于一个HTTP服务器的。大量对domain的控制请求都是通过发送HTTP请求来实现的。

我们在引导进入Xen后通过命令行命令xend start来启动Xend daemon。它需要Python2.3的支持。

共2页: 上一页 [1] [2] 下一页
标签:
收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
  • 阅读排行
  • 推荐阅读
  • 随机推荐