一种低能耗的云数据中心工作流调度与资源供给方法与流程

文档序号:11250688阅读:540来源:国知局
一种低能耗的云数据中心工作流调度与资源供给方法与流程

本发明涉及虚拟化云计算领域,特别地,涉及一种低能耗的云数据中心工作流调度与资源供给方法。



背景技术:

如今,社会计算、天文学、生物信息学与计算生物学等许多领域面临爆炸式增长的数据,如何对快速增长的数据进行实时处理和分析已经成为巨大的挑战。同时,科学界越来越迫切需要能够提供可扩展的、低成本的资源或服务的新计算平台。随着效用计算和虚拟化技术的发展,出现一种新的资源供应模式——云计算。用户能够以“即用即付费”的方式获取无限的计算资源,且能避免搭建、维护和更新基础设施的成本。当今的云计算模式已经能够很好地满足科学界的主要需求,并成为解决大规模和复杂计算问题的有力平台。

为了满足日益增长的云计算服务需求,云数据中心的主机数量急剧增加,云数据中心大量主机的正常运行需要消耗大量能量。据报道,从2005到2010年,全世界数据中心所消耗的电能已上升了56%,约占2010年全球电能的1.5%;而且,如果按照目前的发展趋势,预计到2020年该比例将翻一翻。对于云计算供应商,高能耗意味着巨大的能源成本,能源开销约占数据中心总支出的42%左右。另外,高能耗对环境造成负面影响,因为使用化石燃料来发电将产生大量的污染气体。因此,高能耗成本和环境问题已经迫使云计算供应商提高他们的能源效率和进行可持续经营。

目前,云数据中心的计算资源的利用率较低,平均值大概在10-15%之间。该现象可归结于一下三个原因:

①云数据中心处理的大部分应用由大量相互依赖的任务组成,并且这些应用是数据和计算密集型。这类应用通常可建模为工作流,比如montage,cybershake,epigenomics和sipht应用。工作流任务的运行必须等待其前驱任务的数据,因此在一些计算资源上留下空闲间隙。

②当前主机的性能非常强大,单个任务几乎不可能充分利用一台主机所有资源。有统计数据表明,主机运行不同工作流任务时,他们的资源利用率差异较大,分布在5%到95%之间。如果不考虑他们的资源利用率就将这些任务直接放在主机上运行,云数据中心会浪费大量资源。

③云数据中心的工作流应用是由大量远端的用户动态提交的,这会造成数据中心负载的剧烈波动。为了满足数据中心负载峰值,数据中心的资源需要按照峰值需求来配置(即提供的资源略大于其负载峰值的需求)。然而,对于许多云数据中心,它们的负载峰值是平均负载的2到10倍。因此,在非负载高峰时间,云数据中心将出现计算资源过度供给的情况。

针对现有技术中云数据中心的资源利用率低导致能耗浪费过高的问题,目前尚未有有效的解决方案。



技术实现要素:

有鉴于此,本发明的目的在于提出一种低能耗的云数据中心工作流调度与资源供给方法,能够提高云数据中心的资源利用率,降低云数据中心的工作能耗。

基于上述目的,本发明提供的技术方案如下:

根据本发明的一个方面,提供了一种低能耗的云数据中心工作流调度与资源供给方法,包括:

获虚拟化云中的主机信息、虚拟机信息与工作流信息;

持续获取新到达的工作流信息,并在虚拟机上以总能耗和资源利用率作为调度目标对工作流中任务进行调度;

完成全部任务并返回任务结果。

其中,主机信息包括每台物理主机的内存、硬盘容量、网络带宽、最大能耗功率、离散电压-频率对集合与运行的虚拟机集合;虚拟机信息包括每台虚拟机对主机的频率、内存与硬盘容量需求;工作流信息包括该工作流的到达时间、截止时间、结构,以及工作流中每个任务的cpu频率需求与计算时间,其中,结构为表明该工作流中所有任务之间依赖关系的有向无环图。

