动态容错弹性调度方法与流程

文档序号:16390206发布日期:2018-12-22 11:19阅读:245来源:国知局
动态容错弹性调度方法与流程

本发明涉及云计算技术领域,特别涉及一种动态容错弹性调度方法。

背景技术

云计算已经成为主流的分布式计算模式,用于按需配置计算资源以满足动态应用程序的工作负载。在虚拟资源上运行应用程序,特别是虚拟机(vm),是一种高效的解决方案,可以提高经济效益和可扩展性。在实践中,许多应用都面临着数据不断增长和计算复杂度高的问题,例如天文学、金融交易和物理学等。云计算可以有效地支持这些科学应用对高计算性能的需求。有报告称,对于由10000个特别可靠的服务器组成的云(平均无故障时间为30年),每天会出现一次故障。此外,大约5%的磁盘驱动器损坏,服务器每年至少崩溃两次,故障率为4%。更糟糕的是,为了降低生产成本,数据中心通常会使用价格较低的商品硬件,导致云的故障概率增加。因此,在云中提供较强的容错能力是至关重要的,特别是针对实时任务处理的应用。



技术实现要素:

本发明的目的是提供一种动态容错弹性调度方法,实现云计算的可靠性和资源优化。

为达到上述目的,本发明一方面实施例提出了一种动态容错弹性调度方法,包括:估计任务运行时长;根据所述任务的弹性时间情况,确定所述任务的调度类型;根据所述任务的调度类型,在虚拟机列表中选择执行所述任务的虚拟机并进行调度;其中,所述任务包括主任务与备份任务。

进一步地,所述虚拟机列表包括至少一种类型的虚拟机。

进一步地,在虚拟机列表中选择执行任务的虚拟机并进行调度之后,还包括:通过分析任务的时间约束以及考察虚拟机列表确定执行备份任务的虚拟机类型。

进一步地,所述调度类型包括容错调度和/或拓展调度;其中,所述容错调度包括:非容错、弱容错和强容错;所述拓展调度包括备份和重新提交。

进一步地,所述的动态容错弹性调度方法还包括:当所述主任务的调度类型为所述弱容错或所述强容错中任一类型时,将资源分配给主任务,并更新所述虚拟机列表中每个虚拟机的下一个可用时间。

进一步地,所述的动态容错弹性调度方法还包括:当所述主任务的调度类型为拓展调度时,在所述虚拟机列表中确定能够执行任务的虚拟机,当虚拟机列表中的虚拟机无法满足任务的调度约束时,创建一个新的虚拟机完成备份任务的调度,之后更新虚拟机列表中每个虚拟机的下一个可用时间。

进一步地,拒绝无法调度的备份任务。

在本发明实施例中,提出了一种动态容错弹性调度方法,扩展了容错模型,并将重叠机制应用到容错模型中,有效地实现容错与节能的均衡。云计算的可靠性和资源优化,通过综合使用备份和重新提交策略来处理任务执行的不确定性问题,动态容错弹性调度方法可以为云提供较高性能。

附图说明

图1为实现本发明实施例的系统的框架图;

图2为本发明实施例中非容错的结构示意图;

图3为本发明实施例中弱容错的结构示意图;

图4为本发明实施例中强容错的结构示意图;

图5为本发明实施例中决策树的结构示意图;

图6为本发明实施例中重新提交模式非有效容错的结构示意图;

图7为本发明实施例三中重新提交时的结构示意图;

图8为本发明实施例四中重新提交时的结构示意图;

图9为本发明实施例中的几何意义图;

图10为本发明实施例中重叠时间的结构示意图;

图11为本发明实施例中bb重叠约束示意图;以及

图12为本发明实施例动态容错弹性调度方法的流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。

在附图中示出了根据本发明实施例的层结构示意图。这些图并非是按比例绘制的,其中为了清楚的目的,放大了某些细节,并且可能省略了某些细节。图中所示出的各种区域、层的形状以及它们之间的相对大小、位置关系仅是示例性的,实际中可能由于制造公差或技术限制而有所偏差,并且本领域技术人员根据实际所需可以另外设计具有不同形状、大小、相对位置的区域/层。

显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明的描述中,需要说明的是,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。

此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。

以下将参照附图更详细地描述本发明。在各个附图中,相同的元件采用类似的附图标记来表示。为了清楚起见,附图中的各个部分没有按比例绘制。

