收藏 分销(赏)

一种高效的虚拟机快照管理系统的设计与实现.docx

上传人:胜**** 文档编号:1952187 上传时间:2024-05-11 格式:DOCX 页数:80 大小:3.44MB
下载 相关 举报
一种高效的虚拟机快照管理系统的设计与实现.docx_第1页
第1页 / 共80页
一种高效的虚拟机快照管理系统的设计与实现.docx_第2页
第2页 / 共80页
一种高效的虚拟机快照管理系统的设计与实现.docx_第3页
第3页 / 共80页
一种高效的虚拟机快照管理系统的设计与实现.docx_第4页
第4页 / 共80页
一种高效的虚拟机快照管理系统的设计与实现.docx_第5页
第5页 / 共80页
点击查看更多>>
资源描述

1、摘要密级:硕士学位论文 一种高效的虚拟机快照管理系统设计与实现 作者姓名: 周蕾 指导教师: 许舒人 副研究员 中国科学院软件研究所 学位类别: 工学硕士 学科专业: 计算机软件与理论 培养单位: 中国科学院软件研究所 2015年4月IIThe Design and Implementation of an Efficient Management System for Virtual Machine SnapshotsByDeng HuanfangA Dissertation Submitted toUniversity of Chinese Academy of SciencesIn pa

2、rtial fulfillment of the requirementFor the degree ofMaster of Computer Software and TheoryInstitute of Software Chinese Academy of SciencesApril, 2015独创性声明本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明。签名:_ 日期:_关于论文使用授权的说明本人完全了解中国

3、科学院软件研究所有关保留、使用学位论文的规定,即:中国科学院软件研究所有权保留送交论文的复印件,允许论文被查阅和借阅;中国科学院软件研究所可以公布论文的全部或部分内容,可以采用影印、缩印或其它复制手段保存论文。(保密的论文在解密后应遵守此规定)签名:_ 导师签名:_ 日期:_68摘要一种高效的虚拟机快照管理系统的设计与实现摘要随着虚拟化技术的快速发展和应用深入,虚拟机逐渐替代物理机成为企业关键业务系统的运行支撑环境,而保障虚拟机的可用性则成为衡量关键业务系统可靠性的重要度量指标之一,因为虚拟机故障或宕机会给企业带来严重的经济和名誉损失。如2010年1月,Ruby-on-Rails应用托管商He

4、roku在Amazon EC2平台上的22台虚拟机发生故障,影响了站点上44000个应用的正常使用。因此,在虚拟化计算环境中,能否支持高效的虚拟机失效恢复至关重要。快照技术是支持虚拟机失效恢复的一种常用技术手段,快照是虚拟磁盘在某一时间点的状态和数据的副本。当虚拟机因内部或外部因素发生无法修复的故障时,可通过回滚到快照时间点的方式实现虚拟机的快速恢复。目前大多数虚拟化平台都支持虚拟机虚拟磁盘快照功能,然而目前的大多数快照实现都是链式关联磁盘快照,每个快照都仅记录了部分的磁盘数据。快照间的链式关联关系,会引入多余的I/O请求,导致虚拟机性能低效。此外,传统的周期性快照策略由于无差异配置且不能适应

5、负载动态变化,会引入不必要的快照操作,造成资源浪费和操作开销。本文系统的目标就是在虚拟化计算环境中设计和实现一个高效的虚拟机快照管理系统。在降低链式关联虚拟磁盘快照对虚拟机性能影响方面,本文采用了无链式关联虚拟磁盘快照技术,通过集成ZFS和OCFS2文件系统,设计存储对象抽象模型和快照存储组织模型,以及定义快照操作约束限制,给出了快照实现;在改变周期性快照策略方面,本文依据虚拟机应用类型的不同将虚拟机分为应用服务器、数据库以及负载均衡三种类型,根据虚拟机类型以及结合不同类型虚拟机所能承受的数据丢失量和数据丢失率为虚拟机配置差异的快照策略,并设计策略调度过程算法调度执行快照策略;此外,系统基于X

6、ML-RPC远程过程调用以及服务器端信息推送技术设计了快照图形化管理界面,展示快照基本信息、策略管理以及预警管理等功能。基于上述研究和设计,论文在VMFabric虚拟化平台中实现了一个高效的虚拟机快照管理系统。实验结果表明,该系统能够有效降低快照对虚拟机性能的影响,并具备良好的可管理性。关键词:虚拟机,虚拟磁盘快照,高效,无链式关联快照,差异策略 摘要摘要AbstractThe Design and Implementation of an Efficient Management System for Virtual Machine SnapshotsAbstractAlong with t

7、he rapid development of virtualization technology and its in-depth application, virtual machines gradually replace physical machines and become the running environment for enterprises key business systems. But failure or downtime of virtual machines will bring serious economic and reputation loss to

8、 the enterprise, and how to ensure the availability of virtual machine has become one of the most important measures for the reliability of key business systems. Virtual disk snapshot is a prevailing technology to support virtual machine failover. Its usually organized into linked structure, which m

9、ay cause virtual machine performance degradation for additional disk I/O overhead. Furthermore, the traditional periodic snapshot strategy cant adapt to the dynamic load. And to configure the same period for all virtual machines will introduce unnecessary snapshot operations as well as resources was

10、te.In this paper, we firstly analyze the efficiency of disk snapshot technology with non-linked structure. By integrating ZFS and OCFS2 file system which is based on non-linked structure, we implement an efficient management system for virtual machine snapshots. In order to improve the efficiency of

11、 snapshot retrieval, we also propose a virtual machine snapshot storage organization model and optimize a snapshot search algorithm. Secondly, we design a strategy scheduling algorithm and implement a dissimilarity snapshot strategy. According to the different types of virtual machines applications,

12、 we divide virtual machines into three types: application server, database server and load balance server. Then based on the type of virtual machines, and combine with data loss rate and amount of data loss virtual machines can bear, we configure dissimilar snapshot strategy for virtual machines. Th

13、irdly, based on XML-RPC technology and server push technology, we design snapshots graphical management interfaces. It can display snapshots basic information, manage snapshot strategy and snapshot alert, etc. Based on the designs and studies mentioned above, we implement an efficient management sys

14、tem for virtual machine snapshots. Experimental results show that our system can effectively reduce snapshots influence on the performance of virtual machines and provide well manageability.Keywords: virtual machine, virtual disk snapshot, efficient, disk snapshot technology with non-linked structur

15、e, dissimilar snapshot strategy 目录目录第一章绪论11.1研究背景11.2研究现状21.3论文工作41.4论文组织5第二章预备知识及相关概述72.1虚拟机技术72.1.1虚拟机技术概述72.1.2Xen虚拟机技术82.1.3虚拟磁盘技术102.2虚拟机快照技术112.2.1快照技术概述112.2.2系统快照技术原理132.3本章小结15第三章虚拟机快照管理系统关键技术173.1存储对象抽象模型173.1.1存储对象映射关系173.1.2映射关系存储方式193.2快照存储组织模型213.3操作约束限制规则233.3.1快照创建命名规则233.3.2VM删除约束限制

16、233.4快照快速检索算法253.5策略调度过程273.6本章小结29第四章虚拟机快照管理系统的设计与实现314.1系统实现概要314.2VMFabric虚拟化平台314.2.1VMFabric虚拟化资源池324.2.2VMFabric虚拟化平台体系结构344.3虚拟机快照管理系统374.3.1快照管理系统体系架构374.3.2快照功能集成模块394.3.3快照API接口模块424.3.4快照信息分析模块444.3.5快照策略管理模块464.4本章小结49第五章系统实验与分析515.1功能测试515.1.1实验配置515.1.2实验结果515.2性能测试545.2.1实验配置545.2.2实验

17、结果54第六章结束语576.1工作总结576.2进一步工作57参考文献59作者简历63学术论文与研究成果65致谢67第一章 绪论第一章 绪论1.1 研究背景随着互联网的快速建设和计算机技术的迅猛发展,信息服务在数量和种类上以爆炸式速度增长,企业纷纷把核心业务和数据放到IT系统中运营。与此同时,用户数量不断攀升,用户对信息服务的需求也越来越复杂,越来越多样化。企业和个人都需要更安全可靠、易于管理且成本低廉的信息服务。对信息服务的高要求促使学术界和工业界将关注重点转向虚拟化技术。虚拟化技术1,2,3把CPU、内存、网络、存储等物理资源变为逻辑上可管理的资源,打破了运行环境与实体资源之间的独占关系,

18、单一运行环境可使用实体部分资源或多实体资源,不再受物理限制的约束。通过虚拟化技术,企业可动态调度资源,降低运营成本和能源消耗,提高资源利用率,也可为用户提供可配置的使用环境。全球虚拟化市场一直在持续快速增长。IDC预测到2015年,全球主要企业的服务器将有50%实现虚拟化4。信息技术研究及咨询公司Gartner则预测从2013年开始到2016年左右,中国政府和企业会将70%的工作负载迁移到虚拟化环境中5。虚拟机6是虚拟化计算环境中的一个重要组件,每个虚拟机实例都是一个严密隔离的软件容器,像物理主机一样运行自己的操作系统和应用程序,拥有自己的物理资源,如虚拟CPU、内存、虚拟磁盘和网络接口卡等。

19、随着虚拟化技术的快速发展和应用深入,虚拟机逐渐替代物理机成为企业关键业务系统的运行支撑环境,而保障虚拟机的可用性则成为衡量关键业务系统可靠性的重要度量指标之一,因为虚拟机故障或宕机会给企业带来严重的经济和名誉损失。如Amazon虚拟化平台EC2的虚拟机宕机事件。2010年1月,Ruby-on-Rails应用托管商Heroku在Amazon EC2平台上的22台虚拟机发生故障,影响了站点上44000个应用的正常使用7。2011年4月,Amazon EBS发生故障,停机长达12小时,5天后故障也没有完全修复8。因此,在虚拟化计算环境中,提供某种虚拟机级别的系统保护措施至关重要;支持虚拟机失效恢复逐

20、渐成为学术界研究的热点和产业界关注的重点。虚拟机快照技术是支持虚拟机失效恢复的一种常用技术手段,快照是虚拟磁盘在某一时间点的状态和数据的副本,这里虚拟磁盘是指虚拟机操作系统及其部署应用的逻辑抽象。因此,当虚拟机因内部或外部因素发生无法修复的故障时,可通过回滚到快照时间点的方式实现虚拟机的快速恢复。针对虚拟机占用空间大,全拷贝策略的快照实现技术具有耗时长的不足(时间复杂度与虚拟机占用空间大小的关系是O(N))。Citrix的XenServer9,Microsoft的Hyper-v10等虚拟化产品实现了一种时间复杂度为O(1)的虚拟机快照技术,这种技术通过共享虚拟磁盘,不复制数据本身仅修改磁盘索引

21、来实现快照的瞬时生成。然而此种快照技术生成的每个磁盘快照都仅保留了上一快照时间点之后的修改数据,都只记录了部分的磁盘数据,生成的快照间具有链式关联,导致虚拟机的数据读写请求由无快照状态下的一次读一次写变为多次读一次写。这些多余的I/O请求会严重影响虚拟机性能,导致虚拟机低效,且随着快照链长度增长而愈加明显。此外,传统的虚拟机快照管理系统中,通常采用周期性的快照策略来自动生成快照,简化了快照过程中的人工操作,但由于时间间隔固定,不能适应系统负载的动态变化。如果某一时间间隔内应用对数据块修改非常频繁,该时间间隔内只创建一个快照,那么会增大快照文件的大小,当系统因内部或外部因素发生故障时,将会造成大

