CN112653730A - 一种用户态网络文件存储方法和系统 - Google Patents
一种用户态网络文件存储方法和系统 Download PDFInfo
- Publication number
- CN112653730A CN112653730A CN202011434334.1A CN202011434334A CN112653730A CN 112653730 A CN112653730 A CN 112653730A CN 202011434334 A CN202011434334 A CN 202011434334A CN 112653730 A CN112653730 A CN 112653730A
- Authority
- CN
- China
- Prior art keywords
- file system
- network file
- requested data
- request
- write request
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 85
- 230000008569 process Effects 0.000 claims abstract description 25
- 230000004048 modification Effects 0.000 claims description 21
- 238000012986 modification Methods 0.000 claims description 21
- 230000004044 response Effects 0.000 claims description 10
- 230000005540 biological transmission Effects 0.000 claims description 2
- 238000004891 communication Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000006467 substitution reaction Methods 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]
-
- 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/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- 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/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种用户态网络文件存储方法和系统,方法包括:由网络文件系统客户端接收用户读写请求,并经远程过程调用层处理成请求报文形式的网络文件系统请求以发送到网络文件系统服务端;由网络文件系统服务端基于请求报文而提供被请求数据的文件句柄,以允许访问异构集群执行用户读写请求;由网络文件系统服务端基于网络文件系统客户端执行用户读写请求,而同步生成或更新被请求数据的元数据信息并存储到元数据缓存中;响应于用户读写请求执行完成,而由网络文件系统服务端将元数据缓存中的元数据信息同步到异构集群中。本发明能够在读写存储过程中减少用户态和内核态之间的切换,提升文件存储系统的性能。
Description
技术领域
本发明涉及系统领域,更具体地,特别是指一种用户态网络文件存储方法和系统。
背景技术
在分布式存储技术领域,目前应用比较广泛的是NFS(网络文件系统)协议,属于表示层。NFS协议其实现主要是采用RPC(远程过程调用)机制,提供了一组与机器、操作系统以及低层传送协议无关的存取远程文件的操作。RPC采用了XDR的支持,而XDR是一种与机器无关的数据描述编码的协议,他以独立与任意机器体系结构的格式对网上传送的数据进行编码和解码,支持在异构系统之间数据的传送。
NFS服务端收到请求后,在分布式集群中,首先通过NFS服务端协议处理,通过约定配置把相应的文件处理请求发给FSAL(文件系统抽象层),该层也称之为分布式存储文件系统的client层,client层处理后把处理结果返回给NFS客户端,完成NFS请求处理。基于本地的文件系统的存储过程,会发生用户态和内核态的不断切换,这种系统调用,内存拷贝等都会影响整个存储文件系统的性能。
针对现有技术中用户态和内核态的不断切换导致文件存储系统的性能低下的问题,目前尚无有效的解决方案。
发明内容
有鉴于此,本发明实施例的目的在于提出一种用户态网络文件存储方法和系统,能够在读写存储过程中减少用户态和内核态之间的切换,提升文件存储系统的性能。
基于上述目的,本发明实施例的第一方面提供了一种用户态网络文件存储方法,包括执行以下步骤:
由网络文件系统客户端接收用户读写请求,并经远程过程调用层处理成请求报文形式的网络文件系统请求以发送到网络文件系统服务端;
由网络文件系统服务端基于请求报文而提供被请求数据的文件句柄,以允许访问异构集群执行用户读写请求;
由网络文件系统服务端基于网络文件系统客户端执行用户读写请求,而同步生成或更新被请求数据的元数据信息并存储到元数据缓存中;
响应于用户读写请求执行完成,而由网络文件系统服务端将元数据缓存中的元数据信息同步到异构集群中。
在一些实施方式中,由网络文件系统客户端接收用户读写请求,并经远程过程调用层处理成请求报文形式的网络文件系统请求以发送到网络文件系统服务端包括:
由网络文件系统客户端接收用户读写请求并由虚拟文件系统转化为远程过程调用请求发送到远程过程调用层;
由远程过程调用层为远程过程调用请求执行数据文件头拼装以生成请求报文作为网络文件系统请求;
将请求报文发送到网络文件系统服务端。
在一些实施方式中,由网络文件系统服务端基于请求报文而提供被请求数据的文件句柄,以允许访问非易失性存储器的异构集群执行用户读写请求包括:
由网络文件系统服务端基于请求报文而确定被请求数据;
由网络文件系统服务端基于被请求数据的位置和唯一标识生成文件句柄反馈到网络文件系统客户端;
由网络文件系统客户端基于文件句柄在异构集群中定位被请求数据以执行用户读写请求。
在一些实施方式中,异构集群配置为使用非易失性存储器来持久性地存储被请求数据;元数据缓存配置为使用独立于的易失性存储器来临时存储被请求数据的元数据。
在一些实施方式中,元数据信息包括以下至少之一:被请求数据的最后修改时间、被请求数据的最后访问时间、被请求数据的大小、元数据的最后访问时间。
在一些实施方式中,由网络文件系统服务端基于网络文件系统客户端执行用户读写请求,而同步生成或更新被请求数据的元数据信息并存储到元数据缓存中包括:
响应于用户读写请求为创建写,而基于本地时间生成被请求数据的最后修改时间,基于当前大小生成被请求数据的大小;
响应于用户读写请求为覆盖写,而基于本地时间更新被请求数据的最后修改时间,基于当前大小更新被请求数据的大小。
在一些实施方式中,在允许访问非易失性存储器的异构集群执行用户读写请求的同时,还使用读写锁处理被请求数据;响应于用户读写请求执行完成而从被请求数据而释放读写锁,其中读写锁配置为拒绝并发的多线程访问。
本发明实施例的第二方面提供了一种用户态网络文件存储系统,包括:
网络文件系统客户端;
网络文件系统服务端;
远程过程调用层;
异构集群;
处理器;和
存储器,存储有处理器可运行的程序代码,程序代码在被运行时执行以下步骤:
由网络文件系统客户端接收用户读写请求,并经远程过程调用层处理成请求报文形式的网络文件系统请求以发送到网络文件系统服务端;
由网络文件系统服务端基于请求报文而提供被请求数据的文件句柄,以允许访问异构集群执行用户读写请求;
由网络文件系统服务端基于网络文件系统客户端执行用户读写请求,而同步生成或更新被请求数据的元数据信息并存储到元数据缓存中;
响应于用户读写请求执行完成,而由网络文件系统服务端将元数据缓存中的元数据信息同步到异构集群中。
在一些实施方式中,由网络文件系统服务端基于请求报文而提供被请求数据的文件句柄,以允许访问非易失性存储器的异构集群执行用户读写请求包括:
由网络文件系统服务端基于请求报文而确定被请求数据;
由网络文件系统服务端基于被请求数据的位置和唯一标识生成文件句柄反馈到网络文件系统客户端;
由网络文件系统客户端基于文件句柄在异构集群中定位被请求数据以执行用户读写请求。
在一些实施方式中,元数据信息包括以下至少之一:被请求数据的最后修改时间、被请求数据的最后访问时间、被请求数据的大小、元数据的最后访问时间;
由网络文件系统服务端基于网络文件系统客户端执行用户读写请求,而同步生成或更新被请求数据的元数据信息并存储到元数据缓存中包括:响应于用户读写请求为创建写,而基于本地时间生成被请求数据的最后修改时间,基于当前大小生成被请求数据的大小;响应于用户读写请求为覆盖写,而基于本地时间更新被请求数据的最后修改时间,基于当前大小更新被请求数据的大小。
本发明具有以下有益技术效果:本发明实施例提供的用户态网络文件存储方法和系统,通过由网络文件系统客户端接收用户读写请求,并经远程过程调用层处理成请求报文形式的网络文件系统请求以发送到网络文件系统服务端;由网络文件系统服务端基于请求报文而提供被请求数据的文件句柄,以允许访问异构集群执行用户读写请求;由网络文件系统服务端基于网络文件系统客户端执行用户读写请求,而同步生成或更新被请求数据的元数据信息并存储到元数据缓存中;响应于用户读写请求执行完成,而由网络文件系统服务端将元数据缓存中的元数据信息同步到异构集群中的技术方案,能够在读写存储过程中减少用户态和内核态之间的切换,提升文件存储系统的性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的用户态网络文件存储方法的流程示意图;
图2为本发明提供的用户态网络文件存储方法的框架示意图;
图3为本发明提供的用户态网络文件存储方法的处理关系图;
图4为本发明提供的用户态网络文件存储方法的元数据并发冲突关系图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
基于上述目的,本发明实施例的第一个方面,提出了一种在读写存储过程中减少用户态和内核态之间的切换的用户态网络文件存储方法的一个实施例。图1示出的是本发明提供的用户态网络文件存储方法的流程示意图。
所述的用户态网络文件存储方法,如图1所示,包括执行以下步骤:
步骤S101,由网络文件系统客户端接收用户读写请求,并经远程过程调用层处理成请求报文形式的网络文件系统请求以发送到网络文件系统服务端;
步骤S103,由网络文件系统服务端基于请求报文而提供被请求数据的文件句柄,以允许访问异构集群执行用户读写请求;
步骤S105,由网络文件系统服务端基于网络文件系统客户端执行用户读写请求,而同步生成或更新被请求数据的元数据信息并存储到元数据缓存中;
步骤S107,响应于用户读写请求执行完成,而由网络文件系统服务端将元数据缓存中的元数据信息同步到异构集群中。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。所述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
在一些实施方式中,由网络文件系统客户端接收用户读写请求,并经远程过程调用层处理成请求报文形式的网络文件系统请求以发送到网络文件系统服务端包括:
由网络文件系统客户端接收用户读写请求并由虚拟文件系统转化为远程过程调用请求发送到远程过程调用层;
由远程过程调用层为远程过程调用请求执行数据文件头拼装以生成请求报文作为网络文件系统请求;
将请求报文发送到网络文件系统服务端。
在一些实施方式中,由网络文件系统服务端基于请求报文而提供被请求数据的文件句柄,以允许访问非易失性存储器的异构集群执行用户读写请求包括:
由网络文件系统服务端基于请求报文而确定被请求数据;
由网络文件系统服务端基于被请求数据的位置和唯一标识生成文件句柄反馈到网络文件系统客户端;
由网络文件系统客户端基于文件句柄在异构集群中定位被请求数据以执行用户读写请求。
在一些实施方式中,异构集群配置为使用非易失性存储器来持久性地存储被请求数据;元数据缓存配置为使用独立于的易失性存储器来临时存储被请求数据的元数据。
在一些实施方式中,元数据信息包括以下至少之一:被请求数据的最后修改时间、被请求数据的最后访问时间、被请求数据的大小、元数据的最后访问时间。
在一些实施方式中,由网络文件系统服务端基于网络文件系统客户端执行用户读写请求,而同步生成或更新被请求数据的元数据信息并存储到元数据缓存中包括:
响应于用户读写请求为创建写,而基于本地时间生成被请求数据的最后修改时间,基于当前大小生成被请求数据的大小;
响应于用户读写请求为覆盖写,而基于本地时间更新被请求数据的最后修改时间,基于当前大小更新被请求数据的大小。
在一些实施方式中,在允许访问非易失性存储器的异构集群执行用户读写请求的同时,还使用读写锁处理被请求数据;响应于用户读写请求执行完成而从被请求数据而释放读写锁,其中读写锁配置为拒绝并发的多线程访问。
下面根据具体实施例进一步阐述本发明的具体实施方式。
本发明提出了一种基于异构存储的用户态网络文件系统、装置与方法,本发明提出了一种基于异构存储的用户态网络文件系统、装置与方法,提出一种SSD固态存储设备的用户态网络文件系统,避免了用户态与内核态频繁切换的资源开销;传统技术中,往往通过缓存数据来提高读写IO的性能,经过一些数据下刷策、缓存失效策略技术才将数据下刷到持久化磁盘存储介质中,本发明设计的用户态网络文件系统,充分发挥Nvme(非易失性存储器)设备的良好随机读写性能,并同时保证数据的持久化,进而提出一种高性能的网络文件系统;本发明遵循C/S(客户端/服务器)架构,服务端与客户端通过RPC远程过程调用进行通信;本发明实现用户态网络文件系统元数据与数据管理方法,保障读写IO性能得到提升,同时也保证了数据的一致性,本发明能够提高文件操作的系统请求调用性能,降低存储文件系统文件操作请求时延,提高系统资源利用率,在异构存储设备中将分布式存储文件系统的性能提高一个层次。
具体来说参见图2,在NFS客户端,用户进行读写请求调用进行文件操作,经过系统调用,进入VFS(虚拟文件系统层),一般情况下,客户端请求通过libc和Linux内核的VFS层进行交互,VFS层是对底层文件系统的一种抽象,本发明客户端的底层文件系统是指NFS客户端程序。VFS为各种文件系统提供了一个通用的接口,而每一种具体的文件系统则将其物理组织结构转换为虚拟文件系统的通用模型。NFS Client请求需要通过RPC远程过程调用把文件操作请求发送到RPC层;
RPC层接收到NFS Client的请求时,通过网络发送到NFS服务端,RPC层需要组装请求报文结构,本发明特指为以太网头,IP头,TCP头,RPC头与NFS数据进行组装为标准的NFS请求。
NFS服务端为用户态网络文件系统,该文件系统部署异构的存储服务器上,采用Nvme SSD设备作为存储介质,用来存储元数据与数据,本发明能够利用多个Nvme SSD设备来提高NFS网络文件系统请求的并发处理性能。
进一步地参见图3,NFS客户端发送IO请求,首先进行RPC请求,携带通信句柄,通信句柄含有IO请求的请求信息数据结构,然后到达RPC服务端,服务端对通信句柄进行译码,通过文件句柄到达NFS服务端,在Nvme SSD固态盘存储介质中的用户态网络文件系统服务,设计一个线程池,通过生产者与消费者模式,通过队列分发可配置数量的OpWorker线程对NFS客户端请求进行处理。
NFS服务端监听并接收NFS客户端的请求,本发明网络文件系统采用Key-Value对元数据进行管理,当进行文件的读写操作时,该文件的元数据信息如修改时间mtime,访问时间atime,元数据访问时间ctime和文件的长度和大小均会发生变化,如果在大量读写请求处理过程中,特别是大量小文件场景中,同步文件time,文件长度和大小到Nvme SSD元数据库中,将增加文件IO延迟,因此,本发明提出,文件的时间变化和文件长度大小暂存在元数据cache中,覆盖写时,通过将本地时间更新到该文件的mtime中,不进行底层分布式调用,当创建写是,分别更新本地时间到mtime,从元数据entry缓存中更新文件大小,也不进行底层分布式调用,当文件close时,才把文件的元数据time和文件大小等元数据下刷到Nvme SSD持久化存储中,减少了元数据刷新次数,进而提升性能。
为了避免用户态网络文件系统元数据操作死锁,已经多线程并发的稳定性能,本发明通过读写锁解决冲突。当客户端发起元数据重命名请求操作时,会对元数据目录数结构进行遍历更改等操作,本发明用户态网络文件系统作为多线程服务,能够并发处理元数据以及数据请求,为了避免死锁,如图4所示的根目录下有目录A,并发操作过程中,同时收到了删除目录A操作和创建A的子目录B操作,进而造成B目录无父目录的错误现场,本发明使用读写锁解决冲突,对目录树的节点加读写锁,在加锁过程中,本发明遵从以下原则:
A.对要加锁的A和B目录节点,构造平衡二叉树,依据A与B的树的深度不同,决定优先级,依次从目录树深度由浅入深执行加锁;
B.若A和B的目录树深度相同,则根据元数据的UUID进行加锁,加锁顺序有由UUID小到大,UUID的目的,是为了让分布式系统可以不借助中心节点,就可以生成UUID来标识一些唯一的信息。
通过有序的加锁,本发明解决网络文件系统并发请求过程中的元数据操作死锁问题。
本发明网络文件系统通过维护文件句柄来管理文件读写状态,NFS客户端与服务端通过文件句柄进行数据读写IO等操作,例如打开创建文件或目录时,需要给客户端返回一个文件句柄,根据文件句柄,客户端可以遍历整个目录树元数据信息,进而客户读写文件数据。
而文件句柄包含两个部分,其一是,打开目录树节点的UUID,该UUID用来标识open的节点,第二部分是uint64位唯一标识数字,用来标识open同一个文件不同filehandle文件句柄。本发明,用户态网络文件系统通过entry节点管理对元数据操作所需要信息,entry节点中包含了文件数据块位置信息,缓存了文件的lenth即文件大小和time;目录entry,报存了以该目录为父目录的新,每个entry中包含链表结构,链表的元素,记录了filehandle读写状态,假设filehanle是一个文件,读写状态则是文件的偏移量offset,如果filehandle是一个目录,读写状态是readdir操作cookie,目录entry的偏移。
从上述实施例可以看出,本发明实施例提供的用户态网络文件存储方法,通过由网络文件系统客户端接收用户读写请求,并经远程过程调用层处理成请求报文形式的网络文件系统请求以发送到网络文件系统服务端;由网络文件系统服务端基于请求报文而提供被请求数据的文件句柄,以允许访问异构集群执行用户读写请求;由网络文件系统服务端基于网络文件系统客户端执行用户读写请求,而同步生成或更新被请求数据的元数据信息并存储到元数据缓存中;响应于用户读写请求执行完成,而由网络文件系统服务端将元数据缓存中的元数据信息同步到异构集群中的技术方案,能够在读写存储过程中减少用户态和内核态之间的切换,提升文件存储系统的性能。
需要特别指出的是,上述用户态网络文件存储方法的各个实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于用户态网络文件存储方法也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。
基于上述目的,本发明实施例的第二个方面,提出了一种在读写存储过程中减少用户态和内核态之间的切换的用户态网络文件存储系统的一个实施例。系统包括:
网络文件系统客户端;
网络文件系统服务端;
远程过程调用层;
异构集群;
处理器;和
存储器,存储有处理器可运行的程序代码,程序代码在被运行时执行以下步骤:
由网络文件系统客户端接收用户读写请求,并经远程过程调用层处理成请求报文形式的网络文件系统请求以发送到网络文件系统服务端;
由网络文件系统服务端基于请求报文而提供被请求数据的文件句柄,以允许访问异构集群执行用户读写请求;
由网络文件系统服务端基于网络文件系统客户端执行用户读写请求,而同步生成或更新被请求数据的元数据信息并存储到元数据缓存中;
响应于用户读写请求执行完成,而由网络文件系统服务端将元数据缓存中的元数据信息同步到异构集群中。
在一些实施方式中,由网络文件系统服务端基于请求报文而提供被请求数据的文件句柄,以允许访问非易失性存储器的异构集群执行用户读写请求包括:
由网络文件系统服务端基于请求报文而确定被请求数据;
由网络文件系统服务端基于被请求数据的位置和唯一标识生成文件句柄反馈到网络文件系统客户端;
由网络文件系统客户端基于文件句柄在异构集群中定位被请求数据以执行用户读写请求。
在一些实施方式中,元数据信息包括以下至少之一:被请求数据的最后修改时间、被请求数据的最后访问时间、被请求数据的大小、元数据的最后访问时间;
由网络文件系统服务端基于网络文件系统客户端执行用户读写请求,而同步生成或更新被请求数据的元数据信息并存储到元数据缓存中包括:响应于用户读写请求为创建写,而基于本地时间生成被请求数据的最后修改时间,基于当前大小生成被请求数据的大小;响应于用户读写请求为覆盖写,而基于本地时间更新被请求数据的最后修改时间,基于当前大小更新被请求数据的大小。
从上述实施例可以看出,本发明实施例提供的系统,通过响应于设备未上电,通过由网络文件系统客户端接收用户读写请求,并经远程过程调用层处理成请求报文形式的网络文件系统请求以发送到网络文件系统服务端;由网络文件系统服务端基于请求报文而提供被请求数据的文件句柄,以允许访问异构集群执行用户读写请求;由网络文件系统服务端基于网络文件系统客户端执行用户读写请求,而同步生成或更新被请求数据的元数据信息并存储到元数据缓存中;响应于用户读写请求执行完成,而由网络文件系统服务端将元数据缓存中的元数据信息同步到异构集群中的技术方案,能够在读写存储过程中减少用户态和内核态之间的切换,提升文件存储系统的性能。
需要特别指出的是,上述系统的实施例采用了所述用户态网络文件存储方法的实施例来具体说明各模块的工作过程,本领域技术人员能够很容易想到,将这些模块应用到所述用户态网络文件存储方法的其他实施例中。当然,由于所述用户态网络文件存储方法实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于所述系统也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上所述的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (10)
1.一种用户态网络文件存储方法,其特征在于,包括在操作系统的用户态执行以下步骤:
由网络文件系统客户端接收用户读写请求,并经远程过程调用层处理成请求报文形式的网络文件系统请求以发送到网络文件系统服务端;
由所述网络文件系统服务端基于所述请求报文而提供被请求数据的文件句柄,以允许访问异构集群执行所述用户读写请求;
由所述网络文件系统服务端基于所述网络文件系统客户端执行所述用户读写请求,而同步生成或更新所述被请求数据的元数据信息并存储到元数据缓存中;
响应于所述用户读写请求执行完成,而由所述网络文件系统服务端将所述元数据缓存中的所述元数据信息同步到所述异构集群中。
2.根据权利要求1所述的方法,其特征在于,由网络文件系统客户端接收用户读写请求,并经远程过程调用层处理成请求报文形式的网络文件系统请求以发送到网络文件系统服务端包括:
由网络文件系统客户端接收用户读写请求并由虚拟文件系统转化为远程过程调用请求发送到所述远程过程调用层;
由所述远程过程调用层为所述远程过程调用请求执行数据文件头拼装以生成所述请求报文作为所述网络文件系统请求;
将所述请求报文发送到所述网络文件系统服务端。
3.根据权利要求1所述的方法,其特征在于,由所述网络文件系统服务端基于所述请求报文而提供被请求数据的文件句柄,以允许访问非易失性存储器的异构集群执行所述用户读写请求包括:
由所述网络文件系统服务端基于所述请求报文而确定被请求数据;
由所述网络文件系统服务端基于所述被请求数据的位置和唯一标识生成所述文件句柄反馈到所述网络文件系统客户端;
由所述网络文件系统客户端基于所述文件句柄在所述异构集群中定位所述被请求数据以执行所述用户读写请求。
4.根据权利要求1所述的方法,其特征在于,所述异构集群配置为使用非易失性存储器来持久性地存储所述被请求数据;所述元数据缓存配置为使用独立于的易失性存储器来临时存储所述被请求数据的元数据。
5.根据权利要求1所述的方法,其特征在于,所述元数据信息包括以下至少之一:被请求数据的最后修改时间、被请求数据的最后访问时间、被请求数据的大小、元数据的最后访问时间。
6.根据权利要求5所述的方法,其特征在于,由所述网络文件系统服务端基于所述网络文件系统客户端执行所述用户读写请求,而同步生成或更新所述被请求数据的元数据信息并存储到元数据缓存中包括:
响应于所述用户读写请求为创建写,而基于本地时间生成所述被请求数据的最后修改时间,基于当前大小生成所述被请求数据的大小;
响应于所述用户读写请求为覆盖写,而基于本地时间更新所述被请求数据的最后修改时间,基于当前大小更新所述被请求数据的大小。
7.根据权利要求1所述的方法,其特征在于,在允许访问非易失性存储器的异构集群执行所述用户读写请求的同时,还使用读写锁处理所述被请求数据;响应于所述用户读写请求执行完成而从所述被请求数据而释放所述读写锁,其中所述读写锁配置为拒绝并发的多线程访问。
8.一种用户态网络文件存储系统,其特征在于,包括:
网络文件系统客户端;
网络文件系统服务端;
远程过程调用层;
异构集群;
处理器;和
存储器,存储有处理器可运行的程序代码,所述程序代码在被运行时执行以下步骤:
由网络文件系统客户端接收用户读写请求,并经远程过程调用层处理成请求报文形式的网络文件系统请求以发送到网络文件系统服务端;
由所述网络文件系统服务端基于所述请求报文而提供被请求数据的文件句柄,以允许访问异构集群执行所述用户读写请求;
由所述网络文件系统服务端基于所述网络文件系统客户端执行所述用户读写请求,而同步生成或更新所述被请求数据的元数据信息并存储到元数据缓存中;
响应于所述用户读写请求执行完成,而由所述网络文件系统服务端将所述元数据缓存中的所述元数据信息同步到所述异构集群中。
9.根据权利要求8所述的系统,其特征在于,由所述网络文件系统服务端基于所述请求报文而提供被请求数据的文件句柄,以允许访问非易失性存储器的异构集群执行所述用户读写请求包括:
由所述网络文件系统服务端基于所述请求报文而确定被请求数据;
由所述网络文件系统服务端基于所述被请求数据的位置和唯一标识生成所述文件句柄反馈到所述网络文件系统客户端;
由所述网络文件系统客户端基于所述文件句柄在所述异构集群中定位所述被请求数据以执行所述用户读写请求。
10.根据权利要求8所述的系统,其特征在于,所述元数据信息包括以下至少之一:被请求数据的最后修改时间、被请求数据的最后访问时间、被请求数据的大小、元数据的最后访问时间;
由所述网络文件系统服务端基于所述网络文件系统客户端执行所述用户读写请求,而同步生成或更新所述被请求数据的元数据信息并存储到元数据缓存中包括:响应于所述用户读写请求为创建写,而基于本地时间生成所述被请求数据的最后修改时间,基于当前大小生成所述被请求数据的大小;响应于所述用户读写请求为覆盖写,而基于本地时间更新所述被请求数据的最后修改时间,基于当前大小更新所述被请求数据的大小。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011434334.1A CN112653730A (zh) | 2020-12-10 | 2020-12-10 | 一种用户态网络文件存储方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011434334.1A CN112653730A (zh) | 2020-12-10 | 2020-12-10 | 一种用户态网络文件存储方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112653730A true CN112653730A (zh) | 2021-04-13 |
Family
ID=75350811
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011434334.1A Withdrawn CN112653730A (zh) | 2020-12-10 | 2020-12-10 | 一种用户态网络文件存储方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112653730A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114003562A (zh) * | 2021-12-29 | 2022-02-01 | 苏州浪潮智能科技有限公司 | 一种目录遍历方法、装置、设备及可读存储介质 |
CN114448823A (zh) * | 2022-01-27 | 2022-05-06 | 苏州浪潮智能科技有限公司 | Nfs服务测试方法、系统及电子设备 |
CN115102972A (zh) * | 2022-07-15 | 2022-09-23 | 济南浪潮数据技术有限公司 | 一种存储nfs文件的方法、装置、设备及介质 |
CN115834713A (zh) * | 2023-02-07 | 2023-03-21 | 北京大道云行科技有限公司 | 一种网络文件系统与分布式文件系统的交互方法及系统 |
CN116450058A (zh) * | 2023-06-19 | 2023-07-18 | 浪潮电子信息产业股份有限公司 | 数据转存方法、装置、异构平台、设备及介质 |
CN117033330A (zh) * | 2023-10-08 | 2023-11-10 | 南京翼辉信息技术有限公司 | 一种多核文件共享系统及其控制方法 |
WO2024113878A1 (zh) * | 2022-12-01 | 2024-06-06 | 苏州元脑智能科技有限公司 | 用于异构计算的电源控制系统、方法、设备及非易失性可读存储介质 |
-
2020
- 2020-12-10 CN CN202011434334.1A patent/CN112653730A/zh not_active Withdrawn
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114003562A (zh) * | 2021-12-29 | 2022-02-01 | 苏州浪潮智能科技有限公司 | 一种目录遍历方法、装置、设备及可读存储介质 |
CN114003562B (zh) * | 2021-12-29 | 2022-03-22 | 苏州浪潮智能科技有限公司 | 一种目录遍历方法、装置、设备及可读存储介质 |
CN114448823A (zh) * | 2022-01-27 | 2022-05-06 | 苏州浪潮智能科技有限公司 | Nfs服务测试方法、系统及电子设备 |
CN114448823B (zh) * | 2022-01-27 | 2023-08-15 | 苏州浪潮智能科技有限公司 | Nfs服务测试方法、系统及电子设备 |
CN115102972A (zh) * | 2022-07-15 | 2022-09-23 | 济南浪潮数据技术有限公司 | 一种存储nfs文件的方法、装置、设备及介质 |
WO2024113878A1 (zh) * | 2022-12-01 | 2024-06-06 | 苏州元脑智能科技有限公司 | 用于异构计算的电源控制系统、方法、设备及非易失性可读存储介质 |
CN115834713A (zh) * | 2023-02-07 | 2023-03-21 | 北京大道云行科技有限公司 | 一种网络文件系统与分布式文件系统的交互方法及系统 |
CN116450058A (zh) * | 2023-06-19 | 2023-07-18 | 浪潮电子信息产业股份有限公司 | 数据转存方法、装置、异构平台、设备及介质 |
CN116450058B (zh) * | 2023-06-19 | 2023-09-19 | 浪潮电子信息产业股份有限公司 | 数据转存方法、装置、异构平台、设备及介质 |
CN117033330A (zh) * | 2023-10-08 | 2023-11-10 | 南京翼辉信息技术有限公司 | 一种多核文件共享系统及其控制方法 |
CN117033330B (zh) * | 2023-10-08 | 2023-12-08 | 南京翼辉信息技术有限公司 | 一种多核文件共享系统及其控制方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11388251B2 (en) | Providing access to managed content | |
CN112653730A (zh) | 一种用户态网络文件存储方法和系统 | |
US10831720B2 (en) | Cloud storage distributed file system | |
US9946735B2 (en) | Index structure navigation using page versions for read-only nodes | |
US11334540B2 (en) | Namespace hierarchy preservation with multiple object storage objects | |
US10817498B2 (en) | Distributed transactions in cloud storage with hierarchical namespace | |
US20190370362A1 (en) | Multi-protocol cloud storage for big data and analytics | |
US8484161B2 (en) | Live file system migration | |
US10929419B2 (en) | Object storage backed file system | |
JP6626459B2 (ja) | 共有ファイル・アクセス−restインターフェースを使用するファイル・サービス | |
KR101932372B1 (ko) | 인 플레이스 스냅샷들 | |
US20150347553A1 (en) | Object Storage System with Local Transaction Logs, a Distributed Namespace, and Optimized Support for User Directories | |
US20170123931A1 (en) | Object Storage System with a Distributed Namespace and Snapshot and Cloning Features | |
US11297031B2 (en) | Hierarchical namespace service with distributed name resolution caching and synchronization | |
US20170315882A1 (en) | Protected write-back cache transaction replication | |
CN110750507B (zh) | 面向dfs的全局命名空间下的持久客户端缓存方法及系统 | |
KR20150132511A (ko) | 로그 레코드 관리 | |
JP2010102738A (ja) | ハードウェアベースのファイルシステムのための装置および方法 | |
US20180276267A1 (en) | Methods and system for efficiently performing eventual and transactional edits on distributed metadata in an object storage system | |
US10152265B1 (en) | Efficient repository migration and storage | |
CN107896248B (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210413 |
|
WW01 | Invention patent application withdrawn after publication |