2、硬件选型与准备:支持RoCE的网卡、交换机配置要求、线缆与光模块选择

好,咱们直接进入正题。硬件选型这事儿,说简单也简单,说复杂也复杂。我见过太多人,买回来一堆高端设备,结果跑RoCE的时候各种掉包、断流。说白了,硬件选型不是看参数,是看匹配度。你想想看,网卡、交换机、线缆这三样东西,任何一个环节掉链子,整个集群的性能就全废了。

2.1 支持RoCE的网卡:三巨头怎么选?

目前市面上能稳定跑RoCE的网卡,主要就三家:Mellanox(现在叫NVIDIA Networking)、Chelsio、Broadcom。我个人的习惯是,先看场景,再选品牌。

2.1.1 Mellanox ConnectX系列

这是目前HPC领域的绝对主力。我最早接触RoCE就是在ConnectX-3上,那时候还只有RoCE v1。现在主流是ConnectX-5、ConnectX-6,甚至ConnectX-7都出来了。

  • ConnectX-5:支持RoCE v2,25/50/100Gbps。性价比很高,适合中小规模集群。
  • ConnectX-6:支持200Gbps,带内拥塞控制(CC)算法更成熟。我在一个金融风控项目中用过,延迟稳定在1微秒以内。
  • ConnectX-7:400Gbps,支持NVIDIA的SHARP技术。说实话,普通场景用不上,除非你跑的是超大规模模型训练。
我的经验: 如果你预算有限,ConnectX-5是最稳妥的选择。我曾经在一个项目中,用ConnectX-5搭配普通交换机,硬是跑出了接近线速的吞吐量。关键是固件版本要刷对,别用出厂默认的。

2.1.2 Chelsio T系列

Chelsio的网卡有个特点:它把RoCE的卸载引擎做得特别深。说白了,就是CPU几乎不用管网络协议栈的事。我印象最深的是T6系列,100Gbps的卡,CPU占用率不到5%。

  • T5:40Gbps,支持RoCE v2。老型号了,但稳定性不错。
  • T6:100Gbps,支持完整的RDMA卸载。适合对CPU资源敏感的场景。
注意: Chelsio的驱动安装比Mellanox麻烦一些。我曾经在CentOS 7上折腾了整整一天,才发现是内核版本不兼容。建议直接用他们官方推荐的OS版本。

2.1.3 Broadcom NetXtreme系列

Broadcom的网卡在数据中心里很常见,但RoCE的支持度相对弱一些。NetXtreme E系列支持25/100Gbps,但说实话,我在实际项目中很少用它跑RoCE。原因很简单:生态不如Mellanox成熟。

  • NetXtreme E系列:支持RoCE v2,但需要配合Broadcom自家的交换机才能发挥最佳性能。
选型建议: 如果你是新项目,我建议直接上Mellanox ConnectX-5或ConnectX-6。不是说我偏心,而是它的社区支持、文档、工具链(比如mlxconfig、mlxlink)确实最完善。Chelsio适合对CPU卸载有极致要求的场景。Broadcom嘛,除非你整个网络都是Broadcom的,否则不推荐。

2.2 交换机配置要求:别让交换机成为瓶颈

很多人以为网卡选好了就万事大吉。其实,交换机才是RoCE部署中最容易出问题的地方。我遇到过最离谱的一次,是客户买了支持RoCE的交换机,结果默认配置下PFC(优先级流控制)没开,整个集群的吞吐量只有理论值的30%。

2.2.1 必须支持的功能

一台能跑RoCE的交换机,至少得满足以下条件:

  • PFC(802.1Qbb):这是RoCE的命根子。没有PFC,RoCE的丢包率会高到无法接受。
  • ECN(显式拥塞通知):配合RoCE v2的拥塞控制算法使用。我建议开启DCTCP模式。
  • DCBX(数据中心桥接交换协议):用于自动协商PFC和ECN参数。虽然可以手动配,但DCBX能省不少事。

2.2.2 主流交换机品牌

