作 者: @NGDCN
原文链接: 运行 RoCEv2 的网络注意事项
版 权: 本文由 @NGDCN 于2022-12-15原创发布在 NGDCN,未经许可,禁止转载。
1、RoCE简介
1.1、什么是 RoCE?
RDMA over Converged Ethernet (RoCE) 是一种网络协议,它利用远程直接内存访问 (RDMA) 功能来显着加速托管在服务器集群和存储阵列上的应用程序之间的通信。RoCE 结合了 IBTA RDMA 语义,允许设备在应用程序级别执行直接内存到内存传输,而无需主机 CPU。与基于软件的协议相比,传输处理和内存转换和放置均由硬件执行,从而显着降低延迟、提高吞吐量和提高性能。
1.2、RoCE v1 和 RoCE v2 之间有什么区别?
正如 InfiniBand 贸易协会 (IBTA) 最初实施和标准化的那样,RoCE 被设想为第 2 层协议。实际上,IBTA 第 1 层和第 2 层字段被相应的以太网字段替换。特别是在第 2 层,本地路由标头 (LRH) 被以太网 MAC 标头和帧校验序列取代。EtherType 字段表示负载封装了 RoCE 协议,该协议在第 2 层之上实现了 IBTA 协议。此外,IBTA 网络管理(子网管理器)被标准的以太网第 2 层管理协议所取代。
这种方法的优点是易于实现、严格分层并保留位于通道接口之上的应用程序级 API 动词。缺点是广播域导致的第 2 层以太网部署的可扩展性限制以及平面子网中 IP 分配限制的复杂性。此外,与更常见的 IP 数据包相比,某些交换机可能会在较慢的例外路径上转发 RoCE 数据包。这些限制推动了对 RoCE 在第 3 层(可路由)环境中运行的需求。幸运的是,RoCE 框架的直接扩展使其可以轻松地跨第 3 层网络传输。如下图所示,支持第 3 层的 RoCE 协议简单地继续堆栈,并用标准 IP 网络标头替换可选的 L3 全局路由标头 (GRH),并添加 UDP 标头作为第 4 层有效载荷的无状态封装。这是 RoCE 的一个非常自然的扩展,因为第 3 层报头已经基于 IP 地址,因此这种替换很简单。此外,UDP 封装是一种标准类型的 L4 数据包,因此作为主流数据路径操作被路由器高效转发。
1.3、RoCE V2 数据包格式是什么?
2、网络要求
RoCE 可以在无损或有损网络中运行。
2.1、弹性 RoCE
有损网络上的 RoCE 称为 Resilient RoCE,请参阅Resilient RoCE 简介 - 常见问题解答以了解更多信息。
2.2、无损RoCE
2.2.1、如何实现无损以太网 L2 网络?
在链路层,可以通过使用流量控制来实现。流量控制是通过在网络中启用全局暂停或使用优先级流量控制 (PFC) 来实现的。PFC 是一种链路级协议,它允许接收器断言流量控制,告诉发送器暂停发送指定优先级的流量。PFC 支持对 802.1Q VLAN 标记的服务类别字段中指定的各个优先级进行流量控制。因此,单个链路可以承载无损流量以支持 RoCE 和其他优先级较低的服务级别的尽力而为流量。
2.2.2、如果我运行 RoCE v2,我应该为无损 L2 子网使用 PFC 还是全局暂停?
在融合环境中,有损流量与无损 RoCE 流量共享同一物理链路。通常,在交换机和路由器内为无损和尽力而为的流量类别分配单独的专用缓冲和队列资源,从而有效地将这些流量彼此隔离。尽管全局暂停配置更容易并且在实验室条件下可能工作得很好,但建议在运营网络中使用 PFC 以便能够区分不同的流。否则,在拥塞的情况下,重要的有损流量(例如控制协议)可能会受到影响。因此,RoCE 应在启用 PFC 的优先级的 VLAN 上运行,而控制协议(有损)将在不同优先级启用流量控制的情况下运行。
2.2.3、如何在 L3 网络(L2 子网之间)上保留无损特性?
在第 3 层运行 RoCE 需要在连接第 2 层子网的 L3 路由器上保留网络的无损特性。介入的 L3 路由器应配置为在各个子网上的以太网接口之间的第 3 层路由器上传输第 2 层 PFC 无损优先级。这通常可以通过标准路由器配置机制将接收到的第 2 层优先级设置映射到相应的第 3 层差分服务代码点 (DSCP) QoS 设置来实现。对等主机应使用 DSCP 和/或 L2 优先级位 (PCP) 标记 RDMA 数据包。路由器有两种方法从数据包中提取优先级,一种是从 DSCP(在这种情况下,数据包可能没有标记),要么通过 PCP(在这种情况下,数据包必须携带 VLAN(因为 PCP 是 VLAN 的一部分) VLAN 标记)。
2.2.4、当我在 L3 网络上使用多路径路由 (ECMP) 时会发生什么?
第 3 层网络可以实现更好地利用可用网络连接的转发算法,而不是受到第 2 层链路中断协议(例如生成树算法)的约束。先进的数据中心网络可以利用多路径路由机制来实现负载平衡和提高利用率。实现这些目标的一种常用协议是等价多路径 (ECMP)。对于每个收到的数据包,L3 路由器不仅根据目标 IP 地址而且还根据数据包中的其他字段做出转发决定。在给定端点有许多可能路径的情况下,ECMP 允许不同的流选择不同的路径,从而利用可用的连接。给定数据包的路径选择基于目标 IP 地址和其他数据包字段的哈希值。请注意,虽然不同的流可以利用不同的路径,但用于选择用于转发的输出端口的值是确定性的,以便保留给定流的数据包顺序。
此外,当使用可靠连接 RDMA (RC) 时,源 UDP 端口按 QP 加扰。这有助于 ECMP 隐藏功能跨越大型 L3 网络中不同主干上的不同 RDMA 流。文章来源:https://www.toymoban.com/news/detail-577565.html
声明:本文素材来源于网络,仅供学习使用,如有侵权请联系网站删除(ngdcn_admin@163.com)。文章来源地址https://www.toymoban.com/news/detail-577565.html
到了这里,关于运行 RoCEv2 的网络注意事项的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!