并且,持续获取新到达的工作流信息,并在虚拟机上以总能耗和资源利用率作为调度目标对工作流中任务进行调度包括:

移除任务池中所有等待任务与虚拟机的映射关系、与所有尚未执行的资源调整计划;

检查云计算系统的工作状态信息,并更新每个虚拟机的就绪时间;

获取新到达的工作流信息,根据工作流的结构为工作流中的每个任务指定优先级,并将工作流中的所有任务作为等待任务添加到任务池中;

将任务池中的每个等待任务与虚拟机分别建立映射关系,并生成资源调整计划;

将任务池中的每个等待任务按照其与虚拟机的映射关系分配到对应的虚拟机上,并执行资源调整计划。

并且,每个工作流的所有任务的完成时间的最大值不应超过工作流的截止时间;每台物理主机提供给虚拟机的频率之和、内存之和或硬盘容量之和不应超过该物理主机的频率、内存或硬盘容量;对于依赖任务,后驱任务的开始时间不应早于前驱任务的完成时间与前驱任务所在虚拟机和后驱任务所在虚拟机之间的数据传输时间之和。

同时,根据虚拟机信息与工作流信息,以工作流总能量消耗最小化与虚拟机资源利用率最大化为优化目标,将任务池中的任务与虚拟机建立映射关系。

同时,根据工作流的结构为工作流中的每个任务指定优先级,并将工作流中的所有任务作为等待任务添加到任务池中包括:

根据工作流的结构确定依赖任务间的依赖关系;

根据依赖任务间的依赖关系为工作流中的每个任务指定优先级;

根据优先级与工作流信息将工作流中每个任务作为等待任务添加到任务池中。

并且,将任务池中的每个等待任务与虚拟机分别建立映射关系,并生成资源调整计划包括:

根据优先级与工作流信息计算任务池中每个任务的最晚开始时间;

将任务池中每个任务按照其最晚开始时间由小到大进行排序;

按照排序顺序依次指定每个就绪任务,其中,就绪任务为不存在前驱任务的任务,或其所有前驱任务都已经被映射到虚拟机且至少一个前驱任务已经被完成的任务;

遍历所有可用的虚拟机,将频率能够满足被指定任务的虚拟机设置为候选虚拟机;

当存在一台候选虚拟机时,将被指定任务与该候选虚拟机建立映射关系;

当存在多台候选虚拟机时,将被指定任务与多台候选虚拟机中能保证被指定任务在其最晚完成时间之前完成且虚拟机资源浪费最少的候选虚拟机建立映射关系;

当不存在任何候选虚拟机时,为被指定任务增加一台虚拟机并将被指定任务与该新建虚拟机建立映射关系。

并且,当不存在任何候选虚拟机时,为被指定任务增加一台虚拟机包括:

遍历所有在工作中的物理主机,判断是否存在一台未使用计算资源能满足被指定任务的物理主机,是则在物理主机上增加一台虚拟机,否则启用一台计算资源能满足被指定任务的关闭的物理主机并在物理主机上增加一台虚拟机。

另外,生成资源调整计划还包括:

将所有工作中的物理主机按照其频率能量比由小到大进行排序,并按照排序顺序依次指定每个物理主机;

判断被指定物理主机上的所有虚拟机都能被迁移至其他物理主机,是则将被指定物理主机上的所有虚拟机都迁移至其他物理主机并关闭该物理主机,否则不执行任何虚拟机迁移。

并且,生成资源调整计划还包括对所有工作中的物理主机上的虚拟机进行迁移,使得所有工作中的物理主机的性能要求与主机频率的平方的积趋于均衡。

从上面所述可以看出,本发明提供的技术方案通过使用以新到达的工作流信息为触发条件在虚拟机上以总能耗和资源利用率作为调度目标对工作流中的非周期性动态任务进行调度的技术手段,提高了云数据中心的资源利用率,降低了云数据中心的工作能耗。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为根据本发明实施例的一种低能耗的云数据中心工作流调度与资源供给方法的流程图;

