参考:
Nvidia 文档:
具有往返时间拥塞控制的缩放零接触 RoCE 技术 - NVIDIA 技术博客
缩写:
RTTCC : round-trip-time-congestion-control
HCI: Hyperconverged Infrastructure 超融合基础设施
GA: generally Availability 正式发布
一、概述
Zero Touch RoCE (ZTR)技术是NVIDIA开发的一种创新技术,它允许在不需要特殊交换机配置的情况下,部署RDMA(RoCE,RDMA over Converged Ethernet)。ZTR技术简化了RoCE网络的部署和管理,提高了数据中心的效率和灵活性。
ZTR技术的主要特点包括:
- 无需配置 :传统的RoCE部署需要配置交换机的显式拥塞通知(ECN)和优先级流控(PFC)等功能。而ZTR技术无需这些复杂的配置,大大简化了部署流程。
- 无缝集成:ZTR技术允许RoCE流量与非RoCE流量在同一个TCP/IP环境中并行运行,无需对现有网络架构进行大的改动。这使得数据中心可以在不中断现有业务的情况下,逐步引入RoCE技术。
- 高性能:ZTR技术通过NVIDIA开发的往返时间拥塞控制(RTTCC)算法,主动监控和适应网络拥塞,确保RoCE网络的高性能运行。RTTCC算法使用基于硬件的反馈环路实现动态拥塞控制,与基于软件的拥塞控制算法相比,提供了显著优越的性能。
- 可扩展性:ZTR技术使得RoCE网络可以轻松扩展到数千台服务器,满足大型数据中心和云计算平台的需求。通过添加RTTCC算法,ZTR技术变得更加健壮和可扩展,无需依赖丢包来通知服务器网络拥塞。
NVIDIA Zero Touch RoCE ( ZTR )使数据中心能够无缝部署 聚合以太网上的 RDMA ( RoCE ) ,而无需任何特殊交换机配置。直到最近, ZTR 还仅适用于中小型数据中心。同时,大规模部署传统上依赖于显式拥塞通知( ECN )来启用 RoCE 网络传输,这需要交换机配置。
新的 NVIDIA 拥塞控制算法往返时间拥塞控制( RTTCC ) -- 允许 ZTR 在不影响性能的情况下扩展到数千台服务器。通过使用 ZTR 和 RTTCC ,数据中心运营商可以在无需任何交换机配置的情况下,享受部署和操作的便利性,以及大规模远程直接内存访问( RDMA )的卓越性能。
这篇文章描述了以前在大规模和小型 RoCE 部署中推荐的 RoCE 拥塞控制。然后介绍了一种新的拥塞控制算法,该算法允许 ZTR 的无配置大规模实现,其性能类似于支持 ECN 的 RoCE 。
二、具有数据中心量化拥塞通知的 RoCE 部署
在典型的基于 TCP 的环境中,分布式内存请求需要许多步骤和 CPU 周期,这会对应用程序性能产生负面影响。 RDMA 消除了服务器之间内存数据传输的所有 CPU 参与,大大加快了对存储数据的访问和应用程序性能。
RoCE 在以太网环境中提供 RDMA ,这是数据中心的主要网络结构。以太网需要高级拥塞控制机制来支持 RDMA 网络传输。数据中心量化拥塞通知( DCQCN )是一种拥塞控制算法,能够响应拥塞通知并动态调整流量传输速率。
DCQCN 的实现需要启用显式拥塞通知( ECN ),这需要配置网络交换机。 ECN 将交换机配置为设置拥塞经历( CE )位,以指示即将发生的拥塞。
三、具有反应式拥塞控制的零接触 RoCE
NVIDIA 开发的 ZTR 技术允许 RoCE 部署,无需配置交换机基础设施。 ZTR 根据 InfiniBand Trade Association ( IBTA ) RDMA 标准构建,完全符合 RoCE specifications ,支持 RoCE 的无缝部署。 ZTR 还拥有与传统交换机启用的 RoCE 相当的性能,并且明显优于传统的基于 TCP 的内存访问。此外,通过 ZTR , RoCE 网络传输服务在普通 TCP / IP 环境中与非 RoCE 通信并行运行。
正如 NVIDIA 零接触 RoCE 技术为 Microsoft Azure Stack HCI 实现了云经济 文章中所指出的,微软已经为其 Azure Stack HCI 平台验证了 ZTR ,该平台通常可扩展到几十个节点。在这样的环境中, ZTR 依赖于隐式丢包通知,这对于小规模部署来说已经足够了。通过添加新的基于往返计时器( RTT )的拥塞控制算法, ZTR 变得更加健壮和可扩展,而无需依赖丢包来通知服务器网络拥塞
四、引入往返时间拥塞控制
新的 NVIDIA 拥塞控制算法 RTTCC 主动监控网络 RTT ,以便在丢弃数据包之前主动检测并适应拥塞的发生。 RTTCC 使用基于硬件的反馈环路实现动态拥塞控制,与基于软件的拥塞控制算法相比,该反馈环路提供了显著优越的性能。 RTTCC 还支持更快的传输速率,可以在更大范围内部署 ZTR 。带有 RTTCC 的 ZTR 现在作为测试版功能提供, GA 计划在 2022 年下半年推出。
五、ZTR-RTTCC 的工作原理
ZTR-RTTCC 通过基于硬件 RTT 的拥塞控制算法扩展了 RoCE 网络中的 DCQCN 。

