一种高可靠性的依赖任务调度与资源配置方法

文档序号:10552746阅读:242来源:国知局
一种高可靠性的依赖任务调度与资源配置方法
【专利摘要】本发明公开了一种高可靠性的依赖任务调度与资源配置方法,其特征在于,包括:从任务调度与资源配置通用框架中获取已到达的依赖任务信息与虚拟化云中的物理主机信息;根据依赖任务信息与物理主机信息创建虚拟机;在创建好的虚拟机上以可靠性作为目标对实时、无优先权、非周期性的依赖任务进行调度,并对虚拟机进行资源配置;完成全部依赖任务并返回任务结果。本发明通过建立虚拟化云中实时容错模型代替传统的PB模型,在云计算环境下进行任务调度与资源配置,提高了依赖任务调度与资源配置的可靠性。
【专利说明】
一种高可靠性的依赖任务调度与资源配置方法
技术领域
[0001] 本发明涉及虚拟化云领域,特别地,涉及一种高可靠性的依赖任务调度与资源配 置方法。
【背景技术】
[0002] 任务调度和资源配置是云计算中最重要的研究问题。目前已有一些相关的方法和 算法。在云资源管理中,有许多专注于不同目标的研究。例如,关于节能调度,Cardosa等人 研究了云中能耗节约问题,提出了一个在能量消耗和工作运行时间之间进行权衡的算法。 Deng等人提出了基于李雅普诺夫最优化模型的云数据中心供电系统节能的在线控制算法 SmartDPSS,可以随时间的推移,在任意需求下提供可靠的能量。Singh等人研究了基于集群 的启发式算法FastCEED,采用混合整数规划和复制通信密集型应用的方法来优化能源消 耗。以可靠性为目标,许多研究采用了不同的技术。Wang等人结合云的特点,全面分析了调 度时的约束,并考虑资源的弹性配置,扩展了传统的主/副版本(Pr imary/Backup,PB)模型。 Plankensteiner和Prodan研究了云中的容错问题,通过结合任务复制和任务重新提交等手 段提高工作流任务在截止期内完成的百分比。Zhou等人研究了关于通过使用检查点技术增 强云服务可靠性的问题,其中,把提供相同服务的所有虚拟机的相同部分作为服务检查点, 以减少资源消耗。有些工作研究多重调度目标,例如,Chen等人把节能和系统不确定性一起 作为调度目标,提出了一个使用主动调度和被动调度相结合的方法来控制不确定性的调度 算法PRS Juan等人专注于执行时间和经济成本两个目标,把调度问题转化为一个连续的合 作博弈问题。
[0003] 从任务类型来看,也有大量对任务调度和资源配置的研究。例如,Rodriguez和 Buyya为基础设施云上的科学工作流(依赖任务)提出了一个资源配置和调度策略,采用粒 子群优化技术来最小化时序约束内的整体执行时间。Mao和Humphrey设计、实施和评价了两 种资源自动伸缩的解决方案,以最大限度地减少云中依赖任务预算约束内的工作时间。相 反,Xiao等人专注于独立任务,研究了基于云的视频服务动态请求重定向和资源配置问题。 Bey等人也针对独立任务,提出了一个云计算中任务调度的平衡启发式算法。此外,一些研 究人员关注实时任务调度问题。例如,Abrishami等人提出了一种两阶段调度算法PCP,最小 化工作流执行消耗并满足任务预期截止期。Hosseinimotlagh等人提出了一个两层任务调 度方法,在一个实时状态下同时使云供应商和他们的用户受益。才外,也有针对云中非实时 任务调度的研究。例如,Bittencourt研究了混合云中的调度问题,以最小化非实时工作流 的完成时间。
[0004] 由于计算机系统出错的不可预测性,在设计调度算法时加入对高可靠性的支持至 关重要。高可靠性调度算法大体上可以分为两类,即静态容错调度和动态容错调。静态容错 调度在任务提交之前进行调度决策,通常用来调度周期性任务;动态容错调度通常用来调 度非周期性任务,其任务到达时间不确定。近来有一些云中依赖任务调度方面的研究。但是 这些工作都没有在调度与资源配置时考虑系统出错的情况,不能解决可靠性问题。针对现 有技术中缺乏云计算环境下高可靠性任务调度方法与资源配置方法的问题,目前尚未有有 效的解决方案。

【发明内容】

[0005] 有鉴于此,本发明的目的在于提出一种高可靠性的依赖任务调度与资源配置方 法,能够在云计算环境下进行任务调度与资源配置,提高依赖任务调度与资源配置的可靠 性。
[0006] 基于上述目的,本发明提供的技术方案如下:
[0007] 根据本发明的一个方面,提供了一种高可靠性的依赖任务调度与资源配置方法, 包括:
[0008] 从任务调度与资源配置通用框架中获取已到达的依赖任务信息与虚拟化云中的 物理主机信息;
[0009] 根据依赖任务信息与物理主机信息创建虚拟机;
[0010] 在创建好的虚拟机上以可靠性作为目标对实时、无优先权、非周期性的依赖任务 进行调度,并对虚拟机进行资源配置;
[0011] 完成全部依赖任务并返回任务结果。
[0012] 其中,根据依赖信息与物理主机信息创建虚拟机包括:使用主版本/副版本 (Primary/Backup,PB)模型为每个依赖任务创建一个主版本与一个副版本,同一个任务的 主版本与副版本重复进行相同的工作;根据依赖任务信息为每个任务的每个版本均指定一 个最早开始时间与一个最晚完成时间;根据依赖任务信息激活多个物理主机,并在每个被 激活的物理主机上划分出多个虚拟机,获取每个被激活的物理主机上的每个虚拟机信息; [0013]依赖任务信息包括任务集合、任务间关系集合与任务截止期,任务集合记录了依 赖任务集合中每个任务的大小,任务间关系集合记录了依赖任务集合中任意两个任务之间 的依赖关系,任务截止期为依赖任务组的最晚可完成时间;物理主机信息包括物理主机集 合,物理主机集合记录了每个物理主机处理能力的大小;虚拟机信息包括每个被激活的物 理主机上的虚拟机集合,虚拟机集合记录了每个虚拟机所在的物理主机以及每个虚拟机处 理能力的大小。
[0014] 并且,在创建好的虚拟机上以可靠性作为目标对实时、无优先权、非周期性的依赖 任务进行调度,并对虚拟机进行资源配置包括:根据依赖任务集合中的每个任务的每个版 本的最早开始时间与最晚完成时间、以及每个被激活的物理主机上的每个虚拟机信息,将 依赖任务集合中的每个任务的每个版本按照每个被激活的物理主机上的任务分布情况在 指定的时间段上加载到每个被激活的物理主机上的每个虚拟机中;在每个被激活的物理主 机上的每个虚拟机中按照指定的时间安排运行被加载的依赖任务组中的每个任务的每个 版本,并根据物理主机的负载情况与实时利用情况使用资源扩展机制与资源收缩机制调节 系统的资源利用率。
[0015] 并且,将依赖任务集合中的每个任务的每个版本按照每个被激活的物理主机上的 任务分布情况在指定的时间段上加载到每个被激活的物理主机上的每个虚拟机中,先将依 赖任务集合中的每个任务的主版本在指定的时间段上加载到每个被激活的物理主机上的 每个虚拟机中,并使得依赖任务集合中的每个任务的主版本尽量均匀的分布在所有主机 上;再将依赖任务集合中的每个任务的副版本在指定的时间段上加载到每个被激活的物理 主机上的每个虚拟机中并使得依赖任务集合中的每个任务的副版本尽量集中分布到副版 本分布数量较多的主机上。
[0016] 并且,将依赖任务结合中的每个任务的主版本在指定的时间段上加载到每个被激 活的物理主机上的每个虚拟机中,并使得依赖任务集合中的每个任务的主版本尽量均匀的 分布在所有主机上,包括:
[0017] 选取一个待调度任务的主版本;
[0018] 将激活主机集合中的所有主机按已被调度主版本数量由小到大排序,分割为多个 主机组,并指定已被调度主版本数量最小的主机所在的主机组为候选主机组;
[0019] 在候选主机组中选取一个虚拟机,使得在该虚拟机上待调度任务的主版本能够在 截止期之前被完成,且待调度任务的主版本被完成的时间最早;
[0020] 若未找到前述虚拟机,则继续指定下一个主机组为候选主机组并选取符合前述条 件的虚拟机,直到符合前述条件的虚拟机被找到或所有候选主机组都被指定过;
[0021] 若所有候选主机组都被指定过但仍未能选取符合前述条件的虚拟机,则调用资源 扩展机制增加计算资源以完成待调度任务的主版本;
[0022] 若调用资源扩展机制增加计算资源后仍不能完成待调度任务的主版本,则将待调 度任务的主版本调度到待调度任务的主版本被完成的时间最早的虚拟机上,并返回待调度 任务的主版本不能在截止期之前完成的提示信息。
[0023]并且,将依赖任务集合中的每个任务的副版本在指定的时间段上加载到每个被激 活的物理主机上的每个虚拟机中并使得依赖任务集合中的每个任务的副版本尽量集中分 布到副版本分布数量较多的主机上,包括:
[0024]选取一个待调度任务的副版本;
[0025] 将激活主机集合中的所有主机按已被调度副版本数量由大到小排序,分割为多个 主机组,并指定已被调度副版本数量最小的主机所在的主机组为候选主机组;
[0026] 在候选主机组中选取一个虚拟机,使得在该虚拟机上待调度任务的副版本能够在 截止期之前被完成,且待调度任务的副版本被完成的时间最早;
[0027] 若未找到前述虚拟机,则继续指定下一个主机组为候选主机组并选取符合前述条 件的虚拟机,直到符合前述条件的虚拟机被找到或所有候选主机组都被指定过;
[0028] 若所有候选主机组都被指定过但仍未能选取符合前述条件的虚拟机,则调用资源 扩展机制增加计算资源以完成待调度任务的副版本;
[0029] 若调用资源扩展机制增加计算资源后仍不能完成待调度任务的副版本,则将待调 度任务的副版本调度到待调度任务的副版本被完成的时间最早的虚拟机上,并返回待调度 任务的副版本不能在截止期之前完成的提示信息。
[0030] 另外,根据物理主机的负载情况与实时利用情况使用资源扩展机制与资源收缩机 制调节系统的资源利用率。资源扩展机制包括水平扩展与垂直扩展,资源收缩机制包括水 平收缩与垂直收缩;其中,水平扩展为通过创建新的虚拟机增加计算资源规模,垂直扩展为 将主机的未启用处理能力分配到该主机的虚拟机上;水平收缩为通过关闭虚拟机降低计算 资源规模,垂直收缩为降低虚拟机的处理能力。
[0031 ]并且,资源扩展机制按以下方式运行:
[0032]将所有活动主机根据剩余处理能力由大到小排序,并依次指定每个主机;
[0033]分别访问主机上的每个虚拟机,获得待分配任务在每个虚拟机上的最早开始时 间,并根据待分配任务在每个虚拟机上的最早开始时间计算为完成待分配任务每个虚拟机 分别需要的处理能力;
[0034]根据指定主机的未启用处理能力大小判断将未启用处理能力分配到虚拟机能否 是虚拟机的处理能力足够完成待分配任务,若能则使用垂直扩展将未启用处理能力分配到 一个可用的虚拟机上并将待分配任务分配到该虚拟机上;
[0035] 依次指定每台活动主机直到该任务被成功分配或所有活动主机都被指定过,若所 有活动主机都被指定过但该任务仍未被成功分配,则使用水平扩展创建一台新的虚拟机并 将待分配任务分配到该虚拟机上;
[0036] 若使用水平扩展无法创建新的虚拟机,则返回任务分配失败信息。
[0037] 同时,资源收缩机制按以下方式运行:
[0038] 指定休眠阈值、关闭阈值、第一空闲时长阈值与第二空闲时长阈值;
[0039] 当有任务的主版本或副版本被调度到虚拟机上时,或当虚拟机上有副版本因为主 版本失效而需要执行时,根据第一空闲时长阈值、第二空闲时长阈值与任务长度,更新休眠 阈值与关闭阈值;
[0040] 当虚拟机连续空闲的时常超过休眠阈值时,将虚拟机的处理能力压缩到最小;
[0041] 当虚拟机连续空闲的时常超过关闭阈值时,关闭该虚拟机并将占用的处理能力返 还主机;
[0042] 当虚拟机被关闭且所在主机的负载情况与实时利用情况处于较低水平时,关闭该 主机并将主机上剩余虚拟机迀移到其他主机上。
[0043] 并且,当有任务的主版本或副版本被调度到虚拟机上时,或当虚拟机上有副版本 因为主版本失效而需要执行时,根据第一空闲时长阈值、第二空闲时长阈值与任务长度(大 小),更新休眠阈值与关闭阈值包括:
[0044] 当有任务的主版本或副版本被调度到虚拟机上时,休眠阈值更新为第一空闲时长 阈值与任务的主版本长度之和、与旧休眠阈值两者中的较大值,关闭阈值更新为第二空闲 时长阈值与任务的主版本长度之和、与旧关闭阈值两者中的较大值;
[0045] 当虚拟机上有副版本因为主版本失效而需要执行时,休眠阈值更新为第一空闲时 长阈值与任务的副版本长度之和、与旧休眠阈值两者中的较大值,关闭阈值更新为第二空 闲时长阈值与任务的副版本长度之和、与旧关闭阈值两者中的较大值。
[0046] 从上面所述可以看出,本发明提供的技术方案通过建立虚拟化云中实时容错模型 代替传统的PB模型,在云计算环境下进行任务调度与资源配置,提高了依赖任务调度与资 源配置的可靠性。
【附图说明】
[0047] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所 需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施 例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获 得其他的附图。
[0048] 图1为根据本发明实施例的一种高可靠性的依赖任务调度与资源配置方法流程 图。
【具体实施方式】
[0049] 为使本发明的目的、技术方案和优点更加清楚明白,下面将结合本发明实施例中 的附图,对本发明实施例中的技术方案进一步进行清楚、完整、详细地描述,显然,所描述的 实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域 普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
[0050] 根据本发明的实施例,提供了一种高可靠性的依赖任务调度与资源配置方法。
[0051] 如图1所示,根据本发明实施例的提供的一种高可靠性的依赖任务调度与资源配 置方法包括:
[0052] 步骤S101,从任务调度与资源配置通用框架中获取已到达的依赖任务信息与虚拟 化云中的物理主机信息;
[0053]步骤S103,根据依赖任务信息与物理主机信息创建虚拟机;
[0054]步骤S105,在创建好的虚拟机上以可靠性作为目标对实时、无优先权、非周期性的 依赖任务进行调度,并对虚拟机进行资源配置;
[0055]步骤S107,完成全部依赖任务并返回任务结果。
[0056]其中,根据依赖信息与物理主机信息创建虚拟机包括:使用主版本/副版本 (Primary/Backup,PB)模型为每个依赖任务创建一个主版本与一个副版本,同一个任务的 主版本与副版本重复进行相同的工作;根据依赖任务信息为每个任务的每个版本均指定一 个最早开始时间与一个最晚完成时间;根据依赖任务信息激活多个物理主机,并在每个被 激活的物理主机上划分出多个虚拟机,获取每个被激活的物理主机上的每个虚拟机信息;
[0057]依赖任务信息包括任务集合、任务间关系集合与任务截止期,任务集合记录了依 赖任务集合中每个任务的大小,任务间关系集合记录了依赖任务集合中任意两个任务之间 的相关关系,任务截止期为依赖任务的最晚可完成时间;物理主机信息包括物理主机集合, 物理主机集合记录了每个物理主机处理能力的大小;虚拟机信息包括每个被激活的物理主 机上的虚拟机集合,虚拟机集合记录了每个虚拟机所在的物理主机以及每个虚拟机处理能 力的大小。
[0058]并且,在创建好的虚拟机上以可靠性作为目标对实时、无优先权、非周期性的依赖 任务进行调度,并对虚拟机进行资源配置包括:根据依赖任务集合中的每个任务的每个版 本的最早开始时间与最晚完成时间、以及每个被激活的物理主机上的每个虚拟机信息,将 依赖任务集合中的每个任务的每个版本按照每个被激活的物理主机上的任务分布情况在 指定的时间段上加载到每个被激活的物理主机上的每个虚拟机中;在每个被激活的物理主 机上的每个虚拟机中按照指定的时间安排运行被加载的依赖任务组中的每个任务的每个 版本,并根据物理主机的负载情况与实时利用情况使用资源扩展机制与资源收缩机制调节 系统的资源利用率。
[0059]并且,将依赖任务集合中的每个任务的每个版本按照每个被激活的物理主机上的 任务分布情况在指定的时间段上加载到每个被激活的物理主机上的每个虚拟机中,先将依 赖任务集合中的每个任务的主版本在指定的时间段上加载到每个被激活的物理主机上的 每个虚拟机中,并使得依赖任务集合中的每个任务的主版本尽量均匀的分布在所有主机 上;再将依赖任务集合中的每个任务的副版本在指定的时间段上加载到每个被激活的物理 主机上的每个虚拟机中并使得依赖任务集合中的每个任务的副版本尽量集中分布到副版 本分布数量较多的主机上。
[0060] 并且,将依赖任务结合中的每个任务的主版本在指定的时间段上加载到每个被激 活的物理主机上的每个虚拟机中,并使得依赖任务集合中的每个任务的主版本尽量均匀的 分布在所有主机上,包括:
[0061] 选取一个待调度任务的主版本;
[0062] 将激活主机集合中的所有主机按已被调度主版本数量由小到大排序,分割为多个 主机组,并指定已被调度主版本数量最小的主机所在的主机组为候选主机组;
[0063] 在候选主机组中选取一个虚拟机,使得在该虚拟机上待调度任务的主版本能够在 截止期之前被完成,且待调度任务的主版本被完成的时间最早;
[0064] 若未找到前述虚拟机,则继续指定下一个主机组为候选主机组并选取符合前述条 件的虚拟机,直到符合前述条件的虚拟机被找到或所有候选主机组都被指定过;
[0065] 若所有候选主机组都被指定过但仍未能选取符合前述条件的虚拟机,则调用资源 扩展机制增加计算资源以完成待调度任务的主版本;
[0066] 若调用资源扩展机制增加计算资源后仍不能完成待调度任务的主版本,则将待调 度任务的主版本调度到待调度任务的主版本被完成的时间最早的虚拟机上,并返回待调度 任务的主版本不能在截止期之前完成的提示信息。
[0067]并且,将依赖任务集合中的每个任务的副版本在指定的时间段上加载到每个被激 活的物理主机上的每个虚拟机中并使得依赖任务集合中的每个任务的副版本尽量集中分 布到副版本分布数量较多的主机上,包括:
[0068]选取一个待调度任务的副版本;
[0069] 将激活主机集合中的所有主机按已被调度副版本数量由大到小排序,分割为多个 主机组,并指定已被调度副版本数量最小的主机所在的主机组为候选主机组;
[0070] 在候选主机组中选取一个虚拟机,使得在该虚拟机上待调度任务的副版本能够在 截止期之前被完成,且待调度任务的副版本被完成的时间最早;
[0071] 若未找到前述虚拟机,则继续指定下一个主机组为候选主机组并选取符合前述条 件的虚拟机,直到符合前述条件的虚拟机被找到或所有候选主机组都被指定过;
[0072] 若所有候选主机组都被指定过但仍未能选取符合前述条件的虚拟机,则调用资源 扩展机制增加计算资源以完成待调度任务的副版本;
[0073] 若调用资源扩展机制增加计算资源后仍不能完成待调度任务的副版本,则将待调 度任务的副版本调度到待调度任务的副版本被完成的时间最早的虚拟机上,并返回待调度 任务的副版本不能在截止期之前完成的提示信息。
[0074] 另外,根据计算物理主机的负载情况与实时利用情况使用资源扩展机制与资源收 缩机制调节系统的资源利用率。资源扩展机制包括水平扩展与垂直扩展,资源收缩机制包 括水平收缩与垂直收缩;其中,水平扩展为通过创建新的虚拟机增加计算资源规模,垂直扩 展为将主机的未启用处理能力分配到该主机的虚拟机上;水平收缩为通过关闭虚拟机降低 计算资源规模,垂直收缩为降低虚拟机的处理能力。
[0075] 并且,资源扩展机制按以下方式运行:
[0076] 将所有活动主机根据剩余处理能力由大到小排序,并依次指定每个主机;
[0077]分别访问主机上的每个虚拟机,获得待分配任务在每个虚拟机上的最早开始时 间,并根据待分配任务在每个虚拟机上的最早开始时间计算为完成待分配任务每个虚拟机 分别需要的处理能力;
[0078]根据指定主机的未启用处理能力大小判断将未启用处理能力分配到虚拟机能否 是虚拟机的处理能力足够完成待分配任务,若能则使用垂直扩展将未启用处理能力分配到 一个可用的虚拟机上并将待分配任务分配到该虚拟机上;
[0079] 依次指定每台活动主机直到该任务被成功分配或所有活动主机都被指定过,若所 有活动主机都被指定过但该任务仍未被成功分配,则使用水平扩展创建一台新的虚拟机并 将待分配任务分配到该虚拟机上;
[0080] 若使用水平扩展无法创建新的虚拟机,则返回任务分配失败信息。
[0081 ]同时,资源收缩机制按以下方式运行:
[0082] 指定休眠阈值、关闭阈值、第一空闲时长阈值与第二空闲时长阈值;
[0083] 当有任务的主版本或副版本被调度到虚拟机上时,或当虚拟机上有副版本因为主 版本失效而需要执行时,根据第一空闲时长阈值、第二空闲时长阈值与任务长度(大小),更 新休眠阈值与关闭阈值;
[0084] 当虚拟机连续空闲的时常超过休眠阈值时,将虚拟机的处理能力压缩到最小;
[0085] 当虚拟机连续空闲的时常超过关闭阈值时,关闭该虚拟机并将占用的处理能力返 还主机;
[0086] 当虚拟机被关闭且所在主机的负载情况与实时利用情况处于较低水平时,关闭该 主机并将主机上剩余虚拟机迀移到其他主机上。
[0087] 并且,当有任务的主版本或副版本被调度到虚拟机上时,或当虚拟机上有副版本 因为主版本失效而需要执行时,根据第一空闲时长阈值、第二空闲时长阈值与任务长度,更 新休眠阈值与关闭阈值包括:
[0088] 当有任务的主版本或副版本被调度到虚拟机上时,休眠阈值更新为第一空闲时长 阈值与任务的主版本长度之和、与旧休眠阈值两者中的较大值,关闭阈值更新为第二空闲 时长阈值与任务的主版本长度之和、与旧关闭阈值两者中的较大值;
[0089] 当虚拟机上有副版本因为主版本失效而需要执行时,休眠阈值更新为第一空闲时 长阈值与任务的副版本长度之和、与旧休眠阈值两者中的较大值,关闭阈值更新为第二空 闲时长阈值与任务的副版本长度之和、与旧关闭阈值两者中的较大值。
[0090] 下面根据具体实施例进一步阐述本发明的技术特征。
[0091 ]我们考虑一个虚拟云,它包含一个实体计算主机集合H= {hi,h2,…}。活动主机集 合由有n个元素的1表示,。对任一主机hk,它的处理能力pk由它的CPU性能MIPS描 述。对于每个主机hkGH,它包含一个虚拟机集合Vk= {vik, V2k,…卩丨,每个虚拟机VjkG Vk 满足eVjk的准备时间由rjk表示。
[0092]另外,无论任务是什么类型,一些任务属性都可以被建模表示成通用形式。比如, 不管任务类型是什么,每个任务都有一个到达时间。因此,我们得到如下主要通用任务模 型。
[0093] 我们考虑一个任务集合1={^1,〖2,一}。对任一任务〖1,它可以表示成〖 1={&1,81, di,pi},其中ai、si、di和pi分别为到达时间、任务大小、截止时间和任务ti的优先权。如果ti是 个非实时性任务,di被设定为,当对ti没有优先权时,pi被设定为0。令Sijk为任务ti在虚 拟机W上的开始时间。类似地,f^k表示任务^在^上的结束时间。令e ljk为任务^在虚拟机 Vjk上的执行时间。此外,Xljk被用来表示虚拟云中虚拟机上的任务映射,若任务^被分配到 主机hk上的虚拟机Vjk上,则Xijk= 1,否则为xijk = 0。另外,Zijk用来表示任务ti是否被成功完 成,右ti成功兀[成,则Zijk = 1,否则Zijk = 0。
[0094] 对于以可靠性作为目标、对实时、无优先权、非周期性的依赖任务进行任务调度与 资源配置的特殊任务模型,一个依赖任务集合可以被建模表述为G={T,E},与在通用任务 模型中一样,T= {ti,t2~}。有向边E表示任务中的依赖关系。eij= (ti,tj)指任务tj相依赖 于任务t运行所产生的结果。任务^是。的直接前驱,任务的直接后继。对于一个给定 任务^,我们分别使用P(t〇和S(t〇来表示它的直接前驱集合和直接后继集合,如果t没有 前驱,那么.P(〇二0,如果乜没有后继,那么二表示任务乜所被分配的主机。
[0095] 由于可靠性是本例中的调度目标,我们采用主版本/副版本(Primary/Backup,简 称TO)模型以保证系统的可靠性,这用于处理主机在一瞬间故障的情况。依据PB模型,每个 任务^拥有备份副版本如果在h,即主版本被完成之前,其被分配到的主机发生了故 障,其副版本/f将被执行。由于这两台主机同时发生故障的几率很小,则我们假设副版本可 以成功完成。所有带有上标B的变量或参数与?f相关。
[0096] 副版本可以有两个执行模式,即被动模式和主动模式。我们使用外/f)来表示它 的执行模式,其可以被下列式子确定:
[0098]其中,fi是ti的期望完成时间。
[0099]因此,if的实际执行时间为:
[0101]副版本的总实际执行时间应尽量减少,以节省更多的时间槽。因此,有如下目标。
(i)
[0103]由于本例中考虑依赖任务,我们使用表示< 和<之间的边,其中<和if可以 是主版本也可以是副版本。对于每条边ef,有一个依赖的数据传送时间。如果两个依 赖任务和;^在相同的主机上,则=0。此外,任务扒和心之间的传输数据量表示为 dvlJ。令表示/?(//')和/?(<)之间的传输速度。如果/0,我们有:
[0105] 任务r[的实际开始时间是任务被调度执行时的时间。如果存在可容纳 < 的时间 槽,任务 < 能被放在以< 和///f之间。我们的调度算法的一个目标就是找到适当的任务开始 时间来处理尽可能多的任务,同时保证容错,提高系统可靠性。
[0106] 此外,系统的可靠性可以由下列式子的可靠性成本进行定量测量:
[0108]因此,通过使用PB模式,执行主版本和副版本的总可靠性可以被计算为:
[0110]我们用RAS算法描述主版本的调度方法,伪代码如下所示:
[0112] 选择主版本较少的前a%的主机作为候选主机(见第1行)。然后,选择主版本完成 时间最早的虚拟机(见4-11行)。如果候选主机上没有虚拟机可以在其截止期前完成,再在 剩余主机中选择主版本较少的前a%的主机作为候选主机,以备下一轮搜索(见12-15行)。 通过这种方法,主版本能被均匀分布。如果不存在可以容纳主版本的虚拟机,调用函数 scaleUpResources()(见第 17行)。
[0113] 值得注意的是,副版本不能被分配到其主版本被分配到的主机上。
[0114]由于云的独特的特征一一可伸缩性,资源应该是根据系统负载动态地被提供。因 此,设计了80&16如1^80111'068()和80&16〇0¥111^80111'068()这两个函数。
[0116] 函数80&161^1^80111'〇68()选择可容纳¥」的主机中能力最小的主机(见3-5行)。如 果没有这样的主机,迀移虚拟机(见7-11行)。在此之后,检查虚拟机是否可以被添加到原 虚拟机已被迀出的主机上。如果可以,^将被创建并检查在W上任务是否可以在其截止时间 之前完成(见12-15行)。如果没有可行的迀移或任务不能在截止期内成功完成,那么启动一 个主机h n,并在其上创建虚拟机V#。然后,检查任务是否可以在V#上成功完成(见16-20行)。
[0118] 在scaleDownResources()中,如果存在任何虚拟机的空闲时间比预定阈值大,那 么删除该虚拟机(见2-4行)。如果没有在主机上运行的虚拟机,它会关闭该主机(见5-7行)。 如果在SH集合中的一台主机上运行的所有虚拟机可以添加到一个或多个在DH结合中的主 机上运行,将这些虚拟机移到目标主机,然后关闭迀移后的主机。然而,在一个主机上如果 有一个或几个虚拟机无法迀移,那么放弃对此主机上所有虚拟机的迀移(见10-21行)。 [0119]综上所述,借助于本发明的上述技术方案,通过建立虚拟化云中实时容错模型代 替传统的PB模型,在云计算环境下进行任务调度与资源配置,提高依赖任务调度与资源配 置的可靠性。
[0120]所属领域的普通技术人员应当理解:以上所述仅为本发明的具体实施例而已,并 不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均 应包含在本发明的保护范围之内。
【主权项】
1. 一种高可靠性的依赖任务调度与资源配置方法,其特征在于,包括: 从任务调度与资源配置通用框架中获取已到达的依赖任务信息与虚拟化云中的物理 主机信息; 根据所述依赖任务信息与物理主机信息创建虚拟机; 在创建好的所述虚拟机上以可靠性作为目标对实时、无优先权、非周期性的依赖任务 进行调度,并对所述虚拟机进行资源配置; 完成全部依赖任务并返回任务结果。2. 根据权利要求1所述的一种高可靠性的依赖任务调度与资源配置方法,其特征在于, 根据所述依赖信息与物理主机信息创建虚拟机包括:使用主版本/副版本模型为每个依赖 任务创建一个主版本与一个副版本,同一个任务的所述主版本与所述副版本重复进行相同 的工作;根据所述依赖任务信息为每个任务的每个版本均指定一个最早开始时间与一个最 晚完成时间;根据所述依赖任务信息激活多个物理主机,并在每个被激活的所述物理主机 上划分出多个虚拟机,获取每个被激活的所述物理主机上的每个所述虚拟机信息; 所述依赖任务信息包括任务集合、任务间关系集合与任务截止期,所述任务集合记录 了所述依赖任务集合中每个任务的大小,所述任务间关系集合记录了所述依赖任务集合中 任意两个任务之间的依赖关系,所述任务截止期为所述依赖任务组的最晚可完成时间;所 述物理主机信息包括物理主机集合,所述物理主机集合记录了每个所述物理主机处理能力 的大小;所述虚拟机信息包括每个被激活的所述物理主机上的虚拟机集合,所述虚拟机集 合记录了每个所述虚拟机所在的物理主机以及每个所述虚拟机处理能力的大小。3. 根据权利要求2所述的一种高可靠性的依赖任务调度与资源配置方法,其特征在于, 在创建好的所述虚拟机上以可靠性作为目标对实时、无优先权、非周期性的依赖任务进行 调度,并对所述虚拟机进行资源配置包括:根据依赖任务集合中的每个任务的每个版本的 最早开始时间与最晚完成时间、以及每个被激活的所述物理主机上的每个所述虚拟机信 息,将所述依赖任务集合中的每个任务的每个版本按照每个被激活的所述物理主机上的任 务分布情况在指定的时间段上加载到每个被激活的所述物理主机上的每个所述虚拟机中; 在每个被激活的所述物理主机上的每个所述虚拟机中按照指定的时间安排运行被加载的 所述依赖任务组中的每个任务的每个版本,并根据物理主机的负载情况与实时利用情况使 用资源扩展机制与资源收缩机制调节系统的资源利用率。4. 根据权利要求3所述的一种高可靠性的依赖任务调度与资源配置方法,其特征在于, 将所述依赖任务集合中的每个任务的每个版本按照每个被激活的所述物理主机上的任务 分布情况在指定的时间段上加载到每个被激活的所述物理主机上的每个所述虚拟机中为: 先将所述依赖任务集合中的每个任务的主版本在指定的时间段上加载到每个被激活的所 述物理主机上的每个所述虚拟机中,并使得所述依赖任务集合中的每个任务的主版本尽量 均匀的分布在所有主机上;再将所述依赖任务集合中的每个任务的副版本在指定的时间段 上加载到每个被激活的所述物理主机上的每个所述虚拟机中并使得所述依赖任务集合中 的每个任务的副版本尽量集中分布到副版本分布数量较多的主机上。5. 根据权利要求4所述的一种高可靠性的依赖任务调度与资源配置方法,其特征在于, 将所述依赖任务结合中的每个任务的主版本在指定的时间段上加载到每个被激活的所述 物理主机上的每个所述虚拟机中,并使得所述依赖任务集合中的每个任务的主版本尽量均 匀的分布在所有主机上,包括: 选取一个待调度任务的主版本; 将激活主机集合中的所有主机按已被调度主版本数量由小到大排序,分割为多个主机 组,并指定已被调度主版本数量最小的主机所在的主机组为候选主机组; 在所述候选主机组中选取一个虚拟机,使得在该虚拟机上所述待调度任务的主版本能 够在截止期之前被完成,且所述待调度任务的主版本被完成的时间最早; 若未找到前述虚拟机,则继续指定下一个主机组为候选主机组并选取符合前述条件的 虚拟机,直到符合前述条件的虚拟机被找到或所有候选主机组都被指定过; 若所有候选主机组都被指定过但仍未能选取符合前述条件的虚拟机,则调用资源扩展 机制增加计算资源以完成待调度任务的主版本; 若调用资源扩展机制增加计算资源后仍不能完成待调度任务的主版本,则将所述待调 度任务的主版本调度到所述待调度任务的主版本被完成的时间最早的虚拟机上,并返回待 调度任务的主版本不能在截止期之前完成的提示信息。6. 根据权利要求5所述的一种高可靠性的依赖任务调度与资源配置方法,其特征在于, 将所述依赖任务集合中的每个任务的副版本在指定的时间段上加载到每个被激活的所述 物理主机上的每个虚拟机中并使得所述依赖任务集合中的每个任务的副版本尽量集中分 布到副版本分布数量较多的主机上,包括: 选取一个待调度任务的副版本; 将激活主机集合中的所有主机按已被调度副版本数量由大到小排序,分割为多个主机 组,并指定已被调度副版本数量最小的主机所在的主机组为候选主机组; 在所述候选主机组中选取一个虚拟机,使得在该虚拟机上所述待调度任务的副版本能 够在截止期之前被完成,且所述待调度任务的副版本被完成的时间最早; 若未找到前述虚拟机,则继续指定下一个主机组为候选主机组并选取符合前述条件的 虚拟机,直到符合前述条件的虚拟机被找到或所有候选主机组都被指定过; 若所有候选主机组都被指定过但仍未能选取符合前述条件的虚拟机,则调用资源扩展 机制增加计算资源以完成待调度任务的副版本; 若调用资源扩展机制增加计算资源后仍不能完成待调度任务的副版本,则将所述待调 度任务的副版本调度到所述待调度任务的副版本被完成的时间最早的虚拟机上,并返回待 调度任务的副版本不能在截止期之前完成的提示信息。7. 根据权利要求3所述的一种高可靠性的依赖任务调度与资源配置方法,其特征在于, 根据计算物理主机的负载情况与实时利用情况使用资源扩展机制与资源收缩机制调节系 统的资源利用率。所述资源扩展机制包括水平扩展与垂直扩展,所述资源收缩机制包括水 平收缩与垂直收缩;其中,所述水平扩展为通过创建新的虚拟机增加计算资源规模,所述垂 直扩展为将主机的未启用处理能力分配到该主机的虚拟机上;所述水平收缩为通过关闭虚 拟机降低计算资源规模,所述垂直收缩为降低虚拟机的处理能力。8. 根据权利要求7所述的一种高可靠性的依赖任务调度与资源配置方法,其特征在于, 所述资源扩展机制按以下方式运行: 将所有活动主机根据剩余处理能力由大到小排序,并依次指定每个主机; 分别访问主机上的每个虚拟机,获得待分配任务在每个虚拟机上的最早开始时间,并 根据待分配任务在每个虚拟机上的最早开始时间计算为完成待分配任务每个虚拟机分别 需要的处理能力; 根据指定主机的未启用处理能力大小判断将未启用处理能力分配到虚拟机能否是虚 拟机的处理能力足够完成待分配任务,若能则使用垂直扩展将未启用处理能力分配到一个 可用的虚拟机上并将待分配任务分配到该虚拟机上; 依次指定每台活动主机直到该任务被成功分配或所有活动主机都被指定过,若所有活 动主机都被指定过但该任务仍未被成功分配,则使用水平扩展创建一台新的虚拟机并将待 分配任务分配到该虚拟机上; 若使用水平扩展无法创建新的虚拟机,则返回任务分配失败信息。9. 根据权利要求7所述的一种高可靠性的依赖任务调度与资源配置方法,其特征在于, 所述资源收缩机制按以下方式运行: 指定休眠阈值、关闭阈值、第一空闲时长阈值与第二空闲时长阈值; 当有任务的主版本或副版本被调度到虚拟机上时,或当虚拟机上有副版本因为主版本 失效而需要执行时,根据第一空闲时长阈值、第二空闲时长阈值与任务长度大小,更新休眠 阈值与关闭阈值; 当虚拟机连续空闲的时常超过休眠阈值时,将虚拟机的处理能力压缩到最小; 当虚拟机连续空闲的时常超过关闭阈值时,关闭该虚拟机并将占用的处理能力返还主 机; 当虚拟机被关闭且所在主机的负载情况与实时利用情况处于较低水平时,关闭该主机 并将主机上剩余虚拟机迀移到其他主机上。10. 根据权利要求9所述的一种高可靠性的依赖任务调度与资源配置方法,其特征在 于,当有任务的主版本或副版本被调度到虚拟机上时,或当虚拟机上有副版本因为主版本 失效而需要执行时,根据第一空闲时长阈值、第二空闲时长阈值与任务长度大小,更新休眠 阈值与关闭阈值包括: 当有任务的主版本或副版本被调度到虚拟机上时,所述休眠阈值更新为第一空闲时长 阈值与任务的主版本长度之和、与旧休眠阈值两者中的较大值,所述关闭阈值更新为第二 空闲时长阈值与任务的主版本长度之和、与旧关闭阈值两者中的较大值; 当虚拟机上有副版本因为主版本失效而需要执行时,所述休眠阈值更新为第一空闲时 长阈值与任务的副版本长度之和、与旧休眠阈值两者中的较大值,所述关闭阈值更新为第 二空闲时长阈值与任务的副版本长度之和、与旧关闭阈值两者中的较大值。
【文档编号】G06F9/48GK105912383SQ201610294285
【公开日】2016年8月31日
【申请日】2016年5月5日
【发明人】朱晓敏, 包卫东, 周文, 刘桂鹏, 纪浩然, 肖文华, 陈黄科, 王吉, 陈超, 邵屹杨
【申请人】中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1