一种访问服务恢复方法、装置、设备及可读存储介质与流程

文档序号:17005815发布日期:2019-03-02 02:01阅读:137来源:国知局
一种访问服务恢复方法、装置、设备及可读存储介质与流程

本发明涉及存储技术领域,特别是涉及一种访问服务恢复方法、装置、设备及可读存储介质。



背景技术:

目前,在对存储系统的存储软件进行升级的过程中,软件升级完毕后需要进行软件重启。软件重启,会导致原来的tcp连接关闭,使得客户机需要重新建立tcp连接后,才能够继续提供服务。

同时,存储软件重启会导致存储软件中的各种状态发生变更,进而使得与客户机建立新的tcp连接的时间比较长,特别是对于部分不支持重连的协议,需要重新进行手动操作才能继续服务。软件重启致使服务中断,影响用户体验。

综上所述,如何有效地解决软件重启致使服务中断等问题,是目前本领域技术人员急需解决的技术问题。



技术实现要素:

本发明的目的是提供一种访问服务恢复方法、装置、设备及可读存储介质,在软件重启后,快速恢复tcp连接,继续给用户提供服务,使业务不受软件重启影响,提升用户体验。

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

一种访问服务恢复方法,包括:

对存储软件进行监测;

在监测到所述存储软件重新启动后,读取存储在非易失性内存中的目标访问服务对应的tcp连接信息,以及所述tcp连接信息对应的文件状态信息;

利用所述文件状态信息确定待调整文件,并对所述待调整文件进行状态调整,以使所述存储软件利用所述tcp连接信息,恢复所述目标访问服务。

优选地,对存储软件进行监测,包括:

获取所述存储软件的当前运行状态,并判断所述存储软件是否重新启动;

获取所述tcp连接信息和所述文件状态信息,并将所述tcp连接信息和所述文件状态信息存入所述非易失性内存中。

优选地,在获取所述tcp连接信息和所述文件状态信息之前,还包括:

利用dpdk建立所述目标访问服务的tcp连接;其中,所述tcp连接为所述存储软件与客户端之间的连接。

优选地,所述获取所述tcp连接信息和所述文件状态信息,包括:

对所述tcp连接上传输的tcp数据进行监测,并记录tcp连接信息;其中,tcp连接信息包括tcp通信序号和通信端口;

监测所述存储软件的文件打开操作,获得文件状态信息。

优选地,将所述tcp连接信息和所述文件状态信息存入所述非易失性内存中之后,还包括:

接收所述tcp连接的关闭请求,更新所述非易失性内存中的所述tcp连接信息和所述文件状态信息。

优选地,利用所述文件状态信息确定待调整文件,并对所述待调整文件进行状态调整,包括:

获取所述存储软件中与所述文件状态信息对应的文件的当前状态,并确定出与所述文件状态信息不匹配的待调整文件;

对所述待调整文件进行状态调整,以使当前文件状态与所述文件状态信息匹配。

优选地,所述存储软件重新启动,包括:

对所述存储软件进行升级,并重新启动;

或,服务器掉电之后,所述存储软件重新启动。

一种访问服务恢复装置,包括:

软件监测模块,用于对存储软件进行监测;

信息读取模块,用于在监测到所述存储软件重新启动后,读取存储在非易失性内存中的目标访问服务对应的tcp连接信息,以及所述tcp连接信息对应的文件状态信息;

访问服务恢复模块,用于利用所述文件状态信息确定待调整文件,并对所述待调整文件进行状态调整,以使所述存储软件利用所述tcp连接信息,恢复所述目标访问服务。

一种访问服务恢复设备,包括:

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

处理器,用于执行所述计算机程序时实现上述访问服务恢复方法的步骤。

一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述访问服务恢复方法的步骤。

应用本发明实施例所提供的方法,对存储软件进行监测;在监测到存储软件重新启动后,读取存储在非易失性内存中的目标访问服务对应的tcp连接信息,以及tcp连接信息对应的文件状态信息;利用文件状态信息确定待调整文件,并对待调整文件进行状态调整,以使存储软件利用tcp连接信息,恢复目标访问服务。

对存储软件进行监测,当检测到存储软件重新启动后,此时存储软件中的各种状态已发生变更。即,存储软件在重新启动前存储在内核中的用于对外提供目标访问服务的tcp连接的连接信息以及文件状态信息已丢失。而无tcp连接信息以及对应的文件状态信息,存储软件无法再提供之前建立的tcp连接对外提供访问服务。由于,非易失性内存具有电流关掉后,所存储的数据不会消失的特点。因此,即使存储软件重新启动后,非易失性内存中存储数据依然存在。此时,可读取存储在非易失性内存中的目标访问访问对应的tcp连接信息,以及该tcp连接信息对应的文件状态信息。利用文件状态信息对存储软件内的文件的状态进行调整,可将存储软件的文件状态调整至存储软件重新启动前的状态。基于tcp连接信息,存储软件即可继续使用之前建立的tcp连接,并利用状态调整后的文件,恢复目标访问服务,即可快速响应用户访问。也就是说,在软件重启前,将目标访问服务对应的tcp连接信息和文件状态信息存储在非易失内存中,在软件重启后,便可快速恢复存储软件重新启动前的访问服务,使用户连接不中断,并继续给用户提供服务,提升用户体验。

相应地,本发明实施例还提供了与上述访问服务恢复方法相对应的访问服务恢复装置、设备和可读存储介质,具有上述技术效果,在此不再赘述。

附图说明

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

图1为本发明实施例中一种访问服务恢复方法的实施流程图;

图2为本发明实施例中一种访问服务恢复系统框架示意图;

图3为本发明实施例中一种访问服务恢复装置的结构示意图;

图4为本发明实施例中一种访问服务恢复设备的结构示意图;

图5为本发明实施例中一种访问服务恢复设备的具体结构示意图。

具体实施方式

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

实施例一:

请参考图1,图1为本发明实施例中一种访问服务恢复方法的流程图,该方法包括以下步骤:

s101、对存储软件进行监测。

可通过访问存储软件的方式或记录存储软件的输入输出数据对存储软件的进行监测。监测内容包括:存储软件的运行状态,以及存储软件对外提供的服务。其中,运行状态包括存储软件的打开状态和关闭状态。例如,若无法访问存储软件,则确定该存储软件处于关闭状态,若能够访问存储软件,则确定该存储软件处于打开状态。当然,还可使用其他常见的软件监测方法,对存储软件的运行状态进行监测。

在本发明实施例中,在存储软件进行重新启动之前,可以将目标访问服务对应的tcp连接信息,以及tcp连接信息对应的文件状态信息存入非易失性内存中。即,对存储软件进行监测,可具体包括:

步骤一、获取存储软件的当前运行状态,并判断存储软件是否重新启动;

步骤二、获取tcp连接信息和文件状态信息,并将tcp连接信息和文件状态信息存入非易失性内存中。

为便于描述,下面将步骤一和步骤二结合起来进行说明。

其中,步骤一和步骤二之间在执行顺序上并不先后需求,也就是说,可先执行步骤一,也可先执行步骤二,也可同时执行。优选地,可设置一个获取频率,不断地执行步骤一,以便及时检测出存储软件的重新启动。也就是说,步骤一的执行可重复多次执行,确定存储软件重新启动,便可不再获取存储软件的当前运行状态。对于步骤二,仅需执行后获得目标访问服务对应的tcp连接状态和文件状态信息即可。其中,非易失性内存即为非易失性存储器(non-volatilememory,nvm)是指当电流关掉后,所存储的数据不会消失者的电脑存储器,非易失性存储器依存储器内的数据是否能在使用电脑时随时改写为标准,可分为二大类产品,即rom和flashmemory。在本发明实施例中rom和flashmemory均可用于存储tcp连接信息和文件状态信息。

当然,为了使得非易失性内存中的tcp连接信息和文件状态信息,为最新状态,也可不断的执行步骤二,直到软件重新启动,无法获得目标访问服务的tcp连接信息和文件状态信息为止。当然,在非易失性内存中,还可存储目标访问服务多个不同时段对应的tcp连接信息和文件中状态信息,以便在恢复目标访问服务时,可选择恢复符合当前需求的目标访问服务的状态。例如,若在存储软件重新启动前,出现恶意攻击或无操作,导致目标访问服务异常,此时,为了使得恢复后的目标访问服务处于正常状态,可存储目标访问服务多个不同时段对应的tcp连接信息和文件状态信息。

