第二章:RoCE网络核心组件:支持RoCE的网卡选型、支持PFC的交换机、RoCE专用线缆与光模块
聊RoCE高可用,绕不开硬件选型。很多人觉得“只要网卡支持RoCE就行”,结果上线就丢包、断流,折腾半个月才发现是交换机不支持PFC。嗯,这坑我踩过。
今天咱们把三个核心组件掰开揉碎讲清楚:网卡、交换机、线缆光模块。这三样选不对,后面的高可用设计全是空中楼阁。
一、支持RoCE的网卡选型
网卡是RoCE的起点。说白了,它负责把内存数据直接塞进网络,不经过CPU。但不同网卡的能力天差地别。
1.1 关键能力指标
我个人习惯看这几个参数:
- 支持RoCE v1/v2:现在主流是RoCE v2,走UDP封装,能跨三层路由。v1只能跑二层,基本淘汰了。
- 硬件卸载能力:包括TCP/UDP校验和卸载、LRO/LSO、RSS。没有硬件卸载,CPU会被打爆。
- RDMA引擎数量:决定了并发连接数。我见过某厂商低端卡只有4个QP上下文,跑分布式存储直接撑爆。
- PCIe带宽匹配:100G网卡至少需要PCIe 3.0 x16或PCIe 4.0 x8。别让总线成为瓶颈。
避坑指南:我曾经在项目里选了某款“支持RoCE”的网卡,结果发现它只支持RoCE v1,无法跨VLAN路由。最后全部返工换卡,工期延误两周。所以选型时一定确认支持RoCE v2。
1.2 主流厂商对比
| 厂商 | 代表型号 | 速率 | 特点 |
|---|---|---|---|
| Mellanox(NVIDIA) | ConnectX-6 Dx | 100/200G | 生态最好,支持GPUDirect,RDMA性能稳定 |
| Intel | E810-CQDA2 | 100G | ADQ技术优化,适合混合负载 |
| Broadcom | NetXtreme-E系列 | 25/100G | 性价比高,但RDMA调优需要额外配置 |
我个人倾向Mellanox。不是因为它贵,而是它的RDMA实现最成熟。你想想看,RoCE标准本身就是Mellanox主导推动的,兼容性自然最好。
二、支持PFC的交换机
这是RoCE网络里最容易翻车的地方。很多人以为“交换机支持DCB就行”,结果PFC配置不对,导致死锁、PFC风暴,整个网络瘫痪。
2.1 为什么需要PFC?
RoCE是无损网络。传统以太网丢包后会重传,但RDMA不允许丢包——一旦丢包,性能断崖式下跌。PFC(优先级流控)就是用来保证不丢包的。
它的原理很简单:当接收端缓冲区快满时,发送一个暂停帧,让发送端等一等。但问题在于,如果PFC配置不当,一个端口的暂停会扩散到整个网络,形成PFC死锁。
警告:PFC不是万能的。我曾经遇到一个案例,某交换机PFC buffer配置太小,导致频繁触发流控,RDMA延迟从5μs飙升到200μs。最后调整了buffer大小和XON/XOFF阈值才解决。
2.2 交换机选型要点
- 支持DCB(数据中心桥接):包括PFC、ETS、DCBX。这是RoCE的基础。
- 大缓冲区:至少8MB以上。缓冲区越大,PFC触发越少,性能越稳定。
- 支持ECN(显式拥塞通知):配合DCQCN算法,实现端到端拥塞控制。这是高可用的关键。
- 低延迟转发:Cut-through模式比Store-and-forward延迟低50%以上。
2.3 推荐厂商
我建议优先考虑:
- NVIDIA Spectrum系列:与Mellanox网卡深度适配,PFC/ECN配置开箱即用。
- Cisco Nexus 9000系列:成熟稳定,但配置复杂,需要专业团队调优。
- 华为CloudEngine系列:国内生态好,支持iLossless算法,能自动优化PFC参数。
三、RoCE专用线缆与光模块
很多人忽视这个环节。线缆和光模块选不对,信号质量差,误码率飙升,RDMA照样跑不起来。
3.1 线缆类型
| 类型 | 最大距离 | 适用场景 |
|---|---|---|
| DAC(直连铜缆) | 7米 | 机柜内互联,成本低,功耗低 |
| AOC(有源光缆) | 100米 | 跨机柜,抗干扰强 |
| 光模块+光纤 | 10km+ | 跨机房,需要长距离传输 |
我个人习惯:机柜内用DAC,便宜又稳定。跨机柜用AOC,别省那点钱——我见过用劣质DAC导致CRC错误暴增的案例。
3.2 光模块选型要点
- 兼容性:必须与网卡和交换机兼容。有些厂商锁模块,只能用原厂。
- 功耗:100G光模块功耗一般在3.5W-5W,过高会导致散热问题。
- 误码率:要求BER低于10^-12。RDMA对误码极其敏感。
- DDM(数字诊断监控):支持实时监控光功率、温度、电压。排查故障必备。
小技巧:选光模块时,尽量选同一批次的。不同批次的光模块,发射功率和接收灵敏度可能有差异,混用容易导致链路不稳定。
四、核心组件关系图
下面这张图展示了RoCE网络三个核心组件的关系:
这张图想表达的核心逻辑:网卡负责数据进出,交换机负责无损转发,线缆光模块负责物理传输。三者缺一不可,任何一个环节出问题,RDMA性能都会崩。
五、选型总结
最后,我把自己多年的选型经验浓缩成几句话:
- 网卡:优先Mellanox,确认支持RoCE v2和硬件卸载。别图便宜买低端卡。
- 交换机:必须支持PFC+ECN,缓冲区要大。配置前先做PFC死锁测试。
- 线缆光模块:机柜内用DAC,跨机柜用AOC。光模块买同一批次,做好兼容性验证。
核心原则:RoCE高可用不是靠软件调出来的,而是靠硬件选型打底的。选对了,后面事半功倍;选错了,天天救火。
嗯,这一章就到这里。记住:硬件选型是RoCE网络的基石,别在这上面省钱。