(计算机科学与技术专业论文)虚拟机可靠性备份机制的研究与实现.pdf_第1页
(计算机科学与技术专业论文)虚拟机可靠性备份机制的研究与实现.pdf_第2页
(计算机科学与技术专业论文)虚拟机可靠性备份机制的研究与实现.pdf_第3页
(计算机科学与技术专业论文)虚拟机可靠性备份机制的研究与实现.pdf_第4页
(计算机科学与技术专业论文)虚拟机可靠性备份机制的研究与实现.pdf_第5页
已阅读5页,还剩62页未读 继续免费阅读

(计算机科学与技术专业论文)虚拟机可靠性备份机制的研究与实现.pdf.pdf 免费下载

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

文档简介

国防科学技术大学研究生院硕士学位论文 摘要 随着计算机系统不断的发展,虚拟机以及计算虚拟化技术重新成为计算机体 系结构领域的研究热点。伴随着i t 硬件的丰富化、多样化以及一些软件公司如 v m w a r e 、x e n 、微软等推出不同的虚拟机软件,虚拟机的应用越来越广泛。保护 数据免受大规模灾难是非常重要的,特别是对重要的企业例如银行、股票市场和 其他服务提供商。这使得人们对虚拟机的可靠性备份提出了更高的要求,在安装 一个不确定的软件时候,需要备份系统以便在安装出错时回滚到历史状态而不至 于重装系统;大型的软件测试甚至操作系统的测试通常非常复杂,病毒的入侵通 常会带来毁灭性的破坏,这些问题对于通常的物理机很难解决,而使用虚拟机, 通过提供可靠的备份技术可以完成上述功能。 本课题主要研究虚拟机可靠性备份机制,首先提出了面向虚拟块设备的通用 层快照模型,测试并比较了两种快照模式( 写复制和重定向写) 的性能,实现多 重快照以及用户自定义快照频率的功能,来达到高可用环境下的容错、数据恢复 以及软件错误的跟踪调试等,并对其进行了实现和测试;其次提出了对虚拟机自 适应持续数据保护机制,通过收集系统的各种信息,动态自适应发送数据,降低 对系统性能的影响,并采用t r a p 技术进行数据压缩,使得备份数据量减少;最后 结合持续数据保护技术和检查点技术本文实现了虚拟机的回滚机制,并且设计合 理元数据组织方法,达到快速高效的虚拟机回滚的目标,实现历史的重现,这在 软件测试和入侵检测中有重要作用。 主题词:持续数据保护,快照,备份,回滚,虚拟机 第i 页 国防科学技术大学研究生院硕士学位论文 a bs t r a c t w i t ht h ec o n t i n u o u sd e v e l o p m e n to fc o m p u t e rs y s t e i 璐,v i r t u a lm a c h i n e sa n d v i r t u a l i z a t i o nt e c h n o l o g yb e c o m eh o ts u b j e c t so fr e s e a r c ho fc o m p u t e ra r c h i t e c t u r e a l o n gw i t hi th a r d w a r eb e i n gp r o l i f i ca n dan u m b e ro fs o f t w a r ec o m p a n i e ss u c ha s v m w a r e ,x e n , m i c r o s o 屯d e v e l o ps o i i 呛d i f f e r e r av i r t u a l r m c h i n es o f t w a r e ,i t s a p p l i c a t i o nm o r ew i d e l y p r o t e c t i n gd a t af r o ml a r g e s c a l ed i s a s t e r si sv e r yi m p o r t a n t , e s p e c i a l l y f o ri m p o r t a n tb u s i n e s ss u c ha sb a n k s ,s t o c km a r k e t , a n do t h e rs e r v i c e p r o v i d e r s t h i sm a k e si tp u tf o r w a r dh i g h e rr e q u i r e m e n t st ot h er e l i a b i l i t yo f b a c k u po f v i r t u a lm a c h i n e s w h e nw ei n s t a l lu n c e r t a i ns o f t w a r e ,w er e e dab a c k u po f t h es y s t e m s h i s t o r i c a ls t a t et or o l l b a c kw h e na ne r r o ro c c u r sd u r i n gi n s t a l l a t i o ni n s t e a do fr e i n s t a l l s y s t e m i ti sv e r yc o m p l e xt o t e s t1 a r 萨- s c a l es o f t w a r eo ro p e r a t i n gs y s t e m a l s ot h e v i r u si n v a s i o nc a nb r 吨d e v a s t a t i n gd a m a g e ,w h i c hm a d ei tv e r yd i f f i c u kt oc o p ew i t h f o rt h ep h y s i c a lr m c h i n e h o w e v e ri te a s yi f w eu s et h er e l i a b i l i t yb a c k u pm e c h a n i s mo f v i r t u a lm a c h i n e w ec o n c e n t r a t eo nt h er e l i a b i l i t yb a c k u pm e c h a n i s mo ft h ev i r t u a lm a c h i n e f i r s t w ed e v e l o pt h ec o m m o nl a y e rs n a p s h o tt e c h n o l o g yt oa c h i e v eh i g h - a v a i l a b i l i t y f i u l t - t o l e m n te n v i r o n m e n t , d a t ar e c o v e r ya n dd e b u gs o f t w a r ee r r o r s ,e r e s e c o n dw e p r o p o s ea d a p t i v ec o n t i n u o u sd a t ap r o t e c t i o nm e c h a n i s m s ,w h i c hc o l l e c t st h es y s t e ma l l k i n d so fi n f o r l m t i o na n dt h ed y n a m i cs e l f - a d a p t i v et os e n dd a t at or e d u c et h ei m p a c to n s y s t e mp e r f o n m n c e i no r d e rt or e d u c et h ea m o u n to fb a c k u pd a t a , w ei n t r o d u c et h e t r a pd a t ac o m p r e s s i o nt e c h n o b g y f i n a n y ,w ea c h i e v eav i r t u a lm a c h i n eb a c kt or o l l i n g m e c h a n i s mt h r o u g ht h ec o m b i n a t i o no fc o n t i n u o u sd a t ap r o t e c t i o nt e c h n o l o g ya n d c h e c k p o i n tt e c h n o l o g y w i t hw e l l d e s i g n e dm e t a d a t ao r g a n i z a t i o nm e t h o d ,t h es y s t e m c a nr o l lb a c kt h ev i r t u a lm a c h i n ef a s ta n de f f i c i e n t l yw h i c hc a nr e p e a to fh i s t o r y i n f o r m a t i o na n dp l a ya ni m p o r t a n tr o l ei nt h es o f t w a r et e s t i n ga n di n t r u s i o nd e t e c t i o n k e yw o r d s :c o n t i n u o u sd a t ap r o t e c t i o n ,s n a p s h o t ,b a c k u p ,r o l l b a c k , v i r t u a im a c h i n e 第i i 页 国防科学技术大学研究生院硕士学位论文 表目录 表1 1 虚拟机快照功能比较2 表2 1三个层次虚拟机备份方法的比较2 0 表3 1k v m 中扩展的主要快照接口函数3 1 表5 1 逻辑地址物理地址映射表5 1 表5 2 分支表5 1 第i 页 国防科学技术大学研究生院硕士学位论文 图1 1 图2 1 图2 2 图2 3 图2 4 图2 5 图2 6 图2 7 图2 8 图3 1 图3 2 图3 3 图3 4 图3 5 图3 6 图3 7 图3 8 图3 9 图3 1 0 图4 1 图4 2 图4 3 图4 4 图4 5 图4 6 图4 7 图4 8 图4 9 图4 1 0 图4 1 1 图4 1 2 图4 1 3 图目录 虚拟机备份层次图6 几种不同的i o 设备虚拟化模式9 全虚拟化中的c p u 虚拟化示意图9 半虚拟化的c p u 虚拟化示意图1 1 x e n 的半虚拟化结构1 2 k v m 虚拟机体系结构1 3 机器地址,物理地址和虚拟地址15 半虚拟化与影子页表的比较1 6 v m w a r ev c b 代理备份1 9 v m m 层的全系统虚拟机服务2 3 v d i 快照与写时复制机制2 4 v m m 中的虚拟块设备驱动软件层2 5 v m m 中虚拟块设备驱动层的通用快照扩展模型2 6 x e n 设备虚拟机中的快照服务扩展2 6 c o w 和r o w 快照模式2 8 虚拟机多重快照2 9 快照表示3 0 q e m u 中的快照功能扩展3 1 不同快照频率和模式下l i n u x 内核编译时间比较。3 2 持续数据保护系统结构。3 4 持续数据保护的实现3 5 内存队列示意图3 6 共享内存映射图3 6 c o w 写过程示意图3 7 c o w 并行读写示意图3 7 数据发送流程图3 8 t r a p 压缩示意图4 0 增量备份机制4 1 重复数据删除位图4 1 m a xi o 测试结果图4 2 f i l es e r v e r 测试结果图。4 3 w e bs e r v e r 测试结果图4 4 第1 v 页 国防科学技术大学研究生院硕士学位论文 图4 1 4 压缩对比图4 4 图4 15c p u 使用率比较4 5 图5 1虚拟机回滚机制的体系结构4 7 图5 2 检查点的实现5 0 图5 3虚拟机回滚示意图5 1 图5 4 回滚数据测试结果5 3 第v 页 独创性声明 本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得 的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含 其他人已经发表和撰写过的研究成果,也不包含为获得国防科学技术大学或其它 教育机构的学位或证书而使用过的材料与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示谢意。 学位论文题目: 虐拯扭互靠性查笾狃剑鲍婴究生塞理 学位论文作者签名:盔辜丕勇日期:年p 月声日 学位论文版权使用授权书 本人完全了解国防科学技术大学有关保留、使用学位论文的规定本人授权 国防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子 文档,允许论文被查阅和借阅;可以将学位论文的全部或部分内容编入有关数据 库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密学位论文在解密后适用本授权书。) 学位论文作者签名:盔盘物 作者指导教师签名: 日期: 日期: 弘勿 胗 协 年 年 砷1 国防科学技术大学研究生院硕士学位论文 第一章绪论弟一早 三;百1 = 匕 计算机世界里,“虚拟化 无处不在。从最早的内存虚拟化到存储虚拟化, 以及近年来大行其道的资源虚拟化、网格计算以及云计算,虚拟化技术已经沉浸 到我们所触及i t 领域中的各个层面。今天,人们谈论虚拟化技术,更多的是指计 算系统虚拟化以及与之相关的虚拟机技术。随着虚拟机技术应用的越来越广泛, 虚拟机应用的安全可靠,数据备份技术也随之提出了更好的挑战。 本章首先介绍了虚拟机相关技术,列举了主流的虚拟机体系结构,并对其进 行了比较。然后阐述了本文的研究背景和研究意义,以及研究内容和目标。最后 列出了论文的提纲。 1 1 虚拟机技术概论 虚拟机技术真正的开发从上世纪六十年代才开始。i b m t l j 公司最早发明了一种 操作系统虚拟机技术,允许用户在一台主机上运行多个操作系统,让用户尽可能 地充分利用昂贵的大型机资源。最早使用这项技术的是i b m7 0 4 4 计算机,它基于 麻省理工学院( m i t ) 开发的分时系统c t s s ( c o m p a t i b l et i m es h a r i n gs y s t e m ) 2 j 和 曼彻斯特大学的a t l a s 项目( 世界最早的超级计算机之一) 而开发,首次使用了请 求调页和系统管理程序调用。可以看到,在虚拟机技术萌芽的上世纪六、七十年 代,人们研究虚拟计算的目标是对相对昂贵的硬件资源进行充分利用,通过虚拟 机手段让更多的人能够通过终端设备接触和使用计算机系统。从这一点来说,虚 拟机技术的发明是一项了不起的成就,它能够让更多的用户更好地共享当时非常 昂贵的计算机资源。但是,到上个世纪七、八十年代,随着大规模集成电路的出 现和个人电脑的普及,计算机硬件变得越来越便宜。当初为共享昂贵硬件而设计 的虚拟化技术慢慢无人问津,而只是在高档服务器( 如i b m 小型机) 中继续存在。 近年来,虚拟机以及计算虚拟化技术重新成为计算机体系结构领域的研究热 点,其原因主要有以下两个方面【3 】:其一,计算机系统经过多年发展,在变得越来 越强大的同时,也在变得越来越难以管理( 例如今天的网络系统、分布式计算系 统) ,软硬件( t c o ) 管理开销( 特别是电费开销) 也逐年增加。特别是随着处 理器多核化时代的到来、冗余计算资源的引入,这一矛盾势必越来越尖锐。其二, 今天的计算,已经从以前以计算机为中心向以用户为中心的服务计算过渡,人们 更关心的是计算系统能够为用户提供怎样的接口和提供怎样的服务,以适应用户 复杂和多样化的需求。在这一背景下,由于计算系统虚拟化技术既能够屏蔽底层 复杂的物理环境,又能够为用户提供可配置的使用环境,就自然重新成为工业界 第l 页 国防科学技术大学研究生院硕士学位论文 和学术界的研究热点。 1 2 研究现状 虚拟机技术使得一个物理机器上可以运行多个操作系统,打破了软硬件的紧 耦合性,带来分区、隔离、封装等好处【4 1 。虚拟机的备份包括虚拟磁盘、内存、 c p u 寄存器等部分,可以通过快照,迁移,克隆,臼志记录等操作实现。虚拟机 备份主要包括虚拟磁盘和内存的保存,这就涉及到虚拟机存储和内存虚拟化技术。 以下介绍相关的虚拟机快照、持续数据保护技术、回滚技术的研究现状。 1 3 1 虚拟机快照 快照功能相当于整个虚拟机的热拷贝,尽管虚拟机还在保持运行。对于一个 非常繁忙的系统,可能会有短暂的中断服务,但是快照的巨大优势还是远远超过 很小的停机时间。虚拟机快照技术通常针对虚拟磁盘进行,由于内存信息变化大, 保存方式有两种:1 ) 暂停虚拟机运行,把内存拷贝到文件;2 ) 通过虚拟机迁移 来实现内存的保存f 5 1 。 表1 1 虚拟机快照功能比较 简述优缺点 没有可视化界 x e n 其中q e m u 模块提供简单快照功能 面,功能简单且不稳 定 可以在任意时间、任何装台进行快照, 可视化界面,操 、俸乱v a r e 作方便,快照时需要 并可以回滚到任意快照点 挂起,占用空间大 v i r t u a l 在同一个母盘的基础上,通过差分磁功能简单,只能 p c 盘保存差分快照恢复到上一个快照 进行快照时需显式声明,系统把数据命令行操作,用 k v m写入临时文件,用户自己选择是否保存,户界面不友好,功能 系统推出自动把临时数据删除简单 虚拟磁盘的快照形式有两种:重定向写和写复制c o w ( c o p y o nw r i t e ) 【6 】。 重定向写快照技术是在快照时间点之后,对快照块的写操作将重新定向到快照盘, 而不对旧的数据修改。写复制快照原理是,当一个快照创建时,创建一个快照文 件用来映射到原始数据文件。对数据的修改时,把原始数据块拷贝到快照文件, 并且快照文件是只读属性,之后的读写操作直接对原始数据文件进行。快照后的 第一次写需要三个i o 操作:1 ) 把原始数据从原始数据文件读到内存,2 ) 把数据 第2 页 国防科学技术大学研究生院硕士学位论文 块写到快照卷,3 ) 把新数据写到原始数据文件。大多数的虚拟机的快照技术都是 采用这种技术。 常用的虚拟机包括:开源x e n , v m w a r e ,微软公司的v i r t u a lp c 和内核虚拟机 k v m 。其快照功能的比较如表1 1 【7 】【8 】【9 】1 1 0 】。 1 3 2 持续数据保护技术 持续数据保护( c o n t i n u ed a t ap r o t e c t i o n ) 【l l 】,最近人们对数据的可靠性提出了 更高的要求,传统的数据备份方法已经不能满足人们的需求,通过持续数据保护, 这样才能在意外发生时,将数据的损失降到最低,使服务中断的时间最短。最近 持续数据保护技术持续升温,人们对数据的保护和恢复提出了新的要求,在以后 的虚拟机备份技术中应可以使虚拟机数据受到更要级别的保护,使得可以恢复到 以前时刻的任意一点,并且,存储的数据和恢复时间都在可以接受范围内。 持续数据技术主要实现可以分三种层浏1 2 】:1 ) 应用软件层次,这种方法可以 由软件厂商将其直接嵌入在软件产品中,也可以是软件厂商提供应用程序接口 ( a p i ),由第三方软件开发商来开发完成。这种方法的好处就是具有针对性, 简单易于实现,管理比较容易,目前一些产品可以支持微软公司的o 伍c e 、 e x c h a n g e 、i b m 的d b 2 ,以及o r a c l e 数据库等。2 ) 文件系统层次,这种系统 可以截获文件系统数据或者元数据的变化事件( 例如创建、修改、删除等) ,并 及时记录文件的变动信息,以便将来实现任意时间点的文件恢复。文献【l3 j 中,一 个持续数据保护方法在面向对象文件系统里面实现来改进系统的可靠性,由于数 据保护在文件系统级别,所以可以获知每一次写操作的字节信息,每一个对象服 务器可以单独计算数据对象信息来减少恢复时间,引入新式元数据管理方式来优 化c d p 中元数据管理。i b m 公司的v h f i l e 、s t o r a c t i v e 公司的l i v e b a c k u pf o r d e s k t o p l a p t o p s 、t i m e s p r i n g 公司的t i m e d a t a 等产品,都能提供基于文件的持 续数据保护功能。3 ) 数据块层次,这种方法的数据保护功能直接运行在物理的 存储设备或逻辑的卷管理器上, 甚至也可以运行在数据传输层上。当数据块写入 生产数据的存储设备时,持续数据保护系统可以捕获数据的拷贝并将其存放在另 外一个存储设备中。文献1 1 4 】设计了被称为t r a p ( t i m e l yr e c o v e r y t o a n y p o i n t i n - t i m e ) 的磁盘阵列架构,该系统提供了持续数据保护功能,根据研究发现, 数据备份的时候数据块内容只有5 - - - 1 5 的比例发生了变化,作者采用异或操作 对这些数据块进行处理,得到的结果大部分为0 ,然后可以进行更好的压缩,数据 存储空间可以降低l 2 个数量级,并且作者证明这种方法可以实现两个方向的数 据恢复。 第3 页 国防科学技术大学研究生院硕士学位论文 1 3 3 回滚机制 基于虚拟机的回滚技术已经成为国内外研究的一个热点。虽然在虚拟机领域 内,该技术尚不成熟,但是近年来也有一些可喜的成果,密西根大学开发出的r e v i r t 系统【1 5 】,以及加利福尼亚大学开发的e x e c r e c o r d e r 1 6 】等系统。这类系统不需要对 系统中发生的所有事件进行记录,仅仅记录影响进程执行的不确定事件以及这些 事件发生的位置或者时间点,在必要的时候通过这些记录信息重构系统之前的运 行状况。 r e v i r t 是运行在v m m 层次实现系统回滚的系统,基于u m l i n u x 虚拟机设计 的,通过系统日志实现虚拟机回放的系统。其中r e v i r t 记录的不确定时间包括异 步中断、外部输入以及运行用户态下时产生的不确定结果但又不会正常陷入的指 令。r e v i r t 成功的应用于大型软件调试和入侵检测的领域,但其本身仍然存在一定 的问题:需要修改物理主机的内核,不支持回滚操作等,这都限制了其的广泛应 用。 e x e c r e c o r d e r 构建在b o c h s 模拟器之上,实现了全系统级别的执行过程日志记 录、运行回放与故障恢复功能。系统日志用来为受到攻击的系统进行入侵检测提 供第一手信息,可以用来虚拟机回放、环境重现、入侵检测等。操作系统级别的 日志记录的可靠性依赖于操作系统自己的完整性,通常的操作系统不可能保证内 核遭到破坏后系统日志的完整性。但是如果操作系统运行在一个虚拟机监视器内, 可以在v m m 层次进行系统日志,因为它的权限比虚拟机的高。e x e c r e c o r d e r 的功 能比r e v i r t 有了很大的进步,并且不需要对操作系统进行修改,实现了全系统地 回放。由于其需要在虚拟机进程中存放b o c h s 中的c p u 、内存、时钟、外设等的 系统状态,使得系统开销比较大。而b o c h s 本身是模拟器,和实际环境差距较大, 距离实际的应用还有距离。 1 3 研究背景和意义 早期,通过虚拟机技术解决充分利用昂贵的硬件资源问题,而如今计算机系 统变得越来越复杂且难以管理,使得虚拟化技术重新开始流行起来,虚拟机也成 为研究的热点。虚拟机技术隔离具体硬件体系结构和软件系统之间的依赖关系, 改进系统的安全性能,提升软件分发能力,提高计算资源的使用效率,为用户提 供个性化、多样化的使用环境,因而重新获得学术界和工业界的重视。 虚拟化技术,指的是计算系统虚拟化以及相关的虚拟机技术。虚拟机的广泛 应用使得人们对虚拟机的可靠性备份提出了更高的要求,在高可靠服务应用中, 需要一个完全相同的备份虚拟机来提供相同的服务,主机出错时可以立即接替主 第4 页 国防科学技术大学研究生院硕士学位论文 机提供服务;在安装一个不确定的软件时候,需要备份系统以便在安装出错时回 滚到历史状态而不至于重装系统;大型的软件测试甚至操作系统的测试通常非常 复杂,病毒的入侵通常会带来毁灭性的破坏,这些都使得通常的物理机很难应对, 而使用虚拟机,通过提供回滚技术可以完成上述功能,这就需要虚拟机备份历史 信息【1 7 1 。 虚拟机可以给用户提供虚拟的计算机使用,可以很好的支持多个应用程序和 操作系统、隔离软硬件、封装成一个文件以便部署。而这就需要虚拟机备份来保 障这一切的可靠性,针对总结中提出的问题,可以看出未来虚拟机的发展趋势: 1 ) 数据中心的虚拟机备份,大型数据中心,不仅虚拟机操作系统可以迁移而 且其对应的数据也随之迁移,这个虚拟机的备份带来了更大的挑战,也提出了更 高的要求。 2 ) 持续数据保护( c o n t i n u ed a t ap r o t e c t i o n ) ,最近人们对数据的可靠性提出 了更高的要求,传统的数据备份方法已经不能满足人们的需求,通过持续数据保 护,这样才能在意外发生时,将数据的损失降到最低,使服务中断的时间最短。 最近持续数据保护技术持续升温,人们对数据的保护和恢复提出了新的要求,在 以后的虚拟机备份技术中应可以使虚拟机数据受到更要级别的保护,使得可以恢 复到以前时刻的任意一点,并且,存储的数据和恢复时间都在可以接受范围内。 3 ) 虚拟机状态的可回滚及回放备份,在大型软件测试和病毒的入侵检测应用 中,需要保存虚拟机的历史状态,但保存的数据量不能太多,又要回滚到历史状 态,对备份技术是新的挑战。 传统备份方法的主要挑战是系统必须知道为一个虚拟服务器环境设计的备份 恢复方法:虚拟服务器贡献和竞争资源在同一台机器上。备份工作使用一个核心 的备份技术通常是资源敏感性( 包c p u ,内存,i o 和网络使用率) 。由于同时有 多个服务器在一个节点上运行备份工作,瓶颈可能会影响其他工作的进行。虚拟 服务器通过服务分区或者其他接口:f c h b a 、i s c s in i c 来访问虚拟存储设备。 所以一些解决方案对一个虚拟服务器使用,对另一个不一定使用。 传统技术保护数据免受损失主要采用定期备份和快照技术。这些技术需要很 久来恢复数据。另外,备份之间的数据很容易丢失。更重要的是,最近研刭1 8 】发 现6 7 备份数据不能恢复在现实世界中。这个事实被众人所知,但是还没有人研 究这个原因是为什么。因此,它仍然不清楚还是一个开放的问题,为什么这么高 的恢复出错率。 1 4 研究内容和目标 本课题研究的虚拟机备份系统处于虚拟机的虚拟机管理器( v m m ,v i r t u a l 第5 页 国防科学技术大学研究生院硕士学位论文 m a c h i n em o n i t o r ) 层次,进行块级别的数据备份,如图1 1 所示。 应用程序 客户操作系统 ( g u e s to s ) 虚拟硬件 应用程序 客户操作系统 ( g u e s to s ) 虚拟硬件 应用程序 客户操作系统 ( g u e s to s ) 虚拟硬件 i虚拟机监控器( v m m )| 主机操作系统 硬件( c p u 、内存、硬盘等) l 图1 1 虚拟机备份层次图 为了使得v m m 层次保持轻量级,v m m 中的备份程序不负责具体的任务,而 是把所需要的任务发送给一个主机的服务程序来完成。这就降低了v m m 的任务 量,不用关心具体怎么备份,和主机维持一种松耦合的关系。同时,主机负责备 份具体工作,也使得可以对不同的虚拟机提供服务,而不限制在k v m 虚拟机,使 得通用性特别好。 为提高虚拟机备份的可靠性,本文主要做以下三项研究: 1 ) 研究面向虚拟块设备的通用层快照模型,提出基于通用层的快照模式,用 来保存虚拟机内存状态及配置信息,可以方便为用户提供备份服务,提供了一个 通用的遇到错误后恢复虚拟机持久和临时状态的方法。可以快速从错误中恢复, 比如一些病毒,管理员错误等,在虚拟机发生错误之后,可以回滚到出错前的时 间点。由于基于通用层,可以应用于不同的磁盘格式。 2 ) 研究虚拟机自适应数据持久保护机制,通过在块级别保存虚拟机每次修改 的数据块内容,来实现对虚拟机的高可靠性备份。同时为了降低v m m 层次代码 量,在主机上运行一个服务进程用来提供数据保护功能,v m m 中负责把数据传送 到服务进程,具体操作有服务进程来完成,并通过网络传输到备份站点。在用户 对存储空间要求比较高,可以用t r a p 技术,可以把数据进一步的压缩,使得存储 空间降低。 3 ) 研究虚拟机回滚机制,通过保存虚拟机永久数据和临时数据,并且高效的 组织元数据,来实现快速的虚拟机回滚。这样在系统出错的情况下通过恢复数据, 可以快速回滚到历史的某一点,保证关键数据没有受到损失。 1 5 论文结构 本论文共分六章。 第一章为绪论。介绍虚拟机技术的概况,之后介绍了虚拟机快照、持续数据 第6 页 国防科学技术大学研究生院硕士学位论文 保护技术、虚拟机回滚机制的研究现状,开展本课题研究工作的意义,以及本文 的研究内容和研究目标。 第二章首先介绍了虚拟机体系结构,包括:全虚拟机、半虚拟化和硬件辅助 虚拟化;然后介绍了虚拟机实现中的内存实现原理;在后介绍了虚拟机三个层次 的备份技术:v m m 层次、客户操作系统层次和虚拟机外部层次备份。 第三章首先介绍虚拟机块级快照系统,然后介绍在通用层次实现的面向虚拟 块设备的快照模型,然后介绍了快照的生成、存储以及磁盘状态的恢复。最后设 计了实验测试快照功能的性能。 第四章介绍虚拟机持续数据保护模块的实现,首先提出了持续数据保护体系 结构,然后在具体设计中介绍了内存队列的设计、c o w 性能的优化、以及数据传 输的设计。其后介绍了自适应算法的实现以及数据的压缩。最后通过实验测试分 析系统的性能。 第五章介绍虚拟机回滚机制的实现,首先提出虚拟机回滚机制的体系结构, 然后介绍备份数据的组织、元数据的设计、检查点的设计。最后介绍回滚机制的 具体实现以及实验测试。 第六章结束语。对本文的工作进行总结,并展望下一步工作。 第7 页 国防科学技术大学研究生院硕士学位论文 第二章虚拟机备份技术综述 早期,虚拟机技术目标是为了充分利用昂贵的硬件资源f l 】,如今虚拟机技术隔 离了具体硬件体系结构和软件系统之间的依赖关系,改进了系统的安全性能,提 升了软件分发能力,提高了计算资源的使用效率,并且为用户提供个性化、多样 化的使用环境,因而重新获得学术界和工业界的重视。 虚拟机为客户操作系统提供了底层物理系统的抽象,其备份对象主要包括虚 拟磁盘、内存和c p u 寄存器内容。作为虚拟机环境的主要存储形式【”】,虚拟磁盘 是用来模拟磁盘的文件,通常以逻辑卷、分区、文件、块驱动等形式存放在本地 或者远程【2 0 1 ,用来提供完全封装存储、隔离、可移动性等来帮助虚拟机的动态应 用。虚拟机内存访问通过内存虚拟化完成,实现方式可以分为m m u 半虚拟化和 影子页表。 本章综述和分析虚拟机的备份机制,首先在第一节介绍备份基本概念。根据 备份软件所处的层次,分别在第一节介绍虚拟机体系结构,第二节介绍虚拟机内 存基本原理,第三节介绍虚拟机监视器( v i r t u a lm a c h i n em o n i t o r ) 层次虚拟机备 份方法,第四节介绍客户操作系统层次备份,在第五节介绍备份程序在虚拟机外 部的备份方法。在第六节,首先总结虚拟机备份方法的优缺点,并探讨了虚拟机 备份的发展方向。 2 1 虚拟机体系结构 经过几十年的发展,虚拟机技术已经非常成熟,可以按照应用级别可以划分 为【4 j :1 ) 硬件抽象层的虚拟机。对上层软件( 即客户操作系统) 而言,硬件抽象 层的虚拟机构造了一个完整的计算机硬件系统,这种虚拟机与客户操作系统的接 口即为处理器指令;2 ) 操作系统层的虚拟机。通过在动态复制操作系统环境,此 类虚拟机能够创建多个虚拟运行容器。而对运行在每个容器之上的软件而言,此 类虚拟机均提供了一个完整的操作系统运行环境,而它与上层软件的接口即为系 统调用接口;3 ) a p i 层的虚拟机。此类虚拟机为上层应用软件提供了特定操作系 统运行环境的模拟,但这种模拟并不是对处理器指令的仿真,而是模拟实现该操 作系统的各类用户态a p i ;4 ) 编程语言层虚拟机。此类虚拟机通过解释或即时编 译技术( j u s t - i n - t i m e ,j i t ) 来运行语言虚拟机指令,从而实现软件的跨平台特性。 本文中讨论的虚拟机技术是硬件抽象层的虚拟机,按照客户操作系统的运行 平台和v m m 系统针对i o 设备虚拟化而采用的设计思路,对于虚拟化最常见的分 类为:全虚拟化( f u l l - v i r t u a l i z a t i o n ) 、半虚拟化( p a r a - v i r t u a l i z a t i o n ) 和硬件辅 第8 页 国防科学技术大学研究生院硕士学位论文 助虚拟化。 l 传统客户操作系统 传统驱动 b 监视:传芋备h v m m 驱动 上 物理设备 全虚拟化 2 1 1 全虚拟化 l 修改过操作系统 半虚拟化驱动 i o 接口 i 虚拟机监视毫1 0 萼口 传统驱动 l 物理设备 i 传统客户操作系统 客户驱动 b 监嘉i 客警备卜 设备模拟器 l , i o 接口 卜_ i l 主机0 sv 传统驱动 物理设备 半虚拟化软件模拟 图2 1 几种不同的i o 设备虚拟化模式 全虚拟化是指虚拟机模拟了完整的底层硬件,包括处理器、物理内存、时钟、 外设等,使得为原始硬件设计的操作系统或其它系统软件完全不做任何修改就可 以在虚拟机中运行。这里主要介绍c p u 和i o 的虚拟化方法t 3 1 。 直接 执行 用户 和操 作系 统的 请求 直接 执行 用户 请求 b t 执行 操作 系统 请求 图2 2 全虚拟化中的c p u 虚拟化示意图 c p u 虚拟化主要针对x 8 6 架构,如图2 2 左图,x 8 6 架构提供了四种特权级别 r i n g0 、l 、2 和3 ,通过这四种级别来控制和管理对硬件的访问。通常,用户级的 应用一般运行在r i n g3 级别,操作系统需要直接访问内存和硬件,需要在r i n g0 第9 页 国防科学技术大学研究生院硕士学位论文 执行它的特权指令。为了虚拟x 8 6 架构,需要在操作系统下面运行虚拟化层,由 虚拟化层来创建和管理虚拟机,进行共享资源分配。而有些敏感指令不能很好的 进行虚拟化,它们在融n g0 以外级别执行时,会出现不同的结果。如何在运行时 捕获和翻译这些敏感指令成为x 8 6 虚拟化的一大挑战,使得x 8 6 架构虚拟化最初 是不可能的。v m w a r e 2 1 】可以通过b t ( b i n a r yt r a n s l a t i o n ) 和直接执行技术的结合 来实现任何x 8 6 操作系统的虚拟化。如图2 2 右图所示,b t 可以翻译核心指令来 代替那些不能虚拟化的指令,通过翻译后的指令直接访问虚拟硬件。同时,所有 用户级指令还是可以直接在c p u 上执行来确保虚拟化的性能。每个v m m 为每个 虚拟机提供完整的硬件支持服务,包括虚拟b i o s 、虚拟设备和虚拟内存管理。 i o 虚拟化内容比较复杂,在全虚拟化实现中主要分为两类:一种是v m m 层 次处在硬件之上、客户操作系统之下,结构如图2 1 中全虚拟化所示,代表产品有 v m w a r ee s xs e r v e r 。这种方法将虚拟化层运行在x 8 6 的硬件系统上,可以直接访 问硬件资源,无需通过操作系统来实现硬件访问,因此效率更高。 i o 虚拟化另外一种虚拟化层次在客户操作系统之上,也称软件模拟模式。软 件模拟的方法需要v m m 捕获客户操作系统发送给硬件的基本i o 操作。由于某些 体系结构( 如x 8 6 ) 同时存在统一i o 地址空间和分离i o 地址空间两种i o 模式, 这就给v m m 的设计带来了一些挑战。模拟i o 虚拟化方法的最大开销在于处理器 模式的切换:这又包括从客户操作系统到v m m 的切换,以及从内核态的v m m 到 用户态的i o 模拟进程之间的切换。因此对于采用模拟方法进行虚拟化的i o 设备, 优化i o 性能的主要策略就是尽量减少模式切换。例如在v m w a r ew o r k s t a t i o n 中, 许多i o 指令都直接在v m m 中处理,而只有遇到那些真正会改变物理设备状态的 操作,如读写磁盘和收发网络数据包等,才切换到i o 模拟进程中进一步处理,这 样就大大减少了从v m m 到i o 模拟进程间的切换。模拟i o 的另一个重要方面是 i o 模拟进程的设计。用软件模拟整个p c 平台并不是一件简单的事情。通常,i o 模拟进程需要实现的设备包括:b i o s 、p c i 总线、时钟控制器、中断控制器、磁 盘设备、网络设备、u s b 总线、v g a 适配器、p s 2 终端设备。幸运的是,v m m 可以利用现有的i o 模拟器实现这些功能,如q e m u 等。模拟i o 设备的方法对客 户操作系统也是透明的,而且v m m 的设计也非常简单,兼容性很好。但是其性 能通常只有上述两种方法的2 0 , - - , 5 0 ,不适用于服务器等高端应用,m i c r o s o f t v i r t u a lp c 、v m w a r ew o r k s t a t i o n 、s u nv i r t u a lb o x 、p a r a l l e l sd e s k t o pf o rm a c 和 q e m u 。 2 1 2 半虚拟化 开源的x e n 项目是半虚拟化的代表,它可以通过修改l i n u x 的内核来实现c p u 第1 0 页 国防科学技术大学研究生院硕士学位论文 和内存的虚拟化,通过定制的操作系统驱动来实现i o 的虚拟化。美国华盛顿大学 2 0 0 1 年设计了d e n a l i 系纠2 2 】,在d e n a l i 系统中提出并实现了半虚拟化技术,用于 在同一台机器上部署大量的网络服务系统。英国剑桥大学开发的著名的x e n 系统 受d e n a l i 启发,采用半虚拟化技术实现其c p u 的虚拟化,如图2 3 所示。半虚拟 化技术通过修改客户操作系统的源代码,将待监控的操作替换为对虚拟机管理器 的超级调用( h y p e r c a l l ) 。该技术的优势在于虚拟机能够在硬件上直接运行,使 客户操作系统能获得接近直接在裸机上运行的性能,降低了虚拟化的损耗;其缺 点则是需要修改客户操作系统的源代码,使虚拟机上使用的操作系统类型受到限 制,由于半虚拟化不支持未修改的操作系统( 例如:w i n d o w s2 0 0 0 x p ) ,它的兼容 性和可移植性差。在实际的生产环境中,半虚拟化也会导致操作系统支持和维护 的艰难,因为半虚拟化往往要深入修改操作系统内核。 以x e n 的半虚拟化为例【2 3 】,g u e s to s 源码中的一个特权操作被替换成一个 h y p e r c a l l ,类似于操作系统中的系统调用。通过调用h y p e r c a l l ,g u e s to s 能够把 控制权转移到v m m 。例如,一个更新页表的操作,被替换为一个h y p e r c a l l ,运 行时,通过h y p e r c a l l 陷入到v m m 中,由x e n 确认并完成,再把控制权返回给产 生本次调用的虚拟机。由v m m 到虚拟机的通信是由一个异步时间机制提供的, 这个机制取代了设备中断方式,虚拟机中可以设置事件屏蔽位,能实现对事件的 屏蔽,效果类似于中断屏蔽。 直接 执行 用户 请求 超级调用 虚拟化层 来替换不 可虚拟的 操作系统 指令 图2 3 半虚拟化的c p u 虚拟化示意图 半虚拟化的方法向客户操作系统提供了一个不同于传统i o 设备的虚拟设备 界面,因此它需要在客户操作系统中为每个虚拟i o 设备安装一个特殊的驱动程 第1 1 页 国防科学技术大学研究生院硕士学位论文 序。该驱动程序负责将客户操作系统的i o 请求传递给特权域( p r i v i l e g e dd o m a i n ) 。 特权域是一个特殊的、具有直接访问物理i o 设备特权的客户操作系统,它解析收 到的i o 请求并映射到实际物理设备,最后交给它的设备驱动程序来控制硬

温馨提示

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

最新文档

评论

0/150

提交评论