一种数据中心的资源调度方法及系统、调度设备、介质与流程

文档序号:26139257发布日期:2021-08-03 14:22阅读:184来源:国知局
一种数据中心的资源调度方法及系统、调度设备、介质与流程

本发明涉及机房监控技术领域,具体涉及一种数据中心的资源调度方法及系统、调度设备、计算机可读存储介质。



背景技术:

云计算是一种新兴的按需分配计算资源与存储资源的商业化模式,鉴于它的低成本、虚拟化技术支持、多样化服务等优势,已经得到大规模的发展并被广泛地应用。云计算数据中心的计算机集群存储着云计算的软硬件资源,并具有完善的应用服务及专业化的管理;面对云计算数据中心不断增大的规模和动态变化的需求,如何对其中的虚拟资源进行动态的管理并及时有效地分配给需要的用户是一个必须解决的问题。

目前,云计算数据中心的资源调度过程主要考虑资源利用率问题,在调度过程中,当虚拟机监测器监测到某台服务器超载时就直接迁移出符合某种要求的虚拟机,当监测到某台服务器资源利用率过低时也直接进行虚拟机迁移并关闭该服务器来减少能耗。虽然这样的资源调度过程能快速根据资源利用率进行虚拟机迁移,响应快,但是这个调度过程没有从全局的角度考虑迁移带来的能耗,并且对需要关闭的服务器选择直接关闭,可能会频繁地开启或关闭服务器,带来更多的能耗。



技术实现要素:

本发明的目的在于提出一种数据中心的资源调度方法及系统、调度设备、计算机可读存储介质,进行云计算数据中心的资源调度,减少云计算数据中心的服务器能耗。

为实现上述目的,本发明的实施例提出一种数据中心的资源调度方法,包括如下步骤:

步骤s1、获取数据中心的各个服务器的能耗数据;其中所述能耗数据包括服务器的资源利用率和服务器各部件的性能数据;

步骤s2、根据所述能耗数据以及预设的能耗计算模型计算得到各个服务器的能耗值;

步骤s3、根据每一服务器的资源利用率和能耗值,利用遗传算法进行计算寻找最优的资源调度方案,并根据所述最优的资源调度方案对数据中心的各个服务器进行调度操作或者关闭操作。

可选地,所述能耗计算模型如下表达式所示:

e=ecpu+emem+ekeep

其中,ekeep表示服务器保持就绪状态下所产生的能耗值,k1表示服务器在就绪状态下的功率与其满载功率的比值,pcpu表示服务器cpu的工作功率,pmem表示服务器内存的工作功率,pmax表示服务器在满载状态下的工作功率,ucpu(t)表示t时刻服务器cpu的利用率,umem(t)表示t时刻服务器内存的利用率,t1和t2为服务器保持就绪状态的初始时刻和终止时刻。

可选地,所述步骤s3包括如下子步骤:

步骤s31、采用树型结构对数据中心的架构进行编码以建立种群;其中,树形结构的根节点表示预先定义的数据中心控制器,第二层节点表示有n个服务器,叶子节点表示有m个虚拟机,表示成染色体,n>0,m>0;

步骤s32、设定种群规模,并基于生成树算法产生初始种群;

步骤s33、根据实际需要分配的虚拟机计算应当开启的服务器的数量;

步骤s34、若在初始化种群过程中开启的服务器的数量n等于所述应当开启的服务器的数量n’,则基于该n个服务器以及对应的虚拟机在树型结构的映射关系上进行遗传算法的选择操作、交叉操作和变异操作,将满足要求的个体加入集合{s*},并执行步骤s35;若初始化种群过程中开启的服务器数量n大于所述应当开启的服务器的数量n’,则执行步骤s36;

步骤s35、判断所述步骤s34的集合{s*}是否满足预设的终止计算条件,若满足,则分别计算出集合{s*}中各分配方案的能耗;其中能耗最低的分配方案就是最佳的资源分配方案,并按照该最佳的资源分配方案进行虚拟机调度;

步骤s36、根据放置的虚拟机数量从少到多将多个服务器进行排序,依次将前δn个服务器上面的所有虚拟机依次加入到应当开启的n’个服务器中当前负载值最大的服务器上,使得n=n’,再返回执行步骤s34重新计算;其中δn=n-n’。

