(计算机系统结构专业论文)半虚拟化技术分析与研究.pdf_第1页
(计算机系统结构专业论文)半虚拟化技术分析与研究.pdf_第2页
(计算机系统结构专业论文)半虚拟化技术分析与研究.pdf_第3页
(计算机系统结构专业论文)半虚拟化技术分析与研究.pdf_第4页
(计算机系统结构专业论文)半虚拟化技术分析与研究.pdf_第5页
已阅读5页,还剩59页未读 继续免费阅读

(计算机系统结构专业论文)半虚拟化技术分析与研究.pdf.pdf 免费下载

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

文档简介

浙江大学硕士学位论文 摘要 摘要 近年来虚拟化技术已成为计算机领域最为热门的技术之一。虚拟化技术源于 上世纪6 0 年代,其核心思想是在一个物理主机上虚拟出多个虚拟计算机并在其 上同时运行多个客户操作系统。虚拟化的产品趋于多样化,在开源世界的各种虚 拟化软件中,尤以x e a 最为出色。x e n 最早是在剑桥大学作为一个l i n u x 研究项 目开发的,它不仅支持半虚拟化,并且利用硬件虚拟化技术支持了完全虚拟化。 x e n 最大的优势是其优异的性能,运行在x e n 架构上的客户操作系统的性能 损失最差不会超过1 0 ,这得益于它的设计。本文深入分析了x c n 的半虚拟化 实现方式。基于策略与机制分离的原则,研究了x e n 实现于虚拟机监视器中的 机制以及实现于客户操作系统中的策略。 本文首先介绍了虚拟化技术的历史、现状、发展趋势,并将不同的虚拟化技 术进行了对比,阐明了半虚拟化技术的优势。然后介绍了x e n 的半虚拟化总体 架构,深入分析和研究了x v n 的技术方案及具体实现。在半虚拟化架构中,x e n 修改了运行在其上的客户操作系统的内核,由x e n 提供安全的接口来代替了内 核中的敏感特权操作。最后对虚拟化相关热点技术进行了简要讨论。 关键字虚拟化,x c n ,半虚拟化,虚拟机监视器,客户操作系统 浙江大学硕士学位论文 a bs t r a c t i nr e c e n ty e a r sv 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 eo n eo ft h em o s tp o p u l a r a r e a si nc o m p u t e rt e c h n o l o g y v t r t u a l i z a t i o nt e c h n o l o g yw a si ne x i s t e n c es i n c e19 6 0 s t h em a i ni d e ai st oc o m b i n e0 1 d i v i d ec o m p u t i n gr e s o u r c e 3t op r e s e n to n eo rm a n y o p e r a t i n ge n v i r o n m e n t s ,8 0a st or u nd i f f e r e n to p e r a t i n gs y s t e m so nag i v e nm a c h i n e v i r t u a l i z a t i o np r o d u c t st e n dt od i v e r s i f y , a n di nt h eo p e ns o u r c ew o r l dx e ni st h em o s t e x c i t i n gv i r t u a l i z a t i o ns o f t w a r e x e ni sf i r s td e v e l o p e di nt h eu n i v e r s i t yo fc a m b r i d g e a sar e s e a r c hp r o j e c to f l i n u x c u r r e n t l yx e n n o to n l ys u p p o r tp a r a - v i r t u a l i z a t i o n , b u t a l s of b l lv i r t u a l i z a t i o n t h ee x c e l l e n tp e r f o r m a n c eo fx e ni so n e b i g g e s ta d v a n t a g e i no p e r a t i n gs y s t e m s r u n n i n go nt h ex e na r c h i t e c t u r e , t h ew o r s tl o s so fp e r f o r m a n c ew i l ln o te x c e e dlo p e r c e n t ;m u c ho ft h i si sa t t r i b u t e dt oi t sa r c h i t e c t u r e i ti sd e e p l ya n a l y s e do ft h e a r c h i t e c t u r ei nt h i sd i s s e r t a t i o n b a s e do nt h ep r i n c i p l eo f s e p a r a t i n gt h ep o l i c ya n d m e c h a n i s m ,w er e s e a r c h e do nt h em e c h a n i s mi nt h ev i r t u a lm a c h i n em o n i t o ra n dt h e p o l i c yi nt h eg u e s to p e r a t i n gs y s t e m w ef i r s ti n t r o d u c e dt h eh i s t o r y , c u r r e n ts i t u a t i o na n dt h et r e n d so fv i r t u a l i z a t i o n t e c h n o l o g y , t h e nc o m p a r e dd i f f e r e n tv i r t u a l i z a t i o nt e c h n o l o g y , a n di l l u s t r a t e dt h e a d v a n t a g eo fp a r a - v i r t u a l i z a t i o n t h e nc l e a rp r e s e n t a t i o n so ft h ex e na r c h i t e c t u r ea n d d e s i g nd e t a i l sa r eg i v e n i nt h ep a r a - v i r t u a l i z a t i o na r c h i t e c t u r e ,x e nm o d i f i e dt h e k e r n e lo ft h eg u e s to p e r a t i n gs y s t e m s ,a n ds u p p l i e das e r i a lo fs a f ei n t e r f a c e st o s u b s t i t u t et h es e n s i t i v ea n dp r i v i l e g e do p e r a t i o n a tl a s t , w em a d eab r i e fd i s c u s s i o no f s o m eh o ts p o t si nv i r t u a l i z a t i o nt e c h o l o g y k e yw o r d s :v i r t u a l i z a t i o n ,x e n , p a r a - 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 em o n i t o r , g u e s t o p e r a t i n gs y s t e m s 浙江大学硕士学位论文图目录 图目录 图2 1 全虚拟化、半虚拟化与预虚拟化的体系结构对比1 5 图3 1x e n 半虚拟化总体架构1 9 图4 一l 启动流程2 5 图4 2v 删线性地址空间分布2 7 图4 3d o m a i n o 线性地址空间分布2 8 图4 4 超级调用与传统系统调用的对比3l 图4 5x e n 中c p u 级别使用3 5 图4 6 内存虚拟化总体架构4 3 图4 7 内存分配及p 2 m 表示意。4 4 图4 8 新建页面映射示例4 6 图4 9 献) 环缓冲区。4 9 图4 1 0i o 模型架构5 0 图4 1 l 网络虚拟化模型。5l v 浙江大学研究生学位论文独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。 除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成 果,也不包含为获得逝望盘堂或其他教育机构的学位或证书而使用过的材料。与我一 同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。 1 4 - 学位论文作者签名:愀 签字日期:嗍年石月,日 学位论文版权使用授权书 本学位论文作者完全了解逝鎏盘鲎有权保留并向国家有关部门或机构送交本 论文的复印件和磁盘,允许论文被查阅和借阅。本人授权澎江盘堂可以将学位论文的 全部或部分内容编入有关数据库进行检索和传播,可以采用影印、缩印或扫描等复制手段 保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名: 导师签名: 签字日期:年月 日签字e t 期:年 月 日 浙江大学硕士学位论文第一章绪论 1 1 课题背景 第一章绪论 在计算机领域,虚拟化技术可以被广义地视为计算资源( 包括c p u 时间、 内存资源、存储空间和网络接口带宽等) 的抽象【1 1 。虚拟化技术向用户隐藏了计 算资源的物理属性。这包括两个方面:将计算资源看成一个整体,再将这个整体 进行逻辑区分,形成多个相互独立的可用计算资源子集:以及将多个物理资源抽 象为一个整体。随着硬件技术的不断发展,为虚拟化的实现也提供了越来越大的 空间,它已经被广泛应用于计算机的各个领域。在服务器领域,虚拟技术能够使 一台物理计算机像数台虚拟计算机那样运行,还能够在运行中将应用软件由一台 计算机转移到另一台计算机上;在存储领域,虚拟技术能够使分布在不同位置的 存储设备像一台存储设备那样运行;在通讯网络领域,虚拟软件能够将一个网络 划分为几个层来支持不同的应用。虚拟化已成为计算机技术中最具发展潜力的领 域之一。 对于虚拟化技术的研究工作,主要是如何封装实现技术的细节,提供外部的 接口来隐藏实际的操作。在计算机体系结构中,从计算资源的角度来讲,有资源 的提供者和资源的消费者。虚拟化技术提供了一个在资源的消费者和提供者中间 的层次,为他们提供虚拟的接口。虚拟层可以使多个资源消费者与同一个资源提 供者交互,互者一个资源消费者和多个资源提供者交互,甚至多个资源消费者和 多个资源提供者交互。本文的研究内容针对于第一种情况。 当前的虚拟化技术主要包括平台虚拟化,全虚拟化,半虚拟化等。除了软件 技术上的不断革新,硬件对于虚拟化的支持也在不断地进步。i n t c l 、a m d 都开 始在它们的芯片中集成了虚拟技术的支持。无论是w i n d o w s 还是l i n u x ,都已经 将虚拟化集成到了内核中,虚拟化正在向操作系统的服务转变。当前虚拟化的产 品多种多样,虚拟化市场的竞争愈演愈烈。然而面临虚拟化技术要解决的主要问 题,包括系统性能、资源隔离、资源利用率以及资源访问安全等,每一种技术都 有着它自己的劣势。 综上所述,虽然虚拟化技术自诞生起至今得到了长足的发展,但现在却并没 浙江大学硕士学位论文第一章绪论 有成熟,没有任何的组织能够给出虚拟化实现的标准。虚拟化技术的实现涉及硬 件与软件的综合,使得这一问题的研究面临不小的挑战。 1 2 研究目标 本文的主要研究目标对x c n 的半虚拟化架构进行深入的分析与研究。 在当前主流的虚拟化解决方案中,b o c h s 是提供了整套硬件平台的虚拟环 境,它完全模拟了所有的硬件接口,但是这样却对性能产生了极大的影响,b o c h s 比较适合于来开发小型的操作系统内核,因为它提供了强大的调试功能,但却并 不适合用来运行实际的操作系统实例;v l w a r c 是全虚拟化实现的代表,它也无 需更改客户操作系统,但是它的实现是通过二进制代码翻译来动态捕捉会因特权 级而产生问题的指令,并将它们替换为w a r e 的虚拟实现,虽然它的性能要比 b o c h s 好得多,但由于要监听二进制代码性能的损耗仍然比较大;x c n 是一款既 提供半虚拟化也提供全虚拟化的解决方案,半虚拟化解决方案需要修改客户操作 系统的内核以让其与x c n 协同完成虚拟化工作,全虚拟化解决方案是利用c p u 提供的硬件虚拟化支持,无论是客户系统与x e n 协同工作的半虚拟化还是得用 硬件实现的全虚拟化,它的性能以及资源隔离性都十分优秀;k v m 利用c p u 提 供的硬件虚拟化支持提供了全虚拟化的实现,它是作为l i n u x 的一个模块,只是 它依赖于硬件的支持而缺乏可移植性。 基于以上的分析,本课题针对x e n 中针对x 8 6 架构的半虚拟化实现进行了 深入的分析。因为它既提供良好的系统性能,也不需要对硬件的依赖,同时它是 开源的项目,使得对它的研究可以很方便地进行。 1 3 研究内容及结构组织 本文共分五章: 第一章是绪论,概述了本文的课题背景,给出了虚拟化的概念以及虚拟化的 发状况,并简要介绍了本文的课题研究目标,给出了全篇论文的组织。 虚拟化方法有多种,虚拟化平台也存在多种体系结构,为了更好地说明本文 工作,第二章对虚拟化技术进行了综述,比较详细地介绍了虚拟化技术的历史现 状以及发展趋势,分析了虚拟化的应用前景,并对主流的虚拟化技术进行了对比。 2 浙江大学硕士学位论文第一章绪论 为第三章和第四章的研究提供了技术背景。 第三章分析了x e n 虚拟机的总体设计,给出了设计的总体架构,阐明了设 计时遵循的原则,对半虚拟化架构进行了简要表述,包括系统的启动初始化、通 信机制的设计、c p u 虚拟化、内存虚拟化以及设备虚拟化。 第四章研究了x e n 半虚拟化设计的实现细节,在这一章里对设计的细节进 行了详细的分析,包括相关的数据结构,并分析了这些技术方案的优势。 第五章对虚拟化技术做了总结与展望,主要是对虚拟机的动态迁移以及虚拟 化统一接口的简要讨论,对虚拟技术及其应用的前景做了展望。 1 4 本章小结 本章介绍了课题的背景,其中给出了虚拟化的定义,简要介绍了虚拟化技术 的现状,然后给出了本课题的研究目标,最后给出了本文的主要研究内容及章节 安排。 3 浙江大学硕士学位论文第二章虚拟化技术综述 第二章虚拟化技术综述 虚拟化技术并没有统一的实现,从广义的角度讲,虚拟化包括硬件分区技术、 平台模拟技术、完全虚拟化技术、半虚拟化技术、基于容器的虚拟化技术、预虚 拟化技术等。并且由于硬件虚拟化技术的支持,使得虚拟化的发展更进一步。 第一章讲到虚拟技术的实现是在资源的消费者与资源提供者之前插入虚拟 抽象层,这一层为资源消费者提供虚拟的资源提供者接口,为资源提供者提供虚 拟的资源消费者接口。这一层般被称为虚拟监视器( 删,v h - m a lm a c h i n e m o n t i n o r ) ,让使用虚拟机的操作系统( 通常称为g u e s to s ,客户操作系统) 认 为自己是直接运行在硬件之上。它提供了资源的抽象,并负责调配资源,从而让 多个虚拟机能够同时利用所有资源。 本文的主要目的是虚拟化技术的一种实现,因此有必要在这里介绍和虚拟化 技术相关的各种背景知识和技术发展趋势等内容。通过对比不同的虚拟化技术以 及产品,讨论虚拟化的发展方向,体现本文研究内容的意义。 2 1 虚拟化技术介绍 2 1 1 虚拟化技术的历史 对虚拟化技术已有了几十年的研究。早在上世纪6 0 年代,美国的计算机学 术界就开始了虚拟技术的萌芽。1 9 5 9 年6 月在国际信息处理大会上,c h r i s t o p h e r s 仃a c h e y 的一篇有关计算机分时应用的论文,被认为是虚拟化技术的最早论述和 萌芽。2 0 世纪6 0 年代的u n c o l c 2 l 系统也是早期虚拟化技术的一种体现,它意 图将面向问题的语言( p r o b l e m - o r i e n t e dl a n g u a g e s ,p o l ) 和面向机器的语言( m l ) 通过统一的中间语言u n c o l ( u n i v e r s a lc o m p u t e ro r i e n t e dl a n g u a g e ) 联系在一 起。这可以看作j a v a 虚拟机和m i c r o s o f t n e t 平台的雏形。 尽管目前的虚拟化技术热潮是由于该技术在x 8 6 服务器上的迅速普及引发 的,但虚拟化技术的最初来源却不在x 8 6 架构上,而是大型主机。最早使用虚拟 化技术的是i b m7 0 4 4 计算机,i b m 之后在上世纪6 0 年代还开发了型号为m o d e l 4 浙江大学硕士学位论文第二章虚拟化技术综述 6 7 的3 6 0 3 7 0 系统主机【3 ,4 ,5 1 。大型主机性能十分强大,但价格也十分昂贵,而虚 拟技术能够在同一硬件平台上虚拟出多个大型主机的硬件环境,从而满足了充分 利用大型主机的需求。m o d e l6 7 主机通过虚拟机监视器( v i r t u a lm a c h i n em o n i t o r ) 虚拟所有的硬件接口。操作系统被称做s u p e r v i s o r ,能够运行在其它操作系统之 上的操作系统被称做h y p e r v i s o r 。v l v i l v l 直接运行在底层硬件上,允许执行多个 虚拟机( v m ) ,每一个v l v l 运行自己的操作系统实例。 在2 0 世纪8 0 年代后期以及9 0 年代初期,随着技术的发展,特别是随着m m 兼容个人计算机的爆炸式增长,计算机硬件的价格不断下降,使得计算机使用者 不再为了保护硬件高效而需要在一个硬件平台上运行多个操作系统,这对传统虚 拟化技术的研究和应用进入了暂时的低潮期。但近几年来随着多核技术的出现, 计算机系统处理能力大幅度提升、规模不断扩大,但是软件环境和配置管理日趋 复杂,应用的需求也越来越灵活多样,在这些综合因素的促进下,虚拟化技术又 一次得到了学术界和工业界的重视。1 9 9 8 年v 1 v 1 w a x e 公司成立并推出了 v m w a r d 6 】系列虚拟机软件。同年微软兼并了c o n n e c t i x 公司,推出了v l r t u a lp c 虚拟化软件【7 1 。最近i n t e l 和a m d 将虚拟化技术集成到各自的处理器内部,以便 能够在未来的虚拟化市场占有一席之地。在开放源码领域,英国剑桥大学发步的 x e n 获得了国际各大厂商的支持,成立了x e n s o u r c e 公司,现已被c i t r i x 公司收 购【引。虚拟化市场的竞争越来越激烈。 2 1 2 虚拟化技术的应用 我们在一个更广泛的环境中或从更高级的抽象( 如任务负载虚拟化和信息虚 拟化) 来考虚拟化技术,虚拟化技术是一个非常强大的概念,可以为最终用户、 应用程序和企业提供很多应用。 虚拟机最原始的应用就是对同一硬件平台进行资源划分,提高硬件利用率。 对于企业而言,虚拟化技术可以减少i t 成本,增加服务器的利用率。关于服务 器虚拟化的概念,各个厂商有自己不同的定义,然而其核心思想是一致的,即它 是一种方法,能够通过区分资源的优先次序,并随时随地能将服务器资源分配给 最需要它们工作负载来简化管理和提高效率,从而减少为单个工作负载峰值而储 备的资源。实际上,虚拟化技术可以通过两个方向来帮助服务器更加合理地分配 浙江大学硕士学位论文第二章虚拟化技术综述 资源,一种方向就是把一个物理的服务器虚拟成若干个独立的逻辑服务器;另一 个方向,就是把若干个分散的物理服务器虚拟为一个大的逻辑服务器。 服务器加固也是虚拟机诞生时的一个主要应用。由于传统操作系统下各个进 程之间的互相影响,一个进程的异常往往引起其他进程的死锁甚至整个系统的崩 溃,这一问题在服务器领域尤其重要。利用虚拟化技术将不同的应用程序运行在 不同的虚拟机上以实现应用之间的完全隔离,避免传统操作系统下各个进程之间 的互相影响成为实现服务器加固的一个重要方法【9 】。如当一个虚拟机上的应用受 到网络病毒的感染而不能正常的响应时,系统管理员只需要关闭该虚拟机而不会 影响其它虚拟机上的应用,这就在最大程度上巩固了服务器。 虚拟化技术也为提升服务器的安全性提供了一种选择f 埘。在虚拟化技术的 帮助下,一个虚拟机无法直接访问另一个虚拟机上的资源,就如同各自运行在不 同的物理机器上,这使得一个应用的安全漏洞不会影响另一个应用。另外通过对 它上面的虚拟机资源访问施加安全认证可以有效地实施整体安全认证,例如通过 其中针对对属于特定用户群的虚拟机的网络访问实施限制等【1 1 1 。 服务器灾难恢复是虚拟机技术的又一个快速发展的应用领域。常规的服务器 备份通常需要应用程序的支持,例如对斤数据库的备份必须靠厅数据库本身提供 的功能,而这对某些应用并不总是适合。采用虚拟化技术的虚拟机保存和恢复功 能可以将整个虚拟机状态含内存和刀设备保存下来,在一旦虚拟机遇到灾难性事 件无法正常执行时,恢复以前保存的虚拟机使其重新执行成为可能,而不管应用 本身是否有数据备份。虚拟化技术的服务器灾难恢复很像常用的服务器硬盘备 份,但其系统恢复速度则远远快于硬盘备份,应用领域也远大于硬盘备份【1 2 1 。 虚拟化技术也为计算机领域的研究提供了良好的实验环境【1 3 1 。通过虚拟化 技术将一台工作站配置成由若干台虚拟机组成的局域网,并在它上面开发测试各 种网络,可以为集群、病毒分析等研究提供虚拟环境。 2 1 3 虚拟化技术的发展趋势 虚拟化技术的本质是一种资源管理技术,他不会创造任何新的资源,只能是 让资源更合理的利用。虚拟化技术本身有很多的方向,网络级( v l a n ) 、芯片级 ( i n t e lv t a m dp e r c i f i e a ) 、硬件级( 存储设备服务器) 、操作系统级、软件级等。 6 浙江大学硕士学位论文第二章虚拟化技术综述 将一台主机虚拟化成多台的是传统的虚拟化技术,但虚拟化还有另外一个方向一 一网格技术,这个技术是将所有的分散的资源组织在一起,共同完成某种特定任 务。当然从某种意义来说,服务器集群以及并行计算技术也可以达到类似的效果, 但是网格技术是基于互联网的,所以前景更加光明。 据市场研究公司i d c 称,虚拟化迅速为人们接受已经帮助改变了1 1 r 的经济, 不仅降低了资本成本而且还减少了运营成本。随着用户越来越熟悉这个技术,虚 拟化不仅用来解决服务器整合的难题,而且还用来解决其它问题。虚拟化的进一 步发展趋势主要是解决移动性和动态迁移。 i d c 预测称,2 0 0 7 年服务器关机时间使全球机构在办公效率和收入方面损 失了大约1 4 0 0 亿美元。因为虚拟化软件有效地解除了应用程序栈与基本硬件之 间的关系,虚拟服务器能够像一个文件那样被拷贝、备份、复制和移动。而且, 越来越多的虚拟化软件提供商已经采用了执行动态迁移( l i v em i g r a t i o n ) 的能力。 这两种能力提供一种快速分配计算资源的低成本的方法,不需要任何关机时间。 移动性将把虚拟化应用到整合工具以外的领域。采用移动性将允许用户把虚拟化 技术用于业务持续性和容量规划等方面,并且最终作为提供面向服务的计算的一 个解决方案。在容量规划使用的实例中,用户将把多个主机当作一个单一的资源 池,虚拟机的负荷将根据处理器、内存、输出输入使用水平以及用户制定的政策 在这个资源池中进行平衡。这将使i t 设计师在资源池的水平上进行规划。设计 师知道通过快速和有效地重新分配可用的服务器资源能够满足任何需求的高峰。 通过把s e a ( 面向服务的架构) 与虚拟化结合在一起能够实现“基于政策的自 动化 。在这种情况下,n 专业人员能够把基础设施和应用程序的交付转移到管 理系统。这些管理系统连接到企业制定的政策和服务水平。虽然要实现这个目标 需要整个行业进行前所未有的协作,但是,如果它取得成功,它将是把i t 从面 向服务的计算发展到“云 计算的一个关键步骤。 2 2 虚拟化技术分类 2 2 1 硬件分区技术 最早的分区技术【1 4 1 诞生自人们想提升大型主机利用率需求,在金融、科学 7 浙江大学硕士学位论文第二章虚拟化技术综述 等领域,大型u n i x 服务器通常价值数千万乃至上亿元,但是实际使用中多个部 门却不能很好的共享其计算能力,常导致需要计算的部门无法获得计算能力,而 不需要大量计算能力的部门占有了过多的资源。分区技术可以将一台大型服务器 分割成若干分区,分别提供给不同的部门。 硬件资源被划分成数个分区,每个分区享有独立的c p u 、内存,并安装独 立的操作系统。在一台服务器上,存在有多个系统实例,同时启动了多个操作系 统。随着技术的进步,现在对于资源划分的颗粒已经远远提升,例如在m ma i x 系统上,对c p u 资源的划分颗粒可以达到0 1 个c p u 。这种分区方式,在目前 的金融领域,比如在银行信息中心得到了广泛采用。这种分区方法的主要缺点是 缺乏很好的灵活性,不能对资源做出有效调配。 2 2 2 模拟器技术 在广义的定义上模拟器技术( e m u l a t i o n ) 也是一种虚拟化技术。模拟器技 术的主要实现方法是读取c p u 指令,对它们进行解释,并且模拟执行,保证这 些代码指令的执行效果。它的典型代表包括s k y e y e 15 1 、b o c h s 1 6 1 和q e m u 1 刀等。 完全模拟技术是在一种硬件系统结构上完全模拟另一种硬件系统结构或者 同种硬件系统结构。s k y e y e 就是在x 8 6 平台上模拟a r m 等体系结构,它是一个 指令级模拟器,可以模拟多种嵌入式开发板,支持多种c p u 指令集,在s k y e y e 上运行的操作系统意识不到它是在一个虚拟的环境中运行,而且开发人员可以通 过s k y e y e 调试操作系统和系统软件。b o c h s 是一个仿真x 8 6c p u 的计算机模拟 器,它具有可移植性和可运行在多种平台上,如x 8 6 ,p o w e r p c ,a l p h a ,s p a r c 和m i p s 。b o c h s 的优点是不仅能模拟处理器,而且能模拟整台计算机,包括外 设如键盘,鼠标,视屏图像硬件,网卡等。它甚至能模拟图形指令如m m x 和 3 d n o w 。q e m u 是一个类似于b o c h s 的模拟器,它支持2 个操作模式。一个是 全系统模拟模式。该模式类似b o c h s 模拟整个计算机系统( 包括处理器和外设) 。 而且能在合理的速度下使用动态翻译模拟一些处理器架构如x 8 6 ,x 8 66 4 , a r m ,s p a r c ,p o w e r p c 和m i p s 。还支持在l i n u x ,s o l a d s 和f r e e b s d 系统上 模拟w i n d o w s 系统( 包括x p ) 和l i n u x 系统。q e m u 的第二个模式:用户模式 模拟。该模式能寄存在l i n u x 上,不同平台的二进制程序也能运行。比如,一个 8 浙江大学硕士学位论文第二章虚拟化技术综述 m i p s 平台上的二进制程序能够运行在x 8 6 平台上的l i n u x 系统。其它支持的平 台包括a r m ,s p a r c 和p o w e r p c ,而且还有更多正在开发的平台。 模拟器技术最大的优势就是可以跨平台运行不同体系结构的二进制代码。但 是模拟器需要模拟硬件的各个寄存器和状态机的状态,这往往会耗费巨大的c p u 开销,严重影响性能。 2 2 3 库级虚拟化 这种虚拟化实现方式是通过库来模拟操作系统的一部分。应用程序通常情况 下都是通过一组a p i 和操作系统进行交互,库级虚拟化就是通过截获操作系统 a p i 并提供虚拟的实现,来完成不同操作系统的运行。它主要以w i n d l 8 】以及 c y g w i n t l 9 】为典型应用。 w i n e ( w i i l ei sn 0 ta ne m u l a t o r ) 是在x 8 6 体系结构的l i n u x 操作系统下执行 部分w i n d o w s 应用程序的工具。它相当于一个w i n d o w s 兼容层,提供了一个用 来从w m d o w s 源进出到u n i x 的库( w i n c l i b ) ,帮助开发者编译w i n d o w s 应 用程序,将它们移植到u n i x 系操作系统;也提供了一个程序加载器,该加载器 允许不用任何修改w i n d o w s 的二进制文件,就可以运行在i n t e lu n i x 及其衍生 版本下。w i n e 的开发者在2 0 0 5 年发布了第一个b e t a 版本( v e r s i o no 9 ) ,w i n e1 0 版将暂定于2 0 0 8 年6 月1 日发布,工程距今为止己将近整整1 5 年。 c y g w i n 是一个在w i n d o w s 平台上运行的u n i x 模拟环境,是c y g n u ss o l u t i o n s 公司开发的自由软件。它把w i n 3 2a p i 中没有的u n i x 风格的调用( 如f o r k , s p a w n ,s i g n a l s ,s e l e c t ,s o c k e t s 等) 封装在里面,也就是说他们基于w i n 3 2a p i 写了一个u n i x 系统库的模拟层。以这些移植到w i n d o w s 平台上的开发工具为 基础,c y g n u s 又逐步把其他的工具软件移植到w i n d o w s 上来。这样,在w i n d o w s 平台上运行b a s h 和开发工具、用户工具,就好像在u n i x 上工作一样。 这种虚拟方式相当于是在应用程序级别对资源进行了抽象,而不能在一个硬 件平台上运行多个操作系统实例,并且这种技术受到对a p i 封装实现方式的限 制,其性能也并不是很好。 9 浙江大学硕士学位论文 第二章虚拟化技术综述 2 2 4 操作系统级的虚拟化 操作系统级的初始化( o p e r a t i n gs y s t e m - 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 ) 的虚拟化技术,该技术在主操作系统之上虚拟多个服务器, 支持在单个操作系统上简单隔离每一个虚拟服务器,每个虚拟操作系统就像运行 在一个“容器”中一样。客户操作系统环境共享相同的主操作系统资源,每一个 虚拟服务器中运行的都是相同的内核。 这种虚拟化需要修改操作系统内核,它的优点是具有原始主机的性能。容 器并不模拟任何的底层硬件,而是被虚拟的操作系统或应用程序和宿主机交互, 宿主机再通过合适的调用从而使用真实的硬件。基于容器的虚拟化技术提供一个 共享的虚拟化的操作系统,包括唯一的根文件系统,一个安全共享的系统可执行 程序和库文件集合。每个客户操作系统可以像一个普通操作系统那样启动和关 闭,在必要的时候甚至可以几秒钟内重启。对于基于容器系统的应用程序和用户 来说,v i v l 就像一个分离的主机。基于容器的虚拟化软件包括s o l a r i sc o n t a i n e r 2 0 1 和o p v z 2 1 】等。 s o l a r i sc o n t a i n e r 允许一个s o l a r i s 系统内划分多个分区,每个分别独立运行 s o l a r i s 实例。和硬件分区不同,s o l a r i sc o n t a i n e r 是纯粹的软件实现。在一个机 器上划分的多个分区的s o l a r i s 系统,彼此相互隔离,就好像同时拥有多个机器 一样。s o l a r i sc o n t a i n e r 由r e s o u r c em a n a g e r 和z o n e 共同构成。r e s o u r c e m a n a g e r 可以让客户在应用中合理地分配系统的资源,比如c p u 的使用时间,监控系统 资源的利用率,必要时可以调整系统资源的分配。s o l a r i sc o n t a i n e r 可在同一部 机器上包含多达8 0 0 0 个s o l a r i s 实例,这样的s o l a r i s 实例叫做z o n e 。每个独立 的z o n e 拥有独立进程虚拟空间、资源分配、用户。 o p e n v z 是基于l i n u x 平台的操作系统级服务器虚拟化解决方案,它以 s w s o f t 公司的v i r t u o z z o 技术为基础。o p e n v z 可以在单个物理服务器上创建多 个隔离的虚拟专用服务器( v p s ) 并以最大效率共享硬件和管理资源。每个v p s 的运行和独立服务器完全一致,因其自身的用户、应用程序都可以独立重起,它 拥有根访问权限、用户、i p 地址、内存、处理器、文件、应用服务、系统库文 件和配置文件等。从应用程序和v p s 用户的角度来看,每个v p s 是完全独立的 系统,这种独立性由位于系统内核之上的虚拟化层来提供。 l o 浙江大学硕士学位论文第二章虚拟化技术综述 这种虚拟化技术的实现方案优势在于可以方便快捷地新建或撤销一个客户 操作系统,并且多个虚拟环境以模板的方式共享一个文件系统,性能损耗比较小, 不同的客户操作系统间资源隔离也比较好。但是这种技术只能建立相同的虚拟化 实例,即所有客户操作系统只能运行与主操作系统一样的内核,这限制了它的使 用范围。 2 2 5 全虚拟化 在完全虚拟化技术( f u l lv 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 em o n i t o r , 虚拟层作为应用级别的软件而存在,不涉及操作系统内核。虚拟层会给每个虚拟 机模拟一套独立的硬件设备,包含c p u 、内存、主板、显卡、网卡等硬件资源, 在其上安装客户操作系统,最终用户的应用程序运行在客户操作系统中。它区别 于其他虚拟化技术最大的特点就是允许操作系统完全不需修改地运行在虚拟平 台上。这种技术的典型代表是v m w a r cw o r k s t a t i o n 捌和u m l ( u s e rm o d ei j n 慨) 【2 3 】垂枣 寸o v m w r r cw o r k s t a t i o n 采用了将常用的p c 硬件进行虚拟化的方法,允许多个 操作系统在同一台主机上运行。h y p c t v i s o r ( 虚拟机管理程序) 是客户操作系统 和硬件之间的抽象层。该抽象层允许任何其它客户操作系统运行在主机操作系统 之上。它采用了二进制翻译( b i n a r yt r a n s l a t i o n 2 4 1 ) 技术,在被虚拟的操作系 统运行时监听二进制指令动态捕捉特权操作,以相应的代码替换这些特权操作, 从而完成虚拟化的工作。v l v l w a r ew o r k s t a t i o n 也能虚拟i o 硬件,增加了高性 能设备驱动到h y p e r v i s o r 中。整个虚拟( 机) 环境实际上是一个单独的文件,这 意味整个系统( 包括客户操作系统,虚拟机和虚拟硬件) 可以简单快速地整合 到一个新的主机,从而实现负载均衡。 u s e r - m o d e l i n u x( u m l )让一个l i n u x 作为一个独立进程运行在另一个 l i n u x 上,每个虚拟的l i n u x 系统都是做为应用程序运行的,就是说运行在应用 程序级别使用用户空间,每个l i n u x 系统都是独立于其它的。它提供了优秀的安 全性和隔离性,在同一机器上进行多种测试和开发而不互相干扰,一些测试进程 损坏并不会影响宿主系统或者开发用进程。它是第一个被接收进标准l i n u x 内核 浙江大学硕士学位论文第二章虚拟化技术综述 的虚拟化技术,它本身被看作是l i n u x 内核所支持的众多处理器结构中的一个, 区别在于这是一个虚拟的结构。u m l 的内核是从标准l i n u x 内核源代码编译出 来,保持了大部分基本的通用功能,例如虚拟文件系统,内存管理,等等。但是 和正常的l i n u x 内核( 例如基于x 8 6 的版本) 相比,最明显的区别在于u m l 将 底层硬件相关的接口全部转化成了用户级别的系统调用,从而允许u m ll i n u x 本身可以作为一个用户进程运行。在u m l 的环境里,主操作系统和客户操作系 统运行的内核并不需要一致,这就允许虚拟运行老版本的内核进行,它还提供了 同机内核调试的功能。 完全虚拟化技术最大的好处就是可以无需修改操作系统,直接移植到虚拟环 境中,支持多个g u e s to s 。但是完全虚拟化的缺点就是虚拟机的g u e s to s 的系 统性能会受到影响,而且往往比原有的系统性能下降不少,尤其是在i a 3 2 等常 见体系结构上。因为它们运行在用户空间,频繁地由用户空间向内核空间进行切 换严重地影响了它的性能。 2 2 6 半虚拟化 为了改善完全虚拟化技术的性能,一种新的半虚拟化技术( p a r a - v i r t u a l i z i o n ) 技术诞生了。它使用h y p e r v i s o r 分享存取底层的硬件,但是它的客户操作系统 集成了虚拟化方面的代码。该方法无需重新编译或引起陷阱,因为操作系统自 身能够与虚拟进程进行很好的协作。与全虚拟化的动态监听客户操作系统的二进 制代码相比,半虚拟化是在源码级别替换掉客户操作系统中的特权级操作。通过 对操作系统的内核做一定的修改,使得原本一些需要直接通过c p u 执行的保护 任务,可以在修改后的内核中直接执行,这样就有效的提高了虚拟机的效率。客 户操作系统通过类似于系统调用的方式陷入v m m 完成其特权级操作的请求。这 种技术的典型代表是d e n a l i 2 5 】和x e n 2 6 1 。 d e n a l i 是华盛顿大学的一个研究项目,目标是提供一个“轻量级的保护域 机制,运行多个最小化资源、快速响应的虚拟机。d e n a l i 的虚拟抽象层不仅是单 纯的模拟硬件,而且对底层的接口做了一定的修改。通过改进中断队列、去除对 虚拟内存的支持、只支持某些特定的通用i o 设备等手段,实现了同时运行多个 虚拟机实体,而且保证了性能。d e n a l i 的缺点是不能支持通用操作系统的虚拟化, 1 2 浙江大学硕士学位论文 第二章虚拟化技术综述 运行在d e n a l i 上的只能是它自己开发的i l w a c o 操作系统,包括一个简单的t c p i p 协议栈,一个l i b c 库的子集,简单的多线程支持。 x e n 是在剑桥大学作为一个l i n u x 研究项目开发的,它已经在开源社区中得 到了极大的推动。x e n 是一款既支持半虚拟化也支持全虚拟化的v m m ,它的全 虚拟化利用了硬件对虚拟化的支持。在它的半虚拟化架构中,为了调用系统管理 程序,要有选择地修改需要虚拟化的操作系统,所以当前的l i n u x 内核不能直接 在x e n 系统管理程序中运行,除非它已经移植到了x e n 架构。但是并不需要修 改操作系统上运行的应用程序。x e n 需要与系统共同协作( 客户操作系统需要修 改) 共同完成虚拟化的实现。x e n 的半虚拟化的技术获得了高效能的表现,典型 的情况下大约损失2 ,在最糟的情况下会有8 的效能耗损。 准虚拟化技术的优点是性能高。经过准虚拟化处理的服务器可与h y p e r v i s o r 协同工作,其响应能力几乎不亚于未经过虚拟化处理的服务器。准虚拟化与完全 虚拟化相比优点明显,以至于微软和v m w a t e 都在开发这项技术,以完善各自的 产品。但是从系统支持( 比如支持其它非开源的操作系统) 的角度来看,需要 修改操作系统内核显然是一个不足之处。 2 2 7 硬件支持的虚拟化 按照g e r a l dj p o p e k 和r o b e r tp g o l d b c r g 制定的虚拟化标准f 2 7 1 ,大多数的 现代体系结构的处理器( c p u ) 没有将虚拟化技术从设计上考虑进去,因此在硬 件结构上并没有对虚拟化提供支持,这其中就包括了流行的i n t e li a 3 2 体系结构。 这对虚拟化技术的一个影响就是很难提升虚拟化的效率。而支持虚拟技术的c p u 带有特别优化过的指令集来控制虚拟过程,通过这些指令集,虚拟化会很容易提 高性能,相比软件的虚拟实现方式会很大程度上提高性能,并且也简化了v m m 设计,进而使v m m 能够按通用标准进行编写。 基于这样的考虑,i n t e l 与a m d 开始在硬件中加入对虚拟化的支持。i n t d 自2 0 0 5 年末开始便在其处理器产品线中推广应用i

温馨提示

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

评论

0/150

提交评论