22、量历史数据的丢失;但如果某一时间间隔内,应用没有对数据进行修改,那么创建快照将造成系统不必要的操作开销和资源浪费,增加快照链的长度,而快照链过长会影响虚拟机性能。因此,制定合理的快照生成时机和快照生成频率对系统的性能和系统数据的完整性也是至关重要的。针对上述问题,本文首先采用无链式关联虚拟磁盘快照技术,用以打破快照间链式关联,降低快照对虚拟机性能影响;在此基础之上,进一步优化虚拟机快照管理,设计和实现虚拟机快照策略管理,依据不同的虚拟机类型为虚拟机配置不同的快照管理策略,降低由周期性快照策略引入不必要快照创建造成的虚拟机低效;此外,也设计和实现对快照信息的监测分析和预警功能,以帮助用户更好地管

23、理快照。1.2 研究现状信息化的推进给信息存储带来了更高的要求,作为数据保护技术的虚拟机快照技术得以蓬勃发展,在工业界和学术界都进行了广泛地研究。如何降低快照引起的虚拟机性能低效问题也逐渐成为工业界和学术界的一个关注重点。现有虚拟化产品中,大多数虚拟化平台都提供了虚拟机快照机制以保证虚拟机的快速失效恢复。例如XenServer基于逻辑卷的快照和基于文件的VHD格式的快照,VMware基于文件的VMDK格式的快照,Hyper-V12基于文件的VHD格式的快照以及KVM13提供的基于文件的QCOW2格式的快照38等。这些虚拟化平台实现的快照都是增量式快照,快照间以“链式”结构连接。以XenServ

24、er虚拟化平台的快照为例。基于不同的存储类型,XenServer11提供了三种不同的快照机制:Volume-based快照、File-based快照以及StorageLink快照。无论何种快照实现,创建XenServer虚拟磁盘快照时都会新建两个VDI(Virtual Disk Image,虚拟磁盘标识),以VDI A表示创建快照前磁盘VDI,以 VDI B及VDI C分别表示新建VDI;创建虚拟磁盘快照后,原始磁盘 VDI A将成为父节点,成为BASE COPY,并分配新的UUID(Universally Unique Identifier,通用唯一辨别码),创建快照之后的写操作不再写入到V

25、DI A中;VDI A原始的UUID被分配给VDI B,以在VDI A和VDI B之间建立重映射(VDI Remapping),虚拟机仍然沿用原始的UUID, 创建快照之后的写操作全存储在VDI B中;VDI C也是VDI A的孩子节点,指向VDI A,为对应时间点的快照,也可用来支持对快照潜在的读写操作。后续快照的创建也重复以上过程。快照创建过程如图1-1 XenServer虚拟机快照技术原理所示。从中可以看出快照间是一种特殊的“链式”结构,准备来讲应该是“树式”结构。每创建一次快照,就会增加快照链长度。根据微软、VMware等虚拟化厂商研究,快照链过长会严重影响虚拟磁盘I/O性能,进而影响

26、虚拟机性能,因此VMware建议快照链的长度不超过23个快照,每个快照的保留时间不超过2472小时14。此外,各虚拟化平台也提供了一系列的管理工具以方便用户更好地管理虚拟机快照,像XenServer的XenCenter、CLI,Vmware的vSphere Web Client 、 vCenter Operations Manager以及第三方的PowerShell、RVTools等。通过这些管理工具,用户可以列出虚拟机快照、创建快照、回滚快照、删除快照以及接收快照预警信息并进行相应的调整工作。图1-1 XenServer虚拟机快照技术原理学术界主要从降低请求响应时间、缩短快照链长度、改变快照

27、策略等方面降低快照对虚拟机性能影响。PCOW15为快照写请求加入写缓存,减少了写操作的等待时间,降低了写请求的响应时间;LVHPsnap16通过构建混合快照链表和压缩快照索引实现了高频度快照生成时系统能保持较高的性能和存储空间利用率;HCSIM17提出了结合数据分布特征和检索模式的分层次二维索引结构,显著提高了快照索引的存储效率和快照检索效率;Skippy18利用内存快照Hot Data的特性,提出分层次的索引结构,提高了快照的检索效率;文献19则通过在已有虚拟化平台上配置持续的快照收集和合并策略,缩短快照链长度,减少不必要的快照创建操作,降低了快照对虚拟机性能的影响并保证了虚拟机的高可用性。

