基于x86的xen虚拟化的体系结构

基于x86的xen虚拟化的体系结构

ID:13279151

大小:436.50 KB

页数:13页

时间:2018-07-21

基于x86的xen虚拟化的体系结构_第1页
基于x86的xen虚拟化的体系结构_第2页
基于x86的xen虚拟化的体系结构_第3页
基于x86的xen虚拟化的体系结构_第4页
基于x86的xen虚拟化的体系结构_第5页
资源描述:

《基于x86的xen虚拟化的体系结构》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、基于X86的Xen虚拟化的体系结构1.Xen简介目前,虚拟化已经变成企业用户迫切的需求,这主要是由于减少企业计算机构的整体损耗。在目前广泛使用的工业化标准的下x86服务器上,这些损耗主要来自哪里呢?其实因为大部分应用程序对服务器的要求远比服务器负载能力要小[5],大部分服务器开工不足,利用率只有10%-15%左右。一旦一个服务器开始工作,它全部的计算和存储能力都将被消耗掉,这样就造成了极其严重的资源浪费。同时,一旦服务器发生各种错误,重新启动服务、解决错误和恢复数据等等代价都非常大。而且,服务器上提供的服务程序日益复杂,非常难于移植,常常为了移植服务浪费大量的时间。但

2、是,现在大部分虚拟机,像Vmware,VirtualPC等全虚拟化的虚拟机虚拟化的代价太大,性能很难让人满意。而且x86架构非常复杂的,完全虚拟化比较困难。同时被操控的操作系统在一些情况下需要接触到真实的资源。例如,提供真实时间和虚拟时间以允许guestOS能够更好地支持“时间敏感”型的任务,还可以正确地操作TCP超时和RTT估算;给出真实的机器地址以允许guestOS能够利用超级页(superpage)或者页染色(pagecoloring)等方法改进性能。Xen是一种使用了泛虚拟化的虚拟机,通过泛虚拟化设计也就是半虚拟化设计,修改虚拟机上GuestOS的代码,来实现

3、性能质的飞跃。Xen包含一个高性能的用于资源管理的虚拟机监视器(VMM:VMmonitor),叫做XenHypervisor。在Xen上面运行0的虚拟机成为Domain,其中整个系统架构中有一个domain是在引导(boot)时创建的,这个domain被允许使用控制接口,术语称为Domain0,其它Domain一般称为DomainU。Domain0有两个主要作用:一是负责操控应用级的管理软件。如图1,由ControlPanel控制接口具有创建和终止其它Domain的能力,还能控制它们相关的调度参数、物理存储分配以及它们对给定的物理磁盘和网络设备的访问。二是提供driv

4、er程序的共享,domainU可以共享Domain0的驱动,如:XenLinux可以运行Domain0中的drivermodule程序。Xen在支持泛虚拟化虚拟机的同时,也支持基于Intel-vt技术的硬件虚拟机(hvm),这些硬件虚拟机中的GuestOS是不用修改代码的,因为和VMM的交互由硬件捕获特定指令,然后提供新的CPU操作来标识是在虚拟机状态下,还是在真是机器,也就是在VMM管理状态下。通过Xen这种高性能的虚拟机管理,计算机资源被以最小的代价划分,这样虚拟机也取代真实机器成为计算资源的基本单位,从而在统一调配资源时实现了概念性的质的飞跃。2.Xen的设计思

5、想和实现图1(摘自参考文献[2])2.1泛虚拟化Xen接口如图1中的DomainU:Para-VirtualizationDomain是泛虚拟化域部分,泛虚拟化的Xen接口包含三大部分:CPU,存储管理,设备I/O。2.1.1CPU设计思想:虚拟化CPU对guestOS提出了主要两个方面要求:其一,XenHypervisor(Xen的VMM名字叫XenHypervisor)插在操作系统的下层违背了惯常的关于操作系统在整个系统中特权最高的假设。为了保护VMM不会受到操作系统不正确行为的影响(即domain不受另一个domain的影响),guestOS就必须被改造为能够运

6、行在较低的特权级上。x86架构上有效地实现特权级的虚拟化是可能的,因为x86架构在硬件上支持四个不同的特权级。x86架构的特权级往往用环(ring)来表示,从ring0(最高特权)到ring3(最低特权)。操作系统的代码运行在ring0这个特权级上,因为再没有其它的ring能够执行那些特权指令。ring3通常用于执行应用代码。在x86体系架构上,通过安排Domain的GuestOS运行在ring1特权级(修改GuestOS代码),这就防止了guestOS会直接执行特权指令,也保证了GuestOS(ring1)与运行在ring3上的应用程序之间相隔离的安全性,同时也保正

7、GuestOS不正确行为也不会影响VMM。其二,XenHypervisor提供GuestOS异常处理的服务(如缺页处理)。因为运行在DomainU的GuestOS是在ring1特权级,所以对一些需要ring0特权的指令是无法处理的,因此需要GuestOS用Hypercall做请求(类似APP向OStrap,这里是GuestOs向VMM去trap,必须修改GuestOS代码,但是systemcall用其他处理方法),VMM在ring0特权级去做相应处理。VMM用表记录每类异常要进行的操作处理(没VM时异常的操作处理记录在硬件异常列表)。VMM表中给出的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。