一种NFS服务故障告警方法、装置和存储介质与流程

文档序号:15979150发布日期:2018-11-17 00:07阅读:441来源:国知局

本发明涉及分布式系统技术领域,特别是涉及一种nfs服务故障告警方法、装置和计算机可读存储介质。

背景技术

icfs系统是分布式文件系统的一种形式,包含监控服务(monitor,mon),数据服务(object-basedstoragedevice,osd),元数据服务(metadataservice,mds),网络文件系统服务(networkfilesystem,nfs)。

nfs服务是icfs系统对外提供访问的关键服务,这些服务一旦不可用,则上层应用数据无法正常写入icfs存储系统、且即使能够写入也无法保证数据的一致性,所以nfs服务的不正常必然会直接影响存储系统的可用性。

传统的故障定位方式通过直接咨询后端研发,来确定故障类型。该过程需要从系统问题、模块问题等开始进行一步步排查,才可确认是否为nfs服务故障问题,该过程需要消耗较长的时间。针对于icfs系统而言,传统的定位方式往往不能及时的完成故障的处理,影响系统的正常运行。

可见,如何提升故障处理效率,是本领域技术人员亟待解决的问题。



技术实现要素:

本发明实施例的目的是提供一种nfs服务故障告警方法、装置和计算机可读存储介质,可以提升故障处理效率。

为解决上述技术问题,本发明实施例提供一种nfs服务故障告警方法,包括:

获取icfs系统的nfs服务状态信息;

判断预先存储的各类故障状态信息中是否存在与所述nfs服务状态信息相匹配的目标故障状态信息;

若是,则向客户端发送nfs服务异常告警信息。

可选的,在判断预先存储的各类故障状态信息中是否存在与所述nfs服务状态信息相匹配的目标故障状态信息之前,还包括:

获取系统状态信息;

判断所述系统状态信息是否存在异常;

若否,则执行所述判断预先存储的各类故障状态信息中是否存在与所述nfs服务状态信息相匹配的目标故障状态信息的步骤;

若是,则向客户端发送系统异常的提示信息。

可选的,还包括:

当预先存储的各类故障状态信息中不存在与所述nfs服务状态信息相匹配的目标故障状态信息时,则导出日志信息,并将所述日志信息发送至客户端。

可选的,还包括:

当预先存储的各类故障状态信息中存在与所述nfs服务状态信息相匹配的目标故障状态信息时,则进行报警提示。

可选的,各类故障状态信息包括nfs服务启动异常信息、nfs服务节点宕机信息和nfs服务文件异常信息。

可选的,所述向客户端发送nfs服务异常告警信息包括:

将所述nfs服务异常告警信息以短信、邮件和/或snmp文件形式发送至所述客户端。

可选的,所述nfs服务异常告警信息包括nfs服务故障类型和故障级别,以及与所述nfs服务故障类型相对应的故障解决方案。

本发明实施例还提供了一种nfs服务故障告警装置,包括获取单元、判断单元和告警单元;

所述获取单元,用于获取icfs系统的nfs服务状态信息;

所述判断单元,用于判断预先存储的各类故障状态信息中是否存在与所述nfs服务状态信息相匹配的目标故障状态信息;若是,则触发所述发送单元;

所述告警单元,用于向客户端发送nfs服务异常告警信息。

可选的,还包括提示单元;

所述获取单元还用于获取系统状态信息;

所述判断单元还用于判断所述系统状态信息是否存在异常;若否,则触发所述告警单元;若是,则触发所述提示单元;

所述提示单元,用于向客户端发送系统异常的提示信息。

可选的,还包括导出单元;

所述导出单元,用于当预先存储的各类故障状态信息中不存在与所述nfs服务状态信息相匹配的目标故障状态信息时,则导出日志信息,并将所述日志信息发送至客户端。

可选的,还包括报警单元;

所述报警单元,用于当预先存储的各类故障状态信息中存在与所述nfs服务状态信息相匹配的目标故障状态信息时,则进行报警提示。

