一种基于RDMA网络的分布式文件系统数据传输方法和系统技术方案

技术编号:22005527 阅读:80 留言:0更新日期:2019-08-31 06:55
本发明专利技术公开了一种基于RDMA网络的分布式文件系统数据传输方法,包括:客户端在接收到来自用户的文件访问请求时,向服务端发起RDMA连接请求,服务端在获取到来自客户端的RDMA连接请求后,建立与客户端的RDMA连接,客户端根据文件访问请求生成网络数据访问请求,并利用RDMA连接将该网络数据访问请求发送到服务端,服务端对网络数据访问请求进行解析,以获取其中的地址信息,并根据该地址信息获取其对应的文件在该服务端的内存中的地址作为服务端返回地址,服务端将服务端返回地址、以及RDMA远程访问权限信息发送到客户端。本发明专利技术能够解决现有分布式文件系统存在的数据传输过程中内存操作的开销较大的技术问题,以及服务端的负载较大、传输时延较长的技术问题。

A Data Transfer Method and System of Distributed File System Based on RDMA Network

【技术实现步骤摘要】
一种基于RDMA网络的分布式文件系统数据传输方法和系统
本专利技术属于计算机网络
,更具体地,涉及一种基于RDMA网络的分布式文件系统数据传输方法和系统。
技术介绍
随着近年来大数据、云计算以及人工智能等计算机信息技术的快速发展,全球互联网数据规模呈指数级增长,众多高并发、低时延应用对高性能硬件的需求催生了高性能存储器的出现。对于高性能存储器而言,由于其存储侧I/O吞吐能力强大,分布式文件系统需要分配较多的计算资源以完成数据处理与数据交换,从而导致系统的传输时延增加,从而限制了网络传输能力与系统性能。为了解决这个问题,远程内存直接存取(RemoteDirectMemoryAccess,简称RDMA)网络应运而生,它在减少计算资源消耗的同时,能保证极低的传输时延。目前使用RDMA网络的分布式文件系统大多数是将RDMA库或插件作为RDMA模块使用。在此方式下,分布式文件系统的RDMA模块封装了底层的RDMA网络传输功能,并为上层应用提供调用接口,上层应用则通过该调用接口,间接使用RDMA网络。然而,现有使用RDMA网络的分布式文件系统都存在一些不可忽略的技术问题:由于分布式文件系统的网络传输层基本都与逻辑处理层严格隔离,从而无法根据RDMA传输的特点将RDMA网络与分布式文件系统的数据处理机制进行有效的整合与适配,进而一方面会导致数据传输过程中的内存操作的开销较大,另一方面会使得服务端的负载较大,传输时延较长。
技术实现思路
针对现有技术的以上缺陷或改进需求,本专利技术提供了一种基于RDMA网络的分布式文件系统数据传输方法和系统,其目的在于,根据RDMA网络传输的特点将其与分布式文件系统有机地结合在一起,从而解决现有使用RDMA网络的分布式文件系统存在的数据传输过程中内存操作的开销较大的技术问题,以及服务端的负载较大、传输时延较长的技术问题。为实现上述目的,按照本专利技术的一个方面,提供了一种基于RDMA网络的分布式文件系统数据传输方法,包括以下步骤:(1)客户端在接收到来自用户的文件访问请求时,向服务端发起RDMA连接请求;(2)服务端在获取到来自客户端的RDMA连接请求后,建立与客户端的RDMA连接;(3)客户端根据文件访问请求生成网络数据访问请求,并利用RDMA连接将该网络数据访问请求发送到服务端;(4)服务端判断来自于客户端的网络数据访问请求是数据读请求还是数据写请求,如果是数据读请求则进入步骤(5),如果是数据写请求则进入步骤(6);(5)服务端对网络数据访问请求进行解析,以获取其中的地址信息,并根据该地址信息获取其对应的文件在该服务端的内存中的地址作为服务端返回地址,然后进入步骤(8);(6)服务端判断网络数据访问请求对应文件的大小是否大于其已注册的文件存储空间,如果是则进入步骤(7),否则进入步骤(8);(7)服务端根据网络数据访问请求对应文件的大小对其已注册的文件存储空间进行扩容操作,并获取网络数据访问请求对应的文件在扩容后的文件存储空间中的待写入地址作为服务端返回地址;(8)服务端将服务端返回地址、以及RDMA远程访问权限信息发送到客户端;(9)客户端使用来自服务端的服务端返回地址、以及RDMA远程访问权限信息完成对服务端中与网络数据访问请求对应的单个数据块的远程访问操作;(10)客户端针对网络数据访问请求对应的其余所有数据块,重复上述步骤(9),直到完成所有数据块的访问操作为止,并通知服务端数据传输完成。优选地,步骤(3)具体为,将文件访问请求中的路径信息进行哈希运算以得到地址信息,并将该地址信息、以及文件访问请求对应的文件大小作为网络数据访问请求、并通过RDMASend的通信方式发送到服务端。优选地,文件存储空间是系统初始化阶段,服务端通过RDMA接口向RDMA网卡注册的内存空间,该内存空间中包含了服务端为所有用户存储的文件数据。优选地,步骤(7)中的扩容操作是首先对已有的文件存储空间进行翻倍扩容,如果翻倍扩容后的文件存储空间仍然不足以写入网络数据访问请求对应的文件,则继续进行翻倍扩容,直至能够写入网络数据访问请求对应的文件为止,若扩容过程中服务端已经没有足够的空间用于扩容,则过程结束;优选地,步骤(8)中,RDMA远程访问权限信息是服务端在系统初始化阶段向RDMA网卡注册时,从RDMA网卡获取到的。优选地,步骤(8)中,服务端发送服务端返回地址、以及RDMA远程访问权限信息是通过RDMASendInline的方式。优选地,步骤(9)中,远程访问操作是使用RDMA内存型通讯方式,通讯过程中需要使用客户端在系统初始化阶段通过RDMA接口向RDMA网卡注册的内存空间,该内存空间是可以反复使用的。优选地,所述分布式文件系统数据传输方法进一步包括所述步骤(10)以后的以下步骤:服务器在收到来自于客户端数据传输完成的通知后判断其已注册的文件存储空间的使用率是否超过阈值,如果是则进行文件存储空间的扩容操作,然后过程结束,否则过程结束。按照本专利技术的另一方面,提供了一种基于RDMA网络的分布式文件系统数据传输系统,包括:第一模块,其设置在客户端中,用于在接收到来自用户的文件访问请求时,向服务端发起RDMA连接请求;第二模块,其设置于服务端中,用于在获取到来自客户端的RDMA连接请求后,建立与客户端的RDMA连接;第三模块,其设置在客户端中,用于根据文件访问请求生成网络数据访问请求,并利用RDMA连接将该网络数据访问请求发送到服务端;第四模块,其设置于服务端中,用于判断来自于客户端的网络数据访问请求是数据读请求还是数据写请求,如果是数据读请求则进入第五模块,如果是数据写请求则进入第六模块;第五模块,其设置于服务端中,用于对网络数据访问请求进行解析,以获取其中的地址信息,并根据该地址信息获取其对应的文件在该服务端的内存中的地址作为服务端返回地址,然后进入第八模块;第六模块,其设置于服务端中,用于判断网络数据访问请求对应文件的大小是否大于其已注册的文件存储空间,如果是则进入第七模块,否则进入第八模块;第七模块,其设置于服务端中,用于根据网络数据访问请求对应文件的大小对其已注册的文件存储空间进行扩容操作,并获取网络数据访问请求对应的文件在扩容后的文件存储空间中的待写入地址作为服务端返回地址;第八模块,其设置于服务端中,用于将服务端返回地址、以及RDMA远程访问权限信息发送到客户端;第九模块,其设置在客户端中,用于使用来自服务端的服务端返回地址、以及RDMA远程访问权限信息完成对服务端中与网络数据访问请求对应的单个数据块的远程访问操作;第十模块,其设置在客户端中,用于针对网络数据访问请求对应的其余所有数据块,重复上述第九模块,直到完成所有数据块的访问操作为止,并通知服务端数据传输完成。优选地,所述分布式文件系统数据传输系统进一步包括第十一模块,其设置于服务端中,用于在收到来自于客户端数据传输完成的通知后判断其已注册的文件存储空间的使用率是否超过阈值,如果是则进行文件存储空间的扩容操作,然后过程结束,否则过程结束。总体而言,通过本专利技术所构思的以上技术方案与现有技术相比,能够取得下列有益效果:(1)本专利技术能够解决现有使用RDMA网络的分布式文件系统存在的数据传输过程中内存操作的开销较大的技术问题:由于本专利技术在本文档来自技高网...

【技术保护点】
1.一种基于RDMA网络的分布式文件系统数据传输方法,其特征在于,包括以下步骤:(1)客户端在接收到来自用户的文件访问请求时,向服务端发起RDMA连接请求;(2)服务端在获取到来自客户端的RDMA连接请求后,建立与客户端的RDMA连接;(3)客户端根据文件访问请求生成网络数据访问请求,并利用RDMA连接将该网络数据访问请求发送到服务端。(4)服务端判断来自于客户端的网络数据访问请求是数据读请求还是数据写请求,如果是数据读请求则进入步骤(5),如果是数据写请求则进入步骤(6);(5)服务端对网络数据访问请求进行解析,以获取其中的地址信息,并根据该地址信息获取其对应的文件在该服务端的内存中的地址作为服务端返回地址,然后进入步骤(8);(6)服务端判断网络数据访问请求对应文件的大小是否大于其已注册的文件存储空间,如果是则进入步骤(7),否则进入步骤(8);(7)服务端根据网络数据访问请求对应文件的大小对其已注册的文件存储空间进行扩容操作,并获取网络数据访问请求对应的文件在扩容后的文件存储空间中的待写入地址作为服务端返回地址;(8)服务端将服务端返回地址、以及RDMA远程访问权限信息发送到客户端。(9)客户端使用来自服务端的服务端返回地址、以及RDMA远程访问权限信息完成对服务端中与网络数据访问请求对应的单个数据块的远程访问操作;(10)客户端针对网络数据访问请求对应的其余所有数据块,重复上述步骤(9),直到完成所有数据块的访问操作为止,并通知服务端数据传输完成。...

【技术特征摘要】
1.一种基于RDMA网络的分布式文件系统数据传输方法,其特征在于,包括以下步骤:(1)客户端在接收到来自用户的文件访问请求时,向服务端发起RDMA连接请求;(2)服务端在获取到来自客户端的RDMA连接请求后,建立与客户端的RDMA连接;(3)客户端根据文件访问请求生成网络数据访问请求,并利用RDMA连接将该网络数据访问请求发送到服务端。(4)服务端判断来自于客户端的网络数据访问请求是数据读请求还是数据写请求,如果是数据读请求则进入步骤(5),如果是数据写请求则进入步骤(6);(5)服务端对网络数据访问请求进行解析,以获取其中的地址信息,并根据该地址信息获取其对应的文件在该服务端的内存中的地址作为服务端返回地址,然后进入步骤(8);(6)服务端判断网络数据访问请求对应文件的大小是否大于其已注册的文件存储空间,如果是则进入步骤(7),否则进入步骤(8);(7)服务端根据网络数据访问请求对应文件的大小对其已注册的文件存储空间进行扩容操作,并获取网络数据访问请求对应的文件在扩容后的文件存储空间中的待写入地址作为服务端返回地址;(8)服务端将服务端返回地址、以及RDMA远程访问权限信息发送到客户端。(9)客户端使用来自服务端的服务端返回地址、以及RDMA远程访问权限信息完成对服务端中与网络数据访问请求对应的单个数据块的远程访问操作;(10)客户端针对网络数据访问请求对应的其余所有数据块,重复上述步骤(9),直到完成所有数据块的访问操作为止,并通知服务端数据传输完成。2.根据权利要求1所述的分布式文件系统数据传输方法,其特征在于,步骤(3)具体为,将文件访问请求中的路径信息进行哈希运算以得到地址信息,并将该地址信息、以及文件访问请求对应的文件大小作为网络数据访问请求、并通过RDMASend的通信方式发送到服务端。3.根据权利要求1或2所述的分布式文件系统数据传输方法,其特征在于,文件存储空间是系统初始化阶段,服务端通过RDMA接口向RDMA网卡注册的内存空间,该内存空间中包含了服务端为所有用户存储的文件数据。4.根据权利要求1至3中任意一项所述的分布式文件系统数据传输方法,其特征在于,步骤(7)中的扩容操作是首先对已有的文件存储空间进行翻倍扩容,如果翻倍扩容后的文件存储空间仍然不足以写入网络数据访问请求对应的文件,则继续进行翻倍扩容,直至能够写入网络数据访问请求对应的文件为止,若扩容过程中服务端已经没有足够的空间用于扩容,则过程结束。5.根据权利要求1至4中任意一项所述的分布式文件系统数据传输方法,其特征在于,步骤(8)中,RDMA远程访问权限信息是服务端在系统初始化阶段向RDMA网卡注册时,从RDMA网卡获取到的。6.根据权利要求1所述的分布式文件系统数据传输方法,其特征在于,步骤(8)中,...

【专利技术属性】
技术研发人员:王桦周可阴智辉
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北,42

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

1