NVIDIA 技术博客:利用 MLAG 最大限度地提高 AI 以太网结构性能

nvdev 2023-09-07 16:10:11

这篇文章最初发表在 NVIDIA 技术博客上。有关此类的更多内容,请参阅最新的 数据中心/云端 新闻和教程。

对于专门为人工智能训练而构建的 HPC 集群,例如 NVIDIA DGX BasePODNVIDIA DGX SuperPOD,微调集群对于提高和优化整体性能至关重要,包括调整以太网结构、存储结构和计算结构的性能。

本文讨论了如何最大限度地提高以太网结构的整体吞吐量,通过使用Multi-Chassis Link Aggregation(MLAG),可在NVIDIA Cumulus Linux上实现。MLAG 使两个独立的交换机能够向下游主机通告相同的 LACP 系统 ID,因此,下游主机会认为它们连接到单个 LACP 伙伴。

使用 MLAG 的一个好处是物理交换机级冗余。如果两个上行链路交换机中的任何一个发生故障,则下游主机流量将不会受到影响。第二个好处是聚合债券的上行链可以同时使用。最后, MLAG 技术使用诸如 VRR / VRRP 之类的技术提供网关级冗余。

带 LACP 的积存 MLAG

为了最大限度地提高集群中每个 DGX /计算节点的整体以太网性能,建议在 LACP ( 802.1ad )模式下配置绑定上行链路。 LACP ( 802.1ad )绑定模式使得两个上行链路能够同时使用。使用其他绑定模式(例如活动/备用,其中在给定时间仅使用两个上行链路中的一个)会导致 50% 的上行链路可用带宽在任何给定时间未被使用。

LACP 要求在 TOR 交换机之间配置 MLAG 。在配置 MLAG 时,还需要使用诸如 VRR / VRRP 之类的技术实现网关级冗余。

Diagram showing three layers: CUST-EXIT (top); BCM-TOR (middle); DGX (bottom).图 1 。 TOR 交换机之间配置 MLAG 的以太网结构和 DGX /计算链路上配置的 LACP 绑定

使用 LACP 绑定接口的 PXE 引导

对于 HPC 集群部署, PXE 引导通常用于提供集群中的节点。因此,在上行链路上设置 LACP 旁路模式非常重要。否则,在供应过程中,如果不支持 LACP ,节点将无法进行 PXE 引导。

Diagram illustrating PXE boot connectivity during the provisioning process, with DGX-01 on the left, a cloud icon in the middle, and PXE/TFTP/DHCP Server on the right.
图 2 :配置过程中的 PXE 引导连接

在配置过程中,主机被配置为使用其网络接口之一进行引导。它从 DHCP 服务器获得 IP 地址分配和 TFTP 服务器信息。一旦从 DHCP 服务器接收到 TFTP 服务器信息,主机就会联系 TFTP 服务器以检索 PXE 引导/启动指令以进行配置(图 2 )。

Cumulus Linux MLAG 配置

您可以使用 Cumulus Linux CLI 接口( NVUE )在 BCM-TOR-01 和 BCM-TOR-02 交换机之间配置 MLAG 。这需要设置 MLAG mac-address,MLAG peer-ip,以及每个成员交换机上的 MLAG 优先级。

具有较低 MLAG 优先级值的交换机成为管理 MLAG 连接的主要交换机。具有较高 MLAG 优先级值的交换机成为辅助交换机。如果没有设置 MLAG 优先级,则设置默认优先级值 32768 。

要将 MLAG 配置添加到 BCM-TOR-01 ,请使用以下配置:

cumulus@BCM-TOR-01:~$ nv set interface peerlink bond member swp61-62 cumulus@BCM-TOR-01:~$ nv set mlag mac-address 44:38:39:BE:EF:AA cumulus@BCM-TOR-01:~$ nv set mlag backup 192.168.200.3 vrf mgmt cumulus@BCM-TOR-01:~$ nv set mlag peer-ip linklocal cumulus@BCM-TOR-01:~$ nv set mlag priority 2084 cumulus@BCM-TOR-01:~$ nv config apply cumulus@BCM-TOR-01:~$ nv config save

要将 MLAG 配置添加到 BCM-TOR-02 ,请使用以下配置:

cumulus@BCM-TOR-02:~$ nv set interface peerlink bond member swp61-62 cumulus@BCM-TOR-02:~$ nv set mlag mac-address 44:38:39:BE:EF:AA cumulus@BCM-TOR-02:~$ nv set mlag backup 192.168.200.2 cumulus@BCM-TOR-02:~$ nv set mlag peer-ip linklocal cumulus@BCM-TOR-02:~$ nv config apply cumulus@BCM-TOR-02:~$ nv config save

要验证 BCM-TOR-01 上的 MLAG 状态,请使用以下命令:

cumulus@BCM-TOR-01:mgmt:~$ net show clag The peer is alive Peer Priority, ID, and Role: 32768 48:b0:2d:5f:4d:d0 secondary      Backup IP: 192.168.200.3 vrf mgmt (active)                 Our Priority, ID, and Role: 32768 48:b0:2d:5f:4d:d0 secondary Peer Interface and IP: peerlink.4094 fe80::4ab0:2dff:fead:498c (linklocal)                  System MAC: 44:38:39:be:ef:aa cumulus@BCM-TOR-02:mgmt:~$

