




已阅读5页,还剩52页未读, 继续免费阅读
(计算机应用技术专业论文)xen外设完全虚拟化机制可扩展性研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 虚拟机技术在企业服务器整合、多执行环境、计算机安全、系统调试、灾难恢复等领域具有 很高应用价值,是当前热点技术之一。在众多虚拟机技术中,x e n 具有开源、高效的特点,近年 来被广泛应用和研究。x e n 最初只支持泛虚拟化,硬件虚拟技术的出现如i n t e lv t 使x e n 可以支 持完全虚拟化。 可扩展性是衡量某种虚拟机是否适合商业主机环境使用的重要尺度。服务器上的虚拟机数目 以及多处理器结构对系统总体性能的影响,是必须关注的问题;此外,服务器上的各虚拟机的性 能应与所设置服务标准相匹配,因此性能隔离是虚拟化机制可扩展性的另一个重要方面。 本文基于i n t e lv t 硬件平台对x e n 虚拟机i o 完全虚拟化机制的可扩展性进行了研究。首先, 研究了多虚拟机和多处理器结构对x e n 整体网络i o 性能的影响。实验结果表明虚拟机数目及处 理器数目超过一定阀值后系统整体网络性能急剧下降。通过对x e n 内核进行分析和测试,发现了 影响x e n 在这2 个方面可扩展性的关键因素:虚拟机调度机制和事件通道机制,并深入讨论了两 者影响可扩展性的原因。 其次,针对性能隔离方面现有研究成果的不足,设计并实现了个基于性能隔离的虚拟机调度 系统。在调度系统中引入“监控器”以获取各客户域占用的域0 服务资源并反馈给调度器:改进调 度器原有的c r e d i t 调度算法,提出并实现了基于反馈的c r e d i t - f b 算法,以实现调度机制级的性能 隔离。测试结果表明,新调度系统的性能隔离效果远优于原有调度系统。 虚拟化技术还在不断地发展中,期望本文的研究能为虚拟化技术的应用发展带来一点有益的 经验。 关键词:x e n 技术,可扩展性,性能隔离,网络,虚拟化 a b s t r a c t v i r t u a l i z a t i o nt e c h n o l o g yi sah o tt o p i cr e c e n t l yw h i c hh a sh i i g hv a l u ei nm a n ya p p l i c a t i o n ss u c ha s s e r v e rc o n s o l i d a t i o n , m u l t io p e r a t i n ge n v i r o n m e n t , c o m p u t e rs e c u r i t y , d e b u ga n dd i s a s t e rr e c o v e r y i n n u m e r o u sv m m ,x e ni sw i d e l yu s e da n dr e s e a r c h e df o ri t so p e ns o u r c ea n dh i g he f f i c i e n c y x e n p r e v i o u s l yo n l ys u p p o r tp a r a - v i r t u a l i z a t i o n ,h a r d w a r ev i r t u a l i z a t i o nt e c h n o l o g ys u c ha si n t e lv t m a k ei t b ea b l et os u p p o r tf u l l v i r t u a l i z a t i o n s c a l a b i l i t yi sak e ym e t r i cm e a s u r i n gw h e t h e ra 仆ii sf i tf o rc o m m e r c i a lu s e i m p a c to fv m ( v i r t u a lm a c h i n e ) i n c r e a s i n ga n dm u l t i - p r o c e s s o ra r c h i t e c t u r eo ns y s t e mp e r f o r m a n c e i sap r o b l e mn e e d c o n s i d e r a t i o n ;b e s i d e s ,v mp e r f o r m a n c es h o u l dm a t c hw i t hi t ss l a ( s e r v i c el e v e la g r e e m e n t ) ,s o p e r f o r m a n c ei s o l a t i o ni sa n o t h e ri m p o r t a n ta s p e c to fv m ms c a l a b i l i t y t h i sp a p e rr e s e a r c hs c a l a b i l i t yo fx e ni 0f u l l - v i r t u a l i z a t i o nb a s e do ni n t e lv tp l a t f o r m f i r s t , w e s t u d yi m p a c to fv mi n c r e a s i n ga n dm u l t i p r o c e s s o ra r c h i t e c t u r eo nx e n n e t w o r kf op e r f o r m a n c e e x p e r i m e n tr e s u l t ss h o wt h a tn e t w o r kp e r f o r m a n c ed e g r a d a t i o nh a p p e n sw h e nv mn u m b e r so r p r o c e s s o rn u m b e r se x c e e d w ef i n ds c h e d u l i n gm e c h a n i s ma n de v e n tc h a n n e la r ek e yf a c t o r sb y a n a l y z i n g & t e s t i n gx e nk e r n e l ,a n dg i v ed e e pe x p l a n a t i o no nw h y i th a p p e n s s e c o n d , a c c o r d i n gt ol i m i t a t i o no fc u r r e n tr e s e a r c h e s ,w ed e s i g na n di m p l e m e n tas c h e d u l i n g s y s t e mb a s e do np e r f o r m a n c ei s o l a t i o n w ei n t r o d u c eam o n i t o rt om e a s u r e r e s o u r c ec o n s u m i n gf o re a c h v mi nd o m a i n oa n df e e d b a c kt os c h e d u l e r ;w ep r o p o s ea n di m p l e m e n tc r e d i t - f ba l g o r i t h mb a s e do n f e e d b a c kb yi m p r o v i n go r i g i n a lc r e d i ta l g o r i t h mt or e a c hs c h e d u l e rl e v e lp e r f o r m a n c ei s o l a t i o n t e s t r e s u l t ss h o wt h a tn e ws c h e d u l i n gs y s t e mi sm o r eb e t t e rt h a no r i g i n a lo n ei nt h ea s p e c to fp e r f o r m a n c e l s o l a t i o n v i r t u a l i z a t i o nt e c h n o l o g ya r ed e v e l o p i n gc o n t i n u o u r s l y , t h ea u t h o rs i n c e r e l yh o p e st h a tr e s e a r c hi n t h i sp a p e rc a np r o v i d es o m ev a l u a b l ee x p e r i e n c ef o rf u t u r ed e v e l o p m e n to fv i r t u a l i z a t i o nt e c l l i l o l o g y k e y w o r d s :x e n ,s c a l a b i l i t y , p e r f o r m a n c ei s o l a t i o n ,n e t w o r k , v i r t u a l i z a t i o n 东南大学学位论文独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经 发表或撰写过的研究成果,也不包含为获得东南大学或其它教育机构的学位或证书而 使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确 的说明并表示了谢意。 研究生签名:盆赛车 e l 期:上幽;芏川 东南大学学位论文使用授权声明 东南大学、中国科学技术信息研究所、国家图书馆有权保留本人所送交学位论文 的复印件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文档 的内容和纸质论文的内容相一致。除在保密期内的保密论文外,允许论文被查阅和借 阅,可以公布( 包括刊登) 论文的全部或部分内容。论文的公布( 包括刊登) 授权东 南大学研究生院办理。 研究生签名: 盟寡幸 导师签名: 鲰日期:掣, 第一章绪论 1 1 虚拟机介绍 第一章绪论 虚拟机技术最早出现于上世纪6 0 年代,那时大型机非常昂贵,通常是多个用户共享一台大型机 资源,但是不同的用户有不同的运行环境需求,为了解决这些问题,虚拟机技术应运而生。i 蹦较早 开展了虚拟机技术研究,著名的v m 3 7 0 分时系统设计目的是让不同的用户分享一台计算机的资源, 最终结果是在单一的硬件系统上模拟出多台虚拟计算机。提出的删( v i r t u a lm a c h i n em o n i t o r , 也称为h y p e r v i s o r ) 概念,取代操作系统,成为软硬件体系中最接近硬件的软件层面,负责将硬件资 源分配给上层的客户操作系统,这些同时运行的操作系统实例,被抽象为虚拟机。 由于虚拟化可以允许大量用户同时工作,故而它也被用作降低硬件成本和提高资源效率的一种 技术手段。在上世纪七、八十年代,由于硬件价格变得越来越低廉以及多任务操作系统的出现,虚 拟机技术几乎己被人遗忘。然而到了九十年代,虚拟化概念又一次进入了人们的视野,个人计算机 性能大幅度提升,使得原先只存在于大型机上的虚拟机技术得到了更加广泛的应用。j a v a 虚拟机的 推出,尤其是之后y m w a r e 公司e s xs e r v e r 和w o r k s t a t i o n 虚拟机的推出,使得虚拟机技术研究成为处 理器设计人员、软件设计人员、服务器设计人员和网络安全设计人员的热门研究课题。进入2 1 世纪, 网络的巨大发展和新兴应用的出现使得虚拟机技术重新成为当前研究的热点幅1 。 1 1 1 经典虚拟机模型 所谓虚拟机,顾名思义,就是指一台虚拟的计算机。它的虚拟的含义,是相对于我们日常使用 的物理计算机来讲的。物理计算机我们看得见、摸得到,包括c p u 、硬盘、内存、网卡等等,这些 设备我们都可以实实在在地接触到。而虚拟机,则是一种被虚拟化的技术,虚拟机中的c p u 、内存 等硬件设备我们都看不见,但是我们可以使用它们,可以使用虚拟机中的硬盘来存储数据,使用虚 拟机中的网卡来连接网络。其实这些功能都是由程序模拟出来的,但是我们在使用过程中,并没有 感觉到和真实的计算机有什么不同,这就是神奇的虚拟机技术。 虚拟域0虚拟域1虚拟域n 应用程序应用程序应用程序 操作系统操作系统操作系统 v i r t u a lv i r t u a lv i r t u a l 硬件硬件硬件 v i r t u a lm a c h i n em o n i t o r ( v m m ) 硬件( c p u ,内存,i o ) 图1 - 1 经典虚拟机模型 系统虚拟机提供了一个完全的系统环境,可以支持一个操作系统的运行,客户操作系统可以经由 东南大学硕士学位论文 它来访问底层的硬件资源,包括网络,i o ,图形用户接口等。如图卜1 所示,虚拟化软件处于底层 硬件和传统软件之间,这样虚拟化软件就可以模拟不同于底层硬件的i s a ,但是很多系统中虚拟域 都使用和底层硬件相同的i s a ,此时的虚拟化软件通常被称为v 瓤( x r m u a lm a c h i n em o n i t o r ) 。通过 使用系统虚拟机,单个硬件平台可以同时提供多个客户操作系统的运行环境。 系统虚拟机中,平台复制是删的主要特征嘲,主要是在多个客户操作系统环境之间分割资源。 客户操作系统是由删控制的,当客户操作系统执行某些操作,如要直接访问共享资源的特权指令, 、n m 截获该操作、检查正确性,然后代替客户操作系统去执行,最后返回结果,而客户操作系统则 不会感觉到这些,就好像真的是自己执行了这些操作一样。每个客户操作系统都控制和管理一套虚 拟硬件资源,如处理器、存储、外设等。在系统虚拟机环境中,真实的宿主平台资源是由各客户系 统虚拟机共享使用的,删管理着资源的分配和使用,这些资源可以通过分割或分时使用来共享。 1 1 2 虚拟机应用 虚拟化技术在服务器整合、多执行环境、计算机安全、系统调试、分布式计算等诸多领域显示 了其应用价值,可以说虚拟机技术正经历着一场复兴h 儿5 。 服务器整合1 6 8 犍虚拟机技术在企业数据中心的重要应用。虚拟化已被企业看成是减少服务器数 量来降低成本的有效途径,将多台资源利用率低的机器上的负载整合到较少的几台机器上可以帮助 企业提高系统使用率,节省硬件投资,随之带来的企业数据中心物理空间的缩小和服务器运行及温 度控制的耗电量的降低,进一步减少了基础设施成本。此外服务器整合也方便了系统管理和维护工 作,虚拟机的动态迁移技术使得服务器的负载均衡和动态迁移变得更为容易。 虚拟机技术在系统程序开发和测试领域有很大的用处憎1 。使用u m l ( u s e rm o d el i n u x ) 来调试 内核,己经是一种广泛采用的技巧。在u m l 中,每一个客户操作系统在h o s t 系统上都对应到普通的系 统进程,所以就可以像调试普通的进程一样使用g d b 来调试。而对于x e n 虚拟机,可以通过在域0 中运 行g d b s e r v e r 的方法来实现系统调试。虚拟机的使用,使得内核调试变得安全而轻松。 反病毒虚拟机n 伽是虚拟机技术在计算机安全领域的重要应用。随着病毒技术的复杂化和多样化, 仅仅依靠静态分析在反病毒领域己经存在较大的局限。由于虚拟机能模拟程序的真实运行、动态跟 踪程序的运行状态,对程序的运行期数据进行检测,它已经成功运用于反病毒领域,其基本原理是 虚拟一个运行程序的环境,模拟病毒的真实运行过程,及时发现病毒的行为特征。目前大多数优秀 的反病毒软件都建立在虚拟机平台之上,融合多种检测手段,静态与动态检测相结合,相比传统的 反病毒技术,是一个巨大的飞跃。 此外,还出现了一些新兴应用,如在高性能计算领域虚拟机技术就有很多用武之地u 埋。人们 往往要为不同的应用创建单独的集群,以满足特定的软件需求,不过应用类型较多时这样做要付出 相当高的代价。虚拟化技术对此的解决之道是利用虚拟机( v m ) 来运行任务。当用户提交任务时,可 以指定希望使用的操作系统或内核等组件。在执行任务时,计算节点将启动相应配置的虚拟机,然 后在虚拟机中运行任务,处理完毕后,虚拟机被关闭,节点继续执行下一任务。这样就能在单个节 点上混合运行l i n u x 和w i n d o w s 应用。 容错是高性能计算的一个重要问题,当任务中的某个节点即将出现故障时需要将任务迁移到其 他节点上,虚拟机的动态迁移技术可以便于这一功能的实现u3 1 :此外,人们一直设想在高性能计算 中实现独立于应用本身的检查点重新启动功能。使用检查点,是希望在节点出现故障以及应用无法 工作时,从最近一个检查点重新启动应用,否则应用就只能从初始状态重新启动。当应用在虚拟机 上运行时,只需少量的准备工作,就能轻松地创建出虚拟机状态检查点,并将其写入存储设备。 2 第一章绪论 1 2 研究的意义和目的 传统的虚拟机研究关注虚拟化的开销和错误隔离( f a u l ti s o l a t i o n ) 瞄问题,主要有性能评测, 及其他虚拟机技术在各方面的比较、性能诊断和调优等。最新的研究开始较多的关注动态资源分配、 虚拟机调度、多虚拟机扩展性等们,其中针对扩展性问题的专门研究还不够,但随着虚拟化的应 用发展,重要性和迫切性日益凸显出来。 多虚拟机扩展性是个重要问题。我们知道服务器整合是虚拟化技术在企业中应用的重点。企业 常需要运行多种应用服务,如w e b 服务、数据库服务等,为了防止应用间相互影响,一般在不同的 物理服务器上运行不同的应用服务,虚拟化技术资源共享和错误隔离( f a u l ti s o l a t i o n ) 的特点使 得企业可以把多个服务整合到高性能的服务器上,在不同的虚拟机上运行不同服务,这样既能保证 服务之间的错误隔离,又能充分利用资源,减少空间占用和管理开销。然而虚拟化技术虽然保证了多个 应用的之间的错误隔离,使得运行在某个虚拟e j = 的应用的失败不会影响到其他虚拟机匕的应用,但是却 带来了性能隔离( p e r f o r m a n c ei s o l a t i o n ) 铂的问题。管理过程中一般会根据应用需求为虚拟机配置不同 的资源,以使应用得到相应的服务质量保证( q o s ) ,然而虚拟机之间是资源共享的,而且对关键资源的访问 都要通过v 删这个中介,有可能出现某些虚拟机侵占太多资源导致其他虚拟机得不到预期资源而性能下降, 达不到o o s 要求的问题。过去的研究大多集中在错误隔离方面,性能隔离方面的研究还很少。此外虚拟机 技术易管理、动态迁移、系统安全、0 s 可定制等特性使得它在分布式计算方面得到广泛应用。在分布式应 用中需要同时运行大量虚拟机,虚拟机技术中为了保证系统致性,所有特权操作都需要删介入,多虚 拟机时带来的开销对于注重通信性能的h p c 应用有较大影响。因此有必要研究虚拟化初崩| 在多虚拟机时的 扩展性,以保证其运行多虚拟机时的整体性能。 资源可扩展性是另个值得关注的问题。企业服务器一般都使用了多个处理器或多核处理器,而且为 了满足网络应用需求,有时需要配置多块高性能的网卡,虚拟机系统能否有效利用这些新增资源,也就是 虚拟化机制的资源可扩展性就成为必须关注的问题。 在众多的虚拟机技术中,x e n 开源、高效的特点受到学术界和众多企业的青睐u 引,近年来得到广 泛应用和研究。x e n 原先只支持泛虚拟化,硬件虚拟技术( 如i n t e lv t ) 的出现使得x e n 能够支持 完全虚拟化。本文以基于v t 的x e n 虚拟机i 0 完全虚拟化机制为研究对象,重点研究其资源可扩展性, 多虚拟机时的扩展性,特别是多虚拟机时的性能隔离问题。在资源可扩展性和多虚拟机扩展性方面,主要 是在实验基础上考察多处理器和多虚拟机对系统总体性能的影响,并通过系统级调优工具采样 h y p e r v i s o r 的各种性能相关事件,来对实验结果进行分析,以找出影响x e n 在这2 个方面扩展性的 关键因素,为进一步对h y p e r v i s o r 的性能优化提供依据。在性能隔离问题方面,主要是设计并实现 一个基于性能隔离的虚拟机调度系统,以弥补现有成果的一些不足,使得x e n 虚拟机能实现较好的 性能隔离。 1 3 论文组织结构 本论文的内容结构组织如下: 第一章简述了虚拟机的历史和最新应用进展,并对课题研究内容作简单介绍。 第二章首先分析了i n t e lv t 硬件虚拟化技术的内部原理,然后从c p u 、内存、i o 虚拟化3 个 方面全面分析了基于y t 的x e n 完全虚拟化机制的内部体系结构。 第三章在实验基础上研究了多虚拟机和多处理器结构对x e n 整体网络性能的影响。发现了影响 3 东南大学硕士学位论文 可扩展性的关键因素:虚拟机调度机制和事件通道机制,并深入分析了两者影响可扩展性的原因。 此外还分析了x e n 虚拟机的性能隔离问题。 第四章设计并实现了一个基于性能隔离的虚拟机调度系统,详细介绍了“监控器”和改进算法 c r e d i t f b 算法的设计和实现,并对系统的实际效果进行了验证。 第五章对全文的研究进行了总结,并对今后研究进行了展望。 4 第二章x e n 完全虚拟化机制研究 第二章x e n 完全虚拟化机制研究 根据客户操作系统是否需要修改,虚拟化技术可以分为完全虚拟化( f u l lv i r t u a l i z a t i o n ) 和 泛虚拟化( p a r av i r t u a l i z a t i o n ) 。完全虚拟化提供底层物理系统的全部抽象化,可以在虚拟机中 直接安装和运行未经修改的操作系统,客户机操作系统像往常一样运行,意识不到虚拟环境的存在。 泛虚拟化需要修改客户操作系统来配合虚拟化的环境,从而达到较高的性能,但是却存在兼容性和 可维护性方面的问题。x e n 最初只能支持泛虚拟化方式,有了硬件虚拟化技术例如i n t e lv t 和a 如_ v 技术,从x e n3 0 开始也支持完全虚拟化。 本章主要研究x e n 完全虚拟化机制。首先分析了i n t e lv t - x 硬件虚拟化技术的原理,然后对基 于v t 的x e n 完全虚拟化机制内部体系结构进行了详细分析。 2 1i s a 支持虚拟机必须满足的条件 i s a ( i n s t r u c t i o ns e ta r c h i t e c t u r e ,指令集架构) 是与程序设计有关的计算机架构的一部分, 是软件和硬件之间的接口,包括本地数据类型、指令、寄存器、地址模式、内存架构、中断和意外 处理以及外部i o 等。 虚拟化处理器的关键是客户机指令包括系统级和用户级指令的执行,一般有2 种实现方式u 引: 第一种方式是通过完全模拟来实现,如通过模拟( e m u l a t i o n ) 或二进制翻译( b i n a r y t r a n sl a ti o n ) 。通过模拟的方式总能实现虚拟机,但是效率太低。 第二种方式是在宿主机上直接执行,这种方式只适合宿主机和客户机i s a 相同的情况,并且还 必须满足其它条件。 g o l d b e r g 和p o p e k 正式提出了i s a 可以支持虚拟机的充分条件。他们分析的前提条件是啪1 : ( a ) 硬件包括一个处理器和统一编址的内存; ( b ) 处理器能在两种模式( 系统态和用户态) 下运行; ( c ) 某些指令只能在系统态运行; ( d ) 内存寻址需要设计一个重定位寄存器。 虚拟机可以用四元组模型来表示,s = ,e 是可执行存储,m 是操作模式,p 是程序计数器, r 是内存重定位边界寄存器。特权指令被定义为如果在户态执行则触发陷阱,在系统态则不发生。 为了描述和硬件交互的指令,定义了两类特殊指令。c o n t r o l s e n s i t i v e 指令和 b e h a v i o r s e n s i t i v e 指令。c o n t r o l - s e n s i t i v e 指令是指那些试图改变系统资源配置( 如系统模式, 分配给应用程序的资源等) 的指令,b e h a v i o r s e n s i t i v e 指令是指那些执行结果依赖资源配置( 如 重定位寄存器,系统模式) 的指令。如果不是c o n t r o l - s e n s i t i v e 和b e h a v i o r - s e n s i t i v e 的则称为 i n n o c u o u s 。 g o l d b e r g 和p o p e k 给出了如下定理:对于任何传统的第三代计算机,只有当s e n s i t i v e 指令 集是特权指令集的子集时,才能构造出删( v i r t u a lm a c h i n em o n i t o r ) 。 以往的c p u 在支持虚拟化方面存在一些缺陷,因为i n t e li a - 3 2s a 中有部分指令是s e n s i t i v e 的,但却不是特权指令,我们把这些指令称为关键指令,必须针对这些关键指令采取补救措施。 s c a n n i n g 和p a t c h i n g 是一种有效的措施。删首先对客户基本块进行扫描,当发现关键指令 时,就用一个对v 删的系统调用去取代,关键指令和它原先的地址则保存在v 姗相应的表中。在基 5 东南大学硕士学位论文 本块的末尾会放置另外一个t r a p ,使得基本块执行完后删能重新获得控制权。在这种情况下,模 拟开销大小依赖于几个要素,包括必须要被模拟的指令数,发现这些指令的复杂度,模拟时使用的 数据结构和算法等。当执行须被模拟的指令时必须保证掉入“陷阱”( t r a p ) ,然后由处理函数去解 释执行,并把控制权返还给原程序。 2 2i n t e lm 技术 完全依赖软件实现虚拟机时面临着一些难点担。 首当其冲的是虚拟机的运行级别问题。i n t e l 公司的x 8 6 系列处理器,提供4 个特权级别r o ,r 1 , i c 2 和r 3 。操作系统一般运行在系统态r 0 ,而应用程序运行在用户态r 3 。删要掌控所有的系统资 源,显然必须工作在r o 态,而虚拟机则一般运行在r 3 态,这样就面临一个问题:在虚拟机上运行 的操作系统也只能在用户态运行,虚拟机中的操作系统误以为自己仍然具有r o 的权限并试图去执行 一些在r 0 中才能正确执行的代码。因此,如何正确的处理这些特权指令就成为重要的一个问题。不 幸的是,并不是所有的x 8 6 指令在遇到执行权限不足时都会产生一个内核陷入而将控制权转交给有 足够权限的代码,这些特殊的代码在特权级不足时只会安静的失效并不引起任何副作用,这是虚拟 x 8 6 系统的一个难点。目前基于软件实现的虚拟机技术主要采用动态或静态改写操作系统内核的方 法来解决这个问题。很明显,这种方法直接导致系统将会变得更为复杂,执行效率大打折扣,并极 大限制了虚拟机软件支持的操作系统种类。 另外一个困扰软件虚拟机技术的问题是执行效率低。删掌控所有硬件资源,一旦这些资源临 时被客户虚拟机使用后,必须要有一种方式使v m m 能够取回控制权。软件实现时一般是通过t r a p , 将控制权返还给删,再由v m m 去模拟执行来解决。但是在虚拟机和v m m 之间频繁的切换将大大影 响系统效率。 软件级的虚拟机技术虽然不需要硬件的专门支持,但它需要在系统中开辟复杂的工作区域,软 件自身的开发和升级工作非常繁琐,很难迅速适应快速发展的各种新型硬件平台。基于软件实现的 虚拟机技术无论如何改进,始终无法彻底解决自身的许多问题。因此,要实现更为高效和低成本的 虚拟机技术的唯一出路只有借助于硬件结构体系的改良和支持,实现硬件级的虚拟机技术。 2 2 1 硬件虚拟技术的优势 纯软件虚拟化的效率是比较低的,从硬件层面来支持虚拟技术,可以大大改善这种局面。 硬件级虚拟化技术直接推动了新一轮优化和挖掘硬件效率的浪潮,它使我们可以更为直接的操作硬 件设备。随着新一代处理器的广泛使用,硬件级虚拟机技术开始快速渗透进人们的日常应用中。硬 件虚拟化技术在以下几个方面减少了虚拟机技术的开销咄“: 1 ) 特权级问题:原先客户操作系统都是在r 0 之外的特权级运行,而操作系统有些指令必须在 r 0 环执行,因此执行这些指令时都要v m m 介入。有了硬件虚拟技术的支持,客户操作系统 就可以直接在r o 运行,这些指令中的大部分( 除了某些涉及关键资源的指令) 都可以直接 运行,不需要删介入,大大减少了上下文的切换。 2 ) 状态管理问题:原先上下文切换时,状态信息中寄存器信息到硬件寄存器的映射、状态信 息的载入和保存,都是软件来完成的,开销很大,而现在硬件虚拟技术把这些信息封装在 数据结构中,自动实现载入和载出这些耗时的工作,v m m 只需要管理很少的信息。 3 ) 非根操作模式的客户操作系统可以通过v m c a l l 和根操作模式的v m m 通讯,并且传递相应的 信息,使得v m m 在分配资源时可以更有效。 6 第二章x e n 完全虚拟化机制研究 目前,两大处理器制造商i n t e l 和a m ) 分别开发了自己的硬件级虚拟机技术i n t e lv a n d e r p o o l 技 术和a m ) p a c i f i c a 技术。 i n t e l 公司的v a n d e r p o o l 技术的最大优势是提高了客户端与删的双向数据转换效率,客户操 作系统内核不需要做任何修改就可运行在虚拟机上乜1 1 。这样在保持虚拟机高性能的前提下使其支持 更多类型的操作系统。v a n d e r p o o l 包括两种技术标准,一是基于i a 3 2 处理器的v t - x 技术,另外一 个是基于安腾( i t a n i u m ) 架构的v t - i 技术。v t - x 采用了虚拟机扩展( 、n ) 的技术来扩充现有i a 3 2 架 构的c p u 操作方式,使用这种新的c p u 操作方式,可以从根本上解决以前虚拟机的运行级别问题。、t - i 技术用于安腾处理器,安腾处理器采用了i a 6 4 架构,是i n t e l 开发的完全6 4 位处理器,它不再使 用x 8 6 指令集而采用e r i c 指令集。安腾平台上的虚拟机技术、t _ i 与i a 3 2 架构的虚拟机技术不同, 它借助扩展安腾处理器状态寄存器以及扩展处理器抽象层( p r o c e s s o ra b s t r a c t i o nl a y e r ) 固件来实 现。 为了应对i n t e l 的挑战,a m d 开发了用于其自身c p u 平台的虚拟机技术p a c i f i c a 。a m dp a c i f i c a 技术引入了新的处理器模式一客户机模式( g u e s tm o d e ) 和新的内存管理模式一分页实模式( r e a l m o d ew i t hp a g i n g ) 。采用虚拟机控制块v m c b ( v i r t u a lm a c h i n ec o n t r o lb l o c k ) 来存放客户机状 态。 从原理上来说,p a ci f i c a 与v a n d e r p o o l 并无本质不同,只是由于两类微处理器硬件结构的差 异,才使得他们采取了不同的实现方式。因此,在a m d 平台上编写的虚拟机软件无法在i n t e l 架构 中正常运行。 本文的研究基于i n t e lv t _ x ,因此下面主要介绍i n t e lv t - x 技术原理。 2 2 2v t _ x 技术原理 v t _ x 主要是c p u 上的一套虚拟机扩展v m x ( v i r t u a lm a c h i n ee x t e n s i o n s ) 2 1 o 图2 1 展示了虚 拟机的生存期。y m x o n 指令可以使c p u 从普通模式切换到v 姒模式,v m x o f f 指令使c p u 从v m x 模式 退回普通模式。v 蜮模式提供了2 个运行环境:根( r o o t ) 环境和非根( r o o t ) 环境。每个环境下都有 r 0 ,r l ,r 2 和r 3 这4 个特权级,所以c p u 实际上支持8 种运行状态。v m x 根( r o o t ) 操作模式下的功 能和普通模式下处理器是基本类似的,主要区别是多了一些v 舣指令。为了支持虚拟化,v m x 非根 操作模式和普通c p u 相比在某些方面是受限的,如对关键的共享资源的访问必须切换到v m x 根操作 模式下才能进行。根环境专门为v m m 的运行准备,而非根环境是一个受限的环境用来运行虚拟机。2 个环境之间可以相互转换,如图2 - i 所示,其中v m c s 为虚拟机控制结构,用于保存v m x 模式切换时 的状态信息。 图2 - 1 虚拟机生存期 7 东南大学硕士学位论文 为了实现v 呶根操作模式和非根操作模式之间的转换,c p u 提供了一些专门的指令,如: v m c a l 卜虚拟机调用w m ,因而从非根操作模式转入根操作模式,删恢复运行,称为 e x i t : v m r e s u m e 根操作模式下的砌退出,从根操作模式转入非根操作模式,虚拟机恢复执行, 称为v me n t r y 。 这样v m m 可以在v 溉根操作模式下运行,而虚拟机在v 暇非根操作模式下运行。由于虚拟机在 v 呶非根操作模式下运行时,操作系统可以工作在r 0 态,因此某些指令的执行就不再像以前一样需 要删介入;而v 暇非根操作模式下访问关键共享资源时,由于受到限制,仍然需要登陆到v m x 根 操作模式由v m m 来完成,这就保证了v 姗仍然能够掌控系统资源。因此可以解决虚拟化软件实现时 面临的一些困难。 2 2 3 虚拟机控制结构c s v t - x 技术定义了虚拟机控制结构v m c s ( v i r t u a lm a c h i n ec o n t r o ls t r u c t u r e ) 蚴,用于保存 v m x 模式切换时的状态信息,如表2 - 1 所示,v m c s 包含了状态域,控制域和、m 退出信息。v m c s 结 构只能由硬件和运行在根操作模式下的软件来操作,每个虚拟机都对应一个v m c s 结构,v n p t r 指针 用于指向当前运行的虚拟机对应的v m c s 。 表2 - 1 虚拟机控制结构v m c s s t a t ea r e ag u e s ts h a m r e g i s t e rs h a m i n t e r r u p t i b i l i t ys h a m h o s ts t a r e r e g i s t e rs t a t e c o n t r o la mv me x c c u t i o nc o n t r o l sp i n b a s e de x e c u t i o nc o n t r o l s p r o c e s s o r - b a s e de x e c u t i o nc o n t r o l s b i t m a pf i e l d s e t e v me 嫡tc o n t r o l sc o n t r o lb i t m a p m s rc o n t r o l s v m e n t r yc o n t r o l s c o n t r o lb i t m a p m s rc o n t r o l s c o n t r o l sf o re v e n ti n j e c t i o n h e x i tb a s i ei n f o r m a t i o nv m e x i ti n f o r m a t i o n i n f o r m a f i o n v e c t o r i n ge v e n ti n f o r m a t i o n o t h e re ) 【i ti n f o r m a t i o nd u et oe v e n td e l i v e r y d u et oi n s t r u c t i o ne x e c u t i o n 状态域 保存着客户机状态和宿主机状态,它和传统的结构化的状态不完全一致,因为它还包含了每个 段寄存器的隐藏部分。当客户机执行v me x i t 指令时,会把处理机状态保存到客户机状态域中,然 后把宿主机状态信息加载到处理器中,返回到v m m 。宿主机执行v me n t r y 指令时,会把处理器信息 保存到宿主机状态域中,然后把客户机状态信息加载到处理器中,由v m m 返回客户机。 客户状态域保存虚拟c p u 的状态信息,包括寄存器状态信息和中断状态信息。寄存器只包括管 8 第二章) 吲完全虚拟化机制研究 理处理器操作的那些i - 3 2 寄存器,如段寄存器、c r 3 、i d t r 等,而其它删自己能保存和加载的 寄存器( 如通用寄存器) 则不包括在内,因为软件比c p u 知道怎样更有效的管理这些寄存器,此外 把这些寄存器排除还可以改善e x i t 时的性能。 控制域 v me x e c u t i o nc o n t r o l s v me x e c u t i o nc o n t r o l s 可以让v 姗控制v m x 非根模式下某些指令的行为以及导致虚 拟机退出( v me x i t ) 的事件。如c p u i d 、r d m s r 、w r m s r 都会导致v me x i t ,以便删控制 客户机的行为。它分成以下几个部分: ( 1 ) 基于引脚的虚拟机执行控制。它决定在发生外部中断或不可屏蔽中断( 瑚i ) 时是否 需要发生、,me x i t ( 2 ) 基于处理器的虚拟机执行控制。它决定虚拟机执行r d t s c 、h l t 、i i w l p g 等指令时 是否需要发生e x i t 。 ( 3 ) 异常位图。它由3 2 位组成,每位对应i a - 3 2 体系结构中3 2 个异常中的一个,当对应 位设置为1 时,相应的异常会触发v me x i t 。 ( 4 ) i o 位图地址。它包括两个6 4 位的位图指针,用来控制虚拟机访问哪些i o 端口时, 将产生、,me x i t 。 ( 5 ) 时间戳计数器( t i m e - s t a m p c o u n t e r ) 偏移。它用来存放虚拟机t s c 与真实t s c 之间的 差值。 ( 6 ) c r o 和c r 4 的客主屏蔽和读影子( r e a ds h a d o w s ) 。客主屏蔽中为i 的位为虚拟机监 控器所有,虚拟机试图通过c l t s 、l m s w 等指令把控制寄存器中该位写为不同的值时,将产 生v me x i t 。虚拟机读取这些位时,将返回v m m 设置的读影子中的值。 ( 7 ) c r 3 目标控制。、舳l 可以设置一组( 目前只能小于等于4 个) 6 4 位地址,当虚拟机试图 把c r 3 指向其中之一时,将不引发、me x i t 事件。 v me x i tc o n t r o l s v me x i tc o n t r o l s 定义了v me x i t ( 虚拟机退出,v m m 恢复运行) 时要执行的操作: ( 1 ) c o n t r o lb i t m a p 决定当v me x i t 发生后处理器是否处于6 4 位模式,以及因为外部 中断发生v me x i t 时,处理器是否响应中断控制器并且获得中断向量号等: ( 2 ) m s rc o n t r o l s 可以用来定制当v me x i t 发生时要保存哪些m s r 并且装载哪些m s r 。 v me n t r yc o n t r o l s v me n t r yc o n t r o l s 定义了v me n t r y ( 嗍出,虚拟机恢复运行) 时要执行的操作: ( 1 ) c o n t r o lb i t m a p 决定处理器、,me n t r y 后是否处于i a 一3 2 模式; ( 2 ) m s rc o n t r o l s 与v me x i t 时类似,v m m 用它来定制当v me n t r y 发生时要装载哪些m s r : ( 3 ) v me n t r y 事件注入控制。v m m 可以配置v me n t r y 时通过虚拟机的i d t 向其发送一个事 件。在此可以配置将使用i d t 的向量、中断类型( 硬件或软件中断) 、错误码等。 v i ie x i t 信息 v me x i t 信息非常重要,它可以告诉v m m 是什么原因导致v me x i t 。包括: ( 1 ) 基本v me x i t 信息,e x i ti n f o r m a t i o n 存放v me x i t 的原因以及针对不同原因的 更多描述,v e c t o re v e n ti n f o r m a t i o n 存放因为向量事件而产生的1 i ,me x i t 信息包括中断或异 常向量号、中断类型和错误码等; 9 东南大学硕士学位论文 ( 2 ) 其他退出信息,如通过i d a 发送事件时产生的v i ie x i t 信息;指令执行时产生的v me x i t 信息,包括指令长度、线性地址和v 掀指令信息的内容等。指令错误域。它用以存放正常执 行指令时发生的错误。 2 2 4 、限- x 技术新增指令 虚拟机监控器运行时所处的c p u 根环境与没有v t - x 的x 8 6
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年内蒙古呼伦贝尔农垦集团有限公司招聘考试笔试试卷含答案附答案详解(模拟题)
- 2025公益性岗位试题及答案解析
- 2025年工业互联网平台流量整形技术产业政策与市场前景分析
- 2025年新能源汽车电池回收利用技术市场前景与发展前景报告
- 2025年新能源物流车推广应用与充电桩建设成本优化策略与绿色物流成本控制报告001
- 合肥市经济开发区产业结构优化路径与策略研究
- 量子通信(第二版) 课件汇 第11-24讲 QKD原理与实现(I)-量子通信网络-拓扑与路由、复习
- 2025年教师招聘之《小学教师招聘》题库综合试卷带答案详解(巩固)
- 2025年教师招聘之《幼儿教师招聘》通关练习题和答案及参考答案详解(精练)
- 基于2025年智能制造产业孵化基地建设的产业科技创新体系建设建议
- 2025北京市交通发展年度报告
- 凿壁借光课文讲解
- 可靠性基础知识培训课件
- 2025年全国招标采购专业技能大赛(地方组)历年参考题库含答案详解(5套)
- 2025至2030全球及中国医疗设备维修服务行业项目调研及市场前景预测评估报告
- 2025年汽车驾驶员(技师)考试试题及答案
- 耗材产品售后方案(3篇)
- 2025年全国保密教育线上培训考试试题库(含答案)
- DGTJ08-2004B-2020 建筑太阳能光伏发电应用技术标准
- 中医与现代医学融合的健康体重管理策略
- 反三违培训课件
评论
0/150
提交评论