CN108173672B - 检测故障的方法和装置 - Google Patents
检测故障的方法和装置 Download PDFInfo
- Publication number
- CN108173672B CN108173672B CN201711261551.3A CN201711261551A CN108173672B CN 108173672 B CN108173672 B CN 108173672B CN 201711261551 A CN201711261551 A CN 201711261551A CN 108173672 B CN108173672 B CN 108173672B
- Authority
- CN
- China
- Prior art keywords
- storage unit
- client
- server
- fault
- cluster monitor
- 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
Images
Classifications
-
- 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/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0659—Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities
-
- 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
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
-
- 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/16—Threshold monitoring
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供了一种检测故障的方法和装置,该方法包括:集群监测器接收至少一个客户端中每个客户端发送的状态信息,所述状态信息用于指示与所述每个客户端通信的服务器的存储单元的故障状态;所述集群监测器根据所述每个客户端发送的状态信息,确定与所述至少一个客户端通信的服务器的存储单元的故障状态;所述集群监测器根据所述至少一个客户端通信的服务器的存储单元的故障状态,在与所述至少一个客户端通信的服务器中确定故障服务器,能够降低检测故障的复杂度。
Description
技术领域
本申请涉及计算机领域,并且,更具体地,涉及计算机领域中检测故障的方法和装置。
背景技术
分布式文件***在客户端(client)将数据写到各个服务器或者从服务器读取数据,当服务器(server)的磁盘出现故障时,需要及时检测到故障并将故障隔离,否则客户端无法感知磁盘状态,一直给故障的磁盘发送请求消息,最终导致出现操作错误。现有的检测故障的方法服务器检测磁盘的故障,不同的故障类型对应不同的检测机制,每种检测机制在不同的场景下需要配置不同的参数,并且每新增一种故障都需要增加新的检测机制,这样,会增加检测故障的复杂度。
发明内容
本申请提供一种检测故障的方法和装置,能够降低检测故障的复杂度。
第一方面,提供了一种检测故障的方法,包括:集群监测器接收至少一个客户端中每个客户端发送的状态信息,所述状态信息用于指示与所述每个客户端通信的服务器的存储单元的故障状态;所述集群监测器根据所述每个客户端发送的状态信息,确定与所述至少一个客户端通信的服务器的存储单元的故障状态;所述集群监测器根据所述至少一个客户端通信的服务器的存储单元的故障状态,在与所述至少一个客户端通信的服务器中确定故障服务器;所述集群监测器向所述至少一个客户端中的第一客户端发送所述故障服务器的存储单元的故障状态。
因此,本申请实施例中,集群监测器根据状态信息,能够确定故障服务器,集群检测器可以屏蔽底层存储单元的故障,能够减少维护的成本,降低检测故障的复杂性。
可选地,存储单元也可以是硬盘或磁盘等。
可选地,存储单元的故障状态可以是存储单元存在故障、存储单元正常、存储单元的故障状态未知。
在某些实现方式中,所述每个客户端发送的状态信息包括多个状态信息,所述多个状态信息中每个状态信息为所述每个客户端的每个周期的状态信息;所述集群监测器根据所述每个客户端发送的状态信息,确定与所述至少一个客户端通信的服务器的存储单元的故障状态,包括:所述集群监测器根据所述每个客户端发送的多个状态信息,确定与所述至少一个客户端通信的服务器的存储单元的故障状态。
具体来说,可以根据每个客户端的多个状态信息确定存储单元的故障状态,多个状态信息可以是多个发送周期的状态信息,这样可以提高确定存储单元故障状态的准确性。
在某些实现方式中,若与所述每个客户端通信的服务器的存储单元中第一存储单元的故障状态为无故障,则用第一数值表示正常的存储单元,若所述第一存储单元故障状态为存在故障,则用第二数值表示故障的存储单元,若所述第一存储单元的故障状态未知,则用第三数值表示未知的存储单元。
在某些实现方式中,所述集群监测器根据所述每个客户端发送的多个状态信息,确定与所述至少一个客户端通信的服务器的存储单元的故障状态,包括:
所述集群监测器对所述每个客户端发送的多个状态信息中每个状态信息指示的存储单元的故障状态对应的数值进行加权,确定与所述至少一个客户端通信的服务器的存储单元的得分;所述集群监测器根据与所述至少一个客户端通信的服务器的存储单元的得分,确定与所述至少一个客户端通信的服务器的存储单元的故障状态。
在本申请实施例中,存储单元的故障状态可以用数值表示,不同的数值表示不同的故障状态,例如,第一数值可以为1,第二数值可以是-1,第三数值可以为0。可以将每个存储单元的多个故障状态对应的数值进行加权,得到每个存储单元的得分,然后根据每个存储单元的得分确定每个存储单元的故障状态。
应理解,可以用存储单元的得分来确定存储单元的故障状态,当然,本申请实施例对此不作限定,也可以用存储单元的故障级别确定存储单元的故障状态,例如,存储单元的故障程度可以分为一级故障(较严重的故障)、二级故障(一般的故障)、三级故障(轻微的故障)等。
在某些实现方式中,所述集群监测器对所述每个客户端发送的多个状态信息中每个状态信息对应的数值进行加权,确定与所述至少一个客户端通信的服务器的存储单元的得分,包括:
所述集群监测器对所述每个客户端发送的多个状态信息中每个状态信息指示的第一存储单元的故障状态对应数值进行加权,确定所述第一存储单元的得分;其中,所述集群监测器根据与所述至少一个客户端通信的服务器的存储单元的得分,确定与所述至少一个客户端通信的服务器的存储单元的故障状态,包括:
若所述第一存储单元的得分小于第一阈值,则所述集群监测器将所述第一存储单元确定故障的存储单元;
若所述第一存储单元的得分大于所述第一阈值,则所述集群监测器将所述第一存储单元确定为正常的存储单元;
若所述第一存储单元的得分等于所述第一阈值,则所述集群监测器将所述第一存储单元确定为未知的存储单元。
可选地,第一阈值可以是预设的阈值或者是根据历史数据得到的值,本申请实施例对此不作限定。
在某些实现方式中,在将所述第一存储单元确定为故障的存储单元之后,若所述第一存储单元的得分大于所述第一阈值,则所述集群监测器将所述第一存储单元确定为正常的存储单元。
换句话说,将第一存储单元确定为故障单元之后,集群监测器还在根据每个客户端发送的状态信息确定每个存储单元的状态,当第一存储单元的得分再次大于第一阈值时,可以将第一存储单元的状态确定为正常的存储单元。这样,避免存储单元确定为故障存储单元时不再变化而造成检测故障不够灵活的缺点。
在某些实现方式中,与所述至少一个客户端通信的服务器的存储单元的故障状态为与所述至少一个客户端通信的服务器的存储单元的得分,所述集群监测器根据所述至少一个客户端通信的服务器的存储单元的故障状态,在与所述至少一个客户端通信的服务器中确定故障服务器,包括:所述集群监测器将与所述至少一个客户端通信的服务器中存储单元得分总和小于第二阈值的服务器确定为所述故障服务器。
在某些实现方式中,在所述集群监测器将与所述至少一个客户端通信的服务器中存储单元得分总和小于第二阈值的服务器确定为所述故障服务器之后,所述方法还包括:若所述故障服务器的磁盘得分总和大于或等于所述第二阈值,所述集群监测器将所述故障服务器恢复为正常服务器。
换句话说,将服务器确定为故障服务器之后,集群监测器还在根据每个客户端发送的状态信息指示的每个存储单元的得分,当故障服务器的存储单元的得分总和再次大于第二阈值时,可以将原来确定的故障服务器回复为正常服务器,这样,可以提高确定故障服务器的灵活性。
可选地,第二阈值可以是预设的阈值或者是根据历史数据得到的值,本申请实施例对此不作限定。
在某些实现方式中,所述集群监测器维护与所述至少一个客户端中每个客户端通信的服务器的存储单元的故障状态,所述方法还包括:所述集群监测器在预设时间段内未收到所述至少一个客户端中第二客户端发送的状态信息,所述集群监测器将与所述第二客户端通信的服务器的存储单元的故障状态删除。
换句话说,当集群监测器在预设的时间段内没有收到第二客户端发送的状态信息时,有可能该第二客户端所在的网络节点被长时间隔离、掉电或冻结等,为了避免资源的浪费,该集群监测器可以将与第二客户端通信的服务器的存储单元的故障状态删除。
可选地,当有新的客户端与集群监测器进行通信时,集群监测器添加新的客户端通信的服务器的存储单元的故障状态。
在某些实现方式中,所述状态信息还用于指示所述每个客户端的标识信息以及与所述每个客户端通信的服务器的标识信息。
在某些实现方式中,所述集群监测器接收所述第一客户端发送的故障请求消息,所述故障请求消息用于请求故障服务器的存储单元的故障状态;所述集群监测器向所述至少一个客户端中的第一客户端发送所述故障服务器的存储单元的故障状态,包括:所述集群监测器根据所述故障请求消息向所述第一客户端发送所述故障服务器的存储单元的故障状态。
在本申请实施例中,集群监测器可以向至少一个客户端中的任意一个客户端发送故障服务器的存储单元的故障状态,或者也可以向至少一个客户端中每个客户端发送故障服务器的存储单元的故障状态,或者也可以是基于第一客户端的故障请求消息发送故障服务器的存储单元的故障状态。
第二方面,提供了一种检测故障的方法,包括:第一客户端获取状态信息,所述状态信息用于指示与所述第一客户端通信的服务器的存储单元的故障状态;所述第一客户端向集群监测器发送所述状态信息;所述第一客户端接收所述集群监测器根据所述状态信息发送的故障服务器的存储单元的故障状态;所述第一客户端根据所述故障服务器的存储单元的故障状态进行数据的读写操作。
可选地,第一客户端通信的服务器的存储单元可以是该服务器的全部存储单元或者部分存储单元。
在某些实现方式中,所述第一客户端获取状态信息,包括:所述第一客户端根据与所述第一客户端通信的服务器的存储单元的输入输出的次数,确定所述状态信息指示的与所述第一客户端通信的服务器的存储单元的故障状态。
在某些实现方式中,所述第一客户端根据与所述第一客户端通信的服务器的存储单元输入输出的次数,确定所述状态信息指示的与所述第一客户端通信的服务器的存储单元的故障状态,包括:若与所述第一客户端通信的服务器的第一存储单元的输入输出的成功率大于第三阈值,则将所述第一存储单元确定为正常的存储单元;若所述第一存储单元的输入输出的成功率小于或等于所述第三阈值,则将所述第一存储单元确定为异常的存储单元;若所述第一存储单元的输入输出的次数小于第四阈值,则将所述第一存储单元确定为未知的存储单元。
在某些实现方式中,所述状态信息还用于指示所述第一客户端的标识信息以及与所述第一客户端通信的服务器的标识信息。
在某些实现方式中,所述方法还包括:所述第一客户端向所述集群监测器发送故障请求消息,所述故障请求消息用于请求故障服务器的存储单元的故障状态;其中,所述第一客户端接收所述集群监测器根据所述状态信息发送的故障服务器的存储单元的故障状态,包括:所述第一客户端根据所述故障请求消息接收所述集群监测器发送的故障服务器的存储单元的故障状态。
在某些实现方式中,所述方法还包括:所述第一客户端接收业务端发送的读请求消息;其中,所述第一客户端向所述集群监测器发送故障请求消息,包括:所述第一客户端根据所述读请求消息向所述集群监测器发送故障请求消息。
在某些实现方式中,所述方法还包括:所述第一客户端接收业务端发送的写请求消息;所述第一客户端根据所述写请求消息向第一服务器的存储单元执行写操作;其中,所述第一客户端向所述集群监测器发送故障请求消息,包括:若所述第一客户端确定所述第一服务器的第二存储单元的写操作的连续失败次数大于第五阈值,所述第一客户端向所述集群监测器发送所述故障请求消息。
第三方面,提供了一种检测故障的装置,用于执行上述第一方面或第一方面的任一可能的实现方式中的方法。具体地,该装置包括用于执行上述第一方面或第一方面的任一可能的实现方式中的方法的单元。
第四方面,提供了一种检测故障的装置,用于执行上述第二方面或第二方面的任一可能的实现方式中的方法。具体地,该装置包括用于执行上述第二方面或第二方面的任一可能的实现方式中的方法的单元。
第五方面,提供了一种检测故障的装置,该装置包括:通信接口、存储器和处理器。其中,该通信接口、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制通信接口收发信号,使得该装置执行第一方面或第一方面的任一种可能的实现方式中的方法。
第六方面,提供了一种检测故障的装置,该装置包括:通信接口、存储器和处理器。其中,该通信接口、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制通信接口收发信号,使得该装置执行第二方面或第二方面的任一种可能的实现方式中的方法。
第七方面,提供了一种检测故障的***,包括第三方面或其任一种可选实现方式中的装置和第四方面或其任一种可选实现方式中的装置。可选地,所述***包括第五方面或其任一种可选实现方式中的装置和第六方面或其任一种可选实现方式中的装置。
第八方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如第一方面或第一方面的任一可能的实现方式中的方法。
第九方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如第二方面或第二方面的任一可能的实现方式中的方法。
第十方面,本申请提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面的任一可能的实现方式中的方法。
第十一方面,本申请提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第二方面或第二方面的任一可能的实现方式中的方法。
第十二方面,本申请提供了一种通信芯片,其中存储有指令,当其在第一设备或第二设备上运行时,使得第一设备或第二设备执行上述各方面所述的任一方法。
附图说明
图1是本申请实施例的应用的分布式***架构示意图。
图2是本申请实施例提供的检测故障的方法示意图。
图3是本申请实施例提供的另一检测故障的方法示意图。
图4是本申请实施例提供的又一检测故障的方法示意图。
图5是本申请实施例提供的又一检测故障的方法示意图。
图6是本申请实施例提供的检测故障的装置示意图。
图7是本申请实施例提供的另一检测故障的装置示意图。
图8是本申请实施例提供的又一检测故障的装置示意图。
图9是本申请实施例提供的又一检测故障的装置示意图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
图1是本申请实施例的应用的分布式***(distributed control system,DCS)架构示意图,包括:集群监测器(monitor)、客户端、服务器和存储单元。当然,本申请实施例也可以用于在非分布式文件***中,本申请实施例对此不作限定。
业务端,用于向客户端发送的读写请求消息,当向客户端发送读请求消息之后,并接收客户端发送的所读到的数据。
客户端,作为DCS的入口,负责接收业务端下发的读写请求消息,并将读写请求消息转发给各个服务器。例如,图1中一个客户端可以同时向三个服务器下发读写请求消息。
服务器,用于处理客户端发送的读写请求消息,并将读写请求消息下发给各个磁盘,其中写请求是将数据下发到各个磁盘,读请求是从磁盘读取数据返回给客户端。每个服务器包括存储单元。
存储单元,用于接收服务器发送的读写请求消息,并根据读写请求消息接收服务器的写数据,或者向服务器输出数据。每个网络节点可以部署多个存储单元,该多个存储单元可以是磁盘、固态硬盘或其他存储设备,用于提供存储空间。
若服务器的存储单元发生故障,需要将故障的存储单元进行隔离,避免客户端需要不停地向该服务器的故障的存储单元发送输入输出请求,从而出现操作错误。例如,存储单元是磁盘,现有技术中检测磁盘故障的方法是,服务器根据不同的检测机制可以检测出的不同的故障类型,例如,检测机制可以是:磁盘慢盘或磁盘转慢盘的检测机制,也可以是磁盘元数据区输入输出错误检测机制,也可以是服务器的线程检测,也可以是磁盘管理模块内存检测机制,也可以是磁盘消息超限检测机制等等。在不同的应用场景中,需要配置给检测机制配置不同的参数,这样会增加检测的复杂性,并且,每出现一种新的故障类型,则都需要一种新的检测机制来检测该新的故障类型。
针对上述问题,本申请实施例提供的检测故障方法,通过客户端获取存储单元的状态信息,并且客户端将存储单元的状态信息向集群监测器发送,集群监测器根据可以客户端发送的存储单元的状态信息确定故障服务器,这种检测故障方式可以屏蔽底层存储单元的故障,能够减少维护的成本,降低检测故障的复杂性。
下面结合附图描述本申请实施例的检测故障的方法。
图2示出了本申请实施例的检测故障的方法,包括:
S110,第一客户端获取状态信息,所述状态信息用于指示与所述第一客户端通信的服务器的存储单元的故障状态。例如,如图1所示与网络节点A的客户端通信的服务器是网络节点A的服务器、网络节点B的服务器以及网络节点C的服务器,这样网络节点A的客户端获取的状态信息可以指示与网络节点A的客户端通信的三个服务器中的存储单元的故障状态。又例如,如图1所述与网络节点B的客户端通信的是网络节点B的服务器,这样网络节点B的客户端获取的状态信息可以指示与网络节点B的服务器的存储单元的故障状态。
应理解,本申请实施例中存储单元的故障状态可以是存储单元存在故障、存储单元正常(即不存在故障)或者是存储单元的故障状态未知(即不知道该存储单元是否有故障)。
作为一个可选实施例,所述状态信息还用于指示所述第一客户端的标识信息以及与所述第一客户端通信的服务器的标识信息,例如,第一客户端的标识信息可以是第一客户端的编号身份(identification,ID)或者编号等,与第一客户端通信的服务器的标识信息可以是与第一客户端通信的服务器的ID或编号等,本申请实施例对此不作限定。当集群监测器接收到状态信息时就可以根据客户端的标识信息确定当前的状态信息是哪个客户端发送的,以避免集群监测器重复接收同一客户端发送的状态信息。
作为一个可选实施例,S110,包括:所述第一客户端根据与所述第一客户端通信的服务器的存储单元输入输出的次数,确定所述状态信息指示的与所述第一客户端通信的服务器的存储单元的故障状态。
作为一个可选实施例,所述第一客户端根据与所述第一客户端通信的服务器的存储单元输入输出的次数,确定所述状态信息指示的与所述第一客户端通信的服务器的存储单元的故障状态,包括:
若与所述第一客户端通信的服务器的第一存储单元的输入输出的成功率大于第三阈值,则将所述第一存储单元确定为正常的存储单元;
若所述第一存储单元的输入输出的成功率小于所述第三阈值,则将所述第一存储单元确定为异常的存储单元;
若所述第一存储单元的输入输出的次数小于第四阈值,则将所述第一存储单元确定为未知的存储单元。
在本申请实施例中,第一存储单元可以是与第一客户端通信的服务器的存储单元中的任意一个存储单元,第一客户端可以根据每个存储单元的输入输出次数来确定每个存储单元的故障状态。可选地,第一阈值可以是预设的阈值,或者是根据历史数据确定的阈值,本申请实施例对此不作限定。
S120,所述第一客户端向集群监测器发送所述状态信息,所述集群监测器接收至少一个客户端中每个客户端发送的状态信息,所述状态信息用于指示与所述每个客户端通信的服务器的存储单元的故障状态。第一客户端是至少一个客户端中的任意一个客户端,即,至少一个客户端中的每个客户端都可以向集群监测器发送状态信息。
应理解,至少一个客户端是向集群监测器上报状态信息的客户端,第一客户端可以是至少一个客户端中的任意一个客户端。换句话说,假设当前只有一个客户端在获取状态信息,则至少一个客户端即为当前的该客户端;假设当前有三个客户端在获取状态信息,并将获得的状态信息向集群监测器发送,则至少一个客户端为这三个客户端。
S130,所述集群监测器根据所述每个客户端发送的状态信息,确定与所述至少一个客户端通信的服务器的存储单元的故障状态。
具体来说,例如图1所示,三个客户端分别统计与自身通信的服务器的存储单元的故障状态,并用三个状态信息表示,将给三个状态信息发送给集群监测器,集群监测器根据这三个状态信息来统计图1中所有的存储单元的故障状态。
作为一个可选实施例,所述至少一个客户端中的每个客户端统计多个状态信息,则每个客户端发送的多个状态信息中每个状态信息为所述每个客户端的每个周期的状态信息, S130,包括:所述集群监测器根据所述每个客户端发送的多个状态信息,确定与所述至少一个客户端通信的服务器的存储单元的故障状态。
作为一个可选实施例,若与所述每个客户端通信的服务器的存储单元中第一存储单元的故障状态为无故障,则用第一数值表示正常的存储单元,若所述第一存储单元故障状态为存在故障,则用第二数值表示故障的存储单元,若所述第一存储单元的故障状态未知,则用第三数值表示未知的存储单元,
作为一个可选实施例,所述集群监测器根据所述每个客户端发送的多个状态信息,确定与所述至少一个客户端通信的服务器的存储单元的故障状态,包括:
所述集群监测器对所述每个客户端发送的多个状态信息中每个状态信息指示的存储单元的故障状态对应的数值进行加权,确定与所述至少一个客户端通信的服务器的存储单元的得分;
所述集群监测器根据与所述至少一个客户端通信的服务器的存储单元的得分,确定与所述至少一个客户端通信的服务器的存储单元的故障状态。
更进一步地,所述集群监测器对所述每个客户端发送的多个状态信息中每个周期的状态信息对应的数值进行加权,确定与所述至少一个客户端通信的服务器的存储单元的得分,包括:
所述集群监测器对所述每个客户端发送的多个状态信息中每个状态信息指示的第一存储单元的故障状态对应数值进行加权,确定所述第一存储单元的得分;
其中,所述集群监测器根据与所述至少一个客户端通信的服务器的存储单元的得分,确定与所述至少一个客户端通信的服务器的存储单元的故障状态,包括:若所述第一存储单元的得分小于第一阈值,则所述集群监测器将所述第一存储单元确定故障的存储单元;若所述第一存储单元的得分大于所述第一阈值,则所述集群监测器将所述第一存储单元确定为正常的存储单元;若所述第一存储单元的得分等于所述第一阈值,则所述集群监测器将所述第一存储单元确定为未知的存储单元。
具体来说,可以用特定的数值来表示存储单元的故障状态,即客户端在统计状态信息时,可以用数值来表示存储单元的故障状态,例如,第一数值表示正常的存储单元,第二数据表示故障的存储单元,第三数值表示未知的存储单元,举例来说,第一数值可以是1,第二数值可以是-1,第三数据可以是0,从而可以根据这些数值来统计存储单元的得分情况,进一步地,可以利用多个周期的状态信息指示的故障状态对应的数值进行加权,从而统计出存储单元的得分,然后利用存储单元的得分来确定存储单元的故障状态。例如,多个周期可以是预设的10个周期,集群监测器接收到10个周期发送的状态信息,具体地,在10个周期的时间段内,集群监测器可以统计第一客户端每个周期发送一次状态信息共 10个状态信息,第二客户端9个周期发送的9个状态信息,第三客户端5个周期发送的5 个状态信息,进而根据这些接收到的状态信息统计存储单元的得分,从而确定存储单元的故障状态,例如,将存储单元的得分大于0的确定为正常的存储单元,利用第一标识表示该正常的存储单元,将存储单元的得分小于0的确定为故障的存储单元,利用第二标识表示该故障的存储单元,将存储单元的得分等于0的确定为未知的存储单元,利用第三标识表示该未知的存储单元。
作为一个可选实施例,在将所述第一存储单元确定为故障的存储单元之后,若所述第一存储单元的得分大于所述第一阈值,则将所述第一存储单元确定为正常的存储单元。
话句话说,当某个存储单元被确定为故障的存储单元之后,集群监测器还会继续统计该存储单元的得分,当该存储单元的得分从小于第一阈值变为大于第一阈值时,所述集群监测器可以将存储单元恢复为正常的存储单元,这样,可以提高集群监测器统计存储单元的故障状态的灵活性。
作为一个可选实施例,所述集群监测器维护与所述至少一个客户端中每个客户端通信的服务器的存储单元的故障状态,所述方法还包括:所述集群监测器在预设时间段内没有收到所述至少一个客户端中第二客户端发送的状态信息,所述集群监测器将与所述第二客户端通信的服务器的存储单元的故障状态删除。
在本申请实施例中,集群监测器维护与每个客户端通信的服务器的存储单元的故障状态,根据状态信息进行实时的更新,也即集群监测器能周期性的接收到客户端发送的状态信息,当集群监测器在预设的时间段内没有收到第二客户端发送的状态信息时,有可能该第二客户端所在的网络节点被长时间隔离、掉电或冻结等,为了避免资源的浪费,该集群监测器可以将与第二客户端通信的服务器的存储单元的故障状态删除。可选地,当有新的客户端与集群监测器进行通信时,集群监测器添加新的客户端通信的服务器的存储单元的故障状态。
S140,所述集群监测器根据所述至少一个客户端通信的服务器的存储单元的故障状态,在与所述至少一个客户端通信的服务器中确定故障服务器。可选地,集群监测器确定的故障服务器可以是一个或者多个,本申请实施例对此不作限制。
作为一个可选实施例,与所述至少一个客户端通信的服务器的存储单元的故障状态为与所述至少一个客户端通信的服务器的存储单元的得分,所述集群监测器根据所述至少一个客户端通信的服务器的存储单元的故障状态,在与所述至少一个客户端通信的服务器中确定故障服务器,包括:所述集群监测器将与所述至少一个客户端通信的服务器中存储单元得分总和小于第二阈值的服务器确定为所述故障服务器。
具体来说,集群监测器可以根据每个服务器中存储单元的得分总和来确定故障服务器,即将每个服务器中存储单元的得分进行求和,将得分总和小于预设的第二阈值的确定为故障服务器,或者将得分总和最低的确定为故障服务器。
作为一个可选实施例,在所述集群监测器将与所述至少一个客户端通信的服务器中存储单元得分总和小于第二阈值的服务器确定为所述故障服务器之后,所述方法还包括:若所述故障服务器的磁盘得分总和大于或等于所述第二阈值,所述集群监测器将所述故障服务器恢复为正常服务器。
话句话说,当某个服务器被确定为故障服务器之后,集群监测器还会继续统计该服务器的存储单元的得分,当该服务器的存储单元的得分总和从小于第二阈值变为大于第二阈值时,所述集群监测器可以将故障服务器恢复为正常服务器,这样,可以提高集群监测器统计故障服务器的灵活性。
可选地方法还包括:S150,所述集群监测器向所述至少一个客户端中的第一客户端发送所述故障服务器的存储单元的故障状态,所述第一客户端接收所述集群监测器根据所述状态信息发送的故障服务器的存储单元的故障状态。
作一个可选实施例,所述方法还包括:所述第一客户端向所述集群监测器发送故障请求消息,所述故障请求消息用于请求故障服务器的存储单元的故障状态;所述集群监测器接收所述第一客户端发送的故障请求消息;S160,包括:所述集群监测器根据所述故障请求消息向所述第一客户端发送所述故障服务器的存储单元的故障状态。
所述第一客户端向所述集群监测器发送故障请求消息可以有两种情形。
第一种情形,所述第一客户端接收业务端发送的读请求消息;其中,所述第一客户端向所述集群监测器发送故障请求消息,包括:所述第一客户端根据所述读请求消息向所述集群监测器发送故障请求消息,即当第一客户端接收到业务端发送的读请求消息时,所述第一客户端向集群监测器发送故障请求消息。
第二种情形,所述第一客户端接收业务端发送的写请求消息;所述第一客户端根据所述写请求消息向第一服务器的存储单元执行写操作;其中,所述第一客户端向所述集群监测器发送故障请求消息,包括:若所述第一客户端确定所述第一服务器的第二存储单元的写操作的连续失败次数大于第五阈值,所述第一客户端向所述集群监测器发送所述故障请求消息。例如,第五阈值为3,即当第一客户端接收到写请求时,向与该第一服务器的第二存储单元进行写操作,当写操作连续失败的次数大于第五阈值时,第一客户端再向集群监测器发送故障请求消息,来请求故障服务器的存储单元的故障状态。可选地,第五阈值可以是预设的阈值或者是根据历史数据得到的阈值,本申请实施例对此不作限定。
S170,所述第一客户端根据所述故障服务器的存储单元的故障状态进行数据的读写操作。
具体来说,当第一客户端根据故障服务器的存储单元的故障状态进行读写数据时,例如当进行读数据时,第一客户端优先选择该故障服务器中正常的存储单元进行读数据,当正常的存储单元数量不足时,再选择故障的存储单元。有例如,当进行写数据时,第一客户端获取到故障服务器的存储单元的故障状态时,优先向正常的存储单元中写数据,如果写的数据的份数满足冗余,则第一客户端可以降级处理,即也向业务端返回写成功消息。
因此,本申请实施例的检测故障的方法,通过客户端向集群监测器发送状态信息,集群监测器根据状态信息确定哪些服务器是故障服务器,哪些服务器是正常服务器,并将故障服务器的存储单元的故障状态向客户端发送。这样,客户端可以故障服务器的存储单元的故障状态进行读写数据。进一步地,客户端可以统计输入输出次数来确定存储单元的故障状态,避免了现有技术检测故障的复杂性,并且,客户端统计输入输出次数更加贴近业务的实际情况,从而提高检测故障的准确性。
为了更好的说明本申请实施例的检测故障方法,下面结合附图,举例描述本申请实施例中的检测故障的方法,但不对本申请实施例造成任何限制。
图3示出了本申请实施例提供的检测故障的方法,包括:
S210,客户端向服务器发送输入输出(input output,IO)请求消息,例如IO请求消息可以是读写请求消息、删除请求消息或者截断请求消息。
S220,服务器接收客户端发送的IO请求消息,并且服务器将IO请求消息下发给服务器的各个存储单元,服务器根据各个存储单元的响应向客户端发送IO响应消息,例如,客户端向某个服务器下的存储单元发送IO请求消息可以是:客户端将给IO请求消息发送给该服务器,然后该服务器下发给相应的存储单元,图3中未示出服务器将IO请求下发给服务器的各个存储单元的过程。
应理解,S210可以是客户端发送多次IO请求消息,S220可以是客户端接收的多个IO响应消息。
S230,客户端根据IO请求消息和IO响应消息的次数确定服务器的存储单元的故障状态。可选地,可以用存储单元的得分来表征存储单元的故障状态,例如,得分为1表示该存储单元正常(无故障),得分为0表示该存储单元的故障状态未知,得分为-1表示该存储单元故障。
例如,假设输入输出的成功率的预设阈值(即前述的第一阈值)为20%,假设在预设的周期内客户端针对某一个存储单元发送了10次IO请求消息,假设客户端收到了8次IO响应,则认为该存储单元的输入输出成功率为80%,该存储单元一个正常的存储单元,例如,可以将该存储单元的得分标记为1;假设客户端收到了1次IO响应,则认为该存储单元的输入输出成功率为10%,则认为该存储单元是一个故障的存储单元,例如,可以将该存储单元的得分标记为-1。或者假设在预设周期内某一个存储单元没有IO请求消息和 IO响应消息或者输入输出的次数很少,即输入输出的次数小于第三阈值,则认为根据当前的输入输出的次数没办法判断该存储单元是正常的存储单元还是故障的存储单元,认为该存储单元的状态未知,例如将该存储单元的得分标记为0。假设存储单元为磁盘,例如,如表1所示,客户端1可以发送与客户端1通信的服务器1和服务器2的标识以及客户端 1的标识,还发送客户端1统计的服务器1的各个磁盘的得分以及服务器2的各个磁盘的得分。
表1
S240,客户端向集群监测器发送状态信息,例如可以是多个客户端发送状态信息,并且每个客户端可以发送多个状态信息,例如该多个状态信息可以是多个客户端的一个周期内的状态信息也可以是一个客户端的多个周期内的状态信息。
S250,集群监测器接收客户端发送的状态信息,根据状态信息更新服务器中存储单元的得分。
具体来说,集群监测器根据客户端发送的状态信息,来更新集群监测器维护的各个存储单元的得分。
在实际的应用场景中,有可能某个客户端被长时间隔离、掉电或者冻结,有可能某个客户端以心跳方式上报的状态信息异常,导致无法将状态信息上报到集群监测器,有可能某个客户端处于故障状态与正常状态之间的工作状态,例如启动时,在上面这些情况下,集群监测器不再统计与该客户端通信的服务器的磁盘的得分情况,例如,在某一次上报中,集群监测器维护的各个存储单元的得分如表2所示。表2中,第一列为老化标识,用于表示表2中的条目是否老化,假设,集群监测器接收到客户端上报的状态信息时,按照以下规则更新表2,集群监测器根据客户端标识与服务器标识查重,若发现重复的客户端标识和服务器标识,则将该重复的这一行对应的老化标识清0,并将这一行对应的磁盘的状态进行更新。例如,集群监测器接收到的客户端2标识和服务器3标识时,将第四行中的老化标识5更新为0,并将服务器3的磁盘的故障状态更新为状态信息指示的服务器3的磁盘的状态。也就是说老化标识表示在预设时间内客户端没有上报状态信息的次数,例如,客户端每1秒上报一次状态信息,集群监测器连续5都没有接收到客户端2上报用于指示客户端2与客户端2通信的服务器3的磁盘的故障状态的状态信息,则集群监测器将第三行的老化标识更新为5,即一秒没接收到状态信息,则将该老化标识加1。若某一个老化标识大于预设的阈值,则将该老化标识对应的这一行删除。
表2
例如,表2是某个时刻的磁盘的得分,集群监测器可以统计某一周期的磁盘的得分情况,可以将该周期内接收到的每个磁盘的得分进行求和,得到每个磁盘在这个周期的得分。并将这个周期服务器的磁盘的得分进行求和得到这个周期服务器的得分,例如,表3所示。
表3
服务器/磁盘 | 得分 |
服务器1 | -105 |
服务器2 | 35 |
服务器3 | 35 |
服务器1的磁盘1 | -3 |
服务器1的磁盘2 | -3 |
…… | …… |
服务器2的磁盘1 | 1 |
服务器2的磁盘2 | 1 |
…… | …… |
S260,集群监测器统计多个周期的存储单元的得分,并将多个周期的存储单元的得分进行加权计算,得到每个存储单元的得分。并根据每个存储单元的得分计算服务器的得分,具体为:将该服务器的存储单元的得分进行求和得到服务器的得分。
例如,如表4示出了服务器和磁盘的M个周期的得分情况。利用这M个周期的得分进行加权计算出每个服务器的得分以及每个磁盘的得分。例如,可以通过以下公式得到每个磁盘的得分。
其中,s(c),s(c-1),s(c-2),s(c-4)…s(c-M+1)为某个磁盘的M个周期的得分或者为某个服务器的M个周期的得分,s为某个磁盘或某个服务器的最终得分。M≥5(即至少需要5个周期以上的得分才能进行加权平均计算最终的得分)3β+α≤1,可选地,计算服务器得分的α,β的取值与计算磁盘的α,β的取值可以相同或者不同,本申请实施例对此不作限制。
可选地,集群监测器根据上述公式计算各个磁盘的得分,将得分小于第一阈值的磁盘确定为故障磁盘,可选地,可以利用第一标识表示该故障磁盘。集群监测器将得分大于第一阈值的磁盘确定为正常磁盘,可选地,可以利用第二标识表示该正常磁盘。集群监测器将得分等于第一阈值的磁盘确定为未知磁盘,可以利用第三标识表示该未知磁盘。
可选地,当集群监测器将磁盘确定为故障磁盘之后,集群监测器仍然接收客户端发送的状态信息,当集群监测器根据状态信息确定该磁盘的得分大于第一阈值,该故障磁盘可以恢复为正常的磁盘。
表4
S270,集群监测器根据在S260中得到的服务器的得分,将得分小于第二阈值的服务器确定为故障服务器,或者将得分最低的服务器确定为故障服务器,该故障服务器可以是一个或多个。
可选地,可以在集群监测器存储的正常的服务器中确定故障服务器,例如假设存在服务器表(server map),则该服务器表表征服务的状态是否正常,本申请实施例中,集群监测器将服务器映射表中原来正常的服务器根据得分情况确定为故障服务器。可选地,将服务器确定为故障服务器之后,集群监测器仍然接收客户端发送的状态信息,当集群监测器根据状态信息确定该服务器的得分大于第二阈值,或者不再是最低得分的服务器时,将服务器映射表中该服务器的状态更新为正常的服务器。
S280,集群监测器可以将故障服务器的存储单元的得分向客户端发送,例如哪个客户端请求发送给故障服务器磁盘的故障状态,则向哪个客户端发送。
可选地,集群监测器可以向客户端发送故障服务器的磁盘的得分,客户端根据这些故障服务器的磁盘的得分,优先选择得分高的磁盘进行读取数据;集群监测器可以向客户端发送故障服务器的磁盘的故障情况,即可以用不同的标识来表示磁盘是正常的、故障的还是未知的,客户端优先选择正常磁盘的标识来读取数据。话句话说,磁盘的故障状态可以是磁盘的得分也可以是磁盘是否为故障的标识等等,本申请实施例对此不作任何限定。
图4示出了本申请实施例提供的利用检测故障的方法进行读数据的过程,包括:
S301,业务端(也可以称为客户端代理(Client Agent))向客户端发送读数据请求消息。
S302,客户端接收业务端发送的读数据请求消息之后,客户端向集群监测器发送故障请求消息,所述故障请求消息用于请求故障服务器的存储单元的故障状态。
S303,集群监测器根据故障请求消息向客户端发送故障服务器的存储单元的故障状态。
S304,客户端接收集群监测器发送的故障服务器的存储单元的故障状态之后,根据故障服务器的存储单元的故障状态确定需要读取的存储单元,若正常服务器中的存储单元能满足数据的冗余,则将正常服务器的存储单元优先确定为需要读取的存储单元,当正常服务器中的存储单元不能满足数据的冗余,则将故障服务器中的正常的存储单元确定为需要读取的存储单元,当故障服务器中的正常的存储单元也不能满足数据冗余时,再将故障服务器中的故障存储单元确定为需要读取的存储单元。
S305,若在S304中客户端 确定需要读取的存储单元为正常的存储单元,则客户端向正常的存储单元所在的服务器发送读数据请求消息。
S306,正常的存储单元所在的服务器返回读取数据的结果。
S307,客户端接收正常的存储单元所在的服务器返回的读取结果,并根据读取结果重构数据,如果重构数据的结果正确,则客户端向业务端返回重构后的数据。
S308,若重构数据的结果错误,则客户端向故障存储单元所在的故障服务器发送读数据请求消息,用于向故障存储单元请求读数据。
S309,故障服务器向客户端发送读取结果,客户端接收故障服务器发送的读取结果。
S310,客户端根据S306中的读取结果以及本次的读取结果重构数据。
S311,客户端向业务端返回重构结果,若重构数据正常,则客户端向业务端返回重构后的数据,若重构数据错误,则客户端向业务端返回错误。
图5示出了本申请实施例提供的利用检测故障的方法进行写数据的过程,包括:
S401,业务端向客户端发送写数据请求消息。
S402,客户端接收业务端发送的写数据请求消息之后,客户端向各个服务器都发送写请求消息,各个服务器将写请求消息下发到各个存储单元。
S403,服务器向客户端返回存储单元的写结果。
S404,客户端根据S403中写结果确定存在某个存储的单元连续写N次数据都失败时, N为大于或等于1的整数,例如,N可以为3。
S405,客户端向集群监测器发送故障请求消息,所述故障请求消息用于请求故障服务器的存储单元的故障状态。
S406,集群监测器根据故障请求消息向客户端发送故障服务器的存储单元的故障状态。
S407,若当前的写数据满足冗余,则客户端确定降级处理,即可以不向故障的存储单元写数据,写失败的数据可以通过后台进行恢复。
S408,客户端向业务端返回写的结果;若当前写数据不满足冗余,则客户端向业务端返回错误。
应理解,为了避免赘述,图4和图5中未示出服务器的存储单元,实际应用中,客户端向服务器发送读写请求消息,服务器向存储单元发送读写请求消息。
上文中结合图1至图5,详细描述了根据本申请实施例的检测故障的方法,下面将结合图6至图9,详细描述根据本申请实施例的检测故障的装置。
图6示出了本申请实施例提供的检测故障的装置500,该装置500包括:
接收单元510,用于接收至少一个客户端中每个客户端发送的状态信息,所述状态信息用于指示与所述每个客户端通信的服务器的存储单元的故障状态;
确定单元520,用于根据所述每个客户端发送的状态信息,确定与所述至少一个客户端通信的服务器的存储单元的故障状态;
所述确定单元520还用于:根据所述至少一个客户端通信的服务器的存储单元的故障状态,在与所述至少一个客户端通信的服务器中确定故障服务器。
作为一个可选实施例,所述每个客户端发送的状态信息包括多个状态信息,所述多个状态信息中每个状态信息为所述每个客户端的每个周期的状态信息;
所述确定单元520具体用于:根据所述每个客户端发送的多个状态信息,确定与所述至少一个客户端通信的服务器的存储单元的故障状态。
作为一个可选实施例,所述确定单元520具体用于:对所述每个客户端发送的多个状态信息中每个状态信息指示的存储单元的故障状态对应的数值进行加权,确定与所述至少一个客户端通信的服务器的存储单元的得分;根据与所述至少一个客户端通信的服务器的存储单元的得分,确定与所述至少一个客户端通信的服务器的存储单元的故障状态。
作为一个可选实施例,所述确定单元520具体用于:对所述每个客户端发送的多个状态信息中每个状态信息指示的第一存储单元的故障状态对应数值进行加权,确定所述第一存储单元的得分;
若所述第一存储单元的得分小于第一阈值,将所述第一存储单元确定故障的存储单元;若所述第一存储单元的得分大于所述第一阈值,将所述第一存储单元确定为正常的存储单元;若所述第一存储单元的得分等于所述第一阈值,将所述第一存储单元确定为未知的存储单元。
作为一个可选实施例,所述确定单元520还用于:在将所述第一存储单元确定为故障的存储单元之后,若所述第一存储单元的得分大于所述第一阈值,将所述第一存储单元确定为正常的存储单元。
作为一个可选实施例,与所述至少一个客户端通信的服务器的存储单元的故障状态为与所述至少一个客户端通信的服务器的存储单元的得分,所述确定单元520具体用于:将与所述至少一个客户端通信的服务器中存储单元得分总和小于第二阈值的服务器确定为所述故障服务器。
作为一个可选实施例,所述确定单元520还用于:在所述将与所述至少一个客户端通信的服务器中存储单元得分总和小于第二阈值的服务器确定为所述故障服务器之后,若所述故障服务器的磁盘得分总和大于或等于所述第二阈值,将所述故障服务器恢复为正常服务器。
作为一个可选实施例,所述装置维护与所述至少一个客户端中每个客户端通信的服务器的存储单元的故障状态,
所述装置500还包括:删除单元,用于在预设时间段内未收到所述至少一个客户端中第二客户端发送的状态信息,将与所述第二客户端通信的服务器的存储单元的故障状态删除。
作为一个可选实施例,所述状态信息还用于指示所述每个客户端的标识信息以及与所述每个客户端通信的服务器的标识信息。
作为一个可选实施例,所述接收单元510还用于:接收所述至少一个客户端中第一客户端发送的故障请求消息,所述故障请求消息用于请求故障服务器的存储单元的故障状态;所述装置还包括:发送单元用于根据所述故障请求消息向所述第一客户端发送所述故障服务器的存储单元的故障状态。
应理解,这里的装置500以功能单元的形式体现。这里的术语“单元”可以指应用特有集成电路(application specific integrated circuit,ASIC)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。在一个可选例子中,本领域技术人员可以理解,装置500可以具体为上述方法实施例中的集群监测器,装置500可以用于执行上述方法实施例中与集群监测器对应的各个流程和/或步骤,为避免重复,在此不再赘述图7示出了本申请实施例提供的检测故障的装置600,该装置600包括:
获取单元610,用于获取状态信息,所述状态信息用于指示与所述装置通信的服务器的存储单元的故障状态;
发送单元620,用于向集群监测器发送所述状态信息;
接收单元630,用于接收所述集群监测器根据所述状态信息发送的故障服务器的存储单元的故障状态;
处理单元640,用于根据所述故障服务器的存储单元的故障状态进行数据的读写操作。
作为一个可选实施例,所述获取单元610具体用于:根据与所述装置通信的服务器的存储单元的输入输出的次数,获取所述状态信息指示的与所述装置通信的服务器的存储单元的故障状态。
作为一个可选实施例,所述处理单元640还用于:若与所述装置通信的服务器的第一存储单元的输入输出的成功率大于第三阈值,则将所述第一存储单元确定为正常的存储单元;若所述第一存储单元的输入输出的成功率小于或等于所述第三阈值,则将所述第一存储单元确定为异常的存储单元;若所述第一存储单元的输入输出的次数小于第四阈值,则将所述第一存储单元确定为未知的存储单元。
作为一个可选实施例,所述状态信息还用于指示所述装置的标识信息以及与所述装置通信的服务器的标识信息。
作为一个可选实施例,所述发送单元620还用于:向所述集群监测器发送故障请求消息,所述故障请求消息用于请求故障服务器的存储单元的故障状态;
所述接收单元630具体用于:根据所述故障请求消息接收所述集群监测器发送的故障服务器的存储单元的故障状态。
作为一个可选实施例,所述接收单元630还用于:接收业务端发送的读请求消息;所述发送单元620具体用于:根据所述读请求消息向所述集群监测器发送故障请求消息。
作为一个可选实施例,所述接收单元630还用于:接收业务端发送的写请求消息;所述处理单元640还用于:根据所述写请求消息向第一服务器的第二存储单元执行写操作;
所述发送单元620具体用于:若所述第一服务器的第二存储单元的写操作的连续失败次数大于第五阈值,向所述集群监测器发送所述故障请求消息。
应理解,这里的装置600以功能单元的形式体现。这里的术语“单元”可以指应用特有集成电路(application specific integrated circuit,ASIC)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。在一个可选例子中,本领域技术人员可以理解,装置600可以具体为上述方法实施例中的第一客户端,装置600可以用于执行上述方法实施例中与第一客户端对应的各个流程和/或步骤,为避免重复,在此不再赘述。
上述装置500或装置600和方法实施例中的集群监测器或第一客户端完全对应,由相应的单元执行相应的步骤,例如收发单元方法执行方法实施例中收发步骤,除收发外的其它步骤可以由处理模块执行。具体模块的功能可以参考相应的方法实施例,不再详述。
上述各个方案的集群监测器及第一客户端具有实现上述方法中集群监测器及第一客户端执行的相应步骤的功能;所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块;例如发送单元可以由发射机替代,接收单元可以由接收机替代,其它单元,如确定单元等可以由处理器替代,分别执行各个方法实施例中的收发操作以及相关的处理操作。
图8示出了本申请实施例提供的又一检测故障的装置700。该装置700包括处理器710、通信接口720和存储器730。其中,处理器710、通信接口720和存储器730通过内部连接通路互相通信,该存储器730用于存储指令,该处理器710用于执行该存储器730 存储的指令,以控制该通信接口720发送信号和/或接收信号。
其中,通信接口720用于接收至少一个客户端中每个客户端发送的状态信息,所述状态信息用于指示与所述每个客户端通信的服务器的存储单元的故障状态;处理器710用于根据所述每个客户端发送的状态信息,确定与所述至少一个客户端通信的服务器的存储单元的故障状态;所述处理器710还用于:根据所述至少一个客户端通信的服务器的存储单元的故障状态,在与所述至少一个客户端通信的服务器中确定故障服务器。
应理解,装置700可以具体为上述方法实施例中的集群监测器,并且可以用于执行上述方法实施例中集群监测器对应的各个步骤和/或流程。可选地,该存储器730可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。该处理器710可以用于执行存储器中存储的指令,并且当该处理器710执行存储器中存储的指令时,该处理器710用于执行上述与该集群监测器对应的方法实施例的各个步骤和/或流程。
图9 示出了本申请实施例提供的又一检测故障的装置800。该装置800包括处理器810、通信接口820和存储器830。其中,处理器810、通信接口820和存储器830通过内部连接通路互相通信,该存储器830用于存储指令,该处理器810用于执行该存储器830 存储的指令,以控制该通信接口820发送信号和/或接收信号。
其中,通信接口820用于获取状态信息,所述状态信息用于指示与所述装置通信的服务器的存储单元的故障状态;通信接口820还用于向集群监测器发送所述状态信息;通信接口820还用于接收所述集群监测器根据所述状态信息发送的故障服务器的存储单元的故障状态;处理器810,用于根据所述故障服务器的存储单元的故障状态进行数据的读写操作。
应理解,装置800可以具体为上述方法实施例中的第一客户端,并且可以用于执行上述方法实施例中第一客户端对应的各个步骤和/或流程。可选地,该存储器830可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。该处理器810可以用于执行存储器中存储的指令,并且当该处理器810执行存储器中存储的指令时,该处理器810用于执行上述与该第一客户端对应的方法实施例的各个步骤和/或流程。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (20)
1.一种检测故障的方法,其特征在于,包括:
集群监测器接收至少一个客户端中每个客户端发送的状态信息,所述状态信息用于指示与所述每个客户端通信的服务器的存储单元的故障状态,所述存储单元的故障状态是所述每个客户端通过统计输入输出次数来确定的;
所述集群监测器根据所述每个客户端发送的状态信息,确定与所述至少一个客户端通信的服务器的存储单元的故障状态;
所述集群监测器根据所述至少一个客户端通信的服务器的存储单元的故障状态,在与所述至少一个客户端通信的服务器中确定故障服务器。
2.根据权利要求1所述的方法,其特征在于,所述每个客户端发送的状态信息包括多个状态信息,所述多个状态信息中每个状态信息为所述每个客户端的每个周期的状态信息;
所述集群监测器根据所述每个客户端发送的状态信息,确定与所述至少一个客户端通信的服务器的存储单元的故障状态,包括:
所述集群监测器根据所述每个客户端发送的多个状态信息,确定与所述至少一个客户端通信的服务器的存储单元的故障状态。
3.根据权利要求2所述的方法,其特征在于,所述集群监测器根据所述每个客户端发送的多个状态信息,确定与所述至少一个客户端通信的服务器的存储单元的故障状态,包括:
所述集群监测器对所述每个客户端发送的多个状态信息中每个状态信息指示的存储单元的故障状态对应的数值进行加权,确定与所述至少一个客户端通信的服务器的存储单元的得分;
所述集群监测器根据与所述至少一个客户端通信的服务器的存储单元的得分,确定与所述至少一个客户端通信的服务器的存储单元的故障状态。
4.根据权利要求3所述的方法,其特征在于,所述集群监测器对所述每个客户端发送的多个状态信息中每个状态信息对应的数值进行加权,确定与所述至少一个客户端通信的服务器的存储单元的得分,包括:
所述集群监测器对所述每个客户端发送的多个状态信息中每个状态信息指示的第一存储单元的故障状态对应数值进行加权,确定所述第一存储单元的得分;
其中,所述集群监测器根据与所述至少一个客户端通信的服务器的存储单元的得分,确定与所述至少一个客户端通信的服务器的存储单元的故障状态,包括:
若所述第一存储单元的得分小于第一阈值,则所述集群监测器将所述第一存储单元确定故障的存储单元;
若所述第一存储单元的得分大于所述第一阈值,则所述集群监测器将所述第一存储单元确定为正常的存储单元;
若所述第一存储单元的得分等于所述第一阈值,则所述集群监测器将所述第一存储单元确定为未知的存储单元。
5.根据权利要求4所述的方法,其特征在于,在将所述第一存储单元确定为故障的存储单元之后,若所述第一存储单元的得分大于所述第一阈值,则所述集群监测器将所述第一存储单元确定为正常的存储单元。
6.根据权利要求1至5中任一项所述的方法,其特征在于,与所述至少一个客户端通信的服务器的存储单元的故障状态为与所述至少一个客户端通信的服务器的存储单元的得分,所述集群监测器根据所述至少一个客户端通信的服务器的存储单元的故障状态,在与所述至少一个客户端通信的服务器中确定故障服务器,包括:
所述集群监测器将与所述至少一个客户端通信的服务器中存储单元得分总和小于第二阈值的服务器确定为所述故障服务器。
7.根据权利要求6所述的方法,其特征在于,在所述集群监测器将与所述至少一个客户端通信的服务器中存储单元得分总和小于第二阈值的服务器确定为所述故障服务器之后,所述方法还包括:
若所述故障服务器的存储单元得分总和大于或等于所述第二阈值,所述集群监测器将所述故障服务器恢复为正常服务器。
8.根据权利要求1至5中任一项所述的方法,其特征在于,所述集群监测器维护与所述至少一个客户端中每个客户端通信的服务器的存储单元的故障状态,所述方法还包括:
所述集群监测器在预设时间段内未收到所述至少一个客户端中第二客户端发送的状态信息,所述集群监测器将与所述第二客户端通信的服务器的存储单元的故障状态删除。
9.根据权利要求1至5中任一项所述的方法,其特征在于,所述方法还包括:
所述集群监测器接收所述至少一个客户端中的第一客户端发送的故障请求消息,所述故障请求消息用于请求故障服务器的存储单元的故障状态;
所述集群监测器根据所述故障请求消息向所述第一客户端发送所述故障服务器的存储单元的故障状态。
10.一种检测故障的装置,其特征在于,包括:
接收单元,用于接收至少一个客户端中每个客户端发送的状态信息,所述状态信息用于指示与所述每个客户端通信的服务器的存储单元的故障状态,所述存储单元的故障状态是所述每个客户端通过统计输入输出次数来确定的;
确定单元,用于根据所述每个客户端发送的状态信息,确定与所述至少一个客户端通信的服务器的存储单元的故障状态;
所述确定单元还用于:根据所述至少一个客户端通信的服务器的存储单元的故障状态,在与所述至少一个客户端通信的服务器中确定故障服务器。
11.根据权利要求10所述的装置,其特征在于,所述每个客户端发送的状态信息包括多个状态信息,所述多个状态信息中每个状态信息为所述每个客户端的每个周期的状态信息;
所述确定单元具体用于:
根据所述每个客户端发送的多个状态信息,确定与所述至少一个客户端通信的服务器的存储单元的故障状态。
12.根据权利要求11所述的装置,其特征在于,所述确定单元具体用于:
对所述每个客户端发送的多个状态信息中每个状态信息指示的存储单元的故障状态对应的数值进行加权,确定与所述至少一个客户端通信的服务器的存储单元的得分;
根据与所述至少一个客户端通信的服务器的存储单元的得分,确定与所述至少一个客户端通信的服务器的存储单元的故障状态。
13.根据权利要求12所述的装置,其特征在于,所述确定单元具体用于:
对所述每个客户端发送的多个状态信息中每个状态信息指示第一存储单元的故障状态对应数值进行加权,确定所述第一存储单元的得分;
若所述第一存储单元的得分小于第一阈值,将所述第一存储单元确定故障的存储单元;
若所述第一存储单元的得分大于所述第一阈值,将所述第一存储单元确定为正常的存储单元;
若所述第一存储单元的得分等于所述第一阈值,将所述第一存储单元确定为未知的存储单元。
14.根据权利要求13所述的装置,其特征在于,所述确定单元还用于:
在将所述第一存储单元确定为故障的存储单元之后,若所述第一存储单元的得分大于所述第一阈值,将所述第一存储单元确定为正常的存储单元。
15.根据权利要求10至14中任一项所述的装置,其特征在于,与所述至少一个客户端通信的服务器的存储单元的故障状态为与所述至少一个客户端通信的服务器的存储单元的得分,所述确定单元具体用于:
将与所述至少一个客户端通信的服务器中存储单元得分总和小于第二阈值的服务器确定为所述故障服务器。
16.根据权利要求15所述的装置,其特征在于,所述确定单元还用于:
在所述将与所述至少一个客户端通信的服务器中存储单元得分总和小于第二阈值的服务器确定为所述故障服务器之后,若所述故障服务器的存储单元得分总和大于或等于所述第二阈值,将所述故障服务器恢复为正常服务器。
17.根据权利要求10至14中任一项所述的装置,其特征在于,所述装置维护与所述至少一个客户端中每个客户端通信的服务器的存储单元的故障状态,
所述装置还包括:
删除单元,用于在预设时间段内未收到所述至少一个客户端中第二客户端发送的状态信息,将与所述第二客户端通信的服务器的存储单元的故障状态删除。
18.根据权利要求10至14中任一项所述的装置,其特征在于,所述接收单元还用于:
接收所述至少一个客户端中的第一客户端发送的故障请求消息,所述故障请求消息用于请求故障服务器的存储单元的故障状态;
所述装置还包括:
发送单元,用于根据所述故障请求消息向所述第一客户端发送所述故障服务器的存储单元的故障状态。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如权利要求1至9中任一项所述的方法。
20.一种通信芯片,其特征在于,所述通信芯片中存储有指令,当所述指令在设备上运行时,使得所述设备执行如权利要求1至9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711261551.3A CN108173672B (zh) | 2017-12-04 | 2017-12-04 | 检测故障的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711261551.3A CN108173672B (zh) | 2017-12-04 | 2017-12-04 | 检测故障的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108173672A CN108173672A (zh) | 2018-06-15 |
CN108173672B true CN108173672B (zh) | 2021-06-08 |
Family
ID=62524330
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711261551.3A Active CN108173672B (zh) | 2017-12-04 | 2017-12-04 | 检测故障的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108173672B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109391682B (zh) * | 2018-09-14 | 2023-05-12 | 联想(北京)有限公司 | 一种信息处理方法及服务器集群 |
CN110515757B (zh) * | 2019-07-26 | 2023-05-23 | 北京达佳互联信息技术有限公司 | 分布式存储***的信息处理方法、装置、服务器、介质 |
CN110750213A (zh) * | 2019-09-09 | 2020-02-04 | 华为技术有限公司 | 一种硬盘管理方法及装置 |
CN111698120B (zh) * | 2020-06-02 | 2022-10-18 | 浙江大华技术股份有限公司 | 存储节点隔离方法和装置 |
CN112100029B (zh) * | 2020-09-04 | 2022-07-08 | 北京浪潮数据技术有限公司 | 客户端状态监测方法及相关组件 |
CN112799866A (zh) * | 2021-02-02 | 2021-05-14 | 北京明略昭辉科技有限公司 | 一种GlusterFS故障自动处理方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103297264A (zh) * | 2013-04-19 | 2013-09-11 | 无锡成电科大科技发展有限公司 | 一种云平台故障恢复方法和*** |
CN105323271A (zh) * | 2014-06-24 | 2016-02-10 | 中兴通讯股份有限公司 | 一种云计算***以及云计算***的处理方法和装置 |
CN105871957A (zh) * | 2015-01-21 | 2016-08-17 | 深圳市腾讯计算机***有限公司 | 监控框架设计方法和监控服务器、代理单元、中控服务器 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014013603A1 (ja) * | 2012-07-20 | 2014-01-23 | 株式会社日立製作所 | 監視システム及び監視プログラム |
CN103647804B (zh) * | 2013-11-22 | 2017-04-26 | 华为技术有限公司 | 一种存储单元的数据处理方法、设备及*** |
CN104679623A (zh) * | 2013-11-29 | 2015-06-03 | ***通信集团公司 | 一种服务器硬盘的维护方法、***及服务器监控设备 |
CN103793308A (zh) * | 2014-02-13 | 2014-05-14 | 浪潮电子信息产业股份有限公司 | 一种Linux平台上应用于高可用技术的磁盘资源管理方法 |
-
2017
- 2017-12-04 CN CN201711261551.3A patent/CN108173672B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103297264A (zh) * | 2013-04-19 | 2013-09-11 | 无锡成电科大科技发展有限公司 | 一种云平台故障恢复方法和*** |
CN105323271A (zh) * | 2014-06-24 | 2016-02-10 | 中兴通讯股份有限公司 | 一种云计算***以及云计算***的处理方法和装置 |
CN105871957A (zh) * | 2015-01-21 | 2016-08-17 | 深圳市腾讯计算机***有限公司 | 监控框架设计方法和监控服务器、代理单元、中控服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN108173672A (zh) | 2018-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108173672B (zh) | 检测故障的方法和装置 | |
CN109328340B (zh) | 内存故障的检测方法、装置和服务器 | |
EP2908254A1 (en) | Data redundancy implementation method and device | |
US20200133758A1 (en) | Method, device, and computer program product for facilitating prediction of disk failure | |
CN108536548B (zh) | 一种磁盘坏道的处理方法、装置及计算机存储介质 | |
CN107678908B (zh) | 日志记录方法、装置、计算机设备及存储介质 | |
EP4180959A1 (en) | Memory failure processing method and apparatus | |
US9766980B1 (en) | RAID failure prevention | |
CN111104283B (zh) | 一种分布式存储***的故障检测方法、装置、设备及介质 | |
CN104579765A (zh) | 一种集群***的容灾方法和装置 | |
CN106293492A (zh) | 一种存储管理方法及分布式文件*** | |
CN105487609A (zh) | 一种服务器 | |
CN111857555A (zh) | 避免磁盘阵列的故障事件的方法、设备和程序产品 | |
US20230136274A1 (en) | Ceph Media Failure and Remediation | |
CN112579327A (zh) | 一种故障检测方法、装置及设备 | |
US20170116061A1 (en) | Mechanism for Running Diagnostic Rules Across Multiple Nodes | |
CN114860487A (zh) | 一种内存故障识别方法及一种内存故障隔离方法 | |
CN107562608B (zh) | 资源指标重要度评估方法及装置 | |
US8977892B2 (en) | Disk control apparatus, method of detecting failure of disk apparatus, and recording medium for disk diagnosis program | |
CN113391937A (zh) | 用于存储管理的方法、电子设备以及计算机程序产品 | |
CN113688564A (zh) | 一种预测ssd硬盘剩余寿命的方法、装置、终端及存储介质 | |
CN103501320B (zh) | 一种利用失效日志计算存储集群可用性的方法 | |
CN112799911A (zh) | 一种节点健康状态检测方法、装置、设备及存储介质 | |
CN107665258B (zh) | 文件***可用性确定方法及装置 | |
US7853820B2 (en) | System and method for detecting a faulty object in a system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |