一种云中基于任务重叠与虚拟机迁移的容错任务调度方法_3

文档序号:9326745阅读:来源:国知局
为 不符合强主版本条件的主版本。
[0087] 并且,将父任务的副版本与子任务的主版本分配到同一物理主机的同一虚拟机上 运行,且使父任务的副版本与子任务的主版本在时间上存在重叠,并将子任务的副版本分 配到不存在任何重叠任务的物理主机上。
[0088]同时,在每个被激活的物理主机上的每个虚拟机中按照指定的时间安排运行被加 载的依赖任务组中的每个任务的每个版本,同时返回每个任务的每个版本的运行结果,并 将消息与数据发送给其他任务,包括:
[0089] 若父任务的主版本被成功完成,则向父任务的副版本发送消息取消其执行,向子 任务的主版本发送数据允许其执行;
[0090] 若父任务的主版本是强主版本、子任务的主版本是强主版本且父任务的主版本与 子任务的主版本不在同一台物理主机上运行,则父任务的副版本不向子任务的副版本发送 任何消息与数据;
[0091] 若父任务的主版本是强主版本、子任务的主版本是弱主版本且父任务的主版本与 子任务的主版本不在同一台物理主机上运行,则父任务的主版本不向子任务的副版本发送 任何消息与数据;
[0092] 若父任务的主版本是强主版本、子任务的主版本是强主版本且父任务的主版本与 子任务的主版本在同一台物理主机上运行,则父任务的副版本不向子任务的主版本发送任 何消息与数据;
[0093] 若父任务的主版本是强主版本、子任务的主版本是弱主版本且父任务的主版本与 子任务的主版本在同一台物理主机上运行,则父任务的副版本不向子任务的主版本发送任 何消息与数据;
[0094] 若父任务的主版本是弱主版本、子任务的主版本是强主版本、父任务的主版本与 子任务的主版本不在同一台物理主机上运行,且当子任务的主版本分配到与导致父任务的 主版本成为弱主版本的所有任务版本的主版本所在物理主机集合中的任何一台物理主机 上时,父任务的副版本向子任务的副版本发送数据允许其执行;
[0095] 若父任务的主版本是弱主版本、子任务的主版本是强主版本、父任务的主版本与 子任务的主版本在同一台物理主机上运行,且当子任务的副版本分配到与导致父任务的主 版本成为弱主版本的所有任务版本的主版本所在物理主机集合中的任何一台物理主机上 时,父任务的副版本向子任务的主版本发送数据允许其执行。
[0096] 并且,当一个任务的一个版本返回运行结果为失败时,将该任务的该版本所在的 虚拟机上的所有任务迀移至新物理主机上,该虚拟机不能迀移至被迀移任务的主版本或副 版本按上述限制不能分配的物理主机集合中的物理主机上;将虚拟机迀移到新物理主机后 虚拟机仍然能满足在旧物理主机上的时限约束,虚拟机中具有依赖任务的任务所涉及的物 理主机与迀移虚拟机所在物理主机之间的传输时延在虚拟机迀移之后仍然能满足上述已 有要求。
[0097] 下面根据具体实施例进一步阐述本发明的技术特征。
[0098] 由于任务到达通常不具有周期性,在本实施例中,我们考虑动态到达的依赖任务。 一组依赖任务可以表示为一个有向无环图(Directed Acyclic Graph,下文中简称为DAG)。 一个DAG可被定义为G = {T,E},其中,T = Itpt2,…,tn}表示实时的非周期任务集合,E 表示任务间的关系集合。elj= (t D 表示任务依赖于任务t i,即只有获得t i的执 行结果或者消息才能执行。因此,我们称^为、的父任务,、,为"的子任务。对任一任务 tie T,PU1)和CU1)分别表示任务^的父任务集合和子任务结合。P(() = 0表示任务 h没有父任务,C(/,.) = 0表示任务^没有子任务。一个DAG的达到时间和截止期分别表示 为a(G)和d(G)。任务1:河以描述成一个三元组t ;= (a ;,山,Si),其中,a;、山和s ;分别表 示任务L的达到时间、截止期和任务大小。任务t ^勺截止期d 1可以通过其所在DAG的截 止期d(G)计算得到。任务大小用百万指令数(million instructions,下文中简称为MI) 衡量。在PB模型中,对于任一任务^£ T,存在两个版本,分别表示为主版本if和副版本 if ^ if和?f被分配到不同的主机上以实现容错。分别表示主版本if的开始时间 和完成时间。类似地,和分别表示副版本的开始时间和完成时间。和尸(严) 分别表示?和if的父任务集合,(:Of )和C(C)分别表示If和 < 的子任务集合。
[0099] 虚拟化云可描述为一个物理主机的无限集合H= Ih1J2,…}。虽然云中的主 机数量是无限的,但活动主机的数量是有限的。集合G Z_/表示云中活动主机集合, H-Ha表示关闭主机集合。对任一主机hke Η,其处理能力pk用每秒百万指令数(million instructions per second,下文中简称为MIPS)衡量。每个主机1\上有多个虚拟机,用集
表示,每个虚拟机Vjke Vk有不同的处理能力p jk。对于主机匕上 的虚拟机,其处理能力满足
,Vjk的就绪时间表示为r jk。
[0100] 在一个虚拟化云中,一个主机可以有一个或多个虚拟机在其上运行,因此任务被 分配到每个虚拟机而非直接分配到某个主机。我们假设,虚拟机的处理能力具有异构性, 即虚拟机可以有不同的处理能力。一个任务的主版本和副版本在这些虚拟机上的执行时 间可分别用矩阵Ep和E B表示,其中元素和分别表示If和#在虚拟机Vjk上的执行 时间。我们用4和$分别表示任务主版本if和副版本if与虚拟机V]k之间的映射关系: 如果 < 被分配到虚拟机v]k上则= 1,否则;类似地,如果if被分配到虚拟机v]k
分别表示if和if所分配到的虚拟机,;)和 /2(f):则表示f和if所分配到的主机。因此
意味着 Ονβ。
[0101] 表示f和#之间的边,其中X,Y e {ρ,Β},即?f可以是€也可以是<。同 样,既可以是?也可以是g。对每个边#,从if到 <的数据或消息传输时间表示为 //f \若if和4具有依赖关系且被分配到同一主机,则= (K此外,令dVl,表示任务t i 到任务\的数据或消息传输量,)-/?(<))表示主机/Hf)到Mif)的传输速度,可
3任务tj主版本和副版本最早开始时 间可分别计算为:
[0104] ^的最晚完成时间併由任务的截止期决定,因此有:
[0106] 兮的实际开始时间^是 < 被调度后开始执行的时间。?[可以放置在由炉^和 限定的空闲时间槽内。我们的调度目标即找到合适的任务开始时间,尽量接受更多的 实时DAG,提高系统的吞吐量。
[0107] 需要特别指出的是,本发明的技术方案所述的错误为针对主机出错,主机出错导 致其他层级如虚拟机和应用的中断运行。错误既可以是暂时的也可以是永久的,但各个错 误相互独立,一台主机的出错不会影响其他主机。同时,由于两个主机同时出错的概率很 小,因此假设在任一时间,至多一台主机出错。一台主机出错后,主版本在该主机上的任务 可在另一个主机出错之前由其副版本成功完成。并且,系统中存在一个出错探测机制,可以 提供出错信息,新任务不会被调度到已出错的主机上。系统还采用回收机制,即如果主版本 成功完成,那么副版本的执行被中断,所占用的资源被回收。
[0108] 针对多个主机同时失效的情况,该失效模型可以通过下面两个步骤进行扩展。首 先,将云中主机分为若干组;之后,在每个组内采用上述错误模型。可通过在各个组内采用 本文所提出的容错机制,以解决多主机失效的情况。
[0109] 下文将对采用PB模型进行容错时的任务分配和消息传输进行分析,给出实现容 错的所有约束条件。
[0110] 为方便分析,我们首先定义强主版本与弱主版本。
[0111] 定义1,强主版本:对任意一个任务主版本 如果其所在的主机Kf)不出错,< 一定可以执行,则称 < 为强主版本。
[0112] 图2给出了强主版本的一个例子。如图2所示,^是t ,的父任务,即t ,必须接收 到h传来的消息或数据才能开始执行,带箭头的虚线表示从主版本到副版本的消息传递关 系及方向。由图2可知,只要ff所在的主机匕不出错,f就能成功执行,可以收到其父任 务传来的消或数据。因此,< 是一个强主版本。
[0113] 定义2,弱主版本:对任意一个任务主版本 <,如果其所在的主机从<)不出错,^! 也不一定可以执行,则称#为弱主版本。
[0114] 图3给出了弱主版本的一个例子。如图3所示,假设if所在的主机比在If完成之 前出错,那么if将执行。但是由于 < 不能接收到<传来的消息或数据,尽管 < 所在的主机 不出错,<仍不能执行。因此,?是一个弱主版本。
[0115] 根据定义1与定义2,我们有如下命题:
[0116] 侖题I, Vi,. 如果以下三种情况中有任意一种成立,则<是强主版本:
[0120] 否则,if是弱主版本。
[0121] 第一种情况可以直接根据定义1推出。第二种情况可根据图2推出。对于第三种 情况,图4与图5给出了两个例子,其中主版本被分配到同一主机,副版本被分配到不同的 主机。其中,图4为子任务主版本开始时间晚于父任务副版本的结束时间的情况,图5为子 任务主版本开始时间早于父任务副版本的结束时间的情况。
[0122] 从图4与图5中,我们可以发现,不管<是否能够收到if的消息或数据,<都能收 到If的消息或数据。根据定义1,若主机匕在^完成之前不出错,则一定可以成功执行 完成。因此?是强主版本。
[0123] 下面我们分析采用PB模型进行容错时,主版本和副版本的调度约束。
[0124] 假设UtjG Lt1G P (te CU1),首先使用一个引理如下:
[0125] 引理1,对任意两个依赖任务tJP t ,,^是t ,的父任务,如果if成功完成,则$发 出的消息或数据必须同时传送给?和<。
[0126] 证明:采用反证法。假设成功完成后没有发送消息或数据给 之前出错,由于If成功执行完成,if被取消,导致<没有机会执行。与此同时,<不能成功 执行完成,?必须执行。但是,<没有收到If发送的消息或数据,因此<也不能执行。与容 错保障产生矛盾。因此,if
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1