




已阅读5页,还剩72页未读, 继续免费阅读
(信号与信息处理专业论文)基于intel+vtd在安腾平台的高效虚拟io模型的实现与研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 本文在安腾平台( t a n ) 上设计并实现了一种高性能的虚拟i o 模型。该课 题对“虚拟化技术”、“虚拟i o 技术”具有极大的意义。 虚拟技术,是近年来计算机领域最为热门、最为尖端的技术之一。随着v m w a l e 公司于1 9 9 9 年推出第一款虚拟化产品,虚拟技术已经广泛的应用于计算机领域各 个方面,例如数据中心、虚拟服务器、操作系统隔离、应用程序隔离、杀毒软件 等。x e n 是开源社区最成功的虚拟机项目,得到了i n t e l 、i b m 、h p 、富士通、b u l l 、 a m d 等众多公司的支持。作为虚拟技术中核心技术之一的虚拟i o 技术,自设备 模拟虚拟i o 模型以及泛虚拟化设备驱动虚拟i o 模型被引入后,一直没有大的发 展。现在,i n t e l 公司推出了v n 技术,这种局面开始改观。该技术推动了虚拟技 术的研究机构、公司对新的虚拟f o 模型进行探讨、研究。v r - d 技术已经被p c i 组织接受成为下一代p c i 协议的标准规范,本文在安腾平台上首次成功的使用了 v r - d 技术,对以后安腾平台的操作系统、虚拟机设计有借鉴意义。 本文首先介绍了虚拟技术和著名的虚拟机项目,以及当前流行虚拟i o 模型的 原理和实现,分析了它们的优缺点。然后根据安腾平台的硬件特性和x e n 虚拟机 在安腾平台的实现,基于i n t e l 公司的v 卜d 技术,设计了一种高性能的虚拟i o 模 型,并在安腾平台上完成了它的实现。经过测试,该模型得到了优异的性能,满 足了服务器环境对高性能i o 的要求。 目前,本虚拟i o 模型已经成功为x e n 社区所接受,并取得了广泛好评。 关键词:虚拟机,x e n ,v t - d ,虚拟i o a b s t r a c t a b s t r a c t t h e p a p e r i n t r o d u c e sd e s i g na n di m p l e m e n t a t i o no fah i 曲p e r f o r m a n c ev i r t u a lf o m o d e lf o ri t a n i u m t h i ss u b j e c ts t r o n g l ym a k e ss e n s et ov i r t u a l i z a t i o nt e c h n o l o g ya n d v i r t u a li ot e c h n o l o g y v i r t u a lt e c h n o l o g yi so n eo ft h em o s tp o p u l a ra n dc u r i n g - e d g et e c h n o l o g i e so f c o m p u t e rs c i e n c ei nr e c e n ty e a r s s i n c et h ef i r s tv i r t u a l i z a t i o np r o d u c t i o nl a u n c h e db y v m w a r ec o r p o r a t i o ni n19 9 8 ,v i r t u a l i z a t i o nt e c h n o l o g yh a sb e e nw i d e l yu s e di nm o s t a s p e c t so fc o m p u t e rf i e l d ,s u c ha sd a t ac e n t e r , v i r t u a ls e r v e r , o si s o l a t i o n , a p p l i c a t i o n i s o l a t i o n , a n t i v i r u ss o f t w a r ea n ds oo i lx e n i st h em o s ts u c c e s s f u lv i r t u a lm a c h i n e s u b j e c ti no p e ns o u r c ec o m m u n i t y , s u p p o r t e db yi n t e l ,i b m ,u p , f u j i t s u ,b u l l ,a m d a n dm a n yo t h e rc o m p a n i e s v m u a li ot e c h n o l o g y , a so n eo fc o r ec o m p o n e n t so f v i r t u a l i z a t i o nt e c h n o l o g y , h a sb e e nn os i g n i f i c a n td e v e l o p m e n ts i n c ed e v i c ee m u l a t o r v i r t u a li om o d e la n dp a r a - v i r t u a l i z a t i o nd e v i c ed r i v e rv i r t u a li 0m o d e la l ei n t r o d u c e d n o w , v t - dl a u n c h e db yi n t e li sc o m i n g , i tb e g i n s t oc h a n g et h es i t u a t i o n t h i s t e c h n o l o g yp r o m o t e sv i r m a l i z a t i o nr e s e a r c hi n s t i t u t i o n sa n dc o m p a n i e st oi n v e s t i g a t e i n t on e wv i r t u a li 0m o d e l v t - di sa c c e p t e db yp c i s i ga sas t a n d a r do fn e x tv e r s i o n p c is p e c i f i c a t i o n t h ei m p l e m e n t a t i o ni n t h i sp a p e rc a nb eu s e df o rr e f e r e n c eb yt h e l a t e rd e s i g no fo sa n dv i r t u a lm a c h i n eo fi t a n i u m v i r t u a l i z a t i o nt e c h n o l o g ya n dt h ef a m o u sv i r t u a l i z a t i o np r o j e c t sa r ei n t r o d u c e di n t h i sp a p e rf i r s t l y s e c o n d l y , t h ep r i n c i p l ea n di m p l e m e n t a t i o no fc u r r e n t l yp o p u l a r v i r t u a li 0m o d e l sa r ed i s c u s s e d ,a n das i m p l ea n a l y s i so f 吐l e i ra d v a n t a g e sa n d d i s a d v a n t a g e si sd o n e t h e nb a s e do nf e a u r e so fi t a n i u ma n dt h ei m p l e m e n t a t i o no f x e n ,w ed e s i g nah i g hp e r f o r m a n c ev i r t u a li om o d e lw i t hi n t e l sv t - da n di m p l e m e n t i to ni t a n i u mp l a t f o r m t h r o u g ho u rt e s t i n g ,t h em o d e lg a i n sa no u t s t a n d i n g p e r f o r m a n c ew h i c hs a t i s f i e st h eh i g hi op e r f o r m a n c er e q u e s t sf r o ms e r v e rm a c h i n e e n t i r o n m e n t n o w , t h i sv i r t u a li om o d e li ss u c c e s s f u l l ya c c e p t e db yx e nc o m m u n i t y , a n d g a i n e dw i d ea c c l a i m k e yw o r d s :v i r t u a lm a c h i n e ,x e n ,v t - d ,v i r t u a l i o i i 主要符号表 主要符号表 符号、术语、缩写词解释 x e n l 6 4 安腾平台下的x e n 虚拟机 v t dv t 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 ,直接i o 虚拟技术 v 删v i r t u a lm a c h i n em o n i t o r ,虚拟机监控程序 t l b t r a n s l a t i o nl o o k a s i d eb u f f e r ,旁路转换缓存 t r t r a n s l a t i o nr e 百s t e r ,转换寄存器 t ct r a n s l a t i o nc a c h e ,转换缓存 m m u m e m o r ym a n a g e m e n tu n i t ,内存管理单元 p o r tl o端口i o m m i o m e m o r ym a p p i n gi 0 ,内存映射i 0 - i v i r t u a l i z a t i o nt e c h n o l o g yf o ri t a n i u m ,基于安腾架构的虚拟技术 p s rp r o c e s s o rs t a t u sr e 百s t e r ,处理器状态寄存器 v mv i r t u a lm a c h i n e ,虚拟机 h y p e r c a l l 超级调用 s y s c a l l 系统调用 i 、,t i n t e r r u p tv e c t o rt a b l e ,中断向量表 g 朔g u e s tv i r t u a la d d r e s s ,客户机虚拟地址 g p ag u e s tp h y s i c a la d d r e s s ,客户机物理地址 h p ah o s tp h y s i c a la d d r e s s ,宿主机物理地址 m p am a c h i n ep h y s i c a la d d r e s s 同h p a g 刚g u e s tf r a m en u m b e r ,客户机页帧号 a l i i 卟tm a c h i n ef r a m en u m b e r ,宿主机页帧号 p 2 mt a b l e p h y s i c a lt om a c h i n et a b l e ,客户机物理地址到机器物理地址转换表 p g d p a g eg l o b a ld i r e c t o r y ,全局页目录 p u d p a g eu p p e rd i r e c t o r y , 上级页目录 p m d p a g em i d d l ed i r e c t o r y ,中级页目录 盯 p a g et a b l e ,页表 p t e p a g et a b l ee n t r y ,页表项 v h p tv i r t u a lh a s hp a g et a b l e ,虚拟哈希页表 r i d r e g i o ni d ,区标识号 d 队d i r e c tm e m o r y a c c e s s ,直接内存访问 i o t l bi ot r a n s l a t i o nl o o k a s i d eb u f f e r ,i o 旁路转换缓存 h a wh a r d w a r ea d d r e s sw i d t h ,硬件地址宽度 鼎 a d j u s tg u e s ta d d r e s sw i d t h ,客户机地址宽度修正值 i i i 主要符号表 g n wg u e s t a d d r e s sw i d t h ,客户机地址宽度 p c i b a rp c ib a s ea d d r e s sr e g i s t e r ,p c i 基地址寄存器 a c p ia d v a n c e dc o n f i g u r ea n dp o w e rm a n a g e m e n ti n t e r f a c e ,高级配置及 电源管理接口 d m 叭ra c p it a b l ed m a r e m a p p i n gr e p o r t i n ga c p it a b l e ,d m a 重映射a c p i 报告表 d h r dd m a r e m a p p i n gh a r d w a r eu n i t 。d m a 重映射硬件单元 d s s d e v i c es c o p es t r u c t u r e ,设备域结构 r m r rr e s e r v e dm e m o r yr e p o r t i n gr e g i o n ,预留内存区域 i o a p i ci oa d v a n c e dp r o g r a m m i n gi n t e r r u p tc o n t r o l l e r ,f o 高级可编程中断 控制器 l a j p i cl o c a la d v a n c e dp r o g r a m m i n gi n t e r r u p tc o n t r o l l e r ,本地高级可编程 中断控制器 p i ca d v a n c e dp r o g r a m m i n gi n t e r r u p tc o n t r o l l e r ,可编程中断控制器 i v 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名:盈磊日期:钐硌年臼多日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 日期:必年厶月? 日 夕 第一章引言 1 1 课题背景 虚拟化技术作为近年来计算机领域最为热门、最为尖端的技术之一,受到世 界各计算机研究机构、公司和高校的广泛关注。虚拟计算机的概念最早由i b m 公 司在上世纪六七十年代提出,并将其运用于v m 3 7 0 系统中以共享昂贵的m a i n f r a m e 系统【i 】。之后的发展起起伏伏,一度由于分时操作系统的出现而处于停滞状 态。上世纪九十年代随着j a v a 虚拟机的推出,尤其是之后v m w a r e 公司v m w a r e e s xs e r v e r 和v m w a r ew o r k s t a t i o n 虚拟机的推出,使对虚拟机技术的研究再次成为 处理器设计人员、软件设计人员、服务器设计人员和网络安全设计人员的热门研 究课题。美国华尔街日报将v m w a r e 的虚拟机技术评为2 0 0 4 年全球技术创新奖中 软件类第二名。 对于服务器领域,虚拟技术在实现数据中心、云式计算、分布式计算、虚拟 服务器等对硬件平台需求高的项目中得到广泛应用。对于桌面计算机,虚拟技术 的应用模型也开始被探讨、发掘,一些杀毒软件公司推出了基于虚拟机的杀毒技 术,可在不破坏本征系统的情况下运行带风险的代码;企业管理软件方面推出了 基于虚拟机的可信桌面,使大企业内部对于员工桌面电脑的管理和支持变得方便 和有效;对于个人用户,虚拟机被广泛的运用于程序的开发和调试、操作系统内 核学习以及出于安全目的的网上银行应用。随着虚拟技术的进一步发展,其广泛 的应用空间必将进一步被扩展【2 1 。 目前,国际上除v m w a r e 公司外,大部分虚拟机项目仍处于起步或发展阶段。 国外一些学术机构已经开始加大了虚拟机项目的研发力度,如剑桥的计算机实验 室、美国华盛顿大学计算机科学与工程系,推出了像x e n 这样的开源虚拟项目。 在国内,虚拟技术的研究还处于起步阶段,据了解,只有北航、复旦、清华、南 开开始对虚拟技术进行初步研究,但都还处于对已有虚拟项目的学习阶段,相关 文献则更加稀少。 电子科技犬学硕士学位论文 1 2 课题的意义及创新点 随着计算机硬件的飞速发展,c p u 的速度已经越来越快,但i o 设备的发展 一直滞爱。耍翦,在高速服务器中,i o 子系统的性能已经成为整个系统的瓶颈, 大大限制高性能服务的应用。为了能将c p u 等待i o 子系统响应的时间利用起来, 人们弓| 入虚拟技术,在一台服务器上同时运行多个操作系统,以提高c p u 剩用率。 在虚拟机环境下,虚拟i o 的性能是制约整个系统性能的关键。测试表明,虚拟环 境下的纯运算任务已能获得接近无虚拟机环境下运算性能。相对而言,i o 交互频 繁的任务还远远滞后于无虚拟机环境下的i o 性能。虚拟技术发展至今,虚拟i o 技术一崴没有大的进步,仍停留在最初出现的两种虚拟i o 模型上。在目前的虚拟 i o 模型中,人们只能借助软 孚的方法来实现i o 的虚拟化。i n t e l 公霹于2 0 0 7 年 推出了硬件支持的i o 虚拟化技术( v t - d ) ,为虚拟i o 技术的发展注入了新的活力。 有了v t - d 技术的支持,新虚拟i o 模型的实现成为可能,场虚拟技术的变革由 此到来。笔者于2 0 0 6 加入i n t e l 公司的x e n 开源虚拟机项目组,从事安腾平台虚 拟机的研发工作,和同事徐雪飞高级工程师一起,基于i n t e l 公司的v t - d 技术,在 安腾平台下设计了一种高性能的虚拟i o 模型,并完成了该模型的全部实现,对推 动虚拟技术和虚拟i o 技术的发展具有极大意义。 本课题在世界上率先在安籍平台上使用ti n t e l 公司的v t - d 技术,该技术已经 被p c is i g 组织接受,将在下一代p c i 协议中作为标准出现。目前世界上基于安 腾平台的操作系统( 如w i n d o w s 、l i n u x 、h po s 等) 、虚拟机产品都还没有使用 该技术用例。故本课题对今后安腾平台的操作系统、虚拟机产品应用该技术具有 极大的借鉴意义和指导意义。 1 3 论文的工作和安排 本文基于i n t e l 公司的v d 技术,设计并实现了个高性能的虚拟i o 模型。 经过性能测试,该摸型完全满足服务器环境下对高性能虚拟i o 的要求,本文主要 完成了以下工作: 1 ) 对虚拟技术、虚拟i o 技术、以及i n t e l 的公司的”d 技术进行介绍。 2 ) 分析当前流行虚拟i o 模型的缺点。 3 ) 针对2 ) 中的缺点,围绕v t - d 技术,设计一种新的高性能的虚拟i o 模型。 基于在安腾平台虚拟i o 的特点,实现该虚拟i o 模型。 2 第一章引言 5 ) 对该模型进行了性能测试和评估。 论文的章节安排如下: 第一章:引言。介绍课题背景、意义和创新点,以及论文的章节安排。 第二章:概要的介绍了虚拟技术。 第三章:论述了当前流行虚拟i o 模型的原理和实现。 第四章:分析了安腾架构下虚拟i o 的特点。 第五章:本文核心之一,引入了i n t d 公司的v t - d 技术。 第六章:本文核心之二,分析了当前虚拟i o 模型的缺点,针对这些缺点,围绕 v t - d 技术,设计了新的高性能的虚拟i o 模型。 第七章:本文核心之三,在安腾架构上完整实现了该高性能虚拟i o 模型。 第八章:本文核心之四,对本模型的性能进行了分析和评估。 第九章:总结。对论文的工作进行了总结概括,对未来的工作进行了展望。 电子科技人学硕+ 学位论文 2 1安腾处理器 第二章概述 安腾架构( i t a n i u m ,简称i a 6 4 ) 由i n t e l 公司和h p 公司基于p a r i s c 研发而 成。它的设计目标是突破传统架构下的性能限制。为了实现这个目标,安腾架构 引入了一系列新特性,例如:指令级别的并行执行、大寄存器堆、寄存器堆栈、 先进的跳转机制等。安腾架构是纯6 4 位处理器架构,支持完全的6 4 位计算( 6 4 位数据、6 4 位地址) ,主要面向高端服务器和满足大型机计算需求。i n t e l 公司于 2 0 0 1 年推出了首款安腾芯片。不同于i n t e l 公司和a m d 公司后来推出的基于x 8 6 扩展的“位架构( 简称x 8 6 6 4 或a m d 6 4 ) ,安腾架构采用了被称为并行指令计 算技术( e x p l i c i t l yp a r a l l e li n s t r u c t i o nc o m p u t i n g ,简称e p i c ) ,以实现指令级别的 并行计算。同时,安腾架构采用了超长指令字( v e r yl o n gi n s t r u c t i o nw o r d ) ,将指 令级别的并行处理从硬件移到了编译器处理【引。 2 2虚拟化技术概述 2 2 1 虚拟化技术的产生与发展 虚拟计算机的概念最早由i b m 公司在上世纪六七十年代提出,并将其运用于 v m 3 7 0 系统中以共享昂贵的大型机系统。之后的发展起起伏伏,一度由于分时操 作系统的出现而处于停滞状态。上世纪九十年代随着j a v a 虚拟机的推出,尤其是 之后v m w a r e 公司v m w a r ee s xs e r v e r 和v m w a r ew o r k s t a t i o n 虚拟机的推出,使对 虚拟机技术的研究再次成为处理器设计人员、软件设计人员、服务器设计人员和 网络安全设计人员的热门研究课题【4 j 。 对于s u n 公司的u l t r a s p a r c 和i b m 的p o w e r 5 处理器,处理器本身就已经有 对虚拟机技术的支持。但是在i n t e l 推出硬件虚拟技术前,作为今天最主流的也是 每一个计算机领域工作人员最普遍使用的x 8 6 体系结构处理器,如i n t e l 公司的奔 腾系列和a m d 公司的毒龙速龙系列都存在虚拟化漏洞( v i r t u a l i z a t i o nh o l e ) 【4 】。 这使得9 0 年代末之前的虚拟机技术研究均主要集中在泛虚拟化 4 第二章概述 ( p a r a - v i r t u a l i z a t i o n ) 领域,直到v m w a r e 在1 9 9 9 年推出了业界第一个基于x 8 6 的完全虚拟化技术( f u l lv i r t u a l i z a t i o n ) 的系统虚拟机,即v m w a r gw o r k s t a t i o n , 虚拟技术才开始被各大高校和计算机公司重视,并开始研究。此后,各种虚拟机 项目如雨后春笋般的冒了出来,虚拟技术的这时才走上繁荣发展的道路。 2 2 2x e n 开源虚拟机 x e n 开源虚拟机是由英国剑桥大学开发的一个成熟的开源虚拟化产品,它是 基于开源代码的系统虚拟机,最初基于3 2 位x 8 6 体系结构而设计开发,支持同时 运行多至约1 0 0 个虚拟机。x e n 引入的超级调用( h y p e r c a l l s ) 和事件( e v e n t s ) 机制,以及预先定义的虚拟机和虚拟机监控程序( v m m ) 之间的共享内存数据交换 机制都使得新的客户机体系架构具有更高的总体性能,但同时也就注定了它必须 修改客户机操作系统源代码【4 】。 x e n 允许多个客户机运行其上,其中0 号客户机为服务客户机作为v m m 的 扩展提供系统的管理服务。v m m 是x e n 的核心部件,相当于操作系统的内核, 它负责给各客户机分配资源,并调度它们运行。此外,v v i m 拥有部分硬件i o 资 源如定时器设备、中断设备p i c l o c a la p i c i oa p i c 等。其他客户机也可以拥有 部分的i o 资源如硬盘网卡等,拥有物理设备的客户机称为隔离设备驱动域 ( i s o l a t e dd r i v e rd o m a i n ) 或简称设备驱动域( d r i v e rd o m a i n ) 。而普通客户机只 有虚拟设备而不拥有直接的硬件设备资源访问权【4 】【5 1 。 x e n 本身主要基于开源的l i n u x 内核代码移植而来,同时运行其上运行的服 务客户机客户机0 也从l i n u x 移植而来。图1 1 是x e n 的概要模型。 图1 - 1x e 2 q 虚拟机总体架构图 电子科技大学硕十学位论文 2 2 3 泛虚拟化技术 泛虚拟化技术( p a r a v i r t u a l i z a t i o n ) 是一种历史悠久且成熟的的虚拟机技术。 最早的i b mv m 3 7 0 上就已经使用该技术,但它的使用仅仅是为了支持传统的o s , 因此被限制在很小的范卧6 1 。 泛虚拟化技术的核心思想是对运行在客户机中的客户操作系统做某种程度上 的修改,使之对自身所运行的虚拟机环境有一定感知。也就是说,在泛虚拟化环 境下,客户操作系统知道自身运行在虚拟机平台而非真实的硬件平台。泛虚拟化 技术是客户操作系统的兼容性与性能之间的一个折中。采用泛虚拟化技术必须对 客户操作系统做出一定的修改,破坏了它们的兼容性,但往往这种修改可以使客 户操作系统和v m m 更好的交互,从而得到性能上的提升。例如后面3 2 2 节讲到 的泛虚拟化设备驱动i 0 模型。 美国华盛顿大学计算机科学与工程系的s t e v e n d g r i b b l e 领导的d e n a l i 项目和 英国剑桥大学计算机实验室的i a np r a t t 和k e i rf r a s t e r 领导的x e n 项目组实现了 x 8 6 p c 上的泛虚拟化,并且有比完全虚拟化更佳的性能,从而使泛虚拟化技术重 新成为最热门的虚拟化技术之一【4 1 。 2 2 4 全虚拟化技术 全虚拟化技术( f 试1 v i r t u a l i z a t i o n ) 是与泛虚拟化技术相对的概念。其核心思 想是通过硬件技术等方式使未经修改的客户操作系统成功的运行在虚拟机环境 下。也就是说,运行在虚拟机上的客户操作系统对虚拟机环境没有感知,认为自 己是运行在真实的硬件平台上的r 7 1 。 采用全虚拟化技术可以得到很好的客户操作系统兼容性,用户可以像在真实硬 件平台上一样在虚拟机环境下安装和使用操作系统,而无需额外安装特殊驱动。 操作系统的发行商也无需因考虑对虚拟机环境的亲和性而对操作系统进行更改。 在x 8 6 架构虚拟化漏洞弥补之前的完全虚拟化技术,如v m w a r ew o r k s t a t i o n 和m i c r o s o f t 的v i r t u a lp c ,均采用如二进制翻译之类的纯软件实现方法【8 】。它的实 现在性能和复杂度上都存在很大的提高空间。硬件虚拟化技术通过处理器硬件辅 助,捕捉客户机的特权资源操作,对该资源进行虚拟化来实现完全虚拟化技术, 具有更好的性能。例如后面4 2 1 节介绍的v r - i 就是通过硬件辅助来实现全虚拟化 的一种技术。 6 第二章概述 2 3 国外其它最新虚拟化软件发展状况 2 3 1v m w a r e 1 9 9 8 年1 月,s t a n f o r d 大学的m e n d e lr o s e n b l u m 教授带领他的学生e d o u a r d b u g n i o n 和s c o t td e v i n e 以及多年来对虚拟化技术及虚拟机的研究成果成立了 v m w a r e 公司。今天v m w a r e 是这个市场上的领航者和全球增长最快的软件公司之 一,其首先提出并采用的气球驱动程序( b a l l o o nd r i v e r ) ,影子页表( s h a d o wp a g e t a b l e ) ,虚拟设备驱动程序等均已被后来的虚拟机采用,如x e n 9 1 。 2 3 2m i c r o s o f t m i c r o s o f t 在2 0 0 3 年2 月收购了c o n n e 圮t i x 公司,后者基于m a c i n t o s h w i n d o w s 的v h - t u a lp c 可以使用户在m a c i n t o s h w i n d o w s 机器上运行w i n d o w s 及其应用程 序,而v i r t u a ls e r v e r 则是一个面向服务器领域的主机模型v m m 。最新的基于 w i n d o w s 的产品是m i c r o s o f tv m u a lp c2 0 0 8 和v i r t u a ls e r v e r2 0 0 8 4 】【10 1 。 2 3 3k v m k v m ( k e r n e l b a s e dv h t u a lm a c h i n e ) ,基于内核的虚拟机,是l i n u x 世界中最新 的一种利用硬件的虚拟技术在x 8 6 平台上实现完全虚拟技术的虚拟机项目。它由 一个可加载的内核模块k v m k o 和k v m i n t e l k o ( 或k v m a m d k o ) 构成,前者提供 核心的虚拟架构,后者为处理器相关的内核模块。同时,k v m 需要一个修改过的 q e m u 模拟器运行在用户态,以提供设备模拟器等功能。目前k v m 已正式被l i n u x 社区接受,其代码在2 6 2 0 内核版本发布时被加入到内核源码树。k v m 作为开源 世界的一颗新星,被众多公司广泛关注。 7 电子科技火学硕士学位论文 第三章当前流行的虚拟i 0 模型 3 1 什么是虚拟i 0 模型 虚拟i o 模型,是虚拟机提供给运行其上的客户机进行i o 操作机制的统称。 不同于运行在真实硬件平台的操作系统,运行在虚拟机上的客户操作系统一般不 能直接访问真实硬件,而必须通过某种设备模拟程序对硬件进行模拟,或由v m m 本身代理访i 司【1 1 】。 图3 1 概要的显示了在真实硬件平台上,操作系统发起i 0 操作的流程。通常 是应用程序( 或进程) 发起一个i o 请求,如读磁盘,通过系统调用,陷入到内核 态。此时操作系统的i o 分发子系统接管该i o 请求,在进行一系列处理后,i o 分发子系统代理应用程序将i 0 请求递交到相应的设备驱动程序。驱动程序根据硬 件的设备规范手册,通过p o r ti o 或m m i o 方式,向硬件发起i o 操作。此时请求 i o 的应用程序( 或进程) 被阻塞。硬件完成i o 操作后,通常会以中断的方式通 知驱动程序,驱动程序再将结果递交给上层的i 0 分发子系统,再由它返回给应用 程序。至此,一次i o 操作完成。 图3 - 1 无虚拟机环境i 0 概要图 在虚拟机环境下,通常有若干客户机同时运行在一个真实硬件平台上,此时, 第三章当前流利的虚拟i o 模型 各个客户机对硬件的访问,必须由虚拟机监控程序代理,以实现隔离。图3 2 为虚 拟机i o 模型的概要图。 图3 2 虚拟机环境下i o 概要图 从图中可以看出,对于客户操作系统中的应用程序来说,它发起i o 操作的流 程和在真实硬件平台上的操作系统是一样的。整个i o 流程有所不同的在于设备驱 动访问硬件这个部分。对于不同的虚拟i o 模型,客户操作系统中的设备驱动有不 同的访问方式。如采用设备模拟虚拟i o 模型,驱动访问硬件的方式和在真实硬件 平台上完全一样( 见3 2 1 节) 。采用泛虚拟化设备驱动i o 模型,则必须使用特殊 的驱动程序才能发起i o 操作( 见3 2 2 节) 。无论是哪种方式,客户操作系统的i o 请求最终必须由v m m 截获并代理。v m m 会根据不同的虚拟i o 模型,采取不同 的i o 分发策略【5 1 。 3 2 当前流行的虚拟i o 模型 从上一节的论述中可以看出,在虚拟机环境下,客户操作系统的i o 是由虚拟 机监控程序代理完成的。在虚拟机技术发展过程中,有两种虚拟i o 模型被广泛采 用,它们是设备模拟虚拟i o 型和泛虚拟化设备驱动i o 模型。为了弄清它们的工 作原理,再接下来的两个小节中,会基于x e n 开源虚拟机对两种模型进行分析和 阐述。 9 电子科技人学硕士学位论文 3 2 1 设备模拟虚拟i o 模型 虚拟机技术的一个主要任务是,在一个真实硬件平台上同时运行多个未经修 改的操作系统( 如多个w i n d o w s ) 。在客户机操作系统中的设备驱动看来,它是独 享整个硬件设备的,但实际上真实的硬件只有一份,为了不发生冲突,虚拟机的 i o 模型必须能够模拟出多个硬件设备供客户机操作系统使用。驱动程序和硬件设 备交互不外三种方式:p o r ti o 、m m i o 以及中断。只要能截获客户操作系统对硬 件的所有i o 请求,根据硬件设备规范模拟相应的操作,并将操作的结果返回给客 户操作系统中的驱动程序,就能让客户操作系统认为自己正确并成功的操作了硬 件。这就是设备模拟i o 模型的主要思想【8 】【1 2 】。图3 3 给出了x e n 虚拟机中设备 模拟i o 模型的实现,在本节的后面内容中,会根据该图阐述此模型的原理与实现。 图3 - 3 设备模拟虚拟i o 模型概要图 如图所示,当客户操作系统n 中的设备驱动发起一次i o 操作时,首先会被 v m m 中的i o 操作截获代码( 后简称截获代码) 捕获,在进行一系列的译码后, 截获代码将此次i o 操作的具体信息( 如端口号、数据长度等) 填写在一个称为i o 共享页的页面中。i o 共享页是截获代码和设备模拟器都能访问的一个特殊页面, 它被用来在两者之间交换信息。然后,截获代码通过一种名为事件通道的机制通 知设备模拟器。设备模拟器是运行在客户机0 中的一个应用程序,它由各种硬件 设备的模拟程序( 如i d e 模拟程序、网卡模拟程序等) 组成,负责模拟各种硬件 的行为,并可以通过客户机0 中的设备驱动访问真实硬件。由此可以看出,客户 机o 在x e n 虚拟机中有着特殊的地位,在所有运行在v m m 上的客户机中,只有 它能够对真实硬件进行访问,其它客户机对硬件的访问都由设备模拟器模拟。设 备模拟器在收到来自事件通道的通知后,会访问i o 共享页以获得此次i o 操作的 l o 第三章当蔫浚琴娃的虚拟姗摸型 具体信息,并由相应的硬件模拟程序进行模拟相应i o 操作。产生的结果,会被设 备模拟器写阐到f o 共享页中,经由事件通道通知v m m 中的截获代码。然后,由 截获代码会从i 0 共享页中读出此次i 幻操作的结果,返阐给客户操作系统n 中的 驱动程序。至此,客户操作系统成功的完成了一次i o 操作。 值得注意的是,当截获代码捕获了客户机n 的i o 操作后,会将它阻塞在v m m 中,并通知v m m 的调度器调度其它客户机运行。直到截获代码从i 0 共享页中取 得了结果并返回后,客户机n 才能再次得到运行。此努,对于像d m a 这样的大 数据量的异步i o 事件,设备模拟器会直接将结果通过内存映射的方式写入到客户 机n 的内存中,并壹截获代码向客户机n 注入一个虚拟中断,通知d m a 的完成, 真实的模拟了硬件的行为。 3 2 2 泛虚拟化设备驱动虚拟i o 模型 泛虚拟化设备驱动i o 模型的主要思想是,在客户机n 中安装一个( 或多个) 知道自身运行在虚拟机环境下的前端驱动,接管客户视n 对某一类型设备的访问, 并与运行在客户机0 中的后端驱动通信,满足客户机n 对硬件的访问要求【5 1 1 13 1 。 图3 4 绘出了x e n 虚拟机中泛虚拟化设备驱动i o 模型的实现,在本节的后面内 容中,会根据该图阐述此模型的原理与实现。 图3 4 泛纛拟化设备驱动虚拟i o 模型概要图 如图所示,安装在客户机n 中的前端驱动,是针对某一类型设备( 如网卡、 磁盘) 的特殊驱动,它负责接管客户操作系统n 对该类型设备的所有访问。当客 户操作系统n 对前端驱动接管的设备发起一次i o 操作时,前端驱动首先将i o 请 电子科技大学硕士学位论文 求的具体信息存入环形缓冲区中,再通过v m m 提供的h y p e r c a u ,通过前面提到 的事件通道通知运行在客户机0 内核中的后端驱动。后端驱动在收到通知后,先 从环形缓冲区取得i o 请求的信息,并调用同样运行在客户机0 内核中的设备驱动, 发起真实的i o 操作( 前面已经提到,客户机0 是唯一可以直接访问硬件的特殊的 客户操作系统) 。当后端驱动取得了i o 操作的结果后,会将结果存入环形缓冲区, 并由事件通道通知i o 操作完成,由前端驱动从环形缓冲区取得结果并返回给客户 操作系统n 。至此,客户机n 的一次i o 操作成功完成。 最后,泛虚拟化设备驱动v o 模型还引入了授权表这一高效的数据交换手段。 在虚拟机环境中,不同的客户机只能访问v m m 分配给自己的内存,从而实现了 操作系统间的隔离。通过授权表,客户机n 可以授权客户机0 ( 或其它客户机) 访问自己的内存中的某些页面,当进行大数据量传输的时候,可以通过这种方式 实现零拷贝。例如网卡收包的时候,前端驱动可以提供一些位于地址p 1 的页面a , 后端驱动提供同样大小位于地址p o 的页面b 。页面b 收到了网卡通过d m a 传输 过来的数据包后,后端驱动通过授权表将页面b 交换到地址p 1 ,同时将页面a 交 换到地址p o ,这样,客户机n 再次访问位于地址p 1 的页面时,就得到了网络数 据包的内容,从而完成了数据的零拷贝。 1 2 第四章交腾架构下的虚拟i o 第四章安腾架构下的虚拟i 0 4 1 安腾架构的i 0 模型 4 1 1 端口i o 安腾架构采用的和i a 3 2 架构相同的地址空间模型寻址p o r ti o 。i a 3 2 架构有 两个i o 模型:6 4 k 的p o r ti o 地址空间和m m i o 。对于基于安腾指令集的c p u , i a 3 2 架构中的6 4 k 端口1 0 地址空间将被映射到处理器的6 4 位物理地址空间中, 如图4 1 所示: f or v l ,o m e h ? 叁l 图4 1 安腾架构端口i o 映射图 如图可见,6 4 k 的p o r ti 0 地址空间被映射到了6 4 m 的物理地址空间卜,进 而映射到6 4 m 虚拟地址空i 、自j 。不同于i a 3 2 架构,安腾架构指令集中没有i n 、o u t 这样的i o 指令,而是使用l o a d s t o r e 指令直接访问6 4 m 虚拟地址空问。t l b 通过 冒 协 o 2 一 电子科技人学硕士学位论文 安腾架构的虚拟地址机制,对i o 访问的访问权限、脏页、保护字、区域标识符等 属性进行检验和控制【引。 映射到6 4 m 虚拟地址空间的端口,以每4 个端口为一组,占用一个4 k 的页 面,则所有端口分布6 4 m 地址空间中的1 6 3 8 4 个页面上。这样的设计将安腾平台 上p o r ti o 的访问方式与m m i o 的访问方式统一起来,简化了i o 的编程模型。虽 然产生了一点的地址空间浪费,但对于安腾架构拥有的2 6 4 字节地址空间来说,这 点损失是微不足道的。 由于6 4 k 的i o 地址空间被扩展到了6 4 m 地址空间上,c p u 的m m u 通过 t l b 进行端口地址的转换。其转换流程如图4 2 所示: 图4 - 2 安腾架构端口号到地址映射过程图 对于安腾架构,可以用以下公式完成端口号到端口虚拟地址的转换: p o r t v i r t u a l a d d r e s s = i o b a s ei ( p o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年化妆品品牌推广经理营销能力考核试卷及答案解析
- 2025年家政服务专业初级考试技巧与预测题分析
- 2025年应急救灾无人机笔试高频题解宝典
- 2025年广播电视节目制作师技术水平测试试题及答案解析
- 2025年电子商务运营专员职业技能考核试题及答案解析
- 2025年水管员灌渠方向面试冲刺题
- 课件不准修改的原因
- 2025年工业机器人编程题集
- 机电提升运输安全知识培训课件
- 2025年农发行招聘笔试高频考点预测题
- 肩关节运动康复新策略-洞察及研究
- 神奇的艾草教学课件
- 《耳念珠菌医院感染预防与控制专家共识(2025)》解读 2
- 环保废气基础知识培训课件
- 2026届广州市高三年级阶段训练(8月市调研摸底) 语地理试卷(含答案)
- 网络安全测验题目及答案
- 2025至2030中国密封圈行业项目调研及市场前景预测评估报告
- 2025年幼儿园指南考试题目及答案
- 医美行业监管趋势下2025年美容整形手术的市场需求与消费者行为分析报告
- 《爱的教育》读书分享读书分享2
- 合伙经营教育培训机构合同经典版
评论
0/150
提交评论