可选的,各类故障状态信息包括nfs服务启动异常信息、nfs服务节点宕机信息和nfs服务文件异常信息。

可选的,所述告警单元具体用于将所述nfs服务异常告警信息以短信、邮件和/或snmp文件形式发送至所述客户端。

可选的,所述nfs服务异常告警信息包括nfs服务故障类型和故障级别,以及与所述nfs服务故障类型相对应的故障解决方案。

本发明实施例还提供了一种nfs服务故障告警装置,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序以实现如上述nfs服务故障告警方法的步骤。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述nfs服务故障告警方法的步骤。

由上述技术方案可以看出,获取icfs系统的nfs服务状态信息;判断预先存储的各类故障状态信息中是否存在与nfs服务状态信息相匹配的目标故障状态信息;当存在与nfs服务状态信息相匹配的目标故障状态信息时,则可以确定出icfs系统的故障类型,此时可以向客户端发送nfs服务异常告警信息,其中,在该nfs服务异常告警信息中可以包括nfs服务故障类型和故障级别。该技术方案通过自动化检测机制对故障类型进行定位,即判定icfs系统故障是否属于已知的故障类型,对icfs系统故障提供了定位方向,缩短了故障定位时间。通过向客户端发送告警信息,能够及时的将问题通知至维护人员,使维护人员可根据故障类型对故障问题进行及时的解决,提升了故障处理效率。

附图说明

为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种nfs服务故障告警方法的流程图;

图2为本发明实施例提供的一种nfs服务故障告警装置的结构示意图;

图3为本发明实施例提供的一种nfs服务故障告警装置的硬件结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。

接下来,详细介绍本发明实施例所提供的一种nfs服务故障告警方法。图1为本发明实施例提供的一种nfs服务故障告警方法的流程图,该方法包括:

s101:获取icfs系统的nfs服务状态信息。

icfs系统能够自动检测到nfs服务的运行情况。其中,nfs服务状态信息用于反映nfs服务的运行情况。

s102:判断预先存储的各类故障状态信息中是否存在与nfs服务状态信息相匹配的目标故障状态信息。

nfs服务故障类型包括有nfs-ganesha服务不能正常启动,nfs-ganesha所在的节点宕机,客户端共享目录ls大量小文件“卡住”等这几常见的故障类型。其中,ls大量小文件“卡住”是指当大量小文件过多时,可能会存在ls命令卡死情况。

在本发明实施例中,为了降低故障定位的时间,可以预先将常见的几种nfs服务故障类型所对应的故障状态信息进行存储。

依据于nfs服务常见的几种故障类型,在本发明实施例中,预先存储的各类故障状态信息可以包括nfs服务启动异常信息、nfs服务节点宕机信息和nfs服务文件异常信息。

其中,nfs服务启动异常信息用于表示nfs-ganesha服务不能正常启动时所对应的数据信息。nfs服务节点宕机信息用于表示nfs-ganesha所在的节点宕机时所对应的数据信息。nfs服务文件异常信息用于表示客户端共享目录ls大量小文件“卡住”时所对应的数据信息。

当nfs服务状态信息与预先存储的各类故障状态信息相匹配时,即各类故障状态信息中存在与nfs服务状态信息相匹配的目标故障状态信息,则可以确定出系统当前出现的故障的具体故障类型,此时可以执行s103。

s103:向客户端发送nfs服务异常告警信息。

当各类故障状态信息中存在与nfs服务状态信息相匹配的目标故障状态信息时,说明此时cifs系统出现的故障属于预先存储的几类故障类型的一种故障类型,即此时可以确定出cifs系统故障的故障类型。

通过向客户端发送nfs服务异常告警信息,可以及时告知开发人员cifs系统的故障类型,以便于开发人员可以直接执行该故障类型所对应的处理方案,节省了判定故障类型的时间,使得故障可以及时处理,从而有效的保证icfs系统的高可用性。

其中,nfs服务异常告警信息可以包括nfs服务故障类型和故障级别,以及与所述nfs服务故障类型相对应的故障解决方案。

