![大创参考3李丁丁博士_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-3/5/90adbf2f-d42c-4982-91da-326b4a8d67d4/90adbf2f-d42c-4982-91da-326b4a8d67d41.gif)
![大创参考3李丁丁博士_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-3/5/90adbf2f-d42c-4982-91da-326b4a8d67d4/90adbf2f-d42c-4982-91da-326b4a8d67d42.gif)
![大创参考3李丁丁博士_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-3/5/90adbf2f-d42c-4982-91da-326b4a8d67d4/90adbf2f-d42c-4982-91da-326b4a8d67d43.gif)
![大创参考3李丁丁博士_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-3/5/90adbf2f-d42c-4982-91da-326b4a8d67d4/90adbf2f-d42c-4982-91da-326b4a8d67d44.gif)
![大创参考3李丁丁博士_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-3/5/90adbf2f-d42c-4982-91da-326b4a8d67d4/90adbf2f-d42c-4982-91da-326b4a8d67d45.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、A Dissertation Submitted in Partial Fulfillment of the Requirementsfor the Degree of Doctor of Philosophy in EngineeringWrite Performance Optimization of Virtual Machine on the Local StoragePh.D.Candidate:Dingding LiMajor:Computer ArchitectureSupervisor:Prof. Hai JinHuazhong University of Science an
2、d TechnologyWuhan 430074, P. R. China May, 2013独创性本人所呈交的是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除文中已经标明的内容外,本不包含任何其他个人或集体已经或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在文中以明确方式标明。本人完全,本的法律结果由本人承担。作者签名:日期:年月日使用书本作者完全了解学校有关保留、使用的规定,即:学校保留并向有关部门或机构送交的复印件和,被查阅和借阅。本人华技大学可以将本的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等保存和汇编本。 ,在年。后适用本书。本属于不
3、(请在以上方框内打“”)作者签名:指导教师签名:日期:年月日日期:年月华技 大 学博 士摘要系统虚拟化技术解耦了传统操与硬件设备之间的粘合度,使得多个同时运行的操例程(虚拟机)可以部署在单个的物理平台上以共享底层的硬件资源,从而实现服务器整合而达到提高硬件利用率的效果。除此之外,系统虚拟化技术还可以为操在同构、甚至异构物理平台之间的实时迁移,用户计算环境的快速部署、以及软件的安全等需求上带来有效可靠的技术解决方案,降低了组织机构或个人在计算机硬件和相关管理上的投资成本。尽管如此,相比较传统的操环境,虚拟化技术亦给底层的设备的写入方向带来了性能。这是因为:第一,由于虚拟机管理器的引入,使得虚拟机
4、内部的写请求需要经历更长的 I/O 路径,增加了额外的 CPU 开销;第二,虚拟机管理器的引入亦使得虚拟机内部的相关块设备驱动程序很难获取准确的设备相关信息,失去了写操作性能进一的机会;第三,由于服务器整合,使得共享存储设备需要面对和处理成倍增加的并发写请求数目,进一步加剧了其性能瓶颈。目前,国内外相关的虚拟化性能优化工作偏重于方面,而对于写入方面则存在一定程度上的关注。因此有必要对虚拟机本地写操作的性能进行研究和优化。虚拟机本地写操作的新模型,可以对虚拟机内部的文件级写操作进行同步处理,再对虚拟机管理器的块级写操作进行异步处理。其中,虚拟机内部的同步处理意味着写请求可以绕过文件系统的复杂异步
5、处理逻辑,缩短其从虚拟机层次到虚拟机管理器层次之间所需要经历的 I/O 路径,而异步处理指的是在块级的写请求到达硬件之前,根据底层具体的特性,在虚拟机管理器层次进行相关优化,以减轻共享由于并发 I/O 数目激增而产生的处理。基于域间通信技术的虚拟机协议栈优化机制,进一步优化了虚拟机本地存储写操作的性能。通过利用虚拟提供的域间通口,进一步减小写操作从I华技 大 学 博 士虚拟机层次切换到虚拟机管理器层次的 CPU 开销。同时,该优化机制亦可以在单独的虚拟化体系结构下使用。固态盘在虚拟化环境下写放大问题的优化机制,可以看作是虚拟机本地写操作的具体应用。具体而言,由于虚拟机管理器的引入,导致虚拟机文
6、件系统与虚拟机管理器文件系统之间产生语义,使得底层基于 NAND 闪存的固态盘设备需要接收的重写操作,从而产生持续写放大的性能问题。该机制通过在虚拟机管理器层次加入块级别的写操作缓存,并在其上施加特定缓存管理逻辑,以缓解重写操作增多而导致写放大问题在虚拟化固态盘上产生的性能影响。综上所述,通过使用虚拟机本地写操作的新模型,可以减小写请求所需要消耗的至多 80%左右的虚拟化 CPU 开销,也可以在虚拟机管理器层次加入对特定存储硬件设备的优化机制,以此来对整个虚拟化系统进行相应的 I/O 优化,缓解共享存储设备所需要面对和处理的 I/O影响其性能。同时,该虚拟化写操作模型对读操作兼容,不:虚拟化技
7、术,性能,异步处理,同步处理,磁盘,固态盘II华技 大 学 博 士AbstractVirtualization technology reduces the affibetween traditional operating system(OS) and hardware, allowing multiple OS instances to run simultaneously on a single physical machine, thus improves the hardware utilization. Furthermore, virtualization technology
8、provides an efficient and reliable solution, for the live migration of OS between homogeneous and even heterogeneous platforms, for the rapid deploy of user computing environment, and for the safe isolation of malicious software, largely reducing the IT investment cost of relevant organizations or i
9、ndividuals.However, compared with the traditional OS, virtualization technology challenges the write performance of shared storage device. First, due to the interposition of virtual machine monitor (VMM), write requests are required to experience the longer I/O path, incurring extra CPU overhead. Se
10、cond, because of semantic gap, VMM eliminates theaccurate information of specific storage device to the virtual block driver inside a virtualmachine (VM), sacrificing a critical opportuto improve the write performanceaccording to the specific storage device. Third, due to server consolidation, the s
11、hared storage is required to face and handle the multiplied write requests, which further deteriorates the bottleneck of system performance. For the moment, many researchers focus only on the read direction to improve the performance of virtualized disk I/O, leaving write direction as unconcerned. T
12、o fill this gap, this paper provides insight into the main problems of write performance in a virtualized system and then presentsimprovements upon it.First, we propose a novel disk I/O mof virtualized system, called HypeGear.This new mhandles the file level write request inside VM as synchronous ma
13、nner,and then deals the block level write request inside VMM with asynchronous manner. Synchronous means that the write request can bypass the complex procedure in VMs original path and asynchronous manner indicates that VMM can improve the write requests according the specific storages characterist
14、ic, instead of directly being writteninto the bottom disk device.III华技 大 学 博 士Second, we devise a method to improve the storage protocol stack of a typical virtualized system, which can further reduce the CPU consumption of HypeGear. In detail, we leverage the interface of inter-domain transferring
15、provided by virtualized system, accelerating the process of VMs write request being trapped into VMM. It should be noted that this method can be deployed separately on the original virtualized system, not depending on HypeGear.Third, we propose an improvement for a virtualized solid state drive (SSD
16、) system. This improvement can be treated as a specific application of HypeGear. In detail, due to the interposition of VMM, the semantic bridge between VMs and VMMs file systems are masked, which allowing more rewrite requests to be rushed into SSD and producing the problem of write amplification.
17、Our improvement adds a block level write cache into VMM layer and uses a tailor-made cache management to reduce the number of rewrite that must touch SSD. In this way, the seriousness of write amplification in a virtualizedSSD system can be effectively relieved.In summary, our new disk I/O mof virtu
18、alized system can improve up to 80%CPU consumption of storage protocol stacks in a virtualized system. It also can implement some effective and specific improvements inside VMM layer to enhance the performance of different storage devices, improving the bottleneck of these shared storage devices in
19、the virtualized environment.Key words: Virtualization technology, Disk I/O performance, Asynchronous,Synchronous, Rotating disk, Solid state driveIV华技 大 学 博 士目录摘要IAbstractIII11.11.21.31.4绪论研究背景(1)国内外研究现状(7)研究内容(13)组织结构(15)2 虚拟机本地写操作新模型2.12.22.32.42.5研究背景(17)新模型结构设计(24)新模型结构实现(32)新模型结构测试(35)小结(45)3 基
20、于域间通信技术的虚拟机协议栈优化机制3.13.23.33.43.53.6研究背景(46)协议栈流程分析(48)协议栈优化机制(53)虚拟机虚拟机优化机制通用性讨论(57)性能测试(59)小结(64)4 固态盘在虚拟化环境下写放大问题的优化机制4.1 研究背景(65)VI华技 大 学 博 士4.24.34.44.54.6实例分析(67)优化方案设计(74)优化方案具体实现(78)性能测试(79)小结(85)5 总结与展望(87)致谢(89)参考文献(91)附录 1附录 2附录 3附录 4附录 5缩略词简表(105)攻读博士学位期间的学术. (106). (107)攻读博士学位期间申请发明专利与软
21、件著作攻读博士学位期间参加的主要科研项目(108)个人简历(109)VII华技 大 学 博 士插图目录图 1.1图 1.2图 1.3图 1.4图 1.5图 1.6图 2.1图 2.2图 2.3图 2.4图 2.5图 2.6图 2.7图 2.8图 2.9图 2.10图 2.11图 2.12图 2.13图 2.14基于设备模拟的 I/O 全虚拟化技术(2)基于定制驱动的I/O 半虚拟化技术(3)基于PCI 硬件设备穿透的I/O 虚拟化技术(4)基于用户空间I/O进程技术的 Blktap 驱动(5)研究内容和体系结构及各部分之间的. (14)本文的组织结构(15)同步方式下的 CPU 和内存消耗 .
22、 (21)主机文件系统在异主机文件系统在同步 I/O 模型下的测试(21)虚拟机写操作新模型 HypeGear 体系结构图(24)虚拟机写操作新模型下的 GearCache 模块结构图(27)虚拟机写操作新模型下的恢复示意图(30)虚拟机写操作新模型在Xen 平台上的实现(33)虚拟机写操作新模型下GearCache 模块的内部实现结构(34)虚拟机文件写操作虚拟机文件I/O 读写的能力测试(37)相对性能分数(38)磁盘设备的写入优化测试结果(40)三种写操作模型在基于 Web Sever 工作流下的性能(41)三种写操作模型在基于 Linux 内核编译工作流下的性能(42)三种写操作模型在
23、基于文件服务器工作流下的性能(43)三种写操作模型在虚拟机管理器层次的消耗(44)VIII华技 大 学 博 士图 3.1图 3.2图 3.3图 3.4图 3.5图 3.6图 3.7图 3.8图 3.9图 3.10图 4.1图 4.2图 4.3图 4.4图 4.5图 4.6图 4.7图 4.8图 4.9图 4.10基于 Blktap 块设备驱动前后端的 Xen 平台协议栈(48)Xen的 CPU 开销分布(52)协议栈在和写入B2L 结构运行示意图(54)PageCamp 结构运行示意图(56)B2L 和PageCamp 结构在VMwrae ESX 平台上的移植方案(58)XenXen协议栈上的
24、写入方向优化效果(60)协议栈上的方向优化效果(60)基于典型测试程序的性能结果(61)基于真实工作流的测试结果(62)基于 Ramdisk 的模拟测试结果(63)的算法伪代码描述(69)精简写精简后的 ClouDesk 写操作延迟(71)vFlashCache 结构设计图(76)vFlashCache 结构在写入vFlashCache 结构在缓存行为的伪代码描述(77)缓存行为的伪代码描述(78)来自I/O文件的 ClouDesk 写延迟CDF 分布(81)虚拟机的读写请求在 vSSDCache 里的平均. (81)vFlashCache 结构下的vFlashCache 结构在工作流性能测试
25、(82)多工作流下的性能效果(84)vFlashCache 结构在Dom0 中的 CPU 消耗情况(85)IX华技 大 学 博 士表格目录表 2.1表 2.2表 3.1表 3.2表 3.3表 4.1表 4.2表 4.3研究虚拟机文件系统冗余缓存行为的软硬件配置(20)虚拟机测试场景的 SQL语句完成情况(39)Xen 读写流程分析的软硬件配置(50)Xen协议栈的 CPU 开销分类(51)典型测试程序配置描述(61)ClouDesk 服务端基本软硬件配置(68)SSD 基本术语(72)vSSDFlush 刷新组件的触发条件(78)X华技大学 博士XI华技 大 学 博 士1绪论本章首先介绍虚拟机
26、本地I/O 技术的研究背景,然后分析当前国内外研究现状和不足,接着指出本文研究的目的和意义,并给出研究内容和主要贡献,最后介绍本文的组织结构。1.1 研究背景1.1.1 I/O 虚拟化技术“虚拟”一词在计算机领域中的应用非常广泛,并且在实践中已经被证明了有许多显著并且多样的优点。例如:由 Virtual Memory 表示的虚拟内存1,可以用磁盘的部分空间来扩充物理内存的容量,以便系统可以正常运行更加大型的软件;由Virtual Private Network 表示的虚拟 网络2,可以为个人或者公司提供安全的网络通信,而不必关心其底层的链路是否架设于安全性较高的网络之上;由 Java Virt
27、ualMachine 表示的 Java 虚拟机3,则可以轻易地将一段相同的 Java 源代码部署到不同的物理平台之上,从而减轻相关的移植工作负担,等等。本文所关注的范围是系统虚拟化4当中的 I/O 虚拟化技术5,它的具体含义为:在一台物理机之上,通过虚拟机管理器软件 VMM(Virtual Machine Monitor),将具体的 I/O 硬件进行逻辑抽象,再把这些抽象之后的逻辑 I/O 硬件单元提供给上层的操(虚拟机)和使用。因此,在系统虚拟化环境下,虚拟机底层的 I/O 硬件其对应的逻辑 I/O 单元,然后再根据 VMM 的具体物首先需要理规则,将此请求转换为实际的物理 I/O 请求,到
28、对应的实体 I/O 硬件单元之中。相比较传统的计算环境而言,VMM 的介入使得操和 I/O 硬件之间的呈现出间接性的特点,并且解耦了它们之间的粘合度。这种特性为 IT 领域一些实际的需求和场景带来灵活而又可靠的解决方案,例如:为了节省相关组织机构或者个人在 IT 基础设施上的投入以及相关管理开销,可以将多个同时运行的1华技 大 学 博 士虚拟机部署在单个的物理平台之上,以实现服务器整合功能来共享底层的 I/O 硬件资源6;为了在同构、甚至是异构硬件平台之间进行相关服务的实时迁移,可以利用 I/O虚拟化技术来底层具体的硬件细节差异,以减轻操对底层设备的粘合度,从而实现对用户透明的服务跨平台迁移7
29、。根据 VMM 的逻辑硬件单元到实体硬件单元的具体规则,可以进一步将 I/O虚拟化技术分为全虚拟化(Full Virtualization)、半虚拟化(Para Virtualization)和基于硬件辅助的虚拟化(Hardware-assited Virtualization)三大类型。(1)全虚拟化技术I/O 全虚拟化技术主要是通过名为“陷入后模拟”8的经典虚拟化模式来处理虚拟机发出的 I/O 请求。具体流程如图 1.1 所示:(1)当一个虚拟机发出了某个 I/O 请求后,“模拟 I/O 设备驱动”会负责接收该请求,并且向该设备驱动模拟的虚拟设备发出具体的输入输出指令(例如 ATA 指令)
30、;(2)“模拟 I/O 设备”捕获到该指令后,产生“陷入”操切换到虚拟机管理器上下文;(3)“模拟 I/O 设备”验证该请求,并将此虚拟 I/O 请求转换为物理 I/O 请求,再交付给“物理 I/O 设备驱动”去执行;(4)请求完成后,“模拟 I/O 设备”向上层返回一个应答信息。虚拟机虚拟机模拟I/O设备驱动虚拟机管理器物理I/O设备驱动I/O硬件平台图 1.1 基于设备模拟的 I/O 全虚拟化技术在上述 I/O 指令虚拟化过程中,“模拟 I/O 设备驱动”可以向上层的虚拟机模拟真实的 I/O 设备,例如 Novell NE 1000 网络适配器。因此,传统的操几乎可以不需要进行任何修改,就
31、可以在使用了 I/O 全虚拟化技术的虚拟机管理器上正常运向后兼容。I/O 全虚拟化技术的典型代表是 VMware行,并且对许多早期的操2模拟I/O设备物理I/O设备模拟I/O设备驱动华技 大 学 博 士公司旗下的 Workstation 系列8,以及开源虚拟化平台的 KVM(Kernel Virtual Machine)当中的 QEMU 设备模型9。(2)半虚拟化技术和 I/O 全虚拟化技术相比,I/O 半虚拟化技术10通过修改操内部的 I/O 设备驱动程序,使其能够从内部感知到虚拟化平台的存在,尽早的跳出虚拟机运行上下文,从而缩短了一定的 I/O 协议栈处理流程,并且减小了虚拟机和虚拟机管理
32、器之间的上下文切换次数,提升了性能。具体流程如图 1.2 所示:(1)虚拟机发出的 I/O请求传递到“虚拟 I/O 设备驱动前端”;(2)该设备驱动前端通过特定的虚拟化平台通信机制,将该请求的据信息传递到“虚拟 I/O 设备驱动后端”;(3)设备之后,进行逻辑请求到物理请求的转换,并与“物驱动后端验证了该 I/O 请求的理 I/O 设备驱动”进行交互。虚拟机虚拟I/O设备驱动前端虚拟机管理器物理I/O设备驱动I/O硬件平台图 1.2 基于定制驱动的 I/O 半虚拟化技术在半虚拟化过程中,虚拟 I/O 设备驱动前端还可以利用和后端的共享内存机制来实现与 I/O 设备的直接交互,例如 DMA(Di
33、rect Memory Access)数据传输,以此避免了系统内部的数据拷贝开销,实现了更好的 I/O 性能。但是,由于 I/O 半虚拟化需要修改虚拟机内部的相关驱动程序,使得虚拟化技术的性受到了一定程度的破研发需要为虚拟化环境付出额外的努力。因此,I/O 半坏,造成了相关操虚拟化技术曾经在一段时间内对操的兼容性表现一般,尤其是在商业操作系统领域。尽管如此,由于半虚拟化技术在 I/O 性能和衡,越来越多的虚拟化厂商,甚至是传统商业操性之间有一个较为合理的平厂商,开始在的相关产3物理I/O设备虚拟I/O设备驱动后端虚拟机虚拟I/O设备驱动前端华技 大 学 博 士品中加入半虚拟化驱动支持,例如 V
34、Mware 公司的 Virtual Machine Interface11和Microsoft 公司的 Hyper-V12等。再加上现阶段较具影响力的开源操Linux 力推的半虚拟化规范接口Virtio13,使其在大部分场为了部署系统虚拟化方案的首选。I/O 半虚拟化技术的典型代表是 Xen 虚拟机的分离式驱动模型14。(3)硬件辅助虚拟化技术顾名思义,硬件辅助 I/O 虚拟化技术需要特殊 I/O 硬件的支持。以当前较为著名的 Intel 公司旗下的 VT-D(Virtualization Technology for Directed I/O)15技术为例, 一块基于 PCIE 总线的设备,
35、例如网卡适配器,可以直接绕过 VMM 的干预,直接以PCI 穿透的方式(PCI Passthrough的所示。)与特定虚拟机绑定,其大致的工如图 1.3虚拟机虚拟机物理I/O设备驱动物理I/O设备驱动穿透独享访问穿透独享访问虚拟机管理器I/O硬件平台图 1.3 基于 PCI 硬件设备穿透的 I/O 虚拟化技术该穿透的交互模式可以接近传统操环境下的硬件性能。但是,在此技术下,由于一块单独的物理 I/O 设备被某个虚拟机独享,造成其它虚拟机不能该设备,引起了一定程度上的浪费。为了缓解该问题,计算机部件互联专业组 PCI-SIG(Peripheral Component Interconnect S
36、pecial Interest Group)16制订了单根 I/O 虚拟化规范 SR-IOV(Single Root I/O Virtualization)17,一个 PCIE 设备从物理上导出多个 PCI 虚拟功能单元,在物理层次上实现虚拟化的功能。该方法一大特点就是需要特殊硬件的支持,例如:特定的 CPU 和主板,在一些场合甚至对具体的 I/O 硬件设备也有具体的规定。因此,I/O 硬件辅助虚拟化技术对于虚拟机在异构的物理平台之间的实时迁移场景支持的不够友好,但是其提供4物理I/O设备物理I/O设备华技 大 学 博 士的 I/O 性能仍然是 I/O 全虚拟化技术和半虚拟化技术所无法比拟的。
37、因此,基于硬件辅助的 I/O 虚拟化技术更加适用于一些高端服务器场合。1.1.2虚拟化技术作为 I/O 设备中的部分子系统在系统虚拟化技术中的具体解决方案可以借鉴前面提出来的三种 I/O 虚拟化方法。不同的是,当前一些开源的虚拟化都倾向于使用一种名为“用户空间 I/O进程”的方式来处理虚拟机的磁盘读写请求。这种方式的典型代表是 Xen 平台的 Blktap 驱动18,以及 KVM 平台的 QEMU I/O 驱动19。图 1.4 以前者为例,大致描述了基于“用户空间 I/O技术的基本细节。进程”的虚拟化共享内存I/O环 请求请求32 图 1.4 基于“用户空间 I/O进程”虚拟化技术的 Blkt
38、ap 驱动第一步,普通虚拟机内部进程发出的读写请求来到“块设备驱动前端”;第二步,“块设备驱动前端”将该请求放置一个名为“共享内存 I/O 环”的区域内,该区域由普通虚拟机和虚拟机共享;第三步,位于虚拟机内核空间的“块设备驱动后端”将请求从 I/O 环取出;第四步,“块设备驱动后端”将得到的虚拟机请求虚拟机的内核空间到用户空间,由一个名为“BlktapCtrl”的的数据部分从进程接收;第五步,BlktapCtrl 进程负责验证该请求,并将其相关到其下的某一个名为“Tapdisk”的子进程;第六机的用户空间对应一个 Tapdisk 子进程(行真正的磁盘读写相关操作。第七步,每一个普通虚拟机在虚拟
39、进程),由其代表某一个普通虚拟机进5I/O硬件平台磁盘设备7虚拟机管理器普通虚拟机用户空间1 块设备驱动前端内核空间应用程序虚拟机用户空间 BlktapCtrl主进程 54 Tapdisk子进程 6物理I/O设备驱动块设备驱动后端华技 大 学 博 士相比较 1.1.1 小节的几种典型的 I/O 虚拟化方法而言,基于“用户空间 I/O进程”的虚拟化技术需要将虚拟机的磁盘读写请求流导向至某一个虚拟机的用户空间,然后再通过其中的某一个进程来处理这些操作。尽管从虚拟机协议栈的角度来说,这种方式增添了一些额外的 I/O 处理路径,并且带来了一定的 CPU开销,但是在其具体实现过程中,由于应用了一些优化措
40、施,例如利用共享内存技术来避免普通虚拟机与虚拟机之间的数据对拷20,其性能开销可以在合理的范围内。同时,这种基于“用户空间 I/O统的 I/O 虚拟化方法所不具备的好处。进程”的虚拟化技术也带来了传第一,“块设备驱动后端”和“物理 I/O 设备驱动”模块理器软件,大为缩减了位于虚拟化系统关键位置的软件了传统的虚拟机管计算基 TCB(TrustedComputing Base)21,增强了整个虚拟化系统的可靠性和安全性。第二,虚拟机的用户空间提供了丰富的第程序库,可以为虚拟机的存储虚拟化提供更加灵活的支持策略。例如:通过用户层网络库的封装,可以方便地DAS(Direct-Attached Sto
41、rage)变换为更加有利于维将基于本地的直接连接式护的基于集中式管理的网络结构,例如网络NAS(Network Attached Storage)22和区域网 SAN(Storage Area Network)23。也可以通过一些加密库函数对用户的读写块内容提供加密服务,增强用户的隐私保护。第三,“I/O进程”代表着对应的虚拟机进行磁盘读写,因此,可以将原本调度策略24平滑的过渡到系统虚拟化环境下,而操自身包含的进程 I/O不用花费额外的精力重新设计。目前,由于这种虚拟化技术的稳定性和优越性,思杰公司(Ctrix)的商业XenServer25采用了 Blktap 块设备前后端驱动,并且已经大规
42、模地部署到虚拟化了实际的系统中。1.1.3 问题的提出与 I/O 硬件设备之间的间接在系统虚拟化环境下,虽然用户操互模式可以为一些 IT 领域的实际需求带来灵活有效的解决方案,但是却对 I/O 设备的6华技 大 学 博 士性能带来了影响。以子系统为例:由于虚拟机管理器的引入,使得虚拟机内部的读写请求需要经历更长的 I/O 软件路径而增加了额外的 CPU 开销26;而且, 虚拟机在做 I/O 操作时,需要将路径提交给虚拟化管理器,引起上下文切换,造成 CPU 的 TLB 快表(Translation Lookaside Buffer)以及缓存的失效2728;再次,虚拟机管理器的引入亦使得虚拟机内
43、部的相关块设备驱动程序与底层的硬件之间产生了语义鸿沟,使得前者很难获取到准确的设备相关信息,失去了性能进的机会29;最后,由于服务器整合,造成了底层的共享一设备需要面对和处理成倍增加的并发 I/O 数目,进一步加剧了其性能瓶颈30。考虑到子系统在计算机体系结构上的重要性,以及系统虚拟化技术在31,都使得算平台上扮演的快速部署、动态伸缩以及集约等重要对虚拟化性能进行优化研究具有意义。1.2 国内外研究现状当前国内外对有关虚拟机的性能优化研究主要集中在三个方面:(1) 虚拟机本地的垂直性能优化,即单个虚拟机从发出读写请求开始到物理返回请求结果之间的协议栈路径开销优化;(2)虚拟机本地的水平性能优化
44、,即多个虚拟机在共享之上进行同写操作的性能优化;(3)虚拟机网络性能优化,即虚拟机的在网络结构下的性能优化工作。以下分别从这个三个方面进行论述。1.2.1 虚拟机本地的垂直性能优化协议栈的优化,需要涉及具体的虚拟机 I/O 请求所经历的虚拟机本地协议路径。需要注意的是,在这当中还包括了间接引起的 CPU 上下文切换的过程(Context Switch)32,例如:当一个虚拟机向虚拟硬件具体的读写请求后,会产生一次虚拟机与虚拟机管理器之间的上下文切换,并且由后者代为执行本次操作。完成之后,后者还需要主CPU 再发动一次上下文切换,用于返回虚拟机的7华技 大 学 博 士权。两者之间的上下文切换包括
45、了 CPU 快表结构的重新填充以及缓存结构的冷启动等性能损失问题。这些问题,较早的一个优化工作是犹他大学和 NetApp 公司于 2009 年合作提出的 FIDO 系统33,适用于 Xen 半虚拟化平台上的企业级虚拟机。FIDO 将普通虚拟机的内存地址空间以静态的只读形式全部共享给虚拟机,避免了两者之间在传递 I/O 操作数据时所产生的动态建立和动态撤销共享内存的开销。考虑到在 Xen平台上,普通虚拟机的网络 I/O 和I/O 一般都需要通过虚拟机代为执行,因此,FIDO 可以网络和两个子系统的虚拟化性能。但是,由于 FIDO 性能优化的基础是以牺牲普通虚拟机的内存隐私为代价的,所以其适用范围
46、较为有限。2010 年,的和等人对 KVM 平台的 I/O 全虚拟化设备模型进行了改进34。在虚拟机内部,通过将一系列的磁盘 I/O 指令进行合并,以批量处理的方式来执行“陷入后模拟”流程,减小由于虚拟机上下文切换而引起的开销。这种方法的不足之处是需要修改虚拟机的内核代码,在一定程度上可能破坏了 I/O 全虚拟化的兼容性。2011 年,VMware 公司对外公布了 vIC 策略35,以减小虚拟机频繁处理来自于虚拟设备的中断而引起 CPU 消耗过多的问题。该策略使用了中断积聚(Interrupt Coalescing)技术来减少虚拟中断引起的上下文切换次数,同时也对中断处理的最大提供了保证。由于
47、该策略巧妙地将发生的I/O(Commands率中断延in Flight)作为中断积聚参数,而不需要像传统方法那样依赖特定的高时定时器(High-Resolution Interrupt-Delay Timers),因此已经广泛地部署在了系列当中36。类似的工作还有VMware 公司旗下的 ESX大学 Cheng 等人提出的 vBalance37,用于改进基于 SMP(Symmetric MultiProcessing)结构的虚拟机 I/O中断处理性能。同样是 2011 年,以色列理工学院和 IBM 海法在开源的 KVM 平台上合作并提出了SplitX 结构38,用以优化因为I/O 操作而发生虚
48、拟机上下文切换引起的CPU开销。它的思想是将虚拟机管理器和虚拟机分别放置于不同的 CPU。当发生上下文切换时,这种分离的 CPU 放置技术不仅可以避免切换后引起的快表和缓存的失8华技 大 学 博 士效问题,还可以让虚拟机继续在的 CPU上异步运行其它的指令,而不用一直停顿等待自身的运行环境恢复。和类似的工作不同,SplitX 不需要修改虚拟机内部的源码,但是需要特定的 CPU 硬件支持。同时,这两家还共同提出 VAMOS 虚拟化结构39,把在虚拟机内部运行的大型应用程序的中间件,例如 MySQL 数据库40中的插件式引擎结构(PluggableStorage Engines),从虚拟机层次转移
49、至虚拟机管理器层次,以减少该应用程序在进行 I/O 密集型操作时(需要和 PSE 交互)所发生的虚拟机与虚拟机管理器之间的上下文切换频率,从而改进虚拟机的 I/O 性能。在这当中,VAMOS 遵循的一个规律是:虚拟机与虚拟机管理器之间的上下文切换如果发生在较为高级的操作上,比如用户层的一条 SQL语句,则可以减少对应的切换次数。这是因为在一般情,一条 SQL 语句在到达了 PSE 之后,可能会转换成多条 I/O 操作。而每一条 I/O 操作, 在原有的结构上都可以引起上下文切换。现阶段 VAMOS 结构的不足之处在于需要修改虚拟机内部的应用程序,因此,其普适性还有待验证。2012 年初,威廉玛
50、丽学院和 IBM 的.J.沃森研究中心对虚拟化环境下特有的嵌套式文件系统结构进行了深入的性能分析41。通过对比虚拟机与虚拟机管理器之间多达 36 种不同文件系统类型的嵌套组合,他们发现,这种嵌套的文件系统结构对于包含了较多的读操作工作流几乎没有影响,而且,由于预读等因素的存在,在某些场合反而会使其性能比非虚拟化环境下的还要高。相于包含了较多写操作的工作流,却因为日志文件系统的存在,使得虚拟机管理器层次的写操作激增,对其性能有较大的影响。1.2.2 虚拟机本地的水平性能优化设备需要处理成倍增加的 I/O虚拟机本地的另一大是底层的共享请求数目。在这当中,主要用来缓解其性能瓶颈的一个方式就是本地的调
51、度和分配。2007 年左右,美国宾夕法尼亚州立大学的 Govindan 和美国莱斯大学的 Ongaro等人分别在他们的工作中研究了Xen 平台的CPU 调度算法与虚拟机内部的I/O 应用9华技 大 学 博 士之间的和性能影响42。他们指出:尽管当前的基于 Xen 平台的 CPU 调度算法可以在普通虚拟机之间保证 CPU的公平共享,但是会对一些包含了 I/O 密集型应用的虚拟机产生拖延调度等不利因素。基于此类观察,前者提出了一个基于 I/O 数目统计的方法,来对包含了 I/O 密集型应用的普通虚拟机的调度延迟进行改进。Ongaro 等人扩展了该思路43,并且还发现了前者提出的方法仍然会对 I/O
52、 延迟敏感型的虚拟机造成影响,借此提出了初步的解决方案。两者的工作皆缺乏对 I/O 型任务进行感知的技术,因此需要对虚拟机内部工作流的运行特征进行人工辨别甚至手工调整。为弥补该问题,2009 年,韩国高等科技学院的 Kim 等人提出了 I/O 任务透明感知的虚拟机调度机制44。该机制的一大亮点是通过一种对普通虚拟机透明的 I/O 特征感知策略,可以从混合型的工作流当中把具有 I/O 特征的虚拟机内部应用筛选出来,再进行优先调度,以改进这些 I/O 工作流的调度。2010 年,VMware 公司 Gulati 等人提出名为 mClock 的虚拟机本地的分配算法45。该算法为每一个运行其上的虚拟机设定三个值种类,分别用来给予虚拟机最低、最高以及基于权重分配的 QoS(Quality of Service)保证。该算法在具体实施时,只需要为每一个虚拟机的请求加入对应的值,然后根据一些预先定义的规则进行值种类的切换和调整,以适应其所处的具体性能环境。因此,该策略理论上较为通用,但是目前只在 ESX 平台上得到了基本的效果验证。类似的工作还有 Shue 等人于 2012 年提
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年信用协议示范文本索取
- 2025年个人经营店铺质押贷款合同样本
- 2025年企业人力资源专员聘用合同样本
- 2025年家庭装修家具采购合同模板
- 2025年新疆普通高中学业水平语文试卷(1月份)
- 2025年贝类养殖管理与经营承包协议书
- 2025年跨海大桥设计咨询合同
- 2025年严琦婚姻终止协议书
- 2025年标准范文园林用草籽采购合同样本
- 2025学期间临时看护合同
- 2024年临沧永德县人民法院聘用制书记员招聘考试真题
- 中医院发展中医重点专科、学科加强中医药人才培养的具体措施
- 2025年中国私域电商行业市场运行态势、市场规模及发展趋势研究报告
- 社区意识形态工作2025年度工作计划
- 财务核算管理制度
- 2025年浙江省重点高中提前自主招生数学模拟试卷(含答案)
- 弱电智能化劳务分包合同
- 药品经营企业(批发和零售)面临的风险点和应对措施
- 主要施工机械设备、劳动力、设备材料投入计划及其保证措施
- 甲状腺乳腺外科ERAS实施流程(模板)
- 自动化部门的发展规划
评论
0/150
提交评论