一种节点故障检测方法和装置与流程

文档序号:19182774发布日期:2019-11-20 01:11阅读:178来源:国知局
一种节点故障检测方法和装置与流程

本申请实施例涉及计算机技术领域,尤其涉及一种节点故障检测方法和装置。



背景技术:

云计算是一种按使用量付费的模式,广泛应用于云数据中心系统。云数据中心系统规模通常较为庞大,拥有成千上万台服务器,一方面,云服务提供商为保证服务质量,避免违反服务水平协议,必需持续监控各个服务器运行状态,及时发现节点故障,保证云服务的可靠性和稳定性;另一方面,高效的节点资源故障检测机制对云数据中心的健康、稳定运行尤为重要。因此,云数据中心系统采用的故障检测方法需要在保证检测准确性的基础上,尽量减少系统资源的占用。

现有技术中的故障检测方法通常在集群内的所有节点采用同一种检测方法,例如:主从架构检测、cassandra、swim或akka等检测方法。该故障检测方法为静态指定检测方法,不能根据节点运行任务的变化,动态调整故障检测方法,导致在故障概率低的节点,占用过多的系统检测资源,而对故障概率高的节点,故障检测不具备针对性,导致故障检测准确率不高。



技术实现要素:

本申请实施例提供一种节点故障检测方法和装置,能够根据节点运行任务的变化,动态调整故障检测方法,减少系统资源占用的同时,提高故障检测的准确率。

为达到上述目的,本申请实施例采用如下技术方案:

本申请实施例的第一方面,提供一种节点故障检测方法,应用于主节点,该方法包括:先将任务发送至从节点;再获取该从节点的故障概率模型;该故障概率模型包括至少一种故障类型,以及分别与每一种故障类型对应的故障概率;再根据该从节点的故障概率模型,确定第一故障检测组;该第一故障检测组为从节点运行该任务时所属的故障检测组,该第一故障检测组为至少一个故障检测组中的一个,其中,该至少一个故障检测组中不同的故障检测组采用的故障检测方法不同;若接收到该从节点发送的任务运行成功消息,且该第一故障检测组和第二故障检测组不同,发送与该第一故障检测组对应的故障检测任务至该从节点;其中,该第二故障检测组为该从节点当前所属的故障检测组。如此一来,能够根据节点运行任务的变化,确定节点运行任务时所属的故障检测组,并在节点运行任务时所属的故障检测组与节点当前所属的故障检测组发生变化时,动态调整故障检测方法,在减少系统资源占用的同时,提高了故障检测的准确率,同时上报同类节点故障风险预警,保证系统稳定性。

结合第一方面,在第一种可能的实现方式中,上述根据从节点的故障概率模型,确定第一故障检测组,包括:根据从节点的故障概率模型,获取该从节点的第一向量,该第一向量为该从节点的故障概率模型中由故障概率组成的向量;计算至少一个故障检测组中每个故障检测组的目标向量与所述从节点的第一向量的向量距离,将所述向量距离最小的故障检测组作为第一故障检测组;其中,至少一个故障检测组中每个故障检测组的目标向量不同,该至少一个故障检测组包括:简单检测组、磁盘检测组、网络检测组、cpu检测组和内存检测组。如此一来,能够根据从节点的故障概率模型确定出从节点运行该任务时所属的故障检测组。

结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述获取从节点的故障概率模型,包括:获取该从节点的任务特征向量;根据该任务特征向量和第一故障概率模型集确定对应该任务特征向量的故障概率模型;其中,该第一故障概率模型集包括至少两个任务特征向量,以及与该至少两个任务特征向量一一对应的故障概率模型。如此一来,能够根据任务特征向量和第一故障概率模型集,确定出从节点运行该任务时的故障概率模型。

结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述获取从节点的故障类型和故障概率,包括:获取该从节点的任务特征向量;根据该任务特征向量、从节点运行该任务的操作系统平台以及第二故障概率模型集确定对应该任务特征向量和操作系统平台的故障概率模型;其中,该第二故障概率模型集包括至少一个操作系统平台、至少两个任务特征向量,以及与该至少两个任务特征向量和至少一个操作系统平台一一对应的故障概率模型。如此一来,能够根据任务特征向量、操作系统平台和第二故障概率模型集,确定出从节点运行该任务时的故障概率模型。

