CN111756578A - 一种用户态网络文件系统的故障恢复方法和装置 - Google Patents
一种用户态网络文件系统的故障恢复方法和装置 Download PDFInfo
- Publication number
- CN111756578A CN111756578A CN202010589006.2A CN202010589006A CN111756578A CN 111756578 A CN111756578 A CN 111756578A CN 202010589006 A CN202010589006 A CN 202010589006A CN 111756578 A CN111756578 A CN 111756578A
- Authority
- CN
- China
- Prior art keywords
- client
- identifier
- server
- service end
- client identifier
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000011084 recovery Methods 0.000 title claims description 27
- 238000010276 construction Methods 0.000 claims abstract description 39
- 230000004044 response Effects 0.000 claims abstract description 35
- 230000008569 process Effects 0.000 description 9
- 238000004590 computer program Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0663—Performing the actions predefined by failover planning, e.g. switching to standby network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种用户态网络文件系统的故障恢复方法和装置,该方法包括:将对客户端提供文件操作服务使用的虚拟网络地址从第一服务端漂移到正常工作的第二服务端;由第二服务端接收文件操作请求,并基于客户标识已经老化而拒绝;接收客户标识构建请求,并将客户标识构建请求记录到数据结构中、将客户标识记录到数据结构的哈希表的未认证模块中;接收客户标识认证请求,并响应于确定客户标识尚未老化而将客户标识从哈希表的未认证模块转移到认证模块;接收文件操作请求,并响应于确定客户标识存在于认证模块中而允许文件操作请求。本发明能够快速实现故障切换,提高数据一致性并保证状态信息同步。
Description
技术领域
本发明涉及网络文件系统领域,更具体地,特别是指一种用户态网络文件系统的故障恢复方法和装置。
背景技术
NFS,内核态网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。内核态是指CPU可以访问内存所有数据,包括外围设备,例如硬盘,网卡等,CPU也可以将自己从一个程序切换到另一个程序。
相对的,用户态是指只能受限的访问内存,且不允许访问外围设备,占用CPU的能力被剥夺,CPU资源可以被其他程序获取。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。NFS-Ganesha是用户态网络文件系统,属于开源项目,在系统服务故障场景下,相比于内核态NFS具有较好管理性和可维护性,并且用户态NFS-Ganesha易于实施和维护。
NFS-Ganesha用户态协议标准提供了对NFSV3、V4协议的支持,其中,V3为无状态协议,V4协议为有状态协议,无状态协议是指服务端不维护客户端文件对象操作信息,在故障场景中,只能通过客户端重发请求进行重新建立连接,此外,NFSV3协议具有弱一致性机制,NFS读写业务过程中,请求处理前后都会对文件属性信息进行更新;对于文件锁操作,为了保证数据一致性,防止多客户端并发操作造成的文件冲突,必须使用有状态协议进行管理。而在网络文件系统应用中,在故障场景服务端故障宕机重启、网络中断等,服务端与客户端难以使用可靠的故障恢复机制保证数据的一致性,更无法确保客户端与服务端状态信息同步。
针对现有技术中故障场景下故障恢复不可靠、数据一致性低、状态信息同步缺失的问题,目前尚无有效的解决方案。
发明内容
有鉴于此,本发明实施例的目的在于提出一种用户态网络文件系统的故障恢复方法和装置,能够快速实现故障切换,提高数据一致性并保证状态信息同步。
基于上述目的,本发明实施例的第一方面提供了一种用户态网络文件系统的故障恢复方法,包括执行以下步骤:
响应于网络文件系统中在线的第一服务端发生故障,而将对客户端提供文件操作服务使用的虚拟网络地址从第一服务端漂移到正常工作的第二服务端;
由第二服务端接收客户端向虚拟网络地址发送的携带有客户端的客户标识的文件操作请求,并基于客户标识已经老化而拒绝文件操作请求;
由第二服务端接收客户端向虚拟网络地址发送的携带有状态更新过的客户标识的客户标识构建请求,并将客户标识构建请求记录到数据结构中、将客户标识记录到数据结构的哈希表的未认证模块中;
由第二服务端接收客户端向虚拟网络地址发送的携带有状态更新过的客户标识的客户标识认证请求,并响应于确定客户标识尚未老化而将客户标识从哈希表的未认证模块转移到认证模块;
由第二服务端接收客户端向虚拟网络地址发送的携带有客户标识的文件操作请求,并响应于确定客户标识存在于认证模块中而允许文件操作请求。
在一些实施方式中,将客户标识构建请求记录到数据结构中包括:在数据结构查找是否存在客户标识构建请求,并响应于客户标识构建请求不存在而将客户标识构建请求记录到数据结构中;
将客户标识记录到数据结构的哈希表的未认证模块中还包括:为客户标识创建故障标识,并将客户标识和故障标识一起反馈给客户端。
在一些实施方式中,确定客户标识已经老化包括:根据客户标识确定客户端的通用协调时间;比较客户端的通用协调时间和第二服务端本地的通用协调时间,并响应于二者不同而判定客户标识已经老化。
在一些实施方式中,确定客户标识尚未老化包括:根据客户标识确定客户端的通用协调时间;比较客户端的通用协调时间和第二服务端本地的通用协调时间,并响应于二者相同而判定客户标识尚未老化。
在一些实施方式中,方法还包括执行以下步骤:
在虚拟网络地址漂移到第二服务端后重启第一服务端,并在第一服务端重启结束正常工作后将虚拟网络地址从第二服务端漂移回第一服务端,并且使客户端的文件操作请求具有与第一服务端相匹配的队列标识。
本发明实施例的第二方面提供了一种用户态网络文件系统的故障恢复装置,包括:
处理器;和
存储器,存储有处理器可运行的程序代码,程序代码在被运行时执行以下步骤:
响应于网络文件系统中在线的第一服务端发生故障,而将对客户端提供文件操作服务使用的虚拟网络地址从第一服务端漂移到正常工作的第二服务端;
由第二服务端接收客户端向虚拟网络地址发送的携带有客户端的客户标识的文件操作请求,并基于客户标识已经老化而拒绝文件操作请求;由第二服务端接收客户端向虚拟网络地址发送的携带有状态更新过的客户标识的客户标识构建请求,并将客户标识构建请求记录到数据结构中、将客户标识记录到数据结构的哈希表的未认证模块中;
由第二服务端接收客户端向虚拟网络地址发送的携带有状态更新过的客户标识的客户标识认证请求,并响应于确定客户标识尚未老化而将客户标识从哈希表的未认证模块转移到认证模块;
由第二服务端接收客户端向虚拟网络地址发送的携带有客户标识的文件操作请求,并响应于确定客户标识存在于认证模块中而允许文件操作请求。
在一些实施方式中,将客户标识构建请求记录到数据结构中包括:在数据结构查找是否存在客户标识构建请求,并响应于客户标识构建请求不存在而将客户标识构建请求记录到数据结构中;
将客户标识记录到数据结构的哈希表的未认证模块中还包括:为客户标识创建故障标识,并将客户标识和故障标识一起反馈给客户端。
在一些实施方式中,确定客户标识已经老化包括:根据客户标识确定客户端的通用协调时间;比较客户端的通用协调时间和第二服务端本地的通用协调时间,并响应于二者不同而判定客户标识已经老化。
在一些实施方式中,确定客户标识尚未老化包括:根据客户标识确定客户端的通用协调时间;比较客户端的通用协调时间和第二服务端本地的通用协调时间,并响应于二者相同而判定客户标识尚未老化。
在一些实施方式中,方法还包括执行以下步骤:
在虚拟网络地址漂移到第二服务端后重启第一服务端,并在第一服务端重启结束正常工作后将虚拟网络地址从第二服务端漂移回第一服务端,并且使客户端的文件操作请求具有与第一服务端相匹配的队列标识。
本发明具有以下有益技术效果:本发明实施例提供的用户态网络文件系统的故障恢复方法和装置,通过响应于网络文件系统中在线的第一服务端发生故障,而将对客户端提供文件操作服务使用的虚拟网络地址从第一服务端漂移到正常工作的第二服务端;由第二服务端接收客户端向虚拟网络地址发送的携带有客户端的客户标识的文件操作请求,并基于客户标识已经老化而拒绝文件操作请求;由第二服务端接收客户端向虚拟网络地址发送的携带有状态更新过的客户标识的客户标识构建请求,并将客户标识构建请求记录到数据结构中、将客户标识记录到数据结构的哈希表的未认证模块中;由第二服务端接收客户端向虚拟网络地址发送的携带有状态更新过的客户标识的客户标识认证请求,并响应于确定客户标识尚未老化而将客户标识从哈希表的未认证模块转移到认证模块;由第二服务端接收客户端向虚拟网络地址发送的携带有客户标识的文件操作请求,并响应于确定客户标识存在于认证模块中而允许文件操作请求的技术方案,能够快速实现故障切换,提高数据一致性并保证状态信息同步。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的用户态网络文件系统的故障恢复方法的流程示意图;
图2为本发明提供的用户态网络文件系统的故障恢复方法的详细流程图;
图3为本发明提供的用户态网络文件系统的故障恢复方法的客户端标识创建流程图;
图4为本发明提供的用户态网络文件系统的故障恢复方法的客户端标识认证流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
基于上述目的,本发明实施例的第一个方面,提出了一种能够快速实现故障切换,提高数据一致性并保证状态信息同步的故障恢复方法的一个实施例。图1示出的是本发明提供的用户态网络文件系统的故障恢复方法的流程示意图。
所述的用户态网络文件系统的故障恢复方法,如图1所示,包括执行以下步骤:
步骤S101:响应于网络文件系统中在线的第一服务端发生故障,而将对客户端提供文件操作服务使用的虚拟网络地址从第一服务端漂移到正常工作的第二服务端;
步骤S103:由第二服务端接收客户端向虚拟网络地址发送的携带有客户端的客户标识的文件操作请求,并基于客户标识已经老化而拒绝文件操作请求;
步骤S105:由第二服务端接收客户端向虚拟网络地址发送的携带有状态更新过的客户标识的客户标识构建请求,并将客户标识构建请求记录到数据结构中、将客户标识记录到数据结构的哈希表的未认证模块中;
步骤S107:由第二服务端接收客户端向虚拟网络地址发送的携带有状态更新过的客户标识的客户标识认证请求,并响应于确定客户标识尚未老化而将客户标识从哈希表的未认证模块转移到认证模块;
步骤S109:由第二服务端接收客户端向虚拟网络地址发送的携带有客户标识的文件操作请求,并响应于确定客户标识存在于认证模块中而允许文件操作请求。
本发明提出了一种网络文件系统故障恢复系统和方法,用以实现用户态网络文件系统NFS-Ganesha V4版本协议,在故障场景中,本发明主要提出客户端维护文件状态信息机制,当服务端故障时,客户端对服务端故障进行主动恢复机制和方法;本发明主要提出服务端故障切换方法和保证数据一致性的方法;本发明主要提出对文件操作隐式更新状态的序列化方法,在故障服务端网卡时,更新序列ID保证客户端与服务端状态信息同步的方法。本发明保证了分布式文件系统的数据一致性、支持多客户端并发访问和系统的稳定性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
在一些实施方式中,将客户标识构建请求记录到数据结构中包括:在数据结构查找是否存在客户标识构建请求,并响应于客户标识构建请求不存在而将客户标识构建请求记录到数据结构中;
将客户标识记录到数据结构的哈希表的未认证模块中还包括:为客户标识创建故障标识,并将客户标识和故障标识一起反馈给客户端。
在一些实施方式中,确定客户标识已经老化包括:根据客户标识确定客户端的通用协调时间;比较客户端的通用协调时间和第二服务端本地的通用协调时间,并响应于二者不同而判定客户标识已经老化。
在一些实施方式中,确定客户标识尚未老化包括:根据客户标识确定客户端的通用协调时间;比较客户端的通用协调时间和第二服务端本地的通用协调时间,并响应于二者相同而判定客户标识尚未老化。
在一些实施方式中,方法还包括执行以下步骤:
在虚拟网络地址漂移到第二服务端后重启第一服务端,并在第一服务端重启结束正常工作后将虚拟网络地址从第二服务端漂移回第一服务端,并且使客户端的文件操作请求具有与第一服务端相匹配的队列标识。
根据本发明实施例公开的方法还可以被实现为由CPU执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被CPU执行时,执行本发明实施例公开的方法中限定的上述功能。上述方法步骤以及系统单元也可以利用控制器以及用于存储使得控制器实现上述步骤或单元功能的计算机程序的计算机可读存储介质实现。
下面根据图2所示的具体实施例进一步阐述本发明的具体实施方式。
(1)分布式高可用集群文件系统每节点部署NFS-Ganesha服务端,本发明不限于此,根据NFS服务A,NFS服务B作为故障场景恢复系统方法进行说明。NFS-Ganesha服务端提供NFS v4协议支持,NFS客户端挂载V4版本协议,首先进行NFS服务端与客户端的认证,进行服务端与客户端的链接。所述高可用是指集群设置虚拟IP对外提供网络文件系统服务,当集群某个节点发生故障时,虚拟IP会进行漂移,业务漂移到新的节点。NFS-Ganesha服务端是指NFS V4协议版本,服务端与客户端认证申请clientid,客户端申请认证后,服务端为客户端分配唯一标识客户端的id号,客户端的每一个文件操作请求,服务端都会对客户端ID进行标识,目的是为了在故障场景时能有标识出客户端信息和对故障进行恢复。
(2)NFS-Ganesha服务端在建立客户端标识认证时,客户端挂载NFS-Ganesha V4协议时,首先申请设置客户端身份操作,然后,对客户端申请身份进行认证操作。客户端申请和认证后,本发明使用特定的64位整数对该客户端进行唯一标识clientid。本发明NFS客户端挂载NFS v4服务端后,客户端已轮询的方式进行状态更新,规定,不涉及文件状态标识操作时40s轮询一次,涉及问题状态标识的操作相当于隐式更新,本发明规定隐式更新的操作有lock,unlock,open,close,read,write操作请求。当服务端故障重启,客户端携带clientid进行请求业务时,该请求已被客户端设置为clientid_stale状态,服务器将拒绝该请求。当发生这种故障场景时,客户端需要根据clientid状态进行更新,然后进行恢复因服务端重启导致的一些文件请求。
(3)NFS v4服务端与客户端之间建立唯一标识clientid,具体的,NFS客户端发起客户端标识请求时,服务端会将本次请求进行记录到数据结构中,该数据结构中保存了客户端的全部信息,不同的NFS客户端记录的所有数据结构保存在哈希表中,便于记录和查找相同请求的客户端。
(4)进一步,使用confirmed_clientid模块和unconfirmed_clientid模块来标识认证的clientid和未被认证的clientid。NFS客户端首次发起客户端标识请求时,新建的clientid先添加到unconfirmed_clientid模块中,此时clientid未被认证,标记为不可用。后续需要认证才能标记为可用clientid。
clientid的构建过程如图3所示,
A.首先客户端发起构建clientid请求;
B.在哈希表中查找是否存在该记录,若存在,则找到该记录,若不存在,则将构建的record记录插入到哈希表中。
C.服务端创建clientid,故障标识。服务端从record记录中获取unconfirmed_clientid模块,unconfirmed_clientid模块保存的信息为待认证的客户端信息。
D.若unconfirmed_clientid模块不为空,则清理删除;
E.重新构造用户信息unconfirmed_clientid模块并插入到哈希表中,等待客户端请求进行clientid认证。
F.服务端将创建的clientid、故障标识保存在res_SETCLIENTID4结构体中,返回给客户端。
(5)由于客户端申请client在unconfirmed_clientid模块中,需要进行认证,客户端发起confirm clientid认证,服务端认证客户端信息的流程:
clientid的构建过程如图4所示,
A.首先服务端使用客户端发送过来的clientid,由clientid获取到客户端的通用协调时间epoch;
B.判断epoch与服务端的epoch是否相等,检测clientid是否有效,若不相同,返回clientid老化返回给客户端;
C.若相同,则通过clientid从哈希表unconfirmed_clientid中获取客户端信息;
D.将clientid从unconfirmed_clientid模块移到confirmed_clientid模块。
(6)当服务端发生异常故障宕机重启后,例如NFS服务端A故障,虚拟IP迁移到服务端B,由于客户端已40s进行轮询更新客户端与服务端的状态信息,重启NFS服务端A后,客户端在收到老化的clientid请求后,会对服务端B进行重新建立clientid,此时客户端会标记renew对客户端clientid进行检查,并标记为check_lease,此标记会重新对服务端进行申请认证clientid,使服务端与客户端重新建立连接。
(7)NFSv4是一种有状态的协议,对于open、close操作以及文件锁处理,采用seqid保证客户端操作的序列化。在down网卡场景中网卡故障,集群高可用虚拟IP漂移,NFS-Ganesha服务漂移,由于客户端操作是序列化增长,待网卡恢复后,虚拟IP飘回原NFS-Ganesha服务;将导致seqid与原NFS-Ganesha服务所处理的seqid不一致;本发明提供当虚拟IP漂移时触发重启NFS-Ganesha服务,保证服务端与客户端NFS服务的正常业务恢复。
从上述实施例可以看出,本发明实施例提供的用户态网络文件系统的故障恢复方法,通过响应于网络文件系统中在线的第一服务端发生故障,而将对客户端提供文件操作服务使用的虚拟网络地址从第一服务端漂移到正常工作的第二服务端;由第二服务端接收客户端向虚拟网络地址发送的携带有客户端的客户标识的文件操作请求,并基于客户标识已经老化而拒绝文件操作请求;由第二服务端接收客户端向虚拟网络地址发送的携带有状态更新过的客户标识的客户标识构建请求,并将客户标识构建请求记录到数据结构中、将客户标识记录到数据结构的哈希表的未认证模块中;由第二服务端接收客户端向虚拟网络地址发送的携带有状态更新过的客户标识的客户标识认证请求,并响应于确定客户标识尚未老化而将客户标识从哈希表的未认证模块转移到认证模块;由第二服务端接收客户端向虚拟网络地址发送的携带有客户标识的文件操作请求,并响应于确定客户标识存在于认证模块中而允许文件操作请求的技术方案,能够快速实现故障切换,提高数据一致性并保证状态信息同步。
需要特别指出的是,上述用户态网络文件系统的故障恢复方法的各个实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于用户态网络文件系统的故障恢复方法也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。
基于上述目的,本发明实施例的第二个方面,提出了一种能够快速实现故障切换,提高数据一致性并保证状态信息同步的故障恢复装置的一个实施例。用户态网络文件系统的故障恢复装置包括:
处理器;和
存储器,存储有处理器可运行的程序代码,程序代码在被运行时执行以下步骤:
响应于网络文件系统中在线的第一服务端发生故障,而将对客户端提供文件操作服务使用的虚拟网络地址从第一服务端漂移到正常工作的第二服务端;
由第二服务端接收客户端向虚拟网络地址发送的携带有客户端的客户标识的文件操作请求,并基于客户标识已经老化而拒绝文件操作请求;
由第二服务端接收客户端向虚拟网络地址发送的携带有状态更新过的客户标识的客户标识构建请求,并将客户标识构建请求记录到数据结构中、将客户标识记录到数据结构的哈希表的未认证模块中;
由第二服务端接收客户端向虚拟网络地址发送的携带有状态更新过的客户标识的客户标识认证请求,并响应于确定客户标识尚未老化而将客户标识从哈希表的未认证模块转移到认证模块;
由第二服务端接收客户端向虚拟网络地址发送的携带有客户标识的文件操作请求,并响应于确定客户标识存在于认证模块中而允许文件操作请求。
在一些实施方式中,将客户标识构建请求记录到数据结构中包括:在数据结构查找是否存在客户标识构建请求,并响应于客户标识构建请求不存在而将客户标识构建请求记录到数据结构中;
将客户标识记录到数据结构的哈希表的未认证模块中还包括:为客户标识创建故障标识,并将客户标识和故障标识一起反馈给客户端。
在一些实施方式中,确定客户标识已经老化包括:根据客户标识确定客户端的通用协调时间;比较客户端的通用协调时间和第二服务端本地的通用协调时间,并响应于二者不同而判定客户标识已经老化。
在一些实施方式中,确定客户标识尚未老化包括:根据客户标识确定客户端的通用协调时间;比较客户端的通用协调时间和第二服务端本地的通用协调时间,并响应于二者相同而判定客户标识尚未老化。
在一些实施方式中,方法还包括执行以下步骤:
在虚拟网络地址漂移到第二服务端后重启第一服务端,并在第一服务端重启结束正常工作后将虚拟网络地址从第二服务端漂移回第一服务端,并且使客户端的文件操作请求具有与第一服务端相匹配的队列标识。
从上述实施例可以看出,本发明实施例提供的用户态网络文件系统的故障恢复装置,通过响应于网络文件系统中在线的第一服务端发生故障,而将对客户端提供文件操作服务使用的虚拟网络地址从第一服务端漂移到正常工作的第二服务端;由第二服务端接收客户端向虚拟网络地址发送的携带有客户端的客户标识的文件操作请求,并基于客户标识已经老化而拒绝文件操作请求;由第二服务端接收客户端向虚拟网络地址发送的携带有状态更新过的客户标识的客户标识构建请求,并将客户标识构建请求记录到数据结构中、将客户标识记录到数据结构的哈希表的未认证模块中;由第二服务端接收客户端向虚拟网络地址发送的携带有状态更新过的客户标识的客户标识认证请求,并响应于确定客户标识尚未老化而将客户标识从哈希表的未认证模块转移到认证模块;由第二服务端接收客户端向虚拟网络地址发送的携带有客户标识的文件操作请求,并响应于确定客户标识存在于认证模块中而允许文件操作请求的技术方案,能够快速实现故障切换,提高数据一致性并保证状态信息同步。
需要特别指出的是,上述用户态网络文件系统的故障恢复装置的实施例采用了所述用户态网络文件系统的故障恢复方法的实施例来具体说明各模块的工作过程,本领域技术人员能够很容易想到,将这些模块应用到所述用户态网络文件系统的故障恢复方法的其他实施例中。当然,由于所述用户态网络文件系统的故障恢复方法实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于所述用户态网络文件系统的故障恢复装置也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上所述的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (10)
1.一种用户态网络文件系统的故障恢复方法,其特征在于,包括执行以下步骤:
响应于网络文件系统中在线的第一服务端发生故障,而将对客户端提供文件操作服务使用的虚拟网络地址从所述第一服务端漂移到正常工作的第二服务端;
由所述第二服务端接收所述客户端向所述虚拟网络地址发送的携带有所述客户端的客户标识的文件操作请求,并基于所述客户标识已经老化而拒绝所述文件操作请求;
由所述第二服务端接收所述客户端向所述虚拟网络地址发送的携带有状态更新过的所述客户标识的客户标识构建请求,并将所述客户标识构建请求记录到数据结构中、将所述客户标识记录到所述数据结构的哈希表的未认证模块中;
由所述第二服务端接收所述客户端向所述虚拟网络地址发送的携带有状态更新过的所述客户标识的客户标识认证请求,并响应于确定所述客户标识尚未老化而将所述客户标识从所述哈希表的未认证模块转移到认证模块;
由所述第二服务端接收所述客户端向所述虚拟网络地址发送的携带有所述客户标识的文件操作请求,并响应于确定所述客户标识存在于所述认证模块中而允许所述文件操作请求。
2.根据权利要求1所述的方法,其特征在于,将所述客户标识构建请求记录到数据结构中包括:在所述数据结构查找是否存在所述客户标识构建请求,并响应于所述客户标识构建请求不存在而将所述客户标识构建请求记录到所述数据结构中;
将所述客户标识记录到所述数据结构的哈希表的未认证模块中还包括:为所述客户标识创建故障标识,并将所述客户标识和所述故障标识一起反馈给所述客户端。
3.根据权利要求1所述的方法,其特征在于,确定所述客户标识已经老化包括:根据所述客户标识确定所述客户端的通用协调时间;比较所述客户端的通用协调时间和所述第二服务端本地的通用协调时间,并响应于二者不同而判定所述客户标识已经老化。
4.根据权利要求1所述的方法,其特征在于,确定所述客户标识尚未老化包括:根据所述客户标识确定所述客户端的通用协调时间;比较所述客户端的通用协调时间和所述第二服务端本地的通用协调时间,并响应于二者相同而判定所述客户标识尚未老化。
5.根据权利要求1所述的方法,其特征在于,还包括执行以下步骤:
在所述虚拟网络地址漂移到所述第二服务端后重启所述第一服务端,并在所述第一服务端重启结束正常工作后将虚拟网络地址从所述第二服务端漂移回所述第一服务端,并且使所述客户端的所述文件操作请求具有与所述第一服务端相匹配的队列标识。
6.一种用户态网络文件系统的故障恢复装置,其特征在于,包括:
处理器;和
存储器,存储有处理器可运行的程序代码,所述程序代码在被运行时执行以下步骤:
响应于网络文件系统中在线的第一服务端发生故障,而将对客户端提供文件操作服务使用的虚拟网络地址从所述第一服务端漂移到正常工作的第二服务端;
由所述第二服务端接收所述客户端向所述虚拟网络地址发送的携带有所述客户端的客户标识的文件操作请求,并基于所述客户标识已经老化而拒绝所述文件操作请求;
由所述第二服务端接收所述客户端向所述虚拟网络地址发送的携带有状态更新过的所述客户标识的客户标识构建请求,并将所述客户标识构建请求记录到数据结构中、将所述客户标识记录到所述数据结构的哈希表的未认证模块中;
由所述第二服务端接收所述客户端向所述虚拟网络地址发送的携带有状态更新过的所述客户标识的客户标识认证请求,并响应于确定所述客户标识尚未老化而将所述客户标识从所述哈希表的未认证模块转移到认证模块;
由所述第二服务端接收所述客户端向所述虚拟网络地址发送的携带有所述客户标识的文件操作请求,并响应于确定所述客户标识存在于所述认证模块中而允许所述文件操作请求。
7.根据权利要求6所述的装置,其特征在于,将所述客户标识构建请求记录到数据结构中包括:在所述数据结构查找是否存在所述客户标识构建请求,并响应于所述客户标识构建请求不存在而将所述客户标识构建请求记录到所述数据结构中;
将所述客户标识记录到所述数据结构的哈希表的未认证模块中还包括:为所述客户标识创建故障标识,并将所述客户标识和所述故障标识一起反馈给所述客户端。
8.根据权利要求6所述的装置,其特征在于,确定所述客户标识已经老化包括:根据所述客户标识确定所述客户端的通用协调时间;比较所述客户端的通用协调时间和所述第二服务端本地的通用协调时间,并响应于二者不同而判定所述客户标识已经老化。
9.根据权利要求6所述的装置,其特征在于,确定所述客户标识尚未老化包括:根据所述客户标识确定所述客户端的通用协调时间;比较所述客户端的通用协调时间和所述第二服务端本地的通用协调时间,并响应于二者相同而判定所述客户标识尚未老化。
10.根据权利要求6所述的装置,其特征在于,还包括执行以下步骤:
在所述虚拟网络地址漂移到所述第二服务端后重启所述第一服务端,并在所述第一服务端重启结束正常工作后将虚拟网络地址从所述第二服务端漂移回所述第一服务端,并且使所述客户端的所述文件操作请求具有与所述第一服务端相匹配的队列标识。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010589006.2A CN111756578B (zh) | 2020-06-24 | 2020-06-24 | 一种用户态网络文件系统的故障恢复方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010589006.2A CN111756578B (zh) | 2020-06-24 | 2020-06-24 | 一种用户态网络文件系统的故障恢复方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111756578A true CN111756578A (zh) | 2020-10-09 |
CN111756578B CN111756578B (zh) | 2022-05-13 |
Family
ID=72677172
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010589006.2A Active CN111756578B (zh) | 2020-06-24 | 2020-06-24 | 一种用户态网络文件系统的故障恢复方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111756578B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102624542A (zh) * | 2010-12-10 | 2012-08-01 | 微软公司 | 在文件系统中提供透明故障切换 |
US20120259820A1 (en) * | 2011-04-08 | 2012-10-11 | Symantec Corporation | Method and system for restarting file lock services at an adoptive node during a network filesystem server migration or failover |
CN106603325A (zh) * | 2016-10-25 | 2017-04-26 | 上海斐讯数据通信技术有限公司 | 一种控制客户端挂载网络文件服务器的方法与系统 |
CN107819619A (zh) * | 2017-11-02 | 2018-03-20 | 郑州云海信息技术有限公司 | 一种实现网络文件系统的访问不间断的方法 |
CN111209260A (zh) * | 2019-12-30 | 2020-05-29 | 创新科技术有限公司 | 基于分布式存储的nfs集群及其提供nfs服务的方法 |
CN111314117A (zh) * | 2020-01-20 | 2020-06-19 | 苏州浪潮智能科技有限公司 | 一种故障转移的方法、装置、设备及可读存储介质 |
-
2020
- 2020-06-24 CN CN202010589006.2A patent/CN111756578B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102624542A (zh) * | 2010-12-10 | 2012-08-01 | 微软公司 | 在文件系统中提供透明故障切换 |
US20120259820A1 (en) * | 2011-04-08 | 2012-10-11 | Symantec Corporation | Method and system for restarting file lock services at an adoptive node during a network filesystem server migration or failover |
CN106603325A (zh) * | 2016-10-25 | 2017-04-26 | 上海斐讯数据通信技术有限公司 | 一种控制客户端挂载网络文件服务器的方法与系统 |
CN107819619A (zh) * | 2017-11-02 | 2018-03-20 | 郑州云海信息技术有限公司 | 一种实现网络文件系统的访问不间断的方法 |
CN111209260A (zh) * | 2019-12-30 | 2020-05-29 | 创新科技术有限公司 | 基于分布式存储的nfs集群及其提供nfs服务的方法 |
CN111314117A (zh) * | 2020-01-20 | 2020-06-19 | 苏州浪潮智能科技有限公司 | 一种故障转移的方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111756578B (zh) | 2022-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11704207B2 (en) | Methods and systems for a non-disruptive planned failover from a primary copy of data at a primary storage system to a mirror copy of the data at a cross-site secondary storage system without using an external mediator | |
US11994959B2 (en) | System and method for transaction recovery in a multitenant application server environment | |
US11288253B2 (en) | Allocation method and device for a distributed lock | |
US11966307B2 (en) | Re-aligning data replication configuration of primary and secondary data serving entities of a cross-site storage solution after a failover event | |
US7962915B2 (en) | System and method for preserving state for a cluster of data servers in the presence of load-balancing, failover, and fail-back events | |
US9900381B2 (en) | Methods, devices and systems for initiating, forming and joining memberships in distributed computing systems | |
US11841781B2 (en) | Methods and systems for a non-disruptive planned failover from a primary copy of data at a primary storage system to a mirror copy of the data at a cross-site secondary storage system | |
EP2706719B1 (en) | File synchronization method and device | |
US6775703B1 (en) | Lease based safety protocol for distributed system with multiple networks | |
US7664991B1 (en) | System and method for distributed file system I/O recovery | |
US11709743B2 (en) | Methods and systems for a non-disruptive automatic unplanned failover from a primary copy of data at a primary storage system to a mirror copy of the data at a cross-site secondary storage system | |
US20230110776A1 (en) | Resynchronization of individual volumes of a consistency group (cg) within a cross-site storage solution while maintaining synchronization of other volumes of the cg | |
US20130246845A1 (en) | Systems and methods for supporting transaction recovery based on a strict ordering of two-phase commit calls | |
JP2005011354A (ja) | 通知ボンドを使用してキャッシュオブジェクトを管理するためのシステムおよび方法 | |
WO2016177130A1 (zh) | 通讯节点的选择方法及装置 | |
US20180225183A1 (en) | SMB Service Fault Processing Method and Storage Device | |
CN111258771A (zh) | 一种基于Raft算法的分布式锁的实现方法及系统 | |
CN107547512B (zh) | 一种多级云平台中的用户认证方法和装置 | |
CN111756578B (zh) | 一种用户态网络文件系统的故障恢复方法和装置 | |
CN111130896A (zh) | 一种nfs故障的切换方法、系统及双控存储系统 | |
WO2019178839A1 (zh) | 为分布式应用创建一致性快照的方法、装置和分布式系统 | |
US20200106738A1 (en) | Group heartbeat information in a domain name system server text record | |
JP2005534099A (ja) | データベースの同期 | |
CN113448976B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
US20240338125A1 (en) | Methods and systems for negotiating a primary bias state in a distributed storage system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |