云计算资源动态配置策略

2016-11-24 16:37蒋维成李兰英
电脑知识与技术 2016年26期
关键词:云计算数据中心

蒋维成++李兰英

摘要: 云计算环境中存在大量的计算资源,对这些资源进行合理的配置具有重要意义。该文对任务请求队列设置两个阈值,结合服务节点负载情况,提出了一种计算资源动态伸缩配置的方法。该方法能根据服务请求的任务数对计算资源进行自适应配置,理论分析表明,在任务量增加时,算法能够增加服务能力,避免用户的服务请求长时间得不到响应,在任务量减少时,减少系统闲置资源,提高计算资源的高效利用,降低能量消耗。

关键词:云计算;资源调度;数据中心

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2016)26-0042-02

Cloud Computing Resource Dynamic Allocation Strategy

JIANG Wei-cheng, LI Lan-ying

(The Engineering & Technical College of Chengdu University of Technology, Leshan 614000, China)

Abstract: There are a lot of computing resources in the cloud computing. It is of great significance to make the allocation of the resources. In this paper, a method of the dynamic allocation of resources is proposed, which is based on the two thresholds of the task queue and the load of the node. The resources can be adapted according to the task. It can avoid excessive response time and idle resources, which improve the efficient use of resources and reduce energy consumption.

Key words: cloud computing; resource scheduling; data center

1 引言

云计算是一种新兴的计算模式,它可以为用户提供弹性的、规模可以伸缩的计算资源[1-3]。在云计算中,存在大量的计算资源、存储资源,使用虚拟化技术为用户提供按需服务。云计算核心服务主要有基础设施即服务(infrastucture as a service, IaaS),平台即服务(platform as a service, PaaS)和软件即服务(software as a service, SaaS)。IaaS进行硬件基础设施部署,提供计算、存储等相应服务。PaaS提供应用程序部署和管理服务,使用者上传程序代码和数据就能获得服务,不必关心底层具体细节问题。SaaS提供基于互联网的应用程序服务,用户通过命令行、WEB服务或WEB门户的形式获取服务[4]。然而,WEB服务在高并发请求时,将出现响应时间增加、服务器宕机等问题。

云计算中存在大量的服务节点,如何管理这些服务节点,保持服务资源的高效利用具有重要意义,在用户服务请求急剧增加时,避免系统压力过大,用户的服务请求长时间得不到响应,而在任务量减少时,较多的服务节点处于空闲状态,造成资源的浪费、空耗电源。为了避免这种现象的发生,本文提出了基于用户任务请求的服务资源动态配置策略。

2 相关研究

文献[5] 运用虚拟技术在OpenStack上构建云平台,实现对多媒体缓存服务器进行伸缩管理。文献[6] 采用OpenStack和Cloudify构建自伸缩云应用平台,为用户提供CPU、存储空间和操作系统等资源服务。该系统根据需要虚拟和部署相应服务来分担请求任务。在服务请求下降时,减少应用实例,回收多余的资源,根据虚拟机资源模板的标度值建立模糊矩阵,进行相应的处理和调度。文献[7] 使用Nagios网络监视工具对服务器的性能指标进行采集,包括CPU利用率、内存利用率、磁盘利用率、进程数、交换空间利用率等,实现对云计算集群服务器的监控和负载均衡的调度。文献[8]指出,动态获取OpenStack资源池的信息和资源池中运行节点的数量,收集云计算节点的CPU使用率、内存利用率和网络带宽的使用情况,综合所有节点的CPU负载情况来决定系统的负载是否过重。在数据中心负载过大时,开启和增加服务节点来减轻系统的压力,而在负载过低时,关闭部分节点,减少运行节点的数量,从而提高剩余节点的资源利用率,降低数据中心整体能耗。

国外研究统计表明Youtube网站和NASA网站的用户访问具有周期性,访问的高峰是在傍晚时分,而在深夜到凌晨降到低谷。云计算中任务的请求具有一定周期性和规律性,这就为服务资源的动态配置提供了依据。

3 算法模型

