本发明涉及云存储计算机运用,云环境下的任务调度领域。
背景技术:
近年来,随着各类信息的快速增加和互联网技术的发展,越来越多的服务以云端的形式提供给用户。云计算是近年来随着计算机技术和网络技术迅速发展起来的一种先进的计算技术,在传统的计算模式下,计算任务被分布在各个单独的计算机上,受限于每个计算机单独的计算性能,任务量大的计算在单台计算机上很难实现,因此云计算的出现解决了许多大数据量的计算问题。云计算分为狭义云计算和广义云计算两种。狭义云计算是指建立IT基础设施,并进行交付和使用,在网络基础上,以按需、易扩展的方式获得所需的资源,包括硬件资源,运算平台,软件资源等。广义云计算是指在互联网的基础上,实现用户终端的服务交付和使用,在网络服务的基础上,以各取所需、各自扩展的方式获得所需的服务。
在数据的管理方面,当用户向服务器发出数据请求时,系统会根据相应的调度策略为用户提供相对最优的数据副本以及路径的选取,调度策略的优劣很大程度上决定了系统的运行处理效率,云存储在任务调度方面有别于传统云计算的特点。已有的对云存储的任务调度算法的研究当中,相对于云计算任务来说,云计算任务可由云中任意节点来提供,但在云存储中会出现节点没有任务所需数据的情况,即通过算法的求解过程后得到的初始解和迭代解无用的情况。同时,由于网络环境得变换的将影响着云任务的调度。
技术实现要素:
本发明针对云存储下的任务调度问题,提出了云存储环境下一种服务价值约束的任务调度算法。
本发明的技术方案:以粒子群优化算法(PSO)为基础,定义和引入存在矩阵(EM)来指示任务和资源节点的对应关系,通过存在矩阵使初始解和解在空间上有意义,并且针对云环境的特殊要求,定义和引入网络服务质量参数(Qos),动态实时地反映出当前网络的状态,使得在计算的迭代过程中可以根据Qos参数以及相对应的适应度函数来动态调整其影响参数,从而达到了优化算法的目的,并且根据Qos重新定义出适应度函数。
本发明的有益效果是:解决了传统算法产生的解在任务中不存在的缺陷,提高了系统的运行效率,通过网络服务参数的引入,让用户直观感受以服务质量为中心的调度策略。
具体实施方式
针对云存储下的任务调度问题,本发明将对具体的计算过程进行详细的阐述,其具体实施步骤如下:
步骤1:生成存在矩阵。
步骤2:Qos条件的设定和条件选择。
步骤3:依据约束条件,建立适应度函数。
步骤4:生成初始解,迭代生成数据节点的解集。
步骤5:解与存在矩阵和约束条件匹配。
以上步骤所涉及到的参数函数及定义,具体描述如下:
步骤1:生成存在矩阵
因为云存储系统的节点不一定能够提供用户所请求的数据,通过等待调度的任务数、资源节点、节点数目来定义一个描述调度任务与资源节点之间对应关系的函数,从存在矩阵中产生的解有空间意义,也就是说节点一定包含所需资源。
设T表示待调度的任务,T=[T1,T2,...,Ti,...Tn],n表示带调度任务的数量,其中1≤i≤n,V表示节点,V=[V1,V2,...,Vj,...Vm],m表示节点数量,其中1≤j≤n,构造一个n×m的矩阵U:
其中
存在矩阵中,eij表示任务调度向量,同一个数据可能会存在多个节点上,所以eij=1时表示任务Ti在节点Vj是存在,eij=0则表示任务Ti在节点Vj上不存在。
步骤2:Qos条件的设定和条件选择
Qos约束是根据不同用户或应用场景对多Qos敏感度不同,符合用户或应用场景需求的最小代价选则路径,Qos参数作为当前网络状态的度量,用表示节点Va到节点Vb之间的Qos状态信息,它包含三个分量,即时延(D)、抖动(J)、带宽(B)。将云存储中网络节点的集合搭建成一个无向加权图模型G(V,E),V表示节点,E表示物理或者逻辑上链接节点的所有边,每一组链路包含状态信息的三个分量,任务节点和数据节点之间的链路用P(s,d),来表示,即:DP(s,d)、JP(s,M)、BP(s,M);M是任务节点与云存储节点之间链路,最短的集合,则计算三个参数的值为:
在Qos向量中,链路P(s,d)上的总时延定义为从路径上起点到终点上的最小值,所以:
抖动定义为从源节点到终节点路径上延迟的平均值差值
链路的瓶颈带宽被定义为T中链路的最小带宽:
BP(s,M)=min{b(i,j)|(i,j)∈P(s,M)
以上参数中,P(s,d)是任务节点带数据节点的最短路径,S是请求任务的源节点,所有的节点V都受存在矩阵约束。
步骤3:依据约束条件,建立适应度函数
Qos约束下调度,每一次迭代依据一个适应度函数,这个适应度函数更具粒子对减少链路的花费来评估,所以,依据Qos约束条件,将适应度函数定义为:
f(P(s,M))=Cost(P(s,M))
+k1{max DP(s,M)-(DP(s,M),0)}
+k2{max JP(s,M)-(DP(s,M),0)}
式中,k1、k2为惩罚系数,决定惩罚的程度。
步骤4:生成初始解,迭代生成数据节点的解集
首先,从存在矩阵中随机生成初始解V0,由于V0是从存在矩阵中随机生成,所以他有物理及空间意义,然后按照Qos约束条件,在适应度函数f(P(s,M))计算得到fi,当fi没有达到阈值的时候,输出对应的Vi。
按照标准PSO算法进行迭代:
Vid=ω·vid+c1rand()·(pbesti-Xi)+c2rand()·(gbesti-Xi)
Xi=Xi+Vi
其中,ω为惯性权重,代表粒子惯性行为,c1、c2为加速常量,rand()为随机值,个参量的值按照线性递减权值策略(LDW)进行定义。
根据PSO算法得到迭代一轮后的
步骤5:解与存在矩阵和约束条件匹配
将每一轮迭代的与存在矩阵进行匹配,如果不在存在矩阵中,也就是说解释无意义的,那么进行下一次迭代,重新再生成新的知道与存在矩阵匹配;然后在将得到的数据节点与Qos约束条件进行对比,如果不满足用户提出的Qos限制,则进行下一次迭代,继续生成新的如果连续n次迭代后还是没有生成满足约束条件的解,那么从这n个解中选取比较接近Qos约束条件的解输出,作为本次调度的最优解。n一般设置为10左右,如果任务数量比较大,可以适当增加n值。但是过大的n值会增加系统运行的时间开销。