一种文件共享方法、装置、设备及计算机可读存储介质与流程

文档序号:25420314发布日期:2021-06-11 21:31阅读:71来源:国知局
一种文件共享方法、装置、设备及计算机可读存储介质与流程

本发明涉及计算机应用技术领域,特别是涉及一种文件共享方法、装置、设备及计算机可读存储介质。



背景技术:

在存储节点通过服务smb(servermessageblock)协议向各客户端提供共享服务过程中,存储节点分别与各客户端建立有传输控制协议(transmissioncontrolprotocol,tcp)连接,每个tcp连接在存储节点端对应一个业务子进程,当存储节点发生故障时,造成业务子进程卡住,则不能通过smb协议提供共享服务,严重影响存储业务的使用。

目前,当出现业务子进程卡住造成smb共享卡住时,通常通过人工断开重连的方式进行故障解除。这种方法耗费人力,且会影响业务的连续性,增加了运维成本。

综上所述,如何有效地解决人工断开重连对文件共享故障进行解除的方式,耗费人力,影响业务的连续性,运维成本高等问题,是目前本领域技术人员急需解决的问题。



技术实现要素:

本发明的目的是提供一种文件共享方法,该方法保证了业务共享的连续性,节省人力,降低了运维成本;本发明的另一目的是提供一种文件共享装置、设备及计算机可读存储介质。

为解决上述技术问题,本发明提供如下技术方案:

一种文件共享方法,包括:

检测当前处于文件共享启用状态的各业务子进程;

判断各所述业务子进程中是否存在异常子进程;

若是,则杀掉所述异常子进程,并断开所述异常子进程对应的原tcp连接;

当检测到针对所述异常子进程新建立的tcp连接时,进行业务子进程生成操作,得到目标业务子进程;

利用所述目标业务子进程对所述异常子进程对应的文件共享任务进行处理。

在本发明的一种具体实施方式中,判断各所述业务子进程中是否存在异常子进程,包括:

获取各所述业务子进程分别对应的最新通信时间;

计算当前时间分别与各所述最新通信时间的时间差;

判断各所述业务子进程中是否存在所述时间差超出预设时长的异常子进程。

在本发明的一种具体实施方式中,获取各所述业务子进程分别对应的最新通信时间,包括:

获取各所述业务子进程分别对应的发送unix数据报消息的最新通信时间。

在本发明的一种具体实施方式中,在确定各所述业务子进程中存在异常子进程之后,杀掉所述异常子进程之前,还包括:

采集所述异常子进程对应的堆栈信息,以利用所述堆栈信息进行问题定位。

一种文件共享装置,包括:

进程检测模块,用于检测当前处于文件共享启用状态的各业务子进程;

判断模块,用于判断各所述业务子进程中是否存在异常子进程;

进程及连接管理模块,用于当确定各所述业务子进程中存在异常子进程时,杀掉所述异常子进程,并断开所述异常子进程对应的原tcp连接;

进程生成模块,用于当检测到针对所述异常子进程新建立的tcp连接时,进行业务子进程生成操作,得到目标业务子进程;

文件共享模块,用于利用所述目标业务子进程对所述异常子进程对应的文件共享任务进行处理。

在本发明的一种具体实施方式中,所述判断模块包括:

通信时间获取子模块,用于获取各所述业务子进程分别对应的最新通信时间;

时间差计算子模块,用于计算当前时间分别与各所述最新通信时间的时间差;

判断子模块,用于判断各所述业务子进程中是否存在所述时间差超出预设时长的异常子进程。

在本发明的一种具体实施方式中,所述通信时间获取子模块具体为获取各所述业务子进程分别对应的发送unix数据报消息的最新通信时间的模块。

在本发明的一种具体实施方式中,还包括:

问题定位模块,用于在确定各所述业务子进程中存在异常子进程之后,杀掉所述异常子进程之前,采集所述异常子进程对应的堆栈信息,以利用所述堆栈信息进行问题定位。

一种文件共享设备,包括:

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

处理器,用于执行所述计算机程序时实现如前所述文件共享方法的步骤。

一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前所述文件共享方法的步骤。

本发明所提供的文件共享方法,检测当前处于文件共享启用状态的各业务子进程;判断各业务子进程中是否存在异常子进程;若是,则杀掉异常子进程,并断开异常子进程对应的原tcp连接;当检测到针对异常子进程新建立的tcp连接时,进行业务子进程生成操作,得到目标业务子进程;利用目标业务子进程对异常子进程对应的文件共享任务进行处理。通过当检测到存在异常子进程时,自动杀掉异常子进程,并控制异常子进程对应的原tcp连接断开。并在建立新的tcp连接时,自动生成业务子进程,用于接替异常子进程处理文件共享任务。相较于人工断开重连的故障解除方式,本发明整个异常进程处理过程均在底层自动进行,达到了对上层无感知的效果,保证了业务共享的连续性,节省人力,降低了运维成本。