28、无论是工业界在管理上的努力还是学术界在实现上的优化,这些方法都只在一定程度上降低了快照对虚拟机性能的影响,没有打破快照间的链式关联关系,快照间的链式结构依然是影响虚拟机性能的主要因素。1.3 论文工作本文主要研究虚拟化环境下虚拟机快照性能和策略管理问题,以设计一个高效可用的虚拟机快照管理系统为目标。系统具体实现是虚拟化平台VMFabric的一个组成部分,主要从打破快照间链式结构和改进虚拟机快照策略两方面来降低虚拟磁盘快照对虚拟机性能的影响。本文的主要工作如下:(1)无链式关联虚拟磁盘快照技术磁盘快照间的链式结构是影响虚拟机性能的主要因素。如能改进快照间的“链式”结构,让每个快照都是相应时间点的

29、一个完整磁盘状态,消除快照的链式关联,将极大地降低虚拟机快照对虚拟机性能的影响。本文首先分析和研究了无链式关联虚拟磁盘快照技术,这种快照实现记录了所有磁盘数据的索引,所生成快照都是对应时间点的一个完整状态,打破了快照间链式关联;然后基于ZFS文件系统和OCFS2文件系统,设计和实现了快照存储组织模型和快照适配功能,给出了无链式关联虚拟磁盘快照技术的实现。(2)差异增量虚拟磁盘快照策略传统的周期性快照策略由于时间间隔固定,不能适应负载动态变化,在无数据修改情况下,执行虚拟机快照创建将造成虚拟机不必要的操作开销和资源浪费,引起虚拟机性能低效。此外,保留过多快照会占用大量存储空间,且使快照检索变得困

30、难。针对快照策略导致虚拟机性能低效问题,本文将依据虚拟机类型,并结合不同类型虚拟机所能容忍的数据丢失量和数据丢失率,为用户推荐最优的快照生成时间间隔、快照增量文件阈值以及快照保留个数;用户可根据偏好为不同虚拟机配置相异的快照策略,以“固定时间间隔”或“增量文件阈值”作为快照生成操作的标准,减少不必要的快照操作,最优化对整个系统性能和数据完整性的影响。系统也将依据快照策略里设置的快照保留个数,及时清除较旧的虚拟磁盘快照。(3)虚拟机快照信息监测分析为帮助用户更好地管理虚拟机快照,本文也提供了虚拟机快照信息监测分析功能。虚拟磁盘快照个数、占用存储空间以及由快照导致的虚拟机间的关联关系等快照基本信息

31、都将以图表形式显示给用户。与此同时,也提供快照信息预警功能,用户可设置快照信息阈值,如快照所占用磁盘空间阈值;系统实时监测虚拟机快照信息,依据超出阈值多少给用户以不同级别的警示信息。1.4 论文组织本文全文共分为6个章节,内容组织如下:第1章为绪论。本章首先阐述了课题的研究背景,介绍了虚拟化计算环境中虚拟机失效恢复的重要性,以及支持虚拟机失效恢复的虚拟磁盘快照技术所带来的虚拟机性能问题;接下来分别介绍了工业界和学术界针对快照链影响虚拟机性能问题所进行的研究工作和研究现状;最后,简要介绍了论文的主要工作和论文的组织结构。第2章为虚拟机快照技术综述。本章首先介绍了虚拟化计算环境中的虚拟机技术以及虚