定时数据包(上图中的绿色网络数据包)定期从启动器发送到目标。立即返回定时数据包,从而能够测量往返延迟。 RTTCC 测量数据包发送和启动器接收数据包之间的时间间隔。差异(接收时间--发送时间)衡量往返延迟,这表明路径拥塞。未压缩流继续传输数据包,以最佳利用可用网络路径带宽。延迟增加的流意味着路径拥塞, RTTCC 会对流量进行节流,以避免缓冲区溢出和数据包丢失。
随着拥塞的减少或增加,网络流量可以实时地向上或向下调整。主动监控和应对拥塞的能力对于使 ZTR 能够主动管理拥塞至关重要。这种主动速率控制还可以减少数据包的重新传输,提高 RoCE 性能。使用 ZTR-RTTCC ,数据中心节点不会等待数据包丢失的通知;相反,它们主动识别拥塞 prior to 数据包丢失并作出相应反应,通知启动器调整传输速率。
如前所述, ZTR 的一个关键优势是能够提供 RoCE 功能,同时在普通 TCP / IP 流量中与非 RoCE 通信同时运行。 ZTR 提供 RoCE 网络功能的无缝部署。通过添加 RTTCC 主动监控拥塞, ZTR 提供数据中心范围内的操作,无需交换机配置。继续阅读以了解其性能表现。
为应对上述挑战,NVIDIA CC算法建立在具备以下特性的基础设施之上:

5.1 ZTR-RTT CC 算法特征
NVIDIA 零触控 RoCE(ZTR)使数据中心能够无缝部署通过融合以太网(RoCE)部署 RDMA,无需任何特殊交换机配置。ZTR按照InfiniBand贸易协会(IBTA)RDMA标准构建,并完全符合RoCE规范,实现了RoCE的无缝部署。ZTR还拥有与传统交换机驱动RoCE相当的性能,并且远优于传统的基于TCP的内存访问。此外,借助ZTR,RoCE网络传输服务在普通TCP/IP环境中与非RoCE通信并行运行。
新的NVIDIA拥塞控制算法ZTR往返时间拥塞控制(ZTR-RTT CC)允许ZTR扩展到数千台服务器而不牺牲性能。使用ZTR和ZTR-RTT CC使数据中心运营商能够在大规模部署和运行中享受远程直接内存访问(RDMA)的卓越性能,无需任何交换机配置。
NVIDIA最新的拥塞控制算法ZTR-RTT CC主动监控网络RTT,主动检测并适应拥塞的出现,从而在丢包前进行调整。ZTR-RTT CC通过基于硬件的反馈回路实现动态拥塞控制,性能远优于软件拥塞控制算法。
主要的ZTR-RTT CC算法的特征为:
-
基于DPA(数据路径加速器)实现
-
基于RTT的拥塞控制
-
当前RoCE默认CC算法
-
在高性能计算和人工智能工作负载上表现优于DCQCN
-
保持DCQCN在存储工作负载上的良好性能
5.2 RTT 测量流

5.3 ZTR RTTCC算法

六、ZTR-RTTCC 性能
如下图所示,当通过网络结构配置 ECN 和 PFC 时,带有 RTTCC 的 ZTR 提供了与 RoCE 相当的应用程序性能。这些测试是在最坏的多对一( in-cast )情况下进行的,以模拟拥挤条件下的吞吐量。
结果表明,具有 RTTCC 的 ZTR 不仅可以扩展到数千个节点,而且其性能与目前可用的最快 RoCE 解决方案相当。
- 在小规模( 256 个连接及以下)下,具有 RTTCC 的 ZTR 在启用 ECN 拥塞控制(传统 RoCE )的 RoCE 的 99% 范围内执行。
- 通过 16000 多个连接,具有 RTTCC 吞吐量的 ZTR 是传统 RoCE 吞吐量的 98% 。
带有 RTTCC 的 ZTR 在不需要任何开关配置的情况下,提供了与传统 RoCE 几乎相同的性能。

七、配置ZTR
要使用新的 RTTCC 算法配置 ZTR , 下载 并为 NVIDIA 网络接口卡安装最新固件和工具,请执行以下步骤。
使用mlxconfig(持续配置)启用可编程拥塞控制:
(将ROCE_CC_LEGACY_DCQCN设置为0,从而启用ZTR-RTTCC算法。)
mlxconfig -d /dev/mst/mt4125_pciconf0 -y s
ROCE_CC_LEGACY_DCQCN=0
在更改配置后,重置网络设备或者重启主机以使更改生效。例如:使用mlxfwreset重置设备或重新启动主机:
mlxfwreset -d /dev/mst/mt4125_pciconf0 -l 3 -y r
完成这些步骤后,当 RDMA-CM 用于增强连接建立( ECE , MLNX _ OFED 版本 5.1 支持)时,将使用 ZTR-RTTCC 。
强制使用 ZTR-RTTCC :
如果需要,可以强制使用ZTR-RTTCC,即使RDMA-CM尚未同步状态。通过mlxreg命令来实现。直接配置寄存器
mlxreg -d /dev/mst/mt4125_pciconf0 --reg_id 0x506e --reg_len
0x40 --set "0x0.0:8=2,0x4.0:4=15" -y
总结
NVIDIA RTTCC 是 ZTR 的新拥塞控制算法,在数据中心范围内提供卓越的 RoCE 性能,无需对交换机基础设施进行任何特殊配置。此增强功能使数据中心能够在现有和新的数据中心基础架构中无缝实现 RoCE ,并从即时的应用程序性能改进中获益。
8、公司RDMA芯片设计时,把RTT 设计到硬件中, 包括三个engine, RTT Measurement engine, rate computation engine, pacing engine 。具体的功能,保密。