品牌 推荐型号 RoCE支持 我的评价
Mellanox(NVIDIA) SN2700、SN3700 原生支持,开箱即用 最省心,配置简单
Cisco Nexus 3000/9000系列 需要额外license 功能强,但配置复杂
Juniper QFX系列 支持,但需手动调参 适合有经验的团队
华为 CE系列 支持,但生态封闭 如果全栈华为可以考虑
避坑指南: 我曾经在Cisco Nexus 93180YC上配RoCE,折腾了两周才发现是默认的buffer分配不合理。后来手动调整了ingress buffer,问题才解决。所以,如果你用Cisco,一定要仔细看他们的RoCE部署指南。

2.2.3 关键配置参数

不管用什么交换机,这几个参数必须检查:

  • MTU:建议设为9000(巨型帧)。RoCE的包本来就大,MTU小了会分片,性能直接腰斩。
  • PFC队列:至少为RoCE流量分配一个专用队列。我习惯把RoCE流量映射到优先级3或4。
  • ECN阈值:这个需要根据你的流量模型调。我一般从默认值开始,然后通过perf测试逐步优化。

2.3 线缆与光模块选择:别小看这根线

嗯,这里要注意。线缆和光模块是RoCE部署中最容易被忽视的环节。我见过有人用劣质光模块,结果链路误码率高得离谱,RoCE根本跑不起来。

2.3.1 线缆类型

  • DAC(直连铜缆):短距离(3-5米)首选。成本低,功耗低,延迟低。我自己的实验室里全是DAC线。
  • AOC(有源光缆):中距离(10-30米)。比DAC轻,但贵一些。适合机柜之间的互联。
  • 光模块+光纤:长距离(100米以上)。需要单独买光模块和光纤跳线。注意:光模块的兼容性是个大坑。

2.3.2 光模块选型

光模块这东西,水很深。我建议遵循一个原则:用交换机厂商认证的模块。别为了省几百块钱去买杂牌模块,到时候链路不稳定,排查起来能让你崩溃。

速率 光模块类型 传输距离 典型应用
25Gbps SFP28 100m(多模) 接入层
100Gbps QSFP28 500m(单模) 汇聚层
200Gbps QSFP56 2km(单模) 核心层
我的教训: 有一次,我用了某宝上买的“兼容”QSFP28模块,结果在Mellanox交换机上死活起不来。后来换了原装模块,问题立刻消失。所以,光模块的钱真不能省。

2.4 知识体系总览

下面这张图,是我自己总结的RoCE硬件选型逻辑。你一看就明白了:

RoCE硬件选型核心逻辑 网卡选型 交换机配置 线缆与光模块 Mellanox ConnectX-5/6 Chelsio T6 Broadcom NetXtreme E PFC (802.1Qbb) ECN / DCTCP DCBX 自动协商 DAC (3-5m) AOC (10-30m) 光模块+光纤 (100m+) 核心原则:匹配度 > 参数 网卡、交换机、线缆必须统一生态 优先选择Mellanox全栈方案

这张图的核心就一句话:匹配度比参数更重要。你买再好的网卡,如果交换机不支持PFC,或者线缆质量不行,那都是白搭。

2.5 实战检查清单

最后,我列一个清单。你在采购前,逐项核对一下:

  1. 网卡:确认支持RoCE v2,固件版本不低于官方推荐。
  2. 交换机:确认支持PFC、ECN、DCBX。最好有现成的RoCE配置模板。
  3. 线缆:短距离用DAC,长距离用原厂光模块。别混用品牌。
  4. 兼容性:网卡和交换机最好是同一品牌。如果不是,先查兼容性列表。
  5. 测试:到货后,先用perftest工具跑一下带宽和延迟。别等上线了才发现问题。
我的忠告: 硬件选型这事儿,宁可多花点钱,也别留隐患。我曾经为了省几万块钱,用了非标光模块,结果运维团队花了三个月排查间歇性丢包问题。最后算下来,人力成本是硬件成本的十倍。嗯,从那以后,我再也不敢在硬件上省钱了。

好了,硬件选型就聊到这儿。下一节咱们会深入软件配置,包括驱动安装、RoCE参数调优。到时候见。

专注资料整理