一种基于数据迁移的数据中心动态任务调度方法技术

技术编号:18763643 阅读:33 留言:0更新日期:2018-08-25 10:25
本发明专利技术公开了一种基于数据迁移的数据中心动态任务调度方法,其中在进行任务调度时,对于有空闲节点但是队列中没有可以满足本地执行的任务之情形,采用时间短的调度策略。以及,对于没有空闲节点但是队列中有任务在等待调度之情形,通过找到负载最小的节点,判断是否启用数据迁移来调度任务。本发明专利技术提供的方法除了进一步改进任务的调度策略之外,还通过改变数据块的部署位置来提高数据本地性。由于是从数据块的部署情况做出改进,所以不会影响任务调度的公平性。在任务执行过程中,根据任务进度和节点的负载情况,动态调整数据块的部署位置,可以进一步提高数据本地性,从而减少整个系统的任务执行时间,提高效率。

【技术实现步骤摘要】
一种基于数据迁移的数据中心动态任务调度方法
本专利技术涉及一种动态任务调度方法,特别涉及一种基于数据迁移的数据中心动态任务调度方法。
技术介绍
任务调度是分布式计算系统中非常重要的研究问题之一。对于大型的分布式系统,高效的任务调度机制既可以提高吞吐量,缩短任务的响应时间,又能够充分利用系统资源,减少能源消耗,从而带来更多的利润。Hadoop(由Apache基金会所开发的分布式系统基础架构)中的FIFO调度策略将任务按照到达时间排序,依次调度执行。这种方法实现机制简单,开销小,且易于理解。但当任务数不断增加时,FIFO很容易延长系统整体的响应时间,导致低效率。因此人们从很多方面着手研究如何提升分布式系统处理任务的性能。在共享系统中,影响系统性能的因素有很多,主要包括数据本地性、容错机制以及系统资源的共享和感知等等。任务的数据本地性在提升系统性能上占有十分重要的地位。所谓数据本地性,简单来说是指任务和任务执行所需要的数据在同一个节点,这样在执行任务的过程中所需要的数据就可以直接从本节点获取而不需要经过网络传输从别的节点获得,所以任务可以很快的执行结束。这样既提高了系统的执行效率,又减轻了系统的网络负担,因此在分布式计算系统中,我们总是尽可能希望提高任务的数据本地性。为了提高任务的数据本地性,人们研究出了延迟调度算法。在一个繁忙的系统上,如果一个进程请求某个节点,那么极有可能此时该节点正在被其他进程占用。显而易见的处理是,立刻放宽本地性需求,在同一机架中分配一个节点。然而,通过实践发现,此时如果等待一小段时间(不超过几秒),能够戏剧性的增加在所请求的节点上分配到资源的机会,从而可以提高系统的效率。这个特性称之为延迟调度。延迟调度可以极大地提高任务的数据本地性,但为了保证公平性,任务等待的时间不能过长,因此该方法还需要权衡公平性和数据本地性之间的矛盾。目前,许多调度算法都支持延迟调度,但是这些算法在改进数据本地性时,都只单方面考虑了任务分配的问题,忽略了另一个非常重要的因素,即数据部署。FIFO(FirstInputFirstOutput,先入先出队列)由于严格按照到达顺序来执行任务,完全不考虑任务是否能够本地执行,当任务队列中任务数较多时,很容易出现系统响应时间增长、资源利用率低下、系统吞吐量下降等问题。引入延迟调度虽然可以提高任务的数据本地性,但是如果让某个任务长时间等待具有所需数据的节点,会降低调度的公平性,造成某些或某类任务迟迟得不到响应的情况。如果追求公平性,整个队列中所有任务执行的时间又会被延长,系统的性能难以提升。因此延迟调度在权衡二者之间的矛盾时,对于数据本地性的改进有限。
技术实现思路
本专利技术的主要目的在于提供一种基于数据迁移的数据中心动态任务调度方法,以克服现有技术中的不足。为实现前述专利技术目的,本专利技术采用的技术方案包括:本专利技术实施例提供了一种基于数据迁移的数据中心动态任务调度方法,其包括:Ⅰ、设定任务队列,其中有多个任务排队等待执行;以及,设定系统,其中包含有多个作为节点的服务器和多个不同数据块,其中每一数据块在系统中存在多个副本,每一服务器有多个存储空间,该多个存储空间分别用以存储多个数据块副本;Ⅱ、以服务器处理任务,其中每一任务要得到执行,均需要服务器中的相应的一个输入数据块,在任务执行时,若任务运行的服务器与所需输入数据所在的服务器是同一个服务器,则认为该任务是在本地执行,而若任务运行的服务器与所需输入数据所在的服务器不是同一个服务器,则认为该任务是在远程执行;Ⅲ、将时间划分为时间片,从0开始;Ⅳ、进行任务调度,包括如下步骤:(1)时间片从0开始,每个时间片都要检查服务器的状态,如果存在空闲的服务器,转入步骤(2),如果没有则转入步骤(3);(2)将队列中的任务按照优先级进行排序,依次调度;(3)若系统中没有空闲服务器,但队列中有任务在等待执行,则选择第一个待调度的任务,此时按下如下方法判断是否启用数据迁移,包括:(3-1)找到系统中负载最小即可最快结束任务变为空闲状态的服务器,如果该服务器上没有部署当前待调度的任务所需的数据,转入步骤(3-2),否则不进行任何操作,进入下一时间片;(3-2)比较如下两个时间,即:任务等待服务器转为空闲状态的时间,以及,将任务所需数据块迁移到该服务器上的时间;如果前者>后者,则启用数据迁移,否则转入步骤(3-3);(3-3)比较如下两个时间,即:任务先等待服务器变为空闲状态,再在该服务器上远程执行的总时间;以及,先将任务所需数据迁移到该服务器上,再本地执行的总时间;如果前者>后者,则启用数据迁移,否则不进行任何操作,进入下一时间片。进一步地,步骤(2)具体包括:(2-1)找出所有可在空闲服务器上本地执行的任务,再按照到达顺序排序,依次调度,重复该步骤,直到没有空闲服务器或队列中没有可本地执行的任务;(2-2)如果队列中没有可在空闲服务器上本地执行的任务,将任务按照到达顺序排序,选择第一个任务,比较如下两个时间:立即在当前空闲服务器上远程执行的时间,以及,延迟调度,先等待有所需数据的服务器空闲,再本地执行的总时间;如果前者<后者,则立即调度当前任务到空闲服务器上远程执行,重复该步骤直到没有空闲服务器;如果所有任务都要延迟调度,则当前时间片不进行任何操作,进入下一时间片;进一步地,所述的动态任务调度方法还包括如下步骤:Ⅴ、进行数据迁移,包括:(i)对于数据迁移的目的服务器,若该服务器上有数据块的存储空间,则直接将任务所需的数据部署在该服务器上,否则,转入步骤(ii);(ii)若目的服务器上没有足够的数据存储空间,找到该服务器上被任务访问次数最少且在系统中至少存在两个副本的数据块,用所需数据块替换该数据块,如果没有合适的可替换的数据块,那么放弃数据迁移,不进行任何操作。进一步地,在步骤Ⅱ中,每一服务器每次能够处理多个任务,每个任务所需的数据块不唯一。进一步地,在步骤(3)中,若系统中没有空闲服务器,但队列中有任务在等待执行,则按照FIFO策略选择第一个待调度的任务,再判断是否启用数据迁移。进一步地,在步骤Ⅴ中,若确定启用数据迁移,则限制服务器上数据块的替换,以保证被替换的数据块在被替换之后,系统中至少还存在一个数据副本。与现有技术相比,本专利技术提供的一种基于数据迁移的数据中心动态任务调度方法除了进一步改进任务的调度策略之外,还通过改变数据块的部署位置来提高数据本地性。由于是从数据块的部署情况做出改进,所以不会影响任务调度的公平性。在任务执行的过程中,根据任务进度和节点的负载情况,动态调整数据块的部署位置,进一步提高数据本地性,从而减少整个系统的任务执行时间,提高效率。附图说明图1是本专利技术一典型实施例中任务、数据与服务器的关系模型图。图2是本专利技术一典型实施例中一种基于数据迁移的数据中心动态任务调度方法的方法流程图。具体实施方式如下将结合附图及若干实施例对本专利技术的技术方案作详细说明,如下实施例在以本专利技术技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本专利技术的保护范围不限于下述的实施例。在本专利技术的说明书中,相关术语的释义如下:分布式计算:把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分本文档来自技高网
...

【技术保护点】
1.一种基于数据迁移的数据中心动态任务调度方法,其特征在于包括:Ⅰ、设定任务队列,其中有多个任务排队等待执行;以及,设定系统,其中包含有多个作为节点的服务器和多个不同数据块,其中每一数据块在系统中存在多个副本,每一服务器有多个存储空间,该多个存储空间分别用以存储多个数据块副本;Ⅱ、以服务器处理任务,其中每一任务要得到执行,均需要服务器中的相应的一个输入数据块,在任务执行时,若任务运行的服务器与所需输入数据所在的服务器是同一个服务器,则认为该任务是在本地执行,而若任务运行的服务器与所需输入数据所在的服务器不是同一个服务器,则认为该任务是在远程执行;Ⅲ、将时间划分为时间片,从0开始;Ⅳ、进行任务调度,包括如下步骤:(1)时间片从0开始,每个时间片都要检查服务器的状态,如果存在空闲的服务器,转入步骤(2),如果没有则转入步骤(3);(2)将队列中的任务按照优先级进行排序,依次调度;(3)若系统中没有空闲服务器,但队列中有任务在等待执行,则选择第一个待调度的任务,此时按下如下方法判断是否启用数据迁移,包括:(3‑1)找到系统中负载最小即可最快结束任务变为空闲状态的服务器,如果该服务器上没有部署当前待调度的任务所需的数据,转入步骤(3‑2),否则不进行任何操作,进入下一时间片;(3‑2)比较如下两个时间,即:任务等待服务器转为空闲状态的时间,以及,将任务所需数据块迁移到该服务器上的时间;如果前者>后者,则启用数据迁移,否则转入步骤(3‑3);(3‑3)比较如下两个时间,即:任务先等待服务器变为空闲状态,再在该服务器上远程执行的总时间;以及,先将任务所需数据迁移到该服务器上,再本地执行的总时间;如果前者>后者,则启用数据迁移,否则不进行任何操作,进入下一时间片。...