nfs服务故障类型用于表示cifs系统故障的具体故障类型。

故障级别可以依据实际需求进行划分,开发人员依据故障级别可以对比较紧急的故障进行优先的处理。

故障级别可以包括紧急、重要、警告、提示这几种级别。在具体实现中,可以将nfs-ganesha服务不能正常启动的故障级别设定为“紧急”,将nfs-ganesha所在的节点宕机的故障级别设定为“重要”,客户端共享目录ls大量小文件“卡住”的故障级别设定为“警告”。当然每种故障类型所对应的故障级别可以依据实际需求进行设定,在本发明实施例对此不做限定。

预先存储的各类故障状态信息中集成了引起nfs服务异常的已知原因信息。当nfs服务发生故障时,根据状态信息进行分析,如果是已知原因引起的问题,则根据已知原因判断,从而确定出故障类型。

其中,造成nfs-ganesha服务不能正常启动的可能原因是nfs-ganesha的服务导出目录服务异常并且nfs-ganesha的配置导出目录不存在。

造成nfs-ganesha所在的节点宕机可能原因是nfs服务集群管理(clusteredtdb,ctdb)进行ip切换失败,在此过程中虚拟ip无法漂移至正常节点,导致系统数据不一致。

造成客户端共享目录ls大量小文件“卡住”的可能原因是文件系统有请求阻塞或卡住。

对于已知的故障类型,由于故障原因为已知信息,因此,在本发明实施例中,可以提前设定好已知的故障类型所对应的解决方案,以便于开发人员依据该解决方案及时解决故障问题。

下面将对故障解决的具体过程展开介绍。

在解决nfs服务故障时,首先需要进行信息的确认与收集,其具体过程如下,

(1)确认icfs系统版本信息、确定ganesha服务版本、确认icfs状态是否是health_ok,是否有请求阻塞:blockrequest。

不同的icfs系统版本处理方式会存在差异,因此进行故障解决时,需要先确认icfs系统版本信息。对于nfs服务故障需要确定ganesha服务版本。确认icfs状态是为了保证故障处理完成后系统基础服务正常。请求阻塞会造成服务故障。

(2)确认ganesha进程信息并收集文件:主要确定进程是否还存在、确定pid文件名、收集dump.txt文件。

dump.txt文件中记录了错误数据,可以作为查询错误原因的文件。

(3)收集ganesha日志、配置文件,主要确认服务是否启动正常或者出错日志信息;收集挂载信息mount_info.txt文件。

挂载信息包括服务端地址、客户端地址、协议版本等信息。

(4)收集nfs服务集群管理(通过虚拟ip与物理ip的对应关系,实现ip智能管理)配置信息以及系统组网信息。

nfs服务集群管理提供高可用功能,若该功能开启,则说明可通过虚拟ip进行挂载,进行故障处理时,需要结合ip切换场景。

当完成信息的确认与收集工作后,开发人员可以对具体的故障进行处理。

针对于nfs-ganesha服务不能正常启动的解决方法如下,

(1)使用showmount-e命令查看nfs-ganesha的服务导出目录是否正常。

当执行showmount-e命令可以查看到nfs-ganesha的服务导出目录,则说明nfs-ganesha的服务导出目录正常;当执行showmount-e命令无法查看到nfs-ganesha的服务导出目录,则说明nfs-ganesha的服务导出目录不正常。

(2)设置本地缓存失效时间attr_expiration_time。超过该时间后,且服务端文件属性确实有变化,则从服务端获取服务端的数据以及文件属性。

其中,失效时间可以默认为10s。当然失效时间的具体取值,可以需要根据场景进行配置,当对于多客户端并发操作频繁场景,可以将失效时间设置的短一些,例如,将失效时间设置为1s。

(3)检查nfs-ganesha的配置文件是否正确。如若配置信息错误,执行修改脚本./ganeshamodify完成配置文件icfs.conf的修改,并推送至系统中各个节点,完成各节点ganesha的启动。

针对于nfs-ganesha所在的节点宕机的解决方法如下,

(1)检查服务端nfs-ganesha服务状态以及阻塞延迟。

具体的,可以通过systemctlstatusganesha查看nfs服务状态,正常情况下,为nfs服务状态running。并通过ps-ef|grepganesha检查进程是否存在。

通过netstat-tunpla|grepganesha.nfsd检查pid号,检查875,2049端口是否为listen状态,检查进程号与ps-ef查询的pid号是否匹配。

(2)输入ctdbip,是否已经把public_addresses中配置的ip地址分配到所有节点。

(3)执行systemctlstartctdb或者servicectdbstart后,重启ctdb进程。并通过ctdb进程自动拉起nfs服务。

针对于客户端共享目录ls大量小文件“卡住”的解决方法如下,

(1)查看ganesha的pid并查看系统接口是否异常。

(2)打开时延统计开关ganesha_mgrset_switchtime_delaytrue并确认时延是否异常:watch-dganesha_stat_toolshow_nfs_ops(单位为微秒,若时延超过几秒几十秒说明有阻塞现象。

打开时延统计开关可以收集到多列数据,每列含义分别为:接受到的请求个数(receive_requests),处理的请求个数(handle_requests),处理平均时延(handle_req_avg_t),处理最大时延(handle_req_max_t),处理最小时延(handle_req_min_t),请求等待平均时延(queue_wait_avg_t),等待最大时延(queue_wait_max_t),等待最小时延(queue_wait_min_t))。

(3)查看ganesha日志,如果出现[dbus_heartbeat]日志字段,说明集群有阻塞延迟较高;通过pstackpid>>1.txt---4.txt命令多次收集,分析堆栈信息,消除阻塞延迟。

依据上述介绍的解决方法,开发人员可以对nfs服务故障进行处理。需要说明的是,上述各解决方法中涉及的操作步骤与现有技术中进行故障恢复时的操作原理类似,对于本领域技术人员而言上述操作步骤属于常规操作,因此,在本发明实施例中,对于各步骤的具体原理不再赘述。

通过设置解决方案,对于故障发生后及时解决故障提供了综合性的指导,为产品的售后服务提供了坚实的保障。

由上述技术方案可以看出,获取icfs系统的nfs服务状态信息;判断预先存储的各类故障状态信息中是否存在与nfs服务状态信息相匹配的目标故障状态信息;当存在与nfs服务状态信息相匹配的目标故障状态信息时,则可以确定出icfs系统的故障类型,此时可以向客户端发送nfs服务异常告警信息,其中,在该nfs服务异常告警信息中可以包括nfs服务故障类型和故障级别。该技术方案通过自动化检测机制对故障类型进行定位,即判定icfs系统故障是否属于已知的故障类型,对icfs系统故障提供了定位方向,缩短了故障定位时间。通过向客户端发送告警信息,能够及时的将问题通知至维护人员,使维护人员可根据故障类型对故障问题进行及时的解决,提升了故障处理效率。

在本发明实施例中,预先存储的各类故障状态信息均属于nfs服务故障信息。为了排除icfs系统中其它服务异常引起的故障问题,具体的,在判断预先存储的各类故障状态信息中是否存在与nfs服务状态信息相匹配的目标故障状态信息之前,还可以获取系统状态信息;判断系统状态信息是否存在异常。

系统状态信息正常时,则执行判断预先存储的各类故障状态信息中是否存在与nfs服务状态信息相匹配的目标故障状态信息的步骤;当系统状态信息异常时,则可以向客户端发送系统异常的提示信息。

其中,系统状态信息可以包括osd、mon、mds的状态信息。

此外,为了保证故障处理完成后系统基础服务正常,可以再次确认系统状态信息是否正常。

通过对系统状态信息进行判定,可以在确定系统故障并非是由于osd、mon、mds等服务异常造成的故障时,再执行判定故障是否属于已知原因的nfs服务故障,可以预先排除非nfs服务造成的故障。

