尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

万卡集群组网核心:迈络思网卡与线缆设备选型及故障排查实战

万卡集群组网核心:迈络思网卡与线缆设备选型及故障排查实战 行内人都知道万卡集群组网不是把一万块网卡插上交换机就完事。卡与卡之间的通信效率直接决定大模型训练的收敛时间。数万张GPU做分布式训练时梯度同步、数据分片的全交换流量全压在网卡和线缆上这套链路哪怕有千分之一的丢包整个集群算力都可能白白浪费掉。我参与过不少类似规模的项目常被问到迈络思Mellanox网卡到底好在哪里线缆设备怎么选为什么一定要走经销商授权直供这篇文章就把这些事从架构到落地一次讲透适合正在规划大规模AI集群的工程师、负责硬件采购的同事以及准备入行超大规模组网的朋友。1. 万卡集群组网先弄清链路在传什么1.1 分布式训练的网络模型与瓶颈很多刚接触万卡集群的同学误以为网络只负责“拉代码”或“存日志”那就大错特错了。大模型训练的数据并行和模型并行会把计算拆分到上万块GPU上每训练一步都要通过allreduce这类集合通信把各个GPU的梯度汇总并广播。这种通信模式是全局性的任何一个节点慢半拍整个训练step都会卡在那等它。业内常说“算力好买网络难调”因为网络延迟和带宽会直接放大到流水线空闲等待上有时候占比能超过30%。万卡集群组网里迈络思网卡和配套线缆设备承载的正是这种高并发、低延迟的集合通信流量。这也解释了为什么这类项目清一色选择InfiniBand或者高质量的RoCERDMA over Converged Ethernet网络而不是普通TCP/IP网络。普通以太网重传机制复杂CPU中断开销又高而RDMA技术能让数据从网卡直接进入GPU显存绕开CPU和内核协议栈带宽利用率能拉到90%以上。可以说网卡和线缆选型几乎等于给整个集群定调。1.2 主流组网架构从两层Fat-Tree到多轨拓扑万卡规模下物理拓扑通常采用两层或三层Clos架构也就是大家常说的Leaf-Spine。下层Leaf交换机连接计算节点上的网卡上层Spine交换机负责跨Pod流量转发通过等价多路径把流量均匀散开。以两层为例假设每个Leaf只有64个端口一个千卡Pod需要28台Leaf和56台Spine而万卡规模则需要叠加多个Pod并通过更高层Spine互连。选择迈络思网卡不只是因为牌子响而是与交换机和线缆形成一个完整的生态。NVIDIA的InfiniBand方案里网卡、交换机、线缆上的光模块都是原厂深度适配支持自适应路由和拥塞控制。如果用第三方杂牌光模块轻则链路降速重则误码率高到训练直接崩溃。所以在这个领域稳定压倒一切大家都在同一个生态里找答案。1.3 计算网络、存储网络与管理网络要分开万卡集群里有三张网计算网络跑RDMA数据面存储网络跑POSIX或对象存储的读写管理网络负责IPMI、SSH和监控。很多人图省事把所有流量混在一张物理网里后遗症非常大一组训练任务的海量小包突发就能冲垮存储流量导致checkpoint写不下去。正确做法是用高带宽迈络思网卡和线缆搭计算网络用较低速的25G/10G网卡搭存储和管理网络物理隔离故障域。我自己踩过的坑是早期在一个千卡项目里为了省钱把存储和管理网复用在一张双口25G卡上结果每次大规模checkpoint时管理网监控数据就开始丢包登录节点卡得像死机。后来老老实实把网卡分开世界清净了。组网工作从来不是只看峰值带宽而是要看每类流量的收敛和隔离。2. 迈络思网卡选型与关键参数2.1 从ConnectX-6到ConnectX-7选对型号一步到位迈络思现阶段的网卡主线是ConnectX系列。ConnectX-6 Dx单口最高200Gb/sConnectX-7单口支持400Gb/s还有低延迟的BlueField DPU系列但纯训练集群用得更多的是ConnectX-7。选型时不要只看端口速率还要看PCie带宽和接口代次。400Gb网卡需要PCIe 5.0 x16才能跑满如果服务器还在PCIe 4.0槽那买400G就是在浪费钱实际带宽只能落到200G附近。这是很多人容易忽略的点购买了ConnectX-7插到PCIe 4.0的平台上实际链路速率跑不满。我做选型时首先看服务器的PCIe通道代次和数量再倒推网卡规格。比如一台8卡GPU服务器通常需要2到4张计算网卡每张卡都占一个PCIe x16槽位还要预留存储网卡。这需要提前和整机厂商核对拓扑分配否则网卡插槽不够或者和GPU争抢PCIe Switch带宽性能会打折扣。2.2 网卡的硬核特性GPUDirect RDMA与拥塞控制迈络思网卡最值钱的地方不是裸带宽而是它的一系列硬件加速特性。GPUDirect RDMA允许远端数据直接写入GPU显存不经过主机内存配合NCCL可以让多机多卡的通信延迟控制在微秒级。另一个关键特性是拥塞控制在Back-to-back通信时动态调整注入速率避免网络出现PFC死锁或Buffer堆积。这些特性在普通网卡上要么没有要么用软件模拟效果差得远。我见过一个案例某团队把迈络思卡换成某通用200G网卡跑NCCL测试带宽只有原厂卡的60%左右。后来排查发现是少了自适应路由和显存直接访问支持。装卡不是装完就能用还得装MLNX_OFED驱动并确认固件里打开了RoCE或IB模式。命令ethtool -i ens3f0np0能看到驱动和固件版本ibv_devinfo能看到设备的端口状态这些都应该成为装机后的标准检查项。2.3 驱动、固件和时序管理的实操方法网卡选型只是开始后续固件和驱动管理才是让万卡集群长期稳定运行的关键。我一般建议所有计算节点使用同一版本的MLNX_OFED或NVIDIA固件线不要各个节点各自为政。用官方工具mlxup可以在线升级固件升级前一定要备份网卡配置文件并且在一个节点验证后再批量执行。批量执行时注意网卡固件升级往往需要重启节点才能生效。如果集群有1万张卡同时升级会造成全网波动所以正规做法是滚动升级一批一批来。驱动层面如果使用容器化调度记得让容器里的NCCL版本和宿主机网卡固件匹配。遇到过NCCL报错“unsupported transport”的老铁十有八九是NCCL版本太老不识别新网卡特性把NCCL升到配套版本就好了。3. 线缆设备的选型与布线实操3.1 DAC、AOC与光模块不同距离不同方案高性能网卡必须搭配正确的线缆这里的水比想象中深。数据中心内部常见三类连接无源直连铜缆DAC有源光缆AOC以及光模块加光纤。DAC价格低、功耗低、延迟最小但传输距离通常只有2到5米适合机柜内部的ToR交换机与服务器相连。AOC能覆盖几十米功耗略高于DAC适合跨机柜或跨列传输。超过100米后基本就要上单模光纤加光模块了好处是传输距离几十公里都可以缺点是成本高、需要清洁和维护。在万卡集群组网中计算网络的线缆策略会分两层Leaf到服务器的接入层通常用DAC或短距AOCSpine到Leaf的互联因为距离和布线柜位置可能用AOC或光模块。每根线缆的型号编码要和网卡、交换机端口支持矩阵一致。NVIDIA有官方线缆兼容性列表查到暗配规格再下单千万不要贪便宜买杂牌“兼容线”后续出问题排查成本高到让你怀疑人生。3.2 链路信号完整性与误码率排查线缆看起来是物理层最简单的部分但恰恰是故障高发地。DAC线缆两端接头是固定模具的弯折超过半径就可能导致内部差分线断裂AOC线缆内部是光器件和PA电缆混合体更经不起拉扯。我经历过一次“诡异”的故障某两节点通信吞吐忽高忽低ping延迟正常但NCCL带宽上不去。用ethtool -S查看累计错误计数发现rx_crc_errors和rx_symbol_err_errors疯狂增长链路误码率已经很高了。最后原因出在机柜理线时有一条AOC被扎带勒得太紧内部光纤受压变形。所以布线上有一条铁律每根线缆都贴标签横平竖直预留弯曲半径禁止踩踏。线缆敷设完成后不要急着盖板先做一轮端口自检。用ibstatus或ethtool eth0看link状态和速率再用ibdiagnet跑一遍全网链路质量有问题的地方当场换线等集群跑起来再换线就是灾难。3.3 特殊场景网卡灯不亮与“网线确认是通的”遇到“网卡灯不亮网线确认是通的”这种情况千万别急着甩锅给网卡。对于Mellanox网卡状态灯逻辑和普通网卡不完全一样有的卡上面两个灯分别表示链路活动和速率需要对照手册看。首先要确认线缆类型如果是DAC铜缆两端设备的端口模式必须匹配比如都是IB或都是以太网如果是光模块要确认光纤收发光口没有接反还要确认光模块的Tx和Rx功率在接收灵敏度范围内。另一个常见问题是Linux下用ip link看不到网卡但lspci里明明有设备。这种多数是驱动没加载。先modprobe mlx5_core再看看dmesg | grep -i mlx5有没有报错。如果固件和驱动版本不匹配也会出现识别不到端口的情况此时升级固件或重装MLNX_OFED都能解决。线缆和网卡分工不一样排查顺序永远是物理连接→链路状态→设备状态→驱动固件→协议配置。4. 授权经销商直供的门道4.1 为什么渠道选择直接决定项目生死标题里那句“经销商授权直供”不是广告词是无数人用学费换来的教训。万卡集群组网涉及的迈络思网卡和线缆设备都是高价值物料纯线上搜到的低价卡有很大概率是拆机件、翻新件或非原产地串货。买到之后外观看不出问题但固件版本不对、序列号无法在原厂系统查询、质保无法兑付会直接导致集群在验收或运行阶段找不回售后。我见过一个项目因为图便宜从非授权渠道采购了一批ConnectX-6网卡发货时标签齐全但插上后一半网卡无法通过原厂固件更新工具刷新打原厂400才知道序列号根本不在这批产品序列段内属于非法翻刻。最后整批退回工期耽误了三周。正规授权经销商直供意味着货源从原厂或者原厂授权总代直接发出序列号全程可追溯订单信息能在官网验证这是可靠性的第一道门槛。4.2 如何识别授权经销商与验证真伪识别授权经销商并不难。首先查NVIDIA官网合作伙伴列表看对方在不在里面其次要求对方出示有效期内的授权证书证书上会有区域、行业范围。正规渠道报价通常不会比非授权渠道低太多如果低得离谱基本可以判定是陷阱。采购过程中还要坚持以下几点下采购单时写明产品型号、数量、序列号区间和交付时间。要求提供原厂出具的销售订单或出货证明。到货后逐一核对包装上的SN与实物标签、原厂系统查询结果是否一致。保留所有验收记录确保后续原厂质保能走单。“直供”两个字的意思是减少中间环节但不等于没有门槛。它意味着经销商直接面向原厂下单避免了三手、四手转包导致的货品失控。这种模式特别适合万卡集群这种一次性采购大量设备的场景。量大、型号杂、交付周期紧只有授权直供才能锁定真实货期而不是被层层分销拖到遥遥无期。4.3 到货验收与备件策略线缆和网卡的到货验收讲究“抽样拆检整批记录”。先不急着全部拆箱随机抽几箱对比外包装、静电袋、防伪贴、说明书再上机测试。如果条件允许把抽到的卡插到测试环境跑一轮ib_write_bw或iperf3确认带宽和延迟达到规格。批量验收阶段逐块记录SN和MAC地址录入资产台账后续固件升级和故障定位都要靠这个表。备件策略上万卡集群至少要备用1%到2%的网卡和2%到3%的线缆。不要觉得概率低就少买线缆损坏率和卡故障率在规模上来之后是必然的。有一次我们一个集群一天之内换了12根AOC都是因为前期布线弯折半径不够导致的慢性损伤。如果没有备件故障链路只能干等整个计算分区都得停摆。授权经销商直供的另一个优势就是追加订单快因为它们手里有稳定的原厂货源。5. 网卡与线缆常见故障排查实录5.1 系统识别不到网卡驱动、固件与虚拟化干扰万卡集群里几千台服务器总有人碰到“机器识别不到网卡”的怪病。排查思路先分层硬件层看lspci -nnk | grep -i ethernet如果设备都没出现可能是卡没插好或者槽位供电问题如果设备出现但没有驱动绑定就查lspci -k。驱动加载后还没网口再查固件是否匹配很多老固件在CPU平台较新时会有初始化问题。虚拟化环境里另有一类坑。比如ESXi安装时提示没有网卡经常是安装镜像没有内置对应驱动需要把网卡驱动添加到镜像里虚拟机里看不到虚拟网卡可能是虚拟交换机端口组没配好或VM工具没装全。Linux下的tun虚拟网卡不存在或被禁用一般用modprobe tun加载模块再把/dev/net/tun权限放宽即可。我们搞万卡集群的人整天和各色网卡打交道这些问题其实逻辑共通先确认硬件存在再确认驱动绑定再确认接口up最后看协议栈。5.2 网卡没有电源管理与开机自启问题有同学问“网卡没有电源管理”这在服务器领域其实是好事。服务器网卡不需要像笔记本那样睡眠节能反而是要禁用节能特性来保证低延迟。遇到网卡灯不亮但系统正常可以进BIOS确认PCIe电源管理策略设置在Performance模式。对于Linux下的开机自启问题常见症状是重启后网卡起不来或者IP丢失。这和NetworkManager、netplan或ifcfg配置有关建议用ip link set dev ethx up先手动拉起再确认配置文件的auto ethx和DHCP/静态IP是否写对。另外一些消费级型号的驱动问题也常被误判比如AX201网卡无法启动realtek网卡驱动异常。这类问题多出现在驱动版本和内核不匹配时。原则上服务器网卡必须用原厂OFED驱动或发行版仓库里的认证书驱动不要从网上乱拉第三方驱动包。每次升级内核后驱动需要重编这点务必写进运维制度。5.3 链路质量差信道宽度、监听模式与吞吐异常排查网络性能问题时“网卡信道宽度”这个参数常被忽略。在以太网模式下网卡和交换机会协商速率比如400G网卡实际只有100G往往是因为协商到了PCIe降速或端口配置为100G。用ethtool eth0看Speed和Duplex再用ethtool -l eth0看最大队列数保证多队列开启。监听模式则主要涉及抓包工具需要确认网卡支持rx-all和promisc权限不足时抓不到上行包大家误以为断网。吞吐异常时我建议先跑单流测试再跑多流测试。单流带宽上不去大概率是窗口太小或CPU中断分配不均匀多流总带宽不够更多是哈希不均匀或链路聚合配置有误。使用ethtool -x eth0可以查看RSS哈希配置如果需要调整队列用ethtool -L修改。遇到疑似线缆问题还得查ethtool -S里的错误计数。实践中最难的往往是“看起来正常但性能不达标”这时候可以借助ibdiagnet -c做全网健康检查比一根根排查高效得多。5.4 常见网卡与线缆故障速查表现象可能与原因优先排查动作网卡灯不亮系统识别正常DAC线缆不兼容、光模块发射功率低、链路被禁用设备两端ethtool ethx看link更换线缆测试网线确认是通的但ping不通VLAN配置错误、IP冲突、防火墙规则、驱动丢包先ip a查IP和路由再ping网关分段Linux网卡开机不自启NetworkManager或netplan配置未生效查看ifconfig -a、nmcli device status改静态配置并systemctl restart networkingESXi安装提示没有网卡ISO缺少内置驱动下载定制的过驱动ISO或加载驱动包虚拟机没有虚拟网卡虚拟交换机端口组未接、VMtools未装检查ESXi网络配置和虚拟机网卡连接状态虚拟网卡不存在或被禁用tun模块未加载或权限不足modprobe tunls -l /dev/net/tun网卡监听模式抓不到包网卡不支持或权限不足用root执行tcpdump检查promisc配置吞吐下降且CRC错误增长光缆/铜缆损坏或弯曲过度更换线缆并用ethtool -S确认错误计数清零网卡工作速率低于标称PCIe降速、交换机端口速率协商异常检查PCIe代次在交换机侧强制速率5.5 关于那些消费级网卡故障的题外话热词里出现“联想小新Pro网卡驱动下载”“USB千兆网卡芯片安卓9”“飞牛USB网卡”这些说明还有不少同学在使用普通PC和外置网卡时遇到麻烦。这些场景和万卡集群差异很大但排查哲学一样驱动要匹配、接口要up、线缆要通、协议要配。比如USB千兆网卡在安卓设备上不识别多数是芯片产品没有内置对应驱动用带RTL8153之类常见芯片的网卡兼容性会好很多。消费级设备追求的是省心这一点我深有体会。如果只是个人电脑上使用的千兆/万兆USB网卡选购时别只看价格优先选芯片成熟、官方驱动持续更新的品牌。很多安卓盒子插上网卡后没反应找厂商要固件或驱动是常规操作。不过这些设备可靠性远不及数据中心网卡不要指望它们承担长时间高负载传输否则丢包和过热降速都是常态。写在最后我的一些实操体会万卡集群组网做到最后拼的不是炫技而是基础细节。我个人体会最深的是“网卡灯不亮”这一件事很多所谓故障最后都回到线缆和模块上——不是原厂DAC或者光口上落了一层灰或者光纤接反了。每次遇到这种问题我都提醒自己先把物理层躺平再看协议栈。另一个体会是采购渠道千万不能儿戏。最后分享一个小技巧新到一批网卡和线缆不要急着全部上车先拿一台服务器、两根线缆、一台交换机搭一个最小验证环境跑满带宽和延迟测试。这个工作表面上耽误一小时实际能挡住后面几天的返工。同样的逻辑也适用于固件驱动升级先小范围验证再批量推广。希望这些经验能帮后来者少走几个弯路让万卡集群的每一份带宽都真正用在刀刃上。
返回列表