(计算机科学与技术专业论文)虚拟机下的io技术研究.pdf_第1页
(计算机科学与技术专业论文)虚拟机下的io技术研究.pdf_第2页
(计算机科学与技术专业论文)虚拟机下的io技术研究.pdf_第3页
(计算机科学与技术专业论文)虚拟机下的io技术研究.pdf_第4页
(计算机科学与技术专业论文)虚拟机下的io技术研究.pdf_第5页
已阅读5页,还剩71页未读 继续免费阅读

(计算机科学与技术专业论文)虚拟机下的io技术研究.pdf.pdf 免费下载

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

文档简介

国防科学技术大学研究生院工学硕士学位论文 摘要 随着硬件技术的进步,虚拟化技术在部件、系统及应用级取得全面发展。i n t e l 和a m d 先后推出的一系列支持虚拟化技术的c p u 从c p u 、m e m o r y 角度对虚拟 机技术起到了极大的推动作用,使得虚拟机环境下很大程度上提高了c p u 和 m e m o r y 的性能。然而在外围设备虚拟化方面,多个虚拟机需要共享使用现有p c i 设备,而这些设备只向上层呈现单一的操作界面,导致虚拟机内对设备进行i o 操 作的性能损失很大。 f o 子系统虚拟化是虚拟技术的重要组成部分,其性能对系统整体性能的提高 有至关重要的作用。本文以性能为着重点,结合测试数据对当今v m w a r e 和x e n 等虚拟机项目中f o 子系统驱动框架进行了分析,并给出相应优化策略:向下迁移 方法将i o 操作过程中的仲裁、复用等机制移近硬件完成以提高i o 性能:旁路方 法尽量减少虚拟机监控器在i o 操作中的参与,因此减少f o 操作过程中虚拟机之 间切换带来的性能损失:设备驱动域方法是将不同类型的设备驱动进行分离,并 实现成一个个更精巧的设备驱动域,提高设备i ,o 的性能。 在设备驱动域的基础上,本文针对网卡设备的特点对网卡设备驱动域进行了 研究,设计并实现了面向上层客户域的网卡设备聚合模型。通过该系统,向上层 的多个客户域提供更强大的网络数据传输服务。网卡设备聚合模型主要对三个方 面提供了支持:网卡设备资源的细粒度划分,向上层客户域提供更细粒度、更精 确的网络带宽;通过自适应的加权调度算法向上提供面向网卡设备传输能力的负 载均衡支持,获得了更高层次的针对设备传输能力的负载平衡效果;通过引入资 源预约因子向上提供资源预约支持,令上层的多个客户域获得区分服务支持。 最后,本文针对测试数据对已实现的网卡设备模型进行了分析讨论。结果表 明t 网卡设备驱动域内的聚合模型能够向上层提供更强大、更精确的设备虚拟化 细粒度划分支持,不但能提高客户域的网络i o 性能,还增强了系统的鲁棒性、提 高了系统的可靠性、可用性。 主题词:虚拟化,向下迁移方法,旁路方法,设备驱动域,设备聚合,细粒 度划分 第i 页 国防科学技术大学研究生院工学硕士学位论文 a b s t r a c t a l o n g 谢t ht h ea d v a n c e m e n to fh a r d w a r e ,v i r t u a l i z a t i o nt e c h n o l o g yh a sg a i n e d w i d e l yd e v e l o p m e n ti nc h i p s e t ,s y s t e ma n da p p l i c a t i o nl a y e r i n t e la n da m dh a v e d e v e l o p e das e r i e so fv i r t u a l i z a t i o ns u p p o r t e dc p u a n dt h et y p e so fc p u c a ni m p r o v e t h ep e r f o r m a n c eo fb o t hc p ua n dm e m o e yi nv i r t u a l i z a t i o ne n v i r o n m e n t h o w e v e r ,t h e i op e r f o r m a n c eh a ss u f f e r dab i gl o s sw h e nv i r t u a l i z i n gt h ef e b r i cd e v i c e s ,a sar e s u l t o ft h eo n l yo n ei n t e r f a c ee x p o r t e db ym o d e mp c id e v i c e s i 0v i r t u a l i z a t i o ni sa ne s s e n t i a lc o m p o n e n ti nt h ev i r t u a l i z a t i o nf r a m e w o r k w h i c h h a sg r e a ti n f u l u e n c eo nt h ep e r f o r m a n c eo ft h es y s t e m t m sp a p e r 缸s td i s c u s s e st h ei 0 v i r t u a l i z a t i o nf r a m e w o r kb a s e do np e r f o r m a n c ew i t ht h et e s tr e s b | t s ,a n dt h e np u t s f o r w a r ds o m ea d v i c et oi m p r o v et h ep e r f o r m a n c e 砀ed o w nm i g r a t i o nm e t h o di st o p l a c es o m eo ft h ei oo p e r a t i o n sn e a rp h y s i c a ld e v i c e ,a n dt h eb y p a s sm e t h o di st o d e c r e a s et h et i m e sv i r t u a lm a c h i n em o n i t o rc o n c e r n e dw i t hi nt h ei 0o p e r a t i o n s n l e d e v i c ed r i v e rd o m a i nm o d e li st os e p a r a t ed o m a i n ob yd r i v e rt y p e s ,a n di n c r e a s et h ei o p e r f o r m a n c e b a s e do nt h ed e v i c ed r i v e rd o m a i nm o d e l ,w es t u d yt h ec h a r a c t e r i s t i co fn e t w o r k d e v i c e ,p r o p o s eg u e s td o m a i no r i e n t e dn e t w o r kd e v i c ea g g r e g a t i o nm o d e l ( g o n a ) ,a n d i m p l e m e n tt h ep r o t o t y p e g o n ac a r lp r o v i d es u p p o r ti n t h r e ea s p e c t s :p r e c i s e g r a n u l a r i t yo f t h en i cr e s o u r c e s ,l o a db a l a n c i n g ,a n dq o s f i n a l l y ,w et e s tg o n aa l l a r o u n d ,a n dt h er e s u l t ss h o wt h a tg o n ac a np r o v i d e m o r ep r e c i s en e t w o r kd a t at r a n s p o r ts u p p o r tt og u e s td o m a i nw h i c hn o to n l yi n c r e a s e t h ep e r f o r m a n c eo fn e t w o r kd a t at r a n s p o r t , b u ta l s oe n h a n c et h e d e p e n d a b i l i t y , m a i n t a i n a b i l i t yo ft h es y s t e m k e yw o r d s :v i r t u a l i z a t i o n ,d o w nm i g r a t i o n ,b y p a s s ,d e v i c ed r i v e rd o m a i n , d e v i c ea g g r e g a t i o n ,p r e c i s eg r a n u l a r i t y 第i i 页 国防科学技术大学研究生院工学硕士学位论文 表目录 表4 1 授权表格式4 0 表4 2m a c 与域i d 对应关系表4 4 表5 1 网卡邱性能测试对比5 7 表5 2t c ps t r e a m 性能测试对比5 8 表5 3u d ps t i 汪舢订性能测试对比5 9 表5 4t c pr r 性能测试对比6 0 表5 5t c pc r r 性能测试对比6 1 表5 6u d pr r 性能测试对比6 2 第1 i i 页 国防科学技术大学研究生院工学硕士学位论文 图目录 图1 1 商用服务器的集约化趋势2 图2 1 分离i o 示意图8 图2 2d o m 0 n a t i v er e a d 性能比较图9 图2 3d o m 0 n a t i v ew r i t e 性能比较图9 图2 4d o m u n a t i v er e a d 性能比较图9 图2 5d o m u n a t i v ew r i t e 性能比较图9 图2 6 直接i o 示意图10 图2 7 多客户操作系统直接i o 示意图。1 1 图2 8e s x n a t i v er e a d 性能比较图1 1 图2 9e s x n a t i v ew r i t e 性能比较图1 2 图2 10p a s s t h r o u g hi o 框图13 图2 1l i o m m u 示意图1 4 图3 1 采用d o w nm i g r a t i o n 方法的i o 框图1 6 图3 2b y p a s s 方法逻辑结构图18 图3 3 利用支持i n f m i b a n d 硬件的b y p a s s 方法示意图1 9 图3 4 现有操作系统内核体系结构。2 3 图3 5 设备驱动域示意图2 5 图3 6 安全硬件示意图。2 5 图3 7 将传统的驱动程序隔离示意图2 6 图4 1 双网卡邦定的拓朴图。3 0 图4 2b o n d i n g 技术逻辑框图3 0 图4 3x e n 下网卡设备。3l 图4 4 网卡驱动域内设备聚合结构图。3 2 图4 5 建立事件通道机制流程3 6 图4 6 通过设备通道请求数据传输3 6 图4 7 建立第一块域共享内存3 7 图4 8 共享i o 设备模型3 9 图4 9 创建网卡设备资源流程图4 5 图4 1 0 数据包发送流程图4 7 图4 1 1 数据包接收流程图4 7 图4 1 2 调度器工作流程图4 8 图5 1c s 交易示意图6 0 第1 v 页 独创性声明 本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得 的研究成果尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含 其他人已经发表和撰写过的研究成果,也不包含为获得国防科学技术大学或其它 教育机构的学位或证书而使用过的材料与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示谢意 学位论文题目:窿丝垫王坠近垫坚砗塾 学位论文作者签名: ! 王墨笔日期:w 年f 月r 3 日 学位论文版权使用授权书 本人完全了解国防科学技术大学有关保留、使用学位论文的规定本人授权 国防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子 文档,允许论文被查阅和借阅;可以将学位论文的全部或部分内容编入有关数据 库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文 ( 保密学位论文在解密后适用本授权书) 学位论文题目:弛蟑坠丝整主:盈墓 学位论文作者签名:! 坌查蔓日期:占咄年f 月f 弓日 作者指导教师摊:商凶魄仉占年m 为日 国防科学技术大学研究生院工学硕士学位论文 第一章绪论 1 1 课题研究背景 虚拟机监视器术语始于第一次引入虚拟化概念的主机世界,它是允许多个操 作系统共享底层硬件资源的一种机制。最早由i b m 公司在2 0 世纪六七十年代提出, 并将v m 3 7 0 ( 第一个虚拟机监视器) 运用于m ms y s t e m 3 7 0 大型机中。之后的发展 起起伏伏,一度由于多任务操作系统的出现而处于停滞状态。9 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 e w o r k s t a t i o n 虚拟机的推出,使对虚拟机监视器的研究再次成为学术界和企业的热 门课题。而使得虚拟机技术再次复苏的最重要原因之一,正是目前计算机硬件的 飞速发展。 现在的时代是网络化时代,对服务器的性能、可用性、易用性和易维护性等 方面提出了越来越高的需求。随着服务器的基本组成元素和体系结构的飞速发展, 如高性能多核处理器及其对虚拟化技术的支持,加之虚拟化技术的逐渐成熟,使 基于虚拟机技术的商用服务器系统已成为可能,结合虚拟机技术的商用服务器系 统相对于传统商用服务器,在灵活性、安全性、普适性和运营成本等方面都具有 天然的优势。 然而,虚拟机监控器的引入给整系统带来了较大的性能折损。i n t e l 和a m d 先 后推出的支持虚拟化的c p u 产品,在芯片级很大程度上解决了c p u 和m e m o r y 方面的性能折损问题。但在对外围设备的i o 性能方面,问题却一直存在。这主要 由于现有的p c i 设备只向上层提供了单一的访问界面,多个虚拟机在对其共享访 问的情况下,会带来巨大的切换开销。本文针对虚拟机i o 子系统部分进行研究, 在对现有虚拟机i o 子系统框架分析的基础上,分别针对高端、低端外围硬件设备 提出了有效的改进策略和方案:向下迁移方法、旁路方法和设备驱动域方法,并 在设备驱动域模型内设计并实现了网卡设备聚合模型。在兼顾整系统可靠性、可 用性的同时,提高了i o 子系统性能。 1 2 虚拟机i o 子系统发展现状 商用服务器是下一代网络的核心基础装备,是信息产业的制高点,是国际计 算机大厂商竞争的焦点。然而,国外企业凭借其技术和规模等方面的优势,占据 了目前中国服务器市场的大部分份额,并几乎垄断了中国的服务器市场。这对于 中国i t 产业的发展,以及国家信息安全,都是一个很大的挑战。从技术发展角度 第1 页 国防科学技术大学研究生院工学硕士学位论文 看,商用服务器正呈现出“集约化”的发展趋势。多核c p u 、集中式的管理、动态 资源匹配、系统高可用性等对服务器将越来越重要。商用服务器的“集约化”及开放 技术逐渐成熟( 如图1 1 所示) ,使得国内企业与国外平等竞争成为可能,因此, 对于国内l t 产业界和科研界来说,是一个重要且难得的发展机遇。 集中化的属务嚣与总量的比较 2 0 0 22 32 0 0 42 c _ 0 52 0 0 62 0 0 7 l 垒绻缀务瓣镂辩黼缫测餐| 缝黧t 辑壤旋! : 苎。麓缀荔襞缀势戮;鱼锯麓l 图1 1 商用服务器的集约化趋势 ( 1 ) 服务器处理器的多核化以及对虚拟化技术支持 2 0 0 5 年a m d 公司双核o p t e r o n 、i n t e l 公司双核x e o n 、s u n 公司的u l t r s p a r c v i 、i b m 的p o w e r 芯片拉开了服务器处理器多核化的序幕。2 0 0 6 年随着操作系统 及其应用软件对多核处理器的进一步支持及优化、6 5 纳米芯片制造工艺的成熟、 i n t e le i s t 及a m dp o w e r n o w ! 为代表的低功耗技术的发展、芯片级虚拟化技术的 成熟等诸多因素,将进一步推动高端服务器处理器的多核化。多核技术已成为 2 0 0 6 、2 0 0 7 年服务器技术的重要技术支点,更多的支持虚拟化技术的多核服务器 处理器也将推出。支持芯片级虚拟化技术的处理器以及多核化的趋势为我们研制 服务器提供了良好的基础。 ( 2 ) i o 互连技术及体系结构的重大变革 随着微处理器、存储器和互联网络的飞速发展,高端服务器系统的i o 性能变 得越来越至关重要;加之越来越多的应用成为i o 密集型,数据频繁地传输于网络 或存储设备之间,所以提高i o 性能迫在眉睫。近年来i o 互连技术及体系结构正 在发生重大变革,相继涌现了p c ie x p r e s s 、r a p i d l o 、h y p e r t r a n s p o r t 、i r f f m i b a n d 等一系列新兴高性能i o 互连技术。 新型i o 互连技术采用基于报文交换的点到点的互连替代共享总线结构,提供 了高带宽、可扩展的i o 互连,克服了传统的共享i o 总线结构的种种弊端,实现 第2 页 跚一一一一一伽。 国防科学技术大学研究生院工学硕士学位论文 了存储和计算的分离。 ( 3 ) 虚拟化技术在部件、系统及应用级的发展现状 国外著名的服务器厂商非常关注虚拟化技术的发展,如i b m 的h y p e r v i s o r 技 术、i n t e l 的v a n d e r p o o l 、a m d 的p a e i f i c a 、v m w a r e 、m i c r o s o f t 的v i r t u a ls e r v e r 和x e n s o u r c e 的x e n 等。 i b m 结合其在虚拟机领域的多年积累,在其p s e r i e s 高端服务器中引入了动态 逻辑分区( d l p a r ) 概念,允许用户以更小的粒度从整个可用资源池中选择组件, 增加了运行的灵活性,实现了m m 按需升级功能( c a p a b i l i t yu p d a t eo nd e m a n d ) , 有效提高了m m 高端服务器的灵活性、可扩展性和可用性。 i n t e l 公司将虚拟化技术与其芯片技术有机结合。2 0 0 5 年1 月2 0 日i n t e l 向外 界公布了代号为v a n d e r p o o l 的支持虚拟化的芯片( 简称v t ) 。v t 分为v t - i ( 支 持i t a n i u m 架构) 和v t - x ( 支持x 8 6 架构) 。v t x 引入了一种新的处理器操作, 称为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 ) 。v m x 操作可以在根状态( r o o t ) 或非 根状态( n o n - r o o t ) 下执行,通常虚拟机监控程序( 、强n 压) 在根状态下执行而客 户机软件则运行在非根状态。在技术支持下,客户机可以运行在其原先希望运 行的优先级( 即优先级o ) 上而v m m 仍能捕获客户机对特定系统资源的访问。 i n t e l 的竞争对手a m d 公司也不甘示弱,于2 0 0 5 年3 月3 0 日向外公布了代号 为p a c i f i c a 的支持虚拟化的芯片。p a c i f i c a 引入了一种新的处理器模式客户机 模式( g u e s tm o d e ) ,和新的内存管理模式分页实模式( r e a lm o d ew i m p a g i n g ) 。p a e i f i c a 采用一个称为虚拟机控制块v m c b ( v i r t u a lm a c h i n ec o n t r o l b l o c k ) 的数据结构用于存放客户机的状态,同时也引入了一条新的指令v m r u n ( v i r t u a lm a c h i n er u n ) 来实现主机世界( h o s tw o r l d ) 和客户机世界( g u e s tw o r l d ) 之间的切换。 v 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 db u g n i o n 和s c o t t d e v i n e 成立了v m w a r e 公司。1 9 9 9 年v m w a r e 推出了业界第一个基于x 8 6 的完全 虚拟化的虚拟机v m w a r ew o r k s t a t i o n 。v m w a r ew o r k s t a t i o n 是一个基于主机模型 的虚拟机,可以在w i n d o w sn t 、w i n d o w s2 0 0 0 和l i n u x 上运行。2 0 0 1 年v m w a r e 推出了面向服务器市场的v m w a r ee s xs e r v e r 和v m w a r eg s xs e r v e r 。v 1 v w a r e e s xs e r v e r 首次提出了称之为“气球( b a l l o o n ) ”的内存管理技术以共享虚拟机之间 的物理内存。v m w a r ee s xs e r v e r 与高端服务器相结合已成功运行6 年多,拥有成 千上万个企业用户,是目前最成功的虚拟机软件。 2 0 0 3 年微软公司从c o n n e c t i x 获得了虚拟化技术。基于该技术微软公司于2 0 0 3 年1 2 月发布了v i r t u a lp c2 0 0 4 。2 0 0 4 年1 2 月微软发布了其服务器虚拟化产品一一 第3 页 国防科学技术大学研究生院工学硕士学位论文 v i r t u a ls e r v e r2 0 0 5 ,微软宣布在其未来的w i n d o w sv i s t as e r v e ro s 中将直接包括 一个监控模型的虚拟机,表明微软对服务器的虚拟机技术寄予厚望。 近年来在开源社区,x e n 虚拟机技术发展飞速。它是由英国剑桥大学计算机 实验室的i a np r a t t 和k e i rf r a s t e r 领导的。i n t e l 、i b m 等服务器厂商也都非常关注 该技术。x e n 引入了管理接口( h y p e r c a l l s ) 和事件( e v e n t s ) 机制,同时引入了 客户机和v m m 之间的共享内存数据交换机制。x e n 将客户机称之为虚拟域 ( d o m a i n ) ,其中虚拟域o 为服务域,拥有绝大部分的i o 资源并向其它虚拟域 提供设备模型以及控制平台。x e n 本身主要基于开源的l i n u x 核心代码移植。所有 原来的x 8 6 应用程序均不需任何修改就可以在x e n 上运行,如x 8 6 的l i n u x 应用 程序可以在x e n o l i n u x 上运行。 虚拟机技术正日益受到i t 业界的重视,尤其是v m w a r e 已经被8 0 以上的全 球财富1 0 0 ( f o r t u n e1 0 0 ) 企业或组织所采纳,随着微软下一代操作系统对虚拟化 技术支持的到来,虚拟化技术必将在高端服务器得到全面应用。 ( 4 ) 基于资源共享的按需动态部署技术逐渐为人们所关注 众所周知,“需求决定价值”。因此按照用户及其应用的实际需求,动态地分配、 调度、聚合和部署共享资源成为值得研究的课题。 动态配置部署的研究始于7 0 年代。随着软件开发技术的发展,动态配置的对 象按照不同的粒度也由进程、对象、分布式构件,逐渐过渡到虚拟操作系统映像。 对基于进程的系统实施动态部署时,由于涉及编译器和操作系统等底层细节,而 且进程之间耦合紧密,因而动态部署难以实现、正确性不易保证、功能有限、性 能较低。对象间也存在耦合紧密的问题。而且基于对象的软件平台一般不为动态 配置的实现提供良好支持。进入9 0 年代后,随着分布式构件技术的出现,对基于 构件的应用进行动态配置部署逐渐成为一个活跃的领域。与基于高端服务器的系 统映像的动态部署相比,进程、对象、分布式构件的动态部署需要着重考虑被部 署实体所处软件环境的状态一致性,其过程较为复杂,相关研究焦点在于部署前 后系统功能的正确性和可恢复性;而基于高端服务器的系统映像的动态部署在保 证系统正确性和可用性的基础上,另一个研究的重点是如何提高按需动态部署的 自动化程度和效率。 除了长期运行的关键业务系统,越来越引起人们关注的自适应、自管理系统 也同样需要动态配置部署技术。目前围绕自适应、自管理系统开展了很多研究, 包括美国国防预先研究计划局( d a r p a ) 于2 0 0 0 年启动的由多家大学和研究机构参 与的d a s a d a ( d y n a m i ca s s e m b l yf o rs y s t e ma d a p t a b i l i t y ,d e p e n d a b i l i t ya n d a s s u r a n c e ) 项目,以及i b m 的自主计算等。各研究项目提出的自适应、自管理系统 具有相似的体系结构,都由系统状态收集部件系统分析部件系统配置部 第4 页 国防科学技术大学研究生院工学硕士学位论文 署部件三类部件组成,从而形成一个闭环反馈控制系统。 随着按需服务( s e r v i c eo nd e m a n d ) 理念的逐渐拓广和延伸,在高端服务器的 动态部署方面,近年来的相关研究工作主要有m mt j w a t s o n 研究中心的o c e a n o 、 d u k e 大学的c o d ( c l u s t e ro nd e m a n d ) 、p u r d u e 大学的s o d a ( s e r v i c eo nd e m a n d a r c h i t e c t u r e ) 等。 c o d 作为一个集群操作系统框架,主要致力于解决集群系统面向不同用户对 软件的多种需求时,如何降低管理的复杂度和代价。基于标准的d h c p 等网络协 议,c o d 将集群划分为拥有各自独立软件、名字空间、访问控制以及网络存储卷 的虚拟集群( v c l u s t e r ) ,支持将节点重新配置并动态分配给v c l u s t e r 。 s o d a 面向的是c n i d 中多个服务器形成的h u p ( h o s t i n gu t i l i t yp l a t f o r m ) 。 s o d a 支持将应用服务创建为一组虚拟服务节点的形式,这种节点作为一个虚拟 机对应的是h u p 中一个实际主机的物理分区。s o d a 具有下述特点:1 ) 按需的服 务创建,即应用服务及其宿主o s 的映像将被按需创建并自动启动;2 ) 更好的服 务隔离,即共享同一个h u p 的服务彼此在管理、容错、防攻击和资源使用几个方 面是相互隔离的;3 ) 集成的服务请求管理,即对于每个服务,服务切换时其请求 将按照特定策略被转接到合适的虚拟服务节点。 o c e a n o 是面向电子商务的为多个用户分配共享资源的管理架构。它将计算资 源划分为多个动态域,基于s l a ( s e r v i c el e v e la g r e e m e n t ) 为每个用户分配一个 域,可随着负载的增减动态调节域中的资源,并支持将域中的服务器进行回收和 再分配。 综上所述,虚拟机技术已成为当今计算机领域的热点技术与话题,虚拟机技 术已经从当初的软硬件调试、服务器整合发展到现代的资源动态部署阶段。而无 论虚拟机技术运用于何种需求,其f o 性能好坏必起到核心的基础性作用。因此, 在这样国内国外的环境下,如何提升现有虚拟机环境下的i o 子系统性能,将对推 动虚拟机技术的发展方面起到至关重要的作用。 1 3 本文主要工作 本文针对虚拟机的i o 框架进行研究,主要进行了以下几个方面工作: 首先,以性能为着重点,结合测试数据对当今v m w a r e 和x e n 等虚拟机项目 中i o 子系统驱动框架进行分析。 其次,在现有虚拟机项目i o 子系统驱动框架基础上给出三种优化策略:向下 迁移方法将i o 操作过程中的仲裁、复用等机制移近硬件完成以提高i o 性能;旁 路方法尽量减少虚拟机监控器在加操作中的参与以减少i o 操作过程中虚拟机之 间切换带来的性能损失;设备驱动域的提出和引入,有效缓解了分离i o 模式中的 第5 页 国防科学技术大学研究生院工学硕士学位论文 i o 瓶颈所带来的性能折损。 然后,在设备驱动域框架下专门针对网卡设备驱动域进行了研究,结合相关 负载均衡算法以及针对虚拟机中i o 子系统的优化策略,设计并实现了面向上层客 户域的网卡设备聚合模型,并在x 8 6 平台上实现了原型系统,不但提高了系统的 网络i o 性能还对设备的细粒度划分提供了支持并对上层客户域提供了q o s 支持。 最后,我们对i o 设备虚拟化的发展进行了讨论并作出展望。 本文的设计和实现基于x 8 6 体系结构,x e n 版本为3 0 4 ,l i n u x 操作系统内核 版本2 6 1 6 。 1 4 论文结构 本文共分六章。 第一章为绪论部分,主要介绍了本课题的基本情况并主要针对虚拟机技术分 析了现今商用服务器的发展趋势; 第二章结合测试数据对当今主流虚拟机产品v m w a r ee s xs e r v e r 和x e n 的i o 子系统驱动框架进行了分析和讨论; 第三章针对虚拟机i o 子系统框架提出了三种优化策略并提出了设备驱动域 模型框架; 第四章在网卡设备驱动域下设计并实现了面向上层客户域的网卡设备聚合模 型; 第五章给出测试数据并对实现的设备聚合模型进行了分析和讨论; 第六章总结了本文的工作,并介绍了下一步研究应该关注的方向。 第6 页 国防科学技术大学研究生院工学硕士学位论文 第二章当前虚拟机i ,o 子系统分析 虚拟化技术在2 0 世纪6 0 年代首次被提出【l 】,一直在高端服务器领域被采用, 如i b m 公司的p 系列和z 系列机器 2 1 。现代计算机硬件具有足够强大的能力来利 用虚拟化技术支持多个虚拟机,并且在每个虚拟机上各自运行单独的操作系统实 例【3 】。随着服务器整合、高可靠、高可信服务等需求的加强,最近几年虚拟机技术 已逐步展现其应用潜力,典型的项目有x e n 、l 4 、v i r t u a l b o x 、v m w a r c 、d e n a l i 等。同时,i n t e l 和a m d 公司也相继开始在自己的c p u 产品中加入对虚拟化技术 的支持。虚拟机架构中最重要的组成部分称为虚拟机监视器( v i r t u a lm a c h i n e m o n i t o r - v m m ) ,它实现在硬件之上并为上层的虚拟机( v i r t u a lm a c h i n e v m ) 提 供虚拟的硬件接口,而且在每个虚拟机中可以同时运行各自不同的操作系统。这 就从功能上对整个系统进行了扩展,提高整个系统的可靠性、可用性,使系统可 维护性更强,对服务器整合、管理、软件测试及调试等方面都提供了更好的支持。 然而,v m m 需要支持多种需求,必然会引发性能上的损失。 传统体系结构中,f o 是一个重要环节,是影响性能的关键部分。如果运行在 v m 上的客户操作系统i o 性能和传统操作系统的i o 性能存在一定差距,就会对 整个系统的执行造成更为显著的影响。这就对i o 子系统部分尤其是块设备驱动部 分提出了很高的要求,必须最小化引入v m m 所带来的i o 方面性能损失。 本章对当前i o 子系统虚拟化框架进行了研究,深入讨论s p l i ti o 和d i r e c ti o 两种技术的优缺点,并给出了详细的性能测试和分析。 2 1 s p l i ti o 框架分析及性能评测 2 1 1s p l i ti o 模型 分离i o 是指将传统的f o 驱动框架分成两部分:一部分在无f o 访问特权级 的v m 中,称之为d o m u ,多个d o m u 内可同时运行各自的客户操作系统为应用 程序提供服务;另一部分在有f o 访问特权级的v m 中,称之为d o m 0 ,为d o m u 提供硬件访问支持【3 1 。 以块设备驱动框架为例,如下图2 1 所示:通过对传统操作系统中驱动部分的 适配,修改后的驱动如可以直接对i o 设备进行访问的驱动模块称之为后端驱动; 反之,若不能直接对i o 设备进行访问,该驱动模块则称之为前端。前端驱动用来 接收d o m u 中上层发来的f o 请求,并将之通过事件通道机制( 多个v m 之间相 互通讯的机制) 传递给后端驱动。后端驱动处理前端驱动发过来的请求,根据请 求调用相应设备驱动程序访问f o 设备为前端服务。 第7 页 国防科学技术大学研究生院工学硕士学位论文 d o m a i n o 有特权级 x e n d ( 核外守护进程) l d o m a i n l 无特权级 后端驱动 l 刖项 泌硼口;h 糖别 物理设备驱动 l j l _ : = i i :崩置:= = :蠢 :jjj 荨r ;- ,i : i :蠹j 。; := = = :毒:砖。 :搿掣j :誊:i ! j - :荨: r 硬件设备 i , 在d o m u 发送f o 请求的同时,将相应的页面地址发送给后端,由后端驱动 直接将数据填入d o m u 中的内存页面以避免数据拷贝。传递页面地址带来的安全 性问题由x e n 中的授权表机制保证,d o m u 向d o m o 提供自己的页面地址同时在 x e n 中注册授权关系p j 。 x e n 2 0 及以上版本把虚拟的设备驱动程序巧妙的分成前端和后端两部分,从 而对应的每一个物理设备,只需要一个有特权的客户操作系统带有驱动就可以了。 这时候该客户操作系统上运行的就是后端。而其它客户操作系统都带了一个可以 和后端通信的前端,并通过与具有对应i o 访问特权的客户操作系统中的后端通 信,最终访问到目标物理设备【4 】。这样,运行在x e n 上的操作系统,相对于每一 个物理设备只要有一个客户操作系统带了设备驱动程序就可以了,x e n 真正实现了 一台电脑上能运行若干个操作系统,并使每一个操作系统都能访问物理资源。 2 。1 2s p l i ti 0 模型性能评测分析 下面给出分离i o 方式下测试数据( 硬件环境:4 路i n t e l x e o n t m3 4 0c p u , 4 + 1 gm e m o r y ,s c s i 硬盘;软件环境:x e n 3 0 i - 4 ;d o m 0 和d o m u 的客户操作系 统为f e d o r ac o r e5 f c 5 ) ,由于d o m 0 中含有可以对硬件直接i o 的后端驱动,读 写性能与操作系统直接运行在硬件上相当。如图2 2 、2 3 所示,经修改后运行在 d o m 0 中的f c 5 的读写性能与直接运行在物理机器上的f c 5 的读写性能进行对比。 前者相对后者的性能损失约在3 以下,总体来说性能损失不大。但运行在d o m u 上的i o 性能损失大约5 0 之多,如图2 4 、2 5 所示: 第8 页 国防科学技术大学研究生院工学硕士学位论文 r e a d ( d o m o ,7 n a ti r e ) 9 奄鸯电零惑零零箩 日1 0 2 4 2 0 4 8 口4 0 9 6 口8 1 9 2 1 6 3 8 4 日2 2 7 6 8 6 5 5 3 6 口1 31 0 7 2 2 5 2 1 4 4 5 2 4 2 8 8 口1 0 4 8 5 7 6 图2 2d o m 0 n a t i v er e a d 性能比较图 w r i t e ( d o - o n a t i v e ) 图2 3d o m 0 n a t i v ew r i t e 性能比较图 图2 4d o m u n a t i v er e a d 性能比较图 w r i t e ( d o m u n a t i v e ) 9 避鸯电彦梦 囝1 0 2 4 2 0 4 8 口4 0 9 6 口8 1 9 2 1 6 3 8 4 曰3 2 7 6 8 6 5 5 3 6 口1 3 1 0 7 2 2 6 2 1 4 4 5 2 4 2 8 8 口1 0 4 8 5 7 6 图2 5d o m u n a t i v ew r i m 性能比较图 因为d o m u 进行y o 不但要通过x e n 转发请求,还会带来虚拟机之间、虚拟 第9 页 伯0 国防科学技术大学研究生院工学硕士学位论文 机与虚拟机监控器之间的场景切换开销。这一类方法,会使整个i o 架构中具有 i o 访问特权的客户操作系统成为瓶颈【2 j ,并且在有大量的i o 请求时更会带来巨 大的v m 间场景切换开销,要远比传统操作系统中核内外切换开销大的多,从而 导致i o 性能的下降,直接影响虚拟i o 子系统的效率。 2 2 d i r e c ti 0 框架分析及性能评测 2 2 1d i r e c ti o 模型 直接i o ( d i r e c ti o ) 是指将驱动部署在v m m 内部,如图2 6 所示:直接 i o 模型框架中主要包括客户端驱动程序( 相对于传统驱动不需修改) 、设备虚拟 层、用于i o 数据传输的虚拟栈、v m m 中直接和底层设备交互的驱动程序以及物 理设备。其中,设备虚拟层主要虚拟出各种设备;i o 虚拟栈主要用于将客户 操作系统的i o 地址映射到v m m 的地址空间,处理v m m 内部的通信,支持客户 操作系统与物理设备之间的i ,o 多路转发,以提供企业级的i o 特性。 客户操作系统 1 客户操作系统驱动程序 i 虚拟设备 瑚棱 物理设簪驱动程序 v m m t 物理设备 图2 6 直接i o 示意图 当客户操作系统发起i o 请求时,直接自陷到v m m ,以达到对物理设备的直 接i o 操作。但是由于i o 设备需要在多个v m 之间共享,而需要通过v m m 的介 入来保证各个虚拟机对设备访问的合法性和一致性,这就导致了虚拟机的每次i o 操作都需要v m m 的介入,如图2 7 所示。例如,v m w a r ee s xs e r v e r t7 j 把当今主流 的硬件驱动都部署在v m m 中,由v m m 内部部署的后端驱动与客户操作系统中 的前端驱动通过系统调用进行通信,同时后端驱动可以在系统中任意的c p u 上执 第1 0 页 国防科学技术大学研究生院工学硕士学位论文 行,使得所有的对物理i o 的访问都在v m m 中被执行。通过v m m 来直接访问i o 设备,能够获得更好的q o s ,以至在v m m 内部实现i 0 的多路复用机制。与分离 i o 相比,性能方面直接i 0 方式更加有效和易于升级;兼容性方面分离i o 更易 于设备驱动程序的复用:故障隔离方面,分离i o 通过将驱动部署在一个特定的 v m 中来达到隔离性,而直接优) 更容易发挥沙箱技术和其他技术的优势,但二者 均需要硬件i om m u 的支持才能达到真正硬件级的隔离【8 j 。 2 客户操作系统客户操作系统客户操作系统 i l 麴鳗鳗熬强l i 魏溺骥獯;|i

温馨提示

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

最新文档

评论

0/150

提交评论