传统的TCP/IP堆栈是否足以有效支持HPC网络通信?

描述

在快速增长的人工智能 (AI) 和机器学习 (ML) 领域,数据中心对高性能计算 (HPC) 系统的需求正在迅速提升。HPC 需要快速、低延迟的连接来实现高速、无缝通信。这引出了一个关键问题:传统的 TCP/IP 堆栈是否足以有效支持 HPC 网络通信?  

远程直接内存访问 (RDMA) 是 HPC 和存储网络领域中备受青睐的技术之一,它能够在内存到内存级别提供高吞吐量和低延迟的数据传输,同时避免给 CPU 带来额外的负担。RDMA 允许从一台计算机直接访问另一台计算机上的内存,从而实现了无缝的数据传输体验。此操作完全由网络适配器硬件处理,无需经过操作系统软件网络堆栈的干预。  

人工智能

传统模式与 RDMA 模式  

HPC 网络利用 InfiniBand (IB) 堆栈,可实现RDMA技术的各项优势,包括高吞吐量、低延迟以及CPU旁路特性。此外,InfiniBand 将拥塞管理直接集成到协议中。相比之下,传统的TCP/IP协议栈会随着网络访问带宽的增加而导致CPU消耗的增加,从而进一步增加网络传输延迟,显然不适合HPC需求。    

RDMA 网络协议  

InfiniBand(原生RDMA):InfiniBand原生RDMA技术提供了基于通道的P2P消息队列转发模型,应用可以通过虚拟通道直接访问消息,从而绕过对操作系统和其他堆栈的需求。这不仅减轻了CPU的工作负担,还实现了节点间高效的RDMA读写访问。此外,InfiniBand 的链路层集成了特定的重传机制来支持 QoS,从而消除了对数据缓冲的依赖。但要充分发挥其性能优势,需要专用的InfiniBand交换机和网卡。  

iWARP(基于 TCP 的 RDMA):互联网广域 RDMA 协议 (iWARP) 支持基于 TCP 的 RDMA 操作,通过标准以太网基础设施提供 RDMA 功能。这允许组织将其现有的以太网交换机用于 RDMA 目的,并利用 TCP 的数据包丢失保护机制。但网卡必须支持 iWARP,尤其是在利用 CPU 卸载技术时。  

RoCEv1(二层以太网上的 RDMA):RoCEv1 是运行在以太网链路层上的 RDMA 协议,可以促进同一以太网广播域内任意两台主机之间的通信。为了实现物理层的可靠传输,交换机必须支持PFC(优先级流控制)等流控机制。  

RoCEv2(基于 UDP 的 RDMA):RoCEv2 解决了 v1 的局限性,即仅限于单个 VLAN。它通过调整数据包封装(包括 IP 和 UDP 标头)来实现跨 L2 和 L3 网络的使用。

人工智能

RDMA协议栈    

超大规模数据中心中的 RoCEv2  

在快节奏的超大规模数据中心领域,对高性能网络解决方案的需求引发了人们对RoCEv2日益增长的兴趣。RoCEv2代表了InfiniBand的性能优势与以太网的广泛可访问性的结合,从而在现有以太网基础设施上实现无缝的RDMA功能。  

RoCEv2利用了融合以太网基础设施的优势,促进了传统以太网流量与RDMA流量在同一网络上的共存,简化了网络管理并消除了对单独RDMA结构的需求。然而,在融合以太网结构中部署RoCEv2也同样面临挑战,例如通过分配必要的网络资源、优化UDP数据包封装以及实施有效的拥塞控制机制(如优先级流量控制(PFC)和中心量化拥塞通知(DCQCN))来确保无损和低延迟通信。本文深入研究了RoCEv2的复杂性,审视了其对UDP的封装,并提出了资源分配和拥塞控制策略。

  人工智能

RoCEv2  

要利用 RoCEv2,源主机和目标主机上都需要支持 RDMA 的专用 RDMA NIC (RNIC)。RDMA 卡的物理 (PHY) 速度通常是 50Gbps 起,目前已经提升至高达400Gbps。  

RoCEv2 数据包格式  

为了确保在IP和UDP第3层以太网上实现对RDMA流量的无缝传输,数据包封装至关重要。专用UDP目标端口4791用于表示InfiniBand有效负载,同时针对不同的队列对(QP),使用不同的源端口,可以实现等价多路径(ECMP)负载共享,以优化转发效率。  

具体来说:  

- RoCEv2在IPv4/UDP或IPv6/UDP协议之上运行,使用以太网链路层的IP和UDP标头替代InfiniBand网络层,实现路由。

- 它默认使用UDP目标端口号4791。

- UDP源端口被用作流标识符,可利用ECMP优化数据包转发。

- RoCEv2流量和拥塞控制利用IP标头中的优先级流量控制(PFC)和显式拥塞通知(ECN)位来管理拥塞,并使用拥塞通知数据包(CNP)帧进行确认。  

人工智能

RoCEv2 数据包格式

  人工智能

RoCEv2 Wireshark 捕获  

RoCEv2以更低的成本提供卓越的多功能性,使其成为在传统以太网环境中构建高性能RDMA网络的最佳选择。但在这些交换机上配置Headroom、PFC和ECN设置等参数可能相当复杂。需要仔细注意以确保建立最佳配置才能获得最佳性能。拥塞和路由等因素会显著影响高性能网络的带宽和延迟。  

在以太网中实施 RoCEv2   

为了发挥RDMA的真正性能,需要构建无损网络。在以太网交换机上实施RoCEv2需要注意以下关键因素,以确保最佳性能和兼容性:  

1. MTU(最大传输单元):RoCEv2需要比传统以太网流量更大的MTU,以容纳额外的RDMA标头。建议将最小MTU设置为9000字节,以避免碎片并确保高效的数据传输。  

2. QoS(服务质量):实施QoS机制对于优先考虑RoCEv2流量并确保低延迟通信至关重要。需要配置交换机队列和调度算法,使RDMA流量比其他网络流量具有更高的优先级。差分服务代码点(DSCP)标记可根据优先级对流量进行分类,并根据其在网络中的重要性对RoCEv2流量进行优先级排序,实现更精细的QoS控制。以太网交换机应支持基于DSCP的QoS,以有效管理RoCEv2流量并保持最佳网络性能。  

3. PFC(优先级流量控制):PFC对于创建无损以太网至关重要,因为它可以防止数据包丢失并确保RDMA流量的可靠传输。交换机必须支持基于IEEE 802.1Qbb标准的PFC,以实现RoCEv2的无损操作。  

4. ECN(显式拥塞通知):ECN在管理拥塞和维持最佳网络性能方面发挥着至关重要的作用,特别是数据中心量化拥塞通知(DCQCN)。交换机必须支持ECN机制,才能对RoCEv2流量进行有效的拥塞控制。  

以上是在以太网上实施RoCEv2时需要考虑的关键因素。接下来,让我们深入研究两个关键组件:优先级流量控制(PFC)和数据中心量化拥塞通知(DCQCN)。这些机制在确保无损通信、有效管理拥塞以及维持RoCEv2流量的最佳网络性能方面发挥着至关重要的作用。  

PFC - 基于优先级的流量控制  

优先流量控制(PFC)是一种IEEE 802.1Qbb链路层流量控制协议,旨在确保无丢包的网络环境。PFC使接收器能够通过通知发送器临时停止特定优先级的传输流量来实现流量控制。它提高了从物理端口到8个虚拟通道的流量控制的精度,并与8个硬件队列(流量类别:TC0、TC1 ... TC7)对齐。同时,PFC利用DSCP为不同的流量启用自动流量控制。

  人工智能

PFC 操作  

如上图所示,当交换机缓冲区接近溢出时(由XOFF阈值表示,表示特定优先级队列中的缓冲区利用率较高),交换机会调度PFC PAUSE帧,以通知上游端口停止数据传输。当缓冲区使用率下降到XON阈值以下时,交换机会提示上游端口恢复流量,表示拥塞已缓解。净空表示为容纳传输中的数据包而保留的额外缓冲区空间。  

PFC是基于服务类别(CoS)的流量控制协议。在拥塞期间,PFC通过发送暂停帧指示需要暂停传输的CoS 值。每个PFC暂停帧都包含每个CoS的2 个八位字节定时器值,指示应暂停流量的持续时间。计时器以暂停量子为单位进行测量,其中量子表示以端口速度传输512位数据所需的时间,范围为 0 到 65535。如果暂停量子为0,则表示恢复流量,提示暂停的流量重新开始流动。PFC通过向指定地址发送暂停帧来指示对等方停止发送特定 CoS 值的帧。暂停帧仅在单跳内传输,不会传播到接收方之外。拥塞缓解后,PFC可以请求对端重新开始数据传输。  

人工智能

PFC 帧格式  

PFC的缺点在于它可能会导致入口端口处特定流量类别内的所有流量停止传输,从而阻止了流向其他端口的流量。与PFC相关的常见问题包括队头(HoL)阻塞、不公平和死锁情况。这些问题显著降低了RoCEv2的吞吐量、延迟和利用率性能。因此,RoCEv2需要端到端的每流拥塞控制来调整流量,快速消除拥塞并最大限度地减少PFC的频繁触发。  

DCQCN - 使用 ECN 进行拥塞控制  

数据中心量化拥塞通知(DCQCN)是专门为RoCEv2设计的端到端拥塞控制机制。它结合了ECN和PFC,旨在实现跨网络的无丢包以太网连接。DCQCN的概念是利用ECN来进行流量控制,在发生拥塞时降低发送方的传输速率,从而有效地减少PFC的干预。  

在DCQCN中,交换机充当拥塞点(CP),通过 ECN 字段监控队列长度和标志来检测拥塞。交换机使用RED(随机早期检测)机制根据队列长度对数据包进行概率性的ECN标记。接收方充当通知点(NP),生成拥塞通知数据包(CNP),并直接发送给发送方。然后,发送方充当反应点(RP),如果在控制周期内收到CNP,则降低流量;否则,它会增加由定时器和字节计数器确定的流量。  

人工智能

DCQCN操作  

ECN利用IPv4或IPv6标头中流量类别字段的两个最低有效位(最右侧)对四个不同的代码点进行编码:  

- 0x00:不支持ECN的传输(非ECT) - 0x10:支持ECN的传输0(ECT-0) - 0x01:支持ECN的传输1(ECT-1) - 0x11:遇到拥塞(CE)   如果发生拥塞,网络设备会重新标记数据包为ECN遇到拥塞(0x11),但不会向发送方发送任何内容。重新标记的数据包到达目的地后,目的地会向发送方发送通知以减少流量。路径上的所有交换机或路由器都需要支持ECN。  

在动态网络环境中,PFC和DCQCN的结合使用可以优化RDMA性能。DCQCN通过向端点数据路径的任何地方发送拥塞信号,有效地缓解拥塞模式,如incast。同时,PFC通过减慢发送者的速度,有效地管理由端点附近的突发应用程序引起的拥塞。在这种设置中,DCQCN充当主要的拥塞管理机制,而PFC则充当故障安全的备用解决方案。    

结论  

总的来说,RoCEv2等RDMA协议的发展为超大规模数据中心寻求高性能网络解决方案提供了巨大的机遇。通过在融合以太网结构上采用RoCEv2,数据中心运营商可以实现无缝的RDMA功能,无需额外的RDMA结构,从而简化网络管理并降低成本。然而,RoCEv2的成功实施面临着解决无损和低延迟通信、资源分配和拥塞控制等挑战。通过认真考虑MTU大小、QoS机制、PFC和ECN设置等方面,数据中心运营商可以充分发挥RoCEv2的潜力,提升超大规模环境的性能和可扩展性。  

原文链接: https://www.linkedin.com/pulse/optimizing-aiml-hpc-workloads-exploring-rdma-rocev2-data-chitakani-iuwvc  



审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分