界面结合配置

您可以使用 Cumulus Linux CLI 接口( NVUE )来配置到 DGX-01 和 DGX-02 节点的接口的绑定上行链路。对于每个 MLAG 债券接口,必须定义债券名称、债券成员接口、每个债券的唯一 MLAG ID 和债券描述。您还必须为 PXE 引导启用 LACP 旁路模式,通过强制绑定成为网桥的成员将其配置为 L2 绑定,并配置用于 PXE 引导的本机/未标记 VLAN 。

要将接口连接配置添加到 BCM-TOR-01 ,请使用以下配置:

cumulus@BCM-TOR-01:~$ nv set interface bond1 bond member swp1 cumulus@BCM-TOR-01:~$ nv set interface bond1 bond mlag id 1 cumulus@BCM-TOR-01:~$ nv set interface bond1 bond lacp-bypass on cumulus@BCM-TOR-01:~$ nv set interface bond1 description dgx01 cumulus@BCM-TOR-01:~$ nv set interface bond2 bond member swp2 cumulus@BCM-TOR-01:~$ nv set interface bond2 bond mlag id 2 cumulus@BCM-TOR-01:~$ nv set interface bond2 description dgx02 cumulus@BCM-TOR-01:~$ nv set interface bond2 bond lacp-bypass on cumulus@BCM-TOR-01:~$ nv set interface bond1 bridge domain br_default cumulus@BCM-TOR-01:~$ nv set interface bond2 bridge domain br_default cumulus@BCM-TOR-01:~$ nv set interface bond1 bridge domain br_default untagged 222 cumulus@BCM-TOR-01:~$ nv set interface bond2 bridge domain br_default untagged 222 cumulus@BCM-TOR-01:~$ nv set bridge domain br_default vlan 221-223 cumulus@BCM-TOR-01:~$ nv config apply cumulus@BCM-TOR-01:~$ nv config save

要将接口连接配置添加到 BCM-TOR-02 ,请使用以下配置:

cumulus@BCM-TOR-02:~$ nv set interface bond1 bond member swp1 cumulus@BCM-TOR-02:~$ nv set interface bond1 bond mlag id 1 cumulus@BCM-TOR-02:~$ nv set interface bond1 bond lacp-bypass on cumulus@BCM-TOR-02:~$ nv set interface bond1 description dgx01 cumulus@BCM-TOR-02:~$ nv set interface bond2 bond member swp2 cumulus@BCM-TOR-02:~$ nv set interface bond2 bond mlag id 2 cumulus@BCM-TOR-02:~$ nv set interface bond2 bond lacp-bypass on cumulus@BCM-TOR-02:~$ nv set interface bond2 description dgx02 cumulus@BCM-TOR-02:~$ nv set interface bond1 bridge domain br_default cumulus@BCM-TOR-02:~$ nv set interface bond2 bridge domain br_default cumulus@BCM-TOR-02:~$ nv set interface bond1 bridge domain br_default untagged 222 cumulus@BCM-TOR-02:~$ nv set interface bond2 bridge domain br_default untagged 222 cumulus@BCM-TOR-02:~$ nv set bridge domain br_default vlan 221-223 cumulus@BCM-TOR-02:~$ nv config apply cumulus@BCM-TOR-02:~$ nv config save network-admin@BCM-TOR-01:mgmt:~$ net show int bond1    Name    MAC                Speed  MTU   Mode --  ------  -----------------  -----  ----  ------- UP  bond1  1c:34:da:29:17:04  100G   9216  802.3ad Bond Details ------------------  -------- Bond Mode:          802.3ad Load Balancing:     layer3+4 Minimum Links:      1 LACP Sys Priority: LACP Rate:          1 LACP Bypass:        Active All VLANs on L2 Port -------------------- 221-223 Untagged -------- 222 cl-netstat counters -------------------    RX_OK  RX_ERR  RX_DRP  RX_OVR     TX_OK  TX_ERR  TX_DRP  TX_OVR ---------  ------  ------  ------  --------  ------  ------  ------ 249728882       0      18       0  32865480       0       1       0

结论

MLAG 是一个经过充分测试的功能,被许多 NVIDIA 客户使用,可以帮助提供物理交换机级别的冗余,避免单点故障,并最大限度地提高以太网结构中总可用带宽的总体利用率。在以太网网络侧,NVIDIA Cumulus Linux是一款业界领先的开放式网络操作系统,被许多财富 100 强企业所使用。想了解更多关于 NVIDIA 如何部署大规模集群的信息,请查看NVIDIA DGX SuperPODNVIDIA DGX BasePOD

 

阅读原文

...全文
353 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

1,348

社区成员

发帖
与我相关
我的任务
社区描述
NVIDIA 开发者技术交流
人工智能 企业社区
社区管理员
  • nvdev
  • 活动通知
  • AI_CUDA_Training
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