【技术特征摘要】
1.一种基于数据迁移的数据中心动态任务调度方法,其特征在于包括:Ⅰ、设定任务队列,其中有多个任务排队等待执行;以及,设定系统,其中包含有多个作为节点的服务器和多个不同数据块,其中每一数据块在系统中存在多个副本,每一服务器有多个存储空间,该多个存储空间分别用以存储多个数据块副本;Ⅱ、以服务器处理任务,其中每一任务要得到执行,均需要服务器中的相应的一个输入数据块,在任务执行时,若任务运行的服务器与所需输入数据所在的服务器是同一个服务器,则认为该任务是在本地执行,而若任务运行的服务器与所需输入数据所在的服务器不是同一个服务器,则认为该任务是在远程执行;Ⅲ、将时间划分为时间片,从0开始;Ⅳ、进行任务调度,包括如下步骤:(1)时间片从0开始,每个时间片都要检查服务器的状态,如果存在空闲的服务器,转入步骤(2),如果没有则转入步骤(3);(2)将队列中的任务按照优先级进行排序,依次调度;(3)若系统中没有空闲服务器,但队列中有任务在等待执行,则选择第一个待调度的任务,此时按下如下方法判断是否启用数据迁移,包括:(3-1)找到系统中负载最小即可最快结束任务变为空闲状态的服务器,如果该服务器上没有部署当前待调度的任务所需的数据,转入步骤(3-2),否则不进行任何操作,进入下一时间片;(3-2)比较如下两个时间,即:任务等待服务器转为空闲状态的时间,以及,将任务所需数据块迁移到该服务器上的时间;如果前者>后者,则启用数据迁移,否则转入步骤(3-3);(3-3)比较如下两个时间,即:任务先等待服务器变为空闲状态,再在该服务器上远程执行的总时间;以及,先将任务所需数据迁移到该服务器上,再本地执行的总时间;如果前者>后者,则启用数据迁移,否则不进行任何操作,进入下一时间片。2.如权利要求1所述的基于数据迁移的数据中心动态任务调度方法,其...

【专利技术属性】
技术研发人员:李鑫汪良媛秦小麟
申请(专利权)人:南京航空航天大学
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1