一种云计算环境中的面向负载均衡的虚拟机择位系统的制作方法

文档序号:6362530阅读:121来源:国知局
专利名称:一种云计算环境中的面向负载均衡的虚拟机择位系统的制作方法
技术领域
本发明公开了一种虚拟机择位系统,尤其涉及一种云计算环境中的面向负载均衡的虚拟机择位系统。属于计算机技术领域。
背景技术
近年来,网络应用的飞速发展使得对计算能力的需求不断增加,伴随着网格计算、 并行计算、分布式计算的发展,云计算应运而生。根据美国国家标准与技术研究院(NIST) 的定义,当前云计算服务可分为3个层次,分别是⑴基础设施即服务(IaaS),如Amazon 的弹性计算云(elastic compute cloud,简称 EC2)、IBM 的蓝云(blue cloud)以及 Sun 的云基础设施平台(IAAS)等;⑵平台即服务(I^aaS),如Google的Google App Engine与微软的Azure平台等;(3)软件即服务(MaS),如Mlesforce公司的客户关系管理服务等。 云计算作为一种新兴的商业计算模式,被列为各个国家未来重点发展的技术方向,并成为了当今计算机研究界和工业界的热点研究课题随着云计算环境中的应用种类越来越多、资源规模的越来越大,云计算环境中资源管理的难度也在显著增加。尤其随着近年来虚拟化技术再次复兴,虚拟资源作为一种关键资源形式再次站上历史舞台,面向云计算的虚拟数据中心得到了更加广泛的关注。所谓虚拟数据中心,外国学者称为Virtual Datacenter,是指利用服务器虚拟化技术,采用互相独立、隔离的虚拟主机(简称虚拟机)提供等同物理主机的功能,且其成本将比物理数据中心更低。所谓虚拟机,就是计算机软件,运行于物理硬件或物理计算机之上,它可以运行操作系统(称为客户操作系统)和应用程序,有自己的虚拟硬件。虚拟机不是仿真器和模拟器,它们是真实的计算机,可以实现与物理计算机相同甚至超过物理计算机的功能。鉴于虚拟机的灵活易用,物理机的功能将从提供服务(应用程序、数据库等)转为容纳提供这些服务的虚拟机,也就是相对虚拟机而言的宿主机(host)。随着云计算的发展,目前IBM、HP、 Amazon, Google、Microsoft等大型IT公司和数据中心都在积极建立并对外提供各种面向云计算服务的虚拟数据中心。可见,虚拟数据中心技术已经成为了当前国内外研究界和工业界的热点研究课题,而资源虚拟化及虚拟资源的管理也已成为解决云计算中系统资源利用瓶颈的重要途径之一,具有重要的研究意义和应用价值。在虚拟化技术为云计算环境中的资源利用带来方便,即物理机与虚拟化技术联合对外将提供远远超过物理主机数量的独立虚拟主机的同时,也带来了虚拟机择位的难题, 即如何恰当地为虚拟机选择宿主机。针对该问题,云计算环境中的虚拟机择位方法和产品的研究进展和问题分析如下国内外已研发了了一些虚拟机管理产品,如开源的OpenNebula,Eucalyptus等系统,产业界的Virtual Machine Manager 2008和VMware ESX Server,虚拟机择位作为子功能嵌入其中,可见虚拟机择位是一个核心子系统。从体系结构方面看,现有择位系统可分为 1)集中式,如物理主机上虚拟机数量最多或负载最大者优先;幻分散式,如物理主机上虚拟机数量最少或负载最小者优先。从实现方式上看,现有择位系统可分为两类,一是手动择位,由管理员感性地为虚拟机选择宿主机,存在依赖于管理员主观因素,自动化不够高等缺点;二是自动择位,由后台进程基于对物理主机环境信息、资源利用率等的考虑为虚拟机选择宿主机。从核心择位实现算法上看,当今主流的自动化虚拟机择位核心算法主要有打包 (Packing)法,分条(Striping)法,负载感知(Load-aware)法,内存亲近(Memory Buddies)法。 打包(lacking)法的基本思想是以尽少使用结点为目标,将虚拟机集中在部分云计算中的结点上运行。实现方式上,采用虚拟机运行数目最多优先原则,即当需要为新建虚拟机选择宿主机时,选择拥有最多数量虚拟机运行的宿主机。OpenNebula平台的 Scheduler程序中实现了这一虚拟机择位方法,其配置文件标记为“RANK = RUNNING_VMS”。 打包方法的优点是该方法可使大量虚拟机集中在少数物理结点上运行,可降低物理服务器成本。打包方法的不足是虚拟机过于集中,致使虚拟机资源抢占概率过大,为保证虚拟服务器的服务质量,大量的虚拟机迁移及资源调整行为必不可少,这样会产生大量开销。 分条(Striping)法基本思想是以最大化单个服务器结点可用资源为目标,将虚拟机散布在所有结点上运行。实现方式上,采用虚拟机运行数目最少优先原则,即当需要为新建虚拟机选择宿主机时,选择拥有最少数量虚拟机运行的宿主机。OpenNebula平台的 kheduler程序中也实现了这一虚拟机择位方法,其配置文件标记为“RANK = -RUNNING, VMS”。其基本思路是受机群负载均衡启发,使虚拟机按数量均勻分布,降低虚拟机资源抢占概率。其缺点是依据虚拟机数量进行择位,把虚拟机数量仅仅抽象为结点上的负载值,过于单一,并且无法区别不同资源(如CPU,内存,磁盘等)请求的虚拟机对结点造成的实际负载,不够细化,难以实现更细粒度和精确的资源分配需求。 负载感知(Load-aware)法的目标与分条(Striping)法相同,力求最大化单个结点上的可用资源。基本设计思路是受结点负载最小而启发,将新建虚拟机放置在具有最小负载的节点上运行。实现方式上,采用最大CPU空闲率优先原则,即当需要为新建虚拟机选择宿主机时,选择CPU空闲率最大的宿主机。OpenNebula平台的kheduler程序中也实现了这一方法,其配置文件标记为“RANK = FREECPU”。其优点包括与分条法相同,受负载均衡启发,由于考虑结点上的CPU资源使用情况,可达到分布式计算系统范围内的CPU资源负载均衡。其缺点包括该方法只考虑了 CPU资源,对结点的内存、网络和磁盘使用情况等机群结点负载的重要组成,缺乏考虑。 内存亲近(Memory Buddies)法是由Timothy Wood博士提出的一种基于内存共享感知(memory sharing-aware)的虚拟机择位系统,包括一个内存识别系统(memory fingerprinting system),能够有效判断一组虚拟机之间的内存共享潜能(sharing potential),并计算出更有效的放置方式。另外,随着负荷变化,系统还将利用在线迁移 (live migration)优化虚拟机放置。其优点是从机群范围寻找虚拟内存页相同的虚拟机, 使他们迁移到同一个机群结点,共享虚拟内存,可提高物理内存利用率,节约内存,提升机群的虚拟机容纳数量。其缺点是由于需要通过虚拟机迁移实现择位,方法过程较复杂,并且若共享虚拟内存的虚拟机过多,无法保证虚拟服务器的服务质量。总结现有的虚拟机择位方法可知,打包法是以占用最少机群结点为目标的虚拟机择位方法,导致虚拟机资源抢占概率过大问题,虚拟服务器的服务质量也会大大降低;分条法与负载感知法均以机群负载均衡为目标,分别考虑的是机群结点上运行的虚拟机数目和机群结点CPU资源利用率,忽略了各虚拟机请求资源的殊同和结点内存、网络等其他资源使用情况对结点负载的影响,也即仅考虑了 CPU资源利用情况,缺乏综合资源利用率情况的考虑;内存亲近法是以最大化机群范围内虚拟机内存共享为目标,虽提升了机群可容纳的虚拟机数量,但择位过程需要一次虚拟机迁移,且具有虚拟服务器服务质量损耗。总结现有的发明现状可知,云计算作为近年来新兴的服务模式,近年来在研究界和工业界都得到了日益广泛的重视,然而由于云计算比较新,目前尚缺乏面向云计算环境的虚拟机择位系统的发明,尤其是缺乏云计算环境中的面向负载均衡的虚拟机择位系统的发明。因此,本发明即是针对云计算这种新兴的发展技术,以及现有择位技术存在的以上问题,发明了一种云计算环境中的面向负载均衡的虚拟机择位系统。