预先存储的故障状态信息的故障类型有限,在具体实现中,可能会出现预先存储的各类故障状态信息中不存在与nfs服务状态信息相匹配的目标故障状态信息的情况。

针对于该种情况,可以在预先存储的各类故障状态信息中不存在与nfs服务状态信息相匹配的目标故障状态信息时,则导出日志信息,并将日志信息发送至客户端。

当预先存储的各类故障状态信息中不存在与nfs服务状态信息相匹配的目标故障状态信息时,说明icfs系统出现的故障问题并非是已知原因的nfs服务故障。

开发人员在进行故障定位时,往往需要依据日志信息确定出故障类型,在本发明实施例中,当预先存储的各类故障状态信息中不存在与nfs服务状态信息相匹配的目标故障状态信息时,通过向客户端发送日志信息,节省了开发人员的操作流程,提升了开发人员处理故障问题的效率。

在本发明实施例中,除了向客户端发送告警信息或日志信息外,也可以设置本地提示机制,即在icfs系统上设置提示机制。

具体的,当预先存储的各类故障状态信息中存在与nfs服务状态信息相匹配的目标故障状态信息时,则进行报警提示。

通过设置报警提示,可以及时提醒工作人员icfs系统出现故障,以便于对工作人员故障进行及时的处理。

图2为本发明实施例提供的一种nfs服务故障告警装置的结构示意图,所述装置包括获取单元21、判断单元22和告警单元23;

获取单元21,用于获取icfs系统的nfs服务状态信息;

判断单元22,用于判断预先存储的各类故障状态信息中是否存在与nfs服务状态信息相匹配的目标故障状态信息;若是,则触发发送单元;

告警单元23,用于向客户端发送nfs服务异常告警信息。

可选的,还包括提示单元;

获取单元还用于获取系统状态信息;

判断单元还用于判断系统状态信息是否存在异常;若否,则触发告警单元;若是,则触发提示单元;

提示单元,用于向客户端发送系统异常的提示信息。

可选的,还包括导出单元;

导出单元,用于当预先存储的各类故障状态信息中不存在与nfs服务状态信息相匹配的目标故障状态信息时,则导出日志信息,并将日志信息发送至客户端。

可选的,还包括报警单元;

报警单元,用于当预先存储的各类故障状态信息中存在与nfs服务状态信息相匹配的目标故障状态信息时,则进行报警提示。

可选的,各类故障状态信息包括nfs服务启动异常信息、nfs服务节点宕机信息和nfs服务文件异常信息。

可选的,所述告警单元具体用于将所述nfs服务异常告警信息以短信、邮件和/或snmp文件形式发送至所述客户端。

可选的,所述nfs服务异常告警信息包括nfs服务故障类型和故障级别,以及与所述nfs服务故障类型相对应的故障解决方案。

图2所对应实施例中特征的说明可以参见图1所对应实施例的相关说明,这里不再一一赘述。

由上述技术方案可以看出,获取icfs系统的nfs服务状态信息;判断预先存储的各类故障状态信息中是否存在与nfs服务状态信息相匹配的目标故障状态信息;当存在与nfs服务状态信息相匹配的目标故障状态信息时,则可以确定出icfs系统的故障类型,此时可以向客户端发送nfs服务异常告警信息,其中,在该nfs服务异常告警信息中可以包括nfs服务故障类型和故障级别。该技术方案通过自动化检测机制对故障类型进行定位,即判定icfs系统故障是否属于已知的故障类型,对icfs系统故障提供了定位方向,缩短了故障定位时间。通过向客户端发送告警信息,能够及时的将问题通知至维护人员,使维护人员可根据故障类型对故障问题进行及时的解决,提升了故障处理效率。

图3为本发明实施例提供的一种nfs服务故障告警装置30的硬件结构示意图,所述nfs服务故障告警装置30包括:

存储器31,用于存储计算机程序;

处理器32,用于执行计算机程序以实现如上述nfs服务故障告警方法的步骤。

本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述nfs服务故障告警方法的步骤。

以上对本发明实施例所提供的一种nfs服务故障告警方法、装置和计算机可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1