CN103259688B - 一种分布式存储系统的故障诊断方法与装置 - Google Patents
一种分布式存储系统的故障诊断方法与装置 Download PDFInfo
- Publication number
- CN103259688B CN103259688B CN201310219151.1A CN201310219151A CN103259688B CN 103259688 B CN103259688 B CN 103259688B CN 201310219151 A CN201310219151 A CN 201310219151A CN 103259688 B CN103259688 B CN 103259688B
- Authority
- CN
- China
- Prior art keywords
- data run
- data
- regionserver
- run process
- terminal device
- 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
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种分布式存储系统的故障诊断方法与装置,所述方法包括:监控进程根据待检测数据运行进程的注册信息获取所述数据运行进程标识;检测所述标识对应的数据运行进程在终端设备上是否存在;若所述数据运行进程不存在,则确定所述数据运行进程发生故障。本发明中,采用单独的监控进程对数据运行进程进行监控,当数据运行进程不存在时,即可确定数据运行进程出现故障,由此可以触发后续的故障处理,缩短了故障发现时间,提高了故障诊断效率。
Description
技术领域
本发明涉及分布式系统数据处理技术领域,更具体的涉及一种分布式存储系统的故障诊断方法与装置。
背景技术
传统的网络存储系统采用集中的存储服务器存放所有数据,但是集中存储服务器的存储空间有限,不能满足大规模存储应用的需要。分布式网络存储系统采用可扩展的系统结构,将数据分散存储在多台独立的设备上,利用多台存储服务器分散存储数据的限制,为大规模数据存储提供了解决方案。但是在分布式存储系统中,当运行数据的进程(数据运行进程)出现故障时,如果不能及时发现故障并将运行数据迁移到其他设备中,服务就会停止,服务可用性较差。
基于上述内容可知,发现运行数据的进程是否发生故障,并在进程发生故障时及时进行数据迁移是保证服务可用性的关键。这里以基于Hbase框架的分布式存储系统为例,介绍进程故障的检测原理。在Hbase框架中,主要包含四个部分:Client节点、Master节点、ZooKeeper节点和RegionServer进程。在实际操作中,真正运行数据提供服务的是RegionServer进程,当RegionServer进程启动时会在ZooKeeper节点上注册自身信息,并建立一个租约,此后通过心跳机制与ZooKeeper节点保持通信以维护此租约。当RegionServer进程出现故障失效(退出)或者由于网络故障无法与ZooKeeper节点保持通信时,ZooKeeper节点会在租约超时达到预设阈值后删除该RegionServer进程对应的注册信息,并通知Master节点启动RegionServer进程的故障处理流程,将该RegionServer进程上的数据迁移到其它RegionServer进程上以继续提供服务。
发明内容
发明人经过研究发现,在现有技术中,采用心跳机制(或者称为租约机制)来进行RegionServer进程的故障诊断时,在租约超时达到预设阈值后ZooKeeper节点才能感应到RegionServer进程有故障发生,发现时间过长。本申请实施例提供一种分布式存储系统的故障诊断方法与装置,以解决现有技术中RegionServer进程故障发现时间过长、故障诊断效率较低的技术问题。
为解决上述技术问题,本发明提供一种分布式存储系统的故障诊断方法与装置,本发明提供如下技术方案:
一种分布式存储系统的故障诊断方法,所述方法包括:
监控进程根据待检测数据运行进程的注册信息获取所述数据运行进程标识;
监控进程检测所述标识对应的数据运行进程在终端设备上是否存在,若不存在,则监控进程确定所述数据运行进程发生故障。
优选的,所述数据运行进程的标识为所述数据运行进程的名称时,所述监控进程检测所述标识对应的数据运行进程在终端设备上是否存在,包括:
在终端设备运行进程列表中查找所述数据运行进程的名称,若未查找到,则所述数据运行进程不存在。
优选的,所述数据运行进程的标识为所述数据运行进程的编号时,所述监控进程检测所述标识对应的数据运行进程在终端设备上是否存在,包括:
根据所述数据运行进程的编号获取该数据运行进程在终端设备上的运行端口;
若所述运行端口未被占用,则确定所述数据运行进程不存在。
优选的,所述数据运行进程的标识为所述数据运行进程所在设备的IP地址和为该进程分配的端口时,所述监控进程检测所述标识对应的数据运行进程在终端设备上是否存在,包括:
在所述IP地址对应的终端设备上检测为所述数据运行进程分配的端口是否空闲,若是,则确定所述数据运行进程不存在。
优选的,所述方法还包括:
监控进程确定所述数据运行进程发生故障后,删除所述数据运行进程对应的注册信息。
优选的,所述监控进程为本地监控进程和/或远程监控进程,当所述数据运行进程所在的终端设备宕机时,则具体由远程监控进程执行所述删除所述数据运行进程对应的注册信息的步骤。
优选的,删除所述数据运行进程对应的注册信息之前,还包括:
对所述数据运行进程的注册信息版本号进行校验,以防止数据运行进程的误删除。
优选的,所述数据运行进程对应的注册信息被删除后,所述方法还包括:
触发ZooKeeper节点的回调机制,以使Master节点启动故障处理流程。
优选的,所述方法还包括:
若监控进程出现故障,则通过系统的心跳机制进行所述数据运行进程的故障诊断。
本发明还提供一种分布式存储系统的故障诊断装置,所述装置包括:
获取模块,用于根据待检测数据运行进程的注册信息获取所述数据运行进程标识;
第一检测模块,用于检测所述标识对应的数据运行进程在终端设备上是否存在;
确定模块,用于所述数据运行进程不存在时,确定所述数据运行进程发生故障。
优选的,所述数据运行进程的标识为所述数据运行进程的名称时,所述检测模块包括:
查找子模块,用于在终端设备运行进程列表中查找所述数据运行进程的名称;
确定子模块,用于在终端设备运行进程列表中未找到所述数据运行进程的名称时,确定所述数据运行进程不存在。
优选的,所述数据运行进程的标识为所述数据运行进程的编号时,所述检测模块包括:
获取子模块,用于根据所述数据运行进程的编号获取该数据运行进程在终端设备上的运行端口;
则所述确定子模块,具体用于所述运行端口未被占用时,确定所述RegionServer进程不存在。
优选的,所述数据运行进程的标识为所述数据运行进程所在设备的IP地址和为该进程分配的端口号时,所述检测模块包括:
检测子模块,用于在所述IP地址对应的设备上检测为所述数据运行进程分配的端口号是否空闲;
则所述确定子模块,具体用于为所述数据运行进程分配的端口空闲时,确定所述数据运行进程不存在。
优选的,所述装置还包括:
删除模块,用于确定所述数据运行进程发生故障后,删除所述数据运行进程对应的注册信息。
优选的,所述装置还包括:
校验模块,用于删除所述数据运行进程对应的注册信息之前,对所述数据运行进程的注册信息版本号进行校验,以防止数据运行进程的误删除。
优选的,所述装置还包括:
触发模块,用于所述数据运行进程对应的注册信息被删除后,触发ZooKeeper节点的回调机制,以使Master节点启动故障处理流程。
优选的,所述装置还包括:
第二检测模块,用于监控进程出现故障时,通过系统的心跳机制进行所述数据运行进程的故障诊断。
本发明的技术方案中,采用监控进程来进行数据运行进程的故障诊断,当监控进程根据数据运行进程的标识判断所述数据运行进程不存在时,则确定所述数据运行进程发生了故障。本发明在确定数据运行进程的故障时,没有依靠于心跳机制,在数据运行进程的故障诊断过程中,如果数据运行进程发生故障,不需要等待租约超时达到预设阈值时才能确定,在数据运行进程的注册信息存在而数据运行进程不存在时,即可确定发生了故障。相对现有技术依靠心跳机制来说,缩短了数据运行进程的故障诊断时间,提高了故障诊断效率,进一步提高了系统的服务可用性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一种分布式存储系统的故障诊断方法实施例1的流程图;
图2为本发明一种分布式存储系统的故障诊断方法实施例2的流程图;
图3为本发明一种分布式存储系统的故障诊断装置实施例1的结构示意图;
图4为本发明一种分布式存储系统的故障诊断装置实施例2的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
分布式数据存储系统中,不同的文件存储在不同的节点上或者同一文件分成多个部分分别存储在不同的节点上,在访问文件时,由元数据服务器提供数据逻辑名字与物理信息的映射关系,实现文件的正确定位。文件被访问过程中,数据之间的逻辑关系可能被改变,如果一份数据同时在多个设备上运行,则该数据对应的逻辑关系就会发生混乱。所以,为了易于维护数据的一致性(同步),每一份数据只在一台设备上提供服务。当该设备中的进程出现故障时,数据会自动迁移到其它设备。但是在此过程中,对应数据无法提供读写服务。因此当设备中的进程发生故障后,需要快速的发现故障迁移数据,缩小潜在的数据失效窗口,使得服务的可用性始终能维持在期望的级别上。
本发明的技术方案可以在任何采用Zookpeer机制的分布式存储系统中使用,在不同的存储系统中运行数据的进程可能不同,但是采用本方案进行故障诊断的原理相同,所以本发明中所有实施例均以Hbase框架中的RegionServer进程为例进行说明,但并不是对本发明保护范围的限定。参考图1所示,为本发明提供的一种分布式存储系统的故障诊断方法实施例1的流程图,目的在于要缩短发现故障的时间,实现快速的数据迁移。本实施例具体可以包括:
步骤101:监控进程根据待检测RegionServer进程的注册信息获取所述RegionServer进程标识。
在一个分布式存储系统中,存在多个RegionServer进程,即使在一台终端设备上也运行着多个不同的RegionServer进程,一个RegionServer进程被分配到一台终端设备上以后,其就会一直在本终端设备上运行,只不过多次运行针对的数据不同。在实际操作中,为了识别不同的RegionServer进程,在RegionServer进程的注册信息中包括该进程的标识,为每个RegionServer进程提供唯一识别一个RegionServer进程的标志,所述标识可以为所述RegionServer进程的名称、所述RegionServer进程的编号,或者,所述RegionServer进程所在设备的IP地址和为该进程分配的端口号。所述RegionServer进程的标识可以通过该进程的注册信息获得,需要注意的是在一个RegionServer进程的注册信息中并不一定要同时有上述几种标识形式,只要能够识别一个RegionServer进程即可,比如,在注册信息中可以只有RegionServer进程所在设备的IP地址和为该进程分配的端口号这一标识存在形式。
步骤102:监控进程检测所述标识对应的RegionServer进程在终端设备上是否存在,若否,进入步骤103。
所述监控进程可以根据RegionServer进程的标识,判断所述标识对应的RegionServer进程在终端设备上是否存在,所述RegionServer进程在终端设备上是否存在是指所述RegionServer进程在终端设备上是否在运行,具体的判断方法可以如下:
1、当所述RegionServer进程的标识为所述RegionServer进程的名称时,所述监控进程检测所述标识对应的RegionServer进程在终端设备上是否存在的方法为:在终端设备运行进程列表中查找所述RegionServer进程的名称,如果所述运行进程列表中没有所述RegionServer进程的名称,则可以确定所述RegionServer进程不存在;
2、当所述RegionServer进程的标识为所述RegionServer进程的编号时,所述监控进程检测所述标识对应的RegionServer进程在终端设备上是否存在的方法为:根据所述RegionServer进程的编号可以获取该RegionServer进程所在的终端设备,然后确定RegionServer进程在所述终端设备上的运行端口,如果所述运行端口未被占用,则可以确定所述RegionServer进程不存在。在系统组建时,可以预存不同编号RegionServer进程对应的终端设备及其运行端口。RegionServer进程运行时使用一个固定的端口,除非人为改动RegionServer进程运行的端口,否则,其运行端口将保持不变。因此,可以检测RegionServer进程运行端口是否被占用,如果没有,说明RegionServer进程没有运行,则可确定所述RegionServer进程不存在。
3、当所述RegionServer进程的标识为所述RegionServer进程所在设备的IP地址和为该进程分配的端口号时,所述监控进程检测所述标识对应的RegionServer进程在终端设备上是否存在的方法可以为:在所述IP地址对应的设备上检测为所述RegionServer进程分配的端口号是否空闲,如果空闲,则可以确定所述RegionServer进程不存在。
可以理解的是,在上述对几种判断方法的具体说明中,标号1-3并不代表判断方法的先后顺序,只是区别不同判断方法的标识。所述的几种判断方法是为了对本实施例作出说明,也仅仅是举例说明,并不是对判断方法的限定,也不能看作是对本发明保护范围的限定。
步骤103:确定所述RegionServer进程发生故障。
所述步骤102中示意性的给出了RegionServer进程是否存在的判断方法,当所述RegionServer进程不存在时,即可确定所述RegionServer进程发生故障。
本实施例的技术方案中,采用监控进程来进行RegionServer进程的故障诊断,当监控进程根据RegionServer进程的标识判断所述RegionServer进程不存在时,则确定所述RegionServer进程发生了故障。本发明在确定RegionServer进程的故障时,没有依靠于系统的心跳机制,在RegionServer进程的故障诊断过程中,如果RegionServer进程发生故障,不需要等待租约超时达到预设阈值时才能确定,在RegionServer进程的注册信息存在而RegionServer进程不存在时,即可确定发生了故障。相对现有技术依靠心跳机制来说,缩短了RegionServer进程的故障诊断时间,提高了故障诊断效率,进一步提高了系统的服务可用性。
在现有技术中采用心跳机制使得RegionServer故障发现的时间过长之外,通过对心跳机制的分析可知,可以减小租约超时阈值以缩短RegionServer进程故障的发现时间,但是这又带来另外一个问题,即很容易造成在ZooKeeper节点没有及时接收到RegionServer进程返回的心跳信号时,由于租约超时使得ZooKeeper节点误触发Master节点启动故障处理流程,造成误判,降低对网络闪断异常情况的容忍能力。而增大租约超时阈值,虽然可以提高对网络闪断的容忍能力,但是会增大RegionServer进程故障发现时间。因此,系统对网络闪断的容忍能力与RegionServer进程的故障发现效率是相互矛盾的。
而本实施例在解决现有技术中RegionServer进程的故障发现时间长的问题时,由于引入了独立的监控进程,对系统本身的心跳机制没有任何影响,并没有降低系统对网络闪断的容忍能力。相反,引入监控进程可以快速实现RegionServer进程的故障的同时,可以适当的加大租约超时阈值,提高系统对网络闪断的容忍能力。
在实施例1的基础上,本发明还提供一种分布式存储系统的故障诊断方法实施例2,所述实施例2可以看作是在所述实施例1基础上的一个具体实现。参考图2所示,为本发明提供的一种分布式存储系统的故障诊断方法实施例2的流程图。其中与实施例1相关的步骤的实现方式参考上述实施例中的步骤,本实施例不再赘述。本实施例具体可以包括:
步骤201:监控进程根据待检测RegionServer进程的注册信息获取所述RegionServer进程标识。
所述监控进程为本地监控进程和/或远程监控进程,与现有技术中的心跳机制不同,其中所述本地监控进程和远程监控进程可以单独存在或者二者同时运行,实施对RegionServer进程的监控(故障诊断)。优选的,所述本地监控进程可以设置于RegionServer进程运行的终端设备上,而远程监控进程可以设置除RegionServer进程运行的终端设备之外的设备上,同时,可以为所述本地监控进程和远程监控进程设置不同的监控周期,所述监控周期用来指示监控进程判断一个RegionServer进程是否出现故障的频率。
步骤202:监控进程检测所述标识对应的RegionServer进程在终端设备上是否存在,若否,进入步骤203。
步骤203:确定所述RegionServer进程发生故障。
步骤204:对所述RegionServer进程的注册信息版本号进行校验,以防止RegionServer进程的误删除。
所述版本号可以使用ZooKeeper节点为RegionServer进程的注册信息提供的版本号,也可以使用用户本身为RegionServer进程的注册信息提供的数值(作为版本号使用)。一个RegionServer进程的注册信息每被修改一次,其对应的版本号就会发生相应的变化,在对RegionServer进程的注册信息删除之前,进行版本号的校验,如果监控进程获知的RegionServer进程的版本号与所述进程在ZooKeeper模块中注册的版本号不同,则不能删除此注册信息,如果相同,则可以删除。由上述描述可知,只要版本号能够唯一对应RegionServer进程的注册信息即可,版本号的获取方式并不限于上述两种方式,用户可以根据使用习惯或者具体的应用场景自行定义,对于版本号的获取方式这里不作具体限定。
步骤205:删除所述RegionServer进程对应的注册信息。
这里在RegionServer进程出现故障退出后,如果该进程对应的注册信息经过校验无误后,可以删除其对应的注册信息,便于下次再启动该进程。
在实际操作中,远程监控进程与本地监控进程可以只运行一个,优选的,可以选择两个进程同时运行,因为终端设备在实际操作中有可能会出现宕机的现象,当所述RegionServer进程所在的终端设备宕机时,该终端设备上的所有进程均不存在,包括本地监控进程,但是这时远程监控进程还在运行,此时,远程监控进程检测到所述RegionServer进程不存在,则经过校验删除该进程对应的注册信息。
步骤206:触发ZooKeeper的回调机制,以使Master节点启动故障处理流程。
RegionServer进程出现故障退出后,可以触发ZooKeeper节点的回调机制,所述回调机制用于触发Master节点,使Master节点获知系统出现故障,然后Master节点启动故障处理流程,将出现故障的RegionServer进程上的数据进行迁移。在实际操作中,Master节点获知系统是否出现出现故障的方式当然不止上述触发回调机制这一种,比如,可以为Master节点设置查询周期,由Master节点定时的查看ZooKeeper节点上RegionServer进程的注册信息的个数,因为系统中只有一个ZooKeeper节点,若Master节点相邻两次查看获得的RegionServer进程的注册信息的个数不同,则说明RegionServer进程出现故障,然后启动故障处理流程。上述实现方式仅仅是示意性的说明,不应看作是对本发明保护范围的限定。
步骤207:若监控进程出现故障,则通过系统的心跳机制进行所述RegionServer进程的故障诊断。
在系统的整个运行过程中,心跳机制可以与监控进程并行存在,在监控进程对RegionServer进程的故障诊断的过程中,心跳机制也可以对RegionServer进程进行故障诊断。本地监控进程与远程监控进程均出现故障时,则可以依靠系统本身的心跳机制进行RegionServer进程的故障诊断,以避免在监控进程出现故障时无法进行RegionServer进程的故障诊断。
本领域技术人员能够理解,所述步骤207放在步骤201-步骤206之后,并不代表步骤207的执行顺序要在步骤201-步骤206之后,这里仅仅是本实施例对所有可能发生的各种情况考虑之后的技术方案的详细描述。
本实施例给出了分布式存储系统的故障诊断方法的一种具体实现方式,不仅实现了实施例1带来的有益效果,进一步的,考虑了终端本身出现宕机的情况,此时,终端设备上的所有进程都不存在,本地监控进程无法运行,已经不能检测RegionServer进程是否出现故障。而此时远程监控进程依然在运行,所以在终端设备宕机时本实施例仍然可以完成所述RegionServer进程的监控。在实际应用中,可以增加心跳机制中的租约超时阈值,在本地监控进程和/或远程监控进程没有出现故障时,不仅会提高系统对网络闪断的容忍能力,而且不会影响RegionServer进程的故障发现时间;即使本地监控进程与远程监控进程均出现故障,增加所述阈值会使RegionServer进程的故障发现时间变长,但是本地监控进程与远程监控进程均出现故障的概率较小,整体上不会对RegionServer进程的故障发现时间造成大的影响。
需要说明的是,在所述实施例1或者实施例2的基础上,如果RegionServer进程出现故障,在RegionServer进程再启动时,需要检测所述RegionServer进程在ZooKeeper节点上的注册信息中是否有和自身的标识(后续以IP地址和端口为例)完全相同的信息,如果有,可以认为是上次注册时创建的,将其删除。之后所述RegionServer进程在ZooKeeper节点上重新注册自身信息。按照实施例2的描述可知,ZooKeeper节点本身有为注册信息提供版本号的功能,所以在RegionServer进程再启动时,可能发生所述RegionServer进程在ZooKeeper节点上的注册信息中有和自身的IP地址和端口完全相同的信息的情况,这是因为在监控进程删除其对应的注册信息之前,其对应的注册信息被修改了,此时版本号已经改变,监控进程已知的版本号与所述RegionServer注册信息的实际版本号已经不同,其对应的注册信息没有被删除。
对应于方法实施例,相应的,本发明还提供一种分布式存储系统的故障诊断装置,同样以RegionServer进程为例进行说明,参考图3所示,为本发明提供的一种分布式存储系统的故障诊断装置实施例1的结构示意图,所述装置包括:
获取模块301,用于根据待检测RegionServer进程的注册信息获取所述RegionServer进程标识;
第一检测模块302,用于检测所述标识对应的RegionServer进程在终端设备上是否存在;
确定模块303,用于所述RegionServer进程不存在时,确定所述RegionServer进程发生故障。
优选的,所述RegionServer进程的标识为所述RegionServer进程的名称时,所述检测模块302包括:
查找子模块,用于在系统运行进程列表中查找所述RegionServer进程的名称;
确定子模块,用于在系统运行进程列表中未找到所述RegionServer进程的名称时,确定所述RegionServer进程不存在。
所述RegionServer进程的标识为所述RegionServer进程的编号时,所述检测模块包括:
获取子模块,用于根据所述RegionServer进程的编号获取该RegionServer进程所在的设备及该RegionServer进程对应的运行端口;
则所述确定子模块,具体用于所述运行端口未被占用时,确定所述RegionServer进程不存在。
所述RegionServer进程的标识为所述RegionServer进程所在设备的IP地址和为该进程分配的端口号时,所述检测模块包括:
检测子模块,用于在所述IP地址对应的设备上检测为所述RegionServer进程分配的端口号是否空闲;
则所述确定子模块,具体用于为所述RegionServer进程分配的端口空闲时,确定所述RegionServer进程不存在。
参考图4所示,为本发明提供的一种分布式存储系统的故障诊断装置实施例2的结构示意图,除了图3所示的模块外,所述装置还可以包括:
校验模块401,用于删除所述RegionServer进程对应的注册信息之前,对所述RegionServer进程的注册信息版本号进行校验,以防止RegionServer进程的误删除;
删除模块402,用于确定所述RegionServer进程发送故障后,删除所述RegionServer进程对应的注册信息;
触发模块403,用于所述RegionServer进程对应的注册信息被删除后,触发ZooKeeper节点的回调机制,以使Master节点启动故障处理流程;
第二检测模块404,用于所述监控进程出现故障时,通过系统的心跳机制进行所述RegionServer进程的故障诊断;上述装置中各模块所实现的功能与上述各方法实施例中方法操作步骤对应,这里不再赘述。
需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对于系统实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (15)
1.一种分布式存储系统的故障诊断方法,其特征在于,所述方法包括:
监控进程获取待检测数据运行进程的注册信息,根据待检测数据运行进程的注册信息获取所述数据运行进程标识;
监控进程检测所述标识对应的数据运行进程在终端设备上是否存在,若不存在,则监控进程确定所述数据运行进程发生故障;
监控进程确定所述数据运行进程发生故障后,删除所述数据运行进程对应的注册信息。
2.根据权利要求1所述的方法,其特征在于,所述数据运行进程的标识为所述数据运行进程的名称时,所述监控进程检测所述标识对应的数据运行进程在终端设备上是否存在,包括:
在终端设备运行进程列表中查找所述数据运行进程的名称,若未查找到,则所述数据运行进程不存在。
3.根据权利要求1所述的方法,其特征在于,所述数据运行进程的标识为所述数据运行进程的编号时,所述监控进程检测所述标识对应的数据运行进程在终端设备上是否存在,包括:
根据所述数据运行进程的编号获取该数据运行进程在终端设备上的运行端口;
若所述运行端口未被占用,则确定所述数据运行进程不存在。
4.根据权利要求1所述的方法,其特征在于,所述数据运行进程的标识为所述数据运行进程所在设备的IP地址和为该进程分配的端口时,所述监控进程检测所述标识对应的数据运行进程在终端设备上是否存在,包括:
在所述IP地址对应的终端设备上检测为所述数据运行进程分配的端口是否空闲,若是,则确定所述数据运行进程不存在。
5.根据权利要求1所述的方法,其特征在于,所述监控进程为本地监控进程和/或远程监控进程,当所述数据运行进程所在的终端设备宕机时,则具体由远程监控进程执行所述删除所述数据运行进程对应的注册信息的步骤。
6.根据权利要求1所述的方法,其特征在于,删除所述数据运行进程对应的注册信息之前,还包括:
对所述数据运行进程的注册信息版本号进行校验,以防止RegionServer进程的误删除。
7.根据权利要求1所述的方法,其特征在于,所述数据运行进程对应的注册信息被删除后,所述方法还包括:
触发ZooKeeper节点的回调机制,以使Master节点启动故障处理流程。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述方法还包括:
若监控进程出现故障,则通过系统的心跳机制进行所述数据运行进程的故障诊断。
9.一种分布式存储系统的故障诊断装置,其特征在于,所述装置包括:
获取模块,用于获取待检测数据运行进程的注册信息,根据待检测数据运行进程的注册信息获取所述数据运行进程标识;
第一检测模块,用于检测所述标识对应的数据运行进程在终端设备上是否存在;
确定模块,用于所述数据运行进程不存在时,确定所述数据运行进程发生故障;
删除模块,用于确定所述数据运行进程发生故障后,删除所述数据运行进程对应的注册信息。
10.根据权利要求9所述的装置,其特征在于,所述数据运行进程的标识为所述数据运行进程的名称时,所述检测模块包括:
查找子模块,用于在终端设备运行进程列表中查找所述数据运行进程的名称;
确定子模块,用于在终端设备运行进程列表中未找到所述数据运行进程的名称时,确定所述数据运行进程不存在。
11.根据权利要求9所述的装置,其特征在于,所述数据运行进程的标识为所述数据运行进程的编号时,所述检测模块包括:
获取子模块,用于根据所述数据运行进程的编号获取该数据运行进程在终端设备上的运行端口;
则所述确定子模块,具体用于所述运行端口未被占用时,确定所述数据运行进程不存在。
12.根据权利要求9所述的装置,其特征在于,所述数据运行进程的标识为所述数据运行进程所在设备的IP地址和为该进程分配的端口号时,所述检测模块包括:
检测子模块,用于在所述IP地址对应的设备上检测为所述RegionServer进程分配的端口号是否空闲;
则所述确定子模块,具体用于为所述数据运行进程分配的端口空闲时,确定所述数据运行进程不存在。
13.根据权利要求9所述的装置,其特征在于,所述装置还包括:
校验模块,用于删除所述数据运行进程对应的注册信息之前,对所述数据运行进程的注册信息版本号进行校验,以防止数据运行进程的误删除。
14.根据权利要求9所述的装置,其特征在于,所述装置还包括:
触发模块,用于所述数据运行进程对应的注册信息被删除后,触发ZooKeeper节点的回调机制,以使Master节点启动故障处理流程。
15.根据权利要求9-14任一项所述的装置,其特征在于,所述装置还包括:
第二检测模块,用于监控进程出现故障时,通过系统的心跳机制进行所述数据运行进程的故障诊断。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310219151.1A CN103259688B (zh) | 2013-06-04 | 2013-06-04 | 一种分布式存储系统的故障诊断方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310219151.1A CN103259688B (zh) | 2013-06-04 | 2013-06-04 | 一种分布式存储系统的故障诊断方法与装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103259688A CN103259688A (zh) | 2013-08-21 |
CN103259688B true CN103259688B (zh) | 2017-03-08 |
Family
ID=48963405
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310219151.1A Active CN103259688B (zh) | 2013-06-04 | 2013-06-04 | 一种分布式存储系统的故障诊断方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103259688B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104750757B (zh) * | 2013-12-31 | 2018-05-08 | 中国移动通信集团公司 | 一种基于HBase的数据存储方法和设备 |
CN103731312A (zh) * | 2014-01-26 | 2014-04-16 | 飞狐信息技术(天津)有限公司 | 对远程方法调用的服务进行故障检查的方法和装置 |
CN106484589B (zh) * | 2015-08-28 | 2020-06-30 | 腾讯科技(深圳)有限公司 | 端口访问的监测方法及装置 |
CN106407083B (zh) * | 2016-10-26 | 2019-06-18 | 华为技术有限公司 | 故障检测方法及装置 |
CN107894942B (zh) * | 2017-12-04 | 2020-06-02 | 北京星选科技有限公司 | 数据表访问量的监控方法和装置 |
CN108076155B (zh) * | 2017-12-22 | 2021-05-28 | 聚好看科技股份有限公司 | 跨机房业务调度的方法、装置、系统及服务器 |
CN108196985A (zh) * | 2017-12-29 | 2018-06-22 | 中国电子科技集团公司信息科学研究院 | 一种基于智能预测的存储系统故障预测方法与装置 |
CN108776579B (zh) * | 2018-06-19 | 2021-10-15 | 郑州云海信息技术有限公司 | 一种分布式存储集群扩容方法、装置、设备及存储介质 |
CN108737574B (zh) * | 2018-06-28 | 2021-06-29 | 郑州云海信息技术有限公司 | 一种节点离线判断方法、装置、设备及可读存储介质 |
CN109788068B (zh) * | 2019-02-14 | 2020-11-03 | 腾讯科技(深圳)有限公司 | 心跳状态信息上报方法、装置和设备及计算机存储介质 |
CN111176916B (zh) * | 2019-12-20 | 2023-04-07 | 国久大数据有限公司 | 数据存储故障诊断方法及系统 |
CN111880810B (zh) * | 2020-07-28 | 2022-12-27 | 苏州浪潮智能科技有限公司 | 一种服务实例部署方法、装置及电子设备和存储介质 |
CN116708528B (zh) * | 2023-08-02 | 2023-10-03 | 成都卓拙科技有限公司 | 节点间tcp长连接的监控方法及装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8032625B2 (en) * | 2001-06-29 | 2011-10-04 | International Business Machines Corporation | Method and system for a network management framework with redundant failover methodology |
CN101420340B (zh) * | 2008-11-28 | 2011-01-26 | 中国移动通信集团四川有限公司 | 一种采用自检机制的业务监控与故障快速定位方法 |
CN101651559B (zh) * | 2009-07-13 | 2011-07-06 | 浪潮电子信息产业股份有限公司 | 一种存储服务在双控制器存储系统中故障切换的方法 |
CN201805443U (zh) * | 2010-08-19 | 2011-04-20 | 中国工商银行股份有限公司 | 网关服务器以及银行数据处理系统 |
CN101969391B (zh) * | 2010-10-27 | 2012-08-01 | 北京邮电大学 | 一种支持融合网络业务的云平台及其工作方法 |
CN103383689A (zh) * | 2012-05-03 | 2013-11-06 | 阿里巴巴集团控股有限公司 | 一种服务进程故障检测方法、装置及服务节点 |
CN102779177B (zh) * | 2012-06-27 | 2015-07-22 | 优视科技有限公司 | 浏览器浏览历史备份方法、恢复方法及装置 |
-
2013
- 2013-06-04 CN CN201310219151.1A patent/CN103259688B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN103259688A (zh) | 2013-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103259688B (zh) | 一种分布式存储系统的故障诊断方法与装置 | |
Huang et al. | Capturing and enhancing in situ system observability for failure detection | |
CN107015872A (zh) | 监控数据的处理方法及装置 | |
CN105095001B (zh) | 分布式环境下虚拟机异常恢复方法 | |
JP5267749B2 (ja) | 運用管理装置、運用管理方法、及びプログラム | |
CN102355369B (zh) | 虚拟化集群系统及其处理方法和设备 | |
KR20000011835A (ko) | 네트워크의분산애플리케이션에대한고장검출및소정의복제스타일로복구하는방법및장치 | |
CN106790694A (zh) | 分布式系统及分布式系统中目标对象的调度方法 | |
CN101809540A (zh) | 用于激活虚拟化的计算机应用的网络背景触发 | |
CN109144813B (zh) | 一种云计算系统服务器节点故障监控系统及方法 | |
US8639986B2 (en) | Firmware tracing in a storage data communication system | |
CN103530200A (zh) | 一种服务器热备份系统和方法 | |
CN106789306A (zh) | 通信设备软件故障检测收集恢复方法和系统 | |
US10318392B2 (en) | Management system for virtual machine failure detection and recovery | |
CN108776579A (zh) | 一种分布式存储集群扩容方法、装置、设备及存储介质 | |
CN106911519A (zh) | 一种数据采集监控方法及装置 | |
US8365014B2 (en) | Fast resource recovery after thread crash | |
CN105849702A (zh) | 集群系统,服务器设备,集群系统管理方法和计算机可读记录介质 | |
CN109586989B (zh) | 一种状态检查方法、装置及集群系统 | |
CN114064217B (zh) | 一种基于OpenStack的节点虚拟机迁移方法及装置 | |
CN107453888B (zh) | 高可用性的虚拟机集群的管理方法及装置 | |
CN103647710A (zh) | 一种路径配置方法及装置 | |
CN104408059B (zh) | 一种故障处理的方法及装置 | |
CN113055203A (zh) | Sdn控制平面的异常恢复方法及装置 | |
CN104516790B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP02 | Change in the address of a patent holder | ||
CP02 | Change in the address of a patent holder |
Address after: 100086 12, 1201, 3 building, 2 South Road, Haidian District Academy of Sciences, Beijing. Patentee after: Beijing Sohu New Media Information Technology Co., Ltd. Address before: 100084 Beijing Haidian District Zhongguancun East Road 1 hospital 9 building Sohu cyber building 15 Floor Patentee before: Beijing Sohu New Media Information Technology Co., Ltd. |