发明内容
1、目的本发明的目的是针对云计算环境中虚拟资源的恰当分配等问题,尤其针对虚拟机择位(即如何恰当地为虚拟机选择宿主机)的问题,面向资源负载均衡目标,发明一种云计算环境中的面向负载均衡的虚拟机择位系统,最终提升云计算环境中的虚拟机网络吞吐率,降低虚拟机的资源抢占概率,改善虚拟主机的服务质量并提高云计算环境中系统负载均衡性。2、技术方案本发明的技术方案如下一种云计算环境中的面向负载均衡的虚拟机择位系统, 在模块构成上,主要由前端模块及后端模块组成。1)前端模块前端模块进一步包括子功能模块综合负载计算模块,宿主机选择模块。2)后端模块运行于各分布式后端子结点上,主要进行各分布式结点的负载信息处理工作。后端模块由多个分布式的结点代理模块集合构成。结点代理模块又由结点负载收集模块、结点负载预测模块、结点负载增量计算模块组成。其中各模块负责的功能和部署位置描述如下所示 前端模块起综合管理作用,负责接受新建虚拟机请求并进行响应。运行于前端结点上。 综合负载计算模块进行云计算系统的综合负载计算,并将综合负载结果传输。 运行于前端结点上。 宿主机选择模块以综合负载值向量为输入,在可用资源满足请求的结点范围内,执行线性搜索算法,依据负载均衡原则,选择综合负载值最小的结点,作为新建虚拟机的目标宿主机。 后端模块运行于各分布式后端子结点上,主要进行各分布式结点的负载信息处理工作。后端模块由多个分布式的结点代理模块集合构成。 结点代理模块作为各个分布式的物理结点的代理。主要包括结点负载收集模块、结点负载增量计算模块三个子模块构成。部署于云计算环境中的各结点上。 结点负载收集模块各结点获取本结点上的负载信息。如CPU空闲率,内存使用率等。 结点负载预测模块各结点由当前的与前一时刻的原始负载信息预测下一时刻的原始负载信息。 结点负载增量计算模块各结点首先对负载进行增量计算,然后结点将预测的负载数据与前一时刻负载信息比较,然后执行如下选择操作若增量大于阈值,预测结果作为本节点负载信息被传送给前端结点的前端模块,同时将本结点上的当前原始负载信息替换前一时刻原始负载信息。若增量不大于阈值,不向机群前端结点的前端模块传送负载信息,直接在本结点上将当前原始负载信息替换为前一时刻原始负载信息。基于以上模块构成,在核心算法上,本发明公布了一种云计算环境中的面向负载均衡的虚拟机择位算法。该算法的基本流程为Sl 前端模块接受新的择位请求指令。S2 前端模块触发各结点代理模块。S3 各结点代理模块调用结点负载收集模块各结点代理模块接受来自前端模块的择位请求指令,调用结点负载收集模块,执行结点负载收集。S4:各结点代理模块调用结点负载预测模块,执行结点负载预测。S5 :S5主要由三个子步骤组成,即S5 :S51 各结点代理模块调用结点负载增量计算模块,S5 :S52 判断负载是否变化,S5 :S53 结点增量计算模块将发送负载到前端模块。 执行结点负载增量计算。S6 前端模块调用综合负载计算模块,执行综合负载计算。S7 前端模块调用宿主机选择模块,完成宿主机选择。3、优点及功效本发明所公布的一种云计算环境中的面向负载均衡的虚拟机择位系统,它与现有技术相比,其主要的优点是(1)在最初的虚拟机创建期就依据负载均衡原理选择宿主机, 可以很好地降低后期由于云计算中各结点负载不均衡,需进行虚拟机迁移及资源重新分配的可能性,提升云计算系统的负载均衡性和容错性。(2)由于近年来云计算作为新型的计算和服务方法被提出,并得到了工业界(金融、政府、企业等等)日益广泛,推广和应用,而虚拟机择位系统是其资源分配中的至关重要的模块,故本发明具有很强的实用性和很广的应用范围。


