当前位置: 首页 > 专利查询>清华大学专利>正文

一种基于RDMA的分布式内存文件系统技术方案

技术编号:18425859 阅读:57 留言:0更新日期:2018-07-12 01:53
本发明专利技术公开了一种基于RDMA的分布式内存文件系统,在分布式内存文件系统初始化阶段,将集群用于文件存储的内存统一划分,并注册到网卡,以支持远端节点进行内存直接访问,进而构建分布式共享内存池;在所述分布式内存共享池之上,通过两级哈希索引分别进行文件索引及文件数据块索引,为所述文件系统提供查询服务;通过自识别远程过程调用方法处理客户端的请求,并返回处理结果。本发明专利技术具有如下优点:减少文件在读写时的数据复制、降低响应延迟,并在程序软件中提高文件访问的整体效率。

A distributed memory file system based on RDMA

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:在所述分布式内存文件系统初始化阶段,将集群用于文件存储的内存统一划分,并注册到网卡,以支持远端节点进行内存直接访问,进而构建分布式共享内存池;S2:在所述分布式内存共享池之上,通过两级哈希索引分别进行文件索引及文件数据块索引,为所述文件系统提供查询服务;S3:通过自识别远程过程调用方法处理所述客户端的请求,并返回处理结果。根据本专利技术实施例的基于RDMA的分布式内存文件系统,减少文件在读写时的数据复制、降低响应延迟,并在程序软件中提高文件访问的整体效率。另外,根据本专利技术上述实施例的基于RDMA的分布式内存文件系统,还可以具有如下附加的技术特征:进一步地,所述分布式共享内存池依次存放超级块、消息池、链式哈希索引表、元数据存储块和数据存储块。进一步地,数据布局区域中接收远程节点的直接访问;所述链式哈希索引表和所述元数据存储区中,服务节点响应所述客户端并发请求,对元数据执行查询和更新;元数据根据文件路径名哈希分散到整个集群,各节点独立维护文件的元数据和数据。进一步地,所述超级块用于存放元数据块数量、元数据块大小、数据块数量和数据块大小,所述超级块在所述文件系统系统启动时被各节点远程读取。进一步地,所述消息池包括多个消息区,所述多个消息区分配给连入系统的不同客户端,以便当客户端有新请求时,所述客户端将新请求远程地写入服务节点的所属消息区,服务端接收线程监测到新请求后,利用自识别方法快速定位消息并处理返回。进一步地,所述链式哈希索引表用于在查询文件元数据时,计算文件全路径名的哈希值;将所述哈希值作为索引表索引号,查询该索引号下的表项,进行文件名匹配,成功则获取元数据地址并根据地址访问元数据;如果文件名不匹配,则继续查找下一个表项,直到匹配成功。进一步地,所述元数据存储块和所述数据存储块分别用于存放元数据和数据,所述元数据区和所述数据区被分割为固定大小元数据块和数据块,在所述元数据区和所述数据区的首部存放对应区域的空闲块元数据,以描述内存使用情况。进一步地,所述两级哈希索引的步骤包括:在客户端发起文件访问请求时,根据文件全路径名计算存放该文件元数据的元数据服务器ID,其中,元数据服务器ID由系统配置文件决定;客户端将请求信息发往对应ID的元数据服务器,元数据服务器检测到新消息后,解析出请求内容,根据所述请求内容中的文件路径名进行第二次哈希值计算,根据第二次的哈希值访问所述链式哈希索引表,获取元数据信息,并做出相应的逻辑处理,返回请求结果。进一步地,所述自识别远程过程调用方法包括:在所述客户端向所述服务端发送消息时,使用RDMA_WRITE_WITH_IMM原语携带消息内容,并在报文头部存放客户端元数据;在所述服务端返回请求结果时,通过RDMA原语将返回结果直接写回到所述客户端指定的内存区域,所述客户端将轮询地监测用于存放返回结果的内存区域,直到数据成功返回。进一步地,所述客户端将自身ID以及时间戳存放到所述报文头部,所述客户端ID在连接建立时由服务端主节点分配,且全局唯一。进一步地,在RDMA_WRITE_WITH_IMM消息成功送达之后,服务端根据完成信息获取报文头部的客户端元数据,并解析出客户端ID,根据客户端ID直接查询本地消息池的固定偏移位置,获取新的请求信息。进一步地,当客户端数量超过所述服务端提前分配的消息池数量时,所述服务端查询已经断开连接的客户端并将其所占用的消息区转移给当前客户端;如果所有客户端均保持连接状态,则需重新申请消息区,注册到网卡并通知所述当前客户端。本专利技术的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本专利技术的实践了解到。附图说明本专利技术的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:图1是本专利技术实施例的基于RDMA的分布式内存文件系统的执行动作流程图;图2是本专利技术一个实施例的RDMA数据传输示意图;图3是本专利技术一个实施例的服务节点共享内存的布局图;图4是本专利技术一个实施例的数据收发时拷贝次数统计示意图;图5是本专利技术一个实施例的自识别远程过程调用示意图。具体实施方式下面详细描述本专利技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本专利技术,而不能理解为对本专利技术的限制。参照下面的描述和附图,将清楚本专利技术的实施例的这些和其他方面。在这些描述和附图中,具体公开了本专利技术的实施例中的一些特定实施方式,来表示实施本专利技术的实施例的原理的一些方式,但是应当理解,本专利技术的实施例的范围不受此限制。相反,本专利技术的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。以下结合附图描述本专利技术。在介绍本专利技术的实施例之前,先对本专利技术的出现的术语进行说明。直接内存访问(DirectMemoryAccess,DMA)允许某些硬件装置独立地直接读写内存,而不需要CPU的大量的参与,该技术用于缓解CPU对外设的处理压力,整个数据传输过程只需CPU在最开始进行初始化传输操作,然后将整个传输动作交给DMA控制器来执行完成。远程直接内存访问(RemoteDirectMemoryAccess,RDMA)是一种新型的网络通讯技术,它能实现在双方操作系统不直接参与的情况下直接访问远端内存,并实现高吞吐、低延迟的特性。RDMA通过让网络适配器将数据直接传输到对方的内存实现数据传输的零拷贝,从而消除了CPU和Cache的直接参与,并减少了冗余的现场切换。目前支持RDMA技术的网络协议栈包括Infiniband、RoCE(RDMAoverConvergedEtherne本文档来自技高网...

【技术保护点】
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

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1