本文算法模型如图1所示,包括分析模块、监控模块和分配模块。监控模块负责监控用户的服务请求,并把服务请求依次放入任务缓冲队列中,任务分配模块从缓冲队列中取出任务,分配给各服务节点进行处理。分析模块负责分析系统中各服务节点的运行情况、响应时间的快慢、负载压力等,并把分析结果报告给监控模块进行决策处理,决定是否增加还是减少服务节点,以保持系统资源合理配置,效率较高。

文献[7]指出,服务节点负载轻重状况的判断主要有两种方式:1)根据服务节点对任务响应延时来判断节点负载是否过重。2)根据服务节点的硬件综合指标来判断节点的负载情况。对于相同的任务,服务节点负载较轻时任务的响应延时相差不大,而在负载较重时,响应延时将有所增加。服务节点的CPU使用率、内存利用率、交换空间利用率等较高时,节点处于繁忙状态,负载压力较大,反之,则较为空闲。但如果简单地凭借响应延时或硬件指标进行评价,可能存在片面现象。若将二者综合考虑,将更加全面,也更加准确。

服务节点硬件利用率上升到一定比例时,服务性能将会受到较大影响,性能下降、宕机等。监控模块需要了解各服务节点的负载情况,避免这类现象的发生。服务节点硬件的利用率,节点自身进行检查和判断,实现起来比较方便。当服务节点检测到自身硬件的利用率超过或低于某一阈值时,把本节点的检测信息报告给监控模块。通过服务节点与监控模块的通信,监控模块就可以掌握系统中各节点的硬件利用情况。对于任务响应延时由分析模块来实现比较方便。分析模块根据节点这一段时间内的任务响应数和上一段时间的任务响应数,就能分析出该服务节点的任务响应延时增加了还是减少了,并把分析结果交给监控模块。监控模块结合节点的硬件利用情况,就能较好地作出判断,节点的负载是过重,还是过轻,并统计系统中这类服务节点的数目。假设用Nb表示系统中负载较重的节点数,Ns表示系统中空闲节点数。系统将根据数目的多少,采取相应的处理措施。

根据云计算系统中当前正在运行的服务节点数所提供的服务能力和任务数的多少,可以将二者之间的关系划分为如下三种情况:1)服务能力过剩。此时工作的服务节点数量过多,存在资源浪费,可以关闭部分节点,节省能量消耗。2)服务能力严重不足。此时工作的服务节点数量较少,较多的任务得不到响应,应增加服务节点来提高服务能力。3)服务能力基本符合要求。此刻整体服务能力虽然符合要求,可能存在部分服务节点压力过大,而部分节点较为空闲,可以对压力过大节点的负载迁移到空闲节点,实现负载均衡调节。

对于任务量的多少可以通过任务队列中的任务数来进行确定。给任务队列设置两个阈值,一个是hmax,另一个是hmin,如图2所示。当任务队列中的任务量超过hmax时,表示系统的任务过大,系统中服务能力不足。而当任务队列中的任务量低于hmin时,表示系统中的任务过少,系统服务能力过剩。对于任务队列中的任务,采用Xen中的Credit调度算法,按比例公平轮转调度VCPU(Virtual Processing Unit)的方式把任务分配给各服务节点。为各服务节点建立一个子队列,服务节点从各自的子队列中取出任务进行处理。为了衡量分配给服务节点的任务量是否适中,为各子队列设置两个阈值Hbi和Hsi,当分配给节点i的任务量超过子队列的Hbi时,任务量过重,而当分配给节点i的任务量少于子队列的Hsi时,任务量过轻。

设用T表示任务队列中任务量的多少,系统中重负荷节点数量超过阈值rb时将采取措施,阈值rs表示系统中空闲节点数量超过该值时将采取措施。下面分情况来讨论服务资源的配置处理。

1)T>hmax 且Nb>rb时,任务队列中存在大量待处理的任务,同时,服务节点负载压力过大的数量超过阈值rb,表明系统中较多的任务得不到服务,整体服务能力严重不足,应该增加服务节点数量来提高服务能力,避免任务长时间得不到响应。

2)T>hmax 而Nb

3)Trb时,系统中的任务量没有过多,却出现部分节点负载过重,数量或许大于rb,或许小于rb。对于Nbrb,此时,对任务过重的节点进行任务迁移,进行负载均衡调度。如果任务量继续增加,就可能转化成情况(1)。

4)Trs时,系统中的任务量较少,同时空闲节点数量较多,存在服务能力过剩,可以关闭部分空闲节点,以减少资源的浪费。

5)T

6)T>hmin 而Nsrs时,系统中的任务量不少,却出现空闲节点,当Nsrs,此时,可以对这部分空闲节点增加任务的分配。

从上述分析可以看出,系统中任务量和服务能力之间的状态关系是动态变化的,在采取相应措施后,能够实现状态之间的转化,从而保持服务能力符合任务量的要求,达到服务资源的自动伸缩调节。

4 性能分析

云计算中服务能力过剩的那部分节点的运行,造成资源浪费、空耗能量、设备折旧加速,导致较大的经济损失,而服务能力不足时,造成用户服务请求长时间得不到响应,用户流失,也将造成相应的经济损失。

假设系统中任务的到达是参数为[λ]的Poission过程,任务队列的长度为L,系统中有n个服务能力为[μ]的服务节点,设任 (下转第66页)

(上接第43页)

务队列的任务量在长时间内的平均值为L/2,则有

[λt=nμt+L/2]

那么

[n=limt→∞λt-L/2μt=λμ]

设在任务量少于hmin时,仅需要的服务节点数量为m1个,那么可以减少的服务节点的数目为([λ/μ-m1])个,若每个服务节点运行的总费用为K1(元/分钟),那么在T时间里,可以节省的开支为

[C1=(λ/μ-m1)K1T] (1)

若在任务量大于hmax时,需要的服务节点数为m2个,则增加服务节点数为([m2-λ/μ]),在时间T里,增多的这些服务节点的任务处理量为[(m2-λ/μ)μT]。设耽误任务的处理损失为K2(元/单位任务量),那么可以减少的损失为

[C2=(m2μ-λ)K2T] (2)

从以上分析可以看出,本文方法能在任务量减少时,节省(1)式的成本,而在任务量增加时可以减少(2)式的损失。

5 结束语

云计算中资源合理地配置一直是研究的重点。如何保持计算资源的高效利用,降低系统中的整体能耗具有重要意义。本文分析云计算中任务的特点,采用节点响应时间和硬件指标来分析服务节点的负载情况,提出了根据队列中的任务量和满足特定条件的计算节点数来对计算资源动态增加和减少的控制策略。该方法易于实现、方便有效,有利于提高云计算中服务节点的效能,为建设绿色云计算数据中心服务。

参考文献:

[1] 薛涛, 刘龙. 云计算中虚拟机资源自动配置技术的研究[J]. 计算机应用研究, 2016, 33(3): 759-764.

[2] 林利, 石文昌. 构建云计算平台的开源软件综述[J]. 计算机科学, 2012, 39(11): 1-7.

[3] 王晶, 方伟, 陈静怡, 等. 云计算环境下的自适应资源管理技术综述[J]. 计算机工程与设计, 2012, 33(6): 2128-2132.

[4] 罗军舟, 金嘉晖, 宋爱波, 等. 云计算:体系架构与关键技术[J]. 通信学报, 2011, 32(7): 3-19.

[5] YANG J W, KIM S H, LEE S D,et. Design of a next generation D-CATV cloud platform based content service integration system using virtualization technology[C].//Proceedings of the 2011 International Conference on Information Science and Applications, Washington DC: IEEE Computer Society, 2011: 1-6.

[6] 裴超, 吴颖川, 刘志勤, 等. 基于OpenStack和Cloudify的自伸缩云平台体系[J]. 计算机应用, 2014, 34(6): 1582-1586.

[7] 董波, 沈青, 肖德宝. 云计算集群服务器系统监控方法的研究[J]. 计算机工程与科学, 2012, 34(10): 68-72.

[8] 李丹程, 王晓晨,宋晓雪, 等. 基于OpenStack的资源负载预测方法研究[J].计算机应用研究, 2014, 31(7): 2178-2182.

猜你喜欢
云计算数据中心
酒泉云计算大数据中心
数据中心制冷节能技术及应用
民航绿色云数据中心PUE控制
实验云:理论教学与实验教学深度融合的助推器
基于云计算的交通运输数据中心实现与应用
Overlay Network技术在云计算数据中心中的应用