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

第32卷Vr01.32第13期

№13

计算机工程

ComputerEngineering

2006年7月

July2006

?软件技术与数攮}库?文章编号:l∞o_-3428(20%)13—∞7l—03文献标识码tA中圈分类号tTP316基于X86架构的系统虚拟机技术与应用

董■祖“,月正伟1

(1.上海交通大学微电子学院,上海200030;2.英特尔中国有限公司,上海200336)

摘要:介绍了基于X86的主流泛虚拟化(Paravirtualization)及完全虚拟化技术(Full-virtualization)尤其是芯片虚拟化技术的支持。描述了两个实现泛虚拟化技术的系统虚拟机Denali及XEN,阐述了完全虚拟化的发展现状,以及支持两种技术结合的解决方案,展望了虚拟机技术的发展前景及其应用。

关健词:虚拟机;虚拟化技术;泛虚拟化;完全虚拟化;服务器加固

X86-basedSystemVirtualMachineDevelopmentandApplication

DoNGYaozu“.ZHOUZhengweil

(1.SchoolofSemiconductor,ShanghaiJiaotongUniversity,Shanghai200030;2.IntelChinaCo.Ltd.,Shanghai200336)

[Abstract]ThisarticleintroducesthecurrentstatusofX86architecturebasedparavirtualizationtechnologyandfull—virtualizationtechnology,especiallyforhardware

assistantvirtualizationtechnology,proposestwosystemicvirtualmachines,DenaliandXEN,whichsupporttheparaVirtualizationtechnology.Thenitdiscussesthedevelopmentoffull—virtualizationtechnology.Inthemeantime,itpresentsthesolutionschemethatsupportsthesetwotechnologies,andfocusesonthetrendsofdevelopmentofvirtualizationtechnologyanditsusagemodel.

[Keywords!Virtualmachine;Virtualization;Paravirtualization;Full—virtualization;Serverconsolidation

l概述

计算机的运行通常都离不开一个合适的操作系统,一个特定的指令集(实现它的处理器)、内存系统和I/O系统的硬件平台。安装Linux的机器无法直接运行Windows的应用程序,同样装Windows的机器无法直接运行Linux的应用程序,另外应用程序之间无法真正相互隔离使得一个应用程序的错误可能导致整个系统的崩溃。这些都促进了虚拟计算机(VirtualMachine)技术的发展。基于X86架构的商用电脑虚拟机产品的推出,如Vmware、VirtualPC等,使虚拟计算机技术得到了前所未有的发展。如图l(a)所示,虚拟化技术通过在现有平台(机器)上添加一层薄的虚拟机监控(VirtualMachineMonitor,VMM)软件而实现对系统的虚拟化,如虚拟处理器、虚拟内存管理器(MMU)和虚拟I/O系统等。从应用程序的角度看,程序运行在虚拟机上同运行在其对应的实体计算机上一样,即在某一特定的指令体系(InstructionSetArchitecture,ISA)和/或操作系统上,如图1(b)所示。

图1虚拟化软件及虞拟计算机的层次结构子和计算机工程系的JamesE.Smith教授和IBM公司的RaviNair将基于指令体系接I:1(ISA)抽象的虚拟机称之为系统虚拟机(SystemVMs),而将基于应用程序接I:1(ApplicationBinary

Interface,ABI)抽象的虚拟机称之为进程虚拟机(ProcessVMs)。在X86体系架构中,由于其固有的虚拟化技术漏洞,基于X86体系架构的系统虚拟机技术长期没有得到发展,直到最近几年才形成了并喷式的发展。

1.1VMM模型的分类

根据VMM在整个物理系统中(或上一层虚拟机系统中)的实现位置及实现方法的不同,如图2所示系统虚拟机的模型可以分为:(1)监控模型(HypervisorModel),即VMM直接运行在裸机上(没有操作系统)。采用这种模型的VMM运行在处理器的最高特权级,而所有的客户机则运行在较低的特权级以使VMM可以截取所有客户OS对系统资源的访问,从而实现对系统资源的虚拟化;(2)主机模型(Host—basedModel),即VMM运行在主机OS上(Hostos)。这种方式的虚拟机也叫有宿主的虚拟机,它使得VMM可以充分利用宿主OS所提供的设备驱动及底层服务且不需要去除原来机器上已经安装的操作系统。但缺点是宿主OS的介入可能会导致系统性能的损失;(3)混合模型(HybridModel)。混合模型集成二者的优点,既可以利用主机OS的现成设备驱动实现虚拟机的设备模型,又可以利用监控模型的高效率。

1.2虐拟化技术的分类

VMM抽象虚拟机的ISA可以等同于它运行的物理机器,也可以不完全相同。当虚拟的ISA与物理的ISA相同时,该虚拟机可以运行没有任何修改的原操作系统;而当二者不相作者倚介:董耀祖(1968一),男,硕士、工程师,主研方向:虚拟

根据应用程序,操作系统和硬件平台之间的关系和VMM机和虚拟化技术;周正伟,博士、副教授

向客户机(guest)抽象的层次不同,Wisconsin-Madison大学电StttH期:2005—08.18E-mail:eddie.dong@intel.com

一71— 万方数据

同时,客户机的操作系统就必须修改。根据VMM抽象虚拟机架构的不同,或根据是否需要修改客户OS,虚拟化技术又可以分为泛虚拟化(Paravirtualization)和完全虚拟化(Full—virtualization)两类。

图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)。这些指令在物理处理器中并不存在,而是通过未定义指令的异常处理程序在物理处理器上得到实现,如空闲指令(idleinstruction)。

