基于RDMA的通信方法、节点、系统及介质技术方案

技术编号:34000035 阅读:35 留言:0更新日期:2022-07-02 11:54
本发明专利技术实施例公开了一种基于远程直接存储器访问RDMA的通信方法、节点、系统及介质,该基于RDMA的通信方法,适用于第一存储节点中的第一共享资源包括多个一级缓存,多个一级缓存以第一处理核为粒度相互隔离,第一处理核对应的第一业务线程组相互隔离,第一业务线程组包括至少一条第一业务线程的场景,执行的步骤包括:第一RDMA消息队列接收第二存储节点的第二RDMA消息队列发送的资源访问请求;第一业务线程至少从对应的第一处理核的一级缓存获取所需资源;第一业务线程基于所需资源处理资源访问请求;第一RDMA消息队列将处理结果发送至第二RDMA消息队列,可以在RDMA数据传输过程中避免对共享资源的争抢,尽可能地发挥出RDMA通信网络的最大传输性能。网络的最大传输性能。网络的最大传输性能。

【技术实现步骤摘要】
基于RDMA的通信方法、节点、系统及介质


[0001]本专利技术实施例涉及远程直接存储器访问RDMA(英文全称:Direct Remote Memory Access)通信
,尤其涉及一种基于RDMA的通信方法、节点、系统及介质。

技术介绍

[0002]在分布式存储领域RDMA技术已经得到越来越广泛地应用,RDMA技术能够在远端存储节点的CPU不参与的情况下,绕过内核直接访问远端存储节点的内存,实现零拷贝数据传输。多个存储节点可以通过RDMA网卡互联,从而数据可以在不同存储节点之间完成低时延高带宽的传输,使得分布式存储系统的性能得到很大的提升。目前通过优化RDMA内存注册、发挥RDMA语义比如send/receive、RDMA read、RDMA write等方式提升存储节点在RDMA的数据传输性能。
[0003]存在的问题是,RDMA数据传输过程中作为数据请求端的存储节点存在多核间的线程和监控程序,造成对预注册资源存在并发访问的问题,在一定程度上无法发挥出RDMA通信网络的最大传输性能。另外,在存储节点之间建立一条可靠连接RC(英文全称:reliable connection)并且通过RDMA原语实现了数据的零copy,然而多线程在RDMA数据传输过程中使用RDMA原语发送消息时对RDMA 收发队列QP(英文全称:QUEUE PAIR)/完成队列CQ(英文全称:COMPLISH QUEUE)资源的争抢同样会对RDMA数据传输过程中的时延产生影响。因此,如何在RDMA数据传输过程中避免对共享资源的争抢,尽可能地发挥出RDMA通信网络的最大传输性能成为亟待解决的问题。

技术实现思路

[0004]本说明书一个或多个实施例的目的是提供一种基于RDMA的通信方法、节点、系统及介质,可以在RDMA数据传输过程中避免对共享资源的争抢,尽可能地发挥出RDMA通信网络的最大传输性能。
[0005]为解决上述技术问题,本说明书一个或多个实施例是这样实现的:第一方面,提供了一种RDMA的通信方法,适用于第一存储节点中的第一共享资源包括多个一级缓存,所述多个一级缓存以第一处理核为粒度相互隔离,所述第一处理核对应的第一业务线程组相互隔离,所述第一业务线程组包括至少一条第一业务线程,所述第一业务线程对应设置有第一RDMA消息队列的场景,在第一存储节点侧执行的步骤包括:所述第一RDMA消息队列接收第二存储节点的第二RDMA消息队列发送的资源访问请求;所述第一业务线程至少从对应的所述第一处理核的所述一级缓存获取所需资源;所述第一业务线程基于所述所需资源处理所述资源访问请求;所述第一RDMA消息队列将处理结果发送至所述第二RDMA消息队列。
[0006]第二方面,提出了一种基于RDMA的通信方法,适用于第二存储节点中的第二共享资源包括多个一级缓存,所述多个一级缓存以第二处理核为粒度相互隔离,第二RDMA消息队列与所述第二处理核一一对应的场景,在第二存储节点侧执行的步骤包括:第二RDMA消
息队列发送资源访问请求至第一存储节点的第一RDMA消息队列,所述第一RDMA消息队列与所述第二RDMA消息队列一一对应;在所述第一存储节点基于所需资源处理所述资源访问请求后,接收所述第一RDMA消息队列发送的处理结果。
[0007]第三方面,提出了一种存储节点,包括:第一处理核,第一共享资源,包括多个一级缓存,所述多个一级缓存以第一处理核为粒度相互隔离;第一业务线程组,所述第一业务线程组与所述第一处理核一一对应,所述第一业务线程组之间相互隔离,所述第一业务线程组包括至少一条第一业务线程;第一RDMA消息队列,与所述第一业务线程对应设置,用于接收第二存储节点的第二RDMA消息队列发送的资源访问请求;所述第一业务线程,用于至少从对应的所述第一处理核的所述一级缓存获取所需资源;以及,用于基于所述所需资源处理所述资源访问请求;所述第一RDMA消息队列,还将处理结果发送至所述第二RDMA消息队列。
[0008]第四方面,提出了一种存储节点,包括:第二处理核;第二共享资源,包括多个一级缓存,所述多个一级缓存以所述第二处理核为粒度相互隔离;第二RDMA消息队列,与所述第二处理核一一对应;所述第二RDMA消息队列,用于发送资源访问请求至第一存储节点的第一RDMA消息队列,所述第一RDMA消息队列与所述第二RDMA消息队列一一对应;以及,所述第二RDMA消息队列,还用于在所述第一存储节点基于所需资源处理所述资源访问请求后,接收所述第一RDMA消息队列发送的处理结果。
[0009]第五方面,提出了一种分布式存储系统,包括如上文所述的存储节点。
[0010]第六方面,提出了一种存储介质,用于计算机可读存储,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行时,实现如上文所述的基于RDMA的通信方法的步骤。
[0011]由以上本说明书一个或多个实施例提供的技术方案可见,本专利技术实施例提供的基于RDMA的通信方法,适用于将第一存储节点中的第一共享资源的部分资源划分为多个一级缓存,多个一级缓存以第一处理核为粒度相互隔离,也就是按照参与RDMA通信的第一处理核对这些多个一级缓存进行相互隔离,并且每一个第一处理核对应的第一业务线程组之间相互隔离,第一业务线程组包括至少一条第一业务线程,第一业务线程对应设置有第一RDMA消息队列的场景,因此当第一RDMA消息队列接收到访问请求时,访问方式可以实现隔离访问,第一业务线程进行RDMA通信时,只能从第一业务线程所在的第一处理核上的一级缓存中获取资源,减少数据交互过程中争抢资源而产生的通信性能下降的问题。在第一存储节点侧执行的步骤包括:第一RDMA消息队列接收第二存储节点的第二RDMA消息队列发送的资源访问请求;第一业务线程至少从对应的第一处理核的一级缓存获取所需资源;第一业务线程基于所需资源处理资源访问请求;第一RDMA消息队列将处理结果发送至第二RDMA消息队列。因此在出现多消息队列同时需要第一存储节点处理时,可以采用不同第一业务线程组的第一业务线程来处理,相互隔离访问不同业务线程组对应的第一处理核上的一级缓存,可以在RDMA数据传输过程中避免对共享资源的争抢,发挥RDMA通信传输的性能。
附图说明
[0012]为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对一个或多个实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下
面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0013]图1是本专利技术实施例提供一种基于RDMA的通信方法所适用的存储节点的结构示意图。
[0014]图2是本专利技术实施例提供另一种基于RDMA的通信方法的步骤示意图。
[0015]图3是本专利技术实施例提供又一种基于RDMA的通信方法的步骤示意图。
[0016]图4是本专利技术实施例提供又一种基于RDMA的通信方法的步骤示本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于远程直接存储器访问RDMA的通信方法,适用于第一存储节点中的第一共享资源包括多个一级缓存,所述多个一级缓存以第一处理核为粒度相互隔离,所述第一处理核对应的第一业务线程组相互隔离,所述第一业务线程组包括至少一条第一业务线程,所述第一业务线程对应设置有第一RDMA消息队列的场景,在第一存储节点侧执行的步骤包括:所述第一RDMA消息队列接收第二存储节点的第二RDMA消息队列发送的资源访问请求;所述第一业务线程至少从对应的所述第一处理核的所述一级缓存获取所需资源;所述第一业务线程基于所述所需资源处理所述资源访问请求;所述第一RDMA消息队列将处理结果发送至所述第二RDMA消息队列。2.如权利要求1所述的通信方法,在所述存储节点采用NUMA架构下,所述第一共享资源还包括多个二级缓存,所述多个二级缓存以第一NUMA节点为粒度相互隔离,所述第一业务线程至少从对应的所述第一处理核的所述一级缓存获取所需资源,具体包括:当所述一级缓存的资源配额余量低于第一资源配额水线值,所述第一业务线程从所述第一处理核对应的所述二级缓存获取所述所需资源,或者;当所述二级缓存的资源配额余量低于第二资源配额水线值,所述第一业务线程从所述存储节点的操作系统获取所述所需资源。3.如权利要求1所述的通信方法,所述资源访问请求包括所述所需资源对应的键值,所述第一业务线程至少从对应的所述第一处理核的所述一级缓存获取所需资源,具体包括:所述第一业务线程基于所述键值查找映射表,得到所述所需资源所在的地址;所述第一业务线程基于所述地址获取所述所需资源。4.如权利要求3所述的通信方法,第一RDMA消息队列接收第二存储节点的第二RDMA消息队列发送的资源访问请求之前,所述方法,还包括:将所述第一共享资源向RDMA网卡进行地址注册;创建所述映射表,所述映射表包括所述第一共享资源的地址与键值的对应关系;将所述映射表与所述第二存储节点共享。5.如权利要求1至4中任一项所述的通信方法,第一RDMA消息队列与所述第一处理核一一对应,所述第一RDMA消息队列与所述第二RDMA消息队列一一对应,所述第一业务线程至少从对应的所述第一处理核的所述一级缓存获取所需资源,具体包括:与所述第一处理核对应的所述第一业务线程组中的所述第一业务线程至少从对应的所述第一处理核的所述一级缓存获取所述所需资源;对应地,所述第一RDMA消息队列将处理结果发送至所述第二RDMA消息队列,具体包括:所述第一RDMA消息队列将所述处理结果发送至与所述第一RDM消息队列一一对应的所述第二RDMA消息队列。6.如权利要求5所述的通信方法,第一RDMA消息队列接收第二存储节点的第二RDMA消息队列发送的资源访问请求之前,所述方法,还包括:建立第一用户消息缓存队列,所述第一用户消息缓存队列与所述第一RDMA消息队列对应一一对应,所述第一用户消息缓存队列包括第一读写派发队列DQ;对应地,第一RDMA消息队列接收第二存储节点的第二RDMA消息队列发送的资源访问请求之后,所述第一业务线程至少从对应的所述第一处理核的所述一级缓存获取所需资源之
前,所述方法,还包括:所述第一业务线程将所述资源访问请求放入所述第一读写派发队列DQ,以获取所述资源访问请求。7.一种基于RDMA的通信方法,适用于第二存储节点中的第二共享资源包括多个一级缓存,所述多个一级缓存以第二处理核为粒度相互隔离,第二RDMA消息队列与所述第二处理核一一对应的场景,在第二存储节点侧执行的步骤包括:第二RDMA消息队列发送资源访问请求至第一存储节点的第一RDMA消息队列,所述第一RDMA消息队列与所述第二RDMA消息队列一一对应;在所述第一存储节点基于所需资源处理所述资源访问请求后,第二RDMA消息队列接收所述第一RDMA消息队列发送的处理结果。8.如权利要求7所述的通信方法,所述第二处理核对应的第二业务线程组相互隔离,所述第二业务线程组包括至少一条第二业务线程,第二RDMA消息队列发送资源访问请求至第一存储节点的第一RDMA消息队列之前,所述方法,还包括:建立第二用户消息缓存队列,所述第二用户消息缓存队列与所述第二RDMA消息队列一一对应,所述第二用户消息缓存队列包括第二读写请求队列RQ和第二读写完成队列CAQ;所述第二业务线程将所述资源访问请求放入所述第一读写请求队列RQ,以供获取所述资源访问请求;所述第二业务线程将所述资源访问请求发送至第二RDMA消息队列,对应地:第二RDMA消息队列接收所述第一RDMA消息队列发送的处理结果之后,所述方法,还包括:所述第二业务线程将所述处理结果放入所述第二读写完成队列CAQ,以获取所述处理结果;所述第二业务线程将基于所述处理结果核查所述第二读写请求队列RQ中的所述资源访问请求后上报业务。9.一种存储节点,包括:...

【专利技术属性】
技术研发人员:刘坤刘永余鹏宋雨荷
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:

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

1