一种多QoS约束的云计算任务调度方法

文档序号:9420422阅读:549来源:国知局
一种多QoS约束的云计算任务调度方法
【技术领域】
[0001] 本发明设及云计算技术领域,尤其是一种多QoS约束的云计算任务调度方法。
【背景技术】
[0002] 云计算作为一种新的计算模式和商业模式,正受到学术界和产业界的广泛重视。 云计算技术是分布式计算、并行计算和网格计算的进一步发展,利用虚拟化技术把计算资 源、存储资源和带宽资源虚拟化为动态可伸缩的虚拟化资源池,W互联网为载体,W服务的 形式按需提供给不同的用户使用。云计算环境下的数据中屯、可W有效地降低运行、维护和 管理的难度,同时也提高了数据的安全性和可靠性。通过采用按需付费的机制,用户没有必 要在网络高峰购买额外的硬件资源,运样不仅节省了购买硬件的费用,同时也省去了维护 和管理带来的问题。
[0003] 任务调度是云计算技术中非常关键并且复杂的问题,该问题解决的好坏不仅影响 到用户的满意度,也极大地影响了系统的整体性能。因此,在云环境下如何对任务进行合理 高效的调度,提高用户的满意度,成为云计算研究的重点和难点。一般情况下,任务调度是 一个NP完全问题。
[0004] 目前已经有很多的学者、专家W及企业投入大量的人力、物力W及财力对其中的 任务调度策略进行研究。云计算是在分布式计算、效用计算、网格计算的基础之上产生的, 并且云计算中有很多的任务调度算法都是在网格计算的基础之上研究出来的。而在网格计 算中任务调度算法的一个最主要目标就是使所有任务运行完成所需要的时间最小,大多数 的任务调度算法都是W运一目标来对任务调度进行优化的。然而,在云计算模型中,任务执 行所需要的成本、耗费的时间W及负载均衡都是当下研究的热点,不同计算能力的资源,其 使用成本也不同。对于时间敏感的应用,提供较强处理能力的资源,使得任务运行完成所需 的时间较短;对于成本敏感的用户应用,提供较低处理成本的资源,使得任务运行完成所需 的成本较低,而运些不同的需求的满足就需要用到云计算任务调度算法。
[0005] 在云计算任务调度中有许多有待解决的问题,比如负载均衡、最小完成时间等。考 虑任务的最小完成时间是一种充分利用系统资源的策略,云资源池中的资源有的是异构 的,有的是同构的。在异构分布式的云资源池中,通过考虑最小完成时间因素可W使得运行 速度快的机器得到更好的利用,同时也使得运行速度慢的机器上不至于分配过多的任务从 而导致任务执行超时,所W对最小完成时间运个因素的考虑是很有必要的。
[0006] 负载均衡是云计算任务调度中经常用到的方法,有W下两种形式:第一、在静态均 衡中,利用任务数和执行时间等信息,通过数学中的方法对任务与资源之间进行分配。运种 策略的缺点是会造成资源使用率不高,而且对于虚拟机信息的变化,此种均衡策略无法动 态地进行改变;第二、在动态均衡中,一般都是通过预测实现的。算法进行预测的依据是虚 拟机的当前和历史信息,然后根据预测出来的结果进行任务调度。对于运种算法而言,合理 的标准是非常重要的。Amazon的产品EC2和雅虎的产品改进的皿FS系统还有Google的产 品GFS中都对负载均衡进行了实际的研究与应用,所W对提出更好的云计算任务调度算法 具有重要的意义。
[0007] 在云计算任务调度中还有另外一个亟需解决的关键问题即服务质量(QoS, 如alityofService)。QoS是一种解决网络稳定性能的方法,网络中的滞后和拥堵问题也 是通过服务质量进行解决的。而现在应用到云计算中,QoS就是反映用户在使用云计算系统 时所提出的一些需求。QoS包括很多不同的参数,我们比较常见的有CPU、花费、接入速率、 距离、资源稳定性、存储容量等。由于使用云计算系统的用户的需求中有运么多的QoS参 数,所W云计算系统为了满足不同用户所提任务的不同需求而开发了能够提供不同服务的 平台。运些平台可W满足用户不同类型的需求,比如保证系统的可靠性,消耗更少的成本, 提供更高的数据传输速率等等。运么多的QoS需求对云计算任务调度算法的实现是一个巨 大的挑战。对于当前已经提出的基于QoS的任务调度即便是考虑了用户对任务的QoS需求, 但也只是简单地考虑了一维QoS需求,即单一的时间或者成本。因此,提出具有多维QoS约 束的任务调度策略对于云计算的发展是非常有必要的。

【发明内容】

[0008] 本发明解决的技术问题在于提供一种多QoS约束的云计算任务调度方法;W提出 具有多维QoS约束的任务调度策略。
[0009] 本发明解决上述技术问题的技术方案是:
[0010] 所有用户对提交的任务给出其需求的QoS描述,所有资源在发布时也给出其提供 QoS服务能力描述;调度算法根据运些QoS描述,尝试捜索得到QoS最优化的任务调度方 案。
[0011] 所述的方法具体步骤是:
[0012] 获取任务集T和云资源集R,并提取任务集和资源的QoS;
[0013] 对任务集和资源QoS进行标准化,得到标准化任务QoS矩阵和资源QoS矩阵;
[0014] 计算各为资源的QoS权值;
[0015] 计算任务集中各任务的综合QoS需求,并按照QoS需求将任务降序排列,得到新的 任务集TT;
[0016] 对新的任务集TT中的第一个任务tl,计算其到各资源的QoS满意度;得到QoS满 意度最大的资源集RR;
[0017] 若最大的资源集RR中只有一个资源,分配tl到该资源执行;否则,计算tl到RR 集中各资源的QoS距离,分配tl到QoS距离最小的资源上执行;
[0018] 若有多个任务,则将分配资源的任务删除,然后,按照前一步的方法进行执行资源 的分配;直至全部任务分配了执行资源;
[0019] 在任务执行资源分配完成后,轮询任务是否执行完毕;
[0020] 如任务未执行完毕,则检查是否有空闲资源;在有空闲资源情况时,进一步判断该 资源中的最高QoS满意度任务序列中有无未执行完毕的任务;未有空闲资源时,则返回到 任务执行完毕与否的轮询;
[0021] 如空闲资源中最高QoS满意度任务执行完毕,则将未执行完毕的任务调度到该最 高QoS满意度的空闲资源直至任务执行完毕;
[0022] 如任务执行完毕,则结束。
[0023] 所述的任务集合表示为T,T= {tl,t2,...,tn},n= |T|,为用户任务数量,ti表 示用户的第i个任务,iG[1,n];ti= {tID,tLen,tQoS,tSta};
[0024] tID:表示任务的唯一标识;
[00巧]tLen:表示任务的长度,单位:MI(MillionInstruction);
[00%]tQoS:tQoS= {QoSi,Q0S2,. ..,QoSj表示任务的多维QoS需求,k表示QoS维度;
[0027]tSta:tSta= {tAlloc,1:Execu,tSucc},表示用户任务的状态,分S种:tAlloc表 示任务待调度状态,tExecu表示任务执行状态,tSucc表示任务执行完成状态;
[0028] 将资源的物理主机集合表法为P,P= (pl,p2. . .,pl},l= |P|,为物理主机数量; Ph= (pID,pType,pSta}D
[0029] PID:表示物理主机的唯一标识;
[0030] Ptype:表示物理主机的类型,如工作站、大型机或微型机等;
[0031] Psta:表示物理主机的状态,Psta= {p化ee,pRun},P化e表示物理主机处于空闲 状态,即没有部署虚拟机或虚拟机没有执行任务,PRun表示物理主机处于工作状态;
[0032] W虚拟机形式表示资源,资源集合表示为R,R= {rl,. . .,rm},m=IR|,为云 数据中屯、提供的资源(虚拟机)数量,rj表示第j个资源,jG[1,m];rj= (rlD,rCap, rQoS,rSt曰,rLoc};
[0033] rID:表示资源的唯一标识;
[0034] rCap:表示资源的计算能力,单位:MIPS(MillionInstructinPerSecond);
[0035]rQoS:rQoS= {QoSi,Q0S2,. ..,QoSj表示资源的多维QoS服务能力,k表示QoS 维度。
[0036] rSta:rSta=IrRun,r化e}表示资源的状态,分两种:rRun表示资源处于执行任 务状态,r化e表示资源处于空闲状态。
[0037]rLoc:表示资源所在的物理主机。 W38] 所述的QoS标准化是:
[0039] 令资源提供的QoS维度为k,资源数量为m,则m个资源所提供的QoS为一个mXk 矩阵,表示为: go靖,go堪,…,沪?成_
[0040] 0。斯=《。如《。成'...'g。冷 i?V # #'? ? ? _每朋王,1,龄緣2,,…,龄键#_
[0041] 令任务数为n,则n个任务在k维QoS上的需求可表示为nXk矩阵,表示为: qo布,qo屯,.'.,qoslk
[0042]
[0043] 然后按
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1