本发明涉及云计算技术领域,特别是数据中心的任务调度与优化领域。具体涉及基于超图分割的跨数据中心任务调度与带宽分配方法。
背景技术:
最新的趋势表明,云计算数据中心正朝着超大规模的方向发展,同时部署形式也由单一集中式部署转向全球化分布式部署。与此同时,面对跨地域的数据中心迫切需要优化调度算法去更好地整合数据中心的计算、存储和网络资源,从而实现高效的资源调度和任务部署,提高数据中心的生产效益。但是跨地域的数据中心管理也必须解决诸如广域分布式数据、数据共享、网络带宽传输成本、数据中心资源限制以及最小化总体完成时间的目标等一系列的问题。该场景下的调度需要考虑多个维度的约束条件,增加了问题的复杂性,同时需要求解的问题属于np-难类型,难以在多项式内的时间里求出最优解。因此跨地域的数据中心调度面临着诸多挑战。
目前,已经有很多工作针对数据中心的资源管理和任务调度做出了研究,比如greedy,cds[1],hps[2],flutter[3]等调度方法,但是这些方法都存在着或多或少的缺陷,难以适应复杂的调度需要。greedy采用贪心算法并基于最大数据本地化的思想去进行任务调度;cds将任务调度建模为一个社区发现问题,通过迭代式的调度算法来实现数据本地化的最优目标,但是greedy和cds都忽略了任务调度顺序对wan数据传输量的潜在影响,导致了过大的数据量传输;hps采用了超图分割的思想,以增加文件传输总量的代价去实现各个数据中心总体时间的均衡,同时偏重于处理资源需要远大于资源容量的情况,其调度性能在计算资源充足的场景下表现不佳;flutter将跨中心中心的调度形式化为字典序最小-最大整数线性规划问题,但是它的求解过程需要一系列的限制条件,导致了其适用范围较差,同时对于带宽不足的调度场景求解能力很差。
1y.li,l.zhao,c.cui,andc.yu.fastbigdataanalysisingeodistributedcloud.in2016ieeeinternationalconferenceonclustercomputing(cluster),pages388–391,sept2016.
2l.yin,j.sun,l.zhao,c.cui,j.xiao,andc.yu.jointschedulingofdataandcomputationingeo-distributedcloudsystems.inccgrid,pages657–666.ieee,2015.
3zhiminghu,baochunli,andjunluo.flutter:schedulingtasksclosertodataacrossgeo-distributeddatacenters.inproceedings-ieeeinfocom,pages423–428,2016.
技术实现要素:
为克服现有技术的不足,本发明旨在解决跨地域的数据中心的任务调度问题,通过综合考虑数据中心资源限制,网络传输带宽消耗,数据副本及共享等因素,优化任务在数据中心内的调度结果,从而最小化整体完成时间。为此,本发明采取的技术方案是,基于超图分割的跨数据中心任务调度与带宽分配方法,由任务调度控制部分和网络带宽分配部分组成,任务调度控制部分负责实现任务在基于网络互连的数据中心间的调度部署,任务调度部分周期性的检测作业到达并启动调度算法,通过结合当前监控采集到的数据中心资源容量、任务完成状态等信息生成调度方案;网络流量控制部分分为两类:实时在线应用交互式网络流和任务调度过程中的数据传输非交互网络流;对于交互式网络流,通过深度神经网络模型去预测下一步的流量需求并预分配相应的带宽满足其需要;对于非交互网络流,通过网络带宽分配rba算法去为具有不同大小数据传输量的任务分配相应带宽,结合任务的cpu计算时间去调整对应的数据传输时间,均衡所有任务的总时间消耗,实现最小化整体完成时间的目标。
任务调度部分具体步骤如下:
1)周期性检测作业到达,拆分作业成多个子任务taski,放入当前任务队列nt,如果检测到nt已满,转入步骤2),否则继续步骤1);
2)构建数据中心图gs=(ns,es),其中ns代表数据中心集合,es代表数据中心的连接,之后采集当前系统内数据中心集合ns的cpu核心数量ri,i∈ns;
3)构建任务图gv=(nv,ev),其中nv=nt∪nf,nt代表任务集合,nf代表他们对应是输入文件,ev代表任务和文件之间的依赖关系,一个文件也可能被多个任务共享,一个任务可能需要多个文件,每个文件有多个副本分布在不同的数据中心内,但是每个任务只指定其中一个副本作为其输入;
4)构建扩展任务图gag=(nag,eag),其中
ng=nt∪nf∪ns,
5)将扩展任务图建模成超图h=(v,e),其中v代表顶点集合,e代表网络集合,每一个超边代表连接到某个文件的所有顶点;
6)定义k路超图分割方法:即给定一个超图h=(v,e),寻找一个k路划分v→p,使得h集合中的顶点映射到k个不相交的分区,满足给定的限制条件同时使得成本最小化,其中p={h1,h2,...hk,},
7)求解k路超图分割结果从而在满足给定的平衡标准时最小化超边切割,共包含四个主要核心点:
7.1)引入具有单位权重的虚拟任务n*,为了消除原始超图分割中平衡机制对于调度结果的负面影响,引入s-r个虚拟任务去填充数据中心的多余资源,s代表ns总的cpu资源容量,r代表nt总的cpu资源需求,每个n*请求一个cpu核心,既没有文件输入也不产生输出,计算时间为0,n*只存在于调度阶段,不进行实际的执行,在超图h={v,e}中,顶点包括3种,用公式定义为|v|=|nt|+|ns|+|n*|;
7.2)给数据中心节点赋值负权重。对于一个任务顶点vt∈nt∪n*,其权重值设置为对应任务的资源需求量,即
7.3)数据传输量无重复计算的分割成本函数定义,每一个分区都包含一组任务节点和一个单独的数据中心节点,它建议该分区中的任务都被调度到该数据中心中执行,从而最小化网络传输数据量,在超图分割的设置中令k=|ns|,用λj表示网络nj的连接集合,即nj连接的区域集合,λj=|λj|代表区域的数量,fj需要被传输
7.4)趋近于0的均衡约束,超图分割的目标是保证权重划分平衡的同时最小化分割成本cut(p),即
8)超图分割问题求解,采用zoltan工具包进行求解,得到超图分割调度结果。
rba算法主要步骤如下:
1)初始化整体完成时间c,赋予一个最大值max;
2)基于公式
计算所需要的网络带宽bij,从满足c的最短路径出发,根据bij对它们进行分配;
3)每次以△c的量减小整体完成时间c,其中△c=c1-c,计算新的带宽分配增量△b,更新当前路径的每个网络链路带宽和剩余的带宽;
4)如果数据流ij的当前路径不能提供更多的网络带宽去满足△b,则从pij[n]中选择次短路径去分配带宽,同样的,如果一条数据流的可用带宽耗尽,就将其从分配过程中移除,继续处理下一条数据流;
5)如果链路中无带宽可用或者全部带宽需要都得到满足,则算法结束,否则重复步骤3)。
本发明的特点及有益效果是:
本发明在中国天文台数据中心网络和谷歌b4数据中心网络进行了效果评估。天文台数据中心系统包含5个数据中心和7个wan链路,数据总量超过150tb,数据中心总资源容量超过2500个cpu核心,hps+进行2000个任务的调度;googleb4网络包括12个数据中心,17条wan链路,hps+进行1500个任务的调度,结果评估对比显示,相比现有的方法,hps+可以降低53%的数据传输量,减少39%的总体完成时间,改善效果显著。
附图说明:
图1为调度系统的架构设计,系统包括任务的调度器(负责副本选择和任务放置),sdn控制器(负责网络数据流量分发控制),系统运行在跨地域的数据中心网络内,提供任务调度方案计算。
图2为hps+调度示例场景,该场景具有5个资源异构的数据中心,通过5条wan链接互联,包含5个文件,部分文件存在副本,需要调度5个任务,我们利用该场景演示hps+的调度过程。
图3为示例场景下的超图分割结果,扩展任务图经过hps+算法的分割后,生成的调度结果如右侧子图所示,黑色虚线表示超图中的关联边,红色虚线代表文件传输路径。
图4为rba带宽分配算法演示图,该算法可以根据不同任务的计算时间和数据传输量,调整不同任务文件传输路径中的带宽,平衡各个任务的总体完成时间。
图5为hps+算法数据传输量对比,相比greedy,cds,hps和flutter算法,hps+在不同任务数的调度组中,均具有更小的数据传输量。
图6为hps+算法总体完成时间对比,相比greedy,cds,hps和flutter算法,hps+在不同任务数的调度组中,均具有更小的总体完成时间。
具体实施方式
为了弥补现有方法的不足,本发明提出了基于超图分割的跨数据中心调度方法hps+。相比现有的工作,hps+综合考虑了数据中心的计算、存储和网络资源,同时首次构建了基于任务-数据-数据中心依赖的扩展任务图,并采用了超图分割方法去最小化网络数据传输量。hps+可以根据数据中心的能力有效地在一个划分步骤中分配任务,这种单相超图划分方法使得其具有更优异的性能,即hps+可以结合数据中心的资源异构性并将更多的任务分配给容量更大的数据中心。其次,hps+充分考虑了任务之间的网络争用风险,设计了任务感知路由和带宽分配(rba)算法用于协调任务之间的数据传输和计算,以最小化整体完成时间。
跨地域的数据中心任务调度面临着三个问题,分别是如何进行数据副本选择,如何进行任务放置以及如何路由网络数据流传输。为了解决上述问题,本发明提供了一种最小化整体完成时间的调度方法,通过将任务-数据-数据中心的关联关系扩展为增强超图并进行分割求解,并设计了共享式的任务感知路由和带宽分配(rba)算法,实现数据传输量的优化和整体完成时间最小化。本发明的高效调度方法主要由任务调度控制器和网络带宽分配器两部分组成。
1.任务调度控制器
任务调度控制器主要负责实现任务在基于网络互连的数据中心间的调度部署。任务调度器周期性的检测作业到达并启动调度算法,通过结合当前监控采集到的数据中心资源容量、任务完成状态等信息生成调度方案。具体步骤如下:
1)周期性检测作业到达,拆分作业成多个子任务taski,放入当前任务队列nt,如果检测到nt已满,转入步骤2),否则继续步骤1);
2)构建数据中心图gs=(ns,es),其中ns代表数据中心集合,es代表数据中心的连接。之后采集当前系统内数据中心集合ns的cpu核心数量ri,i∈ns。
3)构建任务图gv=(nv,ev),其中nv=nt∪nf,nt代表任务集合,nf代表他们对应是输入文件,ev代表任务和文件之间的依赖关系。一个文件也可能被多个任务共享,一个任务可能需要多个文件,每个文件有多个副本分布在不同的数据中心内,但是每个任务只指定其中一个副本作为其输入。
4)构建扩展任务图gag=(nag,eag),其中
ng=nt∪nf∪ns,
5)将扩展任务图建模成超图h=(v,e),其中v代表顶点集合,e代表网络(超边)集合。每一个超边代表连接到某个文件的所有顶点(含数据中心节点和任务节点)。
6)定义k路超图分割方法:即给定一个超图h=(v,e),寻找一个k路划分v→p,使得h集合中的顶点映射到k个不相交的分区,满足给定的限制条件同时使得成本最小化。其中p={h1,h2,...hk,},
7)求解k路超图分割结果从而在满足给定的平衡标准时最小化超边切割。共包含四个主要核心点:
7.1)引入具有单位权重的虚拟任务n*。为了消除原始超图分割中平衡机制对于调度结果的负面影响,hps+引入了s-r个虚拟任务去填充数据中心的多余资源,s代表ns总的cpu资源容量,r代表nt总的cpu资源需求。每个n*请求一个cpu核心,既没有文件输入也不产生输出,计算时间为0。n*只存在于调度阶段,不进行实际的执行。在hps+的超图h={v,e}中,顶点包括3种,用公式定义为|v|=|nt|+|ns|+|n*|。
7.2)给数据中心节点赋值负权重。对于一个任务顶点vt∈nt∪n*,其权重值设置为对应任务的资源需求量,即
7.3)数据传输量无重复计算的分割成本函数定义。每一个分区都包含一组任务节点和一个单独的数据中心节点,它建议该分区中的任务都被调度到该数据中心中执行,从而最小化网络传输数据量。在超图分割的设置中令k=|ns|,用λj表示网络nj的连接集合,即nj连接的区域集合,λj=|λj|代表区域的数量。fj需要被传输
7.4)趋近于0的均衡约束。超图分割的目标是保证权重划分平衡的同时最小化分割成本cut(p),即
8)超图分割问题求解,hps+采用了改进的zoltan(一个超图分割求解算法)工具包进行求解,得到超图分割调度结果。
2.网络带宽分配器
网络流量控制主要分为两类:交互式网络流(实时在线应用)和非交互网络流(任务调度过程中的数据传输)。对于交互式网络流,网络带宽控制器通过深度神经网络模型去预测下一步的流量需求并预分配相应的带宽满足其需要。对于非交互网络流,sdn控制器通过rba算法去为具有不同大小数据传输量的任务分配相应带宽,结合任务的cpu计算时间去调整对应的数据传输时间,均衡所有任务的总时间消耗,实现最小化整体完成时间的目标。
rba算法主要步骤如下:
1)初始化整体完成时间c,赋予一个最大值max;
2)基于公式
计算所需要的网络带宽bij,从满足c的最短路径出发,根据bij对它们进行分配;
3)每次以△c的量减小整体完成时间c,其中△c=c1-c,计算新的带宽分配增量△b,更新当前路径的每个网络链路带宽和使用剩余的带宽;
4)如果数据流ij的当前路径不能提供更多的网络带宽去满足△b,则从pij[n]中选择次短路径去分配带宽。同样的,如果一条数据流的可用带宽耗尽,就将其从分配过程中移除,继续处理下一条数据流;
5)若链路中无带宽可用或者全部带宽需要都得到满足,算法结束,否则重复步骤3);
以下结合图2及较佳实施例,对依据本发明提供的具体实施方式、结构、特征及其功效,详细说明如下:
1.超图分割任务调度
1)周期性检测作业到达,并生成任务队列nt={t1,t2,t3,t4,t5},任务的cpu计算资源需求h分别为60,50,50,50,50,计算时间p分别为70,80,60,100,90。
2)定义数据中心图gs=(ns,es),数据中心集合为ns={s1,s2,s3,s4,s5},其对应的资源容量r分别为100,100,100,100,110,数据中心的连接ruv分别为r12=20,r13=40,r14=20,r15=50,r45=50,ruv为双向传输连接。
3)定义任务图gv=(nv,ev),其中任务和文件关联关系为
4)构建扩展任务图gag=(nag,eag),其中
5)将扩展任务图建模成超图h=(v,e),超图中的顶点集合定义为
6)超图分割问题求解,hps+采用了改进的zoltan工具包进行求解,得到超图分割调度结果,划分的5个分区集合分别为:partition={<s1,t2,t3>,<s2>,<s3,t1>,<s4,t4,t5>,<s5>},最终的数据传输量为2000。
2.rba路由与网络带宽分配
根据上述超图分割求解得出的调度方案,任务和数据中心的部署分布如下:partition={<s1,t2,t3>,<s2>,<s3,t1>,<s4,t4,t5>,<s5>},之后利用rba算法进行路由和网络分配,需要处理的数据流包含两条,数据中心s1将文件f1传输至s3,数据中心s1将文件f5传输至s4。算法主要步骤如下:
1)初始化整体完成时间c,赋予一个最大值max=20000;
2)各个文件的大小为sf={1000,800,1000,1000,1000},各个任务的计算时间为p={70,80,60,100,90},s1至s4的最短路径为s1→s4,次短路径为s1→s5→s4;s1至s5的最短路径为s1→s5,次短路径为s1→s4→s5。基于公式
3)每次以△c=500的量减小整体完成时间c,根据公式
计算新的带宽分配增量△b,更新当前路径的每个网络链路带宽和使用剩余的带宽;
4)计算链路中全部带宽需要都得到满足,算法结束,否则重复步骤3,计算得到rba算法调度的总体完成时间为104.3秒。
3.调度算法执行开销
hps+的调度阶段的算法时间复杂度为o(|nt|+|ns|+|n*|+μ|nf|)。
rba路由与带宽分配阶段的算法时间复杂度为o(φ|ev|),φ代表c减少的迭代次数,|ev|是任务产生的最大流的数量。
hps+总体算法复杂度为o(|nt|+|ns|+|n*|+μ|nf|+φ|ev|),在2000个调度任务量级下平均执行时间小于2秒,greedy算法执行时间最短,平均为0.2秒,cds,hps和flutter这些现有的算法执行时间随着任务的增大而提高,在调度上本发明具有执行时间短且稳定的优点。