图1本发明的云计算环境中的面向负载均衡的虚拟机择位系统总体框架示意2本发明的云计算环境中的面向负载均衡的虚拟机择位系统流程示意图
具体实施例方式为使本发明的目的、技术方案和优点表达得更加清楚明白,下面结合附图及具体实施例对本发明再作进一步详细的说明。如图2所示,云计算环境中的面向负载均衡的虚拟机择位系统,具体实施步骤如下一种云计算环境中的面向负载均衡的虚拟机择位系统,在模块构成上,主要由前端模块MFl及后端模块MEl组成。
1)前端模块MFl 前端模块进一步包括子功能模块综合负载计算模块MF11,宿主机选择模块MF12。运行于云计算系统的前端子结点。2)后端模块MEl 后端模块MEl由多个分布式的结点代理模块ME2集合构成。结点代理模块又由负载收集模块ME211、负载预测模块ME212、增量计算模块ME213组成。运行于各分布式后端子结点上,主要进行各分布式结点的负载信息处理工作。其中各模块负责的功能和部署位置描述如下所示3)前端模块MFl 起综合管理作用,负责接受新建虚拟机请求并进行响应。运行于前端结点上。4)综合负载计算模块MFll 进行云计算系统的综合负载计算,并将综合负载结果传输。运行于前端结点上。5)宿主机选择模块MF13 以综合负载值向量为输入,在可用资源满足请求的结点范围内,执行线性搜索算法,依据负载均衡原则,选择综合负载值最小的结点,作为新建虚拟机的目标宿主机。6)后端模块MEl 运行于各分布式后端子结点上,主要进行各分布式结点的负载信息处理工作。后端模块MEl由多个分布式的结点代理模块ME2集合构成。7)结点代理模块ME2 作为各个分布式的物理结点的代理。主要包括结点负载收集模块ME211、结点负载增量计算模块ME213三个子模块构成。部署于各个云计算环境中的各结点上。8)结点负载收集模块ME211 各结点获取本结点上的负载信息。如CPU空闲率,内存使用率等。9)结点负载预测模块ME212 各结点由当前的与前一时刻的原始负载信息预测下一时刻的原始负载信息。10)结点负载增量计算模块ME213 各结点首先对负载进行增量计算,然后结点将预测的负载数据与前一时刻负载信息比较,然后执行如下选择操作若增量大于阈值,预测结果作为本节点负载信息被传送给前端结点的前端模块(MFl),同时将本结点上的当前原始负载信息替换前一时刻原始负载信息。若增量不大于阈值,不向机群前端结点的前端模块MFl传送负载信息,直接在本结点上将当前原始负载信息替换为前一时刻原始负载信肩、ο基于以上模块构成,在核心算法上,本发明公布的一种云计算环境中的面向负载均衡的虚拟机择位算法。该算法的基本实施流程和实例为Sl 前端模块MFl接受新的择位请求指令,本实例中指令示例为“虚拟机创建”和 “虚拟机择位”。S2 前端模块MFl触发各结点代理模块ME2,本实例中通过设置前端结点用户无密码登入其他结点并远程执行代码实现“触发”。S3 各结点代理模块ME2调用结点负载收集模块ME211。本实例中,各结点代理模块ME2调用并接受来自前端模块MFl的择位请求指令(“虚拟机创建”和“虚拟机择位”), 然后调用结点负载收集模块ME211,执行结点负载收集。具体收集方法是ME2通过多线程模式和SAR工具、IOSTAT方法获取结点的负载信息。负载信息包括CPU空闲率,内存使用率, 磁盘读写速率,网络接收和发送速率。
8
S4:各结点代理模块ME2调用结点负载预测模块ME212,执行结点负载预测。在本实例中,首先将S3中得到的负载信息归一化,导出CPU使用率(α。κ)、内存使用率(α ΜΚ)、网络利用率(α ΝΕ)和磁盘传输率(P)。其中CPU使用率、内存使用率取实际数值,网络利用率是网络接收速率(Vnks)、发送速率(Vnss)之和与传输网络最大速率(Vmns)之比,由于本实例中的平台采用百兆网卡,所以vms = 100Mbps,且α冊=(vNES+vNSS)/Vmnso磁盘传输率(P)是类似的,采用磁盘读写速率(vDKS、vDffS)之和除以磁盘最佳传输速率(Viffis), 其中可通过hdparm命令获取磁盘最佳速率。经过对本实例中的3台服务器的多次测试,发 3 hdparm HiiJi式31 目白勺 Timing cached reads iSit^lnil 4170MB/s, Timing buffered disk reads速度不超过92Mbps,因此采用92Mbps作为磁盘最佳速率。然后,确定服务器磁盘的块大小BLKS (block size)。通过查看磁盘设备命令得到分区的详细信息,确定实验平台服务器Block大小为4096B即4KB。根据以上信息可确定P = (vDES+vDffS) B X 8/vms。(aCR, Qmr, aNK,P)t表示为当前(t时刻)负载数据,同时结点保存有前一时刻(tQ 时刻)负载数据(a·, aMR0, a·, PJtci,通过两组数据的线性预测模型,我们可知下一时刻 (此处根据负载数据的时效性规定为下一秒,记为η时刻)负载数据(α-, αΜΕη, αΝΕη,Ρη)η 与t时刻、t0时刻负载数据存在如下关系
权利要求
1.一种云计算环境中的面向负载均衡的虚拟机择位系统,在模块构成上,主要由前端模块(MFl)及后端模块(MEl)组成;1)前端模块(MFl)前端模块进一步包括子功能模块综合负载计算模块(MFll),宿主机选择模块(MF12);2)后端模块(MEl)运行于各分布式后端子结点上,主要进行各分布式结点的负载信息处理工作;后端模块(MEl)由多个分布式的结点代理模块(ME2)集合构成;结点代理模块又由结点负载收集模块(ME211)、结点负载预测模块(ME212)、结点负载增量计算模块 (ME213)组成;其中,各模块负责的功能和部署位置描述如下所示 前端模块(MFl)起综合管理作用,负责接受新建虚拟机请求并进行响应;运行于前端结点上; 综合负载计算模块(MFll)进行云计算系统的综合负载计算,并将综合负载结果传输;运行于前端结点上; 宿主机选择模块(MF13)以综合负载值向量为输入,在可用资源满足请求的结点范围内,执行线性搜索算法,依据负载均衡原则,选择综合负载值最小的结点,作为新建虚拟机的目标宿主机; 后端模块(MEl)运行于各分布式后端子结点上,主要进行各分布式结点的负载信息处理工作;后端模块(MEl)由多个分布式的结点代理模块(ME2)集合构成; 结点代理模块(ME2)作为各个分布式的物理结点的代理;主要包括结点负载收集模块(ME211)、结点负载增量计算模块(ME213)三个子模块构成;部署于云计算环境中的各 ^^ ; ^^ ~ t ,眷结点负载收集模块(ME211)各结点获取本结点上的负载信息; 结点负载预测模块(ME212)各结点由当前的与前一时刻的原始负载信息预测下一时刻的原始负载信息;眷结点负载增量计算模块(ME213):各结点首先对负载进行增量计算,然后结点将预测的负载数据与前一时刻负载信息比较,然后执行如下选择操作若增量大于阈值,预测结果作为本节点负载信息被传送给前端结点的前端模块(MFl),同时将本结点上的当前原始负载信息替换前一时刻原始负载信息;若增量不大于阈值,不向机群前端结点的前端模块 (MFl)传送负载信息,直接在本结点上将当前原始负载信息替换为前一时刻原始负载信息。
2.基于权利要求1择位系统的一种云计算环境中的面向负载均衡的虚拟机择位方法, 基本流程为51前端模块(MFl)接受新的择位请求指令;52前端模块(MFl)触发各结点代理模块(ME2);53各结点代理模块(ME2)调用结点负载收集模块(ME211)各结点代理模块(ME2)接受来自前端模块(MFl)的择位请求指令,调用结点负载收集模块(ME211),执行结点负载收集;54各结点代理模块(ME2)调用结点负载预测模块(ME212),执行结点负载预测;55:S5主要由三个子步骤组成,即S5 :S51 各结点代理模块(ME2)调用结点负载增量计算模块(ME213),S5 :S52 判断负载是否变化,S5 :S53 结点增量计算模块(ME213)将发送负载到前端模块(MFl);执行结点负载增量计算;·56前端模块(MFl)调用综合负载计算模块(MFll),执行综合负载计算;·57前端模块(MFl)调用宿主机选择模块(MF12),完成宿主机选择。
全文摘要
本发明公开了一种云计算环境中的面向负载均衡的虚拟机择位系统,由前端模块及后端模块组成。其中前端模块包括综合负载计算模块,宿主机选择模块。后端模块由多个分布式的结点代理模块集合构成。结点代理模块又由结点负载收集模块、结点负载预测模块、结点负载增量计算模块。由于近年来云计算作为新型的计算和服务方法被提出,并得到了工业界日益广泛的关注、推广和应用,而虚拟机择位系统是其资源分配中至关重要的模块,通过本发明将提升云计算环境中的虚拟机网络吞吐率,降低虚拟机的资源抢占概率,改善虚拟主机的服务质量并提高云计算环境中分布式系统的负载均衡性。因此,本发明具有广阔的应用前景并可产生显著的经济效益。
文档编号G06F9/455GK102567080SQ20121000131
公开日2012年7月11日 申请日期2012年1月4日 优先权日2012年1月4日
发明者祝明发, 肖利民, 阮利 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1