图2为根据本发明实施例的一种低能耗的云数据中心工作流调度与资源供给方法中,虚拟机资源的浪费的时隙示意图;

图3(a)为根据本发明实施例的一种低能耗的云数据中心工作流调度与资源供给方法中,cybershake的工作流程应用的结构图;

图3(b)为根据本发明实施例的一种低能耗的云数据中心工作流调度与资源供给方法中,ligo的工作流程应用的结构图;

图3(c)为根据本发明实施例的一种低能耗的云数据中心工作流调度与资源供给方法中,montage的工作流程应用的结构图;

图3(d)为根据本发明实施例的一种低能耗的云数据中心工作流调度与资源供给方法中,sipht的工作流程应用的结构图;

图4(a)为根据本发明实施例的一种低能耗的云数据中心工作流调度与资源供给方法中,多种算法的能量消耗-ccr直方比较图;

图4(b)为根据本发明实施例的一种低能耗的云数据中心工作流调度与资源供给方法中,多种算法的资源利用率-ccr直方比较图;

图4(c)为根据本发明实施例的一种低能耗的云数据中心工作流调度与资源供给方法中,多种算法的主机数量-时间直方比较图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进一步进行清楚、完整、详细地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。

根据本发明的实施例,提供了一种低能耗的云数据中心工作流调度与资源供给方法。

如图1所示,根据本发明实施例的提供的一种低能耗的云数据中心工作流调度与资源供给方法包括:

步骤s101,获虚拟化云中的主机信息、虚拟机信息与工作流信息;

步骤s103,持续获取新到达的工作流信息,并在虚拟机上以总能耗和资源利用率作为调度目标对工作流中的非周期性动态任务进行调度;

步骤s105,完成全部任务并返回任务结果。

其中,主机信息包括每台物理主机的内存、硬盘容量、网络带宽、最大能耗功率、离散电压-频率对集合与运行的虚拟机集合;虚拟机信息包括每台虚拟机对主机的频率、内存与硬盘容量需求;工作流信息包括该工作流的到达时间、截止时间、结构,以及工作流中每个任务的频率需求与计算时间,其中,结构为表明该工作流中所有任务之间依赖关系的有向无环图。

并且,持续获取新到达的工作流信息,并在虚拟机上以总能耗和资源利用率作为调度目标对工作流中的非周期性动态任务进行调度包括:

移除任务池中所有等待任务与虚拟机的映射关系、与所有尚未执行的资源调整计划;

检查云计算系统的工作状态信息,并更新每个虚拟机的就绪时间;

获取新到达的工作流信息,根据工作流的结构为工作流中的每个任务指定优先级,并将工作流中的所有任务作为等待任务添加到任务池中;

将任务池中的每个等待任务与虚拟机分别建立映射关系,并生成资源调整计划;

将任务池中的每个等待任务按照其与虚拟机的映射关系分配到对应的虚拟机上,并执行资源调整计划。

并且,每个工作流的所有任务的完成时间的最大值不应超过工作流的截止时间;每台物理主机提供给虚拟机的频率之和、内存之和或硬盘容量之和不应超过该物理主机的频率、内存或硬盘容量;对于依赖任务,后驱任务的开始时间不应早于前驱任务的完成时间与前驱任务所在虚拟机和后驱任务所在虚拟机之间的数据传输时间之和。

同时,根据虚拟机信息与工作流信息,以工作流总能量消耗最小化与虚拟机资源利用率最大化为优化目标,将任务池中的任务与虚拟机建立映射关系。

同时,根据工作流的结构为工作流中的每个任务指定优先级,并将工作流中的所有任务作为等待任务添加到任务池中包括:

根据工作流的结构确定依赖任务间的依赖关系;

根据依赖任务间的依赖关系为工作流中的每个任务指定优先级;

根据优先级与工作流信息将工作流中每个任务作为等待任务添加到任务池中。

并且,将任务池中的每个等待任务与虚拟机分别建立映射关系,并生成资源调整计划包括:

根据优先级与工作流信息计算任务池中每个任务的最晚开始时间;

将任务池中每个任务按照其最晚开始时间由小到大进行排序;

按照排序顺序依次指定每个就绪任务,其中,就绪任务为不存在前驱任务的任务,或其所有前驱任务都已经被映射到虚拟机且至少一个前驱任务已经被完成的任务;

遍历所有可用的虚拟机,将频率能够满足被指定任务的虚拟机设置为候选虚拟机;

当存在一台候选虚拟机时,将被指定任务与该候选虚拟机建立映射关系;

当存在多台候选虚拟机时,将被指定任务与多台候选虚拟机中能保证被指定任务在其最晚完成时间之前完成且虚拟机资源浪费最少的候选虚拟机建立映射关系;

当不存在任何候选虚拟机时,为被指定任务增加一台虚拟机并将被指定任务与该新建虚拟机建立映射关系。

并且,当不存在任何候选虚拟机时,为被指定任务增加一台虚拟机包括:

遍历所有在工作中的物理主机,判断是否存在一台未使用计算资源能满足被指定任务的物理主机,是则在物理主机上增加一台虚拟机,否则启用一台计算资源能满足被指定任务的关闭的物理主机并在物理主机上增加一台虚拟机。

另外,生成资源调整计划还包括:

将所有工作中的物理主机按照其频率能量比由小到大进行排序,并按照排序顺序依次指定每个物理主机;

判断被指定物理主机上的所有虚拟机都能被迁移至其他物理主机,是则将被指定物理主机上的所有虚拟机都迁移至其他物理主机并关闭该物理主机,否则不执行任何虚拟机迁移。

并且,生成资源调整计划还包括对所有工作中的物理主机上的虚拟机进行迁移,使得所有工作中的物理主机的性能要求与主机频率的平方的积趋于均衡。

下面根据具体实施例进一步阐述本发明的技术方案。

现有技术中主要的缺点是:没有考虑单个工作流任务很难充分利用主机的资源,就直接将工作流任务分配到主机上。在本发明实施例中根据工作流任务调度和根据系统的负载伸缩计算资源时,考虑了任务对主机资源的利用率,这就达到了提高云数据中心的资源利用率和能源效率的效果。

本发明实施例关注非周期的、动态的工作流,表示为w={w1,w2,…,wm}。对于某些工作流应用,可以建模为wi={ai,di,gi},其中ai,di和gi分别表示工作流wi的到达时间、截止期和结构。工作流的结构gi可以进一步表示为有向无环图(dag)gi=(ti,ei),其中是一个顶点集合,顶点表示工作流wi中的第j个任务。表示任务间的有向边集合。如果任务和任务之间存在数据依赖,那么有向边就存在;是任务的直接前驱,而是任务的直接后继。符号表示任务所有直接前驱组成的集合,符号表示任务所有直接后继组成的集合。如果一个任务没有任何前驱任务(即),或其所有前驱任务都已经被映射到虚拟机,我们就称一个任务是就绪任务。

云计算数据中心内的物理主机通常是异构的,因此同一个任务在不同主机上执行时,不同主机的资源利用率会有很大的差别。与cpu的资源利用率相比,cpu的频率(hz)能更好地反映任务的资源需求。因此,与任务相关的参数分别表示任务的cpu频率需求和计算时间。

另外,边的权重表示任务传输给任务的数据量。两个任务之间的数据传输时间可以根据数据量大小和云数据中心内部网络带计算。本发明实施例假设所有机器间的通信都没有拥堵,并且在相同计算资源上的两个任务之间的通信开销可以忽略不计。

同时,在本发明实施例中,目标系统被认为是一个大规模的虚拟化云数据中心,由n台物理主机组成,即h={h1,h2,…,hn}。每台主机可描述为其中,mk、sk、nk和是主机的内存、硬盘容量、网络带宽和最大能耗功率;是主机hk的离散电压-频率对集合;主机hk上的虚拟机集合表示为vmk={vmkl,l=0,1,…,|vmk|},其中vmkl是主机hk上的第l台虚拟机。一台虚拟机可进一步描述为vmkl={fkl,mkl,skl},其中fkl、mkl和skl分别表示虚拟对主机cpu频率、内存和存储资源的需求。多台虚拟机在一台主机上可以动态地启动和停止。另外,虚拟机还可以从一台主机在线迁移到另一台主机。

