一种基于可靠性驱动的云资源容错调度方法

文档序号:6371729阅读:220来源:国知局
专利名称:一种基于可靠性驱动的云资源容错调度方法
技术领域
本发明涉及资源的容错调度技术,具体是一种基于可靠性驱动的云资源容错调度方法。
背景技术
云计算因具有超大规模、高可靠性、高可扩展性、按需服务、极其廉价等特点受到了广大的关注。其中云计算一个非常重要特点就是高可靠性。可是,云计算系统使用的大 规模资源具有高度动态性和异构性,资源环境所固有的不可靠状态,使得云计算平台较传统的计算平台出现大规模资源失败的可能性大大增加。这种大规模的资源失败包括了硬件故障、软件错误以及其他的失败源。所以,云计算中一个很大的挑战是从大规模分布式系统中去容忍或者消除错误。那么,研究具有容错机制和失败容忍能力的可靠云计算服务调度策略,对切实提高云计算服务的服务质量具有重要意义。基于云计算系统的实时容错调度算法的研究仍处在一个起步阶段。由于云计算系统中大规模资源失败,特别是多处理机同时发生故障的情况更是常有发生,因此如何在保证云计算系统的可靠性同时,又能保证系统实时性,进而提高系统的服务质量是调度算法需要考虑的问题。目前,处理多处理机发生故障的情况下的算法主要是考虑执行时间、通信时间、时间复杂度等某个方面,但是高可靠性和通信时间最小化方面的研究却涉及很少。现有的方法有FTBAR、FTSA、CAFT、MC-FTSA。FTBAR 是基于主动复制(Active Replication)策略的List启发式调度算法,它允许一个任务的N+1个副本调度到不同处理机,并且可以并行执行以容忍至多N个处理机失败,但是分配任务的大量副本过程中导致了大量的通信和提高了时间复杂度。为了解决大量通信的问题,FTSA提出了一个全新的数据结构来解决任务映射到的处理机间的通信关系尽量达到一对一通信,从而减少大量冗余通信。同时,FTSA考虑的是有依赖关系任务和推导了任务的最早完成时间。但是通信的减少会影响任务的开始时间,FTSA未考虑任务后续的开始时间从而使DAG的执行时间未达到最优化。CAFT、MC-FTSA从通信和时间复杂度角度将任务的多个副本映射到不同处理机上,它们都最小化通信而容忍处理机失败数量却受到很大限制,即通信越少,能够容忍处理机失败数量就越少。但是这些算法都没有考虑可靠性。

发明内容
为了克服现有的容错调度方法的可靠性较差的不足,本发明是在大规模资源失败情况下特别是多处理机失败下,以可靠性代价为调度目标,利用主动复制策略,将任务的e+1个副本放到不同的处理器上,动态调度相互依赖、不可抢占、非周期的实时任务,提供一种提高系统的可靠性基于可靠性驱动的云资源容错调度方法。本发明为了解决上述技术问题采用的技术方案为一种基于可靠性驱动的云资源容错调度方法,包括以下步骤I)初始化,包含如下过程
I. I)将系统支持的最大处理机失败的数量赋值给e ;I. 2)确定系统的处理机集P= (P1, P2,…,PJ,任务的计算时间用e :VXP — R来模拟,e (!,Pj), I ( j彡m表示系统中每个任务在每个处理机上的执行时间;任务间的通信时间用W(i,j)=v(i, j) Xd(Pk,Pb)来表示,其中,任务i映射到处理机Pk上,任务j映射到处理机Pb上,d (Pk, Pb)表示发送单位长度数据所需的时间;如果任务部署到同一个处理机上,则通信时间为零;I. 3)初始化调度任务集合A = 0未调度任务集合U=V,设S是调度任务集合,U是未调度任务集合,一旦一个任务i e S调度到处理机匕上,则会得到它的开始时和完成时间;利用无回路有向图DAG来模拟任务模型中的任务以及它们之间的关系,用T= (V,E)表示,其中V是一个节点集合对应所有非周期、非抢占性的实时任务;E是一个边集合对应所有任务之间的优先关系以及任务之间的通信;对于一个任务i,Sdp(i)表示任务i的直接前续集合,Sds (i)表示任务i的直接后续集合;v(i, j)表示任务i发送给任务j的数据量;I. 4)初始化空闲任务优先列表《 = 0 ;该表利用平衡搜索树去执行任务;2)计算无回路有向图DAG中的每个任务i的bl⑴和初始化每个开始任务i的tl (i)=0 ;tl (i)表示动态高位水平,bl (i)表示静态低位水平;其中tl (i)依赖于映射过程中己经部署的任务,bl(i)根据DAG的拓扑结构将保持不变;其中,bl(i)的求解步骤如下2. I):对于v/et/,如果任务i的后续集合为空,即&(/) = 0,则W(V) =而,其中
@是任务的平均执行时间,即
权利要求
1. 一种基于可靠性驱动的云资源容错调度方法,其特征在于包括以下步骤 ·1)初始化,包含如下过程 ·1. 1)将系统支持的最大处理机失败的数量赋值给ε ; ·1. 2)确定系统的处理机集P=的,P2,…,PJ, 任务的计算时间用ε VXP — R来模拟,ε (!,Pj), I ( j彡m表示系统中每个任务在每个处理机上的执行时间;任务间的通信时间用W(i,j)=v(i,j)Xd(Pk,Pb)来表示,其中,任务i映射到处理机Pk上,任务j映射到处理机Pb上,d(Pk,Pb)表示发送单位长度数据所需的时间;如果任务部署到同一个处理机上,则通信时间为零; ·1. 3)初始化调度任务集合S 二 0 ;未调度任务集合U=V,设S是调度任务集合,U是未调度任务集合,一旦一个任务i e S调度到处理机PjI,则会得到它的开始时和完成时间 利用无回路有向图DAG来模拟任务模型中的任务以及它们之间的关系,用T=(V,E)表示,其中V是一个节点集合对应所有非周期、非抢占性的实时任务;E是一个边集合对应所有任务之间的优先关系以及任务之间的通信;对于一个任务i,Sdp(i)表示任务i的直接前续集合,Sds (i)表示任务i的直接后续集合;v(i, j)表示任务i发送给任务j的数据量; ·1.4)初始化空闲任务优先列表or = 0,该表利用平衡搜索树去执行任务; ·2)计算无回路有向图DAG中的每个任务i的bl(i)和初始化每个开始任务i的tl (i)=O ; tl(i)表示动态高位水平,bl(i)表示静态低位水平;其中tl(i)依赖于映射过程中己经部署的任务,bl (i)根据DAG的拓扑结构将保持不变;其中,bl (i)的求解步骤如下 ·2.I):对于Wet/ ,如果任务i的后续集合为空,即&(/) = 0,则W⑴=瓦0,其中Ui是任务的平均执行时间,即@ =;否则转到2. 2); ·2.2)
全文摘要
一种基于可靠性驱动的云资源容错调度方法,包括以下步骤1)初始化;2)计算DAG中的每个任务i的bl(i)和初始化tl(i)=0;3)将开始任务插入α中;4)开始调度,按如下步骤进行操作,直至所有的任务都调度完成,具体包含如下步骤4.1)调度时的初始化;4.2)在每个处理机Pj上,寻找任务i的合适处理机;4.3)如果任务i没有可行的处理机,则调度失败;4.4)将处理机分配给任务i;4.5)将任务i的空闲后续放入到α中;4.6)更新U;5)调度结束,调度成功。本发明通过有效的容错调度提高了系统的服务质量。
文档编号G06F9/50GK102799474SQ20121021160
公开日2012年11月28日 申请日期2012年6月21日 优先权日2012年6月21日
发明者张芮, 琚春华, 陈沛帅 申请人:浙江工商大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1