掌桥专利:专业的专利平台
掌桥专利
首页

一种应对突发性故障的云应用续算方法及系统

文献发布时间:2023-06-19 13:45:04


一种应对突发性故障的云应用续算方法及系统

技术领域

本发明属于云计算技术领域,具体涉及一种应对突发性故障的云应用续算方法及系统。

背景技术

随着云计算技术的迅速发展,云计算集群的规模在不断扩大,同时也将提供越发丰富且完善的服务。在云计算集群中,提供服务的服务器、虚拟机、容器、应用程序等各个层级都可能发生故障,导致正在执行的任务中断。所以,如何应对突发性的故障一直以来都是相关邻域的热门研究方向。

目前,在云计算领域中已经有相当多的故障应对机制,但大多数都是对云计算集群中的云节点进行整体备份,即定时保存云节点的状态与数据,当云节点发送突发性故障时则可以将故障节点的数据与状态在其他正常节点上恢复。随着云计算网络越发庞大,大量的云节点需要通过备份来进行故障容错,这将对云计算集群的存储容量与通信带宽造成巨大的压力与浪费。这样的方式不仅在备份时产生巨大开销,而且故障发生后也无法做到十分迅速地处理。并且,大多数云计算集群中的容错机制无法保留云应用的中间数据,这意味这发生故障后会丢失云应用已经完成了的计算工作,在其他正常节点上恢复云应用之后会从头开始计算。对于运行时间较长的云应用来说,重新开始会造成巨大的时间开销,导致任务完成时间大幅度延后,对一些时间要求严格的应用服务造成巨大损失。

在未来的云计算场景下,云应用的种类越来越丰富,云计算集群中一些不关键的、或是处理时间很短的云应用并不需要有容错机制来保障其运行,但同时必然也会存在一些云应用需要通过快速的续算机制保障运行结果不会延迟太久交付,所以需要有一种轻量级的、可以在大规模云计算集群中针对某些特定云应用所使用的云应用续算机制。

发明内容

本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种应对突发性故障的云应用续算方法及系统,保障计算时间开销较大的云应用,如果运算到一半时被故障中断,可以被其他正常的云节点快速察觉并且启动应用接续完成被中断的应用未完成的计算工作,在最大程度上减少了故障带来的时间开销。

本发明采用以下技术方案:

一种应对突发性故障的云应用续算方法,在云计算集群中指定一个执行云应用的执行节点和负责监督对应执行节点执行的监督节点;执行节点运行云应用执行程序,监督节点运行监听程序;当监听程序监测到执行节点中的云应用执行程序发生异常时,监听程序所在的监督节点启动云应用续算处理,接续完成被中断云应用执行程序未完成的计算工作。

具体的,对执行节点所运行的云应用进行阶段划分,分析程序运行过程中的关键性操作与产生的关键性中间数据;然后将划分阶段按执行逻辑顺序编排阶段号,并且以每一阶段结束时产生的、下一阶段计算所需要的关键性数据作为阶段断点,保证节点拥有应用程序、已完成阶段号、对应的阶段断点时即从已完成的阶段开始继续执行未完成的计算。

进一步的,执行节点和监督节点上均建立有分布式内存数据库,阶段断点的保存与获取基于分布式内存数据库,执行节点将已完成的阶段断点数据的保存在分布式内存数据库中,监督节点通过云应用编号和阶段号作为索引从分布式内存数据库中获取断点数据。

具体的,云应用执行程序定时向监督节点发送携带最近已完成的阶段号信息的心跳包,监督节点运行监听程序通过监听心跳包判断任务执行是否异常中断。

进一步的,执行节点和监督节点上均设置有计算任务的云应用执行程序。

更进一步的,监督节点在2~10个心跳周期内没有收到心跳包后判定是否发生故障,并启动云应用执行程序,以云应用编号与最近收到的阶段号作为索引从分布式内存数据库获取断点数据。

具体的,监督节点包括多个,多个监督节点之间相互不联系。

进一步的,选取物理距离最近,网络延迟最低的服务器节点作为监督节点以实现续算处理,选取位置分布跨地区的服务器节点作为监督节点以避免地区性的大规模故障。

进一步的,云计算集群中还设置有管理节点,管理节点在收到需要进行续算容错保障的云应用执行请求后,指定一个执行云应用计算的执行节点,并指定多个监督节点监听执行节点执行中的计算任务状态。

本发明的另一技术方案是,一种应对突发性故障的云应用续算系统,包括:

执行模块,在云计算集群中选取一个执行节点执行云应用执行程序;

监督模块,在云计算集群中选取监督节点,监督节点对执行模块选取的执行节点执行云应用执行程序进行监督;

续算模块,当监督模块监测到执行模块选取的执行节点的云应用执行程序发生异常时,控制监督模块选取的监督节点启动云应用续算处理,接续完成被中断云应用执行程序未完成的计算工作。

与现有技术相比,本发明至少具有以下有益效果:

本发明一种应对突发性故障的云应用续算方法,采用局部云节点绑定的方式进行监督与续算,在大规模云计算集群中,这种方式不但尽可能少得为集群整体带来计算、存储、通信等资源的开销,而且可以做到最为迅速的故障异常发现与处理,在重新启动云应用的同时保证了之前完成的计算不丢失,大大减少了故障造成的时间浪费。同时,用户可以自由指定需要续算容错保障的云应用,而不是对云节点整体进行备份,这进一步加快了故障处理速度并减少了资源开销。另外,本发明作为一种轻量级的云应用续算机制,可以十分轻松地融入现有的各种云计算管理框架中作为一项可以选择的插件,这对于实际应用具有重要意义。

进一步的,对云应用进行执行阶段划分是为了标记出已完成了的计算部分与未完成的计算部分,发生故障时,监督节点不需要再执行一次已经完成了的阶段,而可以通过阶段号指引直接从云应用中阶段标记的位置开始执行。并且通过对云应用执行程序合理的分析,可以区分出每一阶段计算所需的关键性数据,将其作为断点,相比保存整个程序当前状态作为断点,这么做可以大大减小断点数据的大小。

进一步的,在云集群中某一云应用对应的执行节点与监督节点上建立一个局部的分布式内存数据库,以key-value方式存取,保证云应用阶段断点数据的快速存放与获取。并且这样局部的方式在最大程度上节约了云集群整体的开销。

进一步的,执行节点通过阶段号作为索引将阶段断点数据存入分布式内存数据库,监督节点则需要在容错处理时通过阶段号从数据库中获取断点数据,而监督节点所知晓的阶段号需要由执行节点通过心跳包来不断更新。

进一步的,当故障发生时,容错机制在监督节点上启动云应用,如果此时监督节点没有在本地存有该应用程序,则还需要从云端下载程序,这将造成容错处理速度大大下降。

进一步的,监督节点通过是否正常接收到心跳包来判断执行节点任务执行是否出现异常,并且通过心跳包中所含的阶段号定位云应用重启后从哪个阶段开始继续运行。

进一步的,多个监督节点之间相互不联系可以减少网络通信的复杂度与带宽压力,监督节点独立监控与容错处理对容错起到了很好的保障效果。另外,云应用出现故障的几率较小,这样的处理方式也不会对云计算集群造成过多额外的压力。

进一步的,地理位置的远近决定了网络传输的延迟长短,地理位置相距很远那么通过网络传输数据的时间肯定较长,但地理位置相距很远可以有效应对地区性的大规模停电等故障。

进一步的,管理节点是运行着集群管理程序的云节点,他负责请求的处理及任务的调度等云计算集群的管理工作。

综上所述,本发明实现了快速的云计算任务故障发现与容错续算处理,同时,相较于现有容错方式更加节约云平台的计算、存储、通信资源,并且有效减少了云平台管理节点的容错管理负载。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

图1为本发明方法流程示意图;

图2为本发明在云计算集群中的使用场景示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明的描述中,需要理解的是,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

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

本发明提供了一种应对突发性故障的云应用续算方法,在云计算集群中,通过指定一个执行云应用的执行节点和多个监督执行的监督节点这种局部云节点绑定的方式,对云应用进行监督与续算保障,当云应用执行发生故障异常可以被监督节点快速发现并且启动应用接续完成被中断云应用未完成的计算工作,在最大程度上减少了故障带来的时间开销。相较于现有技术,本发明采取局部云节点绑定的模式,并且可以有针对性地选择云应用进行容错保障,不仅能实现最快速的故障响应与处理,还最大程度地减少了计算、存储、通信等资源的开销。

本发明一种应对突发性故障的云应用续算方法,包括以下步骤:

S1、在云计算集群中指定一个执行云应用运算的执行节点以及指定多个负责监督对应云应用执行的监督节点;

为了实现监听程序所在监督节点从已知最近的计算阶段开始接续运行云应用,在云应用的开发过程中,对应用程序进行执行阶段划分,阶段划分需要分析程序运行过程中的关键性操作与产生的关键性中间数据。然后将划分阶段按执行逻辑顺序编排阶段号,并且以每一阶段结束时产生的、下一阶段计算所需要的关键性数据作为阶段断点,保证节点拥有应用程序、已完成阶段号、对应的阶段断点时即可从已完成的阶段开始继续执行未完成的计算。

请参阅图1,在云计算集群中指定的云应用执行节点和云应用监督节点上建立局部分布式内存数据库,阶段断点的保存与获取都基于分布式内存数据库,执行节点将已完成的阶段断点数据的保存在分布式内存数据库中,监督节点通过云应用编号和阶段号作为索引从分布式内存数据库中获取断点数据,这样局部的同步方式不仅数据同步速度很快,而且能够节约整个云平台的存储与通信资源。

S2、执行节点运行云应用执行程序,监督节点则运行监听程序;

云计算集群中的管理节点是运行着集群管理程序的云节点,负责请求的处理及任务的调度工作,对应于目前开源的云平台容器管理软件kubenetes中的master节点,实现的容错方法目标如果嵌入kubenetes中使用,收到需要进行续算容错保障的云应用执行请求后,除了指定一个执行云应用计算的执行节点外,还需要指定另外几个监督节点监听执行中的计算任务的状态。并且保证执行节点与监督节点都拥有该计算任务的云应用执行程序,但只有执行节点运行该云应用执行程序,监督节点则运行一个简单的、低开销的监听程序。

监听程序类似于一个用作接收周期性发送来的数据的服务端接口。

S3、当监听程序监测到执行节点中的云应用发生异常,监听程序所在节点立刻启动云应用续算处理。

云应用执行程序定时向监督节点发送携带最近已完成的阶段号信息的心跳包,监督节点运行监听程序通过监听心跳包判断任务执行是否异常中断,并且监督节点拥有云应用执行程序,在2~10个心跳周期内没有收到心跳包后判定与发生故障并启动云应用执行程序,1个心跳周期时长为100ms~10s,以云应用编号与最近收到的阶段号作为索引从分布式内存数据库获取断点数据,以此快速接续云应用执行。

监督节点之间相互不联系,若执行节点上的云应用发生故障,每个正常运行的监督节点发现后都会进行续算,而客户端最终采用的云应用计算结果则是选取最早交付的那一个结果。云节点发生故障的概率不高,多个云节点同时故障发生概率更小,这样的机制不但可以适用于几乎所有实际故障情况(只要执行节点与监督节点有一个正常运行就可以保证交付计算结果),并且尽可能简化了监督与续算机制,避免了大规模实际应用时出现过于复杂的通信操作与节点状态变化,从机制上做到了轻量化、通用化。

请参阅图2,本发明实际应用于云计算集群中时,存在多个进行续算保障的云应用,云计算集群中的管理节点根据各个云节点当前运行的状况(如CPU使用率、内存使用率等因素)来选取云应用执行节点。监督节点的选取不仅受云节点运行状况影响,也会受用户需求影响。

如果要尽可能快速指的是尽可能缩短监督节点与执行节点之间的物理距离,物理距离短自然网络传输的延迟会低,就比如在同一个机房里两个服务器节点连在同一个交换机上肯定是最快的,而为了预防该机房所在地出现地区性停电等故障,可以选择不在同一地区的机房中的服务器节点,但这样网络传输的距离增加了延迟肯定会有所增加。续算处理选取与执行节点距离近的监督节点,如果要避免地区性的大规模故障则可以选取距离远的监督节点。

本发明再一个实施例中,提供一种应对突发性故障的云应用续算方法系统,该系统能够用于实现上述应对突发性故障的云应用续算方法,具体的,该应对突发性故障的云应用续算方法系统包括执行模块、监督模块以及续算模块。

其中,执行模块,在云计算集群中选取一个执行节点执行云应用执行程序;

监督模块,在云计算集群中选取监督节点,监督节点对执行模块选取的执行节点执行云应用执行程序进行监督;

续算模块,当监督模块监测到执行模块选取的执行节点中的云应用执行程序发生异常时,控制监督模块选取的监督节点启动云应用续算处理,接续完成被中断云应用未完成的计算工作。

本发明再一个实施例中,提供了一种终端设备,该终端设备包括处理器以及存储器,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器用于执行所述计算机存储介质存储的程序指令。处理器可能是中央处理单元(Central ProcessingUnit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor、DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其是终端的计算核心以及控制核心,其适于实现一条或一条以上指令,具体适于加载并执行一条或一条以上指令从而实现相应方法流程或相应功能;本发明实施例所述的处理器可以用于应对突发性故障的云应用续算方法的操作,包括:

在云计算集群中指定一个执行云应用的执行节点和负责监督对应执行节点执行的监督节点;执行节点运行云应用执行程序,监督节点运行监听程序;当监听程序监测到执行节点中的云应用发生异常时,监听程序所在监督节点启动云应用续算处理,接续完成被中断云应用未完成的计算工作。

本发明再一个实施例中,本发明还提供了一种存储介质,具体为计算机可读存储介质(Memory),所述计算机可读存储介质是终端设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机可读存储介质既可以包括终端设备中的内置存储介质,当然也可以包括终端设备所支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了终端的操作系统。并且,在该存储空间中还存放了适于被处理器加载并执行的一条或一条以上的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机可读存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。

可由处理器加载并执行计算机可读存储介质中存放的一条或一条以上指令,以实现上述实施例中有关应对突发性故障的云应用续算方法的相应步骤;计算机可读存储介质中的一条或一条以上指令由处理器加载并执行如下步骤:

在云计算集群中指定一个执行云应用的执行节点和负责监督对应执行节点执行的监督节点;执行节点运行云应用执行程序,监督节点运行监听程序;当监听程序监测到执行节点中的云应用发生异常时,监听程序所在监督节点启动云应用续算处理,接续完成被中断云应用未完成的计算工作。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中的描述和所示的本发明实施例的组件可以通过各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

目前云计算邻域使用十分广泛的云平台容器管理软件kubenetes,它通过master节点即管理节点来对所有的云节点上的应用进行心跳检测,一方面这样中心化的故障检测对管理节点造成了很大的负担,另一方面它所能达到的检查周期最小为1s,检查超时时间最小为1s,即发现故障的时间至少为2s以上,另外他所提供的容错机制仅仅是在其他正常云节点上将应用重新运行一次,无法保留之前已经完成的计算,造成计算资源与时间上的浪费。而我们通过分布式监管的方式,减轻了管理节点的负担,能做到最快能在200ms就发现故障,并且保留应用已完成的计算部分,接续计算后续部分,极大减少了故障所造成的时间浪费。

综上所述,本发明一种应对突发性故障的云应用续算方法及系统,用于保障一些重要的云应用计算任务按时交付,不会因为突发的故障导致计算结果延迟太久才交付,并且尽可能地节约了云平台的计算、存储、通信资源,减少了云平台管理节点的任务负载。

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

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

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

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

以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。

相关技术
  • 一种应对突发性故障的云应用续算方法及系统
  • 一种高性能集群的紧急作业续算方法以及系统
技术分类

06120113793029