(计算机应用技术专业论文)xen虚拟机存储系统优化.pdf_第1页
(计算机应用技术专业论文)xen虚拟机存储系统优化.pdf_第2页
(计算机应用技术专业论文)xen虚拟机存储系统优化.pdf_第3页
(计算机应用技术专业论文)xen虚拟机存储系统优化.pdf_第4页
(计算机应用技术专业论文)xen虚拟机存储系统优化.pdf_第5页
已阅读5页,还剩75页未读 继续免费阅读

(计算机应用技术专业论文)xen虚拟机存储系统优化.pdf.pdf 免费下载

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

文档简介

浙江大学硕士学位论文 摘要 虚拟机管理器( ,i ,m d ) 在软件层实现硬件抽象,将物理资源映射到多个上层客 户操作系统中。基于虚拟化的平台布置,比如将w e b 服务器,应用程序服务器和 数据库服务器集合到一台物理计算机上,已经成为一种趋势。因此,实现虚拟机 平台上的故障隔离和性能( 公平性) 保证有着重要的意义。但是,目前虚拟机体 系结构下的性能和公平性保证相关的研究很少,而存储子系统方面的研究更为缺 乏。 本文提出两种提升x e n 虚拟机平台存储系统公平性的算法:比例化的c p i j 分 配算法以及基于权重的磁盘调度算法,分析并解决了之前研究没有涉及的问题。 本文前两章介绍背景知识和相关研究工作。比例化的c p u 调度架构在第三章介绍, 而第四章论述了基于权重的磁盘调度算法。论文评估了改良后的系统性能,证明 了这两类方法确实能够有效地提升存储系统的公平性表现。 比例化的c p o 分配算法在系统吞吐量和服务公平性之间做出权衡。论文提出 一种系统拥塞分析机制。当c p u 资源充分时,算法优先考虑系统吞吐量,允许每 个域( d o m a i n ) 使用他们能获得的c p u 资源。但当系统超负荷( c p u 利用率超过 一定阂值) 时,算法使用一套基于回馈的自适应控制系统来保证c p u 在各个域之 间公平分配( 按照权重比例) 。论文引入了测量x e n 虚拟机的分离设备域( i 叻) c p u 使用量的“系统监控程序”,设计了一套“控制器”以计算各个域应得的合理 的c p u 份额。最后,通过布置在内核态的“执行器”实现了c p u 份额的公平设置。 通过这套方法,系统在满载的时候能保证资源的公平分配,实现在该情况下各请 求域性能的“平稳下降”。标准测试工具的分析结果表明该算法较之其他研究工 作提供更令人满意的效果。 本文还提出了基于权重的磁盘调度算法,解决了x e n l i n u x 的c f q 调度算法存 在的公平性问题。称为w c f q - c r r 的改良算法,引入了i o 权重参数,并将磁盘服 务时间作为公平性衡量的标准( 取代了原c f q 算法以请求处理数量为公平性度量 标准的做法) 。同时,新算法将1 0 处理在一个轮转调度周期中多使用的磁盘时问 从下一个调度周期的时间份额中减去,从而实现了各个用户域之间在磁盘服务时 浙江大学颈士学位论文 摘要 问纬度上的公平性保障。另外,当系统中只有一个活动的1 0 请求域时,时间补 偿算法将不被使用,从而最大可能的提升系统的i o 吞吐量。通过实验证明, w c f q - - c r r 调度算法能较好的解决c f o 算法公平性缺失的问题,同时保持和c f q 算 法相近的整体i o 吞吐率。 关键词虚拟机,x e n ,性能保证,公平性,存储q o s ,调度算法,基于反馈 的自适应控制 浙江大学硕士学位论文 a b s t r a c t a b s t r a c t v l m m lm a e h i n em o n i t o rf v m m ) c a l lp r o v i d eh a r d w a r ea b s t r a c t i o nt h a t m u l t i p l e x e sp h ) r s i c a lr e s o u r c e so n t om u l t i p l eu p p e r - l a y e rg u e s to p e r a t i n gs y s t e m s t h e r eh a sb e e nat r e n dt o w a r d sr u n n i n gs e r v i c e su p o nv i r t u a l i z a t i o n - b a s e dp l a t f o r m , s u c ha sc o n s o l i d a t i n gw e bs e r v e l s ,a p p l i e a t i o ns e r v e r so rd a t a b a s es e r v e r so nt h es a m e p h y s i c a lm a c h i n e c o n s e q u e n t l y ,p r o v i d i n gs t r o n gg u a r a n t e eb o t hi nf a u l tc o n t a i n m e n t a n dp e r f o r m a n c ei s o l m i o na m o n gc o n t e n t i n gv i r t u a lm a c h i n e si so fg r e a ti m p o r t a n c e h o w e v e r , f e wr e s e a r c ha c t i v i t i e sa t ec o n d u c t e di np e r f o r m a n c eg u a r a n t e ea r e a - e s p e c i a l l yi ns t o r a g es u b s y s t e mo f v i r t u a lm a e h i n em o n i t o r s t l l i st h e s i sp a p e rp r e s e n t st w oo p t i m i z i n gm e t h o d st os o l v ef a i r n e s sg t m r a n t e e i s s u e si ns t o r a g es y s t e mo f x e nv i r t u a lm a c h i n em o n i t o r :p r o p o r t i o n a lc p ua l l o c a t i o n a n dw e i g h t e dd i s ks e r v i c e , w h i c hh a v en o tb e e np r o p e r l ya d d r e s s e db yp r e v i o u s r e s e a r c hw o r k 。b a c k g r o u n dk n o w l e d g ea n dr e l a t e dw o r ka r ei n t r o d u c e di nc h a p t e rl a n d2 p r o p o r t i o n a lc p ua l l o c a t i o nf r a m e w o r ki sa d d r e s s e di nc h a p t e r3 ,a n dt h e w e i g h t e dd i s ks c h e d u l i n gi sp r e s e n t e di nc h a p t e r4 。p e r f o r m a n c eo f t h e s et w om e t h o d s i sa l s oe v a l u a t e d ,s h o w i n gt h a tc o n v i n c i n gi m p r o v e m e n to fs y s t e mf a i m e s ss t a t u sc a n b ea c h i e v e d t h ep r o p o r t i o n a lc p ua l l o c a t i o na l g o r i t h ms t r i k e sab a l a n c eb e t w e e nt h r o u g h p u t a n ds e r v i c ef a l m e s s ac o n g e s t i o nd e t e c t i o nm e t h o di sp r o p o s e d w h e ne n o u g hc p u l e s o u l _ c ei sa v a i l a b l e ,t h r o u g h p u tt a k e sp r e c e d e n c e ,m a k i n ge a c hd o m a i nu s ec p u r e s o u r c eu pt ot h e i rc a p a c i t y h o w e v e r , w h e nt h es y s t e mi sd e t e c t e dt ob eo v e r l o a d e d ,a f e e d b a c k - b a s e da d a p t i v ec o n t r o ls y s t e mi sl a u n c h e dt om a k es t i l et h a tc p ur e s o u r c ei s p r o p o r t i o n a l l yd e s i g n a t e di n t oe a c hd o m a i n t h ed i s s e r t a t i o ni m p l e m e n t sam o n i t o rt o m e a s u r ec p u c o n s u m p t i o ni ni s e l m i o nd r i v e rd o m a i n ( i d d ) o f x e nv m m ,d e v e l o p s ac o n t r o l l e rt oc a l c n i m ep r o p e rc p ua l l o c a t i o n , a n dd e p l o y sak e r n e l m o d ea c t u a t o rt o e n f o r c ec o r r e c tc p uu t i l i z a t i o nm o d e s o ,g r a c e f u ld e g r a d a t i o nc a nb ea c h i e v e du n d e r c p u p r e s s u r e m a x i m i z i n gi ot h r o u g h p u tw h i l em a i n t a i n i n gf a i r n e s su n d e rp r e s s u r e p r o v i d e sm o r es a t i s f a c t o r yr e s u l t su n d e rs t a n d a r db e n c h m a r k sc o m p a r e dw i t hp r e v i o u s w o r k t h ed i s s e r t a t i o na l s op r o p o s e saw e i g h t e dd i s ks c h e d u l i n ga l g o r i t h m ,a d d r e s s i n g t h ep r o b l e mo fl a c ko fp e r f o r m a n c ei s o l a t i o ni nt h ec f qs c h e d u l i n ga l g o r i t h mo f 浙江大学硕士学位论文 x e n l i n u xk e r n e l o u rn e ws c h e d u l i n ga l g o r i t h m ,w c f q - c r r , i n t r o d u c e s1 0w e i g h t p a r a m e t e ri n t oc f q a n dr e p l a c e sr e q u e s td i s p a t c h i n gm t m b e r w i t l ld i s ks e r v i c et i m ea s t h em e t r i co ff a i r n e s sb e t w e e nc o n t e n t i n g1 0r e q u e s tq u e u e s o v e r u s e dd i s ks e r v i c e t i m ei sc o m p e n s a t e di ne a c hf o l l o w i n gr o u n d ,p r o v i d i n gg o o ds e r v i c et i m eg u a r a n t e e b e t w e e ne a c hd o m a i n i na d d i t i o n , c o m p e n s a t i n gi sn o tu s e dw h e nt h es y s t e mh a so n l y o n ea c t i v er e q u e s t i n gd o m a i n ,s o1 0t h r o u g h p u tc a nb eb o o s t e du n d e rt h i sc o n d i t i o n w c f q - c r rc a na c h i e v eb e t t e rp e r f o r m a n c ei s o l a t i o nt h a nc f qa l g o r i t h ma n d m a i n t a i n1 0t h r o u g h p u tc l o s et oc f qa sw e l l k e y w o r d s v i r t u a lm a c h i n e , x e n , p e r f o r m a n c ei s o l a t i o n , f a i r n e s s ,s t o r a g eq o s , s c h e d u l i n ga l g o r i t h m ,f e e d b a c k - b a s e da d a p t i v ec o n t r o l 浙江大学硕士学位论文图目录 图目录 图1 1 经典的虚拟机体系结构3 图1 - 2x e n 在x 8 6 平台上的特权级别9 图1 - 3x e n 虚拟机体系结构1 1 图3 - 1c p u 分配算法整体结构2 9 图3 - 2c o n t r o l l e r 操作流程图3 8 图3 3 改良前后的c p u 分配算法比较一4 3 图3 _ 4x d d 配置方法( 右图为有时间限制的) 4 4 图3 5 使用c o n t r o l l e r l ( 左) 和c o n t r o l l e r 2 ( 右) 的x e n o p r o f 比较一4 5 图4 1 两次实验的x e n o p r o f 结果比较图4 7 图4 2x d d 测试配置4 9 图4 3d o m l 和d o m 2 中的i o 请求大小相同( 4 k ) 5 0 图4 - 4d o m l 和d o m 2 中的i o 请求大小不同( 4 k 和3 2 k ) 。5 1 图4 5c f o 算法d i s p a t c h 操作伪代码5 5 图4 6 情况一的数学推导5 7 图4 7 情况二的数学推导5 8 图4 8 通用情况下的c f q 公平性衡量5 8 图4 - 9w c f q - c r r 算法伪代码6 0 图4 1 0w c f o - c r r 算法改进6 1 图4 1 1w c f q - c r r 算法公平性推导6 1 图4 - 1 2c f q 算法和w c f q - c r r 算法比较6 3 图4 1 3w c f q - c r r 在仅有一个i o 请求用户域时的效率。6 4 1 1 i 浙江大学硕士学位论文表日录 表目录 表3 1d o m o 中c p u 资源分配不公平对1 0 操作的影响2 4 表3 - 2 修改后的c p u 分配算法的1 0 操作表现4 3 表3 3 两种c o n t r o l l e r 方法比较4 4 浙江大学硕士学位论文第1 章绪论 第1 章绪论 1 1 研究内容 传统的虚拟机研究将重点放在错误限制( f a u l tc o n t a i n m e n t ) 上,保证运行 在虚拟机管理器上的多个虚拟机实例之间能够达成f a u l ti s o l a t i o n ,也就是一 个虚拟机的错误,或者缺陷,不会影响到其它虚拟机程序的正常运行。但是,在 虚拟机研究中安全性和性能保证是同等重要的。目前的研究中,p e r f o r m a n c e i s o l a t i o n ,也就是性能保证,并没有得到足够的重视。性能保证是指,运行在 同一个虚拟机管理器上的多个虚拟机实例之间,不会由于对于软件或者硬件资源 的竞争,而引起运行效率的下降。比如,一台运行i oi n t e n s i v e 程序的虚拟机 不能由于自己的i o 请求数量或者大小的变化,影响同时运行的其它虚拟机程序 的运行效能。所有虚拟机实例都应该能够得到在配置文件中指明的运行资源,并 在时间,请求数量或者带宽等度量标准( m e t r i c s ) 上得到保证。不难看出,性 能保证在虚拟机管理程序上的实现是有重要意义的,但是现有的x e n 虚拟机在这 方面缺乏较好的解决方案,仅有的一些研究也是基于c p u 或者网络i o 领域。 在本文中,作者以x e n 虚拟机管理器的存储系统作为研究对象,从c p i j 分配 和磁盘调度算法两个方面分析并改良虚拟机管理器的存储系统,实现了较好的 p e r f o r m a n c ei s o l a t i o n 保证,能够按照预先指定的服务配置( s e r v i c e l e v e l o b j e c t i v e ,也简称s l o ,或者s l a ,亦即s e r v i c e l e v e la g r e e m e n t ) 为运行在 同一个x e n 虚拟机管理器上的虚拟机程序提供基于预先指定的d i f f e r e n t i a t e d s e r v i c e ( 服务保证) 。1 2 、1 3 小节首先介绍虚拟机相关的基本概念和x e n 虚拟 机体系的一些基本知识。 1 2 虚拟机介绍 1 2 1 虚拟机的历史和重要概念 虚拟机技术最初在上个世纪6 0 ,7 0 年代作为操作系统研究的一部分提出 4 9 。 它被定义为硬件设备的软件模拟实现。一个虚拟机提供了模拟的硬件环境,它能 够同时为多个操作系统服务,而这些操作系统本身不需要任何修改,就可以运行 在虚拟机上( 和直接运行在普通硬件上没有区别) 。当时,主流的计算机系统是 浙江大学硕士学位论文第1 章绪论 大型机( m a i n f r a m e ) ,庞大而昂贵,所以通常的使用模式是多个用户共享一台大 型机的计算资源。但是,分时共享同一个系统并非总能带来理想的效果。在同一 台大型机上运行程序的用户希望得到安全性保证和性能保证。就安全性保证来 说,用户希望能够得到一种“隔离”( i s o l a t i o n ) 的效果。比如,自己运行在大 型机上的程序,不会受到其它用户的异常的( b u g g y ) 或者恶意( r e a l i c i o u s ) 程 序的影响,亦即自身程序的运行稳定性不受其它用户的影响。另一方面,程序性 能的保证也很重要,用户总是希望自己能有效的占用系统资源( c p u ,m e m o r y , i o 资源等) ,但是其它程序的行为很容易影响到本程序对系统资源的利用,比如, 一个程序引起大量1 0 操作,可能会导致其它访问网络或者磁盘系统程序的性能 大幅度下降。但是,大多数用户并没有能力购买多台大型机来实现上面提到的安 全性和性能两方面的保证。同时,使用多台大型机也带来管理和利用效率方面的 问题,本身来说也不是很好的选择。虚拟机技术由此应运而生。i b m 在2 0 世纪 6 0 年代最先开展了虚拟机技术研究,目的是有效的将一台大型机的计算资源在多 个用户之间共享,而这些“用户”是通过“客户操作系统”( g u e s to p e r a t i n g s y s t e m ) 的粒度实现的,这不同于传统分时系统的进程或者线程级别的共享策略。 最著名的虚拟机技术是i b mv m 3 7 0 分时系统 5 1 3 。3 7 0 运行在特有的硬件 系统上。3 7 0 基于完全虚拟( f u l lv i r t u a l i z a t i o n ,具体的虚拟机分类在下 文会详细介绍) 概念它模拟了底层硬件的全部指令集,实现了硬件指令集的 软件再实现。3 7 0 提出了v m m ( 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 ) 的概念,它取代操作系统,作为软硬件体系中最接近硬件设备的软 件层面,将硬件资源分配给上层的操作系统( g u e s to p e r a t i n gs y s t e m ) ,这些 运行的操作系统实例,被抽象为v m s ( v i r t u a lm a c h i n e s ) 。通过底层的v m m 和运 行于其上的v m s ,虚拟机系统为每个提供了“隔离”( i s o l a t i o n ) 保证,解决 了前面提到的传统分时系统存在的问题。 虚拟机体系中的几个重要概念首先需要明确一虚拟机( v i r t u a lm a c h i n e ) , 客户操作系统( g u e s to p e r a t i n gs y s t e m ) 和虚拟机管理器( v i r t u a lm a c h i n e m o n i t o r ) 。首先,虚拟机使用户可以像拥有多台实体计算机一样共享于一台计算 机上,它可以视为是对底层硬件的一个完全受保护的,隔离的拷贝。而客户操作 系统是运行在虚拟机中的操作系统实例,虚拟机设计的初衷就是让运行在其中的 客户操作系统就如同运行在真实硬件上样。而虚拟机管理器是支撑虚拟机实现 2 浙江大学硕士学位论文 第l 章绪论 的底层要素,分发( m u l t i p l e x ) 底层硬件资源,模拟底层指令集,截获客户操 作系统借由虚拟机向它发送的请求,并确保多个虚拟机实例之间的隔离( 包括安 全性和性能方面) 。图1 - 1 中给出了经典的虚拟机体系结构图。 图l - i 经典的虚拟机体系结构 1 2 2 虚拟机的现状和应用场景 进入到2 0 世纪9 0 年代,随着计算机性能的大幅度提升,原先只存在于大型 机上的虚拟机技术得到了更加广泛的应用 1 5 1 2 。同时,虚拟机技术的研究焦 点也从大型机转移到p c 机上。 虚拟机技术现在已经广泛应用到许多研究和生产领域,诸如系统开发测试 2 0 3 4 1 3 ,服务器管理整合( m a n a g e m e n ta n dc o n s o l i d a t i o n ) 6 0 4 , 系统安全 2 5 2 6 3 2 1 ,大规模分布式高性能计算 2 2 6 4 等领域。在服务器管 理整合方面,通过虚拟机技术将原先多个服务器整合到一台实体计算机中,大大 提高了物理资源的利用率并方便了系统管理维护工作,同时,由于虚拟机的动态 转移( d y n a m i cm i g r a t i o n ) 技术 1 7 5 0 ,服务器的运行时负载均衡和动态封 装转移变得更为容易。系统管理员只要备份一个虚拟机镜像( v i r t u a lm a c h i n e i m a g e ) ,就可以快速的布置系统( d e p l o ys y s t e m s ) ,同时通过写时拷贝( c o w , c o p y o n - w r i t e ) 技术,可以轻松的在一台计算机上布置起多个虚拟机,通过这 些虚拟机实现桌面系统的分布式计算平台的管理。现在的多层应用程序( 比如, 一个网上交易平台) 通常包括三个层面,w e bs e r v e rl a y e r ,a p p l i c a t i o ns e r v e r l a y e r ,d a t a b a s es e r v e rl a y e r 。通过将每个层面集合到一个虚拟机中,就可以 3 浙江大学硕士学位论文 第1 章绪论 在同一台物理机器上集中实现多个服务器平台,并通过虚拟机的“隔离”技术, 达到如同在不同机器上的安全性和性能保证。 虚拟机技术在计算机安全研究领域也有重要的价值,目前已经广泛的应用到 诸如入侵检测 2 1 2 6 ,安全隔离 2 5 ,蜜罐系统 5 8 ,系统追踪( s y s t e m t r a c i n g ) 3 4 3 2 等方面。虚拟机的特有属性使它在安全研究领域备受重视。 首先,虚拟机系统将多个客户操作系统集中到同一物理计算机上,使管理更加便 利。对于像蜜罐系统这样的应用领域,研究人员可以容易的加载,删除,停止, 继续( s u s p e n da n dr e s u m e ) 每一个系统,这对于研究被攻击的系统( c o m p r o m i s e d s y s t e m ) 很有用处。比如,由于虚拟机在布置( d e p l o y ) 方面的便利,v r a b l e 等 人采用虚拟机平台开发了p o t e m k i nv i r t u a lh o n e y f a r m 蜜罐系统 5 8 。该系统 采用x e n 虚拟机,并通过最大限度的共享虚拟机镜像( 通过前面提到的c o w 技术) 和快速克隆( f l a s hc l o n i n g ) 技术优化虚拟机的启动和初始化消耗,同时也减 少i o 代价。通过采用这种虚拟机技术,p o t e k i m 虚拟蜜罐系统实现了在仅仅l o 台左右的物理计算机上布置6 4 ,0 0 0 个i n t e r n e t 蜜罐系统。其次,由于每一个虚 拟机都运行在虚拟机管理器上,客户操作系统不再是系统最底层的部件。运行在 虚拟机中的服务器( 比如a p a c h es e r v e r ) 即便受到攻击而引起异常行为,运行 在其它虚拟机上的应用程序也不会受到影响,这是由于虚拟机不具有最高的系统 权限,这就是所谓的f a u l tc o n t a i n m e n t 。人们还可以在删层面观察运行于其 上的虚拟机,了解客户操作系统的进程运行情况、系统调用情况、网络使用情况 等。即便是隐秘的r o o t k i t 修改了客户操作系统的系统日志,研究人员也可以在 比客户操作系统更低层的v b l m 发觉异常情况,这就是所谓的i n t r o s p e c t i o n 技术。 近来,虚拟机技术还应用到了高性能计算领域。尽管虚拟机系统原先主要应 用在资源共享和安全隔离方面,但是由于其易于管理,安全性高,运行时暂停 继续( r u n t i m es u s p e n d r e s u m e ) 和动态迁移等优点,它也开始应用在基于集群 的高性能计算( h p c ) 上。虚拟机系统的上述特点,对于h p c 的性能保证,可扩 展性( s c a l a b i l i t y ) ,系统管理,访问控制( a d m i s s i o nc o n t r 0 1 ) 等方面都有 重要的意义。l i u 3 9 ,h u a n g 3 1 3 等人,将高性能的i n f i n i b a n d 协议实现在k e n 虚拟机上,提出类似d i r e c t i o 的v 删一b y p a s s 技术,为虚拟机在h p c 上的应用提 供了进一步性能保证。 4 浙江大学硕士学位论文 第1 章绪论 虚拟机技术在同一物理机上同时运行多个系统的能力,使得它在系统程序开 发和测试领域有很大的用处。在u s e r m o d el i n u x 中,每一个g u e s to p e r a t i n g s y s t e m 在h o s t 系统上都对应到普通的系统进程,所以,就可以容易的使用g d b 来调试这些客户操作系统,和调试普通的p r o c e s s 没有差别。使用u s e r - m o d e l i n u x 来调试内核,已经是广泛采用的一种技巧。而对于x e n 虚拟机,可以通过 在d o m a i n0 中运行g d b s e r v e r 的方法来实现系统调试。通过虚拟机的使用,内 核调试,或具有r o o t 权限的应用程序开发变得安全而轻松。 1 2 3 主要的虚拟机技术介绍 下面介绍主要的虚拟机技术。首先,笔者对现有的虚拟机技术做一实现层面 上的分类。从虚拟机的本质上来说,无论哪种实现方法,都是提供了一个抽象层, 通过特定的方法将底层资源透明的、公平的映射到上层虚拟机中;截获上层虚拟 机对底层资源的调用,检测调用的合理性,保证对系统资源和特权指令的绝对控 制。现有的虚拟机技术可以分为下面几类: 指令级虚拟 硬件抽象级虚拟 操作系统( 系统调用) 级虚拟,以及, 库程序或者应用程序级虚拟 下面就通过具体的实例来介绍这四种虚拟机设计思想。 1 2 3 1 指令级虚拟 指令级虚拟本质上是指令集模拟,这个指令集可以和所在系统的指令集相同, 也可以不同。比如在x 8 6 平台上实现一个x 8 6 指令集模拟器,然后将应用程序运 行在这个虚拟机上,就想相当于运行在一个真实的x 8 6 处理器上。当然,更复杂 一些的指令级虚拟机可以在a ( 比如x 8 6 ) 处理器平台上模拟b 处理器的指令集 ( 比如m i p s 指令) ,要达到这个目的,就需要在两个指令集之间进行动态翻译和 映射。著名的指令级虚拟机包括b o c h s 和q e 删 5 3 。b o c h s 是一个x 8 6 指令模拟 器,它可以运行在多种平台上,包括x 8 6 ,p p c ,a l p h a ,以及a m d 6 4 。b o c h s 可以 让用户在其它平台上运行x 8 6 程序,比如在a l p h a 处理器上运行w i n d o w s 操作系 统。q e 姗可以看作是b o c h s 的增强,它提供了更快速的指令集模拟,它支持两个 运行模式,用户模式和全系统模拟模式。在前面一种模式中,通过q e m u ,用户可 在一个平台上运行为另一个平台编译的程序。比如,通过q e m u ,可以在x 8 6 平台 浙江大学硕士学位论文第1 章绪论 上,运行m i p s 平台的应用程序。在全系统模拟模式下,类似b o c h s ,它可以在当 前操作系统上运行其它的操作系统,比如在l i n u x 上运行w i n d o w s2 0 0 0 。q e m u 还自带了k q e m u 这个系统模块( 在w i n d o w s 上以d r i v e r 模式存在) ,能够大大加 快全系统模式的模拟效果 1 2 。3 2 硬件抽象级虚拟 硬件抽象级模拟是最早的虚拟机存在方式( 比如,i b m 的v m 3 7 0 就是使用这 种模式) 。概括起来,多个虚拟机通过虚拟机管理器来管理,而后者运行在虚拟 机和硬件之间,通过虚拟机管理器来向运行在它上面的虚拟机和虚拟机中的客户 操作系统提供抽象的硬件视图,使这些虚拟机以及运行在它们之上的客户操作系 统认为自己是运行在独占的物理硬件上。虚拟机管理器进行资源的分发和访问合 法性检测等工作。在硬件级虚拟中,虚拟机管理器必须截获所有的特权指令,并 按照引发指令虚拟机的身份和配置将这些指令转移映射到底层硬件系统上。如 果,无法做到这点,就无法保证上层虚拟机之间的隔离性( i s o l a t i o n ) 。最为著 名的硬件抽象级虚拟机来自v m w a r e 5 9 3 。这里主要考虑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 。前者是一个独立平台,是纯粹的虚拟机管理器实现。e s x s e r v e r 运作在硬件上层,可以把它看作特殊的操作系统,而它上面运行的进程也 是“特殊”的一虚拟机。相比之下,v m w a r ew o r k s t a t i o n 并非是纯粹的虚拟机管 理器,它本身只是在w i n d o w s 或者l i n u x 操作系统中的一个驻留模块( 在w i n d o w s 上通过驱动实现,在l i n u x 上是内核模块) ,通过内核态的模块获得最高权限, 并借用现有操作系统的本地硬件驱动。所以v 1 w a r ew o r k s t a t i o n 是通过h o s t 操 作系统和v a r e 特有模块的协作来实现虚拟机管理器的。客户操作系统不需要 任何修改就能运行在以上两种v m w a r e 产品上。之所以可以支持操作系统的原样 执行,是由于v m w a r e 对x 8 6 平台的指令作了全面支持。x 8 6 平台本身设计的时候 并没有考虑虚拟化的需求,所以,执行部分特权指令时,系统不会自陷( t r a p ) 到最高优先级( r i n go ) ,这给虚拟机管理器的工作带来极大不便。v m w a r e 通过 动态重写( d y n a m i cr e w r i t e ) 技术将这些指令动态修改并引发t r a p ,让虚拟机 管理器可以正确的监视和处理所有特权指令。通过这些技术,v a r e 完全实现了 对x 8 6 平台指令的虚拟化。所以,v a r e 这类技术,也常被称为完全虚拟( f u l l v i r t u a l i z a t i o n ) 。完全虚拟技术的弊端就是较大的运行开销,导致用户通常无 法在一台物理机器上同时运行很多个虚拟机( 一般小于1 0 个) 。所以,研究人员 还提出了另外一种虚拟方法一部分虚拟( p a r a - v i r t u a l i z a t i o n ) ,代表例子就 是d e n a l i 和x e n 虚拟机。来自华盛顿大学的d e n a l i 虚拟机 6 0 方法通过部分虚 6 浙江大学硕士学位论文第1 章绪论 拟技术提供了轻量级的虚拟机实现。部分虚拟的核心思想是修改客户操作系统, 使系统知晓下层虚拟机管理器的存在,并配合虚拟机管理器的操作,从而减小虚 拟机管理器开发难度,消除动态重写之类的大开销操作。这可以视为将客户操作 系统“移植”到虚拟机管理器上的过程。d e n a l i 系统同过l i b o s 的方式来实现轻 量级的客户操作系统以配合底层的虚拟机管理器。但是,该客户操作系统不同于 现有的通用操作系统,它的系统调用接口( a b i ) 和通用操作系统有差别,应用 程序需要修改后才可以在该系统上使用。这使得d e n a l i 的应用受到很大的限制。 来自剑桥大学的x e n 虚拟机 4 2 3 同样也实现了部分虚拟的技术,同时它将常 用的l i n u x ,n e t b s d 系统等移植到x e n 虚拟机管理器上,一方面提升了虚拟机系 统的整体效率,另一方面保证了客户操作系统的a b i 不变,从而保证了对应用程 序的透明。x e n 虚拟机获得了巨大的成功,本文的研究也基于x e n 虚拟机展开。 有关x e n 虚拟机的详细情况将在1 3 节介绍。 1 2 3 3 操作系统级虚拟 操作系统级虚拟本质上是提供了虚拟化的系统调用,所以也称为s y s t e m - c a l l l e v e lv i r t u a l i z a t i o n 。主要的操作系统级虚拟方案包括基于c o n t a i n e r 技术 5 6 的s o l a r i s1 0z o n e 2 ,l i n u xv s e r v e r 1 9 和v i r t u o z z 0 3 等。操作系统级虚拟提 供了比硬件级虚拟更好的系统性能,这是通过牺牲一定的i s o l a t i o n 保障为代价 的。性能和隔离性在虚拟机实现上是一个权衡。以l i n u xv s e r v e r 为例,所有的 虚拟机共享唯一的一个l i n u x 内核,它并没有像硬件级虚拟方案那样允许每个虚 拟机都使用一个客户操作系统,也没有所谓的虚拟机管理器的概念,所有的v m 仅仅使用一个公用的内核,从而减少了客户操作系统内核和底层、删之间的交互 带来的性能损耗。操作系统级虚拟方案中的底层内核常常被人称为c o n t a i n e r , 故操作系统级虚拟方案也称为c o n t a i n e r b a s e ds y s t e m 。每个虚拟机被视为一个 上下文( c o n t e x t ) ,通过操作系统层面的软件设计来实现不同上下文之间的隔离。 一个c o n t a i n e r b a s e d 系统提供一个共享的0 s 镜像,独立的r o o t 文件系统和共 享的系统可执行程序和库文件( 在不同上下文之间安全共享) 。每个可以像正 常系统那样启动和关闭。操作系统级虚拟方法和硬件级虚拟方法的本质区别在于 系统安全和资源隔离实现上。对于硬件级虚拟来说,主要的隔离是在硬件抽象层 实现的,比如虚拟地址空间,p c i 总线地址,设备和特权指令等。而操作系统级 2 h t t p :w w w s u n c o m s o f l w a r e s o l a r i s u t i l i z a t i o n j s p h t t p :w w w s w s o f t c o m e n v i r m o z z o 7 浙江大学硕士学位论文第1 章绪论 虚拟则是通过操作系统层面的对象来施加的( 比如,进程i d ,用户i d 等) ,主要 通过基于这些对象的上下文分割和访问控制来实现。 1 2 3 4 应用程序级虚拟 上面提到的这些虚拟方法都可以称为系统级虚拟,而所谓的应用程序级虚拟, 则是为应用程序实现一个虚拟机环境,而这个环境本身也是操作系统中的一个应 用程序。最为常见的应用级虚拟方案有j a v a 虚拟机,微软的n e tc l i ,还有p e r l 6 的p a r r o t 虚拟机等等。它们通常用来实现程序设计语言的平台无关性,所谓的 “w r i t eo n c e ,r u na n y w h e r e ”就是借助应用程序虚拟机来实现的。本文主要讨 论的是系统虚拟机,对于应用程序虚拟方案就不多赘述。 1 3x e n 虚拟机介绍 x e n 是目前流行的一种虚拟机解决方案,它最初由剑桥大学的研究人员研制开 发。它采用了部分虚拟( p a r a v i r t u a l i z a t i o n ) 技术,虚拟机管理器为上层虚 拟机给出与底层硬件设备略微不同的抽象层。具体来说,x e n 提供了h y p e r c a l l 机制,所有运行在x e n 虚拟机管理器上的虚拟机必须使用这些h y p e r c a l l 来完成 相关的特权操作( 比如,页表的建立) ,x e n 虚拟机管理器向上层虚拟机提供异步 的通知机制和基于共享内存i o 传输通道。x e n 要求操作系统必须按照这些规则修 改代码并移植到x e n 的体系结构上。虽然需要操作系统级别的修改,但是,x e n 对操作系统的上层调用( 系统调用,a b i 级别) 并没有修改,可以保持对应用程 序的透明。 运行在x 8 6 平台上的x e n 借助了i a 3 2 的4 个优先级( r i n g o 到r i n 9 3 ) 。原先, 只有操作系统运行在最高优先级( r i n g o ) ,普通的应用程序都运行在r i n 9 3 ,r i n 9 1 和r i n 9 2 都没有使用。在x e n 体系结构中,x e n 虚拟机管理器处在最高优先级, 它占据了r i n g o ,而用户域和特权域的操作系统运行在r i n 9 1 ,运行在这些客户 操作系统上的应用程序运行在r i n 9 3 。图卜2 给出了x e n 体系下的特权级别( 摘 自) 。 4h t t p :w i k i x e n s o u r c e c o m x e n w i k i x e n i n t r o 8 浙江大学硕士学位论文第1 章绪论 图1 - 2 x e n 在x 8 6 平台上的特权级别 图1 - 3 给出了x e n 虚拟机的体系结构图。其中x e n 虚拟机管理器处在最底层。 在管理程序的上层是x e n 的域( k e n 使用“域”,即“d o m a i n ”来指代通常说

温馨提示

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

最新文档

评论

0/150

提交评论