32、拟磁盘技术;然后详细介绍了虚拟机磁盘快照技术,包括虚拟机快照分类、快照的实现技术写时复制技术COW(Copy On Write)以及重定位写技术ROW(Redirect On Write),最后介绍了系统技术原理,分析了链式关联虚拟磁盘快照技术和无链式关联虚拟磁盘快照技术。第3章为系统实现中所采用的关键技术。本章首先介绍了为实现无链式关联虚拟磁盘快照技术所设计的虚拟机快照存储组织模型、快照命名规则、虚拟机删除操作约束限制以及快照快速检索算法;然后介绍了虚拟机快照信息监测所采用的信息拉取技术;最后介绍了虚拟机快照策略管理中,依据为虚拟机配置的差异性周期或数据增量快照策略以及快照的保留个数,设计的

33、快照策略调度过程以及快照策略调度算法。第4章为系统设计与实现。基于前面的关键技术,本章详细介绍了虚拟机快照管理系统的设计与实现,包括底层无链式虚拟磁盘快照技术的设计与实现,上层快照创建、删除等常规功能设计与实现,自适应快照策略管理的设计与实现以及快照信息监测分析功能的设计与实现。第5章为性能评估与实验数据分析。设计实验方法以及测试环境,利用一系列标准化测试工具通过在不同快照实现的虚拟化平台上的对比实验,验证了本文系统所实现的虚拟磁盘快照技术在降低快照对虚拟机性能方面的有效性;对于虚拟机快照管理系统所实现的各功能,也通过单元测试与整体测试,验证了本文功能的可用性。第6章为结语。本章主要对整篇论文

34、进行了总结,列举了本文的主要工作与贡献,并对进一步的研究工作进行了介绍和展望。第二章 预备知识及相关概述第二章 预备知识及相关概述随着越来越多的关键业务被部署到虚拟化平台中,对数据安全性也就提出了越来越高的要求,传统的数据保护技术已不能满足当前的数据保护需求;与传统的数据保护技术相比,快照技术简洁高效,它是关于指定数据集合的一个完全可用拷贝。本文所说的虚拟机快照主要是指虚拟磁盘快照,是支持虚拟机失效恢复的一种常用技术手段。前文已简要回顾了本文的项目背景、研究现状等内容,下面将概括说明本文所涉及到的基础理论知识,以便能更好地铺垫后文。2.1 虚拟机技术2.1.1 虚拟机技术概述虚拟机26是指可以

35、像真实机器一样运行程序的计算机的软件实现。虚拟机技术是通过在软、硬件之间增加虚拟中间层,由虚拟中间层截获上层软件对底层接口的调用,并对该调用重新作出解释和处理,以实现异构环境中资源的可共享、可管理和可协同,并支持应用大规模部署、迁移和运行维护20,21。通过虚拟机,可实现硬件资源共享和应用软件运行隔离。虚拟机技术的发展可追溯到上世纪60年代,IBM剑桥研究中心发明了一种虚拟机技术VM/370,允许多个用户共享同一计算机系统,可为不同用户和应用软件提供独立、共享的运行环境;打破了软件运行对硬件平台具有的独占性和排他性,使共享硬件资源成为可能。虚拟机技术开始主要应用于大型主机中。由于门槛较高且应用

36、有限,虚拟机技术的发展曾一度停滞不前。到上世纪90年代,随着对软件重用和可移植性需求的不断提高,虚拟机技术逐渐受到重视并不断发展,出现了进程级虚拟机。如1980年出现的Smalltalk-80语言利用虚拟机“翻译”由编译器生成的“中间码”,虚拟机会将“中间码”翻译成所对应的硬件平台能够执行的代码,实现了应用跨平台。后来SUN公司的JAVA语言也通过借鉴虚拟机技术实现了“一次编译到处运行”。为支持遗留软件的跨平台,Connectix公司在1997年发布了Virtual PC22,支持已有应用无需修改即可在虚拟机上运行。而之后VMware公司推出的VMware ESX server和VMware

