CN107426003B - 一种故障检测方法及装置 - Google Patents
一种故障检测方法及装置 Download PDFInfo
- Publication number
- CN107426003B CN107426003B CN201710301313.4A CN201710301313A CN107426003B CN 107426003 B CN107426003 B CN 107426003B CN 201710301313 A CN201710301313 A CN 201710301313A CN 107426003 B CN107426003 B CN 107426003B
- Authority
- CN
- China
- Prior art keywords
- target
- similarity
- resource information
- detected
- central
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0677—Localisation of faults
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0806—Configuration setting for initial configuration or provisioning, e.g. plug-and-play
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0893—Assignment of logical groups to network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/06—Generation of reports
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开了一种故障检测方法及装置,涉及容错技术领域,能够解决针对被监测对象进行故障检测过程中产生误判的概率过高的问题。该故障检测方法包括:中心对象按照聚类算法,将所有被检测对象划分为至少两个聚类集合,并为每个聚类集合配置故障检测所需的参数;中心对象确定每个被检测对象与中心对象之间的相似度,并确定每个聚类集合内与中心对象之间相似度最大的被检测对象为子中心对象,其中,相似度用于衡量不同对象之间的相似程度;在子中心对象按照中心对象配置的故障检测所需的参数,检测到聚类集合内存在产生故障的被检测对象后,中心对象接收子中心对象上报的故障信息。本发明实施例适用于被检测对象的故障检测。
Description
技术领域
本发明实施例涉及容错技术领域,尤其涉及一种故障检测方法及装置。
背景技术
故障检测属于一种常用的容错技术,而容错技术就是在系统因各种原因而出现数据、文件损坏或丢失后,能够确保系统自动将这些损坏或丢失的数据、文件恢复到发生事故以前的状态,从而使系统能够连续正常的运行。
传统的故障检测过程主要采用中心化故障检测方法,在实现过程中需要建立被检测系统与检测系统之间的链路,然后通过发送心跳报文以判断被检测系统是否存活。其中,一个检测系统中往往包括一个检测对象(又称中心对象)和多个被检测对象。在被检测对象发生故障后,中心对象会对产生故障的被检测对象采取一些容错机制,比如,重启、迁移、热备份等。而对于检测时间要求较高的通信系统而言,上述中心化故障检测方法往往很难满足通信系统对于心跳报文反应时间的需求,因此,为了实现故障的快速检测,去中心化故障检测方法应运而生。
常用的去中心化故障检测方法主要包括:基于邻域划分的去中心化故障检测方法和基于Gossip协议的去中心化故障检测方法。其中,在基于邻域划分的去中心化故障检测方法在实现过程中,如图1所示,在被检测对象(即服务提供节点)发生故障后,其他与被检测对象邻居的被检测对象会将该故障上报给事先指定的故障上报对象(即服务注册中心),并由故障上报对象完成该故障的诊断,之后将检测结果上报给中心对象(即服务调用者)。正如图1所示,邻居的被检测对象之间相互检测,并在故障上报对象确定故障存在后将检测结果上报给中心对象,这样就使其他被检测对象、故障上报对象分别分担一部分中心对象的操作,从而消除了中心对象的性能瓶颈问题。
但是,采用上述实现方式完成故障检测,很可能会因不同被检测对象的业务或是负载情况的变化,而导致各个被检测对象对于心跳报文响应周期的需求有所不同。对于那些业务较多或是负载较高的被检测对象而言,其响应心跳报文的时延会相对较长,这样一来,与那些业务相对较少、负载相对较低的被检测对象一起进行相互检测时,则会增加彼此之间出现误判的概率。比如,某一被检测对象接收到心跳报文后,因负载过高而延迟响应,而在该被检测对象响应之前,该被检测对象已被定义为产生故障的被检测对象并上报给故障上报对象,从而造成误判,使检测结果不可信。
发明内容
本发明实施例提供一种故障检测方法及装置,用于解决针对被监测对象进行故障检测过程中产生误判的概率过高的问题。
为达到上述目的,本发明实施例采用如下技术方案:
第一方面,本发明实施例提供一种故障检测方法。该故障检测方法包括:中心对象按照聚类算法,将所有被检测对象划分为至少两个聚类集合,并为每个聚类集合配置故障检测所需的参数;之后中心对象确定每个被检测对象与中心对象之间的相似度,并确定每个聚类集合内与中心对象之间相似度最大的被检测对象为子中心对象。在子中心对象按照中心对象配置的故障检测所需的参数,检测到聚类集合内存在产生故障的被检测对象后,中心对象接收子中心对象上报故障信息。其中,相似度用于衡量不同对象之间的相似程度。由此可见,中心对象预先采用聚类算法对所有被检测对象分组,得到至少两个聚类集合,并分别为每个聚类集合配置故障检测所需的参数。其中,分组过程采用聚类算法,可以使相关性较大的被检测对象优先被划分至同一聚类集合中。需要说明的是,相关性可以体现为两个被检测对象的负载类型是否相同、关键绩效指标数据是否相近、放置位置是否为不同物理节点等。这样一来,在中心对象进行故障检测所需的参数的配置过程中,就能根据每个聚类集合的特征,单独为各个聚类集合配置,从而使配置的参数更适应于各个被检测对象反应心跳报文的需求,从而降低产生误判的概率。此外,子中心对象的存在还可以为中心对象分担一部分工作,即子中心对象在完成被检测对象的故障检测之后,直接向中心对象上报故障信息。也就意味着,中心对象在完成分组之后,只需要等待各个子中心对象上报故障信息即可,从而节省了中心对象的资源消耗。
在一种可能的设计中,在中心对象按照聚类算法,将所有被检测对象划分为至少两个聚类集合之前,该方法还包括:中心对象从外部对象获取每个被检测对象的资源信息。之后中心对象按照聚类算法,将所有被检测对象划分为至少两个聚类集合,可以具体实现为:中心对象确定每个被检测对象为一个聚类集合,并根据资源信息,确定当前每两个被检测对象之间的相似度,之后将最大相似度对应的两个聚类集合合并为一个聚类集合。重复上述处理流程,直至当前聚类集合的数量大于或等于指定数量。也就意味着,若当前聚类集合的数量小于指定数量,则中心对象确定合并后的聚类集合的资源信息,并确定当前每两个聚类集合之间的相似度,之后将最大相似度对应的两个聚类集合合并为一个聚类集合。由此可见,在上述设计中,提出了一种层次聚类算法的具体实现方式。并且,在实际操作过程中,对被检测对象进行分组时,需要遵循如下原则:负载类型相似度原则、关键绩效指标数据相近原则与被检测对象反亲和性原则。这样一来,中心对象可以结合外部对象提供的每个被检测对象的资源信息,通过一层一层进行聚类的方式,确定当前聚类集合的划分方式,且能够确保每个聚类集合中所有被监测对象尽可能满足负载类型相似度原则、关键绩效指标数据相近原则与被检测对象反亲和性原则。这样一来,就能够使归属于同一聚类集合的多个被监测对象之间性能相近,且一旦某一个被检测对象产生故障,并不会对太多归属于同一聚类集合的多个被检测对象产生影响,从而使每个子中心对象分摊工作压力,也使每个子中心对象更具有针对性的提供更适应于各个聚类集合的检测方式。也就是为不同聚类集合配置不同参数,比如,心跳检测周期、心跳超时阈值和故障判断阈值。
在一种可能的设计中,若每个被检测对象为第一目标,则中心对象为第二目标,若指定聚类集合为第一目标,则所有聚类集合中除指定聚类集合以外的其他聚类集合为第二目标,其中,指定聚类集合为所有聚类集合中的任意一个。那么,中心对象确定第一目标与第二目标之间的相似度,可以实现为:中心对象根据第一目标的资源信息与第二目标的资源信息,确定第一目标与第二目标之间同一项资源信息是否相同;并根据第一目标与第二目标之间每个同一项资源信息的异同,确定第一目标与第二目标之间的相似度。相似度在本发明实施例中,可以解释为两个对象之间的相似程度(比如,每个被检测对象与中心对象之间的相似程度)。其中,相似程度一般可以用两个对象之间的特征距离来表示,而这个特征距离,即上述相似度。因此,针对第一目标和第二目标,采用上述实现方式,能够确保相似程度较高的至少两个被检测对象被划分到同一聚类集合,另外,在本发明实施例中,也是基于该计算方式,确定子中心对象。
在一种可能的设计中,资源信息包括每个被检测对象的负载类型、关键绩效指标KPI数据和放置位置中的至少一个。也就意味着,资源信息的种类可以为一个或是多个,在本发明实施例中不做限定。
在一种可能的设计中,中心对象根据第一目标与第二目标之间每个同一项资源信息的异同,确定第一目标与第二目标之间的相似度包括:第一目标与第二目标之间相同的资源信息越多,确定第一目标与第二目标之间越相似;第一目标与第二目标之间相同的资源信息越少,确定第一目标与第二目标之间越不相似。由此可见,随着第一目标与第二目标之间相同的资源信息数量的增加,能够有效增加第一目标与第二目标之间的相似程度。因此,用于判别第一目标与第二目标相似程度的参数(即资源信息)的数量越多,那么后续判别相似度时的判别依据就更加充分。
在一种可能的设计中,中心对象根据第一目标与第二目标之间每个同一项资源信息的异同,确定第一目标与第二目标之间的相似度包括:中心对象根据第一目标与第二目标之间每个同一项资源信息的异同以及各个资源信息对应的权重系数来确定第一目标与第二目标之间的相似度。也就意味着,在确定第一目标与第二目标之间的相似度的过程中,不仅可以考虑某一类别资源信息的相似情况,还可以根据用户或是工作人员当前需求,调整各种类别的资源信息占据的权重系数。这样一来,可以更有针对性的侧重某一类别资源信息的相似情况的判断,从而更符合用户或是工作人员当前的需求。
在一种可能的设计中,若资源信息包括三项,则中心对象根据第一目标与第二目标之间每个同一项资源信息的异同以及各个资源信息对应的权重系数来确定第一目标与第二目标之间的相似度,可以实现为:中心对象采用公式进行计算,得到第一目标与第二目标之间的相似度。其中,dab用于表示第一目标a与第二目标b之间的相似度;bab用于表示第一目标a与第二目标b的负载类型是否相同;fab用于表示第一目标a与第二目标b的放置位置是否为同一物理节点;Ra用于表示第一目标a的资源信息对应的资源向量,其中,用于表示资源向量的坐标中每一个参数对应一项资源信息;Rb用于表示第二目标b的资源信息对应的资源向量;用于表示资源信息中p项对应的标准差;α1、α2、α3分别用于表示负载类型、放置位置和KPI数据对应的权重系数,α1、α2、α3的取值都为大于或等于0且小于或等于1的正数,且α1、α2与α3的和为1。对于分组的情况而言,采用上述设计中提供的实现方式,能够在确保采用同等原则的前提条件下,根据当前需求配置负载类型相似度原则、KPI数据相近原则与被检测对象反亲和性原则的权重系数,得出适应于当前需求的分组参数,即相似度。之后依据计算得到的分组参数,完成分组过程。对于确定子中心对象的情况而言,采用上述涉及中提供的实现方式,能够找到与中心对象之间相似度较高的对象,且一般情况下子中心对象与中心对象的放置位置不同,这样一来,对于数据处理占用资源较多的中心对象和子中心对象而言,就有足够的能力去支持整个故障检测过程。
在一种可能的设计中,故障检测所需的参数至少包括心跳检测周期、心跳超时阈值、故障判断阈值中的一项。
在一种可能的设计中,中心对象在划分聚类集合的过程中,可以采用周期性划分的方式,即中心对象周期性按照层次聚类算法,将所有被检测对象划分为至少两个聚类集合。与现有技术相比,对所有被检测对象的分组并不是一成不变的,随着被检测对象的增加、减少,还可以周期性对分组情况进行调整。需要说明的是,由于调整过程为周期性,而非实时调整,因此,很可能存新增被检测对象后,由于新增被检测对象不属于任何一个聚类集合,因此,为了确保新增被检测对象也能作为被检测对象,参与到故障检测过程中,在本发明实施例中,可以由中心对象对这个新增被检测对象进行故障检测,并在检测到故障后,直接上报;或者,还可以通过确定新增被检测对象与所有子中心对象之间的相似度,之后将最大相似度对应的子中心对象所在聚类集合作为新增被检测对象当前所处聚类集合;或者,随机将新增被检测对象放置到与新增被检测对象距离较近的聚类集合中。
第二方面,本发明实施例提供一种故障检测方法。该故障检测方法包括:子中心对象接收中心对象配置的故障检测所需的参数,其中,子中心对象为聚类集合内与中心对象之间相似度最大的被检测对象;之后在子中心对象按照中心对象配置的故障检测所需的参数,检测到聚类集合内存在产生故障的被检测对象后,子中心对象向中心对象上报故障信息。
在一种可能的设计中,故障检测所需的参数至少包括心跳检测周期、心跳超时阈值中的一项。
第三方面,本发明实施例提供一种故障检测装置。该装置应用于中心对象,可以实现上述第一方面中的中心对象所执行的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模块。
第四方面,本发明实施例提供一种故障检测装置。该装置应用于子中心对象,可以实现上述第二方面中的子中心对象所执行的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模块。
第五方面,本发明实施例提供一种计算机设备,该计算机设备应用于中心对象,包括存储器、处理器及在存储器上并可在处理器上运行的计算机程序,该处理器在执行程序时可以实现上述第一方面中所涉及的方法步骤。
第六方面,本发明实施例提供一种计算机设备,该计算机设备应用于子中心对象,包括存储器、处理器及在存储器上并可在处理器上运行的计算机程序,该处理器在执行程序时可以实现上述第二方面中所涉及的方法步骤。
第七方面,本发明实施例提供了一种计算机存储介质,用于储存为上述第三方面、第五方面中所用的计算机软件指令,其包含用于执行上述方面所设计的程序。
第八方面,本发明实施例提供了一种计算机存储介质,用于储存为上述第四方面、第六方面中所用的计算机软件指令,其包含用于执行上述方面所设计的程序。
相比较于现有技术中,因每个被检测对象被配置的故障检测所需的参数均相同,而造成部分被检测对象响应心跳报文超时,从而引发误判、检测结果不可信的情况,在本发明实施例中,中心对象预先采用聚类算法对所有被检测对象分组,得到至少两个聚类集合,并分别为每个聚类集合配置故障检测所需的参数。其中,分组过程采用聚类算法,可以使相关性较大的被检测对象优先被划分至同一聚类集合中。需要说明的是,相关性可以体现为两个被检测对象的负载类型是否相同、KPI数据是否相近、放置位置是否为不同物理节点等。这样一来,在中心对象进行故障检测所需的参数的配置过程中,就能根据每个聚类集合的特征,单独为各个聚类集合配置,从而使配置的参数更适应于各个被检测对象反应心跳报文的需求,从而降低产生误判的概率。此外,子中心对象的存在还可以为中心对象分担一部分工作,即子中心对象在完成被检测对象的故障检测之后,直接向中心对象上报故障信息。也就意味着,中心对象在完成分组之后,只需要等待各个子中心对象上报故障信息即可,从而节省了中心对象的资源消耗。
附图说明
图1为背景技术提供的一种基于邻域划分的去中心化故障检测示意图;
图2为本发明实施例提供的一种故障检测系统的示意图;
图3为本发明实施例提供的一种故障检测方法交互图;
图4为本发明实施例提供的一种层次聚类算法实现过程的示意图;
图5为本发明实施例提供的另一种故障检测方法交互图;
图6为本发明实施例提供的一种自组织分组原理示意图;
图7为本发明实施例提供的一种基于聚类的自组织去中心故障检测分组算法流程示意图;
图8为本发明实施例提供的另一种故障检测方法交互图;
图9为本发明实施例提供的一种故障检测装置的结构示意图;
图10、图11、图12为本发明实施例提供的另一种故障检测装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。本文所涉及的技术术语的中英文对照参见表一内容。
表一
本发明实施例可以用于一种故障检测系统,在该故障检测系统中,至少包括中心对象、外部对象和被检测对象,其中,被检测对象中存在至少两个子中心对象。在本发明实施例中,在中心对象、子中心对象和被检测对象内部都设置有代理,用于代表相应对象完成数据传输等工作。并且,中心对象的代理至少包括两部分,即模型求解器和模型管理器。其中,模型管理器与外部对象相连,用于从外部对象获取各个被检测对象的KPI数据、或是将被检测对象退出故障检测系统的消息向外部对象传递、或是从外部对象获知故障检测系统中加入新的被检测对象的消息等;模型求解器与模型管理器相连,用于与模型管理器之间进行数据交互,模型求解器还与每个分组(即所有被检测对象在完成分组后得到的每个聚类集合)的子中心对象相连,以从子中心对象获取某一个或是多个被检测对象出现故障的消息、或是将分组方案(即哪些被检测对象被划分至同一分组中)向各个子中心对象发送等。如图2所示,故障检测系统中包括外部对象、中心对象和n个组(即在所有被检测对象完成分组后,共得到n个聚类集合),在每个分组中都包括一个子中心对象和多个被检测对象。其中,n为大于1的正整数。位于同一组内的多个被检测对象能够分别与该组内的子中心对象进行数据交互,从而在被检测对象检测到邻居被检测对象产生故障后,将故障信息向子中心对象发送。之后若子中心对象通过诊断后,发现被检测对象确实存在故障,则由子中心对象的代理向中心对象的代理中模型求解器发送故障信息,以实现故障上报。
需要说明的是,本发明实施例中所涉及的中心对象、被检测对象、子中心对象以及外部对象,均可以采用软件或是硬件实现。其中,若对象(即中心对象、被检测对象、子中心对象以及外部对象)采用硬件实现,则可以为服务器等设备,且每两个具备数据交互条件的对象之间可以通过网络等数据传输途径,进行数据交互;若对象采用软件实现,则可以为进程、虚拟机、容器等,且每两个具备数据交互条件的对象之间可以通过UDP、HTTP等协议,进行数据交互。由此可见,在本发明实施例中,对于上述各个对象的实现方式不做限定,同时,对于对象与对象之间进行数据交互的方式也不做限定,在文中所提及的各种对象实现形式、数据交互方式,均作为一种可能的实现方式呈现。
本发明实施例提供一种故障检测方法,该方法可以由图2所示的中心对象和子中心对象共同来实现,如图3所示,该方法包括:
步骤101、中心对象按照聚类算法,将所有被检测对象划分为至少两个聚类集合。
在本发明实施例中,认为中心对象已经预先确定好,之后由中心对象作为执行主体,完成后续分组、调度等操作。具体确定中心对象的方式,可以沿用现有技术中确定中心对象的方法,在此不做限定。
需要说明的是,聚类算法属于现有技术中用于聚类的常用算法,在此不详细介绍。其中,聚类算法需要满足一些特定要求,该特定要求具体为:无法确定聚类数目,即不确定最终要生成的聚类集合的数量;聚类结果要求稳定,即对于在同一周期内,被检测对象无规律的加入或退出聚类集合的情况而言,得到的聚类集合中除了减少了已退出聚类集合的被检测对象外,其他聚类集合不发生改变,也就意味着,如果存在新加入的被检测对象,为了不影响其他聚类集合的正常故障检测过程,新加入的被检测对象直接由中心对象管理;初始值不敏感,即根据不同时刻的参数对相同的被检测对象进行分组时,得到的分组结果,即得到的聚类集合的数量与组成每个聚类集合的被检测对象不发生变化。需要说明的是,聚类算法的种类有很多,比如,AP聚类算法、层次聚类算法等,在此不一一例举。
其中,层次聚类算法作为现有众多聚类算法中较优的一种,包括以下两种实现方式,即从叶子节点开始,最终汇聚到根节点;或是自顶向下分裂型的,也就是从根节点开始,递归的向下分裂。结合本发明实施例的应用场景,若采用层次聚类算法来实现聚类,则可以通过逐步扩大聚类集合的方式,生成本发明实施例所需的至少两个聚类集合,如图4所示为层次聚类算法实现过程的示意图,8个被检测对象,经过两次层次聚类算法后,得到2个聚类集合。采用层次聚类算法有如下有点:能够得到不同粒度上的多层次聚类结构,比如,以图4为例,经过第一次聚类后,能得到粒度较小的4个聚类集合,经过第二次聚类后,得到粒度较大的2个聚类集合;聚类数目可以由用户指定,具体可以通过层次结构进行距离,即用户可以预先配置需要生成的聚类集合的数量,之后采用层次聚类算法逐渐减少生成的聚类集合的数量,直至达到用户预先配置的数量为止;不需要预先指定聚类数据,即用户无需预先配置需要生成聚类集合的数量,可以随着层次聚类算法的执行,随时终止本次层次聚类操作,从而得到用户所需的聚类集合;距离和规则的相似度容易定义、限制少,在本发明实施例中,可以采用计算相似度的方式,结合相似度的计算结果完成层次聚类,具体计算及聚类的方式会在后文提出,在此不做赘述。需要说明的是,在本发明实施例中,相似度的计算方式类似于数学意义上欧式距离的计算方式,欧式距离属于基于空间的计算方式,计算方式相对简单。上述相似度可以理解两个被检测对象的相似度的取值越大,则相似程度越高,反之,两个被检测对象的相似度越小,则相似程度越低。另外,若聚类数目需要由用户指定,则故障检测系统还需要为用户或是用于完成上述指定操作的应用程序,自定义分组数目的接口。
由此可见,采用层次聚类算法完成所有被检测对象的划分,可以生成满足用户需求数量的聚类集合,且每个聚类集合中的所有被检测对象的相似度较高。其中,相似度较高指的是:负载类型相同、KPI数据相近、归属于同一聚类集合的多个对象所在物理节点不同。
其中,负载类型指的就是被检测对象上正在运行的应用,对于该被检测对象在负载情况方面的需求,比如,对于计算型应用而言,对CPU的需求较高,当然,负载情况还可以指应用对CPU、内存、磁盘或网络等物力资源中至少一种的消耗。需要说明的是,负载类型不仅可以单独考虑上述例举的各种情况,还可以同时考虑其中的多个。另外,上述考虑到的内容仅作为一种可能的实现方式呈现,并不作为本发明实施例针对负载类型所考虑的内容进行限定。
在本发明实施例中,KPI数据表示被检测对象各项资源特征的使用情况。其中,这里的资源特征,也就是指CPU、流量等。即KPI数据可以包括被检测对象的CPU利用率和流量吞吐率,
另外,放置位置指被检测对象的部署位置,即具体位于哪个物理节点上。其中,物理节点可以为服务器等设备。在本发明实施例中,对于物理节点的实际形态不做限定,服务器仅作为一种可能的实现形态。
需要说明的是,参照背景技术中所描述的技术方案,可以得知,对于多个被检测对象而言,无论被检测对象的负载、KPI数据、所处位置的情况是什么样的,均采用相同的参数(即本发明实施例中,中心对象配置的故障检测所需的参数)实现故障检测。比如,以负载为例,对象A的负载为95%,而对象B的负载为30%,那么在对象之间发出心跳报文(用于检测是否产生故障的报文)后,对象B由于空闲资源较多,因此可以快速应答,而对象A由于空闲资源较少,因此,即便对象A并未产生故障,但对象A仍然需要延迟一段时间后给予应答,这样就会造成故障误判。而在本发明实施例中,会优先将负载情况相近的对象划分在同一组(即采用上述层次聚类算法对所有被检测对象进行聚类),且这一组的心跳报文周期设置的较大,那么即便这些对象的负载较高,也能有充足的时间响应心跳报文,也就不会出现上述故障误判的情况。
步骤102、中心对象为每个聚类集合配置故障检测所需的参数。
在本发明实施例中,故障检测所需的参数至少包括心跳检测周期、心跳超时阈值、故障判断阈值中的一项。其中,心跳检测周期用于表示被检测对象向处于同一聚类集合中的其他被检测对象发送心跳报文的时间间隔,即每间隔一定时间,被检测对象会向自身邻居的被检测对象发送心跳报文,以检测作为接收者的被检测对象是否产生故障;心跳超时阈值用于衡量被检测对象是否产生故障,若被检测对象针对接收到的心跳报文进行反馈的时长,超过心跳超时阈值,则表示反馈心跳报文的被检测对象产生故障;故障判断阈值用于限制判断被检测对象是否产生故障的时长,比如,具体可以为限制子中心对象诊断被检测对象是否产生故障的时长,或是用于衡量在一段时间内连续几次或是超过几次未能如期反馈心跳报文,则认为该被检测对象产生故障,而上述一段时间则可以视为故障判断阈值所指示的时间长度。需要说明的是,子中心对象的确定方式及数量会在后文提出,在此不做赘述。
步骤103、中心对象确定每个被检测对象与中心对象之间的相似度。
在本发明实施例中,相似度可以解释为两个对象之间的相似程度(即每个被检测对象与中心对象之间的相似程度)。其中,相似程度一般可以用两个对象之间的特征距离来表示,而这个特征距离,即上述相似度。需要说明的是,关于相似度的确定方式会在后文提出,在此不做赘述。
步骤104、中心对象确定每个聚类集合内与中心对象之间相似度最大的被检测对象为子中心对象。
为了统一管理同一聚类集合中的每个被检测对象,需要在每个聚类集合中选择一个合适的被检测对象,作为该被检测对象所在聚类集合的子中心对象,以分担中心对象的部分工作,降低中心对象的工作压力。
需要说明的是,相似度越大则表示被检测对象与中心对象之间的传输距离越小,反之,相似度越小则表示被检测对象与中心对象之间的传输距离越大。考虑到子中心对象在上报故障信息过程中,需要与中心对象之间进行频繁的数据传输,因此,为了减少传输过程中耗费的资源,降低传输时延,在本发明实施例中,中心对象可以将每个聚类集合中与自身之间的相似度最大的被检测对象确定为子中心对象。这样一来,同一聚类集合内,由于子中心对象与其他被检测对象的相似度较高,因此,子中心对象在与其他被检测对象之间进行数据传输时也能满足彼此对于心跳报文的发送、反馈需求,同时,组内邻居被检测对象之间也能够被配置相同的参数,以减少误判出现的概率。对于中心对象而言,只需要与各个子中心对象进行数据交互,就能了解到各个被检测对象的故障情况。需要说明的是,相似度的计算方式会在后文提出,在此不再赘述。
步骤105、中心对象向子中心对象发送中心对象为子中心对象所在聚类集合配置的故障检测所需的参数。
步骤106、子中心对象接收中心对象配置的故障检测所需的参数。
在中心对象确定子中心对象后,会通过数据传输的方式告知子中心对象,并向子中心对象发送分组结果,以便于子中心对象与组内其他被检测对象之间建立通信连接。
步骤107、在子中心对象按照中心对象配置的故障检测所需的参数,检测到聚类集合内存在产生故障的被检测对象后,子中心对象向中心对象上报故障信息。
步骤108、中心对象接收子中心对象上报的故障信息。
同一聚类集合内的邻居被检测对象之间相互检测,与背景技术中描述的基于邻域划分的去中心化故障检测方法类似。对于被检测对象而言,一旦发现与自身同组的被检测对象产生故障,则可以向子中心对象上报故障信息,之后子中心对象会对该故障信息指示的可能存在故障的被检测对象进行诊断,并在确定该被检测对象产生故障后,向中心对象上报故障信息,之后继续等待其他被检测对象上报故障信息。
需要说明的是,为了确保邻居被监测对象之间相互检测的可靠性,在本发明实施例中,每个被检测对象至少存在两个与该被检测对象邻居的被检测对象,这样在某一被检测对象产生故障后,与该某一被检测对象邻居的至少两个被检测对象都可以进行故障信息的上报,即便其中一个被检测对象未差距到该某一被检测对象产生故障的情况,也不会影响故障信息的上报。在本发明实施例中,为了进一步提高可靠性,可以为每个被检测对象指定四个与该被检测对象邻居的被检测对象。与每个被检测对象邻居的被检测对象的数量,在本发明实施例中不做限定,可以根据一定时间内该被监测对象产生故障的频次、频率等情况预先配置。
由此可见,分组过程采用聚类算法,可以使相关性较大的被检测对象优先被划分至同一聚类集合中。需要说明的是,相关性可以体现为两个被检测对象的负载类型是否相同、关键绩效指标数据是否相近、放置位置是否为不同物理节点等。这样一来,在中心对象进行故障检测所需的参数的配置过程中,就能根据每个聚类集合的特征,单独为各个聚类集合配置,从而使配置的参数更适应于各个被检测对象反应心跳报文的需求,从而降低产生误判的概率。此外,子中心对象的存在还可以为中心对象分担一部分工作,即子中心对象在完成被检测对象的故障检测之后,直接向中心对象上报故障信息。也就意味着,中心对象在完成分组之后,只需要等待各个子中心对象上报故障信息即可,从而节省了中心对象的资源消耗。
在本发明实施例的一个实现方式中,提出了一种层次聚类的具体实现方式,因此,在如图3所示的实现方式的基础上,还可以实现为如图5所示的实现方式。其中,在执行步骤101中心对象按照层次聚类算法,将所有被检测对象划分为至少两个聚类集合之前,还可以执行步骤201;并且,若聚类算法为层次聚类算法,则步骤101可以具体实现为步骤301至步骤304:
步骤201、中心对象从外部对象获取每个被检测对象的资源信息。
其中,资源信息至少包括每个被检测对象的负载类型、KPI数据和放置位置中的至少一个。也就意味着,资源信息的种类可以为一个或是多个,在本发明实施例中不做限定。
对于被检测对象的负载类型而言,外部对象可以直接获取每个被检测对象的负载类型,也可以参考被检测那个的KPI数据等参数,为各个被检测对象配置相应的负载类型。比如,若系统未提供被检测对象的负载类型,则外部对象可以采用预分类方式,将被检测对象划分为四种负载类型,分别是CPU密集型、内存密集型、网络密集型与IO密集型。
需要说明的是,在划分聚类集合之前,需要确保所有待划分的被检测对象的负载类型采用同一方式获得,比如,所有被检测对象的负载类型都为系统提供的负载类型,或是所有被检测对象的负载类型都为外部对象划分的负载类型。这样一来,能够保证每个被检测对象的负载类型都具有统一的划分方式,这样在后期分组时,才能有效将负载类型相近的被检测对象划分至同一聚类集合。
对于KPI数据而言,KPI数据主要包括被检测对象的CPU利用率和流量吞吐率,其中,流量吞吐率主要包括网络流入速率与网络流出速率。在本发明实施例中,中心对象可以将CPU利用率相近的被检测对象划分到同一聚类集合中,并在配置故障检测所需的参数时,依据聚类集合中各个被检测对象的CPU利用率情况,配置故障判断阈值。这样一来,就能尽可能降低由于连接超时造成被检测对象被误判的概率。此外中心对象还可以将流量吞吐率相近的被检测对象划分到同一聚类集合中,并在配置故障检测所需的参数时,依据聚类集合中各个被检测对象的流量吞吐率情况,配置心跳检测周期与心跳超时阈值。
对于放置位置而言,中心对象需要保证尽可能将处于不同物理节点上的被检测对象,放置在同一聚类集合中。这样就能避免因单点故障而造成的故障上报数据量骤然增大,进而使子中心对象压力过大。比如,若处于同一聚类集合中的多个被检测对象所在物理节点相同,那么若该物理节点产生故障,则各个被检测对象也会相继产生故障,这样一来,多个被检测对象都会检测到邻居被检测对象产生故障,而纷纷向子中心对象上报故障信息。此时,子中心对象需要对多个可能存在故障的被检测对象进行针对,这样就会增加子中心对象的诊断负担,而子中心对象的处理能力也是有限的,也就使子中心对象因压力过大,而降低故障检测的效率。
由此可见,在本发明实施例中,对被检测对象进行分组时,需要遵循如下原则:负载类型相似度原则、KPI数据相近原则与被检测对象反亲和性原则。其中,KPI数据相近原则至少包括CPU利用率相近原则和流量吞吐率相近原则;被检测对象反亲和性原则是指,归属于同一聚类集合中的多个被检测对象,需要尽可能保证不位于同一物理节点。
步骤301、中心对象确定每个被检测对象为一个聚类集合。
步骤302、中心对象根据资源信息,确定当前每两个聚类集合之间的相似度。
在本发明实施例中,两个聚类集合之间的相似程度,可以用相似度的大小来衡量。相似度的确定方式有多种,在本发明实施例中,可以通过公式计算的方式确定,具体实现方式会在后文提出,在此不做赘述。
步骤303、中心对象将最大相似度对应的两个聚类集合合并为一个聚类集合。
步骤304、若当前聚类集合的数量小于指定数量,则中心对象确定合并后的聚类集合的资源信息,并确定当前每两个聚类集合之间的相似度,并将最大相似度对应的两个聚类集合合并为一个聚类集合,直至当前聚类集合的数量大于或等于指定数量。
在本发明实施例中,对所有被检测对象的划分过程,可以被视为自组织分组的一个具体实现过程,如图6所示为自组织分组原理示意图。而自组织分组主要包括两个特征,其一,降低中心对象接收故障消息上报的压力,将故障诊断的压力分散到各个子中心对象,以降低中心对象产生故障的概率;其二,使相近特征的被检测对象被划分至同一聚类集合,这样就可以做到不同聚类集合的故障检测所需参数差异化配置,从而降低因连接超时等使被检测对象被误判的概率。
其中,相近特征指的是同一聚类集合内的所有被检测对象的负载类型尽可能相同、KPI数据相近、放置位置尽可能不同等;故障检测所需参数可以为心跳检测周期、超时阈值等参数;连接超时则可以表示某一被检测对象在接收到心跳报文后来不及反馈,也就意味着,该被检测对象虽然能够反馈接收到的心跳报文,但由于负载过大或是业务较为繁忙等原因,而必须等待一定时间后再进行反馈,而在反馈心跳报文之前,中心对象已经认为该被检测对象存在故障,也就是上述连接超时的含义。
由此可见,结合外部对象提供的每个被检测对象的资源信息,由中心对象通过一层一层进行聚类的方式,确定当前聚类集合的划分方式,且能够确保每个聚类集合中所有被监测对象尽可能满足负载类型相似度原则、KPI数据相近原则与被检测对象反亲和性原则。这样一来,就能够使归属于同一聚类集合的多个被监测对象之间性能相近,且一旦某一个被检测对象产生故障,并不会对太多归属于同一聚类集合的多个被检测对象产生影响,从而使每个子中心对象分摊工作压力,也使每个子中心对象更具有针对性的提供更适应于各个聚类集合的检测方式。也就是为不同聚类集合配置不同参数,比如,心跳检测周期、心跳超时阈值和故障判断阈值。
在本发明实施例的一个实现方式中,提供了用于计算两个目标之间的相似度的公式,即一种中心对象根据第一目标与第二目标之间每个同一项资源信息的异同以及各个资源信息对应的权重系数来确定第一目标与第二目标之间的相似度的可能的实现方式。也就意味着,在确定第一目标与第二目标之间的相似度的过程中,不仅可以考虑某一类别资源信息的相似情况,还可以根据用户或是工作人员当前需求,调整各种类别的资源信息占据的权重系数。这样一来,可以更有针对性的侧重某一类别资源信息的相似情况的判断,从而更符合用户或是工作人员当前的需求。
其中,第一目标与第二目标之间相同的资源信息越多,确定第一目标与第二目标之间越相似;第一目标与第二目标之间相同的资源信息越少,确定第一目标与第二目标之间越不相似。由此可见,随着第一目标与第二目标之间相同的资源信息数量的增加,能够有效增加第一目标与第二目标之间的相似程度。因此,用于判别第一目标与第二目标相似程度的参数(即资源信息)的数量越多,那么后续判别相似度时的判别依据就更加充分。
在层次聚类算法实现之前,中心对象可以结合从外部对象获取的资源信息,完成每两个聚类集合(每个聚类集合中可以仅包括一个被检测对象,也可以包括多个被检测对象)之间相似度的计算。此外,在确定子中心对象的过程中,中心对象也可以依据该公式完成中心对象与每个被检测对象之间相似度的计算。因此,若资源信息包括三项,则中心对象根据第一目标与第二目标之间每个同一项资源信息的异同以及各个资源信息对应的权重系数来确定第一目标与第二目标之间的相似度的过程,如下:
中心对象采用公式进行计算,得到第一目标与第二目标之间的相似度。
其中,dab用于表示第一目标a与第二目标a之间的相似度;bab用于表示第一目标a与第二目标b的负载类型是否相同;fab用于表示第一目标a与第二目标b的放置位置是否为同一物理节点;Ra用于表示第一目标a的资源信息对应的资源向量,其中,用于表示资源向量的坐标中每一个参数对应一项资源信息;Rb用于表示第二目标b的资源信息对应的资源向量;R用于表示资源信息中p项对应的标准差;α1、α2、α3分别用于表示负载类型、放置位置和KPI数据对应的权重系数,α1、α2、α3的取值都为大于或等于0且小于或等于1的正数,且α1、α2与α3的和为1。
需要说明的是,上述资源向量可以理解为,若资源向量的表示形式为(a,b,c),那么,a、b、c可以分别代表一个KPI数据,比如,a表示CPU利用率、b表示流量流入速率、c表示流量流出速率。也就意味着,在后续计算对于第一目标与第二目标的相似度计算,实际上是对于第一目标与第二目标对应的两个坐标值的距离,比如,三维空间坐标系中两个坐标之间的距离。
也就意味着,图2、图3中步骤103可以通过上述公式进行计算,同样的,图3中步骤302页可以通过上述公式进行计算。在此不对这两种情况下进行计算的过程一一描述,具体计算过程可以参考上述公式及下文解释。
需要说明的是,公式中p的取值分别为1、2、3,用于表示资源参数的资源维度数,即在本发明实施例中,资源参数包括三类,也就是负载类型、KPI数据和放置位置。在本发明实施例中,以资源维度数是3为例,对公式进行解释描述,需要明白的是,资源维度数的取值可以为大于或等于1的整数,比如,在资源维度数为1时,所考虑的资源参数可以为上述例举的三种资源参数中的任意一种。这样一来,用于计算相似度的公式则可以为如下计算公式:
(在资源参数为负载类型时的计算方式);
(在资源参数为KPI数据时的计算方式);
(在资源参数为放置位置的计算方式)。
同样的,若资源维度数为2,以资源参数包括负载类型和KPI数据为例,则计算相似度的公式则可以为如下计算公式:
由此可见,若考虑的资源参数仅为一种,则由于不存在其他作为干扰因素的资源参数,可以不对该一种资源参数设置相应的权重系数(即α1、α2、α3);若考虑的资源参数为至少两种时,则可以选择性配置相应的权重系数。
继续以上述资源参数包括三种的情况为例,在确定bij的过程中,可以依据如下判断原则:
在确定fij的过程中,可以依据如下判断原则:
根据上述两个判断原则,可以有效确定两个目标(即第一目标i与第二目标j)的负载类型相似度与反亲和性,之后通过上述公式完成计算,得到每两个目标之间的相似度。之后根据得到的每两个目标之间的相似度,可以确定相似度矩阵,该相似度矩阵的定义公式如下:
S=(dij)
其中,i和j都为大于或等于1,且小于或等于K的正整数,且在建立相似度矩阵的过程中,i与j的取值不同,K的取值为大于1的正整数,K的取值大小与被检测对象的总数量相同。
在确定每两个目标之间的相似度且得到上述相似度矩阵之后,中心对象可以依据相似度矩阵中记载的参数完成层次聚类,或是确定子中心对象。
例如,如图7所示,为一种基于聚类的自组织去中心故障检测分组算法流程示意图,该分组算法流程可以包括如下步骤:
步骤1、算法初始化,根据模型管理器从外部对象获取的资源信息,参照步骤301,确定相似度矩阵S,并将每个被检测对象Ni作为一个聚类中心,形成聚类集合C=(c1,c2…cK)。
其中,每个聚类中心可以被视为初始状态下一个聚类集合;Ni用于表示每个被检测对象,i为大于或等于1,且小于或等于K的正整数;K的取值为大于1的正整数,K的取值大小与被检测对象的总数量相同;C用于表示所有聚类集合;c1、c2、cK等用于表示一个单独的聚类集合,下角标用于区分不同的聚类集合。
步骤2、计算每两个聚类对(ci,cj)之间的相似度,即聚类集合ci和聚类集合cj之间的相似度。
其中,每两个聚类对之间的相似度可以用如下公式表示:
sim(ci,cj)=dij
步骤3、计算具有最大相似度的两个聚类对,即max sim(ci,cj),并将这两个聚类对合并成一个新的聚类cp=ci∪cj,同时合并ci与cj的特征向量,从而构成一个新的聚类集合C'=(c1,c2…cK-1)。
其中,max sim(ci,cj)用于表示相似度最大的两个聚类对。
步骤4、遍历所有被检测对象,并判断所有被检测对象是否已经与至少一个被检测对象聚成一类。其中,如果没有,则跳转到步骤2,如果有,则继续执行步骤5。
步骤5、根据用户提供的聚类数目m,通过层次聚类算法对层次聚类结果进行聚类,使所有被检测对象被划分成m个聚类集合。
步骤6、根据每个聚类集合的特征向量,确定每个聚类集合的资源信息,并以资源信息为基准,分别为每个聚类集合配置诸如心跳检测周期、心跳超时阈值、故障判断阈值的故障检测所需的参数,并将各个被检测对象放置到所属的聚类集合中。
其中,每个聚类集合的资源信息至少包括被检测对象的负载类型、KPI数据和放置位置。
步骤7、在每个聚类集合中选取与中心对象的相似度最大的被检测对象,作为该聚类集合的子中心对象。
由子中心对象的代理,将所属聚类集合中可能产生故障的被检测对象的故障信息,向中心对象上报。其中,每个聚类集合中采用基于邻域划分的去中心化故障检测方法,实现故障检测。
之后子中心对象向中心对象上报故障信息,并由中心对象周期性对所有被检测对象进行再次分组。需要说明的是,考虑到在故障检测过程中,随着新的被检测对象的加入、或是已有被检测对象的退出,故障检测范围内的所有被检测对象的负载情况等会发生变化,因此,在本发明实施例的一个实现方式中,可以周期性实现重新分组的过程。在如图3或图5所示的实现方式的基础上,以图3为例,还可以实现为如图8所示的实现方式。其中,步骤101中心对象按照聚类算法,将所有被检测对象划分为至少两个聚类集合,可以具体实现为步骤401:
步骤401、中心对象周期性按照聚类算法,将所有被检测对象划分为至少两个聚类集合。
在本发明实施例中,可以采用相同的时间跨度作为检测周期,或是采用按照某个特定规则变化的时间跨度作为检测周期,在此不做限定。另外,对于检测周期的设置方式、取值等不做过多限定,可以由用户或是工作人员根据实际需求,参考经验值后,预先设定。
与现有技术相比,在本发明实施例中,对所有被检测对象的分组并不是一成不变的,随着被检测对象的增加、减少,还可以周期性对分组情况进行调整。需要说明的是,由于调整过程为周期性,而非实时调整,因此,很可能存新增被检测对象后,由于新增被检测对象不属于任何一个聚类集合,因此,为了确保新增被检测对象也能作为被检测对象,参与到故障检测过程中,在本发明实施例中,可以由中心对象对这个新增被检测对象进行故障检测,并在检测到故障后,直接上报;或者,还可以通过确定新增被检测对象与所有子中心对象之间的相似度,之后将最大相似度对应的子中心对象所在聚类集合作为新增被检测对象当前所处聚类集合;或者,随机将新增被检测对象放置到与新增被检测对象距离较近的聚类集合中。在本发明实施例中,对于重新分组前新增被检测对象所处位置的确定方式不做限定,不仅限于上述几种可能的情况。
需要说明的是,在完成新的聚类集合划分后,中心对象需要为新的聚类集合配置故障检测所需的参数。新配置的参数可以与旧参数相同或不同,具体配置方式与第一次划分聚类集合后的配置方式可以采用相同或是不同的实现方式,在此不做限定。
上述主要从各个对象之间交互的角度对本发明实施例提供的方案进行了介绍。可以理解的是,各个对象,例如中心对象、子中心对象、被检测对象、外部对象等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本发明实施例可以根据上述方法示例对故障检测装置等进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。需要说明的是,故障检测装置可以作为中心对象完成故障检测所需的软件程序或是硬件设备,对于故障检测装置的组成会在后文提出,在此不做赘述。
图9示出了上述实施例中所涉及的故障检测装置的一种可能的结构示意图,该故障检测装置应用于中心对象,故障检测装置10包括:划分模块11,配置模块12,确定模块13、接收模块14和获取模块15。其中,划分模块11用于支持故障检测装置10执行图3中的步骤101,图5中的步骤301至步骤304,图8中的步骤401;配置模块12用于支持故障检测装置10执行图3、图5、图8中的步骤102;确定模块13用于支持故障检测装置10执行图3、图5、图8中的步骤103和步骤104;接收模块14用于支持故障检测装置10执行图3、图5、图8中的步骤108;获取模块15用于支持故障检测装置10执行图5中的步骤201。此外,故障检测装置10还可以包括发送模块16和存储模块17,发送模块16用于支持故障检测装置10执行图3、图5、图8中的步骤105;存储模块17用于存储故障检测装置10的程序代码和数据。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在本发明实施例中,上述划分模块11,配置模块12,确定模块13可以独立设置,也可以集成设置为处理模块20,该处理模块20用于实现上述划分模块11,配置模块12,确定模块13所能够实现的功能,和/或用于本文所描述的技术的其它过程;上述接收模块14、获取模块15和发送模块16可以独立设置,也可以集成设置为通信模块21,该通信模块21用于实现上述接收模块14、获取模块15和发送模块16所能够实现的功能,还可以代替中心对象与其他对象(比如,子中心对象、外部对象)之间进行通信。
其中,处理模块20可以实现为处理器或控制器,例如可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信模块21可以实现为收发器、收发电路或通信接口等。存储模块17可以实现为存储器。
以处理模块20实现为处理器,通信模块21实现为通信接口,存储模块17实现为存储器为例,本发明实施例所涉及的故障检测装置30可以为图10所示的结构示意图。
参阅图10所示,该故障检测装置30包括:处理器31、通信接口32、存储器33以及总线34。其中,处理器31、通信接口32以及存储器33通过总线34相互连接;总线34可以是PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
图11示出了上述实施例中所涉及的故障检测装置的一种可能的结构示意图,该故障检测装置应用于子中心对象,故障检测装置40包括:接收模块41、检测模块42、发送模块43。其中,接收模块41用于支持故障检测装置40执行图3、图5、图8中的步骤105;检测模块42用于支持故障检测装置40在执行图3、图5、图8中的步骤107之前的检测过程;发送模块43用于支持故障检测装置40执行图3、图5、图8中的步骤107。此外,故障检测装置40还可以包括存储模块44,用于存储故障检测装置40的程序代码和数据。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。在本发明实施例中,上述可以实现为处理模块50,用于实现上述检测模块42所能够实现的功能,和/或用于本文所描述的技术的其它过程;上述接收模块41、发送模块43可以独立设置,也可以集成设置为通信模块51,该通信模块51用于实现上述接收模块41、发送模块43所能够实现的功能,还可以代替子中心对象与其他对象(比如,中心对象)之间进行通信。
其中,处理模块50可以实现为处理器或控制器,例如可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信模块51可以实现为收发器、收发电路或通信接口等。存储模块44可以实现为存储器。
以处理模块50实现为处理器,通信模块51实现为通信接口,存储模块44实现为存储器为例,本发明实施例所涉及的故障检测装置30可以为图10所示的结构示意图。
参阅图12所示,该故障检测装置60包括:处理器61、通信接口62、存储器63以及总线64。其中,处理器61、通信接口62以及存储器63通过总线64相互连接;总线34可以是PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
需要说明的是,上述故障检测装置可以应用于服务器、云计算平台等应用场景。其中,若该故障检测装置应用于云计算平台,则可以应用于云计算平台中的PaaS层、IaaS层等,在此不做限定。
结合本发明公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM、闪存、ROM、EPROM、EEPROM、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分,或是与处理器作为分立组件单独设置。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述的具体实施方式,对本发明实施例的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明实施例的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明实施例的保护范围之内。
Claims (16)
1.一种故障检测方法,其特征在于,所述方法包括:
中心对象按照聚类算法,将所有被检测对象划分为至少两个聚类集合,并为每个聚类集合配置故障检测所需的参数;
所述中心对象根据资源信息确定每个被检测对象与所述中心对象之间的相似度,并确定每个聚类集合内与所述中心对象之间相似度最大的被检测对象为子中心对象,所述资源信息包括负载类型、关键绩效指标KPI数据和放置位置中的至少一个,所述相似度用于衡量不同对象之间的相似程度;
在子中心对象按照所述中心对象配置的故障检测所需的参数,检测到聚类集合内存在产生故障的被检测对象后,所述中心对象接收所述子中心对象上报的故障信息。
2.如权利要求1所述的方法,其特征在于,在所述中心对象按照聚类算法,将所有被检测对象划分为至少两个聚类集合之前,所述方法还包括:
所述中心对象从外部对象获取每个被检测对象的资源信息;
若所述聚类算法为层次聚类算法,则所述中心对象按照聚类算法,将所有被检测对象划分为至少两个聚类集合,具体包括:
所述中心对象确定每个被检测对象为一个聚类集合;
所述中心对象根据所述资源信息,确定当前每两个聚类集合之间的相似度,并将最大相似度对应的两个聚类集合合并为一个聚类集合;
若当前聚类集合的数量小于指定数量,则所述中心对象确定合并后的聚类集合的资源信息,并确定当前每两个聚类集合之间的相似度,并将最大相似度对应的两个聚类集合合并为一个聚类集合,直至当前聚类集合的数量大于或等于所述指定数量。
3.如权利要求1或2所述的方法,其特征在于,若所述每个被检测对象为第一目标,则所述中心对象为第二目标,若指定聚类集合为第一目标,则所有聚类集合中除所述指定聚类集合以外的其他聚类集合为第二目标,其中,指定聚类集合为所述所有聚类集合中的任意一个;
所述中心对象确定所述第一目标与所述第二目标之间的相似度包括:
所述中心对象根据所述第一目标的资源信息与所述第二目标的资源信息,确定所述第一目标与所述第二目标之间同一项资源信息是否相同;
所述中心对象根据所述第一目标与所述第二目标之间每个同一项资源信息的异同,确定所述第一目标与所述第二目标之间的相似度。
4.如权利要求3所述的方法,其特征在于,所述中心对象根据所述第一目标与所述第二目标之间每个同一项资源信息的异同,确定所述第一目标与所述第二目标之间的相似度包括:
所述第一目标与所述第二目标之间相同的资源信息越多,确定所述第一目标与所述第二目标之间越相似;
所述第一目标与所述第二目标之间相同的资源信息越少,确定所述第一目标与所述第二目标之间越不相似。
5.如权利要求3所述的方法,其特征在于,所述中心对象根据所述第一目标与所述第二目标之间每个同一项资源信息的异同,确定所述第一目标与所述第二目标之间的相似度包括:
所述中心对象根据所述第一目标与所述第二目标之间每个同一项资源信息的异同以及各个资源信息对应的权重系数来确定所述第一目标与所述第二目标之间的相似度。
6.如权利要求5所述的方法,其特征在于,若所述资源信息包括三项,则所述中心对象根据所述第一目标与所述第二目标之间每个同一项资源信息的异同以及各个资源信息对应的权重系数来确定所述第一目标与所述第二目标之间的相似度包括:
所述中心对象采用公式进行计算,得到所述第一目标与所述第二目标之间的相似度,其中,dab用于表示所述第一目标a与所述第二目标b之间的相似度;bab用于表示所述第一目标a与所述第二目标b的负载类型是否相同;fab用于表示所述第一目标a与所述第二目标b的放置位置是否为同一物理节点;Ra用于表示所述第一目标a的资源信息对应的资源向量,其中,用于表示资源向量的坐标中每一个参数对应一项资源信息;Rb用于表示所述第二目标b的资源信息对应的资源向量;用于表示资源信息中p项对应的标准差;α1、α2、α3分别用于表示负载类型、放置位置和KPI数据对应的权重系数,α1、α2、α3的取值都为大于或等于0且小于或等于1的正数,且α1、α2与α3的和为1。
7.如权利要求1或2所述的方法,其特征在于,所述故障检测所需的参数至少包括心跳检测周期、心跳超时阈值中的一项。
8.如权利要求1或2所述的方法,其特征在于,所述中心对象按照聚类算法,将所有被检测对象划分为至少两个聚类集合,具体包括:
所述中心对象周期性按照聚类算法,将所有被检测对象划分为至少两个聚类集合。
9.一种故障检测装置,其特征在于,所述装置应用于中心对象,所述装置包括:
划分模块,用于按照聚类算法,将所有被检测对象划分为至少两个聚类集合;
配置模块,用于为所述划分模块划分的每个聚类集合配置故障检测所需的参数;
确定模块,用于根据资源信息确定每个被检测对象与所述中心对象之间的相似度,并确定每个聚类集合内与所述中心对象之间相似度最大的被检测对象为子中心对象,所述资源信息包括负载类型、关键绩效指标KPI数据和放置位置中的至少一个,所述相似度用于衡量不同对象之间的相似程度;
接收模块,用于在所述确定模块确定的子中心对象按照所述配置模块配置的故障检测所需的参数,检测到聚类集合内存在产生故障的被检测对象后,接收所述子中心对象上报的故障信息。
10.如权利要求9所述的装置,其特征在于,所述装置还包括:
获取模块,用于从外部对象获取每个被检测对象的资源信息;
若所述聚类算法为层次聚类算法,则所述划分模块,还用于:
确定每个被检测对象为一个聚类集合;
根据所述获取模块获取的所述资源信息,确定当前每两个聚类集合之间的相似度;
将最大相似度对应的两个聚类集合合并为一个聚类集合;
若当前聚类集合的数量小于指定数量,则确定合并后的聚类集合的资源信息,并确定当前每两个聚类集合之间的相似度,并将最大相似度对应的两个聚类集合合并为一个聚类集合,直至当前聚类集合的数量大于或等于所述指定数量。
11.如权利要求9或10所述的装置,其特征在于,若所述每个被检测对象为第一目标,则所述中心对象为第二目标,若指定聚类集合为第一目标,则所有聚类集合中除所述指定聚类集合以外的其他聚类集合为第二目标,其中,指定聚类集合为所述所有聚类集合中的任意一个;
所述确定模块,还用于:
根据获取模块获取的所述第一目标的资源信息与所述第二目标的资源信息,确定所述第一目标与所述第二目标之间同一项资源信息是否相同;
根据所述第一目标与所述第二目标之间每个同一项资源信息的异同,确定所述第一目标与所述第二目标之间的相似度。
12.如权利要求11所述的装置,其特征在于,所述确定模块,还用于:
所述第一目标与所述第二目标之间相同的资源信息越多,确定所述第一目标与所述第二目标之间越相似;
所述第一目标与所述第二目标之间相同的资源信息越少,确定所述第一目标与所述第二目标之间越不相似。
13.如权利要求11所述的装置,其特征在于,所述确定模块,还用于:
所述中心对象根据所述第一目标与所述第二目标之间每个同一项资源信息的异同以及各个资源信息对应的权重系数来确定所述第一目标与所述第二目标之间的相似度。
14.如权利要求13所述的装置,其特征在于,若所述资源信息包括三项,则所述确定模块,还用于:
采用公式进行计算,得到所述第一目标与所述第二目标之间的相似度,其中,dab用于表示所述第一目标a与所述第二目标b之间的相似度;bab用于表示所述第一目标a与所述第二目标b的负载类型是否相同;fab用于表示所述第一目标a与所述第二目标b的放置位置是否为同一物理节点;Ra用于表示所述第一目标a的资源信息对应的资源向量,其中,用于表示资源向量的坐标中每一个参数对应一项资源信息;Rb用于表示所述第二目标b的资源信息对应的资源向量;用于表示资源信息中p项对应的标准差;α1、α2、α3分别用于表示负载类型、放置位置和KPI数据对应的权重系数,α1、α2、α3的取值都为大于或等于0且小于或等于1的正数,且α1、α2与α3的和为1。
15.如权利要求9或10所述的装置,其特征在于,所述故障检测所需的参数至少包括心跳检测周期、心跳超时阈值中的一项。
16.如权利要求9或10所述的装置,其特征在于,所述划分模块,还用于:
周期性按照聚类算法,将所有被检测对象划分为至少两个聚类集合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710301313.4A CN107426003B (zh) | 2017-05-02 | 2017-05-02 | 一种故障检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710301313.4A CN107426003B (zh) | 2017-05-02 | 2017-05-02 | 一种故障检测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107426003A CN107426003A (zh) | 2017-12-01 |
CN107426003B true CN107426003B (zh) | 2019-12-13 |
Family
ID=60424841
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710301313.4A Active CN107426003B (zh) | 2017-05-02 | 2017-05-02 | 一种故障检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107426003B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108092857A (zh) * | 2018-01-15 | 2018-05-29 | 郑州云海信息技术有限公司 | 一种分布式系统心跳检测方法及相关装置 |
CN108718298B (zh) * | 2018-04-28 | 2021-05-25 | 北京奇安信科技有限公司 | 一种恶意外连流量检测方法及装置 |
CN109298934B (zh) * | 2018-09-06 | 2021-01-15 | 京信通信系统(中国)有限公司 | 心跳周期调整方法、装置及系统 |
CN110781247B (zh) * | 2019-09-23 | 2021-11-26 | 华为技术有限公司 | 向量聚类方法、装置及存储介质 |
CN110910529B (zh) * | 2019-11-07 | 2022-04-29 | 腾讯科技(深圳)有限公司 | 一种对象状态检测方法、装置及存储介质 |
CN113179171B (zh) * | 2020-01-24 | 2023-04-18 | 华为技术有限公司 | 故障检测方法、装置及系统 |
CN112104528B (zh) * | 2020-11-19 | 2021-02-19 | 北京智芯微电子科技有限公司 | 检测心跳的通信方法、系统、设备及存储介质 |
CN113783735A (zh) * | 2021-09-24 | 2021-12-10 | 小红书科技有限公司 | Redis集群中故障节点的识别方法、装置、设备和介质 |
CN114422379B (zh) * | 2022-01-20 | 2023-02-28 | 昕锐至成(江苏)光电科技有限公司 | 一种多平台设备无线组网的分析方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7284147B2 (en) * | 2003-08-27 | 2007-10-16 | International Business Machines Corporation | Reliable fault resolution in a cluster |
CN102970167B (zh) * | 2012-11-26 | 2016-06-29 | 华为技术有限公司 | 集群系统中网络节点的故障检测方法、网络节点和系统 |
US9369360B1 (en) * | 2014-05-12 | 2016-06-14 | Google Inc. | Systems and methods for fault detection in large scale networks |
CN105791028A (zh) * | 2016-04-26 | 2016-07-20 | 浪潮(北京)电子信息产业有限公司 | 一种服务器集群的监控方法、服务器及系统 |
-
2017
- 2017-05-02 CN CN201710301313.4A patent/CN107426003B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107426003A (zh) | 2017-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107426003B (zh) | 一种故障检测方法及装置 | |
CN108810100B (zh) | 一种主节点的选举方法、装置及设备 | |
WO2019153505A1 (zh) | 一种故障修复数据包的发布方法及服务器 | |
CN108512890B (zh) | 一种基于机架感知的容器云平台资源调度方法及系统 | |
US10051056B2 (en) | Resource planning method, system, and apparatus for cluster computing architecture | |
CN111258737B (zh) | 一种资源调度的方法、装置和过滤式调度器 | |
CN111279315A (zh) | 租户间工作负载性能相关联和推荐 | |
CN112153700A (zh) | 一种网络切片资源管理方法及设备 | |
CN110365748A (zh) | 业务数据的处理方法和装置、存储介质及电子装置 | |
US10712945B2 (en) | Deduplication processing method, and storage device | |
CN106681839B (zh) | 弹性计算动态分配方法 | |
US10979317B2 (en) | Service registration method and usage method, and related apparatus | |
US20160269428A1 (en) | Data processing | |
Rathore et al. | A sender initiate based hierarchical load balancing technique for grid using variable threshold value | |
CN106991070B (zh) | 实时计算方法及装置 | |
CN106230622B (zh) | 一种集群实现方法及装置 | |
CN105827678B (zh) | 一种基于高可用架构下的通信方法和节点 | |
CN108683557B (zh) | 微服务健康度评估方法、弹性伸缩方法及架构 | |
CN109245926A (zh) | 智能网卡、智能网卡系统及控制方法 | |
CN109542627A (zh) | 节点切换方法、装置、管理机、节点设备和分布式系统 | |
CN112559173A (zh) | 资源调节方法、装置、电子设备和可读存储介质 | |
CN111858458A (zh) | 一种互联通道的调整方法、装置、系统、设备和介质 | |
CN113886058A (zh) | 一种跨集群资源调度方法和装置 | |
CN106899659B (zh) | 分布式系统及其管理方法和管理装置 | |
Stahl et al. | Dynamic fault-tolerance and mobility provisioning for services on mobile cloud platforms |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |