选择性动态负载平衡 (DLB)
概述
在 AI-ML 工作负载中,大多数应用流量通过聚合以太网版本 2 (RoCEv2) 使用远程直接内存访问 (RDMA) 进行传输。动态负载平衡 (DLB) 是实现高效负载平衡和防止 RoCEv2 网络拥塞的理想选择。但是,静态负载平衡 (SLB) 对于某些类型的流量可能更有效。使用 选择性 DLB,您不再需要为遍历设备的所有流量在 DLB 和 SLB 之间做出选择。您可以在全局级别配置首选的 DLB 模式,配置默认类型的负载平衡,然后有选择地为某些类型的流量启用或禁用 DLB。
您可以通过两种方式启用负载平衡:按流或按数据包。按流负载平衡是应用最广泛的方法,因为它一次处理的数据包数量最大。设备将具有相同五元组数据包标头的数据包分类为单个流。该设备为流中的所有数据包提供相同的负载平衡处理。基于流的负载平衡适用于常规 TCP 和 UDP 流量,因为流量对所有链路的利用相当平均。但是,按数据包的负载平衡可能会对某些数据包重新排序,这可能会影响性能。
许多 AI 群集通过可以处理乱序数据包的智能网络接口卡 (SmartNIC) 将应用连接到网络。要提高性能,请在网络上启用按数据包的 DLB。然后,仅为能够处理乱序数据包的端点服务器启用 DLB。您的设备会实时查看这些数据包的 BTH+ 标头中的 RDMA 操作代码(操作码)。使用任何防火墙过滤器匹配条件,您都可以根据这些操作码选择性地启用或禁用 DLB。其他流量继续使用默认的基于哈希的负载平衡,也称为 SLB。
当大象流遇到对于整个数据流来说太小的链路时,选择性 DLB 也很有用。在此场景中,选择性 DLB 可以计算数据中心交换矩阵中链路可用带宽的最佳利用情况。当您为大象流启用选择性的每数据包 DLB 时,该算法会先将数据包定向到质量最佳的链路。当链路质量发生变化时,该算法会将后续数据包定向到下一个质量最佳的链路。
好处
-
改进网络对大型数据流的处理。
-
在同一流量流中使用按数据包和按流的负载平衡来提高性能。
-
根据任何防火墙过滤器匹配条件自定义负载平衡。
配置
配置概述
您可以通过两种方式选择性地启用 DLB:默认禁用 DLB 并在某些流上选择性启用 DLB,或者全局启用 DLB 并选择性地禁用 DLB。无论哪种情况,都需要先在 按数据包的模式下配置 DLB。按数据包是在启用 DLB 时使用的 DLB 模式。您不能同时在同一设备上以按流和按数据包的模式配置 DLB。
此功能与 flowlet 模式兼容。当以 Flowlet 模式配置 DLB 时,您可以选择性地启用此功能。
拓扑学
全局禁用 DLB 并选择性地启用 DLB
如果需要 DLB 的数据包非常少,则可以在全局级别禁用 DLB,并按流选择性地启用它。
全局启用 DLB 并选择性禁用 DLB
如果大多数数据包将受益于 DLB,请在全局级别为所有数据包启用 DLB,并针对每个数据包选择性地禁用 DLB。
验证
使用以下命令验证 DLB 是否按预期启用:
show forwarding-options enhanced-hash-key
show pfe filter hw profile-info
示例:选择性地启用具有防火墙过滤器匹配条件的 DLB
选择性 DLB 的一大优势是,您可以根据任何防火墙过滤器匹配条件自定义负载平衡。此示例说明如何基于与 RDMA 队列对匹配的防火墙筛选器启用 DLB。使用此示例可仅为在支持数据包重新排序的网络接口卡 (NIC) 上终止的流量启用按数据包的 DLB。
在使用 RoCEv2 进行应用流量传输的网络中,RDMA 连接在发送队列上发送流量,并在接收队列上接收流量。这些队列构成 RDMA 连接。发送队列和接收队列统称为队列对。每个队列对都有一个可识别的前缀。在此示例中,我们使用队列对前缀来控制何时启用 DLB。
此示例配置在 QFX5240-64QD 交换机上。
平台支持
请参阅 功能浏览器 ,了解平台和版本支持。