电子说
【更多详细内容,请访问星融元官网https://asterfusion.com/】
在上一篇中,我们对RoCE、IB的协议栈层级进行了详细的对比分析,二者本质没有不同,但基于实际应用的考量,RoCE在开放性、成本方面更胜一筹。本文我们将继续分析RoCE和IB在拥塞控制、QoS、ECMP三个关键功能中的性能表现。
拥塞控制即用来减少丢包或者拥塞传播,是传输层的主要功能,但需要借助链路层和网络层的帮助。
RoCEv2通过链路层PFC、网络层ECN、传输层DCQCN三者协同配合,实现更高效的拥塞管理,可见,RoCEv2虽然使用了IB的传输层协议,但在拥塞控制方面有所不同。
PFC在RoCEv2中被用于创建无损的以太网环境,确保RDMA流量不因链路层拥塞而丢失。核心原理是下游控制上游某个通道开启和停止发送数据包,控制方式是发送PFC Pause和Resume帧,触发时机是根据下游SW的ingress的队列数量是否达到某个阈值。
而PFC允许在一条以太网链路上创建8个虚拟通道,并为每条虚拟通道指定一个优先等级,允许单独暂停和重启其中任意一条虚拟通道,同时允许其它虚拟通道的流量无中断通过。这一方法使网络能够为单个虚拟链路创建无丢包类别的服务,使其能够与同一接口上的其它流量类型共存。
图1 PFC工作机制
如图1所示,DeviceA发送接口分成了8个优先级队列,DeviceB接收接口有8个接收缓存(buffer),两者一一对应(报文优先级和接口队列存在着一一对应的映射关系),形成了网络中 8 个虚拟化通道,缓存大小不同使得各队列有不同的数据缓存能力。
当DeviceB的接口上某个接收缓存产生拥塞时,超过一定阈值(可设定为端口队列缓存的 1/2、3/4 等比例),DeviceB即向数据进入的方向(上游设备DeviceA)发送反压信号“STOP”,如图中第7个队列。
DeviceA接收到反压信号,会根据反压信号指示停止发送对应优先级队列的报文,并将[数据存储]在本地接口缓存。如果DeviceA本地接口缓存消耗超过阈值,则继续向上游反压,如此一级级反压,直到网络终端设备,从而消除网络节点因拥塞造成的丢包。
ECN(Explicit Congestion Notification)是一种IP头部用于的拥塞控制的标记位,允许网络设备在发生拥塞时标记数据包,而不是丢弃它们。
图2 IP头部前4帧示意图
RoCEv2利用ECN位来标记发生拥塞的数据包,接收方在检测到ECN标记后,发送CNP(Congestion Notification Packet)给发送方,后者通过拥塞控制算法(如DCQCN)调整发送速率。
DCQCN(Data Center Quantized Congestion Notification)是一种适用于RoCEv2的拥塞控制算法,是数据中心TCP(DCTCP)和量化通知算法的结合,最初在SIGCOMM'15论文"Congestion control for large scale RDMA deployments"中提出。DC-QCN算法依赖于交换机端的ECN标记。结合了ECN和速率限制机制,工作在传输层。当接收方检测到ECN标记时,触发CNP发送给发送方,发送方根据反馈调整发送速率,从而缓解拥塞。
综上,PFC、ECN、DCQCN分别工作在链路层、网络层和传输层。在RoCEv2中,它们被组合使用,以实现更高效的拥塞管理。
InfiniBand 的拥塞控制机制可分为三个主要部分:
IB在链路层实现基于信用的流量控制(Credit-based Flow Control),该机制实现了无损传输,是 InfiniBand 高性能的基础。发送方根据接收方提供的信用(表示可用缓冲区空间)来控制数据包的发送,接收方在处理完数据包后发送信用给发送方,以允许继续发送新的数据包,从而避免网络拥塞和数据包丢失。
如下图所示,发送方当前可用信用值2,通过流水线传输(pipelined transfer)连续向接收方发送数据包,但此时接收方缓冲区已满,发送方会暂停发送新的数据包,直到接收方发送新的信用。
图3 基于信用的流量控制示意图
当网络中的交换机或其他设备检测到拥塞时,会在数据包的 IP 头中标记 ECN(Explicit Congestion Notification)。接收方的 CA(Channel Adapter)接收到带有 ECN 标记的数据包后,会生成拥塞通知包(CNP),并将其反馈给发送方,通知其网络出现拥塞需要降低传输速率。
发送方的 CA 在收到 CNP 后,根据 InfiniBand 拥塞控制算法调整发送速率。发送方首先降低数据发送速率以缓解拥塞,之后逐步恢复发送速率,直到再次检测到拥塞信号。这个动态调整过程帮助维持网络的稳定性和高效性。IBA没有具体定义特定的拥塞控制算法,通常由厂商定制实现。(HCA,Host Channel Adapters,or IB NIC)
图4 端到端拥塞控制示意图
两者的拥塞控制机制比较如下:
RoCEv2 | InfiniBand | |
---|---|---|
Link Layer | Priority-based Flow Control | Credit-based Flow Control |
Network Layer | ECN/CNP | ECN/CNP |
Transport Layer | DCQCN | Vendor-specific Congestion Control |
可见,RoCE与IB的拥塞控制机制基本相同,区别在于IB的拥塞控制机制集成度较高,通常由单个厂家提供从网卡到交换机的全套产品,由于厂商锁定,价格高昂。而RoCE的拥塞控制机制基于开放协议,可以由不同厂家的网卡和交换机来配合完成。
随着大规模AI训练和推理集群的扩展,集合通信流量导致了日益严重的拥塞控制问题,由此出现了一些新的拥塞控制技术,如基于In-band Network Telemetry (INT)的HPCC(High Precision Congestion Control),即通过精确的网络遥测来控制流量,以及基于Clear-to-Send (CTS)的Receiver-driven traffic admission,即通过接收方的流量准入控制来管理网络拥塞等。这些新技术在开放的以太网/IP网络上更容易实现。
图5 HPCC流控示意图
图6 CTS流控示意图
在RDMA网络中,不光RDMA流量要获得优先保证。一些控制报文,如CNP、INT、CTS,也需要特别对待,以便将这些控制信号无损、优先的传输。
在链路层,RoCEv2采用ETS机制,为不同的流量分配不同的优先级,为每个优先级提供带宽保证。
在网络层,RoCEv2则使用DSCP,结合PQ、WFQ等队列机制,为不同的流量分配不同的优先级和带宽,实现更精细的QoS。
图7 DSCP示意图
在链路层,IB采用SL、VL及它们之间的映射机制,将高优先级的流量分配到专门的VL,优先传输。虽然VL仲裁表 (VL Arbitration Table)能够通过分配不同的权重来影响和控制带宽的分配,但这种方式不能保证每个VL的带宽。
在网络层,IB的GRH支持8个bit的Traffic Class字段,用于在跨子网的时候提供不同的优先级,但同样无法保证带宽。
由此可见,RoCE能够为不同的流量类型提供更精细的QoS 保证和带宽控制,而 InfiniBand 只能提供优先级调度,而非带宽的明确保障。
数据中心IP网络为了高可靠和可扩展性,通常采用Spine-Leaf等网络架构。它们通常在一对RoCE网卡之间提供了多条等价路径,为了实现负载平衡和提高网络拓扑的利用率,采用ECMP(Equal Cost Multiple Paths) 技术。对于给定的数据包,RoCE交换机使用某些数据包字段上的哈希(Hash)值在可能的多条等价路径中进行选择。由于可靠传输的要求,同一个RDMA操作应当保持在同一个路径中,以避免由于不同路径造成的乱序问题。
在IP网络中,BGP/OSPF等协议均可以在任意拓扑上计算出等价路径,然后由交换机数据平面基于IP/ UDP /TCP等头部字段(如五元组)计算哈希值并轮流转发到不同路径上。在RoCE网络中,为了进一步细分RDMA操作,可以进一步识别BTH头部中的目的QP信息,从而实施更细粒度的ECMP。
在控制平面,IB的路由基于子网管理器,在拓扑发现的基础上实现ECMP,但由于集中式的子网管理器与网络设备分离,可能无法及时感知网络拓扑的变化,进而实现动态的[负载均衡] 。
在数据平面,IB的ECMP同样基于哈希计算和轮转机制。
总结来看,IB具备已验证的高性能和低延时优势,RoCEv2则在互操作性、开放性、成本效益方面更胜一筹,且从市场占比及认可度来看,RoCEv2逐渐比肩IB;但不得不承认的是,RoCE和IB在应对大规模AI训练和推理中高带宽、突发式和广播型的集合通信流量时,均有所不足,而RoCE基于其广泛的以太网生态系统,能够更快速地拥抱新技术新协议,其潜力和可塑性更胜一筹,未来有望在网络格局中扮演更重要的角色。
参考文档:
https://zhuanlan.zhihu.com/p/643007675
https://blog.csdn.net/essencelite/article/details/135492115
https://support.huawei.com/enterprise/zh/doc/EDOC1100075566/d1e17776
https://www.researchgate.net/publication/4195833_Congestion_Control_in_InfiniBand_Networks
审核编辑 黄宇
全部0条评论
快来发表一下你的评论吧 !