4. RoCE配置基础
核心原理:RoCEv2的“网络承载”依赖链
RoCE(RDMA over Converged Ethernet)的本质是将RDMA报文封装在以太网帧中传输。RoCEv2进一步将报文封装进UDP/IP包(目的端口4791),使其能够跨越三层路由。但这也意味着,RoCE的可靠性不再由InfiniBand的链路层机制保证,而是完全依赖底层以太网基础设施的“无损”能力。若IP、路由、VLAN、PFC、ECN任一环节配置不当,轻则造成吞吐下降,重则引发PFC死锁或丢包风暴。
理解RoCE配置,必须抓住一条主线:数据面(转发路径)与控制面(拥塞反馈)的协同。数据面解决“报文怎么走”,涉及IP地址、路由、VLAN;控制面解决“拥塞了怎么办”,涉及PFC(逐跳流量控制)和ECN(端到端拥塞标记)。两者缺一不可,且必须与网络设备的硬件队列、缓存策略严格匹配。
配置前必读:RoCE配置不是单点操作,而是“主机网卡 + 接入交换机 + 核心交换机”的端到端协同。任何一端的参数漂移(如MTU不一致、PFC优先级映射错位)都会导致静默丢包或性能悬崖。
方法流程:五步完成RoCE基础配置
RoCE配置遵循“先物理、后逻辑;先数据面、后控制面”的顺序。以下流程适用于主流交换机(如Cisco Nexus 9000、Arista、华为CloudEngine)与Mellanox网卡环境。
- IP与路由规划:为每台RDMA主机分配独立IP,建议使用专用网段(如10.10.0.0/16),避免与业务管理网段混用。若跨二层,需配置OSPF或BGP;若同二层,仅需配置VLAN接口IP。
- VLAN划分:将RDMA流量放入专用VLAN(如VLAN 100),交换机端口配置为Trunk并允许该VLAN通过,主机侧VLAN必须与交换机一致。
- MTU一致性:RoCEv2建议使用9000字节巨型帧(Jumbo Frame)。主机网卡、交换机所有转发端口必须统一MTU,否则报文分片导致性能骤降。
- PFC(优先级流控)配置:在交换机上为RoCE流量指定802.1p优先级(通常为3或4),使能该优先级的PFC无丢包能力。同时需配置缓冲区(Buffer)大小,确保暂停帧能及时生效。
- ECN与WRED配置:在交换机出端口启用ECN标记,设置队列阈值。当队列深度超过阈值时,在IP头标记CE(Congestion Experienced),接收端网卡反馈CNP(Congestion Notification Packet)给发送端,实现端到端降速。
实操提示:Mellanox网卡默认将RoCE流量映射到优先级3,DSCP值为46。交换机侧必须保持相同的优先级映射,否则PFC无法识别RoCE流量。
案例/场景:同二层RoCE配置实例
某AI训练集群,两台服务器直连接入交换机,需配置RoCEv2通信。以下为关键配置片段。
交换机侧(以Cisco Nexus为例):
interface Ethernet1/1
switchport mode trunk
switchport trunk allowed vlan 100
mtu 9216
priority-flow-control mode on
priority-flow-control priority 3 no-drop
service-policy type qos input ROCE-IN
class-map type qos match-all ROCE
match cos 3
policy-map type qos ROCE-IN
class ROCE
set dscp 46
set qos-group 1
policy-map type queuing ROCE-OUT
class type queuing c-1
bandwidth percent 80
random-detect dscp-based
random-detect dscp 46 ecn
主机侧(Mellanox网卡):
# 设置RoCE模式
mlxconfig -d mlx5_0 set ROCE_ENABLE=1
# 设置优先级和DSCP映射
mlxconfig -d mlx5_0 set APP_LIST=3,46,3
# 重启网卡驱动生效
reboot
验证命令:ibstat查看端口状态,ib_write_bw -d mlx5_0测试带宽。若PFC配置正确,ethtool -S eth0 | grep pfc应显示无丢包计数。
误区/复盘:常见配置陷阱
| 误区 | 现象 | 根因分析 |
|---|---|---|
| MTU不一致 | 大包传输时吞吐骤降,小包正常 | 交换机MTU 1500,主机MTU 9000,触发IP分片 |
| PFC优先级错位 | 拥塞时丢包,但PFC计数不增加 | 交换机使能优先级4,但RoCE流量实际在优先级3 |
| ECN未与WRED联动 | ECN标记不生效,拥塞无反馈 | 仅开启ECN但未配置WRED丢弃阈值 |
| VLAN不匹配 | ARP能通但RoCE连接超时 | 主机VLAN 100,交换机Trunk未放行或PVID错误 |
复盘要点:RoCE故障排查中,70%的问题源于“配置漂移”——即主机与交换机参数不一致。建议建立配置基线文档,每次变更后使用show priority-flow-control、show qos ecn等命令核对。尤其注意:PFC暂停帧本身会掩盖拥塞,若PFC计数持续增长,说明网络存在长期微突发,需结合ECN阈值调优,而非单纯加大缓冲区。