37、workstation虚拟机的巨大成功,更是推动了虚拟机技术的发展,虚拟机的软件隔离和硬件共享能力在企业界获得了广泛地应用。剑桥大学教授Ian开发的虚拟机监控器(virtual machine monitor,简称VMM)XEN得益于其优越的性能和开源性,被业界认为是未来最有前途的一款虚拟机管理软件,本文中虚拟机功能实现就是基于XEN虚拟机。XEN虚拟机的Live Migration技术可支持虚拟机在线迁移,屏蔽硬件资源的动态变化对软件的影响,实现资源动态负载均衡。为满足不同的应用需求,工业界和学术界给出了多种不同的虚拟机实现,可以按多种标准给虚拟机分类23。根据虚拟机运用及与直接机器的相关性

38、的不同,可将虚拟机分为系统虚拟机和进程虚拟机;系统虚拟机提供了一个可以运行完整操作系统的完整系统平台,运行开销较大;相反,进程虚拟机为单个系统进程提供虚拟运行环境,运行开销较小;系统虚拟机如XEN、VMware、VirtualBox等,进程虚拟机如JAVA、Smalltalk等高级语言的虚拟机。根据虚拟机所在中间层位置的不同,可将虚拟机划分为硬件(HW)虚拟机、操作系统(OS)虚拟机和应用程序虚拟机;根据是否需要修改客户机操作系统(Guest系统,虚拟机配置的操作系统),可将虚拟机分为半虚拟化虚拟机和全虚拟化虚拟机;全虚拟化虚拟机的Guest系统对硬件的每次操作请求,都将由Hypervisor

39、(系统管理程序)接管,并转换成Hypervisor的代码,由Hypervisor负责对最终硬件进行操作;好处是Guest系统每一次对于物理硬件的请求都会变为对Hypervisor管理的虚拟硬件的请求,很好的隔离了Guest系统与物理系统,当物理系统进行升级或者硬件更换时,无需修改Guest系统,坏处则是每一指令转化会使得资源消耗过多;半虚拟化虚拟机共享当前系统的硬件驱动,只负责Guest系统请求的资源调度;好处是避免了对硬件请求的指令重写,提高了系统性能,有效的利用资源,坏处是每一次硬件系统升级要对Guest系统改写。虚拟机还有多种其他分类标准,如宿主环境、宿主机和客户机指令的异同等,这里就不

40、再一一赘述。2.1.2 Xen虚拟机技术Xen24是开放源代码的虚拟机监视器VMM,遵循GNU许可,运行在x86体系结构上,支持多个计算机系统运行在同一计算机硬件上。其性能接近单机操作系统(Native Operating System)的性能,已获得多家业界主要供应商的支持。Xen在设计之初为了追求卓越的性能,采用了半虚拟化(Para-Virtualization)技术,需修改Guest操作系统;通过重新规划操作系统内核地址空间,避免一些特权CPU指令的调用,以及调用VMM提供的API支持控制操作的完成,实现了Guest操作系统内核与VMM的协同工作。从Xen 3.025开始通过引入Inte

41、l和AMD的VT-x及SVM硬件虚拟化技术后,Xen能够实现全虚拟化,可支持Windows XP等非开源的操作系统在其上运行。Xen体系结构如图2-1所示。图2-1 Xen虚拟机体系架构Xen Hypervisor直接运行于硬件裸机上,为其上运行的操作系统内核提供虚拟化的硬件环境,控制和管理虚拟硬件资源,并负责在各虚拟机之间进行CPU调度、内存分配等共享资源的控制访问,具有最高特权级ring0;Xen Hypervisor由控制接口、硬件安全访问接口、事件通道、虚拟处理器、虚拟内存管理单元组成。在Xen Hypervisor之上运行有多个虚拟机,每个运行的虚拟机实例都称为Domain(域)或者

42、Guest。其中Domain0域是一个修改过的Linux Kernel,运行在ring1,是一个具有特殊地位的虚拟机,是唯一直接运行在Xen Hypervisor之上的虚拟机,又称为Xen0,其他虚拟机称为DomainU。Domain0用来辅助Xen管理其他Domain,负责与系统上运行的其他虚拟机进行交互,提供相应的虚拟资源服务,特别是其他Domain对I/O设备的访问。Xen向Domain提供了一个抽象层(包含管理和虚拟硬件API)。其中,Domian0拥有真实设备驱动,即Native Device Driver原生设备驱动,能够直接访问物理硬件,与Xen提供的管理API进行交互,并通过用