可选地,所述步骤s33具体根据以下表达式计算应当开启的服务器的数量n’:

其中,分子项表示所有虚拟机的负载和,j表示第j个虚拟机,分母ρ表示一个服务器的负载阈值,τ表示预设的细调整常数。

可选地,所述步骤s36还包括:

根据预设的时间阈值进行空载服务器关闭时机的判断,当空载服务器就绪状态的持续时间达到时间阈值时就关闭该空载服务器。

可选地,所述时间阈值为服务器的打开和关闭产生的能耗之和与服务器空载却处于就绪状态产生的能耗相等的时刻。

可选地,所述步骤s32中设定的种群规模为50-200。

本发明第二方面提出一种数据中心的资源调度系统,包括:

数据获取模块,用于获取数据中心的各个服务器的能耗数据;其中所述能耗数据包括服务器的资源利用率和服务器各部件的性能数据;

能耗计算模块,用于根据所述能耗数据以及预设的能耗计算模型计算得到各个服务器的能耗值;以及

分析调度模块,用于根据每一服务器的资源利用率和能耗值,利用遗传算法进行计算寻找最优的资源调度方案,并根据所述最优的资源调度方案对数据中心的各个服务器进行调度操作或者关闭操作。

本发明第三方面提出一种调度设备,包括:

存储器,用于存储计算机程序;以及

处理器,用于执行所述计算机程序时实现根据第一方面所述的数据中心的资源调度方法的步骤。

本发明第四方面提出一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现根据第一方面所述的数据中心的资源调度方法的步骤。

上述一种数据中心的资源调度方法及系统、调度设备、计算机可读存储介质具有以下有益效果:

通过获取数据中心的各个服务器的能耗数据,然后基于能耗数据通过能耗计算模型得到每一服务器的能耗值,然后基于每一服务器的资源利用率和能耗值利用遗传算法寻找最佳的虚拟机与服务器的映射方案,具有较好的负载均衡效果,而且各个服务器的资源充分利用,同时降低了一定程度的能耗,平衡了能耗问题与资源利用率问题,提高了云计算数据中心资源调度的经济和性能效益。

本发明的其它特征和优点将在随后的说明书中阐述。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例中一种数据中心的资源调度方法的流程图。

图2为本发明实施例中一种数据中心的资源调度系统的框架结构示意图。

图3为本发明实施例中一种调度设备的框架结构示意图。

具体实施方式

以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。另外,为了更好的说明本发明,在下文的具体实施例中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本发明同样可以实施。在一些实例中,对于本领域技术人员熟知的手段未作详细描述,以便于凸显本发明的主旨。

参阅图1,本发明的一个实施例提出一种数据中心的资源调度方法,包括如下步骤:

步骤s1、获取数据中心的各个服务器的能耗数据;其中所述能耗数据包括服务器的资源利用率和服务器各部件的性能数据;

具体而言,服务器的能耗数据主要包括服务器各部件的性能数据和服务器的资源利用率。其中,服务器的能耗数据的采集方式有直接测量和间接测量两种。直接测量方式为:在服务器的每个部件(如cpu、内存、磁盘存储、网络接口、散热组件等)上安装能耗测量设备,这个测量方法精确、实时性好,但是需要大量附加设备,不适合在大型计算机群中应用。因此,本发明优选采用间接测量方式,具体为:通过在服务器中安装嵌入式传感器来进行实时的能耗数据测量,而且服务器通常采用ipmi(intelligentplatformmanagementinterface,智能型平台管理接口)和acpi(advancedconfigurationandpowermanagementinterface,高级配置和电源管理接口)接口规格,各部件的性能数据和能源数据采集后可以被集中处理,而且这些接口可以支持智能电表来实时地监测cpu、内存、磁盘存储等部件的能耗,并可以通过它的网络链路特性将能耗数据发送到能耗测量平台;

步骤s2、根据所述能耗数据以及预设的能耗计算模型计算得到各个服务器的能耗值;

步骤s3、根据每一服务器的资源利用率和能耗值,利用遗传算法进行计算寻找最优的资源调度方案,并根据所述最优的资源调度方案对数据中心的各个服务器进行调度操作或者关闭操作。

