背景技术
研究发现,计算机数据中心的主要开销是机器供电和制冷系统,由于对资源的访问存在地区不均衡、时间不均衡等突发性负载的影响,导致整个数据中心资源利用率低下,由于其不能根据负载的实际变化来提供最合理的服务,造成资源的浪费,增加不必要的经济开销。在数据中心的表现则是徒耗不必要的电能,增加了制冷设备的负担。数据显示:2003年,美国某一数据中心要使用22TWh电量用于供能、网络交换设备、制冷等,而当时电价是每兆瓦100美元,在用电高峰期电价则更高,同时消耗1兆瓦电就会产生12M吨的二氧化碳,加重了地球的温室效应,且数据中心高昂的开销主要是用于机器供电和冷却系统。
互联网数据中心的WEB负载通常具有动态变化、易产生短暂峰值等现象。负载的突发性变化分为细粒度突发性变化和粗粒度突发性变化。前者在较短时间内负载产生突变。后者则在间隔较长的时间内,负载产生了较明显的变化。这种变化导致了负载的高峰期和低谷期,并呈现出一定的规律。例如,对于在线游戏来说,傍晚的负载大于白天,白天的负载大于深夜,周末和节假日的负载又大于工作日。突发性负载在实际应用中屡见不鲜。来自IBM官方网站的数据显示,在2001年2月仅5天时间有大量的访问,随后几天访问量急剧下降。1998年6月世界杯举行期间的世界杯网站在比赛直播期间,访问量达到高峰值,而在非比赛直播时间段,访问量突降。传统的计算机系统(如集群、数据中心)往往是基于预期的峰值负载来对资源进行静态的配置。但是,当系统的负载骤降或者从波峰转向波谷时,这种静态的资源分配方式导致极低的资源利用率。许多大型企业的IT基础设施的利用率大约只有35%,在某些企业中可能会低至15%。Google也报告称其服务器的利用率往往在10%到15%之间。如果从能耗的角度考虑,就会发现系统中大量的闲置资源在没有对外提供服务的情况下也消耗了大量的能量。因此由于数据访问的突发性行为,使得整个数据中心资源利用率非常的低,加大了使用成本。
现有技术主要通过静态资源分配与动态资源分配的方式实现计算机集群系统中的资源分配,但是静态资源分配方式没有考虑集群系统的能耗问题,因此无法做到系统的能耗自适应匹配系统的负载;而动态资源分配所使用的传统资源监测方式主要是监测CPU、内存、网络等物理资源的利用率,这导致检测系统非常复杂。
周文煜等人在期刊《华中科技大学学报》2011年12期中发表了基于虚拟机迁移的虚拟机集群资源调度,是通过对CPU、内存和网络三种计算机物理资源的使用情况进行监测而实现虚拟机集群资源调度的,该虚拟机集群资源调度方法使用3维向量对资源进行评估,根据集群本身性能设定合适阈值。但是,对物理源进行监控存在一定的问题,例如,当CPU利用率在一定时刻内变化较弱,则具有较差的自回归性及无周期性,在这种情况下,自动迁移策略不能带来好的效果;另外,CPU只是三种主要计算机物理资源中的一种,要将三种资源完全考虑到,相当困难而且准确度也不高;再者,他们也没有考虑虚拟集群系统的能耗问题。
发明内容
本发明的目的在于克服现有技术的缺点与不足,提供一种低能耗的面向web集群的调度系统,该调度系统使得web集群系统中的资源利用率有了较为明显的提高。
本发明的另一个目的在于利用上述系统实现一种面向web集群的低能耗调度方法。
为了达到上述第一个目的,本发明采用以下技术方案:一种面向web集群的低能耗调度系统,包括
可能量感知调度模块:以负载连接数作为敏感因子,根据敏感因子的动态变化对集群中的资源进行定制分配;
滞回控制器:用于控制web集群系统中集群节点的调度周期;
管理器:根据可能量感知调度模块发送出来的命令,对web集群系统中的集群节点做出调度;
可能量感知调度模块、滞回控制器和管理器连接依次连接。
为了达到上述第二个目的,本发明采用以下技术方案:一种面向web集群的低能耗调度方法,包括以下步骤:
(1)在web集群系统选中一个集群节点作为辅控节点PM1,控制该辅控节点PM1中的m个虚拟机始终处于工作状态,在负载连接数达到辅控节点PM1的负载连接数最大阈值之前,仅由辅控节点PM1处于工作状态;
(2)web集群系统中可能量感知调度模块对web集群系统的负载连接数进行监控,收集处于工作状态下的虚拟机中的负载连接数;滞回控制器控制web集群系统中集群节点的调度周期t;
(3)若可能量感知调度模块在一个调度周期t后检测到web集群系统中的负载连接数上升,则执行步骤(4);若可能量感知调度模块在一个调度周期t后检测到web集群系统中的负载连接数下降,则执行步骤(5);其中负载连接数在上升或下降前个数SC为:
负载连接数上升或下降后个数SC′为:
其中SCM为web集群系统的负载连接数最大阈值,n为web集群系统中集群节点的个数;
(4)负载连接数上升后,若j=k,则web集群系统保持不变,增加的负载连接至原工作队列的虚拟机中;若j≠k,则执行步骤(6);
(5)负载连接数在下降后,若j=k,则web集群系统保持不变,若j≠k,则执行步骤(7);
(6)扩展web集群系统中集群节点:选择j-k个处于休眠状态的集群节点,并将其唤醒,然后由管理器将辅控节点PM1中处于非工作状态下的虚拟机迁移至被唤醒的集群节点上,可能量感知调度模块修改被迁移的虚拟机的权值,使其进入到web集群系统的工作队列中,执行步骤(8);
(7)减少web集群系统中集群节点:管理器将web集群系统中当前负载连接数最少且在负载连接数上升阶段被唤醒的k-j个集群节点中的负载聚合到其他处于工作状态下的集群节点中,然后将这k-j个集群节点中原处于工作状态的虚拟机迁回至辅控节点PM1中,可能量感知调度模块修改被迁回的虚拟机的权值,使其从web集群系统的工作队列中退出,并将闲置后的集群节点转换成休眠状态,执行步骤(8);
(8)执行步骤(2)。
优选的,所述web集群系统在初始状态时,仅有辅控节点PM1处于工作状态。
优选的,所述web集群系统中每个集群节点的负载连接数最大阈值是相同的。
优选的,所述步骤(6)中,从辅控节点PM1迁移至其他集群节点的虚拟机数量均为2。
优选的,所述步骤(7)负载连接数减少时,管理器对web集群系统中离散分布的负载进行聚合时,当负载连接数少于单个集群节点的负载连接数最大阈值时,所有负载均连接至辅控节点PM1上。
优选的,所述集群节点中的虚拟机在工作状态时权值为1,在非工作状态时权值为0。
优选的,所述步骤(6)中由web集群系统内核选择j-k个处于休眠状态的集群节点,并将其唤醒,然后将可能量感知调度模块在辅控节点PM1中选定的处于休眠状态下的虚拟机的IP信息发送至管理器,管理器将这些被选定IP的虚拟机迁移到被唤醒的j-k个集群节点中;可能量感知调度模块将虚拟机的权值由0修改为1,权值被修改的虚拟机进入到web集群系统的工作队列中。
优选的,由web集群系统内核将所述步骤(7)中负载被聚合到其他集群节点的k-j个集群节点中的虚拟机的IP命令信息发送给管理器,管理器收到内核发送的包含有IP的命令信息后,将命令信息发送给包含有该IP的虚拟机的集群节点,然后将收到命令信息的集群节点中相应IP的虚拟机迁回到辅控节点PM1中,可能量感知调度模块将被迁回的虚拟机的权值从1修改为0,迁回后的虚拟机退出web集群系统的工作队列。
本发明相对于现有技术具有如下的优点及效果:
(1)本发明通过可能量感知调度模块监控web集群系统中的负载连接数实现对系统中集群节点和虚拟机资源的合理调度,当负载连接数增加时,通过唤醒其他处于休眠状态下的集群节点,将辅控节点中处于非工作状态的虚拟机迁至来唤醒的集群节点,以满足负载访问需要,提高资源的利用率;当负载连接数减少时,管理器将web集群系统中离散分布的负载聚合到少量的集群节点中,根据负载连接数的数量所在级别,选择一个或多个在负载连接数上升阶段被唤醒的集群节点,将这些集群节点中原处于工作状态的虚拟机迁回至辅控节点中,并从web集群系统的工作队列中退出,然后将闲置后的集群节点转让成休眠状态,即当负载连接数较少时,过剩资源转入低能耗状态,降低了系统能耗。特别适合用于负载访问量存在突发性变化的系统。
(2)本发明中的滞回控制器控制web集群系统中集群节点进行调度的调度周期,即系统在一个调度周期后才进行节点分配,由于负载连接数的反复变化会使系统不稳定,而在一个调度周期后,负载的反复变化会趋于稳定,在此时再进行系统的资源就可以优化系统的反复变化,提高系统的性能。
(3)本发明仅以负载连接数作为敏感因子,系统仅通过对负载连接数的监控即可实现集群节点和虚拟机资源的调度,相对于传统的对后台集群节点的CPU、内存和网络等资源进行监控实现资源分配的方法,本发明方法操作更为简单,容易实现以及资源调度更为实时,并且系统资源调度的灵敏度也更高。
(4)本发明选定一个集群接节点作为辅控节点PM1,在本发明方法中只有辅控节点PM1中的几个虚拟机始终处于工作状态,在辅控节点PM1中负载连接数未达到其最大阈值时,控制web集群系统中其他集群节点均处于休眠状态;web集群系统在初始状态时,仅有辅控节点PM1的几个虚拟机处于工作状态,当web集群系统开启后,负载访问系统时,首先连接上的是辅控节点PM1中的虚拟机,在辅控节点PM1的负载连接数达到其上的最大阈值时,才唤醒其他的集群节点,进一步提高了资源的利用率。
实施例
如图1所示,本实施例公开了一种面向web集群的低能耗调度系统,包括
可能量感知调度模块:以负载连接数作为敏感因子,根据敏感因子的动态变化对集群中的资源进行定制分配;
滞回控制器:用于控制web集群系统中负载的波动,控制web集群系统中集群节点的调度周期;
管理器:根据可能量感知调度模块发送出来的命令,对web集群系统中的集群节点做出调度;
可能量感知调度模块、滞回控制器和管理器连接依次连接。
本实施例web集群系统包含有三个集群节点,web集群系统的负载连接数最大阈值为9000,每个集群节点上可以运行两个虚拟机,每个虚拟机最大的负载连接数为1500,因此每个集群节点的负载连接数最大阈值为3000,即3000为负载连接数的一个数量等级。其中集群节点中的虚拟机在工作状态时权值为1,在非工作状态时权值为0。
如图2所示,本实施例基于上述调度系统的面向web集群的低能耗调度方法如下:
(1)在web集群系统选中一个集群节点作为辅控节点PM1,控制该辅控节点PM1中的2个虚拟机VM1和VM2始终处于工作状态,其中web集群系统在初始状态时,仅有辅控节点PM1的两个虚拟机VM1和VM2处于工作状态,此时web集群系统处于最小规模。在辅控节点PM1中负载连接数未达到其负载连接数最大阈值时,控制web集群系统中其他集群节点均处于休眠状态,其中每个集群节点的负载连接数最大阈值是相同的。
(2)web集群系统中可能量感知调度模块对web集群系统的负载连接数进行监控,收集处于工作状态下虚拟机中的负载连接数,滞回控制器控制web集群系统中集群节点的调度周期t,实现对负载连接数的波动进行优化处理。本实施例系统的调度周期t为60秒;检测到本实施例web集群系统的负载连接数从SC≤3000时开始增长。
(3)可能量感知调度模块在一个调度周期t后检测到web集群系统中的负载连接数上升后数量仍为SC≤3000,此时web集群系统保持不变,增加的负载还是连接至辅控节点PM1。
Web集群系统中负载连接数在SC≤3000基础上继续的增长,可能量感知调度模块在一个调度周期t后检测到web集群系统中的负载连接数上升到数量为3000<SC≤6000,则此时web集群系统内核选择一个处于休眠状态的集群节点PM2,并将其唤醒,然后将可能量感知调度模块在辅控节点PM1中选定的处于休眠状态的虚拟机VM3和VM4的IP信息发送至管理器,管理器将这些IP的虚拟机VM3和VM4迁移到被唤醒的集群节点PM2中;可能量感知调度模块将被迁移的虚拟机VM3和VM4的权值由0改为1;使虚拟机VM3和VM4进入到web集群系统的工作队列中。
Web集群系统中负载连接数在3000<SC≤6000基础上继续的增长,可能量感知调度模块在一个调度周期t后检测到web集群系统中的负载连接数上升到数量为6000<SC≤9000,则此时web集群系统内核选择1个处于休眠状态的集群节点PM3,并将其唤醒,然后将可能量感知调度模块在辅控节点PM1中选定的处于休眠状态的虚拟机VM5和VM6的IP信息发送至管理器,管理器将这些IP的虚拟机VM5和VM6迁移到被唤醒的集群节点PM3中;可能量感知调度模块将被迁移的虚拟机VM5和VM6的权值由0改为1;使虚拟机VM3和VM4进入到web集群系统的工作队列中。
(4)web集群系统中的负载访问量在上述步骤(3)增长之后开始下降,可能量感知调度模块在一个调度周期t后检测到web集群系统中的负载连接数下降后数量仍为6000<SC≤9000,此时web集群系统保持不变。
web集群系统中的负载连接数在上述6000<SC≤9000的基础上继续下降,可能量感知调度模块在一个调度周期t后检测到web集群系统中的负载连接数下降到3000<SC≤6000,此时PM3中的负载连接数最少,管理器将在PM3中的负载聚合到PM1中和PM2中,web集群系统内核将包含有虚拟机VM5和VM6的IP命令信息发送给管理器,管理器收到内核命令信息后,再将命令信息发送给包含有虚拟机VM5和VM6的集群节点PM3,然后将收到命令信息的集群节点PM3中相应IP的虚拟机VM5和VM6迁回到辅控节点PM1中,可能量感知调度模块将被迁回的虚拟机VM5和VM6的权值由1改为0,使虚拟机VM5和VM6退出web集群系统的工作队列。
web集群系统中的负载连接数在3000<SC≤6000基础上继续下降,可能量感知调度模块在一个调度周期t后检测到web集群系统中的负载连接数下降到SC≤3000时,由管理器将在PM2的负载全部聚合到PM1中,即当负载连接数少于单个集群节点的负载连接数最大阈值时,所有负载均连接至辅控节点PM1上,web集群系统内核将包含有虚拟机VM3和VM4的IP命令信息发送给管理器,管理器收到内核命令信息后,再将命令信息发送给包含有虚拟机VM3和VM4的集群节点PM2,然后将收到命令信息的集群节点PM2中相应IP的虚拟机VM3和VM4迁回到辅控节点PM1中,可能量感知调度模块将被迁回的虚拟机VM3和VM4的权值由1改为0,迁回后的虚拟机VM3和VM4退出web集群系统的工作队列。此时web集群系统恢复到最小规模状态。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。