相应的,本发明还提供了与上述文件共享方法相对应的文件共享装置、设备和计算机可读存储介质,具有上述技术效果,在此不再赘述。

附图说明

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

图1为本发明实施例中文件共享方法的一种实施流程图;

图2为本发明实施例中文件共享方法的另一种实施流程图;

图3为本发明实施例中一种文件共享装置的结构框图;

图4为本发明实施例中一种文件共享设备的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一:

参见图1,图1为本发明实施例中文件共享方法的一种实施流程图,该方法可以包括以下步骤:

s101:检测当前处于文件共享启用状态的各业务子进程。

当存储节点向各客户端共享文件时,存储节点的smbd主进程检测当前处于文件共享启用状态的各业务子进程,从而获取到当前存在哪些用于文件共享的业务子进程。

s102:判断各业务子进程中是否存在异常子进程,若是,则执行步骤s103,若否,则不做处理。

在检测当前处于文件共享启用状态的各业务子进程之后,判断各业务子进程中是否存在异常子进程,若是,则说明存在已经不能用于文件共享的异常子进程,执行步骤s103,若否,则说明各业务子进程均能正常用于文件共享,不做处理。

s103:杀掉异常子进程,并断开异常子进程对应的原tcp连接。

当确定各业务子进程中存在异常子进程时,主动杀掉kill异常子进程,并断开异常子进程对应的原tcp连接,从而避免对后续新建tcp连接及新生成业务子进程的影响。

杀掉异常子进程指对异常子进程进程彻底清除。

s104:当检测到针对异常子进程新建立的tcp连接时,进行业务子进程生成操作,得到目标业务子进程。

在杀掉异常子进程,并断开异常子进程对应的原tcp连接之后,异常子进程对应的客户端会自动针对异常子进程建立新的tcp连接。当smbd主进程检测到针对异常子进程新建立的tcp连接时,进行业务子进程生成操作,得到目标业务子进程。

s105:利用目标业务子进程对异常子进程对应的文件共享任务进行处理。

在生成目标业务子进程之后,利用目标业务子进程对异常子进程对应的文件共享任务进行处理,从而保证了文件共享任务的正常执行。本发明可有效识别无响应的业务子进程,主动杀掉异常子进程,并且会产生新的业务子进程,整个异常进程处理过程均在底层自动进行,达到了对上层无感知的效果。本发明提供的自动重连机制避免了由共享连接卡住造成的业务中断,提升故障场景下信息服务块(samba)业务的可靠性,保证了业务共享的连续性,提升了samba共享传输业务的可服务性。提升系统维护效率。

本发明所提供的文件共享方法,检测当前处于文件共享启用状态的各业务子进程;判断各业务子进程中是否存在异常子进程;若是,则杀掉异常子进程,并断开异常子进程对应的原tcp连接;当检测到针对异常子进程新建立的tcp连接时,进行业务子进程生成操作,得到目标业务子进程;利用目标业务子进程对异常子进程对应的文件共享任务进行处理。通过当检测到存在异常子进程时,自动杀掉异常子进程,并控制异常子进程对应的原tcp连接断开。并在建立新的tcp连接时,自动生成业务子进程,用于接替异常子进程处理文件共享任务。相较于人工断开重连的故障解除方式,本发明整个异常进程处理过程均在底层自动进行,达到了对上层无感知的效果,保证了业务共享的连续性,节省人力,降低了运维成本。

需要说明的是,基于上述实施例一,本发明实施例还提供了相应的改进方案。在后续实施例中涉及与上述实施例一中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在下文的改进实施例中不再一一赘述。

实施例二:

参见图2,图2为本发明实施例中文件共享方法的另一种实施流程图,该方法可以包括以下步骤:

s201:检测当前处于文件共享启用状态的各业务子进程。

s202:获取各业务子进程分别对应的最新通信时间。

各业务子进程会主动向smbd主进程发送消息,smbd主进程可以以各业务子进程的进程号为主键记录各业务子进程分别对应的最新通信时间。在检测到当前处于文件共享启用状态的各业务子进程之后,获取各业务子进程分别对应的最新通信时间。如可以预先设置定时检测机制,按照预先设置的时间间隔定时获取各业务子进程分别对应的最新通信时间。

需要说明的是,获取最新通信时间的时间间隔可以根据实际情况进行设定和调整,本发明实施例对此不做限定。

在本发明的一种具体实施方式中,步骤s202可以包括以下步骤:

获取各业务子进程分别对应的发送unix数据报消息的最新通信时间。

业务子进程主动向smbd主进程发送unix数据报消息,smbd主进程获取各业务子进程分别对应的发送unix数据报消息的最新通信时间。从而通过检测接收unix数据报消息的时间间隔来检测对应业务子进程的心跳。

s203:计算当前时间分别与各最新通信时间的时间差。

在获取到各业务子进程分别对应的最新通信时间之后,计算当前时间分别与各最新通信时间的时间差,从而得到各业务子进程距离上次通信的时长。

s204:判断各业务子进程中是否存在时间差超出预设时长的异常子进程,若是,则执行步骤s205,若否,则不做处理。

在计算得到当前时间分别与各最新通信时间的时间差之后,判断各业务子进程中是否存在时间差超出预设时长的异常子进程,若是,则说明存在通信超时的异常子进程,执行步骤s205,若否,则不做处理。

s205:采集异常子进程对应的堆栈信息,以利用堆栈信息进行问题定位。

当确定各业务子进程中存在时间差超出预设时长的异常子进程时,采集异常子进程对应的堆栈信息,从而方便利用堆栈信息进行问题定位,可提升问题定位效率。除此之外,还可以预先建立异常进程列表,当确定出异常子进程之后,将异常子进程加入到异常进程列表中,采集异常进程列表中异常子进程对应的堆栈信息。

s206:杀掉异常子进程,并断开异常子进程对应的原tcp连接。

在将异常子进程杀掉之后,将杀掉的异常子进程从异常进程列表中踢出。

s207:当检测到针对异常子进程新建立的tcp连接时,进行业务子进程生成操作,得到目标业务子进程。

s208:利用目标业务子进程对异常子进程对应的文件共享任务进行处理。

相应于上面的方法实施例,本发明还提供了一种文件共享装置,下文描述的文件共享装置与上文描述的文件共享方法可相互对应参照。

参见图3,图3为本发明实施例中一种文件共享装置的结构框图,该装置可以包括:

进程检测模块31,用于检测当前处于文件共享启用状态的各业务子进程;

判断模块32,用于判断各业务子进程中是否存在异常子进程;

进程及连接管理模块33,用于当确定各业务子进程中存在异常子进程时,杀掉异常子进程,并断开异常子进程对应的原tcp连接;

进程生成模块34,用于当检测到针对异常子进程新建立的tcp连接时,进行业务子进程生成操作,得到目标业务子进程;

文件共享模块35,用于利用目标业务子进程对异常子进程对应的文件共享任务进行处理。

本发明所提供的文件共享装置,检测当前处于文件共享启用状态的各业务子进程;判断各业务子进程中是否存在异常子进程;若是,则杀掉异常子进程,并断开异常子进程对应的原tcp连接;当检测到针对异常子进程新建立的tcp连接时,进行业务子进程生成操作,得到目标业务子进程;利用目标业务子进程对异常子进程对应的文件共享任务进行处理。通过当检测到存在异常子进程时,自动杀掉异常子进程,并控制异常子进程对应的原tcp连接断开。并在建立新的tcp连接时,自动生成业务子进程,用于接替异常子进程处理文件共享任务。相较于人工断开重连的故障解除方式,本发明整个异常进程处理过程均在底层自动进行,达到了对上层无感知的效果,保证了业务共享的连续性,节省人力,降低了运维成本。

在本发明的一种具体实施方式中,判断模块32包括:

通信时间获取子模块,用于获取各业务子进程分别对应的最新通信时间;

时间差计算子模块,用于计算当前时间分别与各最新通信时间的时间差;

判断子模块,用于判断各业务子进程中是否存在时间差超出预设时长的异常子进程。

在本发明的一种具体实施方式中,通信时间获取子模块具体为获取各业务子进程分别对应的发送unix数据报消息的最新通信时间的模块。

在本发明的一种具体实施方式中,该装置还可以包括:

问题定位模块,用于在确定各业务子进程中存在异常子进程之后,杀掉异常子进程之前,采集异常子进程对应的堆栈信息,以利用堆栈信息进行问题定位。

相应于上面的方法实施例,参见图4,图4为本发明所提供的文件共享设备的示意图,该设备可以包括:

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

处理器42,用于执行上述存储器41存储的计算机程序时可实现如下步骤:

检测当前处于文件共享启用状态的各业务子进程;判断各业务子进程中是否存在异常子进程;若是,则杀掉异常子进程,并断开异常子进程对应的原tcp连接;当检测到针对异常子进程新建立的tcp连接时,进行业务子进程生成操作,得到目标业务子进程;利用目标业务子进程对异常子进程对应的文件共享任务进行处理。

对于本发明提供的设备的介绍请参照上述方法实施例,本发明在此不做赘述。

相应于上面的方法实施例,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如下步骤:

检测当前处于文件共享启用状态的各业务子进程;判断各业务子进程中是否存在异常子进程;若是,则杀掉异常子进程,并断开异常子进程对应的原tcp连接;当检测到针对异常子进程新建立的tcp连接时,进行业务子进程生成操作,得到目标业务子进程;利用目标业务子进程对异常子进程对应的文件共享任务进行处理。

该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

对于本发明提供的计算机可读存储介质的介绍请参照上述方法实施例,本发明在此不做赘述。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置、设备及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

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