为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

基于X86架构的系统虚拟机技术与应用

2018-04-27 13页 doc 31KB 15阅读

用户头像

is_654168

暂无简介

举报
基于X86架构的系统虚拟机技术与应用基于X86架构的系统虚拟机技术与应用 第32卷 L32 第l3期 舾J3 计算机工程 ComputerEngineering 2006年7月 July2006 ? 软件技术与数据库?文|II-号.1810--3428(2006)I,l071一一__i—————: 基于X86架构的系统虚拟机技术与应用 董l祖u.月正伟. (1.上海交通大学微电子学院,上海200030;2.英特尔中国有限公司,上海200336) ?蔓:介绍了基于X86的主流泛虚拟化(Paravirtualization)及完全虚拟化技术...
基于X86架构的系统虚拟机技术与应用
基于X86架构的系统虚拟机技术与应用 第32卷 L32 第l3期 舾J3 计算机工程 ComputerEngineering 2006年7月 July2006 ? 软件技术与数据库?文|II-号.1810--3428(2006)I,l071一一__i—————: 基于X86架构的系统虚拟机技术与应用 董l祖u.月正伟. (1.上海交通大学微电子学院,上海200030;2.英特尔中国有限公司,上海200336) ?蔓:介绍了基于X86的主流泛虚拟化(Paravirtualization)及完全虚拟化技术(Full—virtualization)尤其是芯片虚拟化技术的支持.描述了两 个实现泛虚拟化技术的系统虚拟机Denali及XEN,阐述了完全虚拟化的发展现状, 以及支持两种技术结合的解决,展望了虚拟机技 术的发展前景及其应用. 关黼:虚拟机;虚拟化技术;泛虚拟化;完全虚拟化;服务器加固 X86-basedSystemVirtualMachineDevelopmentandApplication DONGYaozu".ZHOUZhengwei' (1.SchoolofSemiconductor,ShanghaiJiaotongUniversity,Shanghai200030;2.IntelChina Co.Ltd..Shanghai200336) [AbstractlThisarticleintroducesthecurrentstatusofX86architecturebasedparavirtuaiizati ontechnologyandfull-virtualizationtechnology, especiallyforhardwareassistantvirtuaiizationtechnology,proposestwosystemicvirtualm achines,Denaiiand:KEN,whichsupportthe paravirtuaiizationtechnology.Thenitdiscussesthedevelopmentoffull—virtualizationtechnology.Inthemeantime,itpresentsthesolutionscheme thatsupportsthesetwotechnologies,andfocusesOilthetrendsofdevelopmentofvirtualizati ontechnologyanditsusagemode1. [KeywordslVirtualmachine;Virtuaiization;Paravirtuaiization;Full—virtuaiization;Serverconsolidation l横述 计算机的运行通常都离不开一个合适的操作系统,一个 特定的指令集(实现它的处理器),内存系统和I/O系统的硬件 平台.安装Linux的机器无法直接运行Windows的应用程序, 同样装Windows的机器无法直接运行Linux的应用程序,另 外应用程序之间无法真正相互隔离使得一个应用程序的错误 可能导致整个系统的崩溃.这些都促进了虚拟计算机(Virtual Machine)技术的发展.基于X86架构的商用电脑虚拟机产品 的推出,如Vmware,VirtualPC等,使虚拟计算机技术得到 了前所未有的发展.如图l(a)所示,虚拟化技术通过在现有 平台(机器)上添加一层薄的虚拟机监控(VirtualMachine Monitor,VMM)软件而实现对系统的虚拟化,如虚拟处理器, 虚拟内存管理器(MMU)和虚拟I/O系统等.从应用程序的角 度看,程序运行在虚拟机上同运行在其对应的实体计算机上 一 样,即在某一特定的指令体系(InstructionSetArchitecture, ISA)和/或操作系统上,如图l(b)所示. 应用程序 (Applications) OS()I ?.|?? ;jl囊【ti 粥.d妇t 囊0 ?1It担亿软件及丘扳计算机曲层次缩杓 子和计算机工程系的JamesE.Smith教授和IBM公司的Ravi Nair将基于指令体系接IZl(ISA)抽象的虚拟机称之为系统虚 拟机(SystemVMs),而将基于应用程序接口(Application BinaryInterface,ABI)抽象的虚拟机称之为进程虚拟机 (ProcessVMs).在X86体系架构中,由于其固有的虚拟化技 术漏洞,基于X86体系架构的系统虚拟机技术长期没有得到 发展,直到最近几年才形成了井喷式的发展. 1.1VMM模垂昀分类 根据VMM在整个物理系统中(或上一层虚拟机系统中) 的实现位置及实现方法的不同,如图2所示系统虚拟机的模 墅可以分为:(1)监控模型(HypervisorMode1),即VMM直接 运行在裸机上(没有操作系统).采用这种模墅的VMM运行 在处理器的最高特权级,而所有的客户机则运行在较低的特 权级以使VMM可以截取所有客户OS对系统资源的访问, 从而实现对系统资源的虚拟化;(2)主机模型(Host.based Mode1),即VMM运行在主机OS上(Hostos).这种方式的 虚拟机也叫有宿主韵虚拟机,它使得VMM可以充分利用宿 主OS所提供的设备驱动及底层服务且不需要去除原来机器 上已经安装的操作系统.但缺点是宿主OS的介入可能会导 致系统性能的损失;(3)混合模型(HybridMode1).混合模垂 集成二者的优点,既可以利用主机OS的现成设备驱动实现 虚拟机的设备模型,又可以利用监控模垂的高效率. 1.2直担化技术的分类 VMM抽象虚拟机的ISA可以等同于它运行的物理机器, 也可以不完全相同.当虚拟的ISA与物理的ISA相同时,该 虚拟机可以运行没有任何修改的原操作系统;而当二者不相 作者?介:董耀祖(1968—),男,硕士,工程师,主研方向:虚拟 根据应用程序,操作系统和硬件平台之间的关系和VMM机和虚拟化技术;周正伟, 博士,副教授 向客户机(guest)抽象的层次不同,Wisconsin—Madison大学电收囊日期:2005— 08.18E.mmll:eddie.dong@inte1.com 一 7l— o?^《墨}{8 同时,客户机的操作系统就必须修改.根据VMM抽象虚拟 机架构的不同,或根据是否需要修改客户0s,虚拟化技术又 可以分为泛虚拟化(Paravirtualization)和完全虚拟化 (Full—virtualization)两类. 监控模型 (HypervisorMode1) 椰嚣 PreferredGm髓 OSij ? Hypervisor ?? 主L模型 (Host-basedMode1) G啦曛 '忡 了j O呻st ? e OS?LKM 混合模型 (HybridMode1) Apps墨Service. .一 一??.一,…, ?ProcessorMgtcode?DeviceDriverULM:UserLevelModel MemoryMgtcode?Device,lLKM:Ljvingl(ernelM(Idel 圈2VMM实现的3种模型 完全虚拟化由于不需要修改客户OS,具有很好的兼容性 和同时支持异种OS或不同版本OS的能力.泛虚拟化因为需 要修改客户OS以适应新的体系结构从而产生对现有OS的兼 容性问,但同时它也可以按照需求变动客户机的体系结构, 以此来提高虚拟机的总体性能.因此泛虚拟化技术通常具有 比完全虚拟化技术更好的性能. 2泛虚拟化技术的现状 由美国华盛顿大学计算机科学与工程系的StevenD. Gribble领导的Denali项目和英国剑桥大学计算机实验室的 IanPratt和KeirFraster领导的Xen项目组都实现了X86架 构上的泛虚拟化,并且具有比完全虚拟化更佳的性能. 2.1Denali Denali是一个监控模型的系统虚拟机,用于提供互联网 上服务之间的隔离(每一种服务运行在一个独立的虚拟机 上).Denali可以同时支持数千个运行网络服务的虚拟机. Denali运行在基于X86指令集的机器上,客户处理器上 的大多数虚拟指令可以直接在物理处理器上执行,但Denali 虚拟机ISA并不完全等同于X86.Denali具备以下特点: (1)引入了部分纯虚拟的指令(virtualinstructions).这些指 令在物理处理器中并不存在,而是通过未定义指令的异常处 理程序在物理处理器上得到实现,如空闲指令(idle instruction). (2)修改了部分指令的语义(instructions'semantics),将某 些很少用到的指令语义改为未定义(但不能从物理处理器上 去除). (3)添加了一些虚拟寄存器(virtualregisters)用于实现 VMM和虚拟机之间的简单参数传递,这些寄存器通过映像 在预先定义的虚拟机内存空间中而实现. (4)虚拟I/O设备通过简化的架构接口(simplified architecturalinterface)来降低VMM和虚拟机之间的边界 切换. 2.2XEN XEN是一个基于开源(OpenSource)代码的混合模型系 统虚拟机,支持多至约100个运行Xeno操作系统的虚 拟机.XEN引入了管理接口(Hypercalls)和事件(Events)机制, 同时引入客户机和VMM之间的共享内存数据交换机制. 一 72一 XEN将客户机称之为虚拟域(Domain),其中虚拟域0为 服务域,拥有绝大部分的I/O资源(其他部分为监控程序所有) 并向其他虚拟域提供设备模型以及控制平台.XEN本身主要 基于开源的Linux核心代码移植,同时运行其上的XenoLinux 也从Linux移植而来,意为支持XEN架构的Linux.同样支 持XEN架构的freeBSD和WindowsXP也已经能够在XEN 上运行.所有原来的X86应用程序均不需任何修改就可以在 XEN上运行,如X86的Linux应用程序可以在XenoLinux上 运行;X86的WindowsXP应用程序可以在XenoXP上运行. 3完全虐拟化技术 完全虚拟化技术因其不需要修改客户OS而在一诞生就 受到客户的青睐,如早期基于全软件实现的VMware Workstation和现在基于硬件虚拟化技术的解决方案. 3.1VMware 1998年1月,Stanford大学的MendelRosenblum教授带 领他的学生EdouardBugnion和ScottDevine,带着多年来对 虚拟化技术及虚拟机的研究成果成立了Vmware公司.1999 年Vmware推出了业界第1个基于X86的完全虚拟化的系统 虚拟机即VMwareWorkstation.VMwareWorkstation是一个 基于主机模型的虚拟机,可以在WindowsNT,Windows2000 和Linux上运行.2001年Vmware推出了面向服务器市场的 VMwareESXServer和VMwareGSXServer.VMwareESX Server首次提出了称之为"气球(balloon)"的内存管理技术以 共享虚拟机之间的物理内存. 3.2完全虚拟化技术的处理器硬件支持 2005年1月20日Intel向外界公布了代号为Vanderpool 的虚拟化技术(简称VT),AMD也于3月30日向外公布了代 号为Pacifica的虚拟化技术,弥补了X86架构的虚拟化漏洞. 3-2.1IntelVanderpool技术 VT分VT—i(支持Itanium架构)和VT—x(支持X86架构), 本文集中于VT—x.VT—x引入了一种新的处理器操作,称为 VMX(VirtualMachineExtensions).VMX操作可以在根状态 (root)或非根状态(non—root)下执行,通常虚拟机监控程序 (VMM)在根状态下执行而客户机软件则运行在非根状态. VMM可以通过虚拟机入口(VMentries)使处理器进入VMX 非根状态,相反,通过虚拟机退出(VMexits)可以回到VMX 根状态.在VT技术支持下,客户机可以运行在其原先希望 运行的优先级(eP优先级0)上而VMM仍能捕获客户机对特定 系统资源的访问. VMX操作新定义了虚拟机控制结构(VirtualMachine ControlStructure,VMCS).VMCS中包含客户机状态 (Guest—statearea),主机状态(Host—statearea),虚拟机执行控 制域(VM—executioncontrolfields),虚拟机退出控制域 (VM—exitcontrolfields),虚拟机入121控制域(VM—entrycontrol fields)和虚拟机退出信息域(VM—exitinformationfields).当处 理器控制从VMX根状态进入VMX非根状态即虚拟机入口 时,主机状态被保存在VMCS中,同时客户机状态及虚拟机 退出控制策略从VMCS中装入处理器.相反当处理器从VMX 非根状态进入VMX根状态即虚拟机退出时,客户机状态被 保存在VMCS中而主机状态则从VMCS中装入处理器.VMM 可以分别设置客户机的VMCS以实现不同的虚拟化策略. 3.2.2AMDPacifica技术 Pacifica引入了一种新的处理器模式——客户机模式 (GuestMode),和新的内存管理模式——分页实模式(Real ModewithPaging).Pacifica采用一个称之为虚拟机控制块 VMCB(VirtualMachineControlBlock)的数据结构用于存放 客户机的状态,同时也引入了一条新的指令VMRUN(Virtual MachineRun)来实现主机世界(HostWorld)和客户机世界 (GuestWorld)之问的切换.在主机世界执行VMRUN指令后 系统进入客户机模式,所有的主机状态被存入到内存而客户 机状态则从虚拟机控制块装入处理器从而进入客户机模式. 当客户机执行导致虚拟机退出的动作或VMMCALL指令时, 客户机状态被存入虚拟机控制块而主机状态则从内存被装入 到处理器从而进入主机模式.每个客户机的VMCB可以设置 确定哪些动作导致客户机退出到主机模式,包括哪些指令导 致客户机退出到主机模式和哪些异常或中断事件导致客户机 退出到主机模式.不同的客户机VMCB可以有不同的设置以 支持对不同客户机的定制. 4泛虚拟化技术和完全虚拟化技术的结合 泛虚拟化技术因其比软件完全虚拟化技术更好的性能而 受到关注,但因为需要对客户机操作系统进行修改而大大限 制了它的应用场合,不过其良好的性能却吸引了众多的研究 者.结合了泛虚拟化技术和硬件完全虚拟化技术的解决方案 开始引起更多的重视.Xen在今年4月的高峰会(Xensummit) 上宣布了它未来支持VT—x的3.0版本以实现对完全虚拟化的 支持.在这一架构下,用户可以同时运行Xeno操作系统和 未经修改的传统操作系统,从而使它的应用领域扩大到了对 目前处于统治地位的Winds操作系统的支持,如图3所示. VM0VM1VM2VM3 囊 a1.棚t柚》 .. : . l后靖设备服务 I(Back—End) Nafire Device Driver |l户.. O正知噱} 夸岁 . 喜?_,0' f } 后 ( 靖 Ba 设 ck 备 - E 服 nd 务 ) } NativeI Devicef Driverr 客pos a通) i t 前端设备驱动 (Front—End Device Driver 圈3XEN3.0对泛直扳化技术和完全直扳化技术的支持 5虐拟机技术的应用 由于传统操作系统下各进程之间的互相影响,一个进程 的异常往往引起其他进程的死锁甚至整个系统的崩溃就像今 天我们经常看到的那样,这一问题在服务器领域尤其重要. 利用虚拟机技术将不同的应用程序运行在不同的虚拟机上以 实现应用之间的完全隔离,避免传统操作系统下各进程之间 的互相影响成为实现服务器加固(ServerConsolidation)的一 个重要方法.例如当一个虚拟机上的应用受到网络病毒的感 染而不能正常响应时,系统管理员只需要关闭该虚拟机而不 会影响其它虚拟机上的应用,这就在最大程度上巩固了服务 器.服务器加固也是X86虚拟机诞生时的一个主要应用. 服务器的安全性也是现在最热门的话题.在虚拟机技术 的帮助下,一个虚拟机无法直接访问另一个虚拟机上的资源, 就如同各自运行在不同的物理机器上,这使得一个应用的安 全漏洞不会影响另一个应用.另外通过在VMM层对它上面 的虚拟机资源访问施加安全认证可以有效地实施整体安全认 证,例如通过VMM对属于特定用户群的虚拟机的网络访问 实施限制等. 服务器灾难恢复(DisasterRecovery)是虚拟机技术的又一 个快速发展的应用领域.常规的服务器备份通常需要应用程 序的支持,例如对Oracle数据库的备份必须靠Oracle数据库 本身提供的功能,而这对某些应用并不总是适合.采用虚拟 机技术的虚拟机保存和恢复功能可以将整个虚拟机状态(含 内存和10设备)保存下来,在一旦虚拟机遇到灾难性事件无 法正常执行时,恢复以前保存的虚拟机使其重新执行成为可 能,而不管应用本身是否有数据备份.虚拟机技术的服务器 灾难恢复很像常用的服务器硬盘备份,但其系统恢复速度则 远远快于硬盘备份,应用领域也远大于硬盘备份. 通过虚拟机技术将一台Workstation配置成由若干台虚 拟机组成的局域网,并在它上面开发测试各种网络应用无疑 为网络爱好者和经费相对紧张的高校和研究机构提供了很好 的实验环境.同时在诸如网吧,图馆或实验室等公共平台 采用虚拟机技术,可以使客户始终工作在同一台虚拟机上而 不管他登录在那一台物理机器上.同时任何的中间工作结果 不用主动存盘也可以自然保存在他的虚拟机中. 6结论 虚拟机技术正日益受到IT业界的重视,尤其是Vmware 已经被80%以上的全球财富100(Fortune100)企业或组织所 采纳.随着Microsoft下一代操作系统(Longhorn)对虚拟化技 术支持的到来,虚拟机必将得到全面的应用.及早地加入到 虚拟机技术的开发和研究中来必将在未来的虚拟机普及时代 占据极其有利的地位和商机.同时在一些与安全至关重要的 部门或组织采用基于开源代码的虚拟机或自行研发的虚拟机 技术对应用程序进行完全隔离,将极大地提高这些组织或部 门的整体安全环境. 参考文献 1WhitakerA,ShawM,GribbleS.Denali:LightweightVirtual MachinesforDistributedandNetworkedApplications[C].Proceed— ingsoftheUSENIXTechnicalConference,Monterey,CA,2002—06. 2WaldspurgerCA.MemoryResourceManagementinVMwareESX Server【C】,Proceedingsofthe5thSymposiumonOperatingSystems DesignandImplementation,2002—12. 3BarhamDragovicB,FraserK,eta1.XenandtheArtof Virtualization[C].Proceedingsofthe19thACMSymposiumon OperatingSystemsPrinciples.BoltonLanding,NUSA:Virtual MachineMonitors,2003:164—177. 4IntelCorporation.Intel~VanderpoolTechnologyforIA一32Processors (VT-x)PreliminarySpecification[Z].,2005. 一 73—
/
本文档为【基于X86架构的系统虚拟机技术与应用】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索