不受支持的 SFP 光模块导致物理网卡反复断开/重连告警
适用场景
本文介绍如何定位 ZStack Cloud 物理机上反复出现“网卡未连接/已连接”告警的根因,适用于底层原因为不受支持的 SFP/光模块,而不是线缆、驱动或平台侧问题的场景。经验证的解决方法是识别异常网卡,确认内核拒绝加载该 SFP,然后将第三方模块更换为网卡厂商认可的模块。
问题现象
- 物理机反复产生网卡断开/重连告警。
- 告警中包含具体网卡名称(来源案例中为
p3p2,属于bond2的成员网卡)。
判断方法
按照下文步骤 1、2 和 6 操作,确认告警由不受支持的 SFP 光模块引起,而不是仅 UI 告警、线缆故障或其他物理机侧问题。
原因说明
SFP 模块不在网卡厂商的兼容性列表中,即第三方 SFP 未经过网卡厂商验证。对于 Intel 82599 网卡,固件会拒绝非 Intel SFP,并显示 fail to load because unsupported SFP+ module type was detected 消息,随后该网卡无法在操作系统中注册。
解决方案
1. 执行前准备
- 将云主机迁出受影响的物理机;如果无法迁移,则关闭云主机。
- 重新插拔网卡或更换光模块需要关闭或重启物理机,因此应安排维护窗口。
2. 处理步骤
1. 确认触发告警的网卡
- UI:打开告警条目,记录网卡名称(来源案例中为
p3p2)及其所属的 bond(来源案例中为bond2)。 - 预期结果:获得需要排查的具体网卡和 bond,而不是笼统的物理机级别告警。
2. 确认物理机内的网卡链路是否发生抖动
- 命令:
ip link show | grep p3p2
- 预期结果:网卡状态在
UP和DOWN之间切换,或显示NO-CARRIER。这表示操作系统侧观察到的状态与 UI 告警一致,可以排除仅 UI 误报。
3. 重启网络服务
- 操作:将云主机迁出受影响的物理机;如果无法迁移,则关闭云主机,以便在不影响运行中业务的情况下重新配置物理机。
- 命令:
systemctl restart network
- 预期结果:重启后,操作系统不再显示受影响的网卡。如果网卡未恢复,继续执行步骤 4。
4. 重新插拔硬件以尝试恢复网卡
- 操作:关闭物理机,重新插拔网卡,然后开机。
- 预期结果:
ip link中重新显示该网卡。如果仍未显示,继续执行步骤 5。
5. 更换光模块进行测试并重启
- 操作:将光模块(SFP/SFP+)更换为替代模块,然后重启物理机。
- 预期结果:物理机正常启动,但两块受影响的网卡(来源案例中为
p3p1和p3p2)仍未显示。继续执行步骤 6。
6. 检查 dmesg 中的 SFP 兼容性错误
- 命令:
dmesg | grep -i sfp
- 预期结果(来源案例中的原始消息):
fail to load because unsupported SFP+ module type was detected
- 结果说明:内核拒绝了该 SFP,因为固件(来源案例中为 Intel 82599)仅接受厂商认可的 SFP。来源案例中的
5e:00.0和5e:00.1均因此无法绑定,所以更换后p3p1/p3p2未能注册。
7. 将不受支持的模块更换为厂商认可的模块
- 交叉核对物理机网卡厂商与 SFP 厂商。Intel 82599 网卡仅支持 Intel 品牌的 SFP;第三方模块(来源案例中为 Lenovo 品牌)即使能够物理安装,也无法加载。
- 操作:将第三方 SFP 更换为 Intel 品牌的 SFP,然后重启。
- 预期结果:网卡在操作系统中成功注册,断开/重连告警停止。
验证方法
- 将第三方 SFP 更换为厂商认可的 SFP。
- 重启物理机。
ip link show | grep p3p2
- 如果受影响的网卡名称不同,请使用实际名称。
- 确认网卡显示:
state UP
并具有有效的 MAC 地址。
- 在 ZStack UI 中检查:
- 物理机状态为已连接。
- 网卡断开/重连告警在几分钟内清除。
- 执行:
dmesg | grep -i sfp
- 确认不再出现包含以下内容的错误:
fail to load because unsupported SFP+ module type was detected
风险与回滚
- 重新插拔网卡需要关闭物理机,会影响尚未迁出的云主机。操作前务必将云主机迁移到其他物理机;如果无法迁移,则关闭云主机。
- 不在网卡厂商兼容性列表中的第三方 SFP 即使能够物理安装,也会被固件拒绝。解决方法是使用网卡厂商认可的 SFP。
- 如果更换后网卡仍未恢复,请重新安装原模块,并继续检查网卡、光纤或线缆、驱动及兼容性层。
预防与优化
- 定期巡检平台和底层硬件,在网卡链路抖动、单 bucket 告警等风险信号扩大前及时发现。
- 排查网卡故障时,先检查硬件指示灯,再按“网卡 → 光模块 → 光纤/线缆 → 驱动 → 兼容性”的顺序逐层排查。每一层都可能表现出相同现象。
- Intel 82599 网卡应使用 Intel 品牌的光模块。