其中,为了便于获取tcp连接信息,本发明实施例所描述的tcp连接均可为利用dpdk(inteldataplanedevelopmentkit,数据平面开发套件)建立的tcp连接。即,在获取tcp连接信息和文件状态信息之前,利用dpdk建立目标访问服务的tcp连接;其中,tcp连接为存储软件与客户端之间的连接。dpdk的应用程序是运行在用户空间上,且利用自身提供的数据平面库来收发数据包,绕过了linux内核协议栈对数据包处理过程。linux内核将dpdk应用程序看作是一个普通的用户态进程,包括它的编译、连接和加载方式均和普通程序没有区别。通过dpdk建立tcp连接,便可绕过linux内核,直接在用户空间便可获得tcp连接信息。

执行上述步骤二时,即执行获取tcp连接信息和文件状态信息,具体为对tcp连接上传输的tcp数据进行监测,并记录tcp连接信息;其中,tcp连接信息包括tcp通信序号和通信端口;监测存储软件的文件打开操作,获得文件状态信息。即,通过对tcp连接上传输的tcp数据进行监测,便可获得tcp通信序号和通信端口,对于如何从tcp数据上获得tcp通信序号和通信端口,可参见tcp通信协议,在此不再赘述。监测存储软件的文件打开操作,便可获得文件状态信息。

优选地,为了预留足够的存储空间存储需要恢复的访问服务的tcp连接信息和文件状态信息,在将tcp连接信息和文件状态信息存入非易失性内存中之后,还可以接收tcp连接的关闭请求,更新非易失性内存中的tcp连接信息和文件状态信息。此处描述的更新具体可以为将该tcp连接的多个tcp连接信息和文件状态信息进行整理,仅保留关闭tcp连接前的tcp连接状态和文件状态信息,以便在tcp关闭请求为误操作时,恢复该tcp连接对应的访问服务。

s102、在监测到存储软件重新启动后,读取存储在非易失性内存中的目标访问服务对应的tcp连接信息,以及tcp连接信息对应的文件状态信息。

在监测到存储软件重新启动之后,可从非易失性内存中读取目标访问服务对应的tcp连接信息,以及tcp连接信息对应的文件状态信息。其中,tcp连接信息即利用tcp连接传输数据所必须具备的信息,如tcp通信序号和通信端口等信息。目标访问服务可为存储软件向任意一个客户端提供的访问服务,访问服务具体可以为常见的数据存储服务、数据查询、修改等服务。文件状态信息包括为提供目标访问服务所需打开的文件信息。

需要说明的是,在本发明实施例中对存储软件重新启动的原因并不做限定,即可对存储软件进行升级,并重新启动;或,服务器掉电之后,存储软件重新启动。

读取到tcp连接信息和文件状态信息之后,可执行步骤s103的操作。

s103、利用文件状态信息确定待调整文件,并对待调整文件进行状态调整,以使存储软件利用tcp连接信息,恢复目标访问服务。

读取到文件状态信息之后,便可利用文件状态信息确定出待调整文件,然后对待调整文件进行状态调整。文件状态信息包括提供目标访问服务需打开的文件。对待调整文件进行状态调整即将待调整文件打开。当然,在实际应用中,还可能涉及到将某文件关闭,以提供目标访问服务。确定待调整文件以及对待调整文件进行调整,具体为获取存储软件中与文件状态信息对应的文件的当前状态,并确定出与文件状态信息不匹配的待调整文件;对待调整文件进行状态调整,以使当前文件状态与文件状态信息匹配。

优选地,若存储软件重新启动之后,初始状态的文件均未关闭状态,则可直接将文件状态信息中对应属于打开状态的文件确定为待调整文件,即无需获取文件的当前状态。

完成文件状态调整之后,当前文件状态即可与文件状态信息匹配,即将文件的状态恢复至存储软件重新启动前的状态,或恢复至与提供目标访问服务对应的状态。此时,存储软件便可利用tcp连接信息,恢复目标访问服务。具体的,即可通过重启前建立的tcp连接于客户端进行数据交互。如此,便可在软件重新启动之后,快速恢复目标访问服务。