本发明实施例设计了一个新的调度架构,在虚拟化的云数据中心运行工作流应用。类似于传统的多处理器系统,云数据中心的调度架构由三层组成:应用层、调度层和资源层。然而,这两者之间的最大区别在于:云数据中心的资源层可以进一步分为两层:主机层和虚拟机层。此外,虚拟机层可用的虚拟机数量可以根据云数据中心的负载动态伸缩。

调度层包括任务池(taskpool,简称为tp)、调度分析器、任务控制器、以及资源控制器。tp容纳所有的等待任务;调度分析器负责将tp中的任务映射到虚拟机上,并生成资源伸缩计划,该计划包括什么时候哪些虚拟机需要添加或删除;基于该方案,资源控制器将动态调整系统中的计算资源;当虚拟机完成正在处理任务后,任务控制器将根据任务与虚拟机的映射,将tp中等待的任务分配到虚拟机上。当新工作流到达后,一个新的调度过程将被触发,对tp中所有等待任务和新工作流程中的任务进行重新调度。当一个新工作流程到达时,调度过程的步骤如下。

第一步,删除tp中等待任务与虚拟机的映射关系、与没有执行的资源调整计划。调度器检查系统的状态信息,如运行任务的剩余执行时间,活动主机,虚拟机的部署等,并更新每个虚拟机的就绪时间。

第二步,调度器将为新工作流中的每个任务指定优先级,并将新工作流程中的所有任务添加到tp中。

第三步,调度分析器将确定tp中每个等待任务与vm的映射,和调整资源的供给(包括主机和虚拟机)。

第四步,到映射的虚拟机就绪执行tp中等待任务时,任务分配器动态移动任务到相应的虚拟机上。另外,资源控制器将按照计划动态添加新的虚拟机和删除空闲的虚拟机。

主机cpu的能量功率的可以分为空闲功率和活动功率。空闲功率是指cpu在一个完全空闲状态时的功率消耗,活动功率与电源电压的平方和工作频率成正比。对于主机的主机,其活动功耗可以表示为:

假设sk为主机静态功耗的比例,为主机的最大功耗。主机的功耗可表示为:

其中,表示主机hk在时刻t的状态。如果主机处于活跃状态,则否则

假设执行任务集合t的开始时刻和结束时刻分别是st和et,主机hk的总能耗teck可以表示为:

处理完工作流集合w,云数据中心m台主机的总能耗tec可以表示为:

在本发明实施例中,变量被用来表示任务与虚拟机的映射关系。如果任务被映射到虚拟机,那么为1,否则为0,即,

由于优先级的限制(因为任务之间存在数据依赖关系),只有收集到所有直接前驱任务传来的数据,一个任务才可以开始,因此存在以下约束:

其中,表示任务的完成时间,是任务与任务之间的数据传输时间。

当工作流wi中所有任务都被映射到虚拟机,工作流wi的完成时间fti就是其所有任务的最大完成时间如下:

为了满足工作流的时效性要求,其所有任务都要在它的最后期限前完成。因此,它带来另一个约束:

因为云计算数据中心每台主机只提供有限的资源,以下公式表达每台主机供给给虚拟机的每类资源都不能大于主机的容量,即,

基于如公式(6)(8)和(9),本发明实施例的首要优化目标是最小化执行一组的工作流的总能量消耗:

其中,m表示云中的主机数量;st和et分别是执行工作流集合w的开始时间和结束时间。

除了能量消耗,资源利用率是另一个重要指标。因此,我们将最大化主机的平均资源利用率,即,

其中,m和|ti|分别表示工作流的数量和工作流wi中的任务数量;分别表示任务对主机的性能要求和计算时间;n表示云计算数据中心的主机数量;表示主机cpu的最大处理能力,wtk是主机在执行工作流集合中的活跃时间。

多机环境中的工作流调度属于典型的np完全问题,只有小规模问题才能得到最优解。因此,本发明实施例提出了一个启发式的算法,在一个合理的时间内,来搜索上述问题的近似最优解。

在工作流调度中,如何排序工作流任务是一个关键的问题。本发明实施例在tp中所有任务将根据他们的最晚开始时间排序。一个任务的最晚开始时间可以按递归计算定义如下:

其中,表示任务的所有直接前驱任务。

由于云计算数据中心包含大量的异构主机,每台主机的计算能力和能量消耗都不同。为了减少云计算数据中心的能量消耗,我们需要解决以下2个问题:①当资源需求一定时如何最小化所有活跃主机的能耗功率;②当伸缩计算资源时哪些主机应该被打开或者关闭。

对于问题①,有定理1:假设是活跃主机的集合,对主机集合ha的总cpu频率需求为其中变量fk表示主机hk的频率。主机集合ha的总能耗功率,表示为得到最小化,如果满足对于主机hk,是一个常数。

证明:根据公式(2),活跃主机hk的功耗pk可表示为:

定义上式的拉格朗日函数为:

其中,f是向量,表示为λ是一个向量。

其最优条件是:

因此,当且仅当总能耗功率最小。

定理1表明,尽可能均衡所有活跃主机的能够最小化总能耗功率。

对于问题②,本发明实施例将主机的最大cpu频率与主机最大能耗功率的比值被定义为频率能量比。表示如下:

物理主机的ferk越大就意味着它的能源效率越高,有更高ferk的主机将优先选择来执行工作流任务。相反,当系统的工作量减少,对小ferk的主机上的虚拟机将被整合到高ferk的主机,然后关闭低ferk主机,来降低能源消耗。

本发明实施例提出了一个启发式算法名为enos。enos能调度带截止期的工作流,同时动态伸缩计算资源来减少能量消耗。对于现有技术的调度算法而言,一旦工作流任务被调度,他们将立即被放置到虚拟机或主机上;与这些算法不同,eons只将就绪任务放置到虚拟机上,并将所有的等待工作流任务滞留在任务池中。等待任务的调度方案可以被重新生成来提高资源和能量效率。

eons算法(算法1)的伪代码如下所示:

当一个新的工作流wi到达,在任务池(taskpool)中所有等待的调度决策将被取消,包括任务与虚拟机的映射(见3行,算法1)和为等待任务创建虚拟机的计划(见4行,算法1)。然后,更新虚拟机的就绪时间rtkl,表示虚拟机vmkl完成所有映射到其的任务的时间(见5行,算法1)。在那之后,计算工作流wi中每个任务的最迟开始时间(即)(见5行,算法1),并将新到达工作流中所有任务都添加到任务池(taskpool)中(见7行,算法1)。然后,高能耗效率调度策略将多个工作流中的任务混合地调度到虚拟机(见8-11行,算法1)。

本发明实施例提出的节能调度策略中,通过努力减少虚拟机资源的浪费来节约主机的能量消耗。图2示出的是虚拟机资源的浪费的主要原因,包括:①相同虚拟机上相连任务间的空闲时隙;②虚拟机资源没被充分利用。如图2所示,阴影区域代表调度任务后,虚拟机vm11被浪费的资源。区域1(area1)和区域2(area2)分别代表任务之间的空闲时隙(即①)和的低资源利用率造成的资源浪费(即②)。

为了提高资源的利用率,降低能量消耗,本发明实施例设计了一个新的指标,在调度任务时衡量资源的浪费。在本发明实施例中,任务造成虚拟机vmkl浪费的资源被定义为:

其中,表示任务的完成时间,假设任务分配到虚拟机vmkl上且排在任务的前面;表示空闲间隙造成的资源浪费,而表示低资源利用造成的资源浪费。

