一种基于交换机的RDMA数据流在网重排序方法与流程
- 国知局
- 2024-08-02 14:35:07
本发明涉及数据中心无损网络负载均衡,特别涉及一种基于交换机的rdma数据流在网重排序方法。
背景技术:
1、目前数据中心为各种数据密集型、计算密集型应用提供算力支撑,例如机器学习、数据挖掘、图像处理以及大数据分析等。由于许多应用都部署于数据中心多个服务器,且数据处理过程采用分布式框架,多个服务器之间的通信效率成为制约算力提升的重要因素,因此,为保证网络传输效率,数据中心在高算力需求场景下采用基于远端直接内存访问(rdma,remote direct memory access)的无损网络,广泛应用于分布式存储、高性能计算、人工智能训练等场景。另外,为进一步提升数据中心网络通信效率,数据中心网络负载均衡技术得到广泛研究与应用。在数据中心典型的多路径网络拓扑下,多个服务器之间具有多条冗余传输路径,网络负载均衡技术将网络流量均匀分配到节点间多路径,能有效提升网络传输效率。
2、在无损网络负载均衡中,rdma数据流在多路径传输,易导致rdma数据流乱序。而rdma在接收端网卡通常不支持数据包重排序,乱序数据包将被视为丢包而触发重传,严重损害rdma传输效率。现有优化方法通常在交换机或接收端对rdma乱序包进行重排序:
3、1)若在交换机内进行重排序,则是利用可编程交换机等设备实现在网重排序,即将乱序包放置到交换机多个出端口队列按序转发,但在突发流量下,将占用大量队列与缓存资源,开销过大且不可控;
4、2)若在接收端进行重排序,一般可以在接收端网卡硬件或更上层协议栈新增重排序功能,但接收端网卡硬件资源少,大规模部署难,且在上层协议栈处理乱序包需要主机内存和cpu介入,违背了rdma减少主机cpu调度的初衷。
5、综上,现有的优化方法存在开销大、大规模部署困难的问题。
技术实现思路
1、本发明提供了一种基于交换机的rdma数据流在网重排序方法,其目的是为了可大规模部署,在保障rdma多路径传输性能的同时降低乱序包的重排序开销。
2、为了达到上述目的,本发明提供了一种基于交换机的rdma数据流在网重排序方法,包括:
3、步骤1,源交换机通过获取的多条源rdma数据流,得到每条源rdma数据流的编号,每条源rdma数据流包括多个rdma数据包;
4、步骤2,针对每条源rdma数据流,源交换机为源rdma数据流分配传输路径,通过传输路径将源rdma数据流中的rdma数据包传输至目的交换机;
5、步骤3,源交换机在数据传输过程中感知每条传输路径的拥塞程度,并将拥塞程度大于预设阈值的旧传输路径上的部分rdma数据包重路由至拥塞程度小于预设阈值的新传输路径;
6、步骤4,目的交换机接收所有通过新传输路径传输的rdma数据包和通过旧传输路径传输的rdma数据包,并将满足预设条件的不同源rdma数据流中的乱序rdma数据包放入同一重排序队列;
7、步骤5,目的交换机根据每条所述源rdma数据流中最后一个rdma数据包在所述旧传输路径传输的发送时间、旧传输路径的期望排队延迟以及重排序队列的排空时间,在同一重排序队列中按每条源rdma数据流的编号依次对满足预设条件的乱序rdma数据包进行重排序,并按重排序结果进行数据流转发,重排序队列的排空时间为重排序队列中重排序后的rdma数据流转发完成所需的时间。
8、进一步来说,步骤1包括:
9、源交换机获取多条源rdma数据流;
10、针对每条源rdma数据流,将源rdma数据流的源物理地址、目的物理地址、源端口和目的端口构成四元组,得到多个四元组;
11、针对每个四元组,对四元组进行哈希计算,得到每条源rdma数据流的编号。
12、进一步来说,在重路由之前,还包括:
13、以每条源rdma数据流的编号为主键,在源交换机中建立多个源rdma数据流映射表;
14、将记录的源rdma数据流在传输路径上发送的最后一个rdma数据包的时间信息存入数据流映射表,数据流映射表包括编号、传输路径、有序序列号、每条源rdma数据流中最后一个rdma数据包的离开时间。
15、进一步来说,在将拥塞程度大于预设阈值的旧传输路径上的部分rdma数据包重路由至拥塞程度小于预设阈值的新传输路径之后,还包括:
16、为重路由至新传输路径传输的第一个rdma数据包携带时间戳信息,时间戳信息为与该rdma数据包对应的源rdma数据流中最后一个rdma数据包的离开时间。
17、进一步来说,根据rdma数据流在旧传输路径传输最后一个rdma数据包的发送时间、旧传输路径的期望排队延迟以及重排序队列的排空时间,在同一重排序队列中按每条源rdma数据流的编号依次对满足预设条件的乱序rdma数据包进行重排序,包括:
18、利用m/g/1-fcfs排队模型计算旧传输路径的期望排队延迟;
19、根据重排序队列中rdma数据包的转发情况,计算重排序队列的排空时间;
20、根据rdma数据流在旧传输路径传输最后一个rdma数据包的发送时间、旧传输路径的期望排队延迟以及重排序队列的排空时间,在同一重排序队列中按每条源rdma数据流的编号依次对满足预设条件的rdma数据包进行重排序。
21、进一步来说,旧传输路径的期望排队延迟,表达式为:
22、
23、其中,表示旧传输路径的期望排队延迟,表示旧传输路径的拥塞程度,,表示旧传输路径的流量到达率,表示旧传输路径的端口转发速率。
24、进一步来说,根据重排序队列中rdma数据包的转发情况,计算重排序队列的排空时间,包括:
25、若重排序队列中的rdma数据包正在转发,该重排序队列的排空时间为:
26、
27、若重排序队列中的rdma数据包处于暂停状态时,该重排序队列的排空时间为:
28、
29、其中,表示数据包的大小,表示第个重排序队列的排队长度,表示源rdma数据流中最后一个rdma数据包在旧传输路径的离开时间,表示传输路径的期望排队延迟,表示端口转发速率。
30、进一步来说,预设条件包括:
31、若新到达目的交换机的乱序rdma数据包满足公式,可以将多条rdma数据流的乱序rdma数据包放置于同一重排序队列进行重排序;其中,表示源rdma数据流中最后一个rdma数据包在旧传输路径的离开时间,表示传输路径的期望排队延迟,表示附加的时间阈值。
32、进一步来说,预设条件还包括:
33、重排序队列的排队长度不超过目的交换机的基于优先级的流量控制暂停阈值。
34、本发明的上述方案有如下的有益效果:
35、本发明通过源交换机获取多条源rdma数据流,得到每条源rdma数据流的编号;源交换机分别为每条源rdma数据流分配传输路径,通过传输路径将源rdma数据流中的rdma数据包传输至目的交换机,并在数据传输过程中感知每条传输路径的拥塞程度,并将拥塞程度大于预设阈值的旧传输路径上的部分rdma数据包重路由至拥塞程度小于预设阈值的新传输路径;目的交换机接收所有通过新传输路径传输的rdma数据包和通过旧传输路径传输的rdma数据包,并将满足预设条件的乱序rdma数据包放入同一重排序队列;根据rdma数据流在旧传输路径传输最后一个rdma数据包的发送时间、旧传输路径的期望排队延迟以及重排序队列的排空时间,在同一重排序队列中按每条源rdma数据流的编号依次对满足预设条件的乱序rdma数据包进行重排序,并按重排序结果进行数据流转发;与现有技术相比,本发明所提供的方法在保障了多路径传输性能的同时,根据数据流在旧传输路径传输最后一个rdma数据包的发送时间、旧传输路径的期望排队延迟、重排序队列的排空时间,让到达目的交换机的不同乱序数据流共享同一重排序队列,在同一重排序队列中按每条源rdma数据流的编号依次对满足预设条件的rdma数据包进行重排序,保障不同乱序数据流之间不互相阻塞转发,实现队列资源的充分利用,从而减少目的交换机的队列占用,降低了乱序包的重排序开销,且无需修改接收端网卡,避免了因接收端网卡硬件资源少导致无法大规模部署于交换机中的问题。
36、本发明的其它有益效果将在随后的具体实施方式部分予以详细说明。
本文地址:https://www.jishuxx.com/zhuanli/20240801/243252.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。