CN111324573B - 一种网络文件系统状态管理方法与系统 - Google Patents

一种网络文件系统状态管理方法与系统 Download PDF

Info

Publication number
CN111324573B
CN111324573B CN202010095048.0A CN202010095048A CN111324573B CN 111324573 B CN111324573 B CN 111324573B CN 202010095048 A CN202010095048 A CN 202010095048A CN 111324573 B CN111324573 B CN 111324573B
Authority
CN
China
Prior art keywords
state
client
lock
file
nfs
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.)
Active
Application number
CN202010095048.0A
Other languages
English (en)
Other versions
CN111324573A (zh
Inventor
臧林劼
何营
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202010095048.0A priority Critical patent/CN111324573B/zh
Publication of CN111324573A publication Critical patent/CN111324573A/zh
Application granted granted Critical
Publication of CN111324573B publication Critical patent/CN111324573B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供了一种网络文件系统状态管理方法与系统,本发明改进了服务端标识客户端clientid方法使租约时间可控,提高lock、open、close操作请求时的状态维护,并规定了NFS‑Ganesha V4版本协议状态的三个级别,分别为客户端标识id、文件锁持有者以及由open操作生成的状态ID,另外对lock、open、close操作进行序列化,从而在非等幂操作中对重发请求操作进行保护,通过上述操作实现了NFS‑Ganesha V4版本异步阻塞文件锁机制,不再需要NLM、NSM协议作为依赖,有效解决了并发业务中的文件冲突,提高了网络文件系统服务在高并发存储业务中的一致性。

Description

一种网络文件系统状态管理方法与系统
技术领域
本发明涉及Linux文件系统状态管理技术领域,特别是一种网络文件系统状态管理方法与系统。
背景技术
NFS早期版本属于无状态网络文件系统,NFS v2、v3属于无状态协议,NFS服务端不对NFS客户端进行状态维护,即服务器不维护客户端的状态,只监听并响应客户端的请求。在NFS无状态协议中,当服务器故障后,客户端需要以轮询的方式重复发送失败请求,直至收到服务器返回的响应信息。在Li nux操作系统中的一些文件并发操作中必然会使用到文件锁,如果客户端持有文件锁,当服务器故障重启后,由于NFS v3无状态,客户端在执行锁操作请求就会发射管锁冲突。因此,NFS v3通过附加协议NLM网络文件锁协议来实现文件锁功能,NLM网络文件锁管理协议与NSM网络文件锁监控协议不属于NFS协议的一部分,需要单独的守护进程和端口,协议之间协作运行会出现诸多问题。
发明内容
本发明的目的是提供一种网络文件系统状态管理方法与系统,旨在解决现有技术中NFS v3实现文件锁功能时容易出现并发业务文件冲突的问题,实现提高网络文件系统服务在高并发存储业务中的一致性。
为达到上述技术目的,本发明提供了一种网络文件系统状态管理方法,所述方法包括以下步骤:
构造客户端标识ID作为网络文件系统状态的最高级别,记录客户端的验证信息;
为客户端上每个不同的进程设置一个锁持有者,作为网络文件系统状态的第二级别,利用锁持有者关联该进程中文件的open、close以及lock操作;
由open操作生成的状态ID关联锁持有者和打开的文件,作为网络文件系统状态的第三级别。
优选地,所述客户端标识ID通过一个8字节的64位数字表示,且当客户端在服务器的租用期内,没有状态请求操作时,客户端标识ID将失效。
优选地,所述锁持有者用于对文件操作进行锁定、文件状态操作序列化以及打开文件的权限。
优选地,所述文件状态操作序列化具体为:对lock、open以及close操作进行序列化,在非等幂操作中,序列号与每个锁持有者关联,在每个锁持有者的基础上缓存最近的非等幂操作请求,如果接收到重复的序列号,查找缓存中的序列号,若查找到,则标识为同一个操作。
优选地,所述网络文件系统为NFS-Ganesha V4。
本发明还提供了一种网络文件系统状态管理系统,所述系统包括:
状态最高级别构建模块,用于构造客户端标识ID作为网络文件系统状态的最高级别,记录客户端的验证信息;
状态第二级别构建模块,用于为客户端上每个不同的进程设置一个锁持有者,作为网络文件系统状态的第二级别,利用锁持有者关联该进程中文件的open、close以及lock操作;
状态第三级别构建模块,用于由open操作生成的状态ID关联锁持有者和打开的文件,作为网络文件系统状态的第三级别。
优选地,所述客户端标识ID通过一个8字节的64位数字表示,且当客户端在服务器的租用期内,没有状态请求操作时,客户端标识ID将失效。
优选地,所述网络文件系统为NFS-Ganesha V4。
本发明还提供了一种网络文件系统状态管理设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现所述的网络文件系统状态管理方法。
本发明还提供了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现所述的网络文件系统状态管理方法。
发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:
与现有技术相比,本发明改进了服务端标识客户端clientid方法使租约时间可控,提高lock、open、close操作请求时的状态维护,并规定了NFS-Ganesha V4版本协议状态的三个级别,分别为客户端标识id、文件锁持有者以及由open操作生成的状态ID,另外对lock、open、close操作进行序列化,从而在非等幂操作中对重发请求操作进行保护,通过上述操作实现了NFS-Ganesha V4版本异步阻塞文件锁机制,不再需要NLM、NSM协议作为依赖,有效解决了并发业务中的文件冲突,提高了网络文件系统服务在高并发存储业务中的一致性。
附图说明
图1为本发明实施例中所提供的一种网络文件系统状态管理方法逻辑示意图;
图2为本发明实施例中所提供的一种网络文件系统状态管理系统框图。
具体实施方式
为了能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
下面结合附图对本发明实施例所提供的一种网络文件系统状态管理方法与系统进行详细说明。
如图1所示,本发明公开了一种网络文件系统状态管理方法,所述方法包括以下操作:
构造客户端标识ID作为NFS-Ganesha V4状态的最高级别,记录客户端的验证信息;
为客户端上每个不同的进程设置一个锁持有者,作为NFS-Ganesha V4状态的第二级别,利用锁持有者关联该进程中文件的open、close以及lock操作;
由open操作生成的状态ID关联锁持有者和打开的文件,作为NFS-Ganesha V4状态的第三级别。
第一级别为客户端标识ID,对于NFS-Ganesha V4版本状态首先通过setclientid操作进行实例化,构造客户端标识,同时记录客户端的验证信息,所述验证信息记录客户端的重启情况,每个客户端的clientid用一个8字节的64位数字表示。每个客户端的clientid具有租用期功能,即如果客户端在服务器的租用期内,没有状态请求操作,例如lock、open以及close操作请求时,clientid将失效。该租用期由NFS-Ganesha服务端设置,设置为60s。
clientid是NFS-Ganesha V4状态的最高级别,每个NFS-Ganesha客户端持有一个clientid,用于唯一标识该客户端。
第二级别为NFS-Ganesha V4文件锁持有者,客户端上每个不同的进程中有一个锁持有者,使用OPEN操作打开文件时,客户端将指定一个锁持有者,如果该锁持有者不存在,则服务器将实例化一个。所述锁持有者在NFS-Ganesha V4中具有三个单独含义:显式的代表对文件操作的锁定,作用是防止多用户同时访问同一个文件造成冲突;保证对文件状态操作的序列化,lock、open以及close操作是在每个锁持有者的基础上进行序列化,在客户端可以发送第N+1个操作给已知的锁持有者之前,必须等待第N次操作的完成;代表打开文件的权限,每个锁持有者最多可以打开一个文件。其中,对lock、open以及close操作进行序列化,目的是在非等幂操作中,对重发请求进行保护。序列号与每个锁持有者关联,在本发明实施例中设置NFS-Ganesha V4服务器在每个锁持有者的基础上缓存最近的非等幂操作请求,目的是如果接收到重复的序列号,查找缓存中的序列号,若查找到,则标识为同一个操作,防止造成不一致的现象。所述非等幂操作是指在NFS网络文件系统中,如果一个RPC远程过程调用被NFS服务器执行多次,将返回不同的结果。
第三级别的状态是NFS-Ganesha V4的stateid,stateid由open实例化,并由close释放,每个stateid标识一个打开的文件,每个stateid与特定的锁持有者和特定的文件相关联。此外,最多可以将一个stateid关联到一个特定的锁持有者和文件,NFS-Ganesha V4锁持有者不能多次打开同一个文件,并且文件锁定、读取和写入以及文件截断操作需要有stateid。
每一个inode定义一个锁持有者,当第一个进程打开inode时,open将发送到服务器,而当最后一个进程关闭inode时,将发送匹配的close操作。
所述open操作可同时创建和打开文件,同时保证原子性,open文件通过名称来打开,即open的参数是所要打开文件的名称以及包含目录的文件句柄。
所述lock操作可实现字节范围的文件锁定,与NFS v3相比,该lock操作是NFS-Ganesha V4协议的一部分,NFS-Ganesha V4中的锁定与NLM中的锁定之间的一个重要区别是NFS-Ganesha V4不依赖回调机制。当NLM客户端等待阻塞锁且该锁变为可用时,NFS服务器会将RPC发送到客户端上的回调服务,以通知客户端已授权该锁。在本发明实施例中通过轮询的方式,反复请求该锁,直到该锁可用为止。
本发明实施例改进了服务端标识客户端clientid方法使租约时间可控,提高lock、open、close操作请求时的状态维护,并规定了NFS-Ganesha V4版本协议状态的三个级别,分别为客户端标识id、文件锁持有者以及由open操作生成的状态ID,另外对lock、open、close操作进行序列化,从而在非等幂操作中对重发请求操作进行保护,通过上述操作实现了NFS-Ganesha V4版本异步阻塞文件锁机制,不再需要NLM、NSM协议作为依赖,有效解决了并发业务中的文件冲突,提高了网络文件系统服务在高并发存储业务中的一致性。
如图2所示,本发明实施例还公开了一种网络文件系统状态管理系统,所述系统包括:
状态最高级别构建模块,用于构造客户端标识ID作为NFS-Ganesha V4状态的最高级别,记录客户端的验证信息;
状态第二级别构建模块,用于为客户端上每个不同的进程设置一个锁持有者,作为NFS-Ganesha V4状态的第二级别,利用锁持有者关联该进程中文件的open、close以及lock操作;
状态第三级别构建模块,用于由open操作生成的状态ID关联锁持有者和打开的文件,作为NFS-Ganesha V4状态的第三级别。
第一级别为客户端标识ID,对于NFS-Ganesha V4版本状态首先通过setclientid操作进行实例化,构造客户端标识,同时记录客户端的验证信息,所述验证信息记录客户端的重启情况,每个客户端的clientid用一个8字节的64位数字表示。每个客户端的clientid具有租用期功能,即如果客户端在服务器的租用期内,没有状态请求操作,例如lock、open以及close操作请求时,clientid将失效。该租用期由NFS-Ganesha服务端设置,设置为60s。
clientid是NFS-Ganesha V4状态的最高级别,每个NFS-Ganesha客户端持有一个clientid,用于唯一标识该客户端。
第二级别为NFS-Ganesha V4文件锁持有者,客户端上每个不同的进程中有一个锁持有者,使用OPEN操作打开文件时,客户端将指定一个锁持有者,如果该锁持有者不存在,则服务器将实例化一个。所述锁持有者在NFS-Ganesha V4中具有三个单独含义:显式的代表对文件操作的锁定,作用是防止多用户同时访问同一个文件造成冲突;保证对文件状态操作的序列化,lock、open以及close操作是在每个锁持有者的基础上进行序列化,在客户端可以发送第N+1个操作给已知的锁持有者之前,必须等待第N次操作的完成;代表打开文件的权限,每个锁持有者最多可以打开一个文件。其中,对lock、open以及close操作进行序列化,目的是在非等幂操作中,对重发请求进行保护。序列号与每个锁持有者关联,在本发明实施例中设置NFS-Ganesha V4服务器在每个锁持有者的基础上缓存最近的非等幂操作请求,目的是如果接收到重复的序列号,查找缓存中的序列号,若查找到,则标识为同一个操作,防止造成不一致的现象。所述非等幂操作是指在NFS网络文件系统中,如果一个RPC远程过程调用被NFS服务器执行多次,将返回不同的结果。
第三级别的状态是NFS-Ganesha V4的stateid,stateid由open实例化,并由close释放,每个stateid标识一个打开的文件,每个stateid与特定的锁持有者和特定的文件相关联。此外,最多可以将一个stateid关联到一个特定的锁持有者和文件,NFS-Ganesha V4锁持有者不能多次打开同一个文件,并且文件锁定、读取和写入以及文件截断操作需要有stateid。
每一个inode定义一个锁持有者,当第一个进程打开inode时,open将发送到服务器,而当最后一个进程关闭inode时,将发送匹配的close操作。
所述open操作可同时创建和打开文件,同时保证原子性,open文件通过名称来打开,即open的参数是所要打开文件的名称以及包含目录的文件句柄。
所述lock操作可实现字节范围的文件锁定,与NFS v3相比,该lock操作是NFS-Ganesha V4协议的一部分,NFS-Ganesha V4中的锁定与NLM中的锁定之间的一个重要区别是NFS-Ganesha V4不依赖回调机制。当NLM客户端等待阻塞锁且该锁变为可用时,NFS服务器会将RPC发送到客户端上的回调服务,以通知客户端已授权该锁。在本发明实施例中通过轮询的方式,反复请求该锁,直到该锁可用为止。
本发明实施例还公开了一种网络文件系统状态管理设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现所述的网络文件系统状态管理方法。
本发明实施例还公开了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现所述的网络文件系统状态管理方法。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种网络文件系统状态管理方法,其特征在于,所述方法包括以下步骤:
构造客户端标识ID作为NFS-Ganesha V4状态的最高级别,记录客户端的验证信息;
为客户端上每个不同的进程设置一个锁持有者,作为NFS-Ganesha V4状态的第二级别,利用锁持有者关联该进程中文件的open、close以及lock操作;
所述锁持有者用于对文件操作进行锁定、文件状态操作序列化以及打开文件的权限;所述文件状态操作序列化具体为:对lock、open以及close操作进行序列化,在非等幂操作中,序列号与每个锁持有者关联,在每个锁持有者的基础上缓存最近的非等幂操作请求,如果接收到重复的序列号,查找缓存中的序列号,若查找到,则标识为同一个操作;
由open操作生成的状态ID关联锁持有者和打开的文件,作为NFS-Ganesha V4状态的第三级别。
2.根据权利要求1所述的一种网络文件系统状态管理方法,其特征在于,所述客户端标识ID通过一个8字节的64位数字表示,且当客户端在服务器的租用期内,没有状态请求操作时,客户端标识ID将失效。
3.一种网络文件系统状态管理系统,其特征在于,所述系统包括:
状态最高级别构建模块,用于构造客户端标识ID作为NFS-Ganesha V4状态的最高级别,记录客户端的验证信息;
状态第二级别构建模块,用于为客户端上每个不同的进程设置一个锁持有者,作为NFS-Ganesha V4状态的第二级别,利用锁持有者关联该进程中文件的open、close以及lock操作;
所述锁持有者用于对文件操作进行锁定、文件状态操作序列化以及打开文件的权限;所述文件状态操作序列化具体为:对lock、open以及close操作进行序列化,在非等幂操作中,序列号与每个锁持有者关联,在每个锁持有者的基础上缓存最近的非等幂操作请求,如果接收到重复的序列号,查找缓存中的序列号,若查找到,则标识为同一个操作;
状态第三级别构建模块,用于由open操作生成的状态ID关联锁持有者和打开的文件,作为NFS-Ganesha V4状态的第三级别。
4.根据权利要求3所述的一种网络文件系统状态管理系统,其特征在于,所述客户端标识ID通过一个8字节的64位数字表示,且当客户端在服务器的租用期内,没有状态请求操作时,客户端标识ID将失效。
5.一种网络文件系统状态管理设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现根据权利要求1或2所述的网络文件系统状态管理方法。
6.一种可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现根据权利要求1或2所述的网络文件系统状态管理方法。
CN202010095048.0A 2020-02-13 2020-02-13 一种网络文件系统状态管理方法与系统 Active CN111324573B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010095048.0A CN111324573B (zh) 2020-02-13 2020-02-13 一种网络文件系统状态管理方法与系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010095048.0A CN111324573B (zh) 2020-02-13 2020-02-13 一种网络文件系统状态管理方法与系统

Publications (2)

Publication Number Publication Date
CN111324573A CN111324573A (zh) 2020-06-23
CN111324573B true CN111324573B (zh) 2022-08-12

Family

ID=71163469

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010095048.0A Active CN111324573B (zh) 2020-02-13 2020-02-13 一种网络文件系统状态管理方法与系统

Country Status (1)

Country Link
CN (1) CN111324573B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113934699A (zh) * 2020-07-14 2022-01-14 北京字节跳动网络技术有限公司 文件状态确定方法、装置、存储介质及设备
CN112000287B (zh) * 2020-08-14 2022-06-17 北京浪潮数据技术有限公司 一种io请求处理装置、方法、设备及可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101080714A (zh) * 2004-12-16 2007-11-28 甲骨文国际公司 用于由数据库服务器执行文件操作的基础结构
CN109684285A (zh) * 2018-12-13 2019-04-26 郑州云海信息技术有限公司 一种用户态网络文件系统文件锁方法、装置及设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101080714A (zh) * 2004-12-16 2007-11-28 甲骨文国际公司 用于由数据库服务器执行文件操作的基础结构
CN109684285A (zh) * 2018-12-13 2019-04-26 郑州云海信息技术有限公司 一种用户态网络文件系统文件锁方法、装置及设备

Also Published As

Publication number Publication date
CN111324573A (zh) 2020-06-23

Similar Documents

Publication Publication Date Title
US6205466B1 (en) Infrastructure for an open digital services marketplace
US7809675B2 (en) Sharing state information among a plurality of file operation servers
US10042916B2 (en) System and method for storing data in clusters located remotely from each other
JP7038710B2 (ja) データ管理方法及びシステム
CA2587529C (en) Infrastructure for performing file operations by a database server
JP4759570B2 (ja) データベース管理システムにおけるファイル操作のためのロックを提供するための手法
US9171019B1 (en) Distributed lock service with external lock information database
US7548918B2 (en) Techniques for maintaining consistency for different requestors of files in a database management system
US9569472B2 (en) System and method for providing a second level connection cache for use with a database environment
US8190564B2 (en) Temporary session data storage
US8578449B2 (en) Replicating selected secrets to local domain controllers
CN111324573B (zh) 一种网络文件系统状态管理方法与系统
KR20070061120A (ko) 객체 기반 스토리지 시스템에서 사용자 파일 관리자 내의시간 기반 캐쉬 일관성 유지 시스템 및 방법
US8224837B2 (en) Method and mechanism for supporting virtual content in performing file operations at a RDBMS
EP3848814A1 (en) Data storage method, metadata server, and client
US20090158047A1 (en) High performance secure caching in the mid-tier
Pfaff Rfc 7047: The open vswitch database management protocol
CN111177073A (zh) 一种网络文件系统状态管理方法与装置
US20060136509A1 (en) Techniques for transaction semantics for a database server performing file operations
US7698278B2 (en) Method and system for caching directory services
US20240020290A1 (en) System B-Tree Change Notification System Using Lock Value Blocks
CN117472930A (zh) 一种高并发数据的存储方法、装置和设备
JP2000305832A (ja) 複数ホストから構成されるクラスタシステムにおけるメモリの共有装置と方法
JPH08328935A (ja) ネットワークファイルシステムの入出力処理方式

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