(信息与通信工程专业论文)intel+vtd技术的研究及其在kvm虚拟机上的实现.pdf_第1页
(信息与通信工程专业论文)intel+vtd技术的研究及其在kvm虚拟机上的实现.pdf_第2页
(信息与通信工程专业论文)intel+vtd技术的研究及其在kvm虚拟机上的实现.pdf_第3页
(信息与通信工程专业论文)intel+vtd技术的研究及其在kvm虚拟机上的实现.pdf_第4页
(信息与通信工程专业论文)intel+vtd技术的研究及其在kvm虚拟机上的实现.pdf_第5页
已阅读5页,还剩70页未读 继续免费阅读

(信息与通信工程专业论文)intel+vtd技术的研究及其在kvm虚拟机上的实现.pdf.pdf 免费下载

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

文档简介

摘要 摘要 近几年,随着信息技术在各行各业的普遍应用,出现了信息资源管理,服务 器整合等需求,虚拟化技术作为一种解决方案而进入了一个快速发展的繁荣时代, 特别是最近云式计算概念的提出,更是使虚拟技术成为最热门的研究话题之一。 虚拟化技术主要是通过软硬件技术方式,将底层的计算资源或者化分为多个运行 环境,或者整合成单个运行环境,从而满足对各种应用的要求。虚拟化技术在很 多重要领域都具有很高的实用价值,如集成服务,内核的开发,内核的调试,安 全计算,多系统并行计算,系统迁移等。因此,如何提升虚拟机的性能和安全成 为研究热点,作为虚拟化核心技术之一的虚拟i 0 技术,自从设计出设备模拟虚拟 i o 模型以及泛虚拟化设备驱动i o 模型,一直发展缓慢。 顺应市场需求和技术需要,i n t e l 推出了v t d 技术,该技术是在芯片级对虚拟 机提供支持,能有效提高虚拟机的i 0 性能,并对传统的操作系统起到一定的安全 隔离作用。利用k v m 和x e n 虚拟机开源的优点,i n t e ll i n u xv m m 小组在其基础 上加入了对v t - d 的支持。本文作者有幸参与了该项目,主要侧重直接i 0 虚拟化 技术的研究和其在开源虚拟机k v m 上的实现。 本文首先对虚拟计算技术和当前著名的虚拟机进行了介绍,分析了k v m 虚拟 机的架构和设备虚拟化,接着讨论了当前流行的虚拟i 0 模型的原理和实现,对它 们的优缺点进行了简单的分析。然后文章深入研究了英特尔的v t d 技术,结合对 k v m 虚拟机的研究,对直接i 0 虚拟模型进行了整体设计,详细论述了该模型在 k v m 虚拟机上的实现,并对该模型进行了性能分析和评估。最后设计了性能测试 方案,通过一系列的数据论证了该模型使i 0 设备性能、c p u 利用率性能都得到 了很大的提高。 关键词:虚拟化,虚拟机,k v m ,i 0 虚拟化,直接i 0 虚拟化技术 a b s t r a c t a b s t r a c t n o w a d a y s ,w i t h t h ew i d eu s i n go fi n f o r m a t i o nt e c h n o l o g yi na l lw a l k so fl i f e ,t h e r e w e r es o m er e q u i r e m e n t ss u c ha si n f o r m a t i o nr e s o u r c em a n a g e m e n ta n ds e r v i c e c o n s o l i d a t i n ge t c a sas o l u t i o ns c h e m 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 sb e c o m eah o t t o p i c ,e s p e c i a l l yt h ea d v a n c eo fc l o u dc o m p u t i n gt e c h n o l o g y , t h e v i r t u a lm a c h i n e t e c h n o l o g yi se x p e r i e n c i n gr e s u r g e n c e v i r t u a l i z a t i o ni sat e c h n o l o g yt h a t c o m b i n e s c o m p u t i n gr e s o u r c e st oi n d e p e n d e n t o n eo rt h a td i v i d e st h e mt om a n yo p e r a t i n g e n v i r o n m e n t su s i n gm e t h o d o l o g i e sl i k eh a r d w a r ea n ds o f t w a r ep a r t i t i o n i n g o r a g g r e g a t i o n ,w h i c ha c h i e v e s a l lo ft h er e q u i r e m e n t s v i r t u a l i z a t i o nt e c h n o l o g yf r e d i m p o r t a n ta p p l i c a t i o n so v e raw i d er a n g eo f a r e a ss u c ha ss e r v e rc o n s o l i d a t i o n ,k e r n e l d e b u g g i n g ,p r o g r a m m ed e v e l o p m e n t , t r u s t e dc o m p u t i n gp l a t f o r m s ,s u p p o r t i n gm u l t i - o s e n v i r o n m e n t , s y s t e mm i g r a t i o n , e t c ,r e s u l t i n gi nw i d e s p r e a du s a g e t h e r e f o r e ,h o wt o i m p r o v et h es e c u r i t ya n dp e r f o r m a n c eo fv i r t u a lm a c h i n eb e c o m e sa h o tt o p i c v i r t u a l i 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 si nv i r t u a l i z a t i o nt e c h n o l o g y , h a sr i o s 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 oa n dp a r a v i r t u a l i z a t i o nd e v i c e d r i v e rv i r t u a li ob e e nd e s i g n e d i nr e s p o n s et om a r k e ta n dt e c h n o l o g yr e q u e s t , i n t e ll a u n c h e dv t - d ,at e c h n o l o g yt o s u p p o r tv i r t u a lm a c h i n ei n s i d et h ec h i p s e t ,w h i c hc a ni m p r o v et h ei op e r f o r m a n c eo f v m a sw e l la so sr e b u s t n e s sa n dr e l i a b i l i t y b a s e do nk v m a n dx e n sa d v a n t a g eo f o p e ns o u r c i n g ,i n t e ll i n u xv m m t e a ma d d st oi tv t ds u p p o r t t h ea u t h o rp a r t i c i p a t e d i nt h ep r o j e c t ,a n df o c u s e do nt h er e s e a r c ho f v t - da n di t si m p l e m e n t a t i o nf o rk v m t h ep a p e ri n t r o d u c e dv 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 n p r o j e c t sf i r s t l y , a n a l y s e dt h ea r c h i t e c t u r eo fk v m a n dd e v i c ev i r t u a l i z a t i o n t h e ni t d i s c u s s e dt 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 fp o p u l a rv i r t u a li om o d e l sc u r r e n t l y , a n d d i das i m p l ea n a l y s i so ft h e i ra d v a n t a g e sa n dd i s a d v a n t a g e s t h i sp a p e rd i dl o t so fw o r k o nr e s e a r c ho fv t - d ,t h eo v e r a l ld e s i g no fd i r e c ti ov i r t u a l i z a t i o nm o d e l ,t h ei m p l e m e n t o ft h i sm o d e lo nk v m ,a n dt h ep e r f o r m a n c ea n a l y s i sa n de v a l u a t i o n f i n a l l y , as e r i e so f d a t ab yp e r f o r m a n c et e s t i n gd e m o n s t r a t e dt h a tt h em o d e lw i t hv t - dh a sa d v a n c e d a b s t r a c t p e r f o r m a n c eb o t ho ni 0d e v i c ea n dc p u k e y w o r d s :v i r t u a l i z a t i o n , v i r t u a lm a c h i n e ,k v m ,1 0v i r t u a l i z a t i o n ,v t - d i i i 主要符号表 主要符号表 专业术语,缩略词解释 v m mv 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 v m v i r t u a lm a c h i n e ,虚拟客户机 k v mk e r n e l b a s e dv t r t u a lm a c h i n e ,基于内核的虚拟机 v t - dv 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 ,直接i o 虚拟技 术 v 1 1 - xv i r t u a l i z a t i o nt e c h n o l o g yf o rx 8 6 ,基于x 8 6 架构的虚拟 技术 h v mh a r d w a r ev i r t u a lm a c h i n e ,硬件虚拟机,完全虚拟化虚拟 机 d m ad i r e c tm e m o r ya c c e s s ,直接内存访问 r m um e m o r ym a n a g e m e n tu n i t ,内存管理单元 e p te x t e n d e dp a g et a b l e s ,可扩展页表技术 h y p e r c a l l 超级调用 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 t p a g et a b l e ,页表 p t e p a g et a b l ee n t r y ,页表项 p 2 mn l b l e p h y s i c a lt om a c h i n et a b l e ,客户机物理地址到机器物理地 址转换表 c r 3c o n t r o lr e g i s t e r3 ,控制寄存器,页表基地址寄存器 t l bt r a n s l a t i o nl o o k a s i d eb u f f e r s ,旁路转换缓存 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 a ra c p it l 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 重映射 v i 主要符号表 a c p i 报告表 d r h dd m a r e m a p p i n gh a r d w a r eu n i td e f i n i t i o n ,d m a 重映射 硬件单元定义 4 d s s d e v i c es c o p es l r u c t u r e ,设备域结构 m m i o m e m o r ym a p p i n gi 0 ,内存映射i 0 p o r ti o 端口i o h a wh a r d w a r ea d d r e s sw i d t h ,硬件地址宽度 i x 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名: j e l 期:母多月二日 j期:嗣净当月二g 日 | 。 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名: 州币签名:j 缒 日期:2 彳年岁月咖 第一章引言 第一章引言 随着计算机技术的不断发展,系统管理越来越复杂,单一系统有时并不能更 有效的利用计算机平台的资源。虚拟化技术是将真实物理计算机上的计算资源进 行切分的一种方法,它的思想是尽可能大的利用资源,并带来很多进一步的新的 应用。 近几年虚拟机在增强硬件服务平台的稳定性、安全性等方面得到越来越广泛 的应用。并涌现出一系列优秀的虚拟机项目,而且i n t e l 和a m d 等处理器厂商开 始在硬件级芯片对虚拟化技术提供支持。研究和应用这些技术有利于推进自主版 权的操作系统软件的发展。 根据j a m e se s m i t h 和r a v in a i r 1 】的理论,虚拟机被分为进程与系统虚拟机两 大类,本文研究系统虚拟机。 1 1 课题背景 上世纪六十年代,i b m 公司首先开发了针对大型机$ 3 6 0 的并发、交互式访问, 这是虚拟机的原始状态,到如今虚拟机( v i r t u a lm a c h i n e ,v m ) 已经有4 0 多年的历 史了【2 】。在上世纪七十年代和八十年代,由于低成本的硬件以及多任务操作系统的 出现,虚拟化技术差点己被人忘掉。但是,到了上世纪九十年代,随着j a v a 虚拟 机的问世,特别是之后的v m w m 公司多款v m w a r e 虚拟机【3 j 的推出,使得虚拟 机技术的研究又一次变为处理器、软件工程、服务器和网络安全设计人员的热门 研究方向。此时,虚拟机的主要作用是使得本来是在不同的硬件平台、不同的操 作系统上运行的程序可以在一台量身定制的电脑上运行。虚拟机技术在2 0 0 4 年被 华尔街日报评为全球技术创新奖软件类第二名,最近,美国加特纳数据搜索公司 的分析师也将虚拟化技术列为2 0 0 9 年值得关注的十大信息战略技术之首。 虚拟机技术当前主要在服务器方面,对于个人p c 机,虚拟机技术的使用也开 始被研究、讨论,一些软件安全公司开发出了基于虚拟机技术的杀毒软件,可在 不破坏原操作系统的环境下执行危险的程序;e r p 软件方面也开发出了基于虚拟 机技术的可信用户桌面,使企业内部对职工个人计算机的管理变得有效,对桌面 电脑的支持变得方便;对于个人研究者,虚拟机被广泛的运用于程序的开发,代 电子科技大学硕士学位论文 码的调试,以及内核的研究中。 本课题来源于i n t e l 亚太研发公司开源技术中心的项目k v m 虚拟机【4 】,k v m 虚拟机以l i n u x 内核为基础,在开源社区推动虚拟机技术的发展。作者于2 0 0 7 加 入i n t e l 的开源虚拟机项目组,主要从事x e n 和k v m 虚拟机的研究和开发工作, 作者和同事一起设计并实现了k v m 虚拟机中的直接i o 虚拟技术模型。 1 2 国内外研究现状 目前,国际上除了v m w a r e 外,大部分虚拟化研究项目仍位于起步或发展时 期。国外一些研究机构已经大力支持虚拟机项目的研究和开发,如剑桥大学的计 算机实验室和华盛顿大学计算机科学与工程系,设计出了像x e n 这样的虚拟榭5 】; 以色列q e m u r a n e t 公司推出了k v m 这样基于l i n u x 内核的虚拟机1 6 1 。 从市场上讲,虚拟化技术对整个信息技术产业都是有利而无害的,硬件厂商 可以出售更高性能的服务器,软件厂商可以出售更多的软件复制。市场需求方面 极大的促进虚拟化技术的飞跃。像这几年,政府部门、高等院校、金融机构等领 域正在整合原来零零散散的信息中心、数据中心,在资金预算不很宽裕的情况下, 利用虚拟化技术似乎是个很好的方案。 从技术上来讲,随着安腾架构、多核处理器的发展、x 8 6 服务器的高性能发 展都为虚拟化技术提供了便利。 欧洲美国等发达国家的虚拟化已经成为一种现实,顺理成章的,i b m 、惠普、 微软、i n t e l 这些全球性公司就会在中国国内进行宣讲。据了解在国内,只有北京 航天航空大学、复旦大学、清华大学和南开大学开始研究虚拟化技术,而且都还 位于对国外已有项目的了解学习阶段,这方面的文章少之又少。到现在为止,国 内还没有出现一款中国人自己虚拟机产品,就连对国外虚拟机产品的应用也是非 常少。 据调查中国5 0 0 强中现在很少有用虚拟化的,然而世界5 0 0 强企业中,9 9 都 使用了虚拟化技术。有机构也曾预测,到2 0 0 9 年底,所有企业在服务器虚拟方面 的消费将近于1 5 0 亿美元,超过7 5 的5 0 0 人以上的单位都将开始选择虚拟化的 服务器。 可见,国内外迥然不同的状况既说明虚拟化已经是种完整的体系,同时也 表示虚拟机在中国的发展空间还很大。总的来说,国内相对于国外存在两方面的 差距。一方面是虚拟机理论的研发,这方面已有一些科研机构着手于此,而本课 2 第一章引言 题的研究也在其中。另一方面是虚拟化技术的使用和发扬。 1 3 本文主要工作 k v m 是一个开源的虚拟机产品,具有巨大发展潜力。i n t e l 公司结合自身的 v t - x 芯片级技术【_ 7 1 ,以l i n u xv m m 项目组为背景,参与了k v m 项目,并与 q e m u r a n e t 公司( 2 0 0 8 年被r e d h a t 公司收购) 合作。 本文作者于2 0 0 7 年加入i n t e l 公司的l i n u xv m m 项目组,主要从事在硬件支 持下设备虚拟化,直接i o 虚拟化的研究和性能调优。 文章总结下来包括以下的工作: ( 1 ) 调查研究各种虚拟机的整体体系结构,了解了各种比较先进的虚拟化方 法和技术。作者在对目前存在的虚拟机产品进行研究和分析的基础上,总结出各 个平台虚拟化产品的一些特征和共性。 ( 2 ) 了解硬件虚拟机x e n 与k v m 的工作机理和总体架构,研究分析k v m 虚拟机内存虚拟化,i o 虚拟化等,并深入研究了英特尔直接i o 虚拟技术( v t - d ) 【8 】及其在虚拟机x e n 上的实现技术,为以后的k v m 上的实现打下坚实的基础。 ( 3 ) 参与设计和实现了直接i o 技术在k v m 虚拟机上的应用,使用v t - d 技 术增强了操作系统的安全性,并有效的提高了k v m 虚拟机i o 设备的性能。并通 过大量测试数据证明了优化后性能确实得到了巨大的提高。 1 4 论文的结构 本论文第一章为引言,主要介绍本课题的背景,虚拟化计算技术研究现状, 本人所做的工作以及本论文的结构脉络。 第二章为虚拟化技术概述,给出了虚拟化技术的定义,总结出虚拟化技术的 理论基础,得出虚拟化技术的特征、分类和结构。 第三章开始正式讲述k v m 虚拟机的架构以及核心模块的虚拟化机制,如内存 虚拟化,设备虚拟化。本章节通过对当前流行的虚拟i o 模型的分析,指出当前虚 拟i o 模型的缺点,并提出利用直接i o 虚拟化技术的优势。 第四章重点分析了i n t e l 公司的直接i o 虚拟化技术。首先介绍了其几个主要 的功能,然后重点研究关键技术d m a 重映射和中断重映射技术,通过详细的数据 结构分析,为后面在k v m 上的实现打下坚实的理论基础。 3 电子科技大学硕士学位论文 第五章详细给出了直接i o 技术在k v m 虚拟机上的设计模型,各模块的详细 实现,完成了p c i 设备给客户机的分配和剥离,使客户机能够独享某一特定物理 设备。 第六章对该模型进行了详细的性能测试和评估,通过对网卡、u s b 设备和 s a t a 磁盘的测试,得出使用该模型对k v m 虚拟机i o 设备性能的极大改善。 第七章为总结和展望。 4 第二章虚拟化计算技术 2 1 虚拟化技术简述 第二章虚拟化计算技术 2 1 1 虚拟计算技术的基本概念 虚拟化技术在业界可以定义为很多种,当前许多企业都说自己已经应用了虚 拟技术,从j a v a 虚拟机到系统虚拟机技术,这些技术都包括在内。随着虚拟化技 术在计算机科学各个详细领域的应用,人们对这虚拟化的概念也越发模糊。根据 我们的理解,在计算机领域,虚拟化技术能够整合和分割现有的资源,这些资源 包括计算机处理器,内存,磁盘等,这些资源运用虚拟技术可以形成一个或者n 个计算环境,从而提供比原配置更适合的资源形式。概括来说,虚拟化技术就是 重新分配计算资源,来提高计算的效率和资源的利用率。 其实,虚拟和真实只是在字面上有分别,在效果上,或者说在实质上是相同 的。在计算机环境,虚拟世界和真实世界不一样,主要体现在底层的实现机制, 但对于应用程序来说,它们完全没感觉。甚至有可能,虚拟世界呈现出完全不同 于硬件平台的环境,让应用程序产生错觉。当前的系统软件早就已经在使用这种 技术,其中,最为典型的范例就是虚拟内存机制。所有的现代操作系统都使用了 虚拟内存,这样进程可以访问很大的内存空间,远比机器物理内存大,同时不同 的进程也能共享同一块物理内存。还有,多任务机制也是一个典型范例,在多任 务系统中,单处理器以分享时间片的方式被切成多个处理器,对于多任务的每个 任务来说,它看到的应该为虚拟处理器。与上述两个例子相反,可以把许多中等 速度的处理器集合在一起,组成处理器集群,而该集群就成为一个具有很高时钟 频率的虚拟处理器。 2 1 2 虚拟化技术分类 从概念上来说,对于应用程序,虚拟机只是个平台环境。因此,如图2 - 1 所示, 虚拟化可以产生于这样五个抽象层:硬件抽象层,指令集架构层,操作系统层, 库函数层与应用层【9 】。无论虚拟化在哪层实现,其本质都是相同的,那就是它使用 某种特殊的手段来分配底层资源,并将底层资源反映到上层。 电子科技大学硕士学位论文 图2 1 虚拟化技术按抽象层次分类 1 硬件抽象层 在硬件抽象层,虚拟化其实是指有硬件级芯片支持的虚拟技术,这种技术表 现高度的客户系统的隔离性,这种隔离性不仅是每个客户机之间,并且还有客户 机和宿主机之间。该层虚拟技术的例子如i n t e l 公司于2 0 0 5 年1 月发布其称之为 v i r t u a l i z a f i o nt e c h n o l o g h y 的虚拟化技术( 简称v t ) ,另外,a m d 也在其后发布了 代号为p a c i f i c a 的虚拟化技术( 简称s v m ) 。 2 指令集架构层 在指令集架构层,虚拟化技术彻底使用代码来模拟指令的执行效果,通俗的 称法为模拟器。模拟器可以模拟不同硬件设备,该类型的典型虚拟机有b o c h s 1 0 1 , q e m u 【1 1 1 【1 2 1 等。 3 操作系统层 操作系统层的虚拟化技术,没有独立的h y p e r v i s o r 层( 虚拟机监视器层) ,主 机操作系统本身功能强大,负责分配资源给虚拟机。但是,操作系统级的虚拟化 必须改动内核,所有虚拟机还必须运行相同操作系统,它的扩展性比较差,性能 好。这种类型的虚拟机典型的有f r e eb s d 的j a i l ,s o l a r i sc o n t a i n e r ,v i r t u o z z o 的 o p e n v z 1 3 j 等。 4 库函数层 库函数层的虚拟化技术,提供了仿真的a b i ( a p p l i c a t i o nb i n a r yi n t e r f a c e ) 或 者a p i ( a p p l i c a t i o np r o g r a m m i n gi n t e r f a c e ) ,a b i 和a p i 位于系统层和应用层之间。 有了该仿真后,对操作系统受限的应用程序可以摆脱限制,例如著名的w i n e 就使 得w i n d o w s 的应用程序可以在l i n u x 下运行。 5 应用层 应用层的虚拟化技术又称程序语言级的虚拟化技术,是在现有的操作系统的 6 抽象层次递增 八丌u 第二章虚拟化计算技术 架构上,建立一种公共的中间编程语言,从而隐藏了与特定操作系统有关的内容, 这样程序只需要解释成该编程语言,就可以在多种平台上流畅地执行。这种虚拟 机完整的一套体系结构,如c p u 、堆栈、寄存器等。最常见的如j a v a 虚拟机j v m , 如图2 - 2 ,还有m i c r o s o f t n e tc l i 和p e r l6 的p a r r o t 。 2 1 3 经典的虚拟机模型 图2 - 2j v m 工作原理 图2 3 给出了一个经典的虚拟机模型,虽然目前有各式各样的虚拟机,但所有 的基本上都是基于这个模型【1 4 】。虚拟机管理器( v i r t u a lm a c h i n em o n i t o r ,v m m ) , 又称h y p e r v i s o r ,介于硬件设备和虚拟客户机之间,处在特权模式,隔离并控制运 行多个虚拟客户机。v m m 为每个客户机模拟出一套独立于真实物理硬件的虚拟硬 件环境( 包括处理器,内存,i o 设备等) 。一个时间片内,一个逻辑c p u 上有且 只有一台客户机在运行,直到时间片用完v m m 收回控制,命令下一个客户机接 着使用该处理器。 图2 - 3 虚拟机经典模型 与b o c h s 等仿真器不同的是,对于系统虚拟机中的二进制代码,绝大部分指令 7 电子科技大学硕士学位论文 可以直接在物理处理器上执行,而仿真器则必须转换每条指令。 2 2 泛虚拟化和完全虚拟化技术 虚拟化技术从实现方式上来讲,由两个典型的派系:泛虚拟化【l5 】和完全虚拟 化。泛虚拟化通过修改客户操作系统的内核来配合此时的环境,从而达到较好的 性能,但也付出了兼容性和维护性差的代价;而完全虚拟化则可以直接创建一个 已有的客户机,不需修改,但往往需要获得处理器级别的硬件支持( 也称硬件虚 拟化) 【i6 j 【i ,或者对客户机执行代码进行动态二进制代码转换( b i n a r yt r a n s l a t i o n ) l l 引。实际应用中,当前主要的虚拟机都同时支持这两个派系。 2 2 1 泛虚拟化技术 泛虚拟化技术( p a r a - v i r t u a l i z a t i o n ) 历史悠久,它的核心理念是对运行在虚拟 环境中的客户机系统做一定方面上的改动,使该客户机对自己所在的虚拟环境有 认识。换句话说,使用泛虚拟化技术的情况下,客户操作系统清楚的明白自己运 行在虚拟环境下,而不是真正的物理平台。采用泛虚拟化技术必须对客户操作系 统做出某些改动,这样降低了其兼容性,但此改动有可能使客户操作系统和虚拟 机监控程序有利的交流,从而提高性能。 泛虚拟化没有特殊硬件的要求,由于每个修改后的客户操作系统都清楚的明 白自己运行在虚拟环境下,因此每个客户系统都与系统管理程序协作,来实现底 层硬件设备的虚拟化。泛虚拟化可以同时运行多个不同的客户操作系统,但由于 要修改客户操作系统,所以只支持如l i n u x 、u n i x 这样的开源系统,不支持非开源 的系统例如w i n d o w s 系列、m a c o s 等。 2 2 2 完全虚拟化技术 完全虚拟化技术( f u l l v i r t u a l i z a t i o n ) 又称硬件虚拟化技术,原因是依靠于硬 件技术,它的核心理念是通过硬件技术等方式,在虚拟环境下运行不用改动的客 户操作系统。换句话说,这时候的客户机认为它运行在真正的物理平台上的。 目前英特尔和a m d 公司的处理器都能提供这种硬件技术。完全虚拟化在执行 一些与虚拟化有联系的特权指令时,都使用了二进制模拟翻译的算法,这样系统 消耗比较大,与无虚拟化的宿主机相比,其性能大概下降1 0 - - 3 0 。另外庞大的 8 第二章虚拟化计算技术 虚拟硬件层也消耗了巨大的系统资源,因此全虚拟化技术完全是以性能的代价来 换取高兼容性。 全虚拟化技术使用户不需要另外附加安装特殊程序,就可以在虚拟环境下安 装操作系统,就好像在真正硬件平台上安装系统一样,因此操作系统的发行商们 也不需要考虑修改操作系统来支持虚拟机这个因素。 v m w a r ew 6 r k 删o n 和v i r t u a lp c l l 9 】都使用了像二进制翻译之类的纯软件实现 策略。它们的方式在性能和复杂度上都可以提高很多。有了硬件虚拟化技术后, 通过c p u 协助捕捉客户虚拟机的特权资源操作,同时对些特权资源直接进行虚 拟化操作,从而获得更高的性能。 2 3 国内外最新虚拟化发展状况 2 3 1v m w a r e 1 9 9 8 年1 月,斯坦福大学的m e n d e lr o s e n b l u m 教授率领他的学生e d o u a r d b u g m o n 和s c o t td e v i n e ,在许多年来对虚拟化技术及虚拟机的研究基础上创建了 v m w a r e 公司。当今v m w a r e 公司是虚拟机市场的绝对领头人,并且是世界上发展 最快的软件公司之一,v m w a r e 最开始提出的气球驱动程序( b f l l o o nd r i v e r ) ,影 子页表( s h a d o wp a g et a b l e ) 和虚拟设备驱动程序等理论,统统被后来的其它虚拟 机广泛采用。 如图2 - 4 所示,v m w a r e 虚拟机的架构跟经典虚拟机模型差别很大1 3 j ,它是 以一个应用程序的形式在主操作系统( h o b o s ) 中安装,运行时由3 部分组成: 图2 4 w a r e 虚拟机模型 9 电子科技大学硕士学位论文 ( 1 ) 直接运行在物理硬件上的v m m ,负责在主世界( h o s tw i o r l d ) 和虚拟机 世界( v m mw b r l d ) 之间切换; ( 2 ) 以驱动形式加载在h o s t o s 中的v m d r i v e r 存在于内核中,负责主世界和 虚拟机世界之间的通信; ( 3 ) v m a p p 相当于h o s t o s 的一个用户级的应用程序。 主世界和虚拟机世界之间转换时,需要记录和还原所有应用程序和操作系统 当前的c p u 状态,因此这样比切换进程的开销更大。但如果虚拟机中处理的是c p u 密集型任务,这种切换就很少发生,这时客户机的平常指令可以直接运行在逻辑 处理器上,不会被中断。我们把客户机中运行的操作系统叫做g u e s t o s 。当g u e s t o s 运行特权指令时,c p u 产生的陷入使虚拟机监控程序获得主导权。v m w a r e 虚拟 内存管理的策略称为影子模式( s h a d o w m o d e ) 。g u e s t o s 中使用的内存是监控程 序为其设置的伪物理内存地址,在g u e s t o s 的眼中这是一段连续的地址。监控程 序维护了机器物理地址与每个客户机的客户物理地址( 伪物理地址) 的映射。如 图2 5 所示,每个客户机操作的实际页面可以是不连续的。 o v m m 维护的真实物理内存空间 图2 - 5 机器地址与伪物理地址的映射关系 根据操作系统原理,操作系统维护的页表表示虚拟内存和物理内存的映射关 系,对于g u e s t o s 而言,它维护的是虚拟内存与它所看到的物理内存即伪物理内 存的映射,所以这个映射不能被处理器的内存管理单元使用。v m m 要为每个 g u e s t o s 的进程维护张对机器物理地址的页表,称为影子页表,如图2 6 所示。 l o 第二章虚拟化计算技术 影子页表也使用在本项目k v m 虚拟机中,因此本文将在第三章详细论述。 页表 图2 - 6 影子页表 2 3 2q e m u 在开源的领域中,有一个以速度快而闻名的模拟器一一q e m u 1 1 1 。q e m u 的 模拟速度大概是真实机器的2 5 倍。q e m u 有两种执行模式:用户模式,和全系统 模拟模式。在用户模式,q e m u 可以在一个处理器上编译程序,而在另一类型的 处理器上执行该程序,就是说可以跨平台操作。全系统模式能模拟出来一整套操 作系统,包括一个c p u 和几个主要的外部设备。q e m u 还可以模拟多种处理器架 构的c p u ,q e m u 模拟是采用动态翻译技术,将装载进来的代码翻译为本地代码。 2 3 3x e n x e n 虚拟机是由剑桥大学设计和开发的,是一个开源的系统虚拟机,在x 8 6 架构上,x e n 最多可同时创建约一百个虚拟客户机。x e n 虚拟机目前已经相当稳定 电子科技大学硕士学位论文 和比较成熟。 在x e n 虚拟机中,虚拟客户机被叫做为虚拟域( d o m a i n ) 1 2 0 】,其中0 号虚拟 域作为虚拟机监控程序的扩展,控制虚拟客户机的创建和销毁等管理功能。x e n h y p e r v i s o r 控制定时器、中断设备i oa p i c 等这样的i o 设备。普通虚拟域即一般 的客户机只能操作虚拟设备,而不可以直接访问硬件设备。 在x e n 虚拟机中,般把x e nh y p e r v i s o r 也称为x e n 。x e nh y p e r v i s o r 代码主 要是从l i n u x 内核移植而来,d o m a i n 0 所使用的x e n l i n u x 也是l i n u x 内核的修改 版。如图2 7 所示。 2 3 4k v m d o m 0p vd o m a i n sh v md o m a i n s 无修改的用无修改的甩 c r o t r a lp a n e i 户进程户进程 x e nl i n u xx e nl i n u x i d o m 0l f 动 f 障到嚣i f * t ot ,一lf ;,。oi 。、 t :咚;?t 、谤、 v | 蟠扩。一 ,蟋 。|xen h y p e r v i s o r, “,_、i 一t 一、r :- 一 一“+ “ , 均 , 1r 硬件设备 图2 7 x e n 虚拟机架构 k v m ( k e r n e l b a s e dv i r t u a lm a c h i n e ) ,全称为基于内核的虚拟机,它最开始是 在2 0 0 6 年1 0 月1 9 日跳出在l i n u x 内核的邮件列表( m a i l i n gl i s t ) 上,并很快被 集成到了l i n u x2 6 2 0 内核版本中。早期的k v m 采用的是基于i n t e l 硬件虚拟技 术的虚拟化方法,并结合前面提到的模拟器q e m u 来完成设备虚拟化( d e v i c e m o d e l ) 。随后l i n u x 社区中的重要人物1 1 1 9 0m o l n a r 也发布了k v m 的泛虚拟化扩 展发案,本文将在第三章详细研究。k v m 虚拟机解决方案的初步思想是将l i n u x 内核扩展为具有虚拟机监控器( v m m ) 的功能,从而借助l i n u x 内核成熟的架构 来提供一个可靠的v m m 。这种方案得到了大多数l i n u x 社区成员的认可。 现在k v m 仍然处于起始阶段,但是由于许多l i n u x 内核研究者和开发者的参 1 2 第二章虚拟化计算技术 与,其发展非常迅猛。这里面l i n u x 内核作为虚拟机监控程序,对它的优化是一个 有意义且长期的过程,例如操作系统的核心任务进程调度、内存管理等,都会慢 慢涉及对虚拟化的特定改进和优化。 本文主要针对k v m 虚拟机的i o 性能优化研究,在文章第三章将会详细研究 k v m 的架构以及各个虚拟化部分实现机制。 2 4 虚拟机的应用 概括的说,虚拟化技术的三种典型应用【2 1 1 : ( 1 ) 任务分离 将可能相互影响且可独立运行的不同软件分离在不同的虚拟机上,使得虚拟化 各个虚拟机中运行应用程序协议栈,这样由于每条指令被限制在单一的虚拟机中, 所以能够提高整个系统的安全性;而一个虚拟机系统的毁坏对其他虚拟机不构成 影响,因此能够增强整个系统的可靠性。如图2 - 8 所示。 l 叫l 叫 操作系统 物理硬件 工作分离 虚拟机管理器v m m 物理硬件 图2 - 8 虚拟技术的典型应用一一任务分离 ( 2 ) 任务整合 大部分大企业的信息中心中常常有很多服务器,这些机器只运行单个操作系统 和单个服务,利用率特别低,例如,数据库服务器和邮件服务器运行的不同机器 工作整合 虚拟机管理器v m i d 物理硬件 图2 - 9 虚拟技术的典型应用一一任务整合 电子科技大学硕士学位论文 上。应用虚拟化技术的任务整合,将不同的服务整合到一台机器上,这样就提高 了资源的利用率,也降低了公司的开销。如图2 9 所示。 ( 2 ) 任务迁移 实时动态迁移( 1 i v e m i g r a t i o n ) 技术使得运行在一台机器上的虚拟客户机可以 实时迁移到另一台机器上。任务迁移在整个系统的负载均衡和失效防护方面,有 着相当重要的作用。如图2 1 0 所示。 圈圈圈圈 2 5 本章小结 工作迁移 图2 1 0 虚拟技术的典型应用一一任务迁移 本章介绍了虚拟化技术和和虚拟机的基础知识。首先介绍了虚拟化技术的定 义,根据不同的用户程序对虚拟技术进行了分类。在讨论现存经典虚拟机模型的 基础上,详细介绍了虚拟化技术的两大派别:泛虚拟化技术和全虚拟化技术。然 后描述了虚拟机研究状况,对目前几个著名的虚拟机进行了概要的研究论述,分 析了他们的区别和联系。最后说明了虚拟机在现实中的应用。 1 4 第三章k v l i 虚拟机架构与设备虚拟化 第三章k v m 虚拟机架构与设备虚拟化 k v m 虚拟机作为后起之秀自从问世后,迅速就赶上了其他的虚拟机解决方 案如x e n ,o p e n v z 等。k v m 以其稳定、高性能和轻量级代码被l i n u x 内核所接受。 本章主要研究讨论k v m 虚拟机的架构,实现原理,包括虚拟内存管理和虚拟i o 机制。 3 1k v m 虚拟机 31 1k v m 虚拟机架构 k v m 是在标准的l i n u x 内核中融合了虚拟化技术的一种虚拟机纠,这样我们 可以通过扩展的l i n u x 内核来使用虚拟技术。在k v m 模型中,每个虚拟客户机都 是一个由l i n u x 调度程序管理的标准进程。一个普通的l i n u x 进程有两种运行模式: 内核和用户。而k v m 增加了第三种模式:客户模式。如图3 - 1 所示。 不同模式的分工如下: ( 1 ) 客户模式:执行非i o 客户机代码。 ( 2 ) 内核模式:切换到客户模式处理客户模式下的因i o 或特殊指令引起的 任何退出。 ( 3 ) 用户模式:执行客户机相关的i o 任务。 一i := 囤圉巨蕉熹 砸 嚣( h f j v t 支持) 圈3 - 1k v m 虚拟机体系结构 一 电子科技大学硕士学位论文 k v m 虚拟机的核心利用c p u 提供的硬件虚拟技术,装载一个l i n u

温馨提示

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

评论

0/150

提交评论