(2)修改了部分指令的语义(instructions’semantics),将某些很少用到的指令语义改为未定义(但不能从物理处理器上去除)。

(3)添加了一些虚拟寄存器(virtualregisters)用于实现VMM和虚拟机之间的简单参数传递,这些寄存器通过映像在预先定义的虚拟机内存空间中而实现。

(4)虚拟I/0设备通过简化的架构接口(simplifiedarchitecturalinterface)来降低VMM和虚拟机之间的边界切换。

2.2XEN

XEN是一个基于开源(OpenSource)代码的混合模型系统虚拟机,设计支持多至约100个运行Xeno操作系统的虚拟机。XEN引入了管理接13(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而在一诞生就受到客户的青睐,如早期基于全软件实现的VMwareWorkstation和现在基于硬件虚拟化技术的解决方案。

3.1VMware

1998年1月,Stanford大学的MendelRosenblum教授带领他的学生EdouardBugnion和ScottDevine,带着多年来对虚拟化技术及虚拟机的研究成果成立了Vmware公司。1999年Vmware推出了业界第1个基于X86的完全虚拟化的系统虚拟机即VMwareWorkstation。VMwareWorkstation是一个基于主机模型的虚拟机,可以在WindowsNT、Windows2000和Linux上运行。2001年Vmware推出了面向服务器市场的VMwareESXServer和VMwareGSXServer。VMwareESXServer首次提出了称之为“气球(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可以通过虚拟机入VI(VMentries)使处理器进入VMX非根状态,相反,通过虚拟机退出(VMexits)可以回到VMX根状态。在VT技术支持下,客户机可以运行在其原先希望运行的优先级(即优先级o)上而VMM仍能捕获客户机对特定系统资源的访问。

VMX操作新定义了虚拟机控制结构(VirtualMachineControlStructure,VMCS)。VMCS中包含客户机状态(Guest—statearea),主机状态(Host—statearea),虚拟机执行控制域(VM—executioncontrolfields),虚拟机退出控制域(VM—exitcontrolfields),虚拟机入121控制域(VM—entrycontrolfields)和虚拟机退出信息域(VM—exitinformationfields)。当处理器控制从VMX根状态进入VMX非根状态即虚拟机入口时,主机状态被保存在VMCS中,同时客户机状态及虚拟机退出控制策略从VMCS中装入处理器。相反当处理器从VMX非根状态进入VMX根状态即虚拟机退出时,客户机状态被保存在VMCS中而主机状态则从VMCS中装入处理器。VMM可以分别设置客户机的VMCS以实现不同的虚拟化策略。3.2.2AMDPacifica技术

Pacifica引入了一种新的处理器模式——客户机模式(Guest

Mode),和新的内存管理模式——分页实模式(Real 万方数据

 万方数据

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

作者:董耀祖, 周正伟, DONG Yaozu, ZHOU Zhengwei

作者单位:董耀祖,DONG Yaozu(上海交通大学微电子学院,上海,200030;英特尔中国有限公司,上海,200336), 周正伟,ZHOU Zhengwei(上海交通大学微电子学院,上海,200030)

刊名:

计算机工程

英文刊名:COMPUTER ENGINEERING

年,卷(期):2006,32(13)

被引用次数:18次

参考文献(4条)

1.Whitaker A;Shaw M;Gribble S Denali:Lightweight Virtual Machines for Distributed and Networked Applications 2002

2.Waldspurger C A Memory Resource Management in VMware ESX Server[外文会议] 2002

3.Barham P;Dragovic B;Fraser K Xen and the Art of Virtualization 2003

4.Intel Corporation Intel(R)Vanderpool Technology for IA-32 Processors (VT-x) Preliminary Specification 2005

本文读者也读过(5条)

1.王兴波.WANG Xing Bo有关虚拟机及虚拟化技术的几点诠注[期刊论文]-微型机与应用2009,28(7)

2.冯明涛.Feng Mingtao虚拟化技术浅谈[期刊论文]-油气田地面工程2010,29(9)

3.黄燕飞服务器虚拟化技术[期刊论文]-考试周刊2007(34)

4.黄亭宇.张琼声.夏守姬.HUANG Ting-yu.ZHANG Qiong-sheng.XIA Shou-ji系统虚拟机实现技术综述[期刊论文]-农业网络信息2007(10)

5.冯有文利用虚拟化技术促进基础教育信息化快速发展[期刊论文]-中国教育信息化·基础教育2010(5)

引证文献(19条)

1.宋忠雷.肖利民分布式VMM通信架构的研究与原型实现[期刊论文]-计算机工程 2010(8)

2.刘鹏程.陈榕面向云计算的虚拟机动态迁移框架[期刊论文]-计算机工程 2010(5)

3.彭安杰虚拟机在反病毒实验中的应用[期刊论文]-计算机光盘软件与应用 2010(7)

4.李馥娟虚拟机技术在复杂网络实验中的应用[期刊论文]-实验技术与管理 2009(12)

5.付赛平.任国林XEN网络I/O完全虚拟化机制的可扩展性研究[期刊论文]-计算机工程 2008(23)

6.洪勇军用操作系统级虚拟技术搭建网络实验平台[期刊论文]-连云港职业技术学院学报 2008(1)

7.刘爱军.耿国华基于x86的虚拟机技术现状、应用及展望[期刊论文]-计算机技术与发展 2007(11)

8.罗国富.查贵庭.李恒贝虚拟化技术在校园网中的应用研究[期刊论文]-中国教育信息化·高教职教 2010(3)

9.基于虚拟技术的信息系统资源整合研究[期刊论文]-江苏科技信息(学术研究) 2009(4)

10.谢磊.汪林林.刘宴兵一种新型虚拟进程运行环境-SPVM[期刊论文]-重庆邮电大学学报(自然科学版) 2007(5)

11.郑志蕴.任振芳.李钝.李伦基于预传输的虚拟机双机热备可用性研究[期刊论文]-计算机工程 2012(15)

12.赵洁.白瑞林.朱渊渤.毛振峰紧固式虚拟机在智能相机中的设计与实现[期刊论文]-江南大学学报(自然科学版) 2011(1)

13.陈秀芳网站恶意性评估系统的设计与实现[期刊论文]-计算机时代 2011(7)

14.黄歆媚.雷航X86平台上高效高安全性的设备虚拟化模型[期刊论文]-计算机应用 2008(8)

15.孙世昶虚拟化技术研究及PCI设备直接访问的实现[学位论文]硕士 2006

16.沈晴霓虚拟可信平台技术现状与发展趋势[期刊论文]-信息网络安全 2010(4)

17.李波.禹继国基于层次模型的高校网站环境优化研究[期刊论文]-软件导刊 2010(7)

18.崔泽永.赵会群基于KVM的虚拟化研究及应用[期刊论文]-计算机技术与发展 2011(6)

19.贺惠萍.荣彦.张兰虚拟机软件在网络安全教学中的应用[期刊论文]-实验技术与管理 2011(12)本文链接:https://www.360docs.net/doc/1018071000.html,/Periodical_jsjgc200613026.aspx

相关文档
最新文档