本实施方法通过获取数据中心的各个服务器的能耗数据,然后基于能耗数据通过能耗计算模型得到每一服务器的能耗值,然后基于每一服务器的资源利用率和能耗值利用遗传算法寻找最佳的虚拟机与服务器的映射方案,具有较好的负载均衡效果,而且各个服务器的资源充分利用,同时降低了一定程度的能耗,平衡了能耗问题与资源利用率问题,提高了云计算数据中心资源调度的经济和性能效益。

在一个具体实施例中,通过资源利用率与能耗值的关系模型可以计算得到当时服务器的能耗或预测接下来的能耗,在目前常规的能耗预测模型中,每一服务器总能耗可表示为:

e=ecpu+emem+edisk+emainboard+enic

其中,ecpu表示cpu产生的能耗,emem表示内存产生的能耗,edisk表示磁盘产生的能耗,emainbord表示主板产生的能耗,enic表示网卡产生的能耗。但是,在实际计算过程中,对于磁盘、主板和网卡产生的能耗值计算较为困难,而且,该模型没有考虑服务器在就绪状态下产生的能耗,从而导致计算结果的准确度较差;

本发明实施例考虑到cpu、内存是服务器产生能耗的主要部分,所以为了简化模型,本发明实施例主要考虑cpu和内存的能耗。另外,目前常规的计算cpu能耗和内存能耗的方法是直接采用线性能耗模型进行计算,但是在现今新型的软件和硬件环境下,简单的线性能耗模型不能得到准确的计算结果。因此,本发明实施例采用非线性模型,具体地,服务器在时间(t1,t2)内的能耗计算模型如下表达式所示:

e=ecpu+emem+ekeep

其中,ekeep表示服务器保持就绪状态下所产生的能耗值,k1表示服务器在就绪状态下的功率与其满载功率的比值,一般为60%,pcpu表示服务器cpu的工作功率,pmem表示服务器内存的工作功率,pmax表示服务器在满载状态下的工作功率,ucpu(t)表示t时刻服务器cpu的利用率,umem(t)表示t时刻服务器内存的利用率,t1和t2为服务器保持就绪状态的初始时刻和终止时刻。

在数据中心中,资源调度问题即是求解符合目标的虚拟机到服务器映射方案的过程,需要启发式算法进行求解并实现,启发式算法是云计算数据中心能否进行有效资源调度的关键技术。启发式算法就是根据状态空间中每个状态进行评估,根据评估值选择最符合目标条件的状态以确定最终位置点,避免了直接搜寻大量位置点繁重的工作量。其中,状态空间搜索过程是指从初始状态开始根据某种规则寻找到结束状态的路径过程。该路径有各种不确定性,或长或短,或有分支或只有一条,或是直线或是曲线,常用的搜索算法如深度优先算法和广度优先算法在状态空间不确定时效果不佳,目前很多研究都采用了启发式算法,动态地进行搜索以解决各种不确定性。

对于启发式算法,目前主要有模拟退火算法、萤火虫算法、蚁群算法、遗传算法等,后两种算法也是用于解决最优化问题的智能化算法。每种算法都有自己的求解方式与优点,例如,模拟退火算法结合了概率特性根据目标函数寻找局部最优解并得到全局最优解;萤火虫算法根据萤火虫的发亮程度与所在位置在适应度上的关系,搜寻使发亮程度最大的位置,即局部最优解;蚁群算法模拟蚂蚁觅食活动中的并行、反馈(有正反反馈两种)、协同方式,搜寻解空间中的最优解,有良好的适应性和发现解的能力;遗传算法有多种编码方式,对一些类似树、图结构的对象可以进行编码以简化这些复杂的问题,它是依据适应度函数进行求解评估的,且以概率方式自适应地进行搜索方向的确定,不需要搜索太多解空间的信息,使得遗传算法的实现更加方便,而且它是基于“优胜劣汰”机制,适应度大的个体越容易留下来,不断地筛选出更优良的个体,更加适应环境。因此,本发明实施例鉴于遗传算法的优势,对其进行了改进,来求解最优的资源调度方案,即本实施例的步骤s3优选包括如下子步骤:

步骤s31、采用树型结构对数据中心的架构进行编码以建立种群;其中,树形结构的根节点表示预先定义的数据中心控制器,第二层节点表示有n个服务器,叶子节点表示有m个虚拟机,表示成染色体,n>0,m>0;

具体而言,树型编码利用了树型数据结构,每个虚拟机对应着一棵树,表示为一条染色体,对于每条染色体都是解空间中的一个唯一解,每个基因位对应其中一个节点,所以采用树型编码使得遗传算法可以对染色体按照树型数据结构的操作思路进行操作。由于树形结构中的每个节点保存了父节点和子节点的信息,所以可以直接利用节点间的父子关系信息进行操作,可以不用解码。其中,每个节点的信息包括type信息(判断是否是叶子节点来确定是虚拟机还是服务器)、parent信息(判断亲代关系)、childrenlist(罗列了所有的子节点)、order信息(同一层次中节点的顺序,如果同一服务器下的虚拟机没有排序,则杂交等操作的时候就不能正确提取出虚拟机对象)、load信息(负载值);

步骤s32、设定种群规模,并基于生成树算法产生初始种群;

具体而言,种群规模太小时多样性不够,搜索就容易陷入局部最优解,而种群规模太大将会消耗大量的计算资源,所以规模大小要适当,本发明中的种群规模设定为50~200。另外,对种群初始化的方式主要有以下两种方式:

(1)不断地随机产生个体,再根据它的适应度判断是否符合给定的标准,如果不符合则淘汰,符合则加入初始种群当中,直至个体数量达到设定的规模;

(2)先根据相关要求确定出最优解的范围,再直接在这个范围内设定各初始个体。

本发明实施例优选采用方式(1)对种群进行初始化,并且采用生成树的方法产生,其中生成树由服务器集合和虚拟机集合组成。具体过程可以表述为:每次打开一个服务器节点,并逐个随机加入虚拟机,同时修改该服务器节点的childrenlist信息、load信息及当前加入的虚拟机的parent信息、order信息,若当前服务器节点超载(load值超过设定的服务器负载阈值),则重新打开新的服务器节点并将该虚拟机加到上面;当有多个服务器节点已打开,则从中选择加入该虚拟机后load信息更接近满载的服务器,一直重复这些过程直到所有虚拟机都分配完毕。每次分配完毕之后计算该个体对应是否满足负载均衡条件并计算适应度,根据该结果将满足要求的个体加入初始种群,不满足则淘汰该个体,再重新按照上述过程产生新个体,直至个体总数量达到初始种群的规模。为了简化计算,本发明实施例假设所有服务器的性能(cpu、内存、带宽等)都一样。

步骤s33、根据实际需要分配的虚拟机计算应当开启的服务器的数量;

具体根据以下表达式计算应当开启的服务器的数量n’:

其中,分子项表示所有虚拟机的负载和,j表示第j个虚拟机,分母ρ表示一个服务器的负载阈值,τ表示预设的细调整常数,为了使每台服务器都接近满载,所以τ的值不能太大,一般情况下取接近于0的数值,对整个式子进行上取整即为要求打开的服务器数量;

步骤s34、若在初始化种群过程中,若干个体基因对应开启的服务器的数量n等于所述应当开启的服务器的数量n’,则基于该n个服务器以及对应的虚拟机在树型结构的映射关系上进行遗传算法的选择操作、交叉操作和变异操作,将满足要求的个体加入集合{s*},并执行步骤s35;若初始化种群过程中开启的服务器数量n大于所述应当开启的服务器的数量n’,则执行步骤s36;

需说明的是,具体的选择操作、交叉操作和变异操作与现有的遗传算法相同,故在此不再赘述。在种群初始化中设定服务器的负载阈值,并在此基础上进行了基于高资源利用率的资源分配;

其中,满足要求所指的要求指满足负载均衡、各服务器的资源利用率尽量高、工作的服务器数尽量少的规则;

步骤s35、判断所述步骤s34的集合{s*}是否满足预设的终止计算条件,若满足,则分别计算出集合{s*}中各分配方案的能耗;其中能耗最低的分配方案就是最佳的资源分配方案,并按照该最佳的资源分配方案进行虚拟机调度;

其中,所述终止条件具体为:产生的个体状态基本稳定或者遗传的代数超过了给定了最大遗传代数;

步骤s36、根据放置的虚拟机数量从少到多将多个服务器进行排序,依次将前δn个服务器上面的所有虚拟机依次加入到应当开启的n’个服务器中当前负载值最大的服务器上,使得n=n’,再返回执行步骤s34重新计算;其中δn=n-n’。

