CN106407083B - 故障检测方法及装置 - Google Patents

故障检测方法及装置 Download PDF

Info

Publication number
CN106407083B
CN106407083B CN201610947011.XA CN201610947011A CN106407083B CN 106407083 B CN106407083 B CN 106407083B CN 201610947011 A CN201610947011 A CN 201610947011A CN 106407083 B CN106407083 B CN 106407083B
Authority
CN
China
Prior art keywords
node
interaction time
time delay
anomalous event
recorded
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
Application number
CN201610947011.XA
Other languages
English (en)
Other versions
CN106407083A (zh
Inventor
廖东方
黄世准
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Huawei Technology Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201610947011.XA priority Critical patent/CN106407083B/zh
Publication of CN106407083A publication Critical patent/CN106407083A/zh
Application granted granted Critical
Publication of CN106407083B publication Critical patent/CN106407083B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种故障检测方法及装置,属于数据库技术领域。所述方法包括:统计分布式存储系统的n个节点中每个节点上记录的IO异常事件数量,n为大于1的整数;再根据统计的每个节点上记录的IO异常事件数量,为每个节点所属的收发对中的节点投票,该收发对包括:发起数据请求的请求节点和响应数据请求的响应节点;之后,根据每个节点获得的投票数量从n个节点中筛选出至少一个节点作为故障节点。本发明解决了检测故障的过程较繁琐,检测效率较低的问题,实现了简化检测故障的过程,提高检测效率的效果,用于故障检测。

Description

故障检测方法及装置
技术领域
本发明涉及数据库技术领域,特别涉及一种故障检测方法及装置。
背景技术
分布式存储系统包括三种类型的节点(节点指的是一台运行有用户业务进程的物理服务器或虚拟服务器):元数据节点、计算节点和存储节点。其中,元数据节点用于保存用户业务的管理数据,存储节点用于保存用户业务的业务数据,计算节点用于向用户提供接口以访问存储节点中保存的业务数据。这三种类型的节点作为一个整体来处理用户业务。当某一节点出现故障时,可能会导致被处理的用户业务受损,但并不会导致该用户业务中断(即用户业务处于亚健康状态),在这种情况下,也需要及时进行故障检测,确定故障节点(即出现故障的节点),并采取相应的措施以便继续处理该用户业务。
现有技术中,当被处理的用户业务受损时,通常是先确定该用户业务对应的接口,再确定该接口对应的计算节点,然后检测该计算节点是否出现故障,当该计算节点出现故障时,进行故障恢复,当该计算节点未出现故障时,检测保存业务数据的存储主节点(为了防止业务数据丢失,同一业务数据被同时保存在存储主节点和存储备节点上)是否出现故障,当该存储主节点出现故障时,进行故障恢复,当该存储主节点未出现故障时,检测保存该业务数据的存储备节点是否出现故障,当该存储备节点出现故障时,进行故障恢复。此外,还可能需要对保存管理数据的元数据节点进行故障检测。
由于需要对较多节点进行故障检测,所以检测故障的过程较繁琐,检测效率较低。
发明内容
为了解决现有技术检测故障的过程较繁琐,检测效率较低的问题,本发明提供了一种故障检测方法及装置。所述技术方案如下:
第一方面,提供了一种故障检测方法,用于故障分析节点,该故障分析节点可以为分布式存储系统中的元数据节点、计算节点或存储节点,也可以为除元数据节点、计算节点和存储节点之外的运行有用户业务进程的物理服务器或虚拟服务器,即为一个独立的节点,该方法包括:故障分析节点统计分布式存储系统的n个节点中每个节点上记录的输入输出IO异常事件数量,n为大于1的整数,IO异常事件为IO操作超时所产生的事件。故障分析节点再根据统计的每个节点上记录的IO异常事件数量,为每个节点所属的收发对中的节点投票,该收发对包括:发起数据请求的请求节点和响应数据请求的响应节点。之后,故障分析节点根据每个节点获得的投票数量从n个节点中筛选出至少一个节点作为故障节点。
该故障检测方法采用投票机制对记录有IO异常事件的节点所属的收发对中的节点投票,根据所有节点获得的投票数量筛选出故障节点,快速缩小了故障检测范围,加速了定位故障节点的过程,简化了检测过程,提高了检测效率。
可选的,根据每个节点获得的投票数量从n个节点中筛选出至少一个节点作为故障节点,包括:根据每个节点获得的投票数量将n个节点降序排列;将排名前m位的节点确定为故障节点,m为大于等于1的整数。
该故障检测方法采用投票机制对记录有IO异常事件的节点所属的收发对中的节点投票,投票数量越多的节点,出现故障的概率就越大,需要优先对该节点进行故障排查。因此,该故障检测方法按照所有节点获得的投票数量的排序,筛选出投票数量排名靠前的节点作为故障节点。
可选的,在统计分布式存储系统的n个节点中每个节点上记录的输入输出IO异常事件数量之前,该方法还包括:获取第一节点与其余节点的交互时延,得到多个交互时延,该第一节点为n个节点中的任一节点;接着,确定目标交互时延的数量p,该目标交互时延为与多个交互时延中的最小交互时延的差值大于预设差值的交互时延;之后,在第一节点上记录p个IO异常事件。
预设差值的大小可以根据实际应用来确定。假设节点LL为其余节点中的某一节点,在确定第一节点与节点LL的交互时延时,可以确定第一节点与节点LL的平均时延,也即确定第一节点与节点LL在一段时间内的所有交互时延的平均值。记录的IO异常事件可以包括进行交互的两个节点的信息,如两个节点请求的业务数据和系统拓扑等中两个节点的连接关系等。该记录过程可以由故障分析节点完成,也可以由第一节点完成。
当某一节点出现故障时,所有向该节点发起数据请求的请求节点与该节点的交互时延都会比较大,所以该故障检测方法通过确定每个节点的目标交互时延的数量,在每个节点上记录相应数量的IO异常事件,进而使得故障分析节点能够统计每个节点上记录的IO异常事件数量,并为节点投票。
可选的,在统计分布式存储系统的n个节点中每个节点上记录的输入输出IO异常事件数量之前,该方法还包括:获取第一节点与其余节点的交互时延,得到多个交互时延,第一节点为n个节点中的任一节点;再确定多个交互时延中大于预设时延阈值的交互时延的数量p;之后,在第一节点上记录p个IO异常事件。
该故障检测方法通过确定多个交互时延中大于预设时延阈值的交互时延的数量,在每个节点上记录相应数量的IO异常事件,进而使得故障分析节点能够统计每个节点上记录的IO异常事件数量,并为节点投票。
可选的,根据统计的每个节点上记录的IO异常事件数量,为每个节点所属的收发对中的节点投票,包括:根据统计的第一节点上记录的IO异常事件数量p,为第一节点所属的p个收发对中每个收发对包括的第一节点和响应节点分别投票,该第一节点为n个节点中的任一节点,该第一节点用于发起数据请求,响应节点用于响应数据请求。
该故障检测方法能够为每个节点所属的收发对中的节点投票,得到所有节点的投票数量,以便于故障分析节点根据每个节点获得的投票数量从n个节点中筛选出至少一个节点作为故障节点。
可选的,统计分布式存储系统的n个节点中每个节点上记录的输入输出IO异常事件数量,包括:检测被处理的用户业务是否出现异常;当用户业务出现异常时,确定该异常的类型;当该异常的类型为亚健康类型时,统计n个节点中每个节点上记录的IO异常事件数量。
可选的,该用户业务可以为文件系统业务或数据库业务等。在统计每个节点上记录的IO异常事件数量时,故障分析节点可以先检测被处理的用户业务是否出现异常,当用户业务出现异常时,故障分析节点判断该异常的类型是否为亚健康类型。当该异常的类型为亚健康类型时,表明用户业务因故障节点已受损,但并未中断。此时,故障分析节点便可以统计n个节点中每个节点上记录的IO异常事件数量,进而为节点投票。
第二方面,提供了一种故障检测装置,用于故障分析节点,该故障分析节点可以为分布式存储系统中的元数据节点、计算节点或存储节点,也可以为除元数据节点、计算节点和存储节点之外的运行有用户业务进程的物理服务器或虚拟服务器,该故障检测装置包括:至少一个模块,该至少一个模块用于实现上述第一方面所提供的故障检测方法。
第三方面,提供了一种故障检测装置,用于故障分析节点,该故障分析节点可以为分布式存储系统中的元数据节点、计算节点或存储节点,也可以为除元数据节点、计算节点和存储节点之外的运行有用户业务进程的物理服务器或虚拟服务器,该故障检测装置包括:处理器、存储器、网络接口和总线。其中,总线用于连接处理器、存储器和网络接口。网络接口用于实现节点之间的通信连接。处理器用于执行存储器中存储的程序来实现第一方面所述的故障检测方法。
上述本发明第二至第三方面所获得的技术效果与第一方面中对应的技术手段所获得的技术效果近似,在这里不再赘述。
综上所述,本发明提供的技术方案带来的有益效果是:
由于能够根据统计的每个节点上记录的IO异常事件数量,为每个节点所属的收发对中的节点投票,并根据每个节点获得的投票数量从n个节点中筛选确定故障节点,快速缩小了故障检测范围,加速了定位故障节点的过程,减少了需要进行故障检测的节点的数量,相较于现有技术,无需对较多节点进行故障检测,所以简化了检测故障的过程,提高了检测效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明各个实施例所涉及的分布式存储系统的结构示意图;
图2是本发明实施例提供的一种故障检测装置的结构示意图;
图3-1是本发明实施例提供的一种故障检测方法的流程图;
图3-2是本发明实施例提供的一种统计IO异常事件数量的流程图;
图3-3是本发明实施例提供的一种筛选故障节点的流程图;
图3-4是一种分布式存储系统的结构示意图;
图4是本发明实施例提供的另一种故障检测方法的流程图;
图5-1是本发明实施例提供的一种故障检测装置的结构示意图;
图5-2是本发明实施例提供的另一种故障检测装置的结构示意图;
图5-3是本发明实施例提供的又一种故障检测装置的结构示意图。
通过上述附图,已示出本发明明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本发明构思的范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1是本发明各个实施例所涉及的分布式存储系统的结构示意图,该分布式存储系统可以包括元数据节点001、计算节点002和存储节点003。其中,元数据节点001用于保存用户业务的管理数据,计算节点002用于向用户提供接口以访问存储节点中保存的业务数据,存储节点003用于保存用户业务的业务数据。元数据节点001、计算节点002和存储节点003可以是一台运行有用户业务进程的物理服务器或虚拟服务器。计算节点可以向存储节点发送数据请求,请求获取业务数据,计算节点也可以向元数据节点发送数据请求,请求获取管理数据;存储节点可以向元数据节点发送数据请求,请求获取管理数据,存储节点也可以向另一存储节点发送数据请求,请求获取业务数据。本发明实施例对三种类型的节点的数量不做限定。
需要补充说明的是,现有技术中,大规模的分布式存储系统使用的都是X86通用服务器(X86通用服务器指的是一系列以“86”为结尾的处理器的服务器),对于X86通用服务器而言,磁盘、固态硬盘(英文:Solid State Drives;简称:SSD)、网络、中央处理器(英文:Central Processing Unit;简称:CPU)等发生硬件故障的概率较高。当这些硬件故障导致被处理的用户业务中断时,分布式存储系统能够采用完备的机制来快速隔离出现故障的服务器(即故障节点)。此外也存在另外一种情况,即出现的硬件故障仅会导致被处理的用户业务受损,但不至于导致户业务中断。用户业务受损通常体现为输入输出(英文:InputOutput;简称:IO)操作时延较大(IO操作时延较大也被称作IO亚健康)。由于这种情况,在不同的应用场景以及不同的硬件配置下无法预测IO操作时延,所以无法按照用户业务中断的情况来快速隔离故障节点,且分布式存储系统中节点间的关系较密切,同一条IO路径上的节点会相互影响,单个节点无法自行检测故障,需要进行全局性的故障节点定位。因此,当用户业务受损时,为了迅速恢复故障,就需要从大量的节点中快速定位故障节点,可见,该检测过程十分复杂。
在分布式存储系统中,用户业务的业务数据被分布在多个存储节点上,该业务数据与多个存储节点的对应关系被记录在元数据节点保存的系统拓扑中。元数据节点用于保存并维护该系统拓扑。计算节点和存储节点会周期性地从元数据节点上获取该系统拓扑。计算节点可以根据该系统拓扑查找业务数据,存储节点可以根据该系统拓扑查找备份数据(备份数据指的是业务数据的副本数据)。当分布式存储系统中有节点退出或进入时,元数据节点会更新系统拓扑,并在特定事件触发后将更新后的系统拓扑主动发送至计算节点和存储节点。如果元数据节点无法及时更新系统拓扑,或者计算节点和存储节点无法及时获取更新后的系统拓扑,IO操作会发生卡顿或阻塞,最终导致用户业务受损甚至中断。发生故障的元数据节点对分布式存储系统的影响范围最大。
计算节点用于向用户提供小型计算机系统接口(英文:Small Computer SystemInterface;简称:SCSI)或互联网小型计算机系统接口(英文:Intemet Small ComputerSystem Interface;简称:iSCSI)、Object(中文:对象)接口、File(中文:文件)接口等,这些接口是用户访问分布式存储系统的入口。发生故障的计算节点会对用户通过计算节点访问业务数据造成影响。
作为分布式存储系统的核心,存储节点保存有用户业务的业务数据。发生故障的存储节点会对用户访问存储节点上的业务数据造成影响。
现有技术中,当用户感知到用户业务受损时,采用的是单点故障检测技术,具体是根据系统拓扑确定用户业务对应的接口(该接口也被称作用户卷),确定该接口对应的计算节点,排查计算节点的状态和日志,排查是否和元数据节点(或存储节点)存在IO操作异常,再在系统拓扑中查找存储节点,检测存储节点是否出现故障,再在系统拓扑中查找元数据节点,检测元数据节点是否出现故障。可见,该检测过程较繁琐,检测效率较低。
图2是本发明实施例提供的一种故障检测装置的结构示意图,该装置可以用于故障分析节点,该故障分析节点可以为图1所示的元数据节点001、计算节点002或存储节点003,也可以为除元数据节点001、计算节点002和存储节点003之外的运行有用户业务进程的物理服务器或虚拟服务器,即为一个独立的节点。如图2所示,该装置包括处理器201(如CPU)、存储器202、网络接口203和总线204。其中,总线204用于连接处理器201、存储器202和网络接口203。存储器202可能包含随机存取存储器(英文:Random Access Memory;简称:RAM),也可能包含非不稳定的存储器(英文:non-volatile memory),例如至少一个磁盘存储器。通过网络接口203(可以是有线或者无线)实现节点之间的通信连接。存储器202中存储有程序2021,该程序2021用于实现各种应用功能,处理器201用于执行存储器202中存储的程序2021来实现下述故障检测方法。
本发明实施例提供了一种故障检测方法,该方法可以用于故障分析节点,该故障分析节点可以为图1所示的元数据节点001、计算节点002或存储节点003,也可以为除元数据节点001、计算节点002和存储节点003之外的运行有用户业务进程的物理服务器或虚拟服务器,如图3-1所示,该方法可以包括:
步骤301、故障分析节点获取第一节点与其余节点的交互时延,得到多个交互时延。
该第一节点为n个节点中的任一节点。其余节点指的是与第一节点进行数据交互的所有节点。需要说明的是,本发明实施例中,节点10与节点20的交互时延指的是节点10发出数据请求到接收到节点20反馈的响应的时间差。
在分布式存储系统中,计算节点与存储节点,存储节点与存储节点,计算节点与元数据节点,存储节点与元数据节点之间都会进行数据交互,任何一个数据交互的交互时延变大都会影响到被处理的用户业务。
假设节点LL为其余节点中的某一节点,在确定第一节点与节点LL的交互时延时,可以确定第一节点与节点LL的平均时延,也即确定第一节点与节点LL在一段时间内的所有交互时延的平均值。
现以分布式存储系统包括七个节点为例进行说明,该七个节点分别为计算节点A,计算节点B,元数据节点a,存储节点CC1,存储节点CC2,存储节点CC3和存储节点CC4。故障分析节点可以为该七个节点中的任一节点。假设第一节点为存储节点CC3,且存储节点CC3与计算节点A的交互时延为t1,存储节点CC3与存储节点CC1的交互时延为t2,存储节点CC3与存储节点CC4的交互时延为t3,那么故障分析节点可以获取存储节点CC3的三个交互时延:t1、t2和t3。
步骤302、故障分析节点确定目标交互时延的数量p,该目标交互时延为与多个交互时延中的最小交互时延的差值大于预设差值的交互时延。
按照步骤301,故障分析节点得到存储节点CC3的三个交互时延:t1、t2和t3。假设这三个交互时延中的最小交互时延为t2,如果预设差值为x,经判断,t1与t2的差值大于x,t3与t2的差值也大于x,那么,故障分析节点可以确定目标交互时延是t1和t3,目标交互时延的数量p为2。预设差值x的大小可以根据实际应用来确定,本发明实施例对此不做限定。
步骤303、故障分析节点在第一节点上记录p个IO异常事件。
该IO异常事件可以包括进行交互的两个节点的信息,如两个节点请求的业务数据和系统拓扑等中两个节点的连接关系等。
按照步骤302,故障分析节点确定了目标交互时延的数量p为2之后,可以在存储节点CC3上记录两个IO异常事件。该IO异常事件为IO操作超时所产生的事件。
假设第一节点为计算节点A,故障分析节点获取计算节点A与其余节点的交互时延,得到四个交互时延,并确定了此时的目标交互时延的数量p为3,那么故障分析节点可以在计算节点A上记录三个IO异常事件。
假设是存储节点CC1出现了故障,如存储节点CC1的磁盘IO操作速度降低,那么所有向存储节点CC1发起数据请求的请求节点与存储节点CC1的交互时延都会比较大,这些请求节点都有可能记录一个IO异常事件。此外,本发明实施例中的故障均指的是硬件故障。
需要说明的是,该记录过程可以由故障分析节点完成,也可以由第一节点完成,本发明实施例对此不做限定。
步骤304、故障分析节点统计分布式存储系统的n个节点中每个节点上记录的IO异常事件数量。
n为大于1的整数。
具体的,如图3-2所示,步骤304可以包括:
步骤3041、故障分析节点检测被处理的用户业务是否出现异常。
在统计每个节点上记录的IO异常事件数量时,故障分析节点可以先检测被处理的用户业务是否出现异常。示例的,该用户业务可以为文件系统业务或数据库业务等。
步骤3042、当用户业务出现异常时,故障分析节点确定异常的类型。
当用户业务出现异常时,故障分析节点可以确定异常的类型,判断该异常的类型是否为亚健康类型。当该异常的类型为亚健康类型时,表明用户业务因故障节点已受损,但并未中断。示例的,当该用户业务的处理时延较大,或者带宽出现较大幅度波动时,故障分析节点都可以确定异常的类型为亚健康类型。
步骤3043、当异常的类型为亚健康类型时,故障分析节点统计n个节点中每个节点上记录的IO异常事件数量。
可选的,故障分析节点可以采用日志收集工具,基于系统拓扑去收集和统计每个节点上记录的IO异常事件数量。
当异常的类型为亚健康类型时,故障分析节点可以统计分布式存储系统七个节点中每个节点的IO异常事件数量。如故障分析节点统计的计算节点A上记录的IO异常事件数量为z1,统计的计算节点B上记录的IO异常事件数量为z2,统计的存储节点CC1上记录的IO异常事件数量为z3,统计的存储节点CC2上记录的IO异常事件数量为z4,统计的存储节点CC3上记录的IO异常事件数量为z5,统计的存储节点CC4上记录的IO异常事件数量为z6,统计的元数据节点a上记录的IO异常事件数量为z7。
步骤305、故障分析节点根据统计的每个节点上记录的IO异常事件数量,为每个节点所属的收发对中的节点投票,该收发对包括:发起数据请求的请求节点和响应数据请求的响应节点。
当出现硬件故障时,常常会体现在IO操作超时上。当某一节点出现故障时,与该节点进行数据交互的节点也会受到影响,造成IO操作超时,产生IO异常事件。本发明实施例将进行数据交互的两个节点称为一个收发对。
按照步骤304,故障分析节点统计完七个节点中每个节点上记录的IO异常事件数量之后,根据统计的IO异常事件数量,为每个节点所属的收发对中的节点投票,投票数量越多的节点,出现故障的概率就越大,需要优先对该节点进行故障排查。
具体的,步骤305可以包括:
根据统计的第一节点上记录的IO异常事件数量p,为第一节点所属的p个收发对中每个收发对包括的第一节点和响应节点分别投票,第一节点用于发起数据请求,响应节点用于响应数据请求。
以分布式存储系统中的存储节点CC3为例,故障分析节点统计的存储节点CC3上记录的IO异常事件数量为2,那么故障分析节点可以为存储节点CC3所属的两个收发对中每个收发对包括的存储节点CC3和响应节点分别投票,如第一个收发对包括存储节点CC3和计算节点A,第二个收发对包括存储节点CC3和存储节点CC4。两个收发对中的存储节点CC3均为请求节点,用于发起数据请求,计算节点A和存储节点CC4均为响应节点,用于响应存储节点CC3发起的数据请求。故障分析节点根据IO异常事件数量2,为第一个收发对中的存储节点CC3和计算节点A分别投一票,为第二个收发对中的存储节点CC3和存储节点CC4分别投一票。
同样的,可以采用相同的方式为其余六个节点所属的收发对中的节点投票。最终,可以得到七个节点中每个节点的投票数量,该投票数量大于等于0。
步骤306、故障分析节点根据每个节点获得的投票数量从n个节点中筛选出至少一个节点作为故障节点。
故障分析节点得到每个节点的投票数量后,再根据每个节点获得的投票数量从分布式存储系统的七个节点中筛选出故障节点。
具体的,如图3-3所示,步骤306可以包括:
步骤3061、故障分析节点根据每个节点获得的投票数量将n个节点降序排列。
故障分析节点根据每个节点获得的投票数量将n个节点降序排列,排名越靠前的节点,出现故障的概率就越大,所以需要被优先排查。
示例的,分布式存储系统中的计算节点A获得的投票数量为y1,计算节点B获得的投票数量为y2,存储节点CC1获得的投票数量为y3,存储节点CC2获得的投票数量为y4,存储节点CC3获得的投票数量为y5,存储节点CC4获得的投票数量为y6,元数据节点a获得的投票数量为y7。假设y5>y4>y2>y1>y7>y6>y3那么故障分析节点根据y1至y7七个值将七个节点降序排列得到:存储节点CC3,存储节点CC2,计算节点B,计算节点A,元数据节点a,存储节点CC4,存储节点CC1。
步骤3062、故障分析节点将排名前m位的节点确定为故障节点,m为大于等于1的整数。
示例的,故障分析节点可以将步骤3061中排名前3位的节点如存储节点CC3,存储节点CC2和计算节点B确定为故障分析节点。或者,故障分析节点可以将排名第1位的节点如存储节点CC3确定为故障分析节点。
现以图3-4所示的分布式存储系统为例对该故障检测方法的步骤进行说明。假设故障分析节点为计算节点JS。按照步骤301,计算节点JS获取计算节点JS与存储节点CJ1的交互时延jh1,获取计算节点JS与存储节点CJ2的交互时延jh2,获取存储节点CJ1与存储节点CJ2的交互时延jh3,获取存储节点CJ1与计算节点JS的交互时延jh4。按照步骤302,计算节点JS确定计算节点JS的目标交互时延的数量为1,确定存储节点CJ1的目标交互时延的数量为1。按照步骤303,计算节点JS在计算节点JS上记录一个IO异常事件,在存储节点CJ1上记录一个IO异常事件。按照步骤304,计算节点JS统计计算节点JS上记录的IO异常事件数量为1,统计存储节点CJ1上记录的IO异常事件数量也为1。按照步骤305,计算节点JS为计算节点JS所属的收发对中的节点即计算节点JS和存储节点CJ2分别投一票,并为存储节点CJ1所属的收发对中的节点即存储节点CJ1和存储节点CJ2分别投一票。这样一来,计算节点JS获得的投票数量为1,存储节点CJ1获得的投票数量为1,存储节点CJ2获得的投票数量为2。按照步骤306,计算节点JS可以将获得投票数量最多的存储节点CJ2作为故障节点。
在分布式存储系统中,IO路径错综复杂,一个节点可能会参与到多个IO路径中,所以涉及到异常的IO路径越多的节点,出现故障的概率就越大。该故障检测方法采用投票机制对记录有IO异常事件的节点所属的收发对中的两个节点投票,最终按照所有节点获得的投票数量的排序,筛选出故障节点,从而达到了快速缩小故障检测范围,加速定位故障节点的过程,简化检测过程,提高检测效率的效果,减小了对用户业务的影响。
综上所述,本发明实施例提供的故障检测方法,由于能够根据统计的每个节点上记录的IO异常事件数量,为每个节点所属的收发对中的节点投票,并根据每个节点获得的投票数量从n个节点中筛选确定故障节点,快速缩小了故障检测范围,加速了定位故障节点的过程,减少了需要进行故障检测的节点的数量,相较于现有技术,无需对较多节点进行故障检测,所以简化了检测故障的过程,提高了检测效率,减小了对用户业务的影响。
本发明实施例提供了一种故障检测方法,该方法可以用于故障分析节点,该故障分析节点可以为图1所示的元数据节点001、计算节点002或存储节点003,也可以为除元数据节点001、计算节点002和存储节点003之外的运行有用户业务进程的物理服务器或虚拟服务器,如图4所示,该方法可以包括:
步骤401、故障分析节点获取第一节点与其余节点的交互时延,得到多个交互时延。
第一节点为n个节点中的任一节点。其余节点指的是与第一节点进行数据交互的所有节点。
现以分布式存储系统包括七个节点为例进行说明,该七个节点分别为计算节点A,计算节点B,元数据节点a,存储节点CC1,存储节点CC2,存储节点CC3和存储节点CC4。故障分析节点可以为该七个节点中的任一节点。假设第一节点为计算节点A,且计算节点A与存储节点CC1的交互时延为T1,计算节点A与存储节点CC2的交互时延为T2,计算节点A与存储节点CC3的交互时延为T3,计算节点A与存储节点CC4的交互时延为T4,那么故障分析节点可以获取计算节点A的四个交互时延,即T1、T2、T3和T4。
步骤402、故障分析节点确定多个交互时延中大于预设时延阈值的交互时延的数量p。
按照步骤401,故障分析节点得到计算节点A的四个交互时延:T1、T2、T3和T4。假设这四个交互时延中大于预设时延阈值u的交互时延为T1、T2和T3,那么故障分析节点可以确定这四个交互时延中大于预设时延阈值u的交互时延的数量p为3。
步骤403、故障分析节点在第一节点上记录p个IO异常事件。
按照步骤402,故障分析节点确定了计算节点A的四个交互时延中大于预设时延阈值的交互时延的数量p为3之后,可以在计算节点A上记录三个IO异常事件。该IO异常事件为IO操作超时所产生的事件。
同样的,故障分析节点可以确定分布式存储系统中其余六个节点中每个节点的多个交互时延中大于预设时延阈值的交互时延的数量p,并在相应节点上记录p个IO异常事件。
假设是计算节点A出现了故障,如计算节点A的网卡出现了故障,那么所有向计算节点A发起数据请求的请求节点与计算节点A的交互时延都会比较大,这些请求节点都有可能记录一个IO异常事件。
需要说明的是,该记录过程可以由故障分析节点完成,也可以由第一节点完成,本发明实施例对此不做限定。
步骤404、故障分析节点统计分布式存储系统的n个节点中每个节点上记录的IO异常事件数量。
n为大于1的整数。步骤404的具体过程可以参考步骤304。
步骤405、故障分析节点根据统计的每个节点上记录的IO异常事件数量,为每个节点所属的收发对中的节点投票。
该收发对包括:发起数据请求的请求节点和响应数据请求的响应节点。
按照步骤404,故障分析节点统计完分布式存储系统包括中的七个节点中每个节点上记录的IO异常事件数量之后,根据统计的IO异常事件数量,为每个节点所属的收发对中的节点投票。
以分布式存储系统中的计算节点A为例,故障分析节点统计的计算节点A上记录的IO异常事件数量为3,那么故障分析节点可以为计算节点A所属的三个收发对中每个收发对包括的计算节点A和响应节点分别投票。如第一个收发对包括计算节点A和存储节点CC1,第二个收发对包括计算节点A和存储节点CC2,第三个收发对包括计算节点A和存储节点CC3。三个收发对中的计算节点A均为请求节点,用于发起数据请求,存储节点CC1、存储节点CC2和存储节点CC3均为响应节点,用于响应计算节点A发起的数据请求。故障分析节点根据IO异常事件数量3,为第一个收发对中的计算节点A和存储节点CC1分别投一票,为第二个收发对中的计算节点A和存储节点CC2分别投一票,为第三个收发对中的计算节点A和存储节点CC3分别投一票。
同样的,可以采用相同的方式为分布式存储系统中其余六个节点所属的收发对中的节点投票,最终,可以得到七个节点中每个节点的投票数量,该投票数量大于等于0。当仅是计算节点A出现故障,那么存储节点CC1、存储节点CC2、存储节点CC3和存储节点CC4只有在与计算节点A交互时才会被投一票。
步骤406、故障分析节点根据每个节点获得的投票数量从n个节点中筛选出至少一个节点作为故障节点。
故障分析节点得到每个节点的投票数量后,再根据每个节点获得的投票数量从分布式存储系统的七个节点中筛选出故障节点。步骤406的具体过程可以参考步骤306,在此不再赘述。
综上所述,本发明实施例提供的故障检测方法,由于能够根据统计的每个节点上记录的IO异常事件数量,为每个节点所属的收发对中的节点投票,并根据每个节点获得的投票数量从n个节点中筛选确定故障节点,快速缩小了故障检测范围,加速了定位故障节点的过程,减少了需要进行故障检测的节点的数量,相较于现有技术,无需对较多节点进行故障检测,所以简化了检测故障的过程,提高了检测效率,减小了对用户业务的影响。
需要说明的是,本发明实施例提供的故障检测方法步骤的先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本发明的保护范围之内,因此不再赘述。
本发明实施例提供了一种故障检测装置500,该装置可以用于故障分析节点,该故障分析节点可以为图1所示的元数据节点001、计算节点002或存储节点003,也可以为除元数据节点001、计算节点002和存储节点003之外的运行有用户业务进程的物理服务器或虚拟服务器,如图5-1所示,该装置500可以包括:
统计模块510,用于执行上述实施例中的步骤304或步骤404。
投票模块520,用于执行上述实施例中的步骤305或步骤405。
筛选模块530,用于执行上述实施例中的步骤306或步骤406。
可选的,筛选模块530用于执行上述实施例中的步骤3061和步骤3062。
可选的,投票模块520,用于:
根据统计的第一节点上记录的IO异常事件数量p,为第一节点所属的p个收发对中每个收发对包括的第一节点和响应节点分别投票,第一节点为n个节点中的任一节点,第一节点用于发起数据请求,响应节点用于响应数据请求。
可选的,统计模块510,用于执行上述实施例中的步骤3041、步骤3042和步骤3043。
进一步的,如图5-2所示,该装置500还可以包括:
第一获取模块540,用于执行上述实施例中的步骤301。
第一确定模块550,用于执行上述实施例中的步骤302。
第一记录模块560,用于执行上述实施例中的步骤303。
图5-2中的其他标记含义可以参考图5-1。
进一步的,如图5-3所示,该装置500还可以包括:
第二获取模块570,用于执行上述实施例中的步骤401。
第二确定模块580,用于执行上述实施例中的步骤402。
第二记录模块590,用于执行上述实施例中的步骤403。
图5-3中的其他标记含义可以参考图5-1。
综上所述,本发明实施例提供的故障检测装置,由于该装置能够根据统计的每个节点上记录的IO异常事件数量,为每个节点所属的收发对中的节点投票,并根据每个节点获得的投票数量从n个节点中筛选确定故障节点,快速缩小了故障检测范围,加速了定位故障节点的过程,减少了需要进行故障检测的节点的数量,相较于现有技术,无需对较多节点进行故障检测,所以简化了检测故障的过程,提高了检测效率,减小了对用户业务的影响。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种故障检测方法,其特征在于,所述方法包括:
统计分布式存储系统的n个节点中每个节点上记录的输入输出IO异常事件数量,所述n为大于1的整数,所述IO异常事件为IO操作超时所产生的事件;
根据统计的每个节点上记录的IO异常事件数量,为所述每个节点所属的收发对中的节点投票,所述收发对包括:发起数据请求的请求节点和响应所述数据请求的响应节点;
根据每个节点获得的投票数量从所述n个节点中筛选出至少一个节点作为故障节点。
2.根据权利要求1所述的方法,其特征在于,所述根据每个节点获得的投票数量从所述n个节点中筛选出至少一个节点作为故障节点,包括:
根据每个节点获得的投票数量将所述n个节点降序排列;
将排名前m位的节点确定为所述故障节点,所述m为大于等于1的整数。
3.根据权利要求1或2所述的方法,其特征在于,在所述统计分布式存储系统的n个节点中每个节点上记录的输入输出IO异常事件数量之前,所述方法还包括:
获取第一节点与其余节点的交互时延,得到多个交互时延,所述第一节点为所述n个节点中的任一节点;
确定目标交互时延的数量p,所述目标交互时延为与所述多个交互时延中的最小交互时延的差值大于预设差值的交互时延;
在所述第一节点上记录p个IO异常事件。
4.根据权利要求1或2所述的方法,其特征在于,在所述统计分布式存储系统的n个节点中每个节点上记录的输入输出IO异常事件数量之前,所述方法还包括:
获取第一节点与其余节点的交互时延,得到多个交互时延,所述第一节点为所述n个节点中的任一节点;
确定所述多个交互时延中大于预设时延阈值的交互时延的数量p;
在所述第一节点上记录p个IO异常事件。
5.根据权利要求1所述的方法,其特征在于,所述根据统计的每个节点上记录的IO异常事件数量,为所述每个节点所属的收发对中的节点投票,包括:
根据统计的第一节点上记录的IO异常事件数量p,为所述第一节点所属的p个收发对中每个收发对包括的第一节点和响应节点分别投票,所述第一节点为所述n个节点中的任一节点,所述第一节点用于发起数据请求,所述响应节点用于响应所述数据请求。
6.根据权利要求1所述的方法,其特征在于,所述统计分布式存储系统的n个节点中每个节点上记录的输入输出IO异常事件数量,包括:
检测被处理的用户业务是否出现异常;
当所述用户业务出现异常时,确定所述异常的类型;
当所述异常的类型为亚健康类型时,统计所述n个节点中每个节点上记录的IO异常事件数量,所述亚健康类型为使所述用户业务受损,但并未使所述用户业务中断的异常的类型。
7.一种故障检测装置,其特征在于,所述装置包括:
统计模块,用于统计分布式存储系统的n个节点中每个节点上记录的输入输出IO异常事件数量,所述n为大于1的整数,所述IO异常事件为IO操作超时所产生的事件;
投票模块,用于根据统计的每个节点上记录的IO异常事件数量,为所述每个节点所属的收发对中的节点投票,所述收发对包括:发起数据请求的请求节点和响应所述数据请求的响应节点;
筛选模块,用于根据每个节点获得的投票数量从所述n个节点中筛选出至少一个节点作为故障节点。
8.根据权利要求7所述的装置,其特征在于,所述筛选模块,用于:
根据每个节点获得的投票数量将所述n个节点降序排列;
将排名前m位的节点确定为所述故障节点,所述m为大于等于1的整数。
9.根据权利要求7或8所述的装置,其特征在于,所述装置还包括:
第一获取模块,用于获取第一节点与其余节点的交互时延,得到多个交互时延,所述第一节点为所述n个节点中的任一节点;
第一确定模块,用于确定目标交互时延的数量p,所述目标交互时延为与所述多个交互时延中的最小交互时延的差值大于预设差值的交互时延;
第一记录模块,用于在所述第一节点上记录p个IO异常事件。
10.根据权利要求7或8所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于获取第一节点与其余节点的交互时延,得到多个交互时延,所述第一节点为所述n个节点中的任一节点;
第二确定模块,用于确定所述多个交互时延中大于预设时延阈值的交互时延的数量p;
第二记录模块,用于在所述第一节点上记录p个IO异常事件。
11.根据权利要求7所述的装置,其特征在于,所述投票模块,用于:
根据统计的第一节点上记录的IO异常事件数量p,为所述第一节点所属的p个收发对中每个收发对包括的第一节点和响应节点分别投票,所述第一节点为所述n个节点中的任一节点,所述第一节点用于发起数据请求,所述响应节点用于响应所述数据请求。
12.根据权利要求7所述的装置,其特征在于,所述统计模块,用于:
检测被处理的用户业务是否出现异常;
当所述用户业务出现异常时,确定所述异常的类型;
当所述异常的类型为亚健康类型时,统计所述n个节点中每个节点上记录的IO异常事件数量,所述亚健康类型为使所述用户业务受损,但并未使所述用户业务中断的异常的类型。
CN201610947011.XA 2016-10-26 2016-10-26 故障检测方法及装置 Active CN106407083B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610947011.XA CN106407083B (zh) 2016-10-26 2016-10-26 故障检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610947011.XA CN106407083B (zh) 2016-10-26 2016-10-26 故障检测方法及装置

Publications (2)

Publication Number Publication Date
CN106407083A CN106407083A (zh) 2017-02-15
CN106407083B true CN106407083B (zh) 2019-06-18

Family

ID=58013705

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610947011.XA Active CN106407083B (zh) 2016-10-26 2016-10-26 故障检测方法及装置

Country Status (1)

Country Link
CN (1) CN106407083B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108664346A (zh) * 2017-03-27 2018-10-16 中国移动通信集团福建有限公司 分布式存储系统的节点异常的定位方法、装置和系统
CN109753371B (zh) * 2017-11-06 2021-10-19 华为技术有限公司 一种i/o阻塞检测方法、装置及设备
CN108579093B (zh) * 2018-05-10 2023-11-03 腾讯科技(上海)有限公司 目标进程的运行保护方法、装置及可读介质
CN112470131B (zh) * 2018-07-20 2023-02-07 华为技术有限公司 检测数据集中异常的装置和方法以及它们相应的计算机程序产品
CN110795276A (zh) * 2018-08-01 2020-02-14 阿里巴巴集团控股有限公司 一种存储介质的修复方法、计算机设备、存储介质
CN109308227B (zh) * 2018-08-24 2021-04-27 腾讯科技(深圳)有限公司 故障检测控制方法及相关设备
WO2020181478A1 (zh) * 2019-03-12 2020-09-17 华为技术有限公司 亚健康节点的管理方法和装置
CN111400155B (zh) * 2020-03-13 2021-08-31 深圳前海微众银行股份有限公司 一种数据检测方法及装置
CN111459738B (zh) * 2020-03-30 2023-06-30 中国人民解放军国防科技大学 基于fail-slow模型的并行存储系统故障诊断方法及系统
CN111698120B (zh) * 2020-06-02 2022-10-18 浙江大华技术股份有限公司 存储节点隔离方法和装置
CN112363901B (zh) * 2020-11-17 2023-08-29 浙江大华技术股份有限公司 硬盘性能检测方法、装置、系统、存储介质及电子装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103259688A (zh) * 2013-06-04 2013-08-21 北京搜狐新媒体信息技术有限公司 一种分布式存储系统的故障诊断方法与装置
CN103581225A (zh) * 2012-07-25 2014-02-12 中国银联股份有限公司 分布式系统中的节点处理任务的方法
US9146790B1 (en) * 2012-11-02 2015-09-29 Symantec Corporation Performing fencing operations in multi-node distributed storage systems
CN105550230A (zh) * 2015-12-07 2016-05-04 北京奇虎科技有限公司 分布式存储系统节点故障的侦测方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103581225A (zh) * 2012-07-25 2014-02-12 中国银联股份有限公司 分布式系统中的节点处理任务的方法
US9146790B1 (en) * 2012-11-02 2015-09-29 Symantec Corporation Performing fencing operations in multi-node distributed storage systems
CN103259688A (zh) * 2013-06-04 2013-08-21 北京搜狐新媒体信息技术有限公司 一种分布式存储系统的故障诊断方法与装置
CN105550230A (zh) * 2015-12-07 2016-05-04 北京奇虎科技有限公司 分布式存储系统节点故障的侦测方法和装置

Also Published As

Publication number Publication date
CN106407083A (zh) 2017-02-15

Similar Documents

Publication Publication Date Title
CN106407083B (zh) 故障检测方法及装置
US9672085B2 (en) Adaptive fault diagnosis
CN105488610B (zh) 一种电力应用系统故障实时分析诊断方法
CN103853627B (zh) 由与物理机器相关地分析虚拟机器性能问题原因的方法和系统
CN100356321C (zh) 编程生成合成事务以监视web应用的性能和可用性的方法和系统
CN111817911B (zh) 一种探测网络质量的方法、装置、计算设备及存储介质
US10909018B2 (en) System and method for end-to-end application root cause recommendation
CN1795446B (zh) 计算机集群及其中的计算机节点和传送状态信息的方法
US20100198909A1 (en) Method and apparatus for the continuous collection and correlation of application transactions across all tiers of an n-tier application
JP5471859B2 (ja) 解析プログラム、解析方法、および解析装置
US20170068581A1 (en) System and method for relationship based root cause recommendation
CN107229556A (zh) 基于elastic组件的日志分析系统
US20090259749A1 (en) Computer system input/output management
CN102567185B (zh) 一种应用服务器的监控方法
CN107273267A (zh) 基于elastic组件的日志分析方法
CN105302697B (zh) 一种密集数据模型数据库的运行状态监控方法及系统
CN107870832A (zh) 基于多维度健康诊断方法的多路径存储设备
EP2524308A2 (en) Methods and apparatus for predicting the performance of a multi-tier computer software system
US10402298B2 (en) System and method for comprehensive performance and availability tracking using passive monitoring and intelligent synthetic transaction generation in a transaction processing system
KR102580916B1 (ko) 5g 분산 클라우드 시스템의 빅 데이터를 이용하여 장애를 관리하는 장치 및 방법
CN112636942A (zh) 业务主机节点的监测方法及装置
CN108664346A (zh) 分布式存储系统的节点异常的定位方法、装置和系统
CN102959521B (zh) 计算机系统的管理方法以及管理系统
CN110247823A (zh) 一种故障检测方法、装置及相关设备
CN108289035B (zh) 一种直观的网络及业务系统运行状态展现方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220909

Address after: No.1899 Xiyuan Avenue, high tech Zone (West District), Chengdu, Sichuan, 611730

Patentee after: Chengdu Huawei Technologies Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right