结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述获取从节点的任务特征向量,包括:根据该从节点上运行的所有任务中每个任务对应的特征代码片段,获取该从节点的任务特征向量。如此一来,能够根据各个任务的特征代码片段提取出从节点的任务特征向量。

结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述方法还包括:主节点确定从节点是否故障,若主节点确定该从节点故障,主节点将与该从节点的任务特征向量相似的所有从节点的故障风险上报至计算框架。如此一来,能够上报同类节点故障风险预警,保证系统稳定性。

本申请实施例的第二方面,提供一种节点故障检测方法,应用于从节点,该方法包括:从节点先接收主节点发送的任务;若从节点运行该任务成功,从节点向主节点发送任务运行成功消息;从节点接收主节点发送的与第一故障检测组对应的故障检测任务;该第一故障检测组和第二故障检测组不同;其中,该第一故障检测组为从节点运行该任务时所属的故障检测组,该第二故障检测组为所述从节点当前所属的故障检测组,该第一故障检测组和该第二故障检测组分别为至少一个故障检测组中的一个,该至少一个故障检测组中不同的故障检测组采用的故障检测方法不同。该至少一个故障检测组包括:简单检测组、磁盘检测组、网络检测组、cpu检测组和内存检测组。如此一来,在节点运行任务时所属的故障检测组与节点当前所属的故障检测组发生变化时,动态调整故障检测方法,在减少系统资源占用的同时,提高了故障检测的准确率,同时上报同类节点故障风险预警,保证系统稳定性。

本申请实施例的第三方面,提供一种节点故障检测装置,应用于主节点,该装置包括:发送单元,用于将任务发送至从节点;获取单元,用于获取该从节点的故障概率模型;该故障概率模型包括至少一种故障类型,以及分别与每一种故障类型对应的故障概率;处理单元,用于根据该获取单元获取的从节点的故障概率模型,确定第一故障检测组;该第一故障检测组为从节点运行所述任务时所属的故障检测组,该第一故障检测组为至少一个故障检测组中的一个,其中,该至少一个故障检测组中不同的故障检测组采用的故障检测方法不同;接收单元,用于接收从节点发送的任务运行成功消息;发送单元,还用于若接收单元接收到从节点发送的任务运行成功消息,且处理单元确定第一故障检测组和第二故障检测组不同,发送单元发送与第一故障检测组对应的故障检测任务至该从节点;其中,该第二故障检测组为所述从节点当前所属的故障检测组。

结合第三方面,在第一种可能的实现方式中,上述获取单元,还用于:根据从节点的故障概率模型,获取该从节点的第一向量,该第一向量为该从节点的故障概率模型中由故障概率组成的向量;计算至少一个故障检测组中每个故障检测组的目标向量与从节点的第一向量的向量距离,将向量距离最小的故障检测组作为所述第一故障检测组;其中,至少一个故障检测组中每个故障检测组的目标向量不同,该至少一个故障检测组包括:简单检测组、磁盘检测组、网络检测组、cpu检测组和内存检测组。

结合第三方面和上述可能的实现方式,在另一种可能的实现方式中,上述获取单元,还用于:获取从节点的任务特征向量;根据该任务特征向量和第一故障概率模型集确定对应所述任务特征向量的故障概率模型;其中,该第一故障概率模型集包括至少两个任务特征向量,以及与该至少两个任务特征向量一一对应的故障概率模型。

结合第三方面和上述可能的实现方式,在另一种可能的实现方式中,上述获取单元,还用于:获取从节点的任务特征向量;根据该任务特征向量、从节点运行该任务的操作系统平台以及第二故障概率模型集确定对应该任务特征向量和操作系统平台的故障概率模型;其中,该第二故障概率模型集包括至少一个操作系统平台、至少两个任务特征向量,以及与该至少两个任务特征向量和至少一个操作系统平台一一对应的故障概率模型。

结合第三方面和上述可能的实现方式,在另一种可能的实现方式中,上述获取单元,还用于:根据所述从节点上运行的所有任务中每个任务对应的特征代码片段,获取该从节点的任务特征向量。

结合第三方面和上述可能的实现方式,在另一种可能的实现方式中,上述处理单元,还用于:确定从节点是否故障;若该处理单元确定从节点故障,上述发送单元将与该从节点的任务特征向量相似的所有从节点的故障风险上报至计算框架。

