CN109684285B - 一种用户态网络文件系统文件锁方法、装置及设备 - Google Patents
一种用户态网络文件系统文件锁方法、装置及设备 Download PDFInfo
- Publication number
- CN109684285B CN109684285B CN201811528515.3A CN201811528515A CN109684285B CN 109684285 B CN109684285 B CN 109684285B CN 201811528515 A CN201811528515 A CN 201811528515A CN 109684285 B CN109684285 B CN 109684285B
- Authority
- CN
- China
- Prior art keywords
- file
- lock
- request
- file lock
- information
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000012795 verification Methods 0.000 claims abstract description 24
- 230000004044 response Effects 0.000 claims abstract description 4
- 238000004590 computer program Methods 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- 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/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种用户态网络文件系统文件锁方法、装置及设备,包括:获取客户端发送的文件锁请求信息,并根据所述文件锁请求信息获取相应的文件锁信息;获取所述客户端发送的根据所述文件锁请求信息生成的文件锁操作请求;利用所述文件锁信息对所述文件锁操作请求进行校验;若校验通过,则调用底层分布式文件系统对所述文件锁操作请求进行响应。由此可见,本申请将文件锁技术与分布式对象存储NFS‑Ganesha结合起来,以通过文件锁技术来保证并发访问过程中分布式文件系统的数据一致性,有效避免了文件冲突事件的发生,提升了系统的稳定性。
Description
技术领域
本申请涉及Linux网络文件系统领域,特别涉及一种用户态网络文件系统文件锁方法、装置及设备。
背景技术
NFS-Ganesha(Network File System User-space,即网络文件系统用户态版本)作为用户态网络文件系统,属于开源项目。其中,用户态是指只能受限的访问内存,且不允许访问外围设备,占用CPU的能力被剥夺,CPU资源可以被其他程序获取。而NFS则是内核态网络文件系统,作为FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。其中,内核态是指CPU可以访问内存所有数据,包括外围设备,例如硬盘,网卡等,CPU也可以将自己从一个程序切换到另一个程序,在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
在系统服务故障场景下,相比于内核态的NFS,用户态的NFS-Ganesha具有较好管理性和可维护性,并且易于实施和维护,这样使得分布式对象存储NFS-Ganesha具有很好的应用前景。
然而,随着企业数据越来越庞大,用户对数据的传输性能和稳定性要求越来越高,在当前的分布式对象存储NFS-Ganesha中,当多个客户端同时对服务器文件进行访问操作时,会造成数据不一致,从而引起文件冲突以及系统稳定性差等问题。如何避免分布式对象存储NFS-Ganesha中的分布式文件系统发生文件冲突、提升系统稳定性是目前有待进一步解决的问题。
发明内容
有鉴于此,本申请的目的在于提供一种用户态网络文件系统文件锁方法、装置及设备,能够保证并发访问过程中分布式文件系统的数据一致性,有效避免了文件冲突事件的发生,并提升了系统的稳定性。其具体方案如下:
第一方面,本申请公开了一种用户态网络文件系统文件锁方法,应用于NFS-Ganesha服务端,包括:
获取客户端发送的文件锁请求信息,并根据所述文件锁请求信息获取相应的文件锁信息;
获取所述客户端发送的根据所述文件锁请求信息生成的文件锁操作请求;
利用所述文件锁信息对所述文件锁操作请求进行校验;
若校验通过,则调用底层分布式文件系统对所述文件锁操作请求进行响应。
可选的,所述文件锁请求信息包括所述客户端的锁状态回复标志位信息、文件锁锁定的数据段在文件中的起始偏移量信息、文件锁锁定数据段的长度信息、标识当前文件锁操作的数据结构。
可选的,所述NFS-Ganesha服务端为基于NFS V4协议版本的服务端。
可选的,所述文件锁操作请求包括加锁请求、解锁请求或查询锁请求。
可选的,若所述文件锁操作请求为加锁请求,则还包括:
利用所述数据结构,判断当前的加锁请求是否为所述客户端的首次加锁请求;
其中,所述客户端的首次加锁请求和非首次加锁请求分别对应于不同的所述数据结构。
可选的,所述文件锁信息对应的文件锁包括读锁、写锁、阻塞读锁或阻塞写锁。
第二方面,本申请公开了一种用户态网络文件系统文件锁方法,应用于客户端,包括:
创建文件锁请求信息,并将所述文件锁请求信息发送至NFS-Ganesha服务端,以便所述NFS-Ganesha服务端根据所述文件锁请求信息获取相应的文件锁信息;
根据所述文件锁请求信息生成文件锁操作请求,并将所述文件锁操作请求发送至所述NFS-Ganesha服务端,以便所述NFS-Ganesha服务端利用所述文件锁信息对所述文件锁操作请求进行校验,并根据校验结果确定是否允许调用底层分布式文件系统对所述文件锁操作请求进行响应。
第三方面,本申请公开了一种用户态网络文件系统文件锁装置,应用于NFS-Ganesha服务端,包括:
信息获取模块,用于获取客户端发送的文件锁请求信息,并根据所述文件锁请求信息获取相应的文件锁信息;
请求获取模块,用于获取所述客户端发送的根据所述文件锁请求信息生成的文件锁操作请求;
请求校验模块,用于利用所述文件锁信息对所述文件锁操作请求进行校验;
请求响应模块,用于当校验通过,则调用底层分布式文件系统对所述文件锁操作请求进行响应。
第四方面,本申请公开了一种用户态网络文件系统文件锁装置,应用于客户端,包括:
信息创建模块,用于创建文件锁请求信息;
信息发送模块,用于将所述文件锁请求信息发送至NFS-Ganesha服务端,以便所述NFS-Ganesha服务端根据所述文件锁请求信息获取相应的文件锁信息;
请求生成模块,用于根据所述文件锁请求信息生成文件锁操作请求;
请求发送模块,用于将所述文件锁操作请求发送至所述NFS-Ganesha服务端,以便所述NFS-Ganesha服务端利用所述文件锁信息对所述文件锁操作请求进行校验,并根据校验结果确定是否允许调用底层分布式文件系统对所述文件锁操作请求进行响应。
第五方面,本申请公开了一种用户态网络文件系统文件锁设备,应用于NFS-Ganesha服务端,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的用户态网络文件系统文件锁方法。
可见,本申请中,NFS-Ganesha服务端先获取客户端发送的文件锁请求信息,并根据所述文件锁请求信息获取相应的文件锁信息,然后获取所述客户端发送的根据所述文件锁请求信息生成的文件锁操作请求,接着利用所述文件锁信息对所述文件锁操作请求进行校验,若校验通过,则调用底层分布式文件系统对所述文件锁操作请求进行响应,由此可见,本申请将文件锁技术与分布式对象存储NFS-Ganesha结合起来,以通过文件锁技术来保证并发访问过程中分布式文件系统的数据一致性,有效避免了文件冲突事件的发生,提升了系统的稳定性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的应用于NFS-Ganesha服务端的用户态网络文件系统文件锁方法流程图;
图2为本申请公开的应用于客户端的用户态网络文件系统文件锁方法流程图;
图3为本申请公开的应用于NFS-Ganesha服务端的用户态网络文件系统文件锁装置结构示意图;
图4为本申请公开的应用于客户端的用户态网络文件系统文件锁装置结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例公开了一种用户态网络文件系统文件锁方法,应用于NFS-Ganesha服务端,参见图1所示,所述方法包括:
步骤S11:获取客户端发送的文件锁请求信息,并根据所述文件锁请求信息获取相应的文件锁信息。
具体的,所述文件锁请求信息可以包括所述客户端的锁状态回复标志位信息、文件锁锁定的数据段在文件中的起始偏移量信息、文件锁锁定数据段的长度信息、标识当前文件锁操作的数据结构。
可以理解的是,当出现NFS-Ganesha服务端宕机事件,这种情况下客户端需要恢复以前申请的文件锁,此时上述锁状态回复标志位信息可以设置为1,其他情况下可以设置为0。
本实施例中,所述NFS-Ganesha服务端具体可以为基于NFS V4协议版本的服务端。另外,所述文件锁信息对应的文件锁具体可以包括读锁、写锁、阻塞读锁或阻塞写锁。
步骤S12:获取所述客户端发送的根据所述文件锁请求信息生成的文件锁操作请求。
本实施例中,所述文件锁操作请求可以包括加锁请求、解锁请求或查询锁请求。
其中,在上述文件操作请求为加锁请求的情况下,如果客户端是首次加锁,则在加锁前需要先执行OPEN操作,相应的,上述标识当前文件锁操作的数据结构中可以包括打开文件的顺序号、打开文件的状态标识号、锁处理的顺序号以及锁处理的文件持有者信息;如果客户端不是首次加锁,则上述标识当前文件锁操作的数据结构相应地可以包括已存在的锁处理的文件持有者信息和锁处理的状态标识号。
由此可见,本申请中客户端的首次加锁请求和非首次加锁请求分别对应于不同的所述数据结构。据此,本申请实施例中,若所述文件锁操作请求为加锁请求,则NFS-Ganesha服务端可以利用所述数据结构,判断当前的加锁请求是否为所述客户端的首次加锁请求。也即,本实施例中NFS-Ganesha服务端可以基于客户端的首次加锁请求和非首次加锁请求分别对应于不同的所述数据结构的特点,对接收到的所述文件请求信息中的标识当前文件锁操作的数据结构进行分析,以确定当前的加锁请求是否是首次加锁请求。
步骤S13:利用所述文件锁信息对所述文件锁操作请求进行校验。可以理解的是,客户端所发起的文件锁操作请求的类型不同,NFS-Ganesha服务端需要获取的用于校验文件锁操作请求的文件锁信息也有所不同,相应的校验流程也有所不同。
例如,如果客户端所发起的文件锁操作请求为首次加锁请求,则NFS-Ganesha服务端需要查找的文件锁信息可以包括打开文件的顺序号、文件锁的起始位置和结束位置以及客户端用户的创建文件锁的权限等,相应的,通过校验上述打开文件的顺序号是否有效、校验文件锁的起始位置和结束位置是否非法、检查客户端用户是否有权限创建文件锁等方式,实现对文件锁操作请求的校验流程。
如果客户端所发起的文件锁操作请求并非是首次加锁请求,则NFS-Ganesha服务端需要查找的文件锁信息可以包括已存在的锁处理的文件持有者信息和锁处理的状态标识号,如果查找到,则可以返回加锁成功提示信息,如果否则可以返回加锁失败提示信息。
另外,如果客户端所发起的文件锁操作请求为解锁请求,则可以检查文件锁的长度是否有效,取出文件对象结构,释放锁处理的文件持有者信息和锁处理的状态标识号,更新锁状态标识号。
其次,如果客户端所发起的文件锁操作请求为查询锁请求,则可以检查文件锁是否存在,取出文件对象结构,获取锁处理的文件持有者信息和锁处理的状态标识号,更新锁状态标识号。
步骤S14:若校验通过,则调用底层分布式文件系统对所述文件锁操作请求进行响应。
也即,当加锁请求的校验通过之后,可以调用底层分布式文件系统进行相应的加锁处理,并可以返回加锁状态信息;当解锁请求的校验通过之后,可以调用底层分布式文件系统进行相应的解锁处理,并可以返回解锁状态信息;当查询锁请求的校验通过之后,可以调用底层分布式文件系统进行相应的查询锁处理,并可以返回相应的查询锁状态信息。
可见,本申请实施例中,NFS-Ganesha服务端先获取客户端发送的文件锁请求信息,并根据所述文件锁请求信息获取相应的文件锁信息,然后获取所述客户端发送的根据所述文件锁请求信息生成的文件锁操作请求,接着利用所述文件锁信息对所述文件锁操作请求进行校验,若校验通过,则调用底层分布式文件系统对所述文件锁操作请求进行响应,由此可见,本申请实施例将文件锁技术与分布式对象存储NFS-Ganesha结合起来,以通过文件锁技术来保证并发访问过程中分布式文件系统的数据一致性,有效避免了文件冲突事件的发生,提升了系统的稳定性。
参见图2所示,本申请实施例还进一步公开了一种用户态网络文件系统文件锁方法,应用于客户端,包括:
步骤S21:创建文件锁请求信息。
步骤S22:将所述文件锁请求信息发送至NFS-Ganesha服务端,以便所述NFS-Ganesha服务端根据所述文件锁请求信息获取相应的文件锁信息。
具体的,所述文件锁请求信息可以包括所述客户端的锁状态回复标志位信息、文件锁锁定的数据段在文件中的起始偏移量信息、文件锁锁定数据段的长度信息、标识当前文件锁操作的数据结构。
可以理解的是,当出现NFS-Ganesha服务端宕机事件,这种情况下客户端需要恢复以前申请的文件锁,此时上述锁状态回复标志位信息可以设置为1,其他情况下可以设置为0。
本实施例中,所述NFS-Ganesha服务端具体可以为基于NFS V4协议版本的服务端。另外,所述文件锁信息对应的文件锁具体可以包括读锁、写锁、阻塞读锁或阻塞写锁。
步骤S23:根据所述文件锁请求信息生成文件锁操作请求。
本实施例中,所述文件锁操作请求可以包括加锁请求、解锁请求或查询锁请求。
其中,在上述文件操作请求为加锁请求的情况下,如果客户端是首次加锁,则在加锁前需要先执行OPEN操作,相应的,上述标识当前文件锁操作的数据结构中可以包括打开文件的顺序号、打开文件的状态标识号、锁处理的顺序号以及锁处理的文件持有者信息;如果客户端不是首次加锁,则上述标识当前文件锁操作的数据结构相应地可以包括已存在的锁处理的文件持有者信息和锁处理的状态标识号。
步骤S24:将所述文件锁操作请求发送至所述NFS-Ganesha服务端,以便所述NFS-Ganesha服务端利用所述文件锁信息对所述文件锁操作请求进行校验,并根据校验结果确定是否允许调用底层分布式文件系统对所述文件锁操作请求进行响应。
可以理解的是,客户端所发起的文件锁操作请求的类型不同,NFS-Ganesha服务端需要获取的用于校验文件锁操作请求的文件锁信息也有所不同,相应的校验流程也有所不同。
例如,如果客户端所发起的文件锁操作请求为首次加锁请求,则NFS-Ganesha服务端需要查找的文件锁信息可以包括打开文件的顺序号、文件锁的起始位置和结束位置以及客户端用户的创建文件锁的权限等,相应的,通过校验上述打开文件的顺序号是否有效、校验文件锁的起始位置和结束位置是否非法、检查客户端用户是否有权限创建文件锁等方式,实现对文件锁操作请求的校验流程。
如果客户端所发起的文件锁操作请求并非是首次加锁请求,则NFS-Ganesha服务端需要查找的文件锁信息可以包括已存在的锁处理的文件持有者信息和锁处理的状态标识号,如果查找到,则可以返回加锁成功提示信息,如果否则可以返回加锁失败提示信息。
另外,如果客户端所发起的文件锁操作请求为解锁请求,则NFS-Ganesha服务端可以检查文件锁的长度是否有效,取出文件对象结构,释放锁处理的文件持有者信息和锁处理的状态标识号,更新锁状态标识号。
其次,如果客户端所发起的文件锁操作请求为查询锁请求,则NFS-Ganesha服务端可以检查文件锁是否存在,取出文件对象结构,获取锁处理的文件持有者信息和锁处理的状态标识号,更新锁状态标识号。
可见,本申请实施例将文件锁技术与分布式对象存储NFS-Ganesha结合起来,以通过文件锁技术来保证并发访问过程中分布式文件系统的数据一致性,有效避免了文件冲突事件的发生,提升了系统的稳定性。
参见图3所示,本申请实施例还相应公开了一种用户态网络文件系统文件锁装置,应用于NFS-Ganesha服务端,包括:
信息获取模块11,用于获取客户端发送的文件锁请求信息,并根据所述文件锁请求信息获取相应的文件锁信息;
请求获取模块12,用于获取所述客户端发送的根据所述文件锁请求信息生成的文件锁操作请求;
请求校验模块13,用于利用所述文件锁信息对所述文件锁操作请求进行校验;
请求响应模块14,用于当校验通过,则调用底层分布式文件系统对所述文件锁操作请求进行响应。
具体的,所述文件锁请求信息可以包括所述客户端的锁状态回复标志位信息、文件锁锁定的数据段在文件中的起始偏移量信息、文件锁锁定数据段的长度信息、标识当前文件锁操作的数据结构。
可以理解的是,当出现NFS-Ganesha服务端宕机事件,这种情况下客户端需要恢复以前申请的文件锁,此时上述锁状态回复标志位信息可以设置为1,其他情况下可以设置为0。
本实施例中,所述NFS-Ganesha服务端具体可以为基于NFS V4协议版本的服务端。另外,所述文件锁信息对应的文件锁具体可以包括读锁、写锁、阻塞读锁或阻塞写锁。
本实施例中,所述文件锁操作请求可以包括加锁请求、解锁请求或查询锁请求。
其中,在上述文件操作请求为加锁请求的情况下,如果客户端是首次加锁,则在加锁前需要先执行OPEN操作,相应的,上述标识当前文件锁操作的数据结构中可以包括打开文件的顺序号、打开文件的状态标识号、锁处理的顺序号以及锁处理的文件持有者信息;如果客户端不是首次加锁,则上述标识当前文件锁操作的数据结构相应地可以包括已存在的锁处理的文件持有者信息和锁处理的状态标识号。
可以理解的是,客户端所发起的文件锁操作请求的类型不同,信息获取模块11需要获取的用于校验文件锁操作请求的文件锁信息也有所不同,相应的校验流程也有所不同。
例如,如果客户端所发起的文件锁操作请求为首次加锁请求,则信息获取模块11需要查找的文件锁信息可以包括打开文件的顺序号、文件锁的起始位置和结束位置以及客户端用户的创建文件锁的权限等,相应的,请求校验模块13通过校验上述打开文件的顺序号是否有效、校验文件锁的起始位置和结束位置是否非法、检查客户端用户是否有权限创建文件锁等方式,实现对文件锁操作请求的校验流程。
如果客户端所发起的文件锁操作请求并非是首次加锁请求,则信息获取模块11需要查找的文件锁信息可以包括已存在的锁处理的文件持有者信息和锁处理的状态标识号,如果查找到,则可以返回加锁成功提示信息,如果否则可以返回加锁失败提示信息。
另外,如果客户端所发起的文件锁操作请求为解锁请求,则本实施例可以检查文件锁的长度是否有效,取出文件对象结构,释放锁处理的文件持有者信息和锁处理的状态标识号,更新锁状态标识号。
其次,如果客户端所发起的文件锁操作请求为查询锁请求,则本实施例可以检查文件锁是否存在,取出文件对象结构,获取锁处理的文件持有者信息和锁处理的状态标识号,更新锁状态标识号。
可见,本申请实施例中,NFS-Ganesha服务端先获取客户端发送的文件锁请求信息,并根据所述文件锁请求信息获取相应的文件锁信息,然后获取所述客户端发送的根据所述文件锁请求信息生成的文件锁操作请求,接着利用所述文件锁信息对所述文件锁操作请求进行校验,若校验通过,则调用底层分布式文件系统对所述文件锁操作请求进行响应,由此可见,本申请实施例将文件锁技术与分布式对象存储NFS-Ganesha结合起来,以通过文件锁技术来保证并发访问过程中分布式文件系统的数据一致性,有效避免了文件冲突事件的发生,提升了系统的稳定性。
参见图4所示,本申请实施例还进一步公开了一种用户态网络文件系统文件锁装置,应用于客户端,包括:
信息创建模块21,用于创建文件锁请求信息;
信息发送模块22,用于将所述文件锁请求信息发送至NFS-Ganesha服务端,以便所述NFS-Ganesha服务端根据所述文件锁请求信息获取相应的文件锁信息;
请求生成模块23,用于根据所述文件锁请求信息生成文件锁操作请求;
请求发送模块24,用于将所述文件锁操作请求发送至所述NFS-Ganesha服务端,以便所述NFS-Ganesha服务端利用所述文件锁信息对所述文件锁操作请求进行校验,并根据校验结果确定是否允许调用底层分布式文件系统对所述文件锁操作请求进行响应。
具体的,所述文件锁请求信息可以包括所述客户端的锁状态回复标志位信息、文件锁锁定的数据段在文件中的起始偏移量信息、文件锁锁定数据段的长度信息、标识当前文件锁操作的数据结构。
可以理解的是,当出现NFS-Ganesha服务端宕机事件,这种情况下客户端需要恢复以前申请的文件锁,此时上述锁状态回复标志位信息可以设置为1,其他情况下可以设置为0。
本实施例中,所述NFS-Ganesha服务端具体可以为基于NFS V4协议版本的服务端。另外,所述文件锁信息对应的文件锁具体可以包括读锁、写锁、阻塞读锁或阻塞写锁。
本实施例中,所述文件锁操作请求可以包括加锁请求、解锁请求或查询锁请求。
其中,在上述文件操作请求为加锁请求的情况下,如果客户端是首次加锁,则在加锁前需要先执行OPEN操作,相应的,上述标识当前文件锁操作的数据结构中可以包括打开文件的顺序号、打开文件的状态标识号、锁处理的顺序号以及锁处理的文件持有者信息;如果客户端不是首次加锁,则上述标识当前文件锁操作的数据结构相应地可以包括已存在的锁处理的文件持有者信息和锁处理的状态标识号。
可见,本申请实施例将文件锁技术与分布式对象存储NFS-Ganesha结合起来,以通过文件锁技术来保证并发访问过程中分布式文件系统的数据一致性,有效避免了文件冲突事件的发生,提升了系统的稳定性。
进一步的,本申请还公开了一种用户态网络文件系统文件锁设备,应用于NFS-Ganesha服务端,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述实施例公开的应用于NFS-Ganesha服务端的用户态网络文件系统文件锁方法。
进一步的,本申请还公开了一种用户态网络文件系统文件锁设备,应用于客户端,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述实施例公开的应用于客户端的用户态网络文件系统文件锁方法。
进一步的,本申请还公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的应用于NFS-Ganesha服务端的用户态网络文件系统文件锁方法。
进一步的,本申请还公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的应用于客户端的用户态网络文件系统文件锁方法。
其中,关于上述应用于NFS-Ganesha服务端的用户态网络文件系统文件锁方法以及应用于客户端的用户态网络文件系统文件锁方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种用户态网络文件系统文件锁方法、装置及设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种用户态网络文件系统文件锁方法,其特征在于,应用于NFS-Ganesha服务端,包括:
获取客户端发送的文件锁请求信息,并根据所述文件锁请求信息获取相应的文件锁信息;
获取所述客户端发送的根据所述文件锁请求信息生成的文件锁操作请求;
利用所述文件锁信息对所述文件锁操作请求进行校验;
若校验通过,则调用底层分布式文件系统对所述文件锁操作请求进行响应。
2.根据权利要求1所述的用户态网络文件系统文件锁方法,其特征在于,所述文件锁请求信息包括所述客户端的锁状态回复标志位信息、文件锁锁定的数据段在文件中的起始偏移量信息、文件锁锁定数据段的长度信息、标识当前文件锁操作的数据结构。
3.根据权利要求1所述的用户态网络文件系统文件锁方法,其特征在于,所述NFS-Ganesha服务端为基于NFS V4协议版本的服务端。
4.根据权利要求2所述的用户态网络文件系统文件锁方法,其特征在于,所述文件锁操作请求包括加锁请求、解锁请求或查询锁请求。
5.根据权利要求4所述的用户态网络文件系统文件锁方法,其特征在于,若所述文件锁操作请求为加锁请求,则还包括:
利用所述数据结构,判断当前的加锁请求是否为所述客户端的首次加锁请求;
其中,所述客户端的首次加锁请求和非首次加锁请求分别对应于不同的所述数据结构。
6.根据权利要求1所述的用户态网络文件系统文件锁方法,其特征在于,所述文件锁信息对应的文件锁包括读锁、写锁、阻塞读锁或阻塞写锁。
7.一种用户态网络文件系统文件锁方法,其特征在于,应用于客户端,包括:
创建文件锁请求信息,并将所述文件锁请求信息发送至NFS-Ganesha服务端,以便所述NFS-Ganesha服务端根据所述文件锁请求信息获取相应的文件锁信息;
根据所述文件锁请求信息生成文件锁操作请求,并将所述文件锁操作请求发送至所述NFS-Ganesha服务端,以便所述NFS-Ganesha服务端利用所述文件锁信息对所述文件锁操作请求进行校验,并根据校验结果确定是否允许调用底层分布式文件系统对所述文件锁操作请求进行响应。
8.一种用户态网络文件系统文件锁装置,其特征在于,应用于NFS-Ganesha服务端,包括:
信息获取模块,用于获取客户端发送的文件锁请求信息,并根据所述文件锁请求信息获取相应的文件锁信息;
请求获取模块,用于获取所述客户端发送的根据所述文件锁请求信息生成的文件锁操作请求;
请求校验模块,用于利用所述文件锁信息对所述文件锁操作请求进行校验;
请求响应模块,用于当校验通过,则调用底层分布式文件系统对所述文件锁操作请求进行响应。
9.一种用户态网络文件系统文件锁装置,其特征在于,应用于客户端,包括:
信息创建模块,用于创建文件锁请求信息;
信息发送模块,用于将所述文件锁请求信息发送至NFS-Ganesha服务端,以便所述NFS-Ganesha服务端根据所述文件锁请求信息获取相应的文件锁信息;
请求生成模块,用于根据所述文件锁请求信息生成文件锁操作请求;
请求发送模块,用于将所述文件锁操作请求发送至所述NFS-Ganesha服务端,以便所述NFS-Ganesha服务端利用所述文件锁信息对所述文件锁操作请求进行校验,并根据校验结果确定是否允许调用底层分布式文件系统对所述文件锁操作请求进行响应。
10.一种用户态网络文件系统文件锁设备,其特征在于,应用于NFS-Ganesha服务端,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至6任一项所述的用户态网络文件系统文件锁方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811528515.3A CN109684285B (zh) | 2018-12-13 | 2018-12-13 | 一种用户态网络文件系统文件锁方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811528515.3A CN109684285B (zh) | 2018-12-13 | 2018-12-13 | 一种用户态网络文件系统文件锁方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109684285A CN109684285A (zh) | 2019-04-26 |
CN109684285B true CN109684285B (zh) | 2021-10-29 |
Family
ID=66187788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811528515.3A Active CN109684285B (zh) | 2018-12-13 | 2018-12-13 | 一种用户态网络文件系统文件锁方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109684285B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110704386B (zh) * | 2019-09-05 | 2022-07-29 | 苏州浪潮智能科技有限公司 | 一种分布式锁实现方法、装置、设备及可读存储介质 |
CN110990190A (zh) * | 2019-10-31 | 2020-04-10 | 苏州浪潮智能科技有限公司 | 一种分布式文件锁故障处理方法、系统、终端及存储介质 |
CN111125048B (zh) * | 2019-12-06 | 2022-04-22 | 浪潮电子信息产业股份有限公司 | 一种故障通知方法、装置、设备及计算机可读存储介质 |
CN111324573B (zh) * | 2020-02-13 | 2022-08-12 | 苏州浪潮智能科技有限公司 | 一种网络文件系统状态管理方法与系统 |
CN111274214B (zh) * | 2020-02-20 | 2022-08-16 | 苏州浪潮智能科技有限公司 | 一种文件锁处理方法、装置及电子设备和存储介质 |
CN111708744B (zh) * | 2020-05-15 | 2023-01-06 | 苏州浪潮智能科技有限公司 | 基于无状态协议维护文件锁的方法、系统、设备及介质 |
CN114448778B (zh) * | 2021-12-29 | 2024-01-23 | 中国航空工业集团公司西安航空计算技术研究所 | 一种标准网络文件系统的网络锁及其故障恢复方法 |
CN115102972B (zh) * | 2022-07-15 | 2024-10-22 | 济南浪潮数据技术有限公司 | 一种存储nfs文件的方法、装置、设备及介质 |
CN115167316B (zh) * | 2022-08-04 | 2024-05-14 | 中国核动力研究设计院 | 一种核电厂dcs平台的协同处理方法、系统及存储介质 |
CN115951844B (zh) * | 2023-03-13 | 2023-06-06 | 浪潮电子信息产业股份有限公司 | 分布式文件系统的文件锁管理方法、设备及介质 |
CN115934743B (zh) * | 2023-03-13 | 2023-06-02 | 浪潮电子信息产业股份有限公司 | 一种文件锁管理方法、系统、设备及计算机可读存储介质 |
CN117407374B (zh) * | 2023-12-12 | 2024-02-27 | 创云融达信息技术(天津)股份有限公司 | 一种基于分布式文件系统的分布式锁实现方法和系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7587558B1 (en) * | 2005-11-01 | 2009-09-08 | Netapp, Inc. | System and method for managing hard lock state information in a distributed storage system environment |
CN107577578A (zh) * | 2017-09-15 | 2018-01-12 | 郑州云海信息技术有限公司 | 统计nfs操作字时延的方法、装置、设备以及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7797392B2 (en) * | 2002-11-26 | 2010-09-14 | International Business Machines Corporation | System and method for efficiently supporting multiple native network protocol implementations in a single system |
-
2018
- 2018-12-13 CN CN201811528515.3A patent/CN109684285B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7587558B1 (en) * | 2005-11-01 | 2009-09-08 | Netapp, Inc. | System and method for managing hard lock state information in a distributed storage system environment |
CN107577578A (zh) * | 2017-09-15 | 2018-01-12 | 郑州云海信息技术有限公司 | 统计nfs操作字时延的方法、装置、设备以及存储介质 |
Non-Patent Citations (1)
Title |
---|
基于分布式存储的企业文档云平台;沈志豪等;《电力信息与通信技术》;20171115;第15卷(第11期);89-95 * |
Also Published As
Publication number | Publication date |
---|---|
CN109684285A (zh) | 2019-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109684285B (zh) | 一种用户态网络文件系统文件锁方法、装置及设备 | |
CN109189751B (zh) | 基于区块链的数据同步方法及终端设备 | |
CN110213276B (zh) | 一种微服务架构下的授权验证方法、服务器、终端及介质 | |
CN110071806B (zh) | 基于接口校验的数据处理的方法和系统 | |
CN108881228B (zh) | 云端注册激活方法、装置、设备和存储介质 | |
WO2017097123A1 (zh) | 访问请求转换的方法和装置 | |
CN108769083A (zh) | 基于分布式服务器的登录方法、装置及系统 | |
CN109614439B (zh) | 数据同步方法、装置、电子设备及存储介质 | |
CN111444500A (zh) | 鉴权方法、装置、设备及可读存储介质 | |
CN112835916B (zh) | 基于api接口的业务处理方法、设备及计算机可读存储介质 | |
CN108234122B (zh) | 令牌校验方法和装置 | |
CN109040263B (zh) | 基于分布式系统的业务处理方法及装置 | |
CN113779545A (zh) | 数据跨进程共享的方法、终端设备及计算机可读存储介质 | |
CN107566329A (zh) | 一种访问控制方法及装置 | |
CN111090616B (zh) | 一种文件管理方法、对应装置、设备及存储介质 | |
CN112804222B (zh) | 基于云部署的数据传输方法、装置、设备及存储介质 | |
CN111327680B (zh) | 认证数据同步方法、装置、系统、计算机设备和存储介质 | |
CN107967265B (zh) | 文件的访问方法、数据服务器和文件访问系统 | |
US12088584B2 (en) | Authentication token management for multiple processes and representational state transfer clients | |
US7350065B2 (en) | Method, apparatus and program storage device for providing a remote power reset at a remote server through a network connection | |
CN105516134B (zh) | 一种系统集成的认证方法及系统 | |
US10375056B2 (en) | Providing a secure communication channel during active directory disaster recovery | |
CN114268478B (zh) | 边缘云平台的调用请求鉴权方法、装置、设备及介质 | |
CN111817860B (zh) | 一种通信认证方法、装置、设备及存储介质 | |
CN112242983B (zh) | 一种数字资产认证处理系统 |
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 |