一种分布式文件系统的故障诊断方法、装置、设备及介质与流程

文档序号:27338365发布日期:2021-11-10 02:36阅读:107来源:国知局
一种分布式文件系统的故障诊断方法、装置、设备及介质与流程

1.本发明涉及分布式存储技术领域,特别是涉及一种分布式文件系统的故障诊断方法、装置、设备及计算机可读存储介质。


背景技术:

2.分布式存储系统中的io栈比较复杂,从主机到网络再到存储,并且在存储内部又存在多种服务,例如有前端接入文件协议处理、元数据管理、落盘管理等各种服务。当现场出现问题之后,很难快速定位到具体的故障原因,现有技术中通常需要依托专业的售后服务团队,工程师通过远程或者到客户现场进行故障排查,不仅需要消耗大量的人力,而且导致故障修复时间较长,影响系统可靠性。
3.鉴于此,如何缩短故障修复时间,提高故障诊断效率及系统可靠性成为本领域技术人员需要解决的问题。


技术实现要素:

4.本发明实施例的目的是提供一种分布式文件系统的故障诊断方法、装置、设备及计算机可读存储介质,在使用过程中能够实现自动对故障进行诊断定位,不仅节约人力,还有利于缩短故障修复时间,提高系统可靠性。
5.为解决上述技术问题,本发明实施例提供了一种分布式文件系统的故障诊断方法,包括:
6.采集分布式文件系统中各节点的数据信息,所述数据信息包括质量指标信息和日志信息;
7.根据各个所述数据信息判断所述分布式文件系统是否发生故障,若是,则依据预先建立的故障诊断规则对所述数据信息及所述分布式文件系统的当前状态信息进行分析,得到故障分析结果。
8.可选的,所述根据各个所述数据信息判断所述分布式文件系统是否发生故障的过程为:
9.根据各个所述质量指标信息提取出所述分布式存储系统对外提供服务的整体时延;
10.判断所述整体时延是否大于预设时延阈值,若是,则发生故障。
11.可选的,所述依据预先建立的故障诊断规则对所述数据信息及所述分布式文件系统的当前状态信息进行分析,得到故障分析结果的过程为:
12.从主节点上查看所述分布式文件系统的整体状态,并在确定出所述整体状态为故障状态时,获取对应的故障节点信息及故障模块信息;
13.依据所述故障节点信息从各个所述数据信息中获取对应的目标数据信息,并采集对应的故障节点的实时状态信息;
14.依据预先建立的故障诊断规则对所述故障节点信息、所述故障模块信息、所述目
标数据信息及所述实时状态信息进行分析,得到故障分析结果。
15.可选的,所述依据预先建立的故障诊断规则对所述故障节点信息、所述故障模块信息、所述目标数据信息及所述实时状态信息进行分析,得到故障分析结果的过程为:
16.预先建立与每类模块各自对应的故障诊断规则组,所述故障诊断规则组包括与所述模型对应的各个组件的故障类型及与每个所述故障类型各自对应的故障诊断标准;
17.依据所述故障模块信息从预先建立的故障诊断规则组中匹配出对应的目标故障诊断规则组;
18.依据所述目标数据信息及所述实时状态信息从所述目标故障诊断规则组中确定出目标故障组件的组件信息及故障信息;
19.依据所述目标故障组件的组件信息、所述故障信息、所述故障节点信息和所述故障模块信息生成故障分析结果。
20.可选的,还包括:
21.根据所述故障分析结果得到对应的故障修复建议;
22.根据所述故障分析结果和所述故障修改建议生成故障诊断报告,并将所述故障诊断报告进行存储。
23.本发明实施例还提供了一种分布式文件系统的故障诊断装置,包括:
24.采集模块,用于采集分布式文件系统中各节点的数据信息,所述数据信息包括质量指标信息和日志信息;
25.判断模块,用于根据各个所述数据信息判断所述分布式文件系统是否发生故障,若是,则触发诊断模块;
26.所述诊断模块,用于依据预先建立的故障诊断规则对所述数据信息及所述分布式文件系统的当前状态信息进行分析,得到故障分析结果。
27.可选的,所述判断模块包括:
28.提取单元,用于根据各个所述质量指标信息提取出所述分布式存储系统对外提供服务的整体时延;
29.判断单元,用于判断所述整体时延是否大于预设时延阈值,若是,则发生故障。
30.可选的,所述判断模块包括:
31.第一获取单元,用于从主节点上查看所述分布式文件系统的整体状态,并在确定出所述整体状态为故障状态时,获取对应的故障节点信息及故障模块信息;
32.第二获取单元,用于依据所述故障节点信息从各个所述数据信息中获取对应的目标数据信息,并采集对应的故障节点的实时状态信息;
33.诊断单元,用于依据预先建立的故障诊断规则对所述故障节点信息、所述故障模块信息、所述目标数据信息及所述实时状态信息进行分析,得到故障分析结果。
34.本发明实施例还提供了一种分布式文件系统的故障诊断设备,包括:
35.存储器,用于存储计算机程序;
36.处理器,用于执行所述计算机程序时实现如上述所述分布式文件系统的故障诊断方法的步骤。
37.本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述分布式文件系统的故障
诊断方法的步骤。
38.本发明实施例提供了一种分布式文件系统的故障诊断方法、装置、设备及计算机可读存储介质,该方法通过采集分布式文件系统各节点的数据信息,并根据各节点的数据信息判断分布式文件系统是否发生故障,当发生故障时根据预先建立的故障诊断规则对数据信息及所述分布式文件系统的当前状态信息进行分析,得到故障分析结果,以便运维人员根据故障分析结果快速对故障进行排查和修复,本发明能够实现自动对故障进行诊断定位,不仅节约人力,还有利于缩短故障修复时间,提高系统可靠性。
附图说明
39.为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
40.图1为本发明实施例提供的一种分布式文件系统的故障诊断方法的流程示意图;
41.图2为本发明实施例提供的一种分布式文件系统的故障诊断装置的结构示意图。
具体实施方式
42.本发明实施例提供了一种分布式文件系统的故障诊断方法、装置、设备及计算机可读存储介质,在使用过程中能够实现自动对故障进行诊断定位,不仅节约人力,还有利于缩短故障修复时间,提高系统可靠性。
43.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
44.请参照图1,图1为本发明实施例提供的一种分布式文件系统的故障诊断方法的流程示意图。该方法包括:
45.s110:采集分布式文件系统中各节点的数据信息,数据信息包括质量指标信息和日志信息;
46.需要说明的是,本发明实施例中可以采用分布式文件系统中各节点的质量指标信息和日志信息,其中,可以通过分部在各个节点上的collectd服务实现对节点的质量指标信息的收集,具体可以通过elastic官方推荐的轻量级日志文件采集终端filebeat对节点进行日志信息的收集,并且将采集到的数据信息进行存储,以便后续进行故障诊断时使用。
47.具体的,在实际应用中还可以对采集到的质量指标信息和日志信息进行处理,例如进行增长率的计算或进行按固定时长进行聚合等处理,并且将处理后的结果也进行存储,具体的可以通过prometheus的recording_rules对采集到的质量指标信息,其中,prometheus为一个数据采集的开源框架,recording_rules为prometheus内的一个数据记录规则。另外,在采集到日志信息后,还可以对日志信息进行清洗过滤以删除异常数据,并进行格式转换等操作,例如可以根据正则匹配提取各个组件的高时延日志信息中的具体数值等,然后对操作后的日志信息进行存储,其中,具体可以通过elastic官方的logstash组
件,进行日志文件的清洗过滤、格式转换等操作。
48.s120:根据各个数据信息判断分布式文件系统是否发生故障,若是,则进入s130;
49.需要说明的是,在实际应用中可以根据存储的最近预设时间(例如5分钟)内的各个数据信息判断分布式文件系统是否发生故障,具体可以根据各个质量指标信息提取出分布式存储系统对外提供服务的整体时延,然后判断该整体时延是否大于预设时延阈值,并且在确定出该整体时延大于预设时延阈值时,判定分布式文件系统发生故障。另外,在实际应用中在判定出分布式文件系统发生故障时,还可以触发告警,以便及时提醒工作人员进行故障处理;并且还可以在故障修复完成后,解除告警。
50.s130:依据预先建立的故障诊断规则对数据信息及分布式文件系统的当前状态信息进行分析,得到故障分析结果。
51.具体的,可以预先建立故障诊断规则,然后在判定出分布式文件系统发生故障时,采集分布式文件系统的当前状态信息,具体可以通过实时状态接口查看及获取实时的当前状态信息,根据该故障诊断规则进行故障诊断,具体为在根据采集到的各个数据信息进行故障诊断的同时结合分布式文件系统的当前状态信息对分布式文件系统进行故障诊断,以提高故障诊断的准确性,并且在故障诊断完成后得到故障分析结果。
52.进一步的,上述s130中依据预先建立的故障诊断规则对数据信息及分布式文件系统的当前状态信息进行分析,得到故障分析结果的过程,具体可以为:
53.从主节点上查看分布式文件系统的整体状态,并在确定出整体状态为故障状态时,获取对应的故障节点信息及故障模块信息;
54.依据故障节点信息从各个数据信息中获取对应的目标数据信息,并采集对应的故障节点的实时状态信息;
55.依据预先建立的故障诊断规则对故障节点信息、故障模块信息、目标数据信息及实时状态信息进行分析,得到故障分析结果。
56.需要说明的是,由于主节点上会记录分布式文件系统的整体状态及节点信息和模块信息,故本发明实施例中在对分布式文件系统进行故障诊断时,可以先从主节点上查看分布式文件系统的整体状态,根据整体状态确定出分布式文件系统处于故障状态时,从主节点获取记录的故障节点信息和故障模块信息,其中,各个模块按照模块类型可以分为ganesha、mds、mon、osd、os等,每一类模块下包括一种或多种组件,例如osd模块下包括硬盘、内存等组件,具体可以根据实际情况进行确定;其中,ganesha为提供nfs文件共享服务的程序,在存储的数据io栈中,是最靠近用户侧的组件,直接面向用户提供文件共享服务;mds为metadata server元数据服务,mon为monitor监控服务,osd为object storage daemon分布式对象存储系统的对象存储守护进程、os为操作系统。本发明实施例中的故障节点信息可以包括故障节点的id、名称等,故障模块信息可以包括故障模块的id、名称等,并且所采集的与每个节点对应的数据信息中也包括节点信息(节点id和节点名称等),则在确定出故障节点信息及故障模块信息后,可以根据故障节点信息从各个数据信息中获取出与故障节点对应的目标数据信息,并且采集故障节点的实时状态信息,然后再进一步依据预先建立的故障诊断规则对故障节点信息、故障模块信息、目标数据信息及实时状态信息进行分析,从而实现对故障位置的定位,以得到故障分析结果。
57.更进一步的,上述依据预先建立的故障诊断规则对故障节点信息、故障模块信息、
目标数据信息及实时状态信息进行分析,得到故障分析结果的过程,具体可以为:
58.预先建立与每类模块各自对应的故障诊断规则组,故障诊断规则组包括与模型对应的各个组件的故障类型及与每个故障类型各自对应的故障诊断标准;
59.依据故障模块信息从预先建立的故障诊断规则组中匹配出对应的目标故障诊断规则组;
60.依据目标数据信息及实时状态信息从目标故障诊断规则组中确定出目标故障组件的组件信息及故障信息;
61.依据目标故障组件的组件信息、故障信息、故障节点信息和故障模块信息生成故障分析结果。
62.需要说明的是,在实际应用中可以针对每类模块预先建立与模块对应的故障诊断规则组,其中,该故障诊断规则组中包括模块id和名称以及该模块下每类组件的id和名称,以及组件的故障类型及与故障类型对应的故障诊断标准,例如:1)、模块为osd,组件为硬盘,则故障类型为硬盘故障,硬盘故障的故障诊断标准为与硬盘对应的smart信息中存在硬盘坏块数异常的信息;2)、模块为osd,组件为硬盘,则故障类型为硬盘所占空间不足,导致mon下线;与该故障类型对应的故障诊断标准为通过mon所在的磁盘路径及质量指标信息,确定出磁盘所占空间大的预设的阈值等。
63.具体的,可以依据故障模块信息的id从预先建立的故障诊断规则组中匹配出与故障模块对应的目标故障诊断规则组,然后再依据目标数据信息及实时状态信息从目标故障诊断规则组中确定出符合的故障诊断标准及对应的目标故障组件的组件信息及故障信息,再依据目标故障组件的组件信息、故障信息、故障节点信息和故障模块信息生成故障分析结果。例如,当目标日志信息中出现media error且实时状态信息中的smart信息中发现有磁盘坏块数异常,则判定为磁盘故障;如当mon下线发生时,目标日志信息中出现“reached critical levels of available space”,通过实时状态接口查看mon所在的磁盘路径,通过目标质量指标信息确定出磁盘的空间占用情况发现磁盘的空间大的预设的阈值,则判定为磁盘所在空间不足,造成mon下线。具体的,在得到目标故障组件的组件信息及故障信息后,依据目标故障组件的组件信息、故障信息、故障节点信息和故障模块信息生成故障分析结果,并且该故障节点信息和故障模块信息均为关联信息,故障节点信息包括节点的主机名称,故障模块信息包括模块id、名称等,具体的,例如对于硬盘故障的情况,故障分析结果中包括故障硬盘所在节点的主机名、硬盘槽位号、硬盘型号、硬盘序列号、硬盘smart信息等;对于磁盘所在空间不足,造成mon下线的故障情况,故障分析结果中可以包括mon所在节点的主机名称、mon数据所在文件路径、mon所在磁盘空间使用情况等信息。
64.进一步的,该方法还可以包括:
65.根据故障分析结果得到对应的故障修复建议;
66.根据故障分析结果和故障修改建议生成故障诊断报告,并将故障诊断报告进行存储。
67.需要说明的是,还可以预先针对每种故障类型确定出对应的故障修复建议,本发明实施例中还可以在得到故障分析结果后,根据该故障分析结果匹配出故障修复建议,然后将故障修复建议和故障分析结果生成故障诊断报告,以便运维人员根据故障修复建议对故障进行快速修复,进一步缩短故障修复时长,提高故障修复效率,其中,该故障诊断报告
可以记录至数据库(例如mysql数据库)中。例如,对于磁盘故障的情况,对应的故障修复建议可以为更换磁盘。
68.可见,该方法通过采集分布式文件系统各节点的数据信息,并根据各节点的数据信息判断分布式文件系统是否发生故障,当发生故障时根据预先建立的故障诊断规则对数据信息及分布式文件系统的当前状态信息进行分析,得到故障分析结果,以便运维人员根据故障分析结果快速对故障进行排查和修复,本发明能够实现自动对故障进行诊断定位,不仅节约人力,还有利于缩短故障修复时间,提高系统可靠性。
69.在上述实施例的基础上,本发明实施例还提供了一种分布式文件系统的故障诊断装置,具体请参照图2,该装置包括:
70.采集模块21,用于采集分布式文件系统中各节点的数据信息,数据信息包括质量指标信息和日志信息;
71.判断模块22,用于根据各个数据信息判断分布式文件系统是否发生故障,若是,则触发诊断模块23;
72.诊断模块23,用于依据预先建立的故障诊断规则对数据信息及分布式文件系统的当前状态信息进行分析,得到故障分析结果。
73.进一步的,判断模块22包括:
74.提取单元,用于根据各个质量指标信息提取出分布式存储系统对外提供服务的整体时延;
75.判断单元,用于判断整体时延是否大于预设时延阈值,若是,则发生故障。
76.可选的,判断模块22包括:
77.第一获取单元,用于从主节点上查看分布式文件系统的整体状态,并在确定出整体状态为故障状态时,获取对应的故障节点信息及故障模块信息;
78.第二获取单元,用于依据故障节点信息从各个数据信息中获取对应的目标数据信息,并采集对应的故障节点的实时状态信息;
79.诊断单元,用于依据预先建立的故障诊断规则对故障节点信息、故障模块信息、目标数据信息及实时状态信息进行分析,得到故障分析结果。
80.需要说明的是,本发明实施例提供的分布式文件系统的故障诊断装置具有与上述实施例提供的分布式文件系统的故障诊断方法相同的有益效果,对于本发明实施例中所设计到的分布式文件系统的故障诊断方法的具体介绍请参照上述实施例,本发明在此不再赘述。
81.在上述实施例的基础上,本发明实施例还提供了一种分布式文件系统的故障诊断设备,该设备包括:
82.存储器,用于存储计算机程序;
83.处理器,用于执行计算机程序时实现如上述分布式文件系统的故障诊断方法的步骤。
84.例如,本发明实施例中的处理器具体可以用于实现采集分布式文件系统中各节点的数据信息,数据信息包括质量指标信息和日志信息;根据各个数据信息判断分布式文件系统是否发生故障,若是,依据预先建立的故障诊断规则对数据信息及分布式文件系统的当前状态信息进行分析,得到故障分析结果。
85.在上述实施例的基础上,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述分布式文件系统的故障诊断方法的步骤。
86.该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read

only memory,rom)、随机存取存储器(randomaccess memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
87.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
88.还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
89.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1