本申请实施例的第四方面,提供一种节点故障检测装置,应用于从节点,该装置包括:接收单元,用于接收主节点发送的任务;处理单元,用于运行接收单元接收的所述任务;发送单元,用于若处理单元运行所述任务成功,向主节点发送任务运行成功消息;接收单元,还用于接收主节点发送的与第一故障检测组对应的故障检测任务;该第一故障检测组和第二故障检测组不同;其中,该第一故障检测组为从节点运行所述任务时所属的故障检测组,该第二故障检测组为从节点当前所属的故障检测组,该第一故障检测组和该第二故障检测组分别为至少一个故障检测组中的一个,该至少一个故障检测组中不同的故障检测组采用的故障检测方法不同。至少一个故障检测组包括:简单检测组、磁盘检测组、网络检测组、cpu检测组和内存检测组。

上述第三方面以及第三方面的各种实现方式和第四方面以及第四方面的各种实现方式的效果描述可以参考第一方面和第二方面相应效果的描述,在此不再赘述。

本申请实施例的第五方面,提供了一种服务器,该服务器的结构中包括处理器和存储器,该存储器用于与处理器耦合,保存该服务器必要的程序指令和数据,该处理器用于执行存储器中存储的程序指令,使得该服务器执行上述方法。

本申请实施例的第六方面,提供一种计算机存储介质,所述计算机存储介质中存储有计算机程序代码,当所述计算机程序代码在处理器上运行时,使得所述处理器执行第一方面或第一方面的可能的实现方式中任一项所述的节点故障检测方法,或者执行第二方面或第二方面的可能的实现方式中任一项所述的节点故障检测方法。

本申请实施例的第七方面,提供了一种计算机程序产品,该程序产品储存有上述处理器执行的计算机软件指令,该计算机软件指令包含用于执行上述方面所述方案的程序。

本申请实施例的第八方面,提供了一种装置,该装置以芯片的产品形态存在,该装置的结构中包括处理器和存储器,该存储器用于与处理器耦合,保存该装置必要的程序指令和数据,该处理器用于执行存储器中存储的程序指令,使得该装置执行上述方法中节点故障检测装置的功能。

附图说明

图1为本申请实施例提供的一种云数据中心的系统架构示意图;

图2为本申请实施例提供的一种主节点的结构示意图;

图3为本申请实施例提供的一种节点故障检测方法的流程图;

图4为本申请实施例提供的另一种节点故障检测方法的流程图;

图5为本申请实施例提供的一种节点故障检测装置的组成示意图;

图6为本申请实施例提供的另一种节点故障检测装置的组成示意图;

图7为本申请实施例提供的另一种节点故障检测装置的组成示意图;

图8为本申请实施例提供的另一种节点故障检测装置的组成示意图。

具体实施方式

本申请实施例提供的一种节点故障检测方法可以应用于云数据中心系统,图1为本申请实施例提供的一种云数据中心的系统架构示意图。如图1所示,该系统架构包括多个计算框架(framework,简称fw),一个主节点,与该主节点通信的多个从节点。

计算框架fw负责接收用户请求,根据集群资源信息调度任务,并将任务下发到主节点。

主节点用于接收fw发送的任务,并根据从节点运行的任务确定从节点运行该任务时所属的故障检测组,并在从节点运行该任务时所属的故障检测组与从节点当前所属的故障检测组不同时,调整从节点所在的故障检测组,并下发从节点运行任务时所属的故障检测组对应的检测任务至从节点。本申请实施例中的故障检测组可以包括:简单检测组、磁盘检测组、网络检测组、cpu检测组和内存检测组等,上述不同的故障检测组采用的故障检测方法不同。示例性的,磁盘检测组可以采用iometer,网络检测组可以采用iperf,cpu检测组可以采用stress,内存检测组可以采用memtester。本申请实施例对于故障检测组包含的具体类型以及不同的故障检测组采用的具体检测方法并不进行限制,任何一种对不同的故障检测组采用不同的故障检测方法的方式均在本申请实施例的保护范围内。

从节点用于运行主节点发送的任务,并在主节点确定从节点运行该任务时所属的故障检测组与从节点当前所属的故障检测组不同时,接收主节点发送的新的检测任务,并根据该检测任务调整从节点所在的故障检测组,该从节点还用于上报相关任务状态。

示例性的,系统启动时,根据配置初始化多个故障检测,可以包括:简单检测组、磁盘检测组、网络检测组、cpu检测组和内存检测组等,并为每个故障检测组配置目标向量,该目标向量用于确定从节点所属的故障检测组,其中,各个故障检测组的目标向量均不同。示例性的,磁盘检测组的目标向量可以设置为(0,0,1,0),网络检测组的目标向量可以设置为(0,0,0,1),cpu检测组的目标向量可以设置为(1,0,0,0),内存检测组的目标向量可以设置为(0,1,0,0)。初始化时,从节点默认注册到简单检测组,若从节点接收并执行主节点发送的任务后,主节点判断出从节点运行该任务所属的故障检测组与简单检测组不同时,主节点向从节点发送从节点运行该任务所属的故障检测组相应的故障检测任务。本申请实施例仅是示例性的说明各个检测组的目标向量,实际应用中各个检测组目标向量的具体取值可以根据经验进行设置。

可理解的是,图1仅为示例性说明,实际应用中,云数据中心的系统架构可以包括比图1所示更多或者更少的部件,例如,还可以包括多个备用主节点,用于在主节点发生故障时,执行主节点的任务;图1所示结构不对本申请实施例提供的系统架构构成任何限制。示例性的,本申请实施例系统架构中的计算框架fw可以为hadoop、spark等,本申请实施例中对fw的具体形式不做特殊限制。

示例性的,图2为本申请实施例提供的一种主节点100的结构示意图。如图2所示,该主节点100包括:硬件层和软件层,硬件层包括处理器101、存储器102、总线103等,软件层包括操作系统104。

处理器101:是主节点100的核心部件,用于运行主节点100的操作系统与主节点100上的应用程序(包括系统应用程序和第三方应用程序)。

本申请实施例中,处理器101具体可以为中央处理器(centralprocessingunit,cpu),通用处理器,数字信号处理器(digitalsignalprocessor,dsp),专用集成电路(application-specificintegratedcircuit,asic),现场可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合,其可以实现或执行结合本申请实施例公开的内容所描述的各种示例性的逻辑方框,模块和电路;处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等。

存储器102:可用于存储软件程序以及模块,处理器101通过运行存储在存储器102里的软件程序以及模块,从而执行服务器100的各种功能应用以及数据处理。存储器102可包含一个或多个计算机可读存储介质。存储器102包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等,例如,可存储实现本申请实施例提供的故障检测方法的程序。

本申请实施例中,存储器102具体可以包括易失性存储器(volatilememory),例如随机存取存储器(random-accessmemory,ram);该存储器也可以包括非易失性存储器(non-volatilememory),快闪存储器(flashmemory),硬盘(hardfiskdrive,hdd)或固态硬盘(solid-statedrive,ssd);该存储器还可以包括上述种类的存储器的组合。

总线103:是计算机各种功能部件之间传送信息的公共通信干线,按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。

操作系统(operatingsystem,简称os)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,用于支持其他软件,例如各种应用程序的运行。本申请实施例中操作系统可以为各种操作系统,例如,windows操作系统、linux操作系统、ios操作系统,android开源操作系统等。

可理解的是,图2仅为示例性说明,实际应用中,主节点100可以包括比图2所示更多或者更少的部件,例如,还可以包括用户接口,用于支持系统和用户之间进行交互和信息交换,或者通信接口,用于支持终端与其它终端、服务器、网络之间的通信;图2所示结构不对本申请实施例提供的服务器构成任何限制。

为了解决背景技术中,云数据中心的故障检测系统不能根据节点运行任务的变化,动态调整故障检测方法的问题,本申请实施例提供了一种节点故障检测方法,该方法能够根据节点运行任务的变化,动态调整故障检测方法,减少系统资源占用的同时,提高故障检测的准确率。

结合图1、如图3所示,本申请实施例提供的故障检测方法应用于主节点,该方法可以包括步骤s101-s109:

s101、主节点将任务发送至从节点。

示例性的,主节点将任务发送至从节点之前,计算框架fw先接收用户任务部署请求,并根据集群资源信息调度任务,将任务下发到主节点,该主节点接收fw发送的任务后,根据节点资源是否满足任务需求,选择合适的从节点进行任务部署。示例性的,若主节点接收到的任务需要加速器,那么主节点可以选择具有加速器资源的从节点执行该任务,并将任务发送至该从节点。本申请实施例对于主节点选择从节点的具体原则并不进行限定。

s102、所述从节点接收所述任务。

s103、所述从节点运行所述任务。

s104、所述主节点获取所述从节点的故障概率模型。

该故障概率模型包括至少一种故障类型,以及分别与每一种故障类型对应的故障概率。示例性的,该故障类型可以包括:磁盘故障、网络故障、cpu故障和内存故障,故障概率为各故障类型发生故障的概率值。本申请实施例对于从节点发生故障的具体类型并不进行限定,在此仅以上述四种故障类型进行示例性说明。

示例性的,主节点获取从节点的故障概率模型可以包括以下步骤s104a-s104b。

s104a、所述主节点获取所述从节点的任务特征向量。

示例性的,该任务特征向量可以由47维平台无关特征指令组成,也可以由系统接口组成。示例性的,该系统接口可以包括read(),write(),open(),close(),stat()等。

如表1所示,该47维平台无关特征指令包括以下47个指令,任务特征向量为程序运行时,以下47个指令在单位时间内的执行的次数组成的向量。示例性的,该任务特征向量可以为(5,4,6,7···10),该任务特征向量是由47个数值组成的向量,每个数值代表表1中相关指令在单位时间内执行的次数。

表1

示例性的,主节点获取所述从节点的任务特征向量可以包括:主节点获取从节点上运行的所有任务中每个任务对应的特征代码片段,并根据所述特征代码片段获取从节点的任务特征向量。其中,每个任务的特征代码片段是指能够代表该任务对应的应用程序的代码片段。

示例性的,主节点可以通过在线压测获取从节点上运行的至少两个任务中每个任务对应的特征代码片段。例如,从节点上运行三个任务,分别为任务a、任务b和任务c,主节点接收fw发送的新任务d,可以通过在线压测该任务d,获取该任务d的特征代码片段。本申请实施例对于特征代码片段的具体获取方式并不进行限定,在此仅是示例性说明。

示例性的,主节点可以通过将从节点上运行的每个任务和与每个任务对应的特征代码片段进行在线压测,获取从节点的任务特征向量。

例如,主节点将任务a、任务b、任务c和任务d分别与各个任务对应的特征代码片段一起在线压测,获取从节点运行任务a、任务b、任务c和任务d时的任务特征向量,该任务特征向量可以用47维平台无关特征指令的向量表示,也可以由系统接口的向量表示。本申请实施例对于根据特征代码片段获取从节点的任务特征向量的具体方法并不进行限定,在此仅是示例性说明。

s104b、所述主节点根据所述任务特征向量和故障概率模型集确定对应该任务特征向量的故障概率模型。

该故障概率模型集可以包括与任务特征向量一一对应的故障概率模型。该故障概率模型集可以存储在主节点中,也可以存储在与主节点通信的其他节点或存储设备中。本申请实施例对于故障概率模型集具体的存储位置并不进行限定。

示例性的,本申请中的故障概率模型集可以通过离线建模的方式获取,该离线建模的过程可以为:首先,通过在云环境中收集各种不同类型的任务,包括it任务、ct任务等,得到训练集;其次,在同一个os平台运行任务训练集,得到任务特征向量,任务特征代码片段以及运行任务产生的故障;最后,统计任务特征向量及所产生的故障,得到任务特征向量和与其对应的故障概率模型。示例性的,本申请实施例的故障概率模型集也可以是在不同的os平台运行任务训练集以后得到的,该故障概率模型集包括操作系统平台、任务特征向量,以及与该任务特征向量和该操作系统平台一一对应的故障概率模型。

示例性的,本申请实施例中的故障概率模型集可以是在同一os平台训练得到的,也可以是在不同os平台训练得到的,以下详细说明上述不同的故障概率模型集的具体结构。

若故障概率模型集是在同一os平台训练得到的,该故障概率模型集可以为第一故障概率模型集,该第一故障概率模型集可以包括至少两个任务特征向量,以及与该至少两个任务特征向量一一对应的故障概率模型。

示例性的,如表2所示的第一故障概率模型集,包括从节点在同一os平台运行不同任务时的故障概率模型。

表2

若故障概率模型集是在不同os平台训练得到的,该故障概率模型集可以为第二故障概率模型集,该第二故障概率模型集可以包括至少一个操作系统平台、至少两个任务特征向量,以及与该至少两个任务特征向量和该至少一个操作系统平台一一对应的故障概率模型。

示例性的,如表3所示的第二故障概率模型集,包括从节点在不同操作系统os平台运行不同任务时的故障概率模型。

表3

示例性的,主节点根据任务特征向量和故障概率模型集确定对应该任务特征向量的故障概率模型可以包括以下两种实现方式。

方式一,主节点可以根据任务特征向量和第一故障概率模型集确定对应该任务特征向量的故障概率模型。

示例性的,主节点可以根据该任务特征向量,在第一故障概率模型集中查找对应该特征向量的故障概率模型,确定故障概率模型。

如表2所示,从节点运行任务task1时,该从节点的任务特征向量为节点运行任务特征向量_1,查找表2所示的第一故障概率模型集,确定对应该任务特征向量的故障概率模型包括四种故障类型,分别为cpu故障、内存(memory,简称mem)故障、硬盘(disk)故障和网络(net)故障,各故障类型对应的故障概率分别为cpu故障的概率为0.1,内存故障的概率为0.1,硬盘故障和网络故障的概率为0。

方式二,主节点可以根据任务特征向量、从节点运行任务的操作系统平台以及第二故障概率模型集确定对应该任务特征向量和该操作系统平台的故障概率模型。

示例性的,主节点可以根据任务特征向量和运行任务的操作系统平台,查找第二故障概率模型集中对应该任务特征向量和操作系统平台的故障概率模型,确定故障概率模型。

如表3所示,从节点运行任务task2,该从节点在操作系统os_0上运行task2时,该从节点的任务特征向量为节点运行任务特征向量_2,根据表3所示的第二故障概率模型集,确定对应该任务特征向量和操作系统平台的故障概率模型包括四种故障类型,分别为cpu故障、内存(mem)故障、硬盘(disk)故障和网络(net)故障,cpu故障的概率为0.2,内存故障的概率为0.2,硬盘故障的概率为0,网络故障的概率为0.1。

s105、所述主节点根据所述从节点的故障概率模型,确定第一故障检测组。

该第一故障检测组为从节点运行所述任务时所属的故障检测组,该第一故障检测组为至少一个故障检测组中的一个,其中,至少一个故障检测组中不同的故障检测组采用的故障检测方法不同。

示例性的,根据从节点的故障概率模型,确定第一故障检测组可以包括:根据从节点的故障概率模型,获取该从节点的第一向量,该第一向量为该从节点的故障概率模型中由故障概率组成的向量,计算至少一个故障检测组中每个故障检测组的目标向量与从节点的第一向量的向量距离,将向量距离最小的故障检测组作为该从节点运行所述任务时所属的故障检测组。

示例性的,根据从节点的故障概率模型,计算至少一个故障检测组中每个故障检测组的目标向量与从节点的第一向量的向量距离可以包括,根据从节点的故障概率模型获取该故障概率模型中每种故障类型对应的故障概率组成的第一向量,计算该第一向量与每个故障检测组的目标向量的向量距离,例如,从节点故障概率模型中由故障概率组成的第一向量为(a,b,c,d),一个故障检测组的目标向量为(x,y,m,n),两个向量的向量距离为本申请实施例对于计算向量距离的具体方式并不进行限定。

示例性的,若从节点的故障概率模型包含四种故障类型,分别为cpu故障、内存故障、硬盘故障和网络故障,cpu故障的概率为0.2,内存故障的概率为0.1,硬盘故障的概率为0.4,网络故障的概率均为0.3,该从节点的故障概率模型中由故障概率组成的第一向量为(0.2,0.1,0.4,0.3)。若磁盘检测组的目标向量为(0,0,1,0),网络检测组的目标向量为(0,0,0,1),cpu检测组的目标向量为(1,0,0,0),内存检测组的目标向量为(0,1,0,0),计算从节点的第一向量与各故障检测组的目标向量的向量距离,该从节点的第一向量与磁盘检测组的目标向量的向量距离该从节点的第一向量与网络检测组的目标向量的向量距离该从节点的第一向量与cpu检测组的目标向量的向量距离为该从节点的第一向量与内存检测组的目标向量的向量距离该从节点的第一向量与磁盘检测组的目标向量的向量距离最小,因此该从节点所属的第一故障检测组可以为磁盘检测组。

示例性的,如果计算得到该从节点的第一向量与多个磁盘检测组的目标向量的向量距离相同且均为最小,主节点在多个向量距离最小的故障检测组中随机确定该从节点所属的第一故障检测组。

s106、若所述从节点运行所述任务成功,所述从节点向所述主节点发送任务运行成功消息。

示例性的,所述从节点接收任务后,运行该任务,如果任务运行成功,向主节点发送任务运行成功消息。

s107、所述主节点接收所述从节点发送的任务运行成功消息。

s108、若所述主节点确定所述第一故障检测组和第二故障检测组不同,发送与所述第一故障检测组对应的故障检测任务至所述从节点。

其中,第二故障检测组为从节点当前所属的故障检测组。

示例性的,若主节点接收到从节点发送的任务运行成功消息,主节点可以判断从节点运行所述任务时所属的第一故障检测组和从节点当前所属的第二故障检测组是否相同。如果从节点运行所述任务时所属的第一故障检测组和从节点当前所属的第二故障检测组不同,确定从节点运行所述任务后的故障检测组发生变化,主节点向从节点发送与第一故障检测组对应的故障检测任务,以使得从节点采用第一故障检测组对应的检测方法进行故障检测。

示例性的,初始化时,从节点可以默认注册到任意一个故障检测组,在此仅以初始化时将从节点默认注册到简单检测组为例进行说明,若从节点接收主节点发送的任务后,主节点计算得到从节点所属的故障检测组为磁盘检测组,主节点判断出从节点的故障检测组发生变化,向从节点发送与磁盘检测组相应的故障检测任务。

s109、所述从节点接收所述主节点发送的与第一故障检测组对应的故障检测任务。

示例性的,从节点原来运行的是简单检测组对应的故障检测任务,运行新任务后,从节点接收并运行主节点发送的新的故障检测任务,加入到新的故障检测组。

本申请实施例提供的节点故障检测方法,对于上述步骤s101-s109的具体执行顺序并不进行限制。例如,步骤s103可以与步骤s104-s105同时执行,也可以先执行步骤s103,再执行步骤s104-s105。

本申请实施例提供的一种节点故障检测方法,通过将任务发送至从节点,获取从节点的故障类型和故障概率,并根据故障类型和故障概率确定第一故障检测组,所述第一故障检测组为所述从节点运行所述任务时所属的故障检测组,所述第一故障检测组为至少一个故障检测组中的一个,其中,所述至少一个故障检测组中不同的故障检测组采用的故障检测方法不同,若所述主节点接收到所述从节点发送的任务运行成功消息,且所述第一故障检测组和第二故障检测组不同,发送与所述第一故障检测组对应的故障检测任务至所述从节点。本申请实施例中的节点故障检测方法,能够根据节点运行任务的变化,确定节点运行任务时所属的故障检测组,并在节点运行任务时所属的故障检测组与节点当前所属的故障检测组发生变化时,动态调整故障检测方法,减少系统资源占用的同时,提高故障检测的准确率

本申请还提供一实施例,参见图4,该方法包括s110-s111。

s110、所述主节点确定所述从节点是否故障。

示例性的,该主节点确定从节点故障的方法可以包括:主节点通过检测主节点和从节点之间的心跳,若主节点确定主节点和从节点之间的心跳超时,主节点可以确定从节点故障。本申请实施例对于主节点确定从节点故障的具体方法并不进行限定,任一种主节点确定从节点故障的方法均在本申请实施例的保护范围内。

s111、若所述主节点确定所述从节点故障,所述主节点将与所述从节点的任务特征向量相似的所有从节点的故障风险上报至计算框架。

示例性的,若主节点确定从节点故障,该主节点可以查找与该故障的从节点的任务特征向量相似的从节点,并将所有与该从节点的任务特征向量相似的从节点的故障风险上报至fw,以保证系统稳定性。

