RDMA数据传输系统、RDMA数据传输方法及网络设备技术方案

技术编号:36816336 阅读:8 留言:0更新日期:2023-03-12 00:26
本申请实施例公开了一种RDMA数据传输系统、RDMA数据传输方法及网络设备,例如可以用于智能网卡(Smart NIC)或数据处理单元(DPU)等网络设备,例如可以应用于应用于RoCEv1、RoCEv2以及其他新RDMA场景。该RDMA数据传输系统可以包括第一主机中的第一网络设备和第二主机中的第二网络设备。第一网络设备可以创建供第一主机运行的多个进程使用的SSQ,从SSQ获取第一进程的RDMA数据传输消息,并且在封装RDMA数据传输消息的第一报文中同时封装第一进程对应的第一标识。第二网络设备在封装反馈消息的第二报文中同时封装第一标识,这样,第一网络设备在接收到第二报文后,可以根据第二报文中的第一标识高效的通知第一进程已处理该RDMA数据传输消息,进而有利于提高第一进程的运行效率。的运行效率。的运行效率。

【技术实现步骤摘要】
RDMA数据传输系统、RDMA数据传输方法及网络设备


[0001]本申请涉及通信
,尤其涉及一种RDMA数据传输系统、RDMA数据传输方法及网络设备。

技术介绍

[0002]远程直接内存访问(remote direct memory access,RDMA)是一种绕过远程主机CPU的核心访问CPU的内存中数据的技术,由于不经过CPU核心,不仅节省了大量CPU核心资源,同样也提高了系统吞吐量、降低了系统的网络通信延迟,尤其适合在大规模并行计算机集群中有广泛应用。
[0003]本端主机中的应用进程执行RDMA数据传输消息时,本端主机的网卡从主机或网卡的内存中的发送队列中将该RDMA数据传输消息读取到网卡的缓冲区中,之后通过网络将该RDMA数据传输消息发送到对端主机的网卡。之后,对端主机的网卡发送反馈信息给本端主机的网卡,本端主机的网卡根据反馈信息通知应用进程该RDMA数据传输消息已被处理完。
[0004]但是,当本端主机的网卡的发送队列被多个应用进程共享的时候,反馈信息无法快速将该RDMA数据传输消息的完成情况通知对应的应用进程。

技术实现思路

[0005]本申请实施例提供一种数据传输系统、数据传输方法及网络设备,用于快速将该RDMA数据传输消息的完成情况通知对应的应用进程。
[0006]为解决上述技术问题,本申请实施例提供以下技术方案:
[0007]第一网络设备可以创建供第一主机运行的多个进程使用的共享发送队列,第一网络设备可以从共享发送队列获取第一进程的RDMA数据传输消息,并且在封装RDMA数据传输消息的报文(称作第一报文)中同时封装第一进程对应的第一标识,通过RDMA方式向第二网络设备发送第一报文。第二网络设备接收到第一报文后,可以在封装反馈消息的报文(称作第二报文)中同时封装第一标识,之后通过RDMA方式向第一网络设备发送第二报文。这样,第一网络设备在接收到第二报文后,无需根据共享发送队列的上下文来确定第二报文中的反馈消息对应于第一进程,而是可以根据第二报文中的第一标识确定该反馈消息对应于第一进程,有利于高效的通知第一进程已处理该RDMA数据传输消息,进而有利于提高第一进程的运行效率。
[0008]可选的,第一报文为第一网络设备根据RDMA协议封装得到的,第二报文为第二网络设备根据RDMA协议封装得到的,该RDMA协议可以例如为无线带宽(infiniband)协议、或采用聚合以太网络版本1的RDMA(RDMA over Converged Ethernet version 1,RoCE1)协议、或采用聚合以太网络版本2的RDMA(RDMA over Converged Ethernet version 2,RoCE2)协议、或互联网广域RDMA协议(internet wide area RDMA protocol,iWARP)等。
[0009]可选的,第一网络设备可以通过该共享发送队列所绑定的传输通道向第二网络设备发送第一报文。该传输通道用于实现第一网络设备和第二网络设备之间的网络连接,该
传输通道可以例如为输入输出通道(channel

IO)。
[0010]可选的,第二网络设备通过该传输通道接收第一报文后,还可以通过该传输通道向第二网络设备发送第二报文。
[0011]可选的,第一网络设备可以通过该传输通道接收来自第二网络设备的第二报文。
[0012]可选的,所述第一报文和所述第二报文还包括第二标识,所述第二标识用于从所述第一进程的多个RDMA数据传输消息中确定所述RDMA数据传输消息;所述第一网络设备具体用于根据所述第一标识、所述反馈消息和所述第二标识通知所述第一进程所述RDMA数据传输消息的完成情况。通过在第一报文和第二报文中携带第二标识,有利于第一网络设备高效、准确的通知第一进程RDMA数据传输消息的完成情况。
[0013]可选的,所述共享发送队列具体用于保存来自所述多个进程的工作请求,所述第一网络设备具体用于从所述共享发送队列获取来自所述第一进程的第一工作请求,根据所述第一工作请求获取所述RDMA数据传输消息,所述第一工作请求描述所述RDMA数据传输消息。
[0014]可选的,共享发送队列可以设置在第一网络设备的内存中。或者,可选的,共享发送队列可以设置在第一主机的内存中。
[0015]和根据共享发送队列的上下文来从共享发送队列读取第一工作请求来确定第一标识相比,本申请实施例通过第二报文获取第一标识,有利于尽量避免从共享发送队列中读取工作请求,有利于节约第一网络设备的缓存资源,减少工作请求的完成过程中的延时。
[0016]可选的,所述第一网络设备具体用于根据所述第一标识从多个完成队列中确定所述第一进程对应的第一完成队列,根据所述反馈消息在所述第一完成队列中写入工作完成元素,所述工作完成元素描述所述RDMA数据传输消息的完成情况。
[0017]第一标识可以用于确定第一完成队列,本申请实施例可以通过第一报文和第二报文携带的第一标识来高效准确的确定第一完成队列,有利于高效准确的通知第一进程已处理该RDMA数据传输消息,进而有利于提高第一进程的运行效率。
[0018]第二方面,本申请实施例提供一种RDMA数据传输方法,包括:第一网络设备从共享发送队列获取第一进程的RDMA数据传输消息,所述第一网络设备设置在第一主机上,所述第一进程是所述第一主机运行的使用所述共享发送队列的多个进程中的任意一个进程;所述第一网络设备向第二网络设备发送第一报文,所述第二网络设备设置在第二主机上,所述第一报文包括所述RDMA数据传输消息和所述第一进程对应的第一标识;所述第一网络设备接收来自所述第二网络设备的第二报文,所述第二报文包括所述第一标识和反馈消息,所述反馈消息指示所述RDMA数据传输消息的完成情况;所述第一网络设备根据所述第二报文中的所述第一标识和所述反馈消息通知所述第一进程所述RDMA数据传输消息的完成情况。
[0019]可选的,第一报文为第一网络设备根据RDMA协议封装得到的,第二报文为第二网络设备根据RDMA协议封装得到的,该RDMA协议可以例如为无线带宽(infiniband)协议、或采用聚合以太网络版本1的RDMA(RDMA over Converged Ethernet version 1,RoCE1)协议、或采用聚合以太网络版本2的RDMA(RDMA over Converged Ethernet version 2,RoCE2)协议、或互联网广域RDMA协议(internet wide area RDMA protocol,iWARP)等。
[0020]可选的,第一网络设备可以通过该共享发送队列所绑定的传输通道向第二网络设
备发送第一报文。该传输通道用于实现第一网络设备和第二网络设备之间的网络连接,该传输通道可以例如为输入输出通道(channel

IO)。
[0021]可选的,第一网络设备可以通过该传输通道接收来自第二网络设本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种远程直接内存访问RDMA数据传输系统,其特征在于,所述RDMA数据传输系统包括第一网络设备和第二网络设备,所述第一网络设备设置于第一主机上,所述第二网络设备设置于第二主机上;所述第一网络设备,用于从共享发送队列获取第一进程的RDMA数据传输消息,向所述第二网络设备发送第一报文,其中,所述第一进程是所述第一主机运行的使用所述共享发送队列的多个进程中的任意一个进程,所述第一报文包括所述RDMA数据传输消息和所述第一进程对应的第一标识;所述第二网络设备,用于接收所述第一报文,根据所述第一报文向所述第一网络设备发送第二报文,其中,所述第二报文包括所述第一标识和反馈消息,所述反馈消息指示所述RDMA数据传输消息的完成情况;所述第一网络设备,还用于接收所述第二报文,根据所述第二报文中的所述第一标识和所述反馈消息通知所述第一进程所述RDMA数据传输消息的完成情况。2.根据权利要求1所述的系统,其特征在于,所述第一报文和所述第二报文还包括第二标识,所述第二标识用于从所述第一进程的多个RDMA数据传输消息中确定所述RDMA数据传输消息;所述第一网络设备具体用于根据所述第一标识、所述反馈消息和所述第二标识通知所述第一进程所述RDMA数据传输消息的完成情况。3.根据权利要求1或2所述的系统,其特征在于,所述共享发送队列具体用于保存来自所述多个进程的工作请求;所述第一网络设备具体用于从所述共享发送队列获取来自所述第一进程的第一工作请求,根据所述第一工作请求获取所述RDMA数据传输消息,其中,所述第一工作请求描述所述RDMA数据传输消息。4.根据权利要求1至3中任一项所述的系统,其特征在于,所述第一网络设备具体用于根据所述第一标识从多个完成队列中确定所述第一进程对应的第一完成队列,根据所述反馈消息在所述第一完成队列中写入工作完成元素,其中,所述工作完成元素描述所述RDMA数据传输消息的完成情况。5.一种远程直接内存访问RDMA数据传输方法,其特征在于,包括:第一网络设备从共享发送队列获取第一进程的RDMA数据传输消息,所述第一网络设备设置在第一主机上,所述第一进程是所述第一主机运行的使用所述共享发送队列的多个进程中的任意一个进程;所述第一网络设备向第二网络设备发送第一报文,所述第二网络设备设置在第二主机上,所述第一报文包括所述RDMA数据传输消息和所述第一进程对应的第一标识;所述第一网络设备接收来自所述第二网络设备的第二报文,所述第二报文包括所述第一标识和反馈消息,所述反馈消息指示所述RDMA数据传输消息的完成情况;所述第一网络设备根据所述第二报文中的所述第一标识和所述反馈消息通知所述第一进程所述RDMA数据传输消息的完成情况。6.根据权利要求5所述的方法,其特征在于,所述第一报文和所述第二报文还包括第二标识,所述第二标识用于从所述第一进程的多个RDMA数据传输消息中确定所述RDMA数据传输消息;
所述第一网络设备根据所述第二报文中的所述第一标识和所述反馈消息通知所述第一进程所述RDMA数据传输消息的完成情况包括:所述第一网络设备根据所述第一标识、所述反馈消息和所述第二标识通知所述第一进程所述RDMA数据传输消息的完成情况。7.根据权利要求5或6所述的方法,其特征在于,所述共享发送队列具体用于保存来自所述多个进程的工作请求;所述第一网络设备从共享发送队列获取第一进程的RDMA数据传输消息包括:所述第一网络设备从所述共享发送队列获取来自所述第一进程的第一工作请求,所述第一工作请求描述所述RDMA数据传输消息;所述第一网络设备根据所述第一工作请求获取所述RDMA数据传输消息。8.根据权利要求5至7中任一项所述的方法,其特征在于,所述第一网络设备根据所述第二报文中的所述第一标识和所述反馈消息通知所述第一进程所述RDMA数据传输消息的完成情况,包括:所述第一网络设备根据所述第一标识从多个完成队列中确定所述第一进程对应的第一完成队列;所述第一网络设备根据所述反馈消息在所述第一完成队列中写入工作完成元素,所述工作完成元素用于通知所述第一进程所述RDMA数据传输消息的完成情况。9.一种远程直接内存访问RDMA数据传输方法,其特征在于,包...

【专利技术属性】
技术研发人员:曲会春邱军武雪平张锦彬吴沛
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1