




已阅读5页,还剩69页未读, 继续免费阅读
(计算机系统结构专业论文)xen环境下实时迁移结构和算法研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中文摘要摘要近年来,虚拟化技术因为能提供良好的独立性、服务器整合以及易管理性而备受关注。作为虚拟化技术的一个重要特征,实时迁移能够完整、无缝地将一个虚拟机从一台物理服务器迁移到另一台物理服务器,从而实现服务器的动态负载均衡和在线维护。高效动态地迁移虚拟机而不影响虚拟机的正常服务是实时迁移的终极目标。目前实时迁移技术的难点和重点是如何减少迁移时间和宕机时间。作为x 8 6 架构下一款性能优秀的开源虚拟机,x e n 具有巨大的发展潜力。它支持准虚拟化和硬件辅助的全虚拟化技术。本文以x c n 为实验平台研究虚拟机实时迁移的改进工作,研究重点是提出减少宕机时间和适当减少总迁移时间的结构设计、原理、算法和性能测试。本文工作主要包括:( 1 ) 在充分研究x c n 架构、关键技术和源码的基础上,分析了影响实时迁移的内因和外因:内因是当前的实时迁移算法本身在高脏页率的时候表现一般;外因是在实时迁移过程中硬件资源的分配方式不合理。( 2 ) 基于传统的迁移框架,为x c n 设计了合理的实时迁移框架,主要添加了预拷贝模块,并设计了分层拷贝模块和脏页减速模块。预拷贝模块重点处理拷贝前对系统脏页率的判断并根据实际情况来选择迁移算法。低脏页率时采用传统迁移模式,高脏页率时采用分层拷贝模式。( 3 ) 在研究了x c n 实时迁移代码的基础上,分别提出了分层拷贝算法和脏页减速算法。分层拷贝算法重点是如何减少传统迭代过程中重复拷贝相同脏页的问题,通过对内存页重写次数统计来尽量减少不必要的拷贝。减速算法考虑如何适量减少被迁移域的c p u 占有量来降低脏页率。通过分层算法与减速算法的协同工作,在尽可能不影响迁移域服务的前提下,减少了迁移时间。( 4 ) 通过实验来验证本文设计的实时迁移算法的合理性和可行性。实验结果表明,分层算法和减速算法能有效的改善高脏页率情况下的迁移时间和宕机时间。关键词:虚拟化;x e n 实时迁移;预拷贝;v c p i j英文摘要a b s t r a c ts y s t e m - l e v e lv i r t u a l i z a t i o ni sb e c o m i n gi n c r e a s i n g l yi m p o r t a n tb e c a u s eo ft h e i rb e n e f i t si np r o v i d i n gi s o l a t i o n ,c o n s o l i d a t i o n ,c o n t a i n m e n ta n dm a n a g e a b i l i t y a so n eo ft h em o s ti m p o r t a n ta t t r i b u t e so fv i r t u a l i z a t i o n ,l i v em i g r a t i o ni sa b l et oc o m p l e t e l ya n ds e a m l e s s l ym i g r a t eav i r t u a lm a c h i n e f r o mo n ep h y s i c a lm a c h i n et oa n o t h e r ,w h i c ha i m st op r o v i d ee f f i c i e n to n l i n es y s t e mm a i n t e n a n c e ,r e c o n f i g u r a t i o n ,l o a db a l a n c i n ga n dp r o a c t i v ef a u l tt o l e r a n c e i ti sd e s i r a b l et h a tv mm i g r a t i o nb ec a r r i e do u ti nav e r ye f f i c i e n tm a n n e r , w i t hb o t hs h o r tm i g r a t i o nt i m ea n dl o wi m p a c to nh o s t e da p p l i c a t i o n s t h ed i f f i c u l to fl i v em i g r a t i o nn o wi sh o wt oc u td o w nt h et o t a lm i g r a t i o nt i m ea n dd o w n t i m e a sa ne x c e l l e n to p e ns o u r c ev i r t u a lm a c h i n em o n i t o ru n d e rx 8 6 ,x e np r o v i d e sp a r a - v i r t u a l i z a t i o na n dh a r d w a r e a s s i s t a n tf u l lv i r t u a l i z a t i o n t h i sp a p e rf o c u s e so nt h eo p t i m i z a t i o no fl i v em i g r a t i o ni nx e ne n v i r o n m e n t ,i m p l e m e n t i n gan e wa r c h i t e c t u r ed e s i g n ,a l g o r i t h ma n de x p e r i m e n t si no r d e rt or e d u c et h em i g r a t i o nt i m e t h em a i nc o n t e n t so ft h i sp a p e ra r ea sf o l l o w s :( 1 ) a c c o r d i n gt ot h es t u d yo fx e na r c h i t e c t u r e ,k e yt e c h n o l o g ya n ds o u r cc o d e ,t h ep a p e ra n a l y s e st h ef a c t o r st h a ti m p a c tl i v em i g r a t i o n f i r s t ,t h ed e f a u l ta l g o r i t h md o e s n tw o r kw e l lw h i l ed i r t yp a g e sa r ef r e q u e n t ;s e c o n d ,t h ec p us c h e d u l i n gi sn o ta p p r o p r i a t ed u r i n gl i v em i g r a t i o n ( 2 ) p r e - c o p ym o d u l ew h i c hc o n t a i n sl a y e r i n g - c o p ym o d u l ea n dd i r t y - p a g ed e c e l e r a t i n gm o d u l ei sd e s i g n e dt oo p t i m i z ef r a m e w o r kf o rx e nl i v em i g r a t i o n p r e c o p ym o d u l em a i n l yh a n d l e se s t i m a t i n gt h ed i r t y - p a g er a t eb e f o r em e m o r yc o p ya n dd e c i d e sw h e nt ou s el a y e r i n g - c o p ym o d u l e ( 3 ) b a s e do nt h es o u r c ec o d e so fl i v em i g r a t i o ni nx e n ,l a y e r i n g - c o p ya l g o r i t h ma n dd i r t y - p a g ed e c e l e r a t i n ga l g o r i t h ma r ed e s i g n e dt oi m p r o v et h em i g r a t i o np e r f o r m a n c e l a y e r i n g - c o p ya l g o r i t h mc a na v o i dt h er e d u n d a n tc o p yo ft h es a m ed i r t yp a g et h r o u g hc o u n t i n gt h ew r i t et i m e so fm e m o r yp a g ea n ds e p a r a t i n gt h e mt ot h r e el a y e r s d i r t y - p a g ed e c e l e r a t i n ga l g o r i t h mc a nd y n a m i c l ya d j u s tt h ec p ur e s o u r c e s英文摘要a s s i g n e dt om i g r a t e dd o m a i n t h ec o o p e r a t i o no ft h e s et w oa l g o r i t h m sr e d u c e st h em i g r a t i o nt i m ew h i l ek e e p i n gt h ed o m a i ns e r v i c e ( 4 ) v 甜母t h er a t i o n a l i t ya n df e a s i b i l i t yo ft h et w oa l g o r i t h m st h r o u g he x p e r i m e n t s t h er e s u l t ss h o wt h a tl a y e r i n g - c o p ya l g o r i t h ma n dd i r t y - p a g ed e c e l e r a t i n ga l g o r i t h ma r ee f f i c i e n ti nh i g hd i r t y - p a g er a t ee n v i r o n m e n t k e yw o r d s :v i r t u a l i z a t i o n ;x e n ;l i v em i g r a t i o n ;p r e c o p y ;v c p u大连海事大学学位论文原创性声明和使用授权说明原创性声明本人郑重声明:本论文是在导师的指导下,独立进行研究工作所取得的成果,撰写成硕士学位论文= =基塑叠撞王塞时迁整结构麴篡洼婴塞:。除论文中已经注明引用的内容外,对论文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本论文中不包含任何未加明确注明的其他个人或集体已经公开发表或未公开发表的成果。本声明的法律责任由本人承担。学位论文作者签名:铷学位论文版权使用授权书本学位论文作者及指导教师完全了解大连海事大学有关保留、使用研究生学位论文的规定,即:大连海事大学有权保留并向国家有关部门或机构送交学位论文的复印件和电子版,允许论文被查阅和借阅。本人授权大连海事大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,也可采用影印、缩印或扫描等复制手段保存和汇编学位论文。同意将本学位论文收录到中国优秀博硕士学位论文全文数据库( 中国学术期刊( 光盘版) 电子杂志社) 、中国学位论文全文数据库( 中国科学技术信息研究所) 等数据库中,并以电子出版物形式出版发行和提供信息服务。保密的论文在解密后遵守此规定。本学位论文属于:保密口在年解密后适用本授权书。不保密( 请在以上方框内打“4 )论文作者签名:1 孙投殄珊一纷傅斟哆x e n 环境下实时迁移结构和算法研究。i 章绪论早三百了匕1 1 课题背景及研究意义虚拟化是这些年国内外研究的前沿课题。虚拟化技术源于大型机,早在上个世纪7 0 年代,i b m 就推出了v m 3 7 0 ( v i r t u a lm a c h i n ef a c i l i t y 3 7 0 ) 【l 】的虚拟计算系统,在任何一个配置了v m 3 7 0 的环境中,用户能够运行当时流行的任何一种操作系统。当时,人们研究虚拟化的目标是充分利用相对昂贵的硬件资源,通过虚拟机让更多的人能够借助终端设备接触和使用计算机系统。尽管惠普、s u n 公司也跟随i b m 在自己的r i s c 服务器上提供了虚拟化技术,但由于真正使用大型机和小型机的用户还是少数,加上各家产品和技术之间并不兼容,虚拟化技术仍旧不太被公众所关注。随着多核技术的发展,计算机系统硬件性能不断提高,虚拟化技术又重新成为计算机体系结构领域的研究热点,其原因主要有两方面:第一,经过多年的发展,计算机系统在变得越来越强大的同时,也变得越来越难以管理,特别是随着处理器多核化时代的到来,冗余计算资源的引入,这一矛盾势必越来越尖锐;第二,如今的计算模式,已经从以计算机为中心向以用户为中心的服务计算过渡,人们更关心的是计算系统将给用户提供怎样的接口和提供怎样的服务,而用户的需求往往是复杂和多样化的。而虚拟化技术能够灵活组织多种计算资源,隔离具体的硬件体系结构和软件系统之间的紧密依赖关系,实现透明化的可伸缩计算系统架构,提高计算资源的使用效率,发挥计算资源的聚合效能,并为用户提供个性化和普适化的计算资源使用环境。x 8 6 平台上虚拟化技术的实现,首次向人们展示了虚拟化应用的广阔前景【2 】。因为x 8 6 平台可以提供便宜的、高性能和高可靠的服务器。更重要的是,一些用户已经开始配置虚拟化的生产环境,他们需要得到新的管理工具,根据用户计算任务的需求,合理分配和调度虚拟化的计算资源,动态构建及调整满足用户需要的虚拟计算系统。现在虚拟机技术已经广泛应用到许多研究和生产领域,如系统开发测试、服务器管理整合、系统安全、大规模分布式高性能计算【3 】等领域。第1 章绪论在服务器管理整合方面,通过虚拟机技术将原先多个服务器整合到一台实体计算机中,大大提高了物理资源的利用率并方便了系统管理维护工作。它帮助客户降低总拥有成本( t o t a lc o s to f o w n e r s h i p ,t c o ) ,提供对共享基础架构进行访问的能力以及增加基础架构的灵活性。客户的拥有成本因为管理成本的减少、现有资产利用率的增加以及基础架构性能和业务目标之间更好的联系而得到改善。i b m 内部进行的研究显示,通过使用虚拟和系统管理这样的技术,客户最多可将管理成本减少4 0 ,将r r 利用率提高2 5 。毫无疑问,服务器虚拟化已经在r r行业刮起了一场风暴。这项技术为显著减少停机时间、增强灵活性、大幅提高硬件利用效率提供了一种经济高效的方式。作为服务器虚拟化技术当中的热点,虚拟机的“实时迁移 4 1 ( l i v em i g r a t i o n ) 技术可以在保持虚拟机运行的同时,把其从一个物理计算机迁移到另一个物理计算机,并在目的机器上恢复运行,无缝的实现服务整合。由于虚拟机实时迁移宕机时间很短,可使服务中断最小,从而能够实现服务器的动态负载均衡和在线维护,并提供了一种前瞻性容错方案。它是虚拟机应用中最引人注目和最有价值的应用之一。但由于实时迁移对系统实时服务会存在一些负面影响,如何减少宕机时间是其关键技术也是难点技术。因此,本文通过分析实时迁移的算法和结构,针对实时迁移的特殊环境和要求,特别是高脏页率的情况下传统的实时迁移算法存在一些弊端,提出分层算法和减速算法来优化高脏页率环境下的宕机时间。1 2 国内外研究现状虚拟化技术的主要推动力来自于工业界,当前在虚拟化领域比较著名的产品有讧w a r c 【5 1 ,x 肌【6 1 ,v i r t u a lp c 7 1 等。v 1 v w a r e 是e m c 公司旗下独立的软件公司,于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 td e v i n e 创立,最初主要研究在工业领域应用的大型主机级的虚拟技术计算机,公司在1 9 9 9 年推出的v m w a r ew o r k s t a t i o n 虚拟机和2 0 0 1 年的v m w a r ee s xs e r v 一引、v i m w a r eg s x ,使虚拟化技术的研究再次成为学术界和企业界的热门课题。2 0 0 8 年1 2 月,v m w a r ex e n 环境下实时迁移结构和算法研究宣布正式交付新版桌面虚拟化软件v m w a r ev i e w3 ,解决了为员工提供胖客户机( m c kc l i e n t s ) 还是提供瘦客户机( t 1 1 i nc l i e n t s ) 的“桌面困境,这是虚拟桌面计算领域取得的重大进展。2 0 0 9 年5 月,v m w a r e 宣布与英特尔公司合作提供基于i n t e lv p r o 技术的客户端虚拟化平台订w a r ec l i e n tv i r t u a l i z a t i o np l a t f o r m( v m w a r ec v p ) ,这一新产品将作为其桌面虚拟化产品v m w a l ev i e w 的套件之一。删a l e 产品中集成了迁移技术v m o t i o n 【9 】,v m o t i o n 的迁移不需要修改o s和内核。由于它是一个商业化的产品,很多的技术细节都不是开源的。v m o t i o n利用虚拟化技术,把整个运行之上的操作系统进行迁移,每个域都是独立的。这个迁移需要很大的工作量,需要迁移整个的o s 镜像。v m o f i o n 技术提供了很好的网络保持性,在v m k e m e l 中有一个v n i c ( v i r t u a ln e t w o r ki oc o i l t r o l l e r ,虚拟网络接口) ,这个虚拟的网络接口和物理接口是一一对应的,这个v n i c 由v m k c r n e l控制和管理,因此能很好地保证迁移的同时,保证网络服务的不间断,很好地降低了宕机时间。x e n 1 0 1 是由剑桥大学计算机实验室开发的一个o p e ns o u r c e 项目,最初是基于3 2 位的x 8 6 体系结构而设计,支持多至约1 0 0 个运行x e n o l i n u x 操作系统的虚拟机。它已经在开源社区中得到了极大的推动。2 0 0 5 年1 2 月5 日,x e n s o u r c e t i l , 1 ,2 发布了x e n 3 0 版本,这是第一款支持芯片辅助技术的免费h y p e r v i s o r 软件,目前最新版本为x e n 3 3 。v i r t u a li r o n 1 3 】软件公司的v i r t u a li r o n 构建在x e n 系统管理程序上,还有其他一些开源的组件一起构成了一个有效率的虚拟化解决方案,价格却比v l w a r e 低得多,主要占据中小型企业用户市场。v i r t u a li r o n 在企业级管理工具,如按需负载管理( p o l i c y - d r i v e nw o r k l o a dm a n a g e m e n t ) 、动态容量供应( d y n a m i cc a p a c i t yp r o v i s i o n i n g ) 、快速虚拟机迁移( f a s tv mm i g r a t i o n ) 及高级的报告分析工具等方面的研究仍有欠缺。在x e n 中集成的迁移技术,主要包括两种:r e g u l a r 和l i v e - m i g r a t i o n 。r e g u l a r 的迁移需要中断原域的服务,属于s t o p - a n d - c o p y 型的,在n o m a d b i o s 系统引入了l i v em i g r a t i o n 的技术之后,x e n 的迁移机制也采用了l i v em i g r a t i o n 。第1 章绪论v i r t u a lp c 最初由c o n n e c t i x 公司开发,于2 0 0 3 年2 月1 9 日被微软公司收购,并改名为m i c r o s o i tv i r t u a lp c 。v i r t u a lp c 除具有v i v l w a r e 所支持的那些特性外,还提供一个很有用的功能它允许用户撤销先前在v m 中的磁盘上所作的操作,从而使数据恢复变得很容易。但是v i r t u a lp c 不支持l i n u x ,f r e e b s d ,s o l a r i s 等g u e s to s ,而且v i r t u a lp c 的v m 也不支持s c s i 设备,它也不允许用户增加或修改v m 中已设置好的硬件设备。微软在2 0 0 8 年向v i r t u a lp c 中加入了对新技术h y p e r - v 的支持。英特尔的处理器级虚拟化技术v t - x 1 4 】、v t i ,i o 级虚拟化技术v t d 和a m d的a m d v 【1 5 ,1 6 】( p a c i f i c a ) 对x 8 6 平台的虚拟化提供了硬件支持,使得虚拟化在x 8 6 服务器上有了更加光明的应用前景。i n t e l 的在线转移技术f l e xm i g r a t i o n 允许虚拟机在最新的x e o n 处理器一族( 比如p e n t i u m4 、a m dk 7 ) 上实现实时转移。同时,a m d - v 也可以让用户在它的o p t e r o n 处理器以及未来几代处理器上实现虚拟机的在线转移。在国内,虚拟化技术才刚刚起步,到目前为止,国内还没有一款自主设计和实现的虚拟机产品。但是现在国内的很多厂商,比如浪潮、联想等都在做基于国外设计和实现的虚拟机的应用( 大型服务器虚拟化) 的推广。另一角度,从国家的支持力度来看,这几年对虚拟化技术的投入是非常大的,每年都有与虚拟化技术相关的项目立项。由华中科技大学联合北京大学、清华大学、上海交通大学、国防科技大学、浙江大学、江南计算技术研究所、航空科工集团第二研究院共同承担的国家9 7 3 重点科研项目计算系统虚拟化基础理论与方法研究,主要围绕计算系统的动态构建、计算资源使用的高效透明、计算环境的协同普适三个关键科学问题进行研究。分为八个课题开展相关研究工作:计算系统虚拟化理论模型及体系结构,单计算系统资源虚拟化方法,多计算系统资源虚拟化方法,虚拟计算系统普适化运行环境,虚拟计算系统安全可信机制,虚拟计算系统评测理论与方法,基于高效能计算机的虚拟化技术以及虚拟化仿真系统应用。目前已取得一定研究成果。x e n 环境下实时迁移结构和算法研究1 3 论文结构及主要工作本文以虚拟机技术为理论基础,将开源虚拟机监控器x e n 作为研究平台,在对x e n 的源代码进行深入分析和研究的基础上,系统细致地阐述了x e n 的虚拟化架构和关键技术,以x e n 的实时迁移技术为主要研究对象进行改进和实验,以提升迁移性能。本文共分为七章:第一章为绪论,主要介绍了课题的研究背景和意义,以及国内外研究现状。第二章是对虚拟机相关背景知识和技术的介绍。一方面从四个实现层面上对虚拟机进行分类,对每一类挑选一个有代表性的虚拟机软件进行介绍;另一方面从目前的实现技术上把虚拟机技术分为3 类。第三章首先对虚拟机监控器的概念、类型、实现进行简单介绍,接着对虚拟机监控器x e n 的架构和关键技术做了详细阐述,最后介绍了本论文的研究重点一毒- x e n 的实时迁移技术。第四章主要是根据虚拟化技术的需要,提出了基于x e n 的实时迁移总体框架,通过在实时迁移前的预拷贝过程中对脏页位图的分析来决定是否使用分层模块和减速模块,并描述了整体迁移框架图的各个模块的实现流程图和功能。第五章根据上一章提出的实时迁移总体框架,设计出两方面的算法:第一,i :在预拷贝过程中加入脏页分层算法,减小宕机时间和总迁移时间;第二,改进x e n中的c r e d i tc p u 调度算法,通过适当c p u 调度来减少被迁移域的c p u ,提高迭代效率,缩短宕机时间。第六章,性能评测和分析。本章的主要内容是:搭建实验平台,对优化后的迁移性能进行评测,证实在高脏页率时候本文研究的算法可以降低实时迁移的宕机时间。第七章对本文的工作进行了总结,并对下一步的研究工作提出了若干设想。第2 章虚拟机技术概述第2 章虚拟机技术概述2 1 虚拟化概念虚拟化( v i r t u a l i z a t i o n ) 是一个广义的术语,指将不同的资源和逻辑单元剥离,形成松耦合关系的技术。虚拟化技术将硬件资源虚拟成多个虚拟硬件资源提供给不同的系统使用【1 7 1 。它可以扩大硬件的容量,简化软件的重新配置过程。例如,c p u 的虚拟化技术可以将单c p u 模拟成多c p u 并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。近年来在服务器虚拟化领域的发展归纳起来为“三种技术,一个辅助”。三种主流技术分别为:完全虚拟化、半虚拟化和操作系统虚拟化。一个辅助就是硬件辅助虚拟化,这是最近几年才出现的。出于性能和安全的考虑,虚拟化技术现在有向下沉淀的态势,核心功能软件固化到系统固件层。由于系统固件层是独立于操作系统之上的,并且可以通过编程来不断更新升级虚拟化功能支持,因此其好处是不但可以更方便地支持各种操作系统,效率和灵活性也会更高。2 2 虚拟机技术实现层面分类抽象地说,虚拟机技术是通过新增的虚拟中间层截获上层软件对底层接口的调用,并对该调用重新作出解释和处理,以实现异构环境中资源的可共享、可管理和可协同,并支持应用大规模部署、迁移和运行维护。通过虚拟机,可以在原有的硬件资源和操作系统上仿真一台虚拟计算机,使软件可以不经修改直接运行在虚拟机中。根据目前计算机系统的层次结构,在层与层之间引入不同层次的虚拟机技术【1 8 1 9 1 ,主要有:指令集架构( i s a ) 层虚拟、硬件抽象层虚拟、操作系统层虚拟、库函数层虚拟。其中,硬件抽象层虚拟和指令集架构层虚拟同处于硬件层和操作系统层之间。根据指令集与底层真实硬件的异同,硬件抽象层虚拟和指令集架构x 饥环境下实时迁移结构和笄法研究层虚拟又分别被称为同构虚拟机和异构虚拟机。虚拟机技术在计算机系统上的实现层面如图2 1 所示。乡硬件抽象层虚拟图2 1 计算机结构上的虚拟化层面f i g 2 1l a y e r so f v i r t u a l i z a t i o n0 1 1c o m p u t v ra r c h i t e c t u r e2 2 1is 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 设备组成。i s a 层的虚拟化软件的实现方式是截获客户操作系统发出的指令,并把它们“翻译 成h o s t 平台上的可用指令进行执行( 包括处理器内部指令和i o 指令) 。由于这种指令的模拟方式,i s a层的虚拟化技术可以完全模拟一台真实机器所能做的一切。这种虚拟机的架构易于实现,便于模拟多种平台,模拟多种指令集。同时程序也有比较好的鲁棒性。但是有一个致命的问题,完全通过软件模拟v m 的每一条指令,没有硬件的支持,在性能上牺牲比较大。典型的异构虚拟机有b o c h s 2 0 1 、q e m u 2 l 】等。b o c h s 是用c + + 语言编写的开源的x 8 6 平台的p c 模拟器,可以方便地在多种平台上执行x 8 6 指令集的程序。它能够模拟多种版本的x 8 6 系统,如3 8 6 、4 8 6 、p e n t i u m 、p e n t i u mp r o 、s s e 、s s e 2 等指令。b o c h s 解释客户系统从开机到关机的第2 章虚拟机技术概述全部指令,模拟了i n t e lx 8 6c p u 、b i o s 以及p c 设备。因此,在客户操作系统看来,就好像是运行在一台真实的机器上一样。虽然b o e h s 系统的性能问题,使其很难有广泛的应用,但它也在某些方面却有着重要的应用,如在非x 8 6 平台上运行w i n d o w s 系统,进行新开发的操作系统的d e b u g 工作,进行老式x 8 6 系统的兼容性测试等。q e m u 采用动态二进制翻译技术执行指令,可以实现多种i s a 之间的翻译,目前已经实现了x 8 6 、x 8 6 6 4 、a r m 、s p a r c 、m i p s ,p o w e r p c 等体系结构之间的模拟。q e m u 采用了翻译,而不是逐条解释执行的方式,并采用了基本块缓存等优化措施,因此具有优异的性能,q e m u 的模拟速度约为实际机器的2 5 ,大约是b o c h s 的6 0 倍。2 2 2 硬件抽象层虚拟化硬件抽象层( h a r d w a r ea b s t r a c t i o nl a y e r ,h a l ) 虚拟机,又称同构虚拟机。它在一个硬件平台上模拟多个独立的、和实际硬件相同i s a 结构的虚拟硬件系统,每个虚拟硬件系统( 虚拟机) 上可以运行不同的操作系统。这些虚拟机由v m m( v i r t u a lm a c h i n em o n i t o r ,虚拟机监控器) 管理。v m m 运行在虚拟机和硬件之间,并向运行在它上面的虚拟机和客户操作系统提供抽象的硬件视图,让它们感觉自己独占整台物理机器。v m m 负责资源的分发和访问合法性检查等工作。在硬件级虚拟中,v m m 必须截获所有的特权指令并按照引发指令的虚拟机的身份和配置将这些指令映射到底层硬件系统上,保证了上层虚拟机之间的隔离性。v m m 对特权指令的捕获通过两种技术来实现:代码扫描和动态指令重写。由于该类型的虚拟机和实际硬件的i s a 相同,虚拟机的指令不需要翻译或解释就可以直接在底层硬件上直接执行,因此同构虚拟机的性能要远远高于异构虚拟机,在实际中具有更为广泛的用途。目前比较典型的有v m w a r 、x e n 2 2 1 、v i r t u a lp c 、d e n a l i 2 3 】等。一8 一x e n 环境下实时迁移结构和算法研究2 2 3 操作系统层虚拟化操作系统层虚拟化技术典型的应用程序环境包括t 操作系统、用户函数库、文件系统、环境设置等。如果应用系统的这些周边环境保持不变,应用程序自身是无法区分是运行在物理系统内,还是运行在虚拟系统外。操作系统层的虚拟化技术的主要思想在于:在h o s t 操作系统上动态复制操作系统环境,为每一个虚拟机提供一个操作系统环境的拷贝。l i n u x v s e r v 一2 4 1 ,o p e n v z 2 5 1 等都是操作系统级虚拟化解决方案。操作系统级虚拟提供了比硬件级虚拟更好的系统性能,这是通过牺牲一定的隔离性保障为代价的。以l i n u xv s e r v e r 为例,所有的虚拟机共享一个l i n u x 内核,它并没有像硬件级虚拟方案那样允许每个虚拟机都使用一个客户操作系统,也没有虚拟机监视器的概念,所有的v m 使用一个公用的内核,避免了客户操作系统内核和底层v m m 之间的交互带来的性能损耗。每个虚拟机被视为一个上下文,通过操作系统层面的软件设计来实现不同上下文之间的隔离。可以像正常系统那样启动和关闭。对于硬件级虚拟来说,主要的隔离是在硬件抽象层实现的,比如虚拟地址空间,p c i 总线地址,设备和特权指令等。而操作系统级虚拟则是通过操作系统层面的对象来施加的( 如进程i d ,用户i d 等) ,主要通过基于这些对象的上下文分割和访问控制来实现。2 2 4 库函数层虚拟化前几种虚拟方式都可以称为系统级虚拟,而库函数层虚拟则是为应用程序实现一个虚拟机环境,这个环境本身也是操作系统中的一个应用程序。这种类型的虚拟机,大家最熟悉的就是j a v a 虚拟机一v m 。j a v a 程序被编译成由j v m 可以识别的指令形式,称为j a v ab y t e sc o d e 。当代码被执行时,由j v m进行解释或利用j u s t i n t i m e ( j i t ) 编译器在本地机器上执行。类似的编程语言级别的虚拟化技术还有m i c r o s o f t 的n e tc l i 和p c r l6 的p a r r o t ,它们均用来实现程序设计语言的平台无关性。第2 章虚拟机技术概述2 3 虚拟机技术实现方式从实现方式上来讲,x 8 6 服务器虚拟化【凋分为两种,一种是全虚拟化,一种是准虚拟化。全虚拟化方式是不需要修改客户机操作系统,而准虚拟化方式需要修改客户机的操作系统,因而只适合能够修改操作系统内核的l i n u x 作为其客户机。前者以v 1 v l w f l r e 的e s xs e r v e r 为代表,后者以x e n 为代表。随着硬件厂商i n t e l 和a m d 对虚拟化的支持,他们都投入了大量的精力来开发新的特性来简化虚拟化技术的应用,于是出现了硬件辅助虚拟化技术。2 3 1 全虚拟化全虚拟化( f u l lv i r t u a l i z a t i o n ) 是迄今为止唯一不需要硬件或操作系统协助来进行敏感和特权指令虚拟化的技术。全虚拟化技术的优点在于不需要修改g u e s to s 的内核,所以兼容性较好。它提供了最好的虚拟机隔离和安全性,简化了客户操作系统迁移和移植能力,但是运行开销较大。以采用全虚拟化技术的典型虚拟机v m w a r e 为例。实现方式如图2 2 。图2 2 x 8 6 架构全虚拟化f i g 2 2f u l lv i r t u a l i z a t i o no f x 8 6a r c h i t e c t u r e由于x 8 6 架构本身不支持虚拟化,v m w a r e 通过二进制翻译( b i n a r yt r a n s l a t i o n ,b t ) 和直接执行的模式弥补x 8 6 固有的虚拟化漏洞。b t 可以翻译核心指令来代替那些不能虚拟化的指令,通过翻译后的指令直接访问虚拟硬件。同x e n 环境下实时迁移结构和算法研究时,所有用户级指令还是可以直接在c p u 上执行来确保虚拟化的性能。每个v m m为每个虚拟机提供完整的硬件支持服务,包括虚拟b i o s 、虚拟设备和虚拟内存管理。2 3 2 准虚拟化准虚拟化( p a r a - v i r t u a l i z a t i o n ) 旨在解决客户操作系统和h y p e r v i s o r 之间的通讯如何提高性能和有效性。它需要修改操作系统内核,替换掉不能虚拟化的指令,通过超级调用( h y p e r c a l l ) 直接和底层的虚拟化层h y p e r v i s o r 来通讯,h y p e r v i s o r同时也提供了超级调用接口来满足其他关键内核操作,比如内存管理、中断和时间保持。准虚拟化使性能得到很大提升,但是兼容性不够好,由于需要修改操作系统内核,不开源的操作系统无法移植到准虚拟化的v m m 平台上。实现方式如图2 3 。图2 3x 8 6 架构准虚拟化f i g 2 3p a r a v i r t u a l i z a t i o no fx 8 6a r c h i t e c t u r e2 3 3 硬件辅助虚拟化硬件的虚拟化增强包括i n t e lv i r t u a l i z a t i o nt e c h n o l o g y ( v t x ,v t i ,v t d ) 和a m d 的p a c i f i e a ( a m d v ) ,这两种技术都为c p u 增加了新的执行模式r o o t 模第2 章虚拟机技术概述式,可以让v m m 运行在r o o t 模式下,而r o o t 模式位于r i n g0 的下面。客户操作系统的状态保存在x 的虚拟机控制结构( 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 ) 或a m d v 的虚拟机控制块( v i r t u a lm a c h i n ec o n t r o lb l o c k ) 中。硬件支持下的虚拟化技术也可以简化v m m 的设计和实现,并同时提升其对虚拟机的掌控灵活度和力度,相比v 1 v w a r e 那样的纯软件虚拟实现方法会很大程度上提高性能。实现方式如图2 4 。图2 4x 8 6 架构的硬件辅助虚拟化f i g 2 4h a r d w a r e - a s s i s t a n tv i r t u a l i z a t i o no fx 8 6a r c h i t e c t u r e2 4 本章小结本章首先介绍了虚拟化的概念,然后结合几个具体实例对i s a 层、硬件抽象层、操作系统层、库函数层四个实现层面上的虚拟化技术进行分析。在此基础上,对本文将要研究的硬件层虚拟化的三种实现方式进行简要分析比较,明确这三种技术各自的优势和不足lx e n 环境下实时迁移结构和算法研究第3 章x e n 虚拟机架构和关键技术在上一章节中,对虚拟化技术做了比较系统的介绍。本课题选用开源的x e n为研究对象,由于国内对于x e n 的研究尚在起步阶段,关于x e n 的文献资料十分贫乏,本章将从虚拟机监控器【2 7 1 ( v i r t u a lm a c h i n em o n i t o r ,v m m ) 的架构入手,通过x e n 开源源代码网深入分析x e nh y p e r v i s o r 的原理和实现技术【2 9 1 。3 1 虚拟机监控器3 1 1 虚拟机监控器的概念v m m 其实是一个软件层,这个软件层就是在被虚拟执行的操作系统和真实的硬件环境间由软件构架的一套中间层。v m m 的目标主要是提供平台的复制,允许多种操作系统实例运行在同一硬件系统上。v m m 访问、管理所有的硬件资源,也管理客户操作系统和它的应用进程。当客户操作系统执行特权指令或者需要直接和底层硬件交互的时候,v m m 中断其操作,检查正确性,然后代替客户操作系统执行这些操作。这些操作对客户操作系统上的应用软件是透明的。v m m 是虚拟机技术的核心,它的实现模式对整个虚拟机系统影响很大。3 1 2 虚拟机监控器的类型i b m 定义v m m 有三种类型【3 0 3 1 3 2 】:硬件级、操作系统级以及硬件级与操作系统级的混合体( h y b r i dv i r t u a lm a c h i n e ,h v m ) ,习惯上分别称为独立模型、宿主模型和混合模型。三种模型结构如图3 1 所示。1 独立模型( s t a n d a l o n eh y p e r v i s o r )如图3 1 ( a ) ,v m m 直接运行在机器硬件上,客户操作系统( g u e s to s ) 看到的只是虚拟的硬件版本( 硬件的抽象) ,运行在虚拟化环境中的每个操作系统称为客户操作系统。独立的v m m 可以是一个支持虚拟化机制的操作系统或者内核,v m m 为系统中的所有虚拟机执行调度和分配系统资源,并且驱动硬件外设。这种模型的优点是提供了高效的性能,可用性、安全性超过宿主模型,但是要开发硬件驱动,设计实现较为复杂。第3 章x e n 虚拟机架构和关键技术2 宿主模型( o s h o s t e dh y p e r v i s o r )这种模型下,v m m 作为一个应用程序运行在宿主操作系统( h o s to s ) 中,向g u e s to s 提供虚拟的硬件资源。v m m 可以充分利用h o s to s 来进行内存管理、进程调度、硬件驱动和资源管理等,如图3 1 ( b ) 所示。比起独立模型,宿主模型省去了为v m m 开发驱动的环节;缺点是性能比较低,因为g u e s to s 对硬件的访问不仅要经过v m m ,还要经过h o s to s ,带来了额外的开销。3 混合模型( h v b r i dh y p e r v i s o r )如图3 1 ( c ) ,混合模型兼顾了独立模型和宿主模型的长处。即具有独立模型性能高的优点,又能充分利用h o s to s 的设备驱动以简化v m m 的设计和实现。本文研究对象x e n 就是采用该类设计模型。区圈函弼圈豳圈豳 玉画口 ! 亟丑( _ ) s t a n d - a l o n eh y p e r v i s o r圈豳豳豳豳豳坚y 眵他。r _ 一jb 到薯覆爱闺( b ) o s - h o s t e dh y p e r v i s o r圈蚕谰翻翻 a p p s 豳豳圈 一面匦h a r d w a r ei 一一( c ) h y b r i dh y p e r v i s o r图3 1v m m 的三种模型结构f i g 3 1t h r e em o d e lf r a m e w o r ko f v m m3 1 3 虚拟机监控器的实现通常的v m m 实现大致有三个虚拟化层7 欠【3 3 ,3 4 ,3 5 】:1 c p u 虚拟化如果支持直接在物理机器上运行v m ,那么此c p u 的体系结构就是可虚拟化的,同时v m m 会接管c p u 的控制而处于特权模式下,c p u 则处于非特权模式。x e n 环境下实时迁移结构和算
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论