43、户模式下的管理工具来管理Xen的虚拟机环境,启动或停止其他Domain,并通过控制接口(Control Interface)控制其他Domain的CPU调度、内存分配以及设备访问,如物理磁盘存储和网络接口等。同其他虚拟机系统一样,在Domain中运行的操作系统也称为客户操作系统。特别地,Xen采用混合模式,在Xen提供半虚拟化的时候,运行在Hypervisor上的虚拟机称为“Domain U PV Guests”,其上运行着修改过内核的操作系统,如Linux、Solaris、FreeBSD等;在Xen支持的全虚拟化的时候,运行在Hypervisor上的虚拟机称为“Domain U HVM Gu

44、ests”,其上运行着不需要修改内核的操作系统,如Windows系列系统。在Xen系统中,Xen实现了CPU虚拟化、内存虚拟化以及I/O虚拟化,向Domain提供了基本的虚拟硬件(VCPU、虚拟MMU)和基本机制(事件通道),且提供了相应的硬件接口,以保证设备访问的安全进行27。在x86架构下,CPU提供4个特权级(0环至3环)。操作系统位于最高特权级0环,用户应用程序则位于最低特权级3环。在Xen系统中,Xen位于Guest OS和硬件之间,具有比Guest OS更高的运行特权级,Guest OS被迫迁移到相对较低的特权级中,Guest OS不能直接对物理CPU进行调度。为此,XEN建立vC

45、PU结构,为每一个Domain提供一个或者多个vCPU结构。在Domain内部,Guest OS对vCPU进行调度,而在XEN中,vCPU分时复用物理CPU,任意时刻一个物理CPU只能被一个vCPU使用。所以XEN必须对vCPU合理地分配时间片并维护所有vCPU的状态,保证vCPU的正确执行,并对vCPU使用物理CPU进行调度。简单最小时限调度算法和基于额度的调度算法是Xen系统中主要支持的两种调度算法。内存虚拟化是虚拟化技术中的一个难题,每个操作系统维护自己一套完整的内存访问和管理机制。在虚拟机系统中,需完全隔离各个虚拟机之间的内存访问。Xen统一管理机器实际的物理地址,各个VM需要实现各自

46、虚拟地址到物理内存地址间的转换,由VMM统一管理机器地址和物理地址的转换需要。Xen通过直接方式(Direct Mode)和影子模式(Shadow Mode)两种方式实现内存的管理和虚拟。一个机器只有一套I/O地址和设备,设备管理和访问同样是虚拟机实现的一个难题。在半虚拟化下,Xen采用了分离设备驱动模型,通过共享内存页(Shared Memory Page)和步缓冲描述符环完成了I/O设备虚拟化;在全虚拟化下,Xen通过事件通道(Event Channel)发送和接受异步通知,通过共享内存页实现了数据交换,通过移动QEMU的设备模型(DM:Device Model)进行设备管理和访问。2.1

47、.3 虚拟磁盘技术虚拟机存储管理是虚拟化技术一个很重要的研究领域。虚拟机存储广义来讲属于存储虚拟化的一部分。存储虚拟化是近年来虚拟化技术中的一个研究热点,是指新存储实体对原存储实体和存储资源以及存储管理进行变化和转换的过程。存储资源主要包括存储的连接方式、读写方式以及存储的规格或结构等内容,存储管理一般是指资源的统一管理、分散管理或性能动态调整管理等。本文中存储虚拟化特指虚拟机中的虚拟存储设备。虚拟机操作虚拟存储设备,不关注真正的物理设备。虚拟机对虚拟存储设备的访问通常是虚拟机将I/O请求发送给虚拟机监视器VMM,由VMM映射到实际物理存储设备上。例如上文中提到的Xen虚拟机,其Guest OS对虚拟存储设备的I/O请求,是由其内

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 考试专区 > 中考

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服