在算法eons中,节能调度策略将添加一个就绪工作流任务到虚拟机先前已经映射的任务的后面。任务在虚拟机vmkl上的完成任务时间为:

其中,rtkl表示虚拟机vmkl的就绪时间,当一个任务映射到虚拟机vmkl上时,该参数将被更新,比如,将任务映射到虚拟机vmkl,那么虚拟机vmkl的就绪时间就变为ai表示工作流wi的到达时间,表示任务在虚拟机vmkl上的完成时间。

基于上述定义,本发明实施例设计了节能调度策略(算法2),其伪代码如下所示:

节能调度策略将工作流任务调度到虚拟机上,在满足任务的最晚完成时间的同时,尽可能地节约能量消耗。首先,算法2对readytasks中的任务根据任务的最晚开始时间进行排序(见1行,算法2),和根据就绪任务最晚开始时间最小优先的顺序,对就绪任务进行调度(见2行,算法2)。对于每一个就绪任务我们设计了两个策略来为它选择一台虚拟机。策略一:所有可用的虚拟机,其cpu的频率足够大来满足任务的资源需求,都属于候选虚拟机(见4行,算法2);而一台虚拟机,可以保证任务的最晚完成时间且浪费最少的资源,将被选来执行任务(见5-10行,算法2)。如果策略一没能从可用的虚拟机为任务选出虚拟机(见11行,算法2),策略二将调用函数scaleupresource()来为任务增加虚拟机(见12行,算法2)。最后,任务被映射到选定的虚拟机(见14行,算法2)。

在函数scaleupresource()中,我们设计了以下两步策略来增加更多的虚拟机:

步骤一,搜索一台有足够多未使用资源的活跃主机,然后在该主机上创建一台新的虚拟机,而不启动任何主机;

步骤二,如果上述步骤不可行,则启动一台具有较高的能量效率的关闭主机,然后在此主机上创建一台新的虚拟机。

函数scaleupresource()(算法3)的伪代码如下所示:

函数首先选择一个虚拟机模板vml,满足任务的cpu性能要求(见1行,算法3)。根据定理1,有最小且可容纳vml的主机hk将被选择(见2-8行,算法3),以最小化系统总能耗。如果以上策略没能选出主机,然后该函数启动一台有最大ferk且能容纳vml的主机hk,然后在该主机上创建虚拟机vmkl(见12-19行,算法3)。

当一个虚拟机被已经完成了所有映射到它的任务,称其为空闲虚拟机。

由于有大量的用户动态地向云计算平台提交工作流应用,云计算平台的负载肯定随着时间的推进出现大幅的波动。当局部的负载高峰过后,在云数据中心总会出现一些闲置的虚拟机和主机。为了提高资源和能源效率,我们设计了一个资源收缩策略,scaledownresources()通过动态整合活跃虚拟机,来减少活跃主机的数量。

收缩资源的函数scaledownresources()(算法4)如下所示:

如果系统的负载变轻,存在一些空闲的虚拟机。这些空闲的虚拟机将被删除,和空闲的主机也被关闭。然后,函数scaledownresources(),如算法4所示,将被调用来动态整合虚拟机和关闭空闲主机,以减少主机的使用量。首先,所有活动主机根据它们的fer进行升序排序(见2行,算法4),即能源效率低的主机将排在队列的前头。之后,这个函数从较小ferk的主机开始(3行),检测选定主机上的所有虚拟机是否都可以迁移到其他主机(见5-19行,算法4)。此外,为了提高系统的能源效率,该函数尽力均衡活跃主机的(见6-13行,算法4)。值得注意的是,如果存在一些在选定主机上的虚拟机无法找到目标主机,所选主机上其他虚拟机的迁移计划都要被放弃(见17行,算法4)。否则,将所选主机上的所有虚拟机迁移到相应的目标主机上,然后关闭所选的主机(见20-23行,算法4)。

对比实验验证了算法的有效性。

实验选择cloudsim仿真平台座位模拟云服务系统中的基础设施。实验使用以下五种主机的参数模拟云服务系统:poweredger730、sugoni620-g20、rh2288hv2、altosr360和express5800。每种主机的数量都设为2000台,假设启动主机的时间为30s。

另外,假设云服务系统中有6个虚拟机模板,虚拟机模板对主机的cpu频率的需求分别有1.0、1.5、2.0、2.5、3.0和3.5ghz。使用虚拟机模板创建虚拟机的时间为30s。

试验中选择四组实际测试集,即cybershake,ligo,montage和sipht。这些工作流程应用的结构如图3(a)至图3(d)所示。这些工作流中任务的运行时间和任务间的数据传输量都是已经公开的。

通信与计算比(communicationtocomputationratio),简写为ccr,是指在一个工作流中,总计算时间开销与总的通信时间开销的比例[38]。实验的重点是分析对四种算法性能的影响。参数将从0.5变化到5.5,而工作流数量和到达率分别固定为10000和0.5。图4(a)至图4(c)示出的是算法eons、easa、heft和esfs的实验结果。

如图4(a)所示,当ccr增加时,算法easa、heft和esfs的能量消耗也随着增加。特别是算法easa,能量消耗上升了27.04%,从3954千瓦时到5023千瓦时。对这个趋势解释是,当ccr越大,计算资源的空闲间隙就会延长,而且这些算法没有采用相应的策略来利用空闲时隙,从而消耗更多的能量。与这些算法不同,算法eons的能耗基本上不变,无论ccr怎么变化。这是因为eons混合调度不同工作流中的任务,来减少计算资源上的空闲时隙。另外,eons平均比easa、heft和esfs平均少消耗58.24%,42.26%和38.47%的能量。

图4(b)示出的第一印象是,eons在资源利用率方面远优于easa、heft和esfs。在本质上,eons平均优于easa、heft和esfs14.98%、7.22%和17.25%。这一结果表明,对于在保障工作流时效性的同时提高资源利用率方面,算法eons是高效的。图4(b)也显示,当ccr增加时,算法easa、heft和esfs的资源利用率都相应减少。这是因为随着ccr的增加,计算资源上的空闲时隙变得更大,因此资源利用率呈现下降趋势。然而,eons的资源利用率略有上升趋势,随着ccr增加的。这种现象表明,eons的任务调度策略,混合调度不同工作流地任务相同的虚拟机上,在资源利用方面eons是有效的。

图4(c)示出展示了使用主机数量随着时间的变化,当工作流数量、到达率和ccr分别设为10000、0.5和0.5。很明显,eons在使用主机数量方面一直优于对比算法。图4(c)清楚地表明,四个算法的主机使用量大致可分为三类:eons所使用的主机在3000和4000年之间波动,easa和heft都在5200左右,而esfs启动多达7000台主机。这一结果证明了我们提出的算法eons,能有效降低云数据中心使用主机的数量。

综上所述,本发明设计了一种新的调度架构,将一个在线调度问题转化为多个静态调度过程。该架构还使每个静态调度过程能够充分利用所有可用的信息,来重新调度所有等待调度的工作流任务。本发明提出一种方法将混合调度不同工作流中的任务调度到虚拟机上,来提高系统资源利用率。理论上也能证明,当资源需求和活跃的主机已知,通过平衡主机工作频率的加权平方,来最小化主机的总能耗功率。本发明还提出了一种在线调度算法eons,能混合地调度不同工作流的任务,在提高资源利用率,同时保证流的截止期。eons还具有三个根据系统负载动态伸缩计算资源的策略。此外,这些策略通过均衡主机工作频率的加权平方,来降低能源消耗。借助于本发明的上述技术方案,通过使用以新到达的工作流信息为触发条件在虚拟机上以总能耗和资源利用率作为调度目标对工作流中的非周期性动态任务进行调度的技术手段,提高了云数据中心的资源利用率,降低了云数据中心的工作能耗。

所属领域的普通技术人员应当理解:以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1