[发明专利]虚拟化环境中动态磁盘带宽分配方法有效
| 申请号: | 201110199077.2 | 申请日: | 2011-07-14 |
| 公开(公告)号: | CN102270104A | 公开(公告)日: | 2011-12-07 |
| 发明(设计)人: | 谢夏;金海;王希斌;曹文治;柯西江;岑文峰;曹杰;赵璐 | 申请(专利权)人: | 华中科技大学 |
| 主分类号: | G06F3/06 | 分类号: | G06F3/06 |
| 代理公司: | 华中科技大学专利中心 42201 | 代理人: | 曹葆青 |
| 地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 虚拟 环境 动态 磁盘 带宽 分配 方法 | ||
技术领域
本发明属于XEN虚拟化平台以及磁盘IO子系统领域,涉及一种对现有XEN磁盘IO子系统的改进方法,具体为一种虚拟化环境中动态的磁盘带宽分配方法,它综合考虑IO服务请求的优先级别和虚拟机的实际带宽需求来动态分配带宽,为虚拟机提供磁盘带宽资源的服务质量保证,并提高磁盘带宽的资源利用率。
背景技术
随着计算机硬件技术的飞速发展,单个PC机或者服务器的服务处理能力也在成倍增长,通过虚拟化技术,可以在一台物理机上运行Linux,Windows等不同的操作系统,虚拟化技术能够实现对服务器的整合,将各种应用服务聚合在一起,从而提高各种软硬件资源的利用率,并能节约大量的IT成本,提高企业数据的安全性和管理效率。随着虚拟化技术的快速发展,虚拟化技术作为一种资源的管理方案,已被广泛地应用到数据中心,分布式计算等环境中。
随着硬件技术的不断进步以及虚拟化技术的不断发展,用户会在一台物理机上部署更多的虚拟机,在其上运行更多的应用程序。同时,这些应用程序的类型也多种多样,例如计算密集型,IO密集型,时延敏感型等。不同类型的应用程序,它们对系统的资源需求也不相同:计算密集型的程序需要更多的CPU资源,IO密集型需要更多的IO资源,时延敏感型需要优先获得请求资源。因此,每个虚拟机的IO带宽需求各不相同。并且,虚拟机中运行的不同服务程序,不同的服务程序其优先级别也不同,对应的IO服务权重也不同。另外,各个虚拟机中的应用程序类型是在不断发生变化的。而目前的XEN虚拟平台中,对于IO资源(包括磁盘带宽资源)是一种完全公平的带宽分配策略,即将总带宽平均分配给虚拟机。因此,我们无法根据应用程序的IO服务权重和实际带宽需求为虚拟机动态地分配带宽。这里的优先级别和IO服务权重由管理员人为设定,设定的原则为虚拟机中应用程序的优先级别越高,该虚拟机对应的IO服务权重也越大。
如图1所示,在XEN虚拟化平台下,客户虚拟机利用XEN提供的事件通道,授权表,IO设备环等机制,通过前端的虚拟块设备驱动(以下简称VBD)与位于特权虚拟机的后端VBD通信,而在特权虚拟机里,后端驱动将客户虚拟机的IO请求转发给本地驱动,本地驱动通过Linux中的IO调度程序,将IO请求递交给实际的磁盘驱动从而实现磁盘的IO请求服务。在该体系结构下,所有客户虚拟机的IO请求都是通过特权虚拟机中产生的一个后端驱动产生守护进程来转发的,这些进程与特权虚拟机中的普通IO进程并无区别,因此客户虚拟机获得IO带宽会受到特权虚拟机中其他进程的影响。另外,在特权虚拟机中磁盘的调度算法为“CFQ(完全公平队列)”算法,所有IO进程公平分配磁盘带宽,因此各个虚拟机获得的磁盘带宽基本相同。
发明内容
本发明的目的在于提供一种虚拟化环境中动态磁盘带宽分配方法,该方法为不同优先级别的虚拟机提供多等级的磁盘服务质量(QoS)保证,通过指定各个虚拟机具体的服务优先级别或权重,减少各个虚拟机磁盘IO服务的相互影响,提高虚拟机的隔离性。
本发明提供的一种虚拟化环境中动态磁盘带宽分配方法包括下述步骤:
(1)初始化时,在后端驱动处为每个虚拟机的IO设备环分配一个令牌桶,并根据各个虚拟机的服务优先级别和权重分配相应的令牌数,同时为所有的虚拟机配备一个公用令牌桶,其初始令牌数为零,设t为最近一次分配令牌的时间,记录初始化分配时间t的值;
(2)各个虚拟机的前端驱动接收来自客户虚拟机上层应用程序的磁盘IO读写请求;
(3)前端驱动将IO请求放置在各个虚拟机的IO设备环中,并通知后端驱动;
(4)当各个客户虚拟机通过后端代理进程(在特权虚拟机即后端中,每个客户虚拟机都对应一个进程作为代理来请求磁盘IO服务)从其IO设备环上读取IO请求并向后端驱动递交IO请求时,判断该虚拟机对应的令牌桶是否为空,若为空,则转至步骤(5);否则根据IO请求的大小计算该IO请求所消耗的令牌数,然后从该虚拟机的令牌桶中减去相应的令牌数,并将IO请求递交给后端驱动处理,转至步骤(7);
(5)判断公用令牌桶是否为空,若为空,则转至步骤(6),否则,根据IO请求的大小计算其消耗的令牌数,从公用令牌桶减去相应的令牌数,并将IO请求递交给后端驱动处理,转至步骤(7);
(6)阻塞其IO请求,转至步骤(9);
(7)后端驱动将IO请求递交给本地驱动,本地磁盘驱动访问真实的磁盘设备,IO请求得到服务;
(8)后端驱动通知前端驱动IO请求服务完成,前端驱动向客户虚拟机报告IO操作完成;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110199077.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种SVM与激光雷达结合检测非结构化道路边界的方法
- 下一篇:摄像光学镜片组