应用本发明实施例所提供的方法,对存储软件进行监测;在监测到存储软件重新启动后,读取存储在非易失性内存中的目标访问服务对应的tcp连接信息,以及tcp连接信息对应的文件状态信息;利用文件状态信息确定待调整文件,并对待调整文件进行状态调整,以使存储软件利用tcp连接信息,恢复目标访问服务。

对存储软件进行监测,当检测到存储软件重新启动后,此时存储软件中的各种状态已发生变更。即,存储软件在重新启动前存储在内核中的用于对外提供目标访问服务的tcp连接的连接信息以及文件状态信息已丢失。而无tcp连接信息以及对应的文件状态信息,存储软件无法再提供之前建立的tcp连接对外提供访问服务。由于,非易失性内存具有电流关掉后,所存储的数据不会消失的特点。因此,即使存储软件重新启动后,非易失性内存中存储数据依然存在。此时,可读取存储在非易失性内存中的目标访问访问对应的tcp连接信息,以及该tcp连接信息对应的文件状态信息。利用文件状态信息对存储软件内的文件的状态进行调整,可将存储软件的文件状态调整至存储软件重新启动前的状态。基于tcp连接信息,存储软件即可继续使用之前建立的tcp连接,并利用状态调整后的文件,恢复目标访问服务,即可快速响应用户访问。也就是说,在软件重启前,将目标访问服务对应的tcp连接信息和文件状态信息存储在非易失内存中,在软件重启后,便可快速恢复存储软件重新启动前的访问服务,使用户连接不中断,并继续给用户提供服务,提升用户体验。

实施例二:

为便于本领域技术人员更好地理解本发明实施例所提供的技术方案,下面将以存储软件升级之后,对访问服务进行恢复的具体应用场景为例,对本发明实施例所提供的技术方案进行详细说明。

请参考图2,图2为本发明实施例中一种访问服务恢复系统框架示意图。在具体实现时,可设置自动恢复组件、tcp连接管理、升级控制组件、文件实时信息管理组件四个组件,这四个组件主要有如下功能:

自动恢复组件:在系统升级完毕后启动并激活缓存数组。

tcp连接管理组件:将tcp连接信息实时写入到非易失内存中,特别是tcp数据收发过程中的实时连接序号。其目的是为了当下一次启动时能够直接恢复tcp连接,并且保证数据收发还是按照上次的状态继续进行。

升级控制组件:对系统升级进行流程控制,保证升级的状态一致性。

文件实时信息管理组件:将文件打开及操作状态实时写入到非易失内存中,使软件升级完毕后下次启动的时候能够实时的恢复文件打开状态,保证文件状态一致,系统响应及时。

在软件升级之前,当有tcp连接接入、文件操作任务、tcp收发等操作时,把实时状态更新到非易失内存中,并且保证数据更新的实时性和一致性。

当软件升级完毕,软件重新启动后,从非易失内存中重新把状态恢复,特别是恢复tcp连接状态及序号、文件打开状态。对tcp及文件分别恢复后就可以继续给客户机提供服务,保证客户业务不中断。

具体的,可在存储软件中使用dpdk实现tcp连接,并且把网络通信的连接信息保存到非易失内存中,在文件操作过程中,把文件的状态保存到非易失内存中;在存储软件升级完毕后,需要从非易失内存中恢复tcp连接状态及文件状态。

其中,采用非易失内存保存tcp连接状态及文件状态,实现过程包括:

步骤一:接收到tcp连接,保存连接信息到非易失内存;

步骤二:接收到tcp数据,保存tcp通信序号到非易失内存;

步骤三:接收文件打开操作,保存文件信息到非易失内存,并继续接收tcp数据;

步骤四:接收到tcp关闭请求,更新非易失内存中的tcp状态信息。

软件升级成功后,从非易失内存中恢复tcp连接状态及文件状态,实现过程包括:

步骤一:从非易失内存中读取tcp信息,并重建tcp连接信息;

步骤二:在非易失内存中读取文件打开信息,重建文件打开信息。

完成tcp连接和文件状态恢复之后,便可等待客户机业务接入,并提供访问服务。

实施例三:

相应于上面的方法实施例,本发明实施例还提供了一种访问服务恢复装置,下文描述的访问服务恢复装置与上文描述的访问服务恢复方法可相互对应参照。

参见图3所示,该装置包括以下模块:

软件监测模块101,用于对存储软件进行监测;

信息读取模块102,用于在监测到存储软件重新启动后,读取存储在非易失性内存中的目标访问服务对应的tcp连接信息,以及tcp连接信息对应的文件状态信息;

访问服务恢复模块103,用于利用文件状态信息确定待调整文件,并对待调整文件进行状态调整,以使存储软件利用tcp连接信息,恢复目标访问服务。

应用本发明实施例所提供的装置,对存储软件进行监测;在监测到存储软件重新启动后,读取存储在非易失性内存中的目标访问服务对应的tcp连接信息,以及tcp连接信息对应的文件状态信息;利用文件状态信息确定待调整文件,并对待调整文件进行状态调整,以使存储软件利用tcp连接信息,恢复目标访问服务。

对存储软件进行监测,当检测到存储软件重新启动后,此时存储软件中的各种状态已发生变更。即,存储软件在重新启动前存储在内核中的用于对外提供目标访问服务的tcp连接的连接信息以及文件状态信息已丢失。而无tcp连接信息以及对应的文件状态信息,存储软件无法再提供之前建立的tcp连接对外提供访问服务。由于,非易失性内存具有电流关掉后,所存储的数据不会消失的特点。因此,即使存储软件重新启动后,非易失性内存中存储数据依然存在。此时,可读取存储在非易失性内存中的目标访问访问对应的tcp连接信息,以及该tcp连接信息对应的文件状态信息。利用文件状态信息对存储软件内的文件的状态进行调整,可将存储软件的文件状态调整至存储软件重新启动前的状态。基于tcp连接信息,存储软件即可继续使用之前建立的tcp连接,并利用状态调整后的文件,恢复目标访问服务,即可快速响应用户访问。也就是说,在软件重启前,将目标访问服务对应的tcp连接信息和文件状态信息存储在非易失内存中,在软件重启后,便可快速恢复存储软件重新启动前的访问服务,使用户连接不中断,并继续给用户提供服务,提升用户体验。

在本发明的一种具体实施方式中,软件监测模块101,包括:

重启判断单元,用于获取存储软件的当前运行状态,并判断存储软件是否重新启动;

信息存储单元,用于获取tcp连接信息和文件状态信息,并将tcp连接信息和文件状态信息存入非易失性内存中。

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

tcp连接建立模块,用于在获取tcp连接信息和文件状态信息之前,利用dpdk建立目标访问服务的tcp连接;其中,tcp连接为存储软件与客户端之间的连接。

在本发明的一种具体实施方式中,信息存储单元,具体用于对tcp连接上传输的tcp数据进行监测,并记录tcp连接信息;其中,tcp连接信息包括tcp通信序号和通信端口;监测存储软件的文件打开操作,获得文件状态信息。

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

信息更新模块,用于在将tcp连接信息和文件状态信息存入非易失性内存中之后,接收tcp连接的关闭请求,更新非易失性内存中的tcp连接信息和文件状态信息。

在本发明的一种具体实施方式中,访问服务恢复模块103,具体用于获取存储软件中与文件状态信息对应的文件的当前状态,并确定出与文件状态信息不匹配的待调整文件;对待调整文件进行状态调整,以使当前文件状态与文件状态信息匹配。

在本发明的一种具体实施方式中,存储软件重新启动,包括对存储软件进行升级,并重新启动;或,服务器掉电之后,存储软件重新启动。

实施例四:

相应于上面的方法实施例,本发明实施例还提供了一种访问服务恢复设备,下文描述的一种访问服务恢复设备与上文描述的一种访问服务恢复方法可相互对应参照。

参见图4所示,该访问服务恢复设备包括:

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

处理器d2,用于执行计算机程序时实现上述方法实施例的访问服务恢复方法的步骤。

具体的,请参考图5,图5为本实施例提供的一种访问服务恢复设备的具体结构示意图,该访问服务恢复设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在访问服务恢复设备301上执行存储介质330中的一系列指令操作。

访问服务恢复设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。例如,windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等。

上文所描述的访问服务恢复方法中的步骤可以由访问服务恢复设备的结构实现。

实施例五:

相应于上面的方法实施例,本发明实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种访问服务恢复方法可相互对应参照。

一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的访问服务恢复方法的步骤。

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

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

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