Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

选择性动态负载平衡 (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 时,您可以选择性地启用此功能。

拓扑学

图 1 所示的拓扑中,DLB 默认处于禁用状态。我们已在 Flow2 上以每个数据包的模式选择性地启用 DLB。 表 1 总结了所示两个流上的负载平衡配置以及应用于流的负载平衡结果:

表 1:流行为

已启用 DLB?

结果

流程 1

设备使用默认的负载平衡配置,即按流模式。该流被定向到单个设备。

流程 2

是的

设备使用 DLB 配置,即按数据包模式。设备将此流量拆分成多个数据包。DLB 根据数据包标头中的 RDMA 操作码和相应的过滤器将每个数据包分配到一个路径。

图 1:按流和按数据包的负载均衡 Per-Flow and Per-Packet Load Balancing

全局禁用 DLB 并选择性地启用 DLB

如果需要 DLB 的数据包非常少,则可以在全局级别禁用 DLB,并按流选择性地启用它。

  1. 按数据包启用 DLB 模式。每当在流上启用 DLB 时,DLB 都会使用此模式来引导流量。
  2. 通过关闭所有以太网类型的 DLB,全局禁用 DLB。默认情况下,所有数据包都将获得基于哈希的负载平衡 (SLB)。
  3. 配置防火墙过滤器以匹配 BTH+ 标头中的特定 RDMA 操作码。

    此示例基于 rdma-opcode 10 进行匹配。

  4. 在该防火墙过滤器中启用按数据包的 DLB,以便仅将 DLB 应用于在 BTH+ 标头中选用了 RDMA 操作码的数据包。
  5. 其他数据包获取默认的负载平衡方法,即 SLB。

全局启用 DLB 并选择性禁用 DLB

如果大多数数据包将受益于 DLB,请在全局级别为所有数据包启用 DLB,并针对每个数据包选择性地禁用 DLB。

  1. 在全局级别为所有流量配置 DLB,以按数据包模式配置 DLB。
  2. 配置防火墙过滤器以匹配 BTH+ 标头中的特定 RDMA 操作码。

    此示例基于 rdma-opcode 10 进行匹配。

  3. 禁用该防火墙过滤器中的每个数据包 DLB,以便在 BTH+ 标头中选择 RDMA 操作码的数据包。
  4. 其他数据包获取默认的负载平衡方法,即 DLB。

验证

使用以下命令验证 DLB 是否按预期启用:

示例:选择性地启用具有防火墙过滤器匹配条件的 DLB

选择性 DLB 的一大优势是,您可以根据任何防火墙过滤器匹配条件自定义负载平衡。此示例说明如何基于与 RDMA 队列对匹配的防火墙筛选器启用 DLB。使用此示例可仅为在支持数据包重新排序的网络接口卡 (NIC) 上终止的流量启用按数据包的 DLB。

在使用 RoCEv2 进行应用流量传输的网络中,RDMA 连接在发送队列上发送流量,并在接收队列上接收流量。这些队列构成 RDMA 连接。发送队列和接收队列统称为队列对。每个队列对都有一个可识别的前缀。在此示例中,我们使用队列对前缀来控制何时启用 DLB。

此示例配置在 QFX5240-64QD 交换机上。

  1. 在防火墙中创建一个用户定义的字段,用于匹配发往特定 RDMA 目标队列对的数据包。选择一个队列对,你知道在能够重新排序数据包的 NIC 上终止。
    我们将防火墙过滤器 sDLB命名为 。该术语 QP-match 与具有以下特征的目标队列对的传入数据包匹配。
  2. 配置防火墙过滤器,以便在与过滤器匹配的队列对上启用按数据包的 DLB。
    如果队列对不匹配,设备将对该数据包使用默认的负载平衡类型 SLB。
  3. 配置一个计数器,该计数器在每次匹配时递增。
    计数器 QP-match-count 跟踪有多少数据包通过 DLB 进行了负载平衡。您可以在故障排除时使用此信息。
  4. 在相关接口上启用防火墙过滤器。
  5. 验证您的防火墙过滤器术语是否与通过设备的数据包匹配。
    计数 QP-match-count 器显示防火墙过滤器重定向以使用 DLB 进行负载平衡的字节数和数据包数。

平台支持

请参阅 功能浏览器 ,了解平台和版本支持。