同时,根据预设的时间阈值进行相关服务器关闭时机的判断,即关闭那些已经将虚拟机迁移出去的空载服务器。一旦某服务器就绪状态的持续时间达到时间阈值时就关闭该服务器,其中时间阈值表示服务器的打开/关闭产生的能耗与其空载却处于就绪状态产生的能耗相等时的时刻。对于服务器关闭的时间阈值设为如下临界值:

其中,poff表示服务器关闭消耗的能量,pon表示服务器开启消耗的能量,ekeep表示服务器空闲时所需的能耗,t表示服务器空闲时间总能耗等于服务器一次关闭/开启总能耗的时刻,即为等待状态的预设时间阈值。当等待状态的持续时间小于时间阈值的时候,服务器空闲时间总能耗小于服务器一次关闭/开启的总能耗,维持等待的状态;一旦时间到达时间阈值,关闭服务器,等待下一次的开启。

虽然本发明实施例的遗传算法在初始化阶段就已经计算好总共需要打开的服务器数量,但若有服务器需要关闭时不能马上关闭,因为这些服务器上的虚拟机可能不能马上调入目标服务器中,因为目标服务器迁入虚拟机后可能存在超载,所以需要有过渡的服务器。如果过渡服务器正好是需要关闭的那些服务器,则采用这个判定方法来决定是否需要关闭,一定程度上降低了能耗。这个超时判定的方法对关闭/开启服务器产生的能耗与服务器一直保持空闲状态带来的能耗进行衡量,使对应服务器的工作状态处于一种最低能耗的状态,且该方法易于实现,开销也小。

参阅图2,本发明另一个实施例提出一种数据中心的资源调度系统,可以用于实现上述实施例所述的一种数据中心的资源调度方法,本实施例系统包括:

数据获取模块11,用于获取数据中心的各个服务器的能耗数据;其中所述能耗数据包括服务器的资源利用率和服务器各部件的性能数据;

能耗计算模块12,用于根据所述能耗数据以及预设的能耗计算模型计算得到各个服务器的能耗值;以及

分析调度模块13,用于根据每一服务器的资源利用率和能耗值,利用遗传算法进行计算寻找最优的资源调度方案,并根据所述最优的资源调度方案对数据中心的各个服务器进行调度操作或者关闭操作。

以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

需说明的是,上述实施例所述系统与上述实施例所述方法对应,因此,上述实施例所述系统未详述部分可以参阅上述实施例所述方法的内容得到,即上述实施例方法记载的具体步骤内容可以理解为本实施例系统的所能够实现的功能,此处不再赘述。

并且,上述实施例所述数据中心的资源调度系统若以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。

本发明另一个实施例提出一种调度设备,包括:

存储器,用于存储计算机程序;以及

处理器,用于执行所述计算机程序时实现根据第一方面所述的数据中心的资源调度方法的步骤。

举例而言,参阅图3,所述调度设备可以包括存储器21、处理器22和总线23;

其中,存储器21至少包括一种类型的可读存储介质,该可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、磁性存储器、磁盘、光盘等。存储器21在一些实施例中可以是调度设备的内部存储单元。存储器21在另一些实施例中也可以是调度设备的外部存储设备,例如调度设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,存储器21还可以既包括调度设备的内部存储单元也包括外部存储设备。存储器21不仅可以用于存储安装于调度设备的应用软件及各类数据,例如:执行车辆加油行为识别方法的程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。

处理器22在一些实施例中可以是一中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器21中存储的程序代码或处理数据,例如执行车辆加油行为识别方法的程序的代码等。

该总线23可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

进一步地,调度设备还可以包括网络接口24,网络接口24可选的可以包括有线接口和/或无线接口(如wi-fi接口、蓝牙接口等),通常用于在该调度设备与其他电子设备之间建立通信连接。

可选地,该调度设备还可以包括用户接口25,用户接口25可以包括显示器(display)、输入单元比如按键,可选的用户接口25还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在调度设备中处理的信息以及用于显示可视化的用户界面。

图3仅示出了具有组件21-25的调度设备,本领域技术人员可以理解的是,图3示出的结构并不构成对调度设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。

本发明另一个实施例提出一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现根据第一方面所述的数据中心的资源调度方法的步骤。

具体而言,所述计算机可读存储介质可以包括:能够携带所述计算机程序指令的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1