知识大全 全面介绍Xen虚拟机 深入学习Xen新起点
Posted 知
篇首语:世事洞明皆学问,人情练达即文章。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 全面介绍Xen虚拟机 深入学习Xen新起点相关的知识,希望对你有一定的参考价值。
全面介绍Xen虚拟机 深入学习Xen新起点 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
本文主要是写给新接触Xen的开发者及想深入了解Xen的人 Xen VMM(virtual machine monitor)是由剑桥大学计算机实验室开发的一个开源项目 它能够让我们创建更多的虚拟机 每一个虚拟机都是运行在同一个操作系统上的实例 这些客户OS可以是修补过的Linux内核 或 也可以是修补过的NetBSD/FreeBSD内核 用户应用程序就运行在这些客户OS上 并不需要修改任何代码 我曾经紧密跟踪Xen项目一年多 对Xen产生兴趣是在读了 年的OLS(Ottawa Linux Symposium)论文集之后 完全虚拟化已经被一些硬件仿真程序实现了 硬件仿真器的不利因素是它们的性能 Xen项目(半虚拟化)的思想已经不是很新鲜了 性能度量和它达到的高效性 能够被看作是一个突破 运行Xen的系统开销确实非常小 大约占 % 就像刚才所说的那样 现在的Xen要为内核打补丁 但是 将来的处理器能支持虚拟化 内核也就不需要打补丁了 比如说 Intel的VT和AMD的Pacifica处理器都将包括这种支持 XenSource公司 年 月在Intel开发者论坛(IDF)上发表声明说 它已经利用Intel的VT Enabled平台和Xen技术虚拟化了Linux和Windows XP SP 如果没有其它虚拟化方法的话 Intel的VT和AMD的Pacifica将会在对Xen的支持上展开竞争 同时参与竞争的还有VMWare公司的ESX Server 它不是基于Xen的虚拟化解决方案 VMWare公司 年 月初声明 他将通过一个叫VMware Community Source的计划允许他的合作伙伴使用VMware ESX Server的源代码和接口 VMware的一个显著优势就是它不需要在客户OS上打补丁 VMware可能比Xen运行地慢一些 因为它使用影子页表(shadow page tables) 而Xen同时使用直接和影子页表 Xen已经在像Fedora Core Debian和SuSE Professional 这些产品中捆绑发行了 它也将被包含在RHEL 中 针对其它处理器的支持正在有条不紊地进行着 Xen小组致力于x _ port 同时IBM着手于提供Power 芯片的支持 保护环 在Xen中 一个 系统管理程序 运行在 环 客户OS运行在 环 应用程序运行在 环 这种关系对于x / 有一点不同 就是客户内核和应用程序都运行在 环上 Xen自身被称为 系统管理程序 是因为它比客户OS的系统管理代码运行所需的特权级还高 当系统引导的时候 Xen被装载到 环的内存中 它在 环上启动修补过的内核 这被称作是domain (译者注 domain是指一个运行中的虚拟机 在其上有一个guest OS在执行) 从这个domain开始 你可以创建更多的domain 也可以销毁它们 可以进行domain的迁移 设置参数等等 你创建的那些domain也运行在 环它们的内核中 用户应用程序运行在 环 > 目前 修补过的Linux内核 和 可以作为domain 据Xen开发者所说 将来domain 仅支持 的内核补丁 构造domain 的大部分工作是在xen/arch/x /domain_build c中的construct_dom ()方法中实现的 物理设备驱动程序只能运行在特权级 也就是domain 上 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 它需要Python 的支持 Xend daemon的工作是建立在与XCS server(the control Switch)的交互上 所以 当我们启动Xend daemon时 需要检查一下XCS是否已经启动和运行了 如果没有 我们将试着去启动它 Srv Daemon是Xend的主要程序 启动Xend daemon就会创建一个Srv Daemon类的实例 接下来在createFactories()方法中创建一个Channel Factory Channel Factory有一个隐含的notifier对象 Xend daemon的大量工作都是基于这个notifier接收的消息的 这个factory创建一个线程 在一个无限循环中读取这个notifier 创建domain 创建一个domain是通过使用一个hypercall(DOM _CREATEDOMAIN)来完成的 Hypercall是Linux内核中的一个系统调用 通过它 用户空间可以调用内核中的方法 它通过一个中断(Int x )来完成 在Xen中 类似的系统调用就是hypervisor 通过它 domain 调用hypervisor中的方法 它也是通过中断(Int x )来完成的 hypervisor通过它的虚拟CPU访问每一个domain XendDomain类和XendDomainInfo类在创建和销毁domain中扮演着非常重要的角色 我们通过调用XendDomain中的domain_create()方法创建一个新的domain XendDomainInfo类和它的方法主要用于一个domain的实际构造 XCS Server XCS server有两个TCP套接字 分别是控制连接和数据连接 它们不同的地方在于前者是同步的 后者是异步的 前面提到的notifier对象 就是XCS服务器的一个客户端 创建虚拟设备 XendDomainInfo中的create()方法启动一个创建domain的动作链 首先被创建的是这个domain的虚拟设备 这个create()方法调用create_blkif()创建一个块设备接口(blkif) 即使VM不需要磁盘它也是必须被创建的 另一个虚拟设备通过create_configured_devices()创建 所有的设备类都从Dev继承 Dev是一个联系设备控制器的抽象类 它的attach()抽象方法在每一个Dev类的子类中实现 这个方法把前端和后端联系了起来 图 展示了设备的层次 图 展示了设备控制器的层次 > > Domain 运行后端驱动 同时最新创建domain运行前端驱动 许多消息在后端和前端驱动之间传送 前端驱动感觉上是虚拟的 它不需要使用特定硬件的详细信息 联系虚拟设备的中断是虚拟中断 结论 Xen项目是一个很有趣同时充满了希望的项目 它的代码很复杂 特别是虚拟内存管理 活动域合并工具和授权表机制 本文仅仅是介绍性的 并不涉及这些话题 然而 我希望它能够成为想要了解和深入研究代码的一个出发点 cha138/Article/program/Java/Javascript/201311/25389相关参考
虚拟机监视器Xen和虚拟化技术(一) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 引言
虚拟机监视器Xen和虚拟化技术(四) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 相关工作
虚拟机监视器Xen和虚拟化技术(五) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 讨论和结论
《深入理解Java虚拟机》笔记 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在C里面我们想
深入Java虚拟机之内存优化 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
深入Java虚拟机中的Stack和Heap 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在JV
JAVA虚拟机实例学习笔记一 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 编译顺序
JAVA虚拟机实例学习笔记二 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 数组 数组也是
JAVA文件编译执行与虚拟机(JVM)介绍 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Jav
介绍 如今个人计算机拥有强大的功能单独的一台可以轻易地完成几台服务器的任务随着internet和邮件系统的成功我们不得不管理越来越多的邮件域这里有一个在同一机器上管理几个独立邮件域的方法Al