示例性的,该任务特征向量相似可以包括某一从节点的特征向量与该故障的从节点的特征向量的向量距离在某一阈值范围内。例如,若主节点确定slave1故障,主节点查找特征向量与该slave1的特征向量的向量距离在某一阈值范围内的其他从节点slave,将特征向量和slave1的特征向量的向量距离在某一阈值范围内的从节点slave的故障风险上报。

本申请实施例提供的一种节点故障检测方法,通过将任务发送至从节点,获取从节点的故障类型和故障概率,并根据故障类型和故障概率确定第一故障检测组,所述第一故障检测组为所述从节点运行所述任务时所属的故障检测组,所述第一故障检测组为至少一个故障检测组中的一个,其中,所述至少一个故障检测组中不同的故障检测组采用的故障检测方法不同,若所述主节点接收到所述从节点发送的任务运行成功消息,且所述第一故障检测组和第二故障检测组不同,发送与所述第一故障检测组对应的故障检测任务至所述从节点;所述主节点确定所述从节点是否故障,若所述主节点确定所述从节点故障,所述主节点将与该从节点的任务特征向量相似的所有从节点的故障风险上报至计算框架。本申请实施例中的节点故障检测方法,能够根据节点运行任务的变化,动态确定节点运行任务时所属的故障检测组,并在节点运行任务时所属的故障检测组与节点当前所属的故障检测组发生变化时,动态调整故障检测方法,在减少系统资源占用的同时,提高了故障检测的准确率,同时上报同类节点故障风险预警,保证系统稳定性。

上述主要从方法步骤的角度对本发明实施例提供的方案进行了介绍。可以理解的是,服务器为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件和计算机软件的结合形式来实现。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

本申请实施例可以根据上述方法示例对服务器进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

在采用对应各个功能划分各个功能模块的情况下,图5示出了一种节点故障检测装置500的结构示意图,该节点故障检测装置500应用于主节点,包括:发送单元501,获取单元502,处理单元503,接收单元504。

发送单元501用于支持主节点执行图3中的s101、s108以及图4中的s111;获取单元502用于支持主节点执行图3中的s104;处理单元503用于支持主节点执行图3中的s105和图4中的s110;接收单元504用于支持主节点执行图3中的s107。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。

图6示出了一种节点故障检测装置600的结构示意图,该节点故障检测装置600应用于从节点,包括:接收单元601,处理单元602,发送单元603。接收单元601用于支持从节点执行图3中的s102、s109;处理单元602用于支持从节点执行图3中的s103;发送单元603用于支持从节点执行图3中的s106;

在采用集成的单元的情况下,图7示出了一种节点故障检测装置700的结构示意图。该节点故障检测装置700包括:存储模块701和处理模块702。处理模块702用于对节点故障检测装置的动作进行控制管理,例如,处理模块702用于支持节点故障检测装置执行图4中的s101、s104、s105、s107、s108、s110和s111,和/或用于本文所描述的技术的其它过程。存储模块701,用于存储服务器的程序代码和数据。当上述存储模块701为存储器,处理模块702为处理器时,图7所示的节点故障检测装置的具体结构可以为上述图2所示的主节点,其中,上述图2涉及的各部件的所有相关内容的描述均可以援引到图7对应部件的功能描述,在此不再赘述。

在采用集成的单元的情况下,图8示出了一种节点故障检测装置800的结构示意图。该节点故障检测装置800包括:存储模块801和处理模块802。处理模块802用于对节点故障检测装置的动作进行控制管理,例如,处理模块802用于支持节点故障检测装置执行图4中的s102、s103、s106和s109,和/或用于本文所描述的技术的其它过程。存储模块801,用于存储服务器的程序代码和数据。当上述存储模块801为存储器,处理模块802为处理器时,图8所示的节点故障检测装置的具体结构可以为上述图2所示的结构,其中,上述图2涉及的各部件的所有相关内容的描述均可以援引到图7对应部件的功能描述,在此不再赘述。

结合本申请公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(randomaccessmemory,ram)、闪存、可擦除可编程只读存储器(erasableprogrammablerom,eprom)、电可擦可编程只读存储器(electricallyeprom,eeprom)、寄存器、硬盘、移动硬盘、只读光盘(cd-rom)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于asic中。另外,该asic可以位于核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设备中。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

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