This invention discloses a distributed memory file system based on RDMA. In the initialization stage of the distributed memory file system, the cluster is used for the unified partition of the memory in the file storage, and registered to the network card to support the direct memory access of the remote node, and then the distributed shared memory pool is constructed; the distributed memory is used in the distributed memory. On the shared pool, the file index and the file data block index are separately indexed by the two level hash index to provide the query service for the file system; the client's request is processed by the self recognition remote procedure call method and the processing results are returned. The invention has the following advantages: reducing data duplication during file reading and writing, reducing response delay, and improving overall efficiency of file access in program software.
【技术实现步骤摘要】
一种基于RDMA的分布式内存文件系统
本专利技术涉及分布式存储系统领域,特别涉及一种基于RDMA的分布式内存文件系统。
技术介绍
远程直接内存访问(RemoteDirectMemoryAccess,RDMA)是指在没有双方主机操作系统直接参与下,直接访问远端内存,从而提供高带宽、低延迟的特性。分布式环境下的数据传输决定了系统整体的I/O性能,这类技术被广泛的应用在分布式文件系统和数据库系统中。传统的分布式系统大多以磁盘作为存储介质,并通过基于TCP/IP的远程过程调用模块进行数据传输,由于磁盘带宽低,延迟高,因此网络传输模块本身不会成为瓶颈,近年来,内存日益廉价,将存储和计算转移到内存的内存计算已经成为一种趋势,存储介质性能提升的同时,网络传输也面临极大的挑战。目前,尚不存在通用的数据传输模块,用于高效处理不同的网络I/O特性,同时,在并发控制上,仍采用集中式的同步模型,严重影响系统的可扩展性。
技术实现思路
本专利技术旨在至少解决上述技术问题之一。为此,本专利技术的目的在于提出一种基于RDMA的分布式内存文件系统,以减少文件在读写时的数据复制、降低响应延迟,并在程序软件中提高文件访问的整体效率。为了实现上述目的,本专利技术的实施例公开了一种基于RDMA的分布式内存文件系统,所述分布式内存文件系统将各节点内存通过RDMA进行网络互联,所述文件系统包括客户端和服务端,所述客户端提供文件访问接口,供上层应用调用,所述服务端提供元数据服务和数据服务,所述分布式内存文件系统执行以下动作:S1:在所述分布式内存文件系统初始化阶段,将集群用于文件存储的内存统一划分,并注册 ...
【技术保护点】
1.一种基于RDMA的分布式内存文件系统,其特征在于,所述分布式内存文件系统将各节点内存通过RDMA进行网络互联,所述文件系统包括客户端和服务端,所述客户端提供文件访问接口,供上层应用调用,所述服务端提供元数据服务和数据服务,所述分布式内存文件系统执行以下动作:S1:在所述分布式内存文件系统初始化阶段,将集群用于文件存储的内存统一划分,并注册到网卡,以支持远端节点进行内存直接访问,进而构建分布式共享内存池;S2:在所述分布式内存共享池之上,通过两级哈希索引分别进行文件索引及文件数据块索引,为所述文件系统提供查询服务;S3:通过自识别远程过程调用方法处理所述客户端的请求,并返回处理结果。
【技术特征摘要】
1.一种基于RDMA的分布式内存文件系统,其特征在于,所述分布式内存文件系统将各节点内存通过RDMA进行网络互联,所述文件系统包括客户端和服务端,所述客户端提供文件访问接口,供上层应用调用,所述服务端提供元数据服务和数据服务,所述分布式内存文件系统执行以下动作:S1:在所述分布式内存文件系统初始化阶段,将集群用于文件存储的内存统一划分,并注册到网卡,以支持远端节点进行内存直接访问,进而构建分布式共享内存池;S2:在所述分布式内存共享池之上,通过两级哈希索引分别进行文件索引及文件数据块索引,为所述文件系统提供查询服务;S3:通过自识别远程过程调用方法处理所述客户端的请求,并返回处理结果。2.根据权利要求1所述的基于RDMA的分布式内存文件系统,其特征在于,所述分布式共享内存池依次存放超级块、消息池、链式哈希索引表、元数据存储区和数据存储区。3.根据权利要求2所述的基于RDMA的分布式内存文件系统,其特征在于,数据布局区域中接收远程节点的直接访问;所述链式哈希索引表和所述元数据存储区中,服务节点响应所述客户端并发请求,对元数据执行查询和更新;元数据根据文件路径名哈希分散到整个集群,各节点独立维护文件的元数据和数据。4.根据权利要求2所述的基于RDMA的分布式内存文件系统,其特征在于,所述超级块用于存放元数据块数量、元数据块大小、数据块数量和数据块大小,所述超级块在所述文件系统系统启动时被各节点远程读取。5.根据权利要求2所述的基于RDMA的分布式内存文件系统,其特征在于,所述消息池包括多个消息区,所述多个消息区分配给连入系统的不同客户端,以便当客户端有新请求时,所述客户端将新请求远程地写入服务节点的所属消息区,服务端接收线程监测到新请求后,利用自识别方法快速定位消息并处理返回。6.根据权利要求2所述的基于RDMA的分布式内存文件系统,其特征在于,所述链式哈希索引表用于元数据索引,在查询文件元数据时,首先计算文件全路径名的哈希值;将所述哈希值作为索引表索引号,查询该索引号下的表项,进行文件名匹配,成功则获取元数据地址并根据地址访问元数据;如果文件名不匹配,则继续查找下一个表项,直到匹配成功。7.根...
【专利技术属性】
技术研发人员:陆游游,舒继武,陈游旻,
申请(专利权)人:清华大学,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。