在下文中描述了本发明的许多特定的细节,例如器件的结构、材料、尺寸、处理工艺和技术,以便更清楚地理解本发明。但正如本领域的技术人员能够理解的那样,可以不按照这些特定的细节来实现本发明。除非在下文中特别指出,半导体器件中的各个部分可以由本领域的技术人员公知的材料构成。

下面对容错调度、相关技术与技术构思进行介绍。

需要说明的是,容错调度是将任务映射到计算实例,并确保即使在硬件和软件故障的情况下,任务也可以在截止期之前完成。到目前为止,两种基本的调度方法被用于分布式系统中以实现容错、备份和重新提交。备份的思想是将任务的多个备份分配给不同的计算实例。然而,与传统的分布式系统不同的是,云具有一些独特的特性,这增加了调度的灵活性以及复杂性。其主要面临着三个方面的挑战:(1)主机崩溃会导致多个计算实例故障;(2)任务的实际运行时间波动较大;(3)重新提交可能会导致系统可靠性的降低,而备份则面临资源浪费。因此,本申请提出了一种动态容错弹性调度方法,可以策略性地和动态地在传统的重新提交和备份策略之间进行选择,以达到在低资源成本的基础上实现容错。

相关技术中,将两个基本技术广泛应用于重新提交和复制的问题。其一为重新提交,重新提交的主要方法是在发生故障时将任务重置为初始状态,并在其他正常服务器上重新执行,例如如果计算单位即服务器失败,那么分配给它的任务将重新安排给其他正常服务器。然而,重新提交可能无法有效保证任务的截止期,对于具有严格截止期限制的任务该方法可能不可用。应当理解的是,保证任务的截止期即为满足任务的时间约束,保证在任务的截止期完成调度任务即为满足任务的调度约束。

另一方面,备份技术可以同时满足容错和截止期限制。对于备份技术而言,需要多个副本来实现容错。多数备份设计都是基于主-备模型(简称pb)。在pb模型中,任务有两个副本,主副本和备份副本,这两个副本分派在两个不同的计算实例上。但是,过度消耗资源是备份技术的瓶颈。为了减少备份的额外资源消耗,重叠机制被提出来。通过采用重叠技术,各个副本能够在相同计算实例的相同时隙中重叠。当前主要有两种重叠方案:主-主备份重叠(简称pb重叠)和备-备备份重叠(简称bb重叠)。但是,bb重叠不适合动态调度,因为它本质上是静态的。另外一些实例研究,并没有考虑到任务运行时的波动性,这可能导致模型和生产环境之间的偏差。还有一些研究的目标是通过资源优化来提高系统的性能,而没有考虑不确定性对容错的影响。

基于此,发明人提出了一种动态容错弹性调度方法。

为了实现本发明实施例提出的动态容错弹性调度方法,发明人做了如下准备。

首先,发明人提供了实现本发明实施例的系统总体架构,如图1所示,数据中心由一组主机组成,每个主机可以提供多个计算实例(即虚拟机)。用户发送的任务流在任务队列中排队并等待被分发到数据中心的计算实例之中。监视器提供系统性能状态。任务调度器根据性能监视器的反馈安排任务。在系统中,我们对任务调度器、性能监控器和数据中心的通信采用星型拓扑结构。因此,不失一般性地,通信时延可以忽略。

其中,假设在数据中心有一个物理主机集合,。通常来说,云数据中心数据异构集群,其基本的计算实体通常是虚拟机(vm)。在一个主机上可以创建多个虚拟机。发明人定义为物理主机上的第j个虚拟机。另一方面,所有的虚拟机也可以被定义为虚拟机集合:。因此,代表上的第j个虚拟机是虚拟机集合中的第i个虚拟机。对于云中的每个主机而言,内存、cpu、存储和i/o等都是重要的指标,他们可以很大程度上影响主机的性能。在本发明实施例中,发明人主要研究受处理能力影响较大的计算密集型任务。发明人将分别定义为主机和虚拟机的处理能力。处理能力以每秒百万指令衡量(mips)。其中,是包含个非抢占且独立的任务集合。对于任务,它被建模为,其中,分别表示的到达时间、截止期限和任务大小,以百万指令(mi)衡量。在本发明实施例中,全面考虑了两种主要容错方法。对于备份技术,本发明实施例采pb模型。每个任务有两个副本,主副本和备份副本,它们被分别分配给两个不同的主机。对于重新提交技术,当在分配了初始任务的主机中发生故障时,重新提交任务给系统。为了便于数学描述,发明人将初始任务定义为,将重新提交的任务定义为。应当注意的是,区别于备份,直到初始任务故障,重新提交技术才会将分配给系统。其中,发明人还定义为任务在虚拟机上可开始执行任务的时间。

进一步地,一般来讲,运行时间不仅与任务的大小有关,而且与系统性能有关。在云中,软件和硬件的性能都随工作负载动态变化,所以很难估计单个任务的执行时间。因此,在之前的研究中主要采用了任务运行时的静态估计,以简化问题复杂性。但是,这个估计值和实际时间之间的差异显著影响任务调度的质量。因此,发明人提出了一种有效地对于任务在虚拟机上任务运行时长的估计方法。该方法基于以下几个要素:

要素1:静态处理能力被定义为的平均处理能力。因此,任务的静态执行时间可以通过来计算,其中,表示任务大小。

要素2:运行时间波动。实际上,运行时间波动时间变化与密切相关,因此发明人定义,其中,表示相关程度。

要素3:运行时间估计域,根据静态运行时间和运行时间波动,发明人得到。因此,由以下表达式确定:

发明人将任务运行时间估计值的下界和上界分别定义为

要素4:发明人提出作为所有可能的实际运行时间的样本空间,所以可以被认为是样本空间中的样本点之一,发明人假设任务运行时长服从均匀分布。因此,的概率密度函数可以表示为以下函数:

进一步地,对于计算机系统,故障的平均间隔为75分钟。然而,云中任务的平均执行时间不超过3分钟。因此,可以假定当主机失败时,运行在它上的任务将在另一个主机失败之前通过相应的备份(或重新提交)副本成功完成。此外,还假设故障机制在系统中可用,如故障信号和验收测试。如果主机失败,则可以检测到它。其中,需要假设所有主机之间的故障是独立的。

应当注意的是,故障模型还可通过将主机分成多个组来处理多个主机故障,为了简洁,在本发明实施例中不再赘述。

下面对资源分配和调度策略进行分析。

需要说明的是,容错的关键是保证任务和资源的映射,资源分配满足容错约束。因为一个主机的故障将导致其上所有虚拟机的故障,在采用复制方法时,一个任务的主版本和副备份应该分配给不同的主机进行容错。对于提交的方法,如果由于主机故障的初始任务被终止,重新提交一个应该安排到无故障的主机上。为了在时间约束下容纳更多的任务,需要分析调度策略、任务分配时的约束和重新复制应用。在不失一般性的前提下,假设总共设有n个活动vm。为了便于调度策略的分析,首先介绍以下三个定义:

定义1:最早开始时间:对于给定的一个任务,其最早开始时间被定义为当主版本被分配到第k个虚拟机上时,可以开始执行的最早时间,其由以下表达式决定:

结合任务运行时间,最早完成时间上界和下界可以推到导如下:

定义2:最迟开始时间:对于给定的一个任务,其最迟开始时间被定义为当副版本被分配到第j个虚拟机上时,开始执行的最迟时间,其由以下表达式决定:

然而,根据以前的分析,在调度之前获得任务实际运行时间是不现实的。因此,发明人定义最迟开始的时间的下界和上界,如下式所示:

定义3:弹性时间:对于一个任务,发明人定义弹性时间如下公式:

由于任务运行时间的不确定性,发明人定义弹性时间的下界和上界分别如下:

弹性时间通常可以用来测量任务的可靠性。因此,有如下三个与容错相关的调度案例。

案例1:非容错,如图2所示。

对于一个任务而言,将其调度到底k个虚拟机上,如果可以预估到其不能按期完成,则属于非容错。

具体地,从弹性时间的上界和下界公式可以看出,代表了截止期和最早完成时间上界之间的相对大小,当成立时,则意味着最早完成时间的上界超过截止期。即,,当时,调度任务到第k个虚拟机属于非容错。

案例2:弱容错,如图3所示。

对于一个任务而言,将其调度到第k个虚拟机上,如果其可以按期完成,也可能无法按期完成,则属于弱容错。

具体地,代表任务最早完成时间的上界小于截止期。因此,任务可能按期完成。同时,代表最早完成时间的下界大于截止期。因此,任务可能无法按期完成。即,,当时,调度任务到第k个虚拟机属于弱容错。

案例3:强容错,如图4所示。

对于一个任务而言,将其调度到第k个虚拟机上,如果其始终能按期完成,则属于强容错。

具体地,当成立时,意味着最早完成时间的上界小于截止期,即任务始终能在截止期之前完成。即,,当时,调度任务到第k个虚拟机属于强容错。

由于虚拟机的异构处理能力和任务的异构性,调度策略应该是多种多样的。

当任务在vm上为非容错,在这种情况下,显然任务不能调度到vm上。如果云中的所有虚拟机对于任务都有非容错性,那么调度器应该在调度之前拒绝该任务或者创建新的虚拟机来调度任务。

下面详细描述弱容错和强容错的有效调度策略。

实施例一:当任务在vm上为弱容错时。

在这种情况下,根据弱容错的定义,任务很可能在截止日期之前完成。为了测量完成的可能性,将定义为vm上完成任务的概率:

对于云,可能有多个虚拟机属于的弱容错,因此,的全局最优调度策略是寻找vm中每个的最大值,定义为,但是,对于较低的,如果在截止日期之前无法完成,则不仅会浪费资源,还会还会影响后续任务的执行。因此,需要确定一个阈值作为确定调度策略的度量。

进一步地,可采用决策树方法确定阈值,如图5所示,可以看出决策树有三个输出,“已完成”、“拒绝”和“中止”。“已完成”可以有效利用系统资源,但“拒绝”和“中止”都会导致资源浪费。对于每个输出,将其相应的效用值设置为。对于效用中立的情况,任务完成概率可以看作,废除概率为。那么调度的效用和拒绝的效用可以分别表示为:

对于一个任务,如果在任务完成之前进行调度和完成,那么该任务的效用被定义为任务的实际运行时间,即。如果它在调度之前被拒绝,那么任务的效用应该是负的,所以设置。如果任务被安排但由于超时而中止,那么它不仅浪费资源,而且也会对后续任务产生不利影响,设置。应该注意的是,都是惩罚系数。因此,决策树的目标是寻找的最小值,使得。因此,结合调度的效用和拒绝的效用,可以推导出:

成立时,任务将会被调度到相应的虚拟机上,当成立时,任务将会被拒绝。对于容错任务,增加备份的数量对于提高完成概率意义非常小。因此,对于弱容错任务没有必要提供更多的备份版本。

实施例二:当任务在vm上为强容错时。

在这种情况下,任务总是可以在截止日期之前完成。考虑到整体资源优化,关键问题是确定何时采用复制机制以及何时采用中心提交机制。

成立,初始任务和重新提交的任务之间将存在时间重叠。但是,如果采用重新提交,当初任务在之后失败时,重新提交的任务没有足够的时间段在截止日期之前完成。在这种情况下,重新提交不能实现有效的容错。因此,要实现有效的容错,必须采用复制机制。

如果成立,则可能没有时间重叠,因此重新提交机制可用。但是,如果只是比稍大,对于重新提交任务而言,其可能没有充足的时间执行,如图6所示。在这种情况下,如果原始任务时刻出现故障,显然重新提交任务可能无法完成。

基于此,为了确保容错,对容错调度策略进行拓展分析。

实施例三:采用重新提交时的任务调度分析。

由于任务的运行时间波动,重新提交模式会有多种形式,将这些形式抽象为两类。

类别1:

如图7所示,其中,箭头表示就绪时间。假定可以得到满足。

因此,如果,无论初始任务是否能够成功完成,总是有足够的时隙来确保完成重新提交的任务。根据故障模型的基本假设,如果失败,可以成功完成。因此,可以实现有效的容错。

类别2:

如图8所示,如果故障,其中,那么应该从开始执行。但是,,固若实际任务运行时间,则在此情况下系统无法实现容错。因此,采用重新提交策略的有效容错概率为。根据任务运行时长估计模型,任务运行时间被假定为服从均匀分布,所以可以被认为是几何概率分布,如图9所示。因此,得出结论,其中,定义s1等于图9中阴影面积,这可以通过定积分得到。那么,可以推导出

在一个云中,可能有多个vm对,他们对于任务是有效容错的,其概率为。因此,找出的全局最优调度策略相当于寻找vm中每个vm对的最大值。因此,将其定义为。然而,如果概率非常低,那么仍然可能在截止日期前无法完成,这不仅浪费资源,而且影响后续任务的执行。结合前面的分析,规定如果,应该采用复制,如果,可以采用重新提交,并且其对应的是最优调度模式。

实施例三:采用备份时的任务调度分析。

在强容错的情况下,备份方式可以保证绝对容错。因此,进一步的问题是通过优化调度以实现最小的资源消耗。为了便于分析,进行如下定义:

定义4:重叠时间:对于一个任务,重叠时间被定义为执行的可能重叠时间,其对应的数学表达式如下:

如图10所示,越大,重叠时间越长,对应资源消耗越大。因此,的全局最优调度策略是虚拟机对使得最小。

当任务的主备份任务分布在不用的计算实例上时,副备份任务可以彼此重叠。在云计算中,bb重叠的基本前提是的主备份任务不应安排在同一主机上。然而,bb重叠通常是基于复制策略。因此,考虑到上述两种容错模式,相应的资源优化方法应该做出修改。不失一般性的,假设任务已经被调度,是一个新到达的任务。

调度策略都采用备份模式时。对于这种情况,当时,那么不能与重叠,无论与否,其中分别表示所分配的虚拟机。

调度策略分别为备份和重新提交模式时。

由于采用重新提交策略,直到出现故障时,才会被调度到系统。然而,在的执行过程中,必须根据容错需求为预留执行时隙和资源。根据前述的故障模型假设,的故障概率很低,它的备份版本将会导致资源浪费。定义为任务的相关主机,可以表示为:

假设重叠。如果出现故障,那么也不能执行。因此将会被激活。然而,由于之间存在重叠关系,将同时在一个vm中执行,此时出现了矛盾,因此,不能与重叠,如图11所示。

调度策略分别为重新提交模式时。由于都采用重新提交策略,系统不会为他们备份版本分配资源,因此,在这种情况下,忽略重叠问题。

基于此,本发明实施例提出了一种动态容错弹性调度方法。

图12为本发明实施例的动态容错弹性调度方法的流程图。如图12所示,本发明实施例的动态容错弹性调度方法,包括以下步骤:

s101:估计任务运行时长。

s102:根据任务的弹性时间情况,确定任务的容错调度和/或拓展调度类型。

s103:根据所述任务的调度类型,在虚拟机列表中选择执行任务的虚拟机并进行调度。

其中,所述任务包括主任务与备份任务。

进一步地,虚拟机列表包括至少一种类型的虚拟机。

应当理解的是,在虚拟机列表中选择执行主任务的虚拟机并进行调度之后,当主任务的调度类型为备份时,备份副本通过虚拟机列表确定备份副本的虚拟机类型,以使备份任务尽可能晚的执行。

其中,在本发明实施例中,为了保留足够的松弛时间进行备份,主任务采用主任务调度采用越早越好的调度原理(asap原理),为了节省系统资源,备份任务采用备份任务采用越迟越好的调度原则(alap原则)。

根据本发明的一个实施例,当主任务完成时,取消备份任务。

根据本发明的一个实施例,在确定主任务的调度策略之后,还包括:当调度策略为弱容错或强容错中任一类型时,调度器将资源分配给主任务,并更新虚拟机列表中每个虚拟机的下一个可用时间。

根据本发明的一个实施例,当调度策略为弱容错时,则不需要将资源分配到备份任务。

在调度策略为复制和重新提交时,在备份的虚拟机列表中确定能够执行任务的虚拟机,当虚拟机列表中的当前虚拟机均无法满足任务的调度约束时,创建一个新的虚拟机完成备份任务的调度,然后再更新虚拟机列表中每个虚拟机的下一个可用时间。

应当理解的是,调度器最终拒绝无法调度的备份任务。

综上所述,在本发明实施例中,提出了一种动态容错弹性调度方法,扩展了容错模型,并将重叠机制应用到容错模型中,有效地实现均衡。云之间的可靠性和资源优化之间,通过综合使用复制和重新提交策略来处理任务执行的不确定性问题,动态容错弹性调度方法可以提高云计算的可靠性。

应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。

在以上的描述中,对于各层的构图、刻蚀等技术细节并没有做出详细的说明。但是本领域技术人员应当理解,可以通过现有技术中的各种手段,来形成所需形状的层、区域等。另外,为了形成同一结构,本领域技术人员还可以设计出与以上描述的方法并不完全相同的方法。

以上参照本发明的实施例对本发明予以了说明。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本发明的范围。本发明的范围由所附权利要求及其等价物限定。不脱离本发明的范围,本领域技术人员可以做出多种替换和修改,这些替换和修改都应落在本发明的范围之内。

尽管已经详细描述了本发明的实施方式,但是应该理解的是,在不偏离本发明的精神和范围的情况下,可以对本发明的实施方式做出各种改变、替换和变更。

显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

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