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

文档序号:9326745阅读:512来源:国知局
一种云中基于任务重叠与虚拟机迁移的容错任务调度方法
【技术领域】
[0001] 本发明涉及云计算领域,特别地,涉及一种云中基于任务重叠与虚拟机迀移的容 错任务调度方法。
【背景技术】
[0002] 由于计算机系统出错的不可预测性,在设计调度算法时加入对容错性的支持至关 重要。容错调度算法大体上可以分为两类,即静态容错调度和动态容错调度:静态容错调度 在任务提交之前进行调度决策,通常用来调度周期性任务;动态容错调度通常用来调度非 周期性任务,其任务到达时间不确定。
[0003] 目前,在分布式计算环境下主要有两种主要的容错调度手段,即重提交和复制。重 提交是指当一个任务所分配的计算节点出现故障后,该任务被重新提交。采用重提交方式 将会导致一些任务的完成时间推迟,甚至可能会不满足任务的截止期。复制是指通过将一 个任务复制成多个版本,之后把每个复制的版本分配到不同的计算节点,以保证即便在资 源出现故障的情况下,任务仍能在截止期前成功完成。任务被复制的版本越多,系统的容错 能力越强,但这将不可避免地造成大量的资源消耗。因此,采用两个版本的复制方式,即主 版本与副版本模型(primary-backup model,下文中简称为PB模型)成为目前广为采用的 容错手段。
[0004] 为了在保障容错的前提下提高系统可调度性和资源利用率,有不少学者在采用PB 模型时研究了如何通过重叠技术减少系统开销。目前主要有两种的重叠模式:副版本-副 版本重叠(backup-backup overlapping,简称BB重叠),即多个不同的副版本可在同一 个计算单元上进行重叠;主版本-副版本重叠(primary-backup overlapping,简称PB重 叠),即一个主版本可以和其他任务的副版本在同一个计算单元上重叠。在PB模型中, 副版本可进一步分为两种类型,即被动副版本(passive backup)和主动副版本(active backup)。被动副版本只在其对应的主版本不能成功完成时开始执行,如果主版本成功完 成,副版本将被撤销。尽管上述方法可以减少资源占用,但不能保证所有的任务可在截止期 内完成;相反,主动副版本允许一个任务的主版本和副版本在执彳丁时间上有重置,米用主动 副版本执行方式可以减小任务错失截止期的概率,但同时资源利用率也会随之降低。现有 技术中已经存在对实时任务进行重叠处理的技术方案,但这些技术方案并未考虑系统的虚 拟化,因此仅适用于传统的分布式系统,并不适合虚拟化云计算环境。
[0005] 近来,也有一些云中依赖任务调度方面的研究。但是这些工作都没有在调度时考 虑系统出错的情况,不能解决云中容错问题。针对现有技术中缺乏云计算环境下容错任务 调度方法的问题,目前尚未有有效的解决方案。

【发明内容】

[0006] 针对现有技术中缺乏云计算环境下容错任务调度方法的问题,本发明的目的在于 提出一种云中基于任务重叠与虚拟机迀移的容错任务调度方法,能够在云计算环境下采用 PB模型进行容错任务的调度,提高资源利用率与容错任务的可调度性。
[0007] 基于上述目的,本发明提供的技术方案如下:
[0008] 根据本发明的一个方面,提供了一种云中基于任务重叠与虚拟机迀移的容错任务 调度方法,包括:
[0009] 获取已到达的依赖任务组信息与虚拟化云的物理主机信息;
[0010] 使用PB模型为依赖任务组中的每个任务建立主版本与副版本;
[0011] 根据依赖任务组信息为依赖任务组中的每个任务的每个版本均指定一个最早开 始时间与一个最晚完成时间;
[0012] 根据依赖任务组信息激活多个物理主机,并在每个被激活的物理主机上划分出多 个虚拟机,获取每个被激活的物理主机上的每个虚拟机信息;
[0013] 根据依赖任务组中的每个任务的每个版本的最早开始时间与最晚完成时间、以及 每个被激活的物理主机上的每个虚拟机信息,将依赖任务组中的每个任务的每个版本在指 定的时间段上加载到每个被激活的物理主机上的每个虚拟机中;
[0014] 在每个被激活的物理主机上的每个虚拟机中按照指定的时间安排运行被加载的 依赖任务组中的每个任务的每个版本,同时返回每个任务的每个版本的运行结果,并将消 息与数据发送给其他任务;
[0015] 完成依赖任务组的全部任务并返回任务结果。
[0016] 其中,依赖任务组信息包括任务集合、任务间关系集合与任务截止期,任务集合记 载了依赖任务组中每个任务的大小,任务间关系集合记载了依赖任务组中任意两个任务之 间的依赖关系,任务截止期为依赖任务组的最晚完成时间;物理主机信息包括物理主机集 合,物理主机集合记载了每个物理主机处理能力的大小;虚拟机信息包括每个被激活的物 理主机上的虚拟机集合,虚拟机集合记载了每个虚拟机所在的物理主机以及每个虚拟机处 理能力的大小。
[0017] 并且,使用PB模型为依赖任务组中的每个任务建立主版本与副版本,为在依赖任 务组中依次指定每个任务,并为被指定的任务创建一个主版本与一个副版本,其中,同一个 任务的主版本与副版本重复进行相同的工作。
[0018] 并且,多个被激活的物理主机之间存在传输时延;根据依赖任务组信息为依赖任 务组中的每个任务的每个版本均指定一个最早开始时间与一个最晚完成时间包括:
[0019] 对于任一子任务的主版本,其最早开始时间为其多个父任务中每个父任务的完成 时间加上父任务所在物理主机与子任务所在物理主机之间的传输时延之和中的最大值;
[0020] 对于任一子任务的副版本,其最早开始时间为其多个父任务中每个父任务的完成 时间加上父任务所在物理主机与子任务所在物理主机之间的传输时延之和、以及同一任务 的主版本任务长度二者的较大值;
[0021] 对于任一非子任务的主版本,其最早开始时间为该任务的主版本所在物理主机的 所在虚拟机为执行该任务的主版本而准备就绪的时间与该任务所在的依赖任务组信息到 达时间中的较大值;
[0022] 对于任一非子任务的副版本,其最早开始时间为该任务的副版本所在物理主机的 所在虚拟机为执行该任务的副版本而准备就绪的时间与该任务所在的依赖任务组信息到 达时间中的较大值;
[0023] 对于任一任务的任意版本,其最晚完成时间为该任务的截止时间;
[0024] 其中,一子任务与一父任务为一依赖任务对,子任务依赖于父任务,子任务必须获 得父任务的执行结果才能执行。
[0025] 同时,根据依赖任务组中的每个任务的每个版本的最早开始时间与最晚完成时 间、以及每个被激活的物理主机上的每个虚拟机信息,将依赖任务组中的每个任务的每个 版本在指定的时间段上加载到每个被激活的物理主机上的每个虚拟机中包括:
[0026] 将同一个子任务的主版本与副版本分配至两个不同物理主机的虚拟机上;
[0027] 若其父任务的主版本是强主版本、子任务的主版本是弱主版本且父任务的主版本 与子任务的主版本不在同一台物理主机上运行,则将子任务的副版本分配到与父任务的主 版本所在物理主机不同的物理主机上;
[0028] 若父任务的主版本是弱主版本,则将父任务的副版本分配到与导致父任务的主版 本成为弱主版本的所有任务版本的主版本所在物理主机集合中的任何一台物理主机均不 同的物理主机上;
[0029] 若父任务的主版本是弱主版本、子任务的主版本是强主版本且父任务的主版本与 子任务的主版本不在同一台物理主机上运行,则将子任务的主版本分配到与导致父任务的 主版本成为弱主版本的所有任务版本的主版本所在物理主机集合中的任何一台物理主机 均不同的物理主机上;
[0030] 若父任务的主版本是弱主版本,且父任务的主版本与子任务的主版本在同一台物 理主机上运行,则将子任务的副版本分配到与导致父任务的主版本成为弱主版本的所有任 务版本的主版本所在物理主机集合中的任何一台物理主机均不同的物理主机上;
[0031] 其中,强主版本为所在物理主机不出错时一定能成功执行的主版本,弱主版本为 不符合强主版本条件的主版本。
[0032] 并且,将父任务的副版本与子任务的主版本分配到同一物理主机的同一虚拟机上 运行,且使父任务的副版本与子任务的主版本在时间上存在重叠,并将子任务的副版本分 配到不存在任何重叠任务的物理主机上。
[0033] 同时,在每个被激活的物理主机上的每个虚拟机中按照指定的时间安排运行被加 载的依赖任务组中的每个任务的每个版本,同时返回每个任务的每个版本的运行结果,并 将消息与数据发送给其他任务,包括:
[0034] 若父任务的主版本被成功完成,则向父任务的副版本发送消息取消其执行,向子 任务的主版本发送数据允许其执行;
[0035] 若父任务的主版本是强主版本、子任务的主版本是强主版本且父任务的主版本与 子任务的主版本不在同一台物理主机上运行,则父任务的副版本不向子任务的副版本发送 任何消息与数据;
[0036] 若父任务的主版本是强主版本、子任务的主版本是弱主版本且父任务的主版本与 子任务的主版本不在同一台物理主机上运行,则父任务的主版本不向子任务的副版本发送 任何消息与数据;
[0037] 若父任务的主版本是强主版本、子任务的主版本是强主版本且父任务的主版本与 子任务的主版本在同一台物理主机上运行,则父任务的副版本不向子任务的主版本发送任 何消息与数据;
[0038] 若父任务的主版本是强主版本、子任务的主版本是弱主版本且父任务的主版本与 子任务的主版本在同一台物理主机上运行,则父任务的副版本不向子任务的主版本发送任 何消息与数据;
[0039] 若父任务的主版本是弱主版本、子任务的主版本是强主版本、父任务的主版本与 子任务的主版本不在同一台物理主机上运行,且当子任务的主版本分配到与导致父任务的 主版本成为弱主版本的所有任务版本的主版本所在物理主机集合中的任何一台物理主机 上时,父任务的副版本向子任务的副版本发送数据允许其执行;
[0040] 若父任务的主版本是弱主版本、子任务的主版本是强主版本、父任务的主版本与 子任务的主版本在同一台物理主机上运行,且当子任务的副版本分配到与导致父任务的主 版本成为弱主版本的所有任务版本的主版本所在物理主机集合中的任何一台物理主机上 时,父任务的副版本向子任务的主版本发送数据允许其执行。
[
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1