(电子科学与技术专业论文)多核架构下硬件辅助io虚拟化研究与实现.pdf_第1页
(电子科学与技术专业论文)多核架构下硬件辅助io虚拟化研究与实现.pdf_第2页
(电子科学与技术专业论文)多核架构下硬件辅助io虚拟化研究与实现.pdf_第3页
(电子科学与技术专业论文)多核架构下硬件辅助io虚拟化研究与实现.pdf_第4页
(电子科学与技术专业论文)多核架构下硬件辅助io虚拟化研究与实现.pdf_第5页
已阅读5页,还剩73页未读 继续免费阅读

(电子科学与技术专业论文)多核架构下硬件辅助io虚拟化研究与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

国防科学技术大学研究生院硕十学位论文 a bs t r a c t r e c e n t l y ,v i r t u a l i z a t i o nt e c h n o l o g ya p p e a l st h ec o m m o ni n t e r e s t s o fb o t ht h e i n d u s t r ya n da c a d e m yd u et oi t so b v i o u sa d v a n t a g e s h o w e v e r ,i ta l s oe n c o u n t e r st h e p r o b l e mo fs e r i o u sp e r f o r m a n c eo v e r h e a d s ,e s p e c i a l l yf o rt h ei o i n t e n s i v ew o r k l o a d ; t h e r e f o r ei ti sa nu r g e n tt a s kt os o l v et h ep e r f o r m a n c eo v e r h e a d sc a u s e db yi o v i r t u a l i z a t i o n ,p a r t i c u l a r l yf o r t h ev i r t u a l i z a t i o ns y s t e m sb a s e do nm a n y c o r ep r o c e s s o r t h eh a r d w a r e - a s s i s t e di ov i r t u a l i z a t i o nt e c h n o l o g y ,w h i c he n a b l e st h eg u e s to s s d i r e c t l ya n ds a f e l ya c c e s s e st h ed e v i c ew i t h o u tt h ev m ms o f t w a r e si n t e r f e r e n c e ,i s c o n s i d e r e dt ob eo n eo f t h eb e s ts o l u t i o n st ot h eo v e r h e a d sp r o b l e m t h i sp a p e rp r e s e n t sad e s i g no fh a r d w a r e - - a s s i s t e di ov i r t u a l i z a t i o nf o rm a n y - - c o r e p l a t f o r m ,w h i c hi sb a s e do nt h ep c i ei n t e r f a c el a y e rf o rt h ep r a c t i c a lp r o je c td e m a n d s t or e a c ht h e r e q u i r e m e n t so ff r e q u e n t i oa c c e s sa n dh i g h r e l i a b i l i t y i nt h e v i r t u a l i z a t i o ns y s t e m sb a s e do nt h em a n y c o r ep r o c e s s o r ,t h i sd e s i g nm a k es p e c i a l e f f o r t so nt h ed m a r e m a p p i n g ,i n t e r r u p tr e m a p p i n ga n dp i ow h i c hi sf o rt h e c o r et o c o n f i g u r a t et h ed e v i c e s c o n t r o la n ds t a t er e g i s t e r s f o rd m ar e m a p p i n g ,i ta d dt h ei o s p a c em a p p i n gf u n c t i o nt oe n s u r ei s o l a t i o nb e t w e e nd i f f e r e n td o m a i n s i ts p e e du pt h e a d d r e s st r a n s l a t i o np r o c e d u r eb e t w e e ng u e s tv i r t u a la d d r e s sa n dh o s tp h y s i c a la d d r e s s t h r o u g ho p t i m i z i n gt h es t r u c t u r eo fi ot r a n s l a t el o o k a s i d eb u f f e ra n dp r e f e t c h i n g t e c h n i q u e f o ri n t e r r u p tr e m a p p i n g ,t h i sd e s i g ni n t e g r a t ei n t e r r u p tr e m a p p i n gt a b l eo n t h ec h i pt oa c c e l e r a t et h er e m a p p i n gp r o c e d u r e ,i na d d i t i o n ,i ta d o p ta na s y n c h r o n o u s e v e n tq u e u em e c h a n i s mt oh a n d l et h em s ii n t e r r u p t ,ad o m i n a n ti oi n t e r r u p tt y p e , w h i c hc o u l da c c e l e r a t et h es p e e do fh a n d l i n gt h i sk i n d i n t e r r u p t sa n dr e d u c et h e p e r f o r m a n c ei m p a c to nt h ec o r e s f o rp i o ,t h i sd e s i g nu s e sat a c t i c sw h i c hc o m b i n e st h e t a ga s s i g n m e n tw i t hs c o r eb o a r dm e c h a n i s m ,t oi m p r o v et h er e l i a b i l i t ya n dr e m a pt h e p i oc o m p l e t i o nd a t a s i n c et h e r ea r es o m a n yi o a c c e s s e st o w a r d st h es h a r e d d e v i c ei nt h e v i r t u a l i z a t i o ns y s t e mb a s e do nm a n y c o r ep l a t f o r ma n dt h e ya r en o ta p p l i c a b l et ot h e d e s i g nm e n t i o n e da b o v e ,t h i sp a p e ra d d r e s s e sas o l u t i o nn a m e dh a r d w a r e a s s i s t e d s e l f - v i r t u a l i z a t i o n ,w h i c he n a b l e sm u l t i p l eg u e s to sd i r e c t l ya c c e s st h ed e v i c e c o m p a r e dw i t he x i s t i n g s e l f - v i r t u a l i z a t i o n t e c h n o l o g y ,m ys o l u t i o n h a ss u c h a d v a n t a g e sa sl o wh a r d w a r ec o s ta n d f l e x i b l ec o n f i g u r a t i o n k e yw o r d s :m a n y c o r e ,v i r t u a l i z a t i o n ,h a r d w a r e a s s i s t e di ov i r t u a l i z a t i o n , s e l f - v i r t u a l i z a t i o n ,p c i e 第i i 页 国防科学技术大学研究生院硕十学位论文 表目录 表1 1 对传统操作系统进行泛虚拟化工程代价【l3 1 一7 表1 2 硬件辅助c p u 虚拟化系统现场切换代价1 2 1 0 表2 1 虚拟化系统i o 性能与非虚拟化性能比较l l5 。2 l 表3 一lp c i e 报文头的主要字段及其意义2 9 表3 2i o p td e s c 存储器存储页表属性3 6 表3 3i 0 p t 页表项大小3 7 表3 4 中断映射表项主要字段4 1 表5 1p m u 模块功能验证5 9 表5 2i o m m u 模块功能验证一6 0 表5 3i m u 模块功能验证6 1 表5 4 测试激励表6 4 表5 5x 处理器i o 虚拟化相关部件综合结果6 4 第1 i i 页 国防科学技术大学研究生院硕士学位论文 图目录 图1 1 虚拟化系统的应用1 5 j 1 图1 2 虚拟化系统框图3 图1 3 全虚拟化系统c p u 虚拟化1 3 j 4 图1 4 存储虚拟化地址映射层次关系6 图1 5 泛虚拟化系统c p u 虚拟化【3 j 7 图1 - 6 硬件辅助c p u 虚拟化基本工作原理9 图1 7 虚拟机生命周期切换图9 图1 8 硬件辅助存储虚拟化【2 0 1 1o 图1 - 9x 处理器的总体结构1 1 图2 1 传统i o 虚拟化工作模型1 6 图2 2 基于宿主操作系统i o 虚拟化工作模型一1 7 图2 3 基于驱动域i o 虚拟化工作模型17 图2 4x e n 的i o 访问过程【2 9 1 2 0 图2 。5c a c h e 失效率比较 1 5 】2 2 图3 1 硬件辅助i o 虚拟化与基于软件的虚拟化比较2 3 图3 2i n t e lv tf o rd i r e c ti o 中的i o 设备指派机制【1 8 】2 4 图3 3i m e lv tf o rd i r e c ti o 中的多级地址转换原理2 5 图3 4p 模块总体结构2 8 图3 5 非虚拟化环境的虚实地址转换基本工作流程3 2 图3 - 6m s i 报文头3 3 图3 7i n t x 报文头3 3 图3 8p i o 处理模块基本原理图3 5 图3 - 9i o 地址空间映射模块结构3 5 图3 1 0t l b 中的地址转换缓存组织结构2 8 图3 1 1t c u 模块地址转换流程3 9 图3 1 2x 处理器i o m m u 基本结构4 0 图3 1 3i m u 模块基本结构图4 2 图3 1 4i m u 模块接收到的中断报文格式4 3 图3 15 小t 中断请求仲裁机制4 6 图4 1 自虚拟化网卡s v n i c l 3 0 l 一5 0 图4 2s v n i c 与h v n i c 性能比较【3 0 】。51 图4 3x 处理器的共享设备虚拟访问化体系结构5 2 第1 v 页 国防科学技术大学研究生院硕士学位论文 图4 4s v p i u 中的p i o7 r a g 分配机制。5 4 图4 5s v p i u 地址空间映射5 5 图4 6s v p i u 中m s i 映射5 5 图5 1 功能验证原理5 9 图5 2x 处理器i o 子系统部件级功能验证- 6 3 图5 3m s i 中断功能验证时序图6 4 图5 4x 处理器验证平台及其工作原理6 4 图5 5x 处理器验证平台的验证报告6 5 第v 页 独创性声明 本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已 经发表和撰写过的研究成果,也不包含为获得国防科学技术大学或其它教育机构的学 位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文 中作了明确的说明并表示谢意。 学位论文题目:垒蕉苤塑工堡鲑擅助! z q 虐型丝巫窒曼塞理 学位论文作者签名: 叠塑拖 日期:卯8 年臼月;岔日 学位论文版权使用授权书 本人完全了解国防科学技术大学有关保留、使用学位论文的规定。本人授权国 防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子文档,允 许论文被查阅和借阅;可以将学位论文的全部或部分内容编入有关数据库进行检索, 可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密学位论文在解密后适用本授权书) 学位论文题目:垒楚苤控王堡往煎助! q 麈赵焦盈盔堑塞理 学位论文作者签名:叠墅退;包一 日期:如踔ia 月;p 日 作者指导教师签名:三芝芝五一日期:乒矽形年二月多夕日 困防科学技术大学研究生院硕士学位论文 第一章绪论 1 1 课题研究背景及意义 近年来,随着全球能源供应紧张,企业之间竞争日益激烈以及信息安全方面 问题日益严重,产业界一方面迫切需要一种具有较低的购买及运营维护成本的i t 解决方案;另一方面,出于安全可靠性方面的考虑,为了避免应用程序自身的漏 洞风险影响同一机器上其它应用程序的运行,他们不得不采取一台计算机上只运 行一种应用程序应用模式;另外由于目前i t 应用的底层基础平台上多样化以及平 台之间不兼容性,也使得他们需要购买多台服务器来运行这些不同平台上的应用, 正是这两方面的因素造成目前服务器的利用率非常低下,据i d c 调查数据显示目 前应用模式的计算资源平均利用率只能达到总容量1 0 至1 5 ,这就造成能源方 面浪费以及企业i t 开支未得到充分利用。为了缓解两方面的矛盾,就迫切需要在 确保安全可靠的前提下能够整合多种应用提高系统利用率的技术,虚拟化 ( v i r t t m l i z a t i o n ) 技术就能很好的解决这个问题。 图1 1 虚拟化系统的应用【5 1 虚拟化( v i r t u a l i z a t i o n ) 技术具有隔离性( i s o l a t i o n ) ,可聚集性( c o n s o l i d a t i o n ) 和可迁移性( m i g r a t i o n ) 等突出的优点【l 】,这使得它不但能够实现将不同平台上应用 安全可靠地整合到同一个服务器上,而且还能将一个服务器上的某个应用能够快 速的迁移到其它的服务器上,从而能够提高服务器的利用率,降低硬件采购以及 运行使用成本,简化系统的管理维护。正是由于虚拟化技术所具有的这些优点, 使得虚拟化技术已经广泛而成功地应用在系统测试与开发、应用程序服务器、w e b 第1 页 国防科学技术大学研究生院硕七学位论文 服务器、数据库服务器、灾难恢复、中i 、h j 件系统、数据存储管理系统以及桌面应 用等各方面,图1 1 给出了虚拟化技术在各方面的应用情况。 正是虚拟化技术的突出优点以及广泛应用前景,虚拟化技术受到各大i t 厂商 的追捧,纷纷推出各自虚拟化技术以及相关的虚拟化产品,如i n t e l 的v t 技术【l 】, a m d 的a m d v 技术【引,v m w a r e 公司的e s xs e r v e r 等系列产品p j ,微软的v i r t u a l s e r v e r 2 1 ,其它的如i b m ,s u n 也都推出了各自的虚拟化技术【6 】【7 1 。虚拟化技术已 经成为目前i t 界最为热门的词汇之一。 尽管虚拟化技术具有许许多多的优点,但是也应该看到虚拟化技术也存在着 缺陷,这种缺陷主要就是体现在相对于非虚拟化系统的性能开销方面。尽管对于 偏重于计算型的任务,性能开销不是太大i l3 。,但是对于偏重于i o 访问类的应用, 虚拟化的性能开销就非常的明显,甚至有可能不到非虚拟化环境下的1 3 ,目前i o 虚拟化已经成为虚拟化系统的一个重要的性能瓶颈【1 4 】【1 5 】【1 6 】。 实际上i o 虚拟化不仅仅存在性能的问题,由于现在计算机系统的i o 设备种 类繁多,数量巨大,i o 虚拟化还面临着虚拟化系统盼设备驱动支持,访问的安全 和可靠性等问题。正是由于这些问题的存在,i 0 虚拟化实际上是系统虚拟化最困 难的一部分p j 。为了解决i o 虚拟化所面临的诸多困难,研究人员目前已经提出各 种技术,在所有的技术之中硬件辅助i o 虚拟化技术被公认为最有可能解决目前 i o 虚拟化技术当前所面临的这些问题,目前针对i o 虚拟化的技术与产品也在陆 续的出现与发展,例如i n t e l 的v t d ( v i r t u a l i z a t i o nt e c h n o l o g yf o rd i r e c ti o ) 技 术【1 8 】,a m d 的i o m m u 技术【1 9 1 ,x s i g o 的i od i r e c t o r 【1 7 1 等。 多核多线程技术是目前计算机领域的另一个研究热点问题。在过去的二十多 年里,受益于集成电路工艺的不断进步,计算机计算速度飞速发展,c p u 主频从 m h z 已经提升到g h z ,然而目前集成电路制造工艺已经接近极限,并且受困于芯 片日益严重的功耗与散热问题,因此通过:卷片频率提高来继续提升芯片的运算能 力日益困难。为了克服这个困难,人们提出了多核技术来进一步的提高c p u 的运 算能力。目前i n t e l 和a m d 公司都已经提供4 核的商用c p u ,s u n 公司的s p a r et 2 芯片更是8 核c p u 。目前各芯片厂商已经开始在这方面展开激烈的竞争,可以预 见,未来将会出现更多核的c p u ,届时单芯片的计算能力必将有更大的飞跃。 对于基于多核处理器的虚拟化系统而言,更多的核意味着可以同时运行更多 的操作系统以及应用,这势必对于会对i o 系统的性能,可靠性和扩展性等各个方 面都会有着更高的要求,传统的基于软件方式的i o 虚拟化技术将会面临更大的挑 战,这就更需要硬件辅助i o 虚拟化技术。多核架构下的硬件辅助i o 虚拟化与传 统的硬件辅助i o 虚拟化相比,面临着新的任务与新的挑战,因此针对多核架构下 硬件辅助i o 虚拟化技术的研究是十分有必要的。 第2 页 国防科学技术人学研究牛院硕十学何论文 1 2 国内外相关研究 对虚拟化技术或者虚拟机技术最直接的描述就是在同一套硬件平台上同时运 行多个操作系统,运行在各操作系统上的应用程序相互之间实现了安全隔离,即 如果某个操作系统崩溃,其他的操作系统及其应用程序几乎不受影响。为了实现 多操作系统的并行执行,这就需要在传统的硬件与操作系统之间增加一个很薄的 软件层,虚拟机监控层( v i r t u a lm o n i t o rm a c h i n e ,v m m ) ,或者称为h y p e r v i s o r 层,由v m m 层为上面的每一个操作系统提供一个虚拟的运行环境,包括虚拟c p u , 虚拟存储管理单元和虚拟i o 设备,该环境被称为虚拟机v m 或者域( d o m a i n ) , 它是通过对底层物理硬件的一种抽象,为上层的操作系统提供了一台虚拟的机器。 上层的运行的操作系统通常被称为客户操作系统( g u e s to s ) 。图1 2 给出虚拟 化系统框图。 图1 - 2 虚拟化系统框图 尽管目前虚拟化产品形形色色,各有特点,但是总体而言,目前主流的虚拟 化技术主要有全虚拟化技术( f u l lv i r t u a l i z a t i o n ) ,泛虚拟化技术( p a r a v i r t u a l i z a t i o n ) 和硬件辅助虚拟化技术( h a r d w a r e a s s i s t e dv i r t u a l i z a t i o n ) 3 1 1 0 l , 前 面两种在没有硬件扩展情况下就可以支持多操作系统的运行,但是性能比较差, 特别是对于i o 访问频繁的应用;硬件辅助虚拟化技术属于一种虚拟化硬件加速技 术,它的主要目标有两个,一是减少虚拟化系统开发设计代价,如简化v m m 软 件设计,提供对客户操作系统,驱动程序的更好兼容性等方面,另外就是减小由 于系统虚拟化所带来的额外开销问题。下面对这3 种技术进行简要介绍分析,主 要是针对c p u 虚拟化和存储虚拟化的分析,至于i o 虚拟化技术则是本课题的研 究重点,第2 章将会对其进行详细的研究与分析。 第3 页 国防科学技术大学研究生院硕七学位论文 1 2 1 全虚拟化技术 全虚拟化是通过对物理硬件的虚拟化复制为每个操作系统提供一个虚拟机器 ( v i r t u a lm a c h i n e ) ,该虚拟机器的指令集与物理机器的指令集与物理机器的指令 集完全相同,因而客户操作系统可以不加修改的直接运行在虚拟机上,具有较好 的兼容性,这一点是全虚拟化技术的最突出优点,它对于虚拟化非开源的操作系 统,如w i n d o w s ,是非常重要的。但是,由于全虚拟化系统上运行的客户操作系 统根本就不知道自己运行在虚拟机上,无法从客户操作系统级别上针对对虚拟化 平台运行特点进行专门的优化,因而效率比较低下。尽管如此,基于全虚拟化技 术的虚拟化产品是目前市场上最为成功的虚拟化产品,v m w a r e 公司全虚拟化产 品目前占据了虚拟化市场的大部分份额。 图1 - 3 全虚拟化系统c p u 虚拟化1 3 l 1 2 1 1 全虚拟化系统c p u 虚拟化 在全虚拟化系统中,由于v m m 软件拥有系统所有硬件资源的最高访问权, 负责创建,管理客户操作系统,必须运行在系统最高特权级上,因此在全虚拟化 平台上,客户操作系统必须相对于传统的操作系统必须降低。为了实现对客户操 作系统的保护,客户操作系统的运行特权级又必须高于应用程序运行的特权级, 故通常客户操作系统的运行的特权级处于v m m 软件和应用程序之间。传统的c p u 一般都提供4 级特权保护,如x 8 6 结构下r i n 9 0 ,1 ,2 ,3 ,其中r i n 9 0 基本最高, r i n 9 3 最低,中问两级未使用。因此,目前全虚拟化系统普遍采取让客户操作系统 运行在r i n g l ,如图1 3 所示。 由于全虚拟化系统中,运行在v m m 软件上的客户操作系统是未经修改过的 传统的操作系统,这就涉及到客户操作系统中的原来执行在r i n g0 级别上的特权 指令如何处理的问题,而这也就是全虚拟化系统c p u 虚拟化所需要解决的问题。 传统的全虚拟化系统采用的t r a p a n d e m u l a t e 方式【2 0 j 实现对客户操作系统的中 特权指令的处理,在该方式中,用户空间的指令可以直接在硬件上执行,但是对 于客户操作系统中任何需要读写特权状态信息的指令,如i o 访问的指令,或者对 第4 页 国防科学技术大学研究生院硕士学位论文 v m m 保护的结构访问的指令等,都会导致系统t r a p 操作,陷入到v m m 软件l f l , v m m 软件一般首先对该操作进行检查,然后对该操作进行模拟执行。v m m 软件 为每个客户操作系统都提供了一个虚拟机器,v m m 的模拟执行就是基于该虚拟机 器,比如,客户操作系统中对于特权状态的读写操作在v m m 软件中就被模拟为 对v c p u 的特权状态读写,正是采取了这种方式才确保了客户操作系统之间的安 全隔离性。 然而,传统的t r a p a n d e m u l a t e 方式在目前应用最广泛的x 8 6 结构却遭遇困境, 造成这种困境的主要原因如下1 2 0 j : 特权状态的可见性,客户操作系统在读取c s 寄存器能够观察到自己运行 的特权级( c u r r e n tp r i v i l e g el e v e l ,c p l ) ,因为它就保存在c s 寄存器的 低两位。 x 8 6 中的一些指令在不同的特权级上运行具有不同的语义,采用 t r a p a n d e m u l a t e 方式对于这些指令的执行就有可能造成潜在的错误。 为了克服x 8 6 结构上c p u 虚拟化的困难,v m w a r e 公司采用二进制翻译( b i n a r y t r a n s l a t i o n ,b t ) 技术成功的解决了这个问题【2 0 1 。在该技术中,v m m 软件交替的 进行客户操作系统二机制代码的产生以及二进制代码的解释执行。由于采用的是 解释执行的方式,因此可以实现对那些特权级敏感的指令正确执行,同时也可以 避免客户操作系统对于特权信息的访问,采用该技术后可以实现用户空间代码直 接在硬件上执行,而对于那些有可能破坏虚拟化系统安全的指令,包括那些 t r a p a n d e m u l a t e 方式中难以被虚拟化的指令,则由v m m 软件对其进行模拟执行, 使其的执行效果只作用于v m m 软件为其创建的虚拟机器上面。 1 2 1 2 全虚拟化系统存储虚拟化 在虚拟化系统中,物理存储空间是在多个客户操作系统之间共享的,如何实 现多客户操作系统安全共享存储空间是存储虚拟化所需要研究的问题。实现存储 虚拟化需要解决两个关键问题,一个是如何实现在多个客户操作系统间实现主机 存储空间划分与映射,另一个就是如何实现各个客户操作系统的存储空间之间的 安全隔离性,即不会出现越界访问现象。 传统的操作系统要求它的物理地址空问与主机物理存储器空间相一致,这一 点在虚拟化系统上显然是无法得到满足。为了实现多操作系统共享存储空间,必 须解除传统的操作系统的物理地址与实际的存储器的物理地址两者之间的耦合关 系。在现代的虚拟化系统中,采用了与传统操作系统中虚拟存储类似的思想,将 客户操作系统的物理地址虚拟化,由v m m 软件将其映射到实际的物理存储器中, 图1 4 为虚拟化系统中存储虚拟化地址映射层次结构。在该层次结构中,由v m m 软件负责客户操作系统分配主机物理地址( h p a ) 空间,以及实现客户操作系统 第5 页 国防科学技术大学研究生院硕士学位论文 物理地址( g p a ) 到主机物理地址的映射,v m m 软件通过系统内部的存储页表记 录这些映射关系。而客户操作系统的虚拟地址( o v a ) 到客户操作系统的物理地 址的映射仍由客户操作系统的的页表维护。 _ 耸i 、一芸、 j ,一7 七 ,、。i 。,r 、 1 一1 7 ,1 蹦t 4 存储虚拟化地址映射层次关系 在全虚拟化系统中,客户操作系统并不知道自己与其他客户操作系统共享物 理存储空间,因此客户操作系统不能直接进行存储访问,而必须由v m m 软件对 客户操作系统的物理地址进行安全隔离检查并对其进行重映射到主机物理地址。 这样在进行存储访问过程中地址转换要经历o v a g p a h p a 。 为了加速虚拟化系统的存储访问过程,充分利用现代处理器中已有的地址转 换机制:如h a r d w a r et a b l ew m k 硬件机制,全虚拟化系统普遍采用了影子页表结 构。它由v m m 软件创建用于客户操作系统的地址转换,作为硬件h a r d w a r e - w a l k 的页表使用,相当于客户操作系统的页表的缓存。 12 2 泛虚拟化技术 泛虚拟化提供的虚拟机抽象和底层硬件相似却并不完全相同的,在泛虚拟化 过程中,操纵系统能够感觉到虚拟层面的存在,从而能够与底层的虚拟监控层 ( v m m ,v i r t u a lm o m t o r m 删n e ) 协作获得较高性能。这种方法虽然需要对客户 操作系统进行少量的修改,但是对于操作系统的应用二进制接口( a b i ,a p p l i c a t i o n b i n a r yi m e r f a c e ) 则不需要改变,因此客户操作系统上的应用程序不用修改,修改 后的操作系统对于原来的应用能够很好的兼容。尽管虚拟化的代价相对于全虚拟 化技术大,但是它能够改善性能。目前基于泛虚拟化技术的虚拟平台比较有代表 性的是x e n 1 3 1 田l ,它是剑桥大学的一个开源的软件项目,表1 1 是文献”“对于传 统操作系统进行泛虚拟化时需要修改的代码量的统计结果,从表中可以看出,泛 虚拟化的工程代价还是可以接受的。尽管如此,泛虚拟化的龉大缺陷也是来源于 它需要修改操作系统,对于一些私有版权的操作系统,如w i n d o w s ,进行泛虚拟化, 第6 页 擀山 、, 国防科学技术大学研究生院硕+ 学位论文 不仅仪是技术上的问题,更是牵涉到商业问题,需要相天操作系统厂商的配合协 作才能推进,这是导致目前泛虚拟化应用落后于全虚拟化的一个重要原因。 表1 1 对传统操作系统进行泛虚拟化 t 程代价1 1 3 i 操作系统需要修改的部分 l i n u x x p 体系结构无关部分代码修改量 7 81 2 9 9 虚拟网卡驱动代码修改量 4 8 4 虚拟块设备驱动代码修改量 1 0 7 0 x e n 特定的代码( 非驱动部分) 1 3 6 33 3 2 l 总共代码修改量( 占总代码量) 2 9 9 5 ( 1 3 6 )4 6 2 0 ( 0 0 4 ) 1 2 2 1 泛虚拟化系统c p u 虚拟化 泛虚拟化技术下,为了避免客户操作系统直接对硬件进行操作可能对于其他 的客户操作系统影响,同时为了避免客户操作系统内核空间受用户空间影响,采 用了与全虚拟化相同的手段,即让客户操作运行r i n g l 上。不同于全虚拟化技术 的是,全虚拟化技术是通过t r a p a n d e m u l a t e 或者是二进制翻译技术对于客户操作 系统中的影响系统虚拟化的特权指令进行模拟或者解释执行,是不需要修改客户 操作系统的,而泛虚拟化技术则是通过对特权指令进行泛虚拟化,即将特权指令 替换为h y p e r c a l l 命令,h y p e r c a l l 类似于传统的操作系统中的系统调用,当客户操 作系统执行到h y p e r c a l l 时,就会自动陷入到v m m 软件中进行处理。v m m 中的 h y p e r c a l l 函数,对客户操作系统的h y p e r c a l l 调用进行合法性检查,然后对相应的 虚拟机器完成与所替换的特权指令相同的功能,这类似于全虚拟化的模拟过程或 者翻译解释过程。显然,在泛虚拟化系统中,客户操作系统是知道自己运行在v m m 软件上,从而能够与v m m 软件进行相互的协作,图1 5 为泛虚拟化系统c p u 虚 拟化框图。 图1 5 泛虚拟化系统c p u 虚拟化【3 1 相对于全虚拟化技术,泛虚拟化具有明显的性能优势。以v m w a r e 公司的基 于二进制翻译的全虚拟化为例。为了截获和处理所有的不可虚拟化指令,二进制 第7 页 国防科学技术大学研究生院硕士学位论文 翻泽被应用剑整个客户操作系统内核,这就会带来翻译,执行,缓存结果的开销。 另外由于全虚拟化系统中客户操作系统在执行的过程中并不知道自己运行在虚拟 的机器上,对于一些与硬件相关的系统结构都需要采用了影子版本的结构( s h a d o w v e r s i o n ) ,这也会带来维持影子版本与实际的结构一致性代价【1 3 】。 1 2 2 2 泛虚拟化系统存储虚拟化 在泛虚拟化系统中,客户操作系统“知道”自己运行在虚拟机上,与其他的客户 操作系统共享主机的物理存储空间。泛虚拟化系统存储虚拟化基本与全虚拟化系 统中存储虚拟化一样,也采用了两级页表,客户操作系统管理维护g v a 到g p a 映射的页表,而v m m 软件则管理与维护g p a 到h p a 映射的页表。在全虚拟化 系统中,由于传统t l b 硬件中的缓存项不支持域空间标识,为了避免客户虚拟地 址错误映射,因此每次在进行地址空间切换的时候,如由v m m 软件进入到某个 虚拟机或者相反的过程,都需要将整个t l b 缓存完全清除掉,这会导致空间切换 初期t l b 失效率会比较高,从而可能会导致系统频繁地进行空间切换,带来很大 的虚拟化开销。为了减小由于v m m 软件对于存储管理所带来的额外虚拟化开销, 下面结合x e n 的存储虚拟化给出泛虚拟化系统存储虚拟化的优化措施,主要包含 以下两项i j : 由客户操作系统负责分配和管理用于硬件t l b 过程的页表,只有当客户操 作系统对该页表的操作有可能会影响系统的安全隔离性时,才需要x e n 的干涉管理。 x e n 占据了每个客户操作系统的地址空间的最顶上的6 4 m b 空间,这样能 够在每次离开v m m 软件时t l b 缓存里x e n 的地址映射关系缓存项可以 设置为无须清除,这样就能避免由客户操作系统空间切换到v m m 后由于 t l b 完全清除带来的较高页故障率。 在x e n 系统中,每次客户操作系统需要一个新的页表时,客户操作系统负责 从它的空闲的页空间里分配与初始化一个页面并且向x e n 登记一下即可。另外客 户操作系统对页表只有读取的权利而没有修改的权利,所有的修改操作都需要 x e n 完成。这样就能保证g u e s to s 只能映射它所拥有的页面,保证不会出现越界 访问其它地址空间。为了进一步的减小v m m 软件的干涉开销,x e n 中客户操作系 统可能会汇集一组页更新请求后才陷入一次v m m 中,进行页表更新以分摊每一 次页表项更新的代价。 1 2 3 硬件辅助虚拟化技术 硬件辅助虚拟化技术采用了与软件方式虚拟化技术截然不同的思想,它通过 对对硬件结构进行虚拟化扩展来解决虚拟化中所面临的问题。采用硬件辅助的虚 第8 页 国防科学技术大学研究生院硕十学位论文 拟化技术,可以使得客户操作系统无需修改就可以直接在v m m 软件上执行,同 时也不需要采用类似二进制翻译等技术,因而虚拟化开销较小。目前主流的芯片 提供商都在自己最新的c p u 上增加了硬件辅助虚拟化( h a r d w a r e a s s i s t e d v i r t u a l i z a t i o n ) 技术,从硬件的角度对虚拟化进行扩展支持,如i n t e 的v t i ,a m d 的a m d v 1 4 1 ,i b m 的p o w e r 5 ,6 t 7 心以及s u n 的o p e n s p a r ct 2 t 6 】都包含硬件辅助 虚拟化技术。尽管技术的名称存在不同,但是其基本原理,实现方法基本一致。 下面介绍硬件辅助的c p u 虚拟化和存储虚拟化,硬件i o 虚拟化将会在第3 ,4 章 中进行讨论。 图1 - 6 硬件辅助c p u 虚拟化基本工作原理 1 2 3 1 硬件辅助c p u 虚拟化 硬件辅助c p u 虚拟化技术要求对于传统的c p u 结构进行虚拟化扩展,解决 v m m 软件与客户操作系统的执行特权级的问题以及客户操作系统的特权指令的 处理问题,图1 - 6 是硬件辅助c p u 虚拟化基本工作原理图。 为了支持v m m 软件运行在系统最高特权级,同时不修改客户操作系统运行 级别,目前硬件辅助的c p u 虚拟化技术在传统的c p u 的特权级基础上引入了一级 更高的特权级,如图1 - 6 中的r o o tm o d e 。 v m m 软件执行于新引入的特权级,而客户操作系统仍然执行于特权级o ,新 引入的特权级通常被称为超特权级( h y p e r p r i v i l e g e ) 或者根模式等。下面以i n t e l 的c p u 虚拟化技术为例介绍硬件辅助c p u 虚拟化技术v t x l l j 。 图1 7 虚拟机生命周期切换图 v t x 引入了两种新的c p u 操作模式:v m x 根操作模式以及v m x 非根操作 第9 页 国防科学技术大学研究生院硕士学位论文 模式。v m m 软件运行在v m x 的根操作模式,客户操作系统运行在v m x 非根模 式。v t x 中还定义了两种新的操作模式切换操作,v me n t r y ,v me x i t 操作,v m e n t r y 指的是从v m x 根操作模式到v m x 非根操作模式的切换,即从v m m 软件 切换到客户操作系统模式:而v me n t r y 刚好相反,对应的是客户操作系统到v m m 的切换,如图1 7 所示。 v m 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 c s 主要管理v me n t r y 和v me x i t , 以及在v m x 非根模式下一些与处理器相关的操作【1 1 1 2 5 。 表1 2 硬件辅助c p u 虚拟化系统现场切换代价2 0 】 3 8 g h zp 46 7 22 6 6 g h zc o r e 2d u o v m e n t r y 2 4 0 99 3 7 p a g ef a u l tv me x i t 1 9 3 11 18 6 v m c br e a d1 7 85 2 v m c bw r i t e 1 7 14 4 在非根操作模式下,当执行某些破坏虚拟化安全隔离性的时指令会无条件的 引起v me x i t ;而对于有些操作,如中断,异常等可以通过配置虚拟机运行控制域 决定其处理方式。硬件辅助c p u 虚拟化中,客户操作系统与v m m 软件之问的状 态的切换是由硬件完成的,尽管如此,每次切换的代价仍然比较大,表1 2 是文献 【2 0 1 中关于硬件辅助c p u 虚拟化的现场切换的代价数据。 图1 8 硬件辅助存储虚拟化2 0 】 1 2 3 2 硬件辅助存储虚拟化 硬件辅助存储虚拟化的关键就在于m m u 部件的虚拟化,目前i n t e l 和a m d 第1 0 页 同防科学技术大学研究生院硕士学位论文 都已经推出了各自的m m u 虚拟化技术,如i n t e l 的e p t 和a m d 的n e s t e dp a g i n g , 它们的基本原理相同。 在这两种技术中,v m m 维护用于硬件t l b 失效时进行填充的n e s t e dp a g e t a b l e ,该表用于将客户操作系统物理地址转换为主机物理地址。这种映射机制使 得硬件就能够上就能够完全实现g v a 到h p a 的地址转换过程,即使是在t l b 中 缓存失效的情况下也同样可以,图l 一8 描述了n e s t e dp a g i n g 的地址映射工作过程。 在该技术的支持下可以实现在没有v m m 干涉下,完全由硬件实现g v a 到 h p a 的地址转换过程,相对于软件存储虚拟

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论