OCP网卡热拔插操作显示操作失败,同时会有OS卡死与网络不通现象

问题描述

使用OCP网卡(MCX631432AN-ADAB)进行热拔插操作,百分百复现操作失败提示。
在手动卸载网卡后,OS会卡死
卸载完再重新将OCP网卡接上,会大概率导致BMC网络不通(实测5次出现4次该现象)

环境信息

  • 操作系统:openEuler 22.03 (LTS-SP3)

  • 软件版本: OpenUBMC2606

  • 硬件配置:

重现步骤

  1. 进入网络适配器页面,点击OCP网卡的热拔插操作,弹出的提示框中点击确定,提示操作失败

  2. 刷新该页面再次进入,显示资源正在卸载中,此时手动拔出OCP网卡,右下角提示资源已卸载,可拔出网卡,此时连接KVM,发现主机OS卡住,无法输入操作,光标无闪烁,外接屏幕现象一致

  3. 重新将OCP网卡插入,一两分钟内出现BMC网络不通状况,需重新上下电才恢复正常

期望结果

热拔插操作提示操作成功,且热拔插后一切正常

实际结果

热拔插网卡时提示操作失败,且拔出网卡后有OS卡死与网络不通的情况

尝试过的解决方案

猜测是否需要点击热拔插网卡按钮时迅速把OCP网卡拔出,但同样提示操作失败

分析结论

暂无

答案内容由AI生成,仅供参考:

五、总结

当前 openUBMC 中 OCP 网卡的热拔插功能尚存在若干已知问题,主要集中在:

  • PCIeSlot 电源状态切换失败(导致卸载卡住)
  • NCSI 管理对热拔插无感知(导致网络不通)
  • 热拔后系统电源/PCIe 状态异常(可能引发 OS 卡死或掉电)

社区已在部分型号(如 BCM957508、MCX623436AN-CDAB)上通过代码补丁进行了修复,您遇到的现象与这些已知问题高度吻合。建议结合所使用的软件版本(OpenUBMC2606)查看相关组件的最新代码及补丁,并与平台维护团队确认硬件配置是否满足热拔插要求。

以上分析均基于 openUBMC 论坛讨论及知识库记录,具体实现细节可参考 network_adapter 和 pcie_device 组件的源码及对应的 PR 说明。如果问题持续,建议在论坛上提供更详细的硬件拓扑和 BMC 日志,以便进一步定位。

点击此处查看详细分析解答

根据 openUBMC 社区的相关讨论、知识图谱中的实体关系以及已有的文档记录,您描述的 OCP 网卡热拔插操作失败、OS 卡死以及网络不通 现象在多个类似案例中均有提及,以下是对各问题的分析与梳理。

一、热拔插操作失败的常见原因

  • 正常流程回顾
    在 BMC Web 界面点击热拔按钮后,BMC 会设置 NetworkAdapter.ReadyToRemove 属性(关联硬件 Accessor,实现“通知式热拔”),随后调用对应 PCIeSlot 的 PowerControl 方法将槽位电源置为 Off,并持续监控该 Slot 的 PowerState 属性直至变为 Off,才算成功卸载。

  • 操作失败的可能原因

    1. PowerState 无法变为 Off:如 topic#5665 所分析的,当前环境下 PCIeSlot.PowerState 一直保持在 On 状态,导致热拔命令始终处于“卸载中”,无法完成下电。该问题可能与 PCIeSlot 对象与 NetworkAdapter 的匹配关系(如 BDF、四元组信息)不正确有关,或者下电操作的闭源组件需要适配当前机器拓扑。
    2. ComponentType 同步问题:NetworkAdapter 的 component_type 属性若为 0,可能导致下电流程被跳过,需要先调用 update_component_type() 才能与 PCIeSlot 匹配。
    3. PCIeSlot 配置不完整:在 2512LTS 版本中,热拔插相关属性已从 NetworkAdapter 移至 PCIeSlot(例如 CardPowerGood 改为 PowerState,ReadyToRemove 改为 PCIeSlot.ReadyToRemove),若 VPD 或硬件配置中未正确配置对应的 PCIeSlot 对象,将导致下电控制失败(参见 topic#7)。
    4. 已知型号的缺陷与修复:BCM957508-N2100G 网卡曾报告完全无法触发热拔操作,社区已通过 PR(pcie_device#84)修复了卸载功能(topic#2659);MCX623436AN-CDAB 也曾出现卸载卡住,原因与上述电源状态未变化一致。

二、OS 卡死的可能原因

  • 热拔过程中网卡电源未完全切断,或 PCIe 拓扑状态异常,可能导致主机系统挂起。有用户报告过在热拔卸载后、重新插入网卡时出现 “OS 直接掉电” 的现象(topic#5062 实际结果),与您描述的 OS 卡死(无法输入、光标无闪烁)在本质上可能同源。
  • 热拔后风扇转速异常、温度获取失败等问题(如 SF221Q 热拔后风扇转速拉高 80%、无法获取温度告警)也可能间接影响系统稳定性。
  • 另外,network_adapter 模块对 OCP 热拔插无感知(topic#5408),NCSI 链路未能正确关闭或重建,可能导致网络栈异常,进而影响 OS 层的行为。

三、网络不通的原因

  • 核心问题:network_adapter 模块对 OCP 热拔插无感知
    在通知热拔并物理拔出 OCP 网卡后,network_adapter 的 NCSI 管理流程存在缺陷:网口页面仍显示 OCP 网口,同时日志持续刷屏(如 Enable channel failed、Disable broadcast filter failed 等重复数百次),说明 NCSI 通道未正确释放。
  • 重新插入后 NCSI 无法恢复
    当重新插入实体网卡后,试图将管理网口切换到 NCSI 口时,会出现 NCSI 网络长时间不通(十几分钟无法恢复),直到做一次 OS 上下电才能恢复(topic#5408)。这与您“一两分钟内出现 BMC 网络不通”的现象吻合,只是触发时机略有差异。
  • 后台服务影响
    网络不通还可能关联 bmc_network 服务异常,例如 maca 检测到 bmc_network 连续离线而触发 BMC 重启(日志中可见 [bmc_network] continuously offline 5 time within 10 minutes, rebooting…),不过您描述的现象似乎未重启,但网络服务已失效。

四、建议的解决方向

  1. 检查 PCIeSlot 配置

    • 确认 PCIeSlot 对象已正确配置,尤其关注 PowerState 和 ReadyToRemove 属性是否与 NetworkAdapter 的对应关系一致。
    • 若使用较新版本(如 2512LTS 及以上),请确保 VPD 和硬件配置中已包含完整的 PCIeSlot 定义。
  2. 查阅已有的社区修复

    • 参考 PR openUBMC/pcie_device#84(修复 BCM957508 热拔插卸载功能)。
    • 关注 network_adapter 组件的后续更新,尤其是 NCSI 管理流程中对热拔插事件的响应逻辑。
  3. 验证硬件兼容性

    • 如果 OCP Riser 或 UBC 线缆曾被更改(如 topic#5665 前置网卡更换 Riser 后出现热拔卡住),请检查硬件信号和电源控制是否正常,必要时与硬件团队确认。
  4. 临时规避措施

    • 在尝试热拔时,观察 BMC 日志中 PCIeSlot.PowerState 是否变化;若一直为 On,可考虑强制下电操作(但需注意风险)。
    • 若网络不通,尝试通过串口或带外 IPMI 进行 BMC 恢复(如切换分区、重启服务)。

五、总结

当前 openUBMC 中 OCP 网卡的热拔插功能尚存在若干已知问题,主要集中在:

  • PCIeSlot 电源状态切换失败(导致卸载卡住)
  • NCSI 管理对热拔插无感知(导致网络不通)
  • 热拔后系统电源/PCIe 状态异常(可能引发 OS 卡死或掉电)

社区已在部分型号(如 BCM957508、MCX623436AN-CDAB)上通过代码补丁进行了修复,您遇到的现象与这些已知问题高度吻合。建议结合所使用的软件版本(OpenUBMC2606)查看相关组件的最新代码及补丁,并与平台维护团队确认硬件配置是否满足热拔插要求。

以上分析均基于 openUBMC 论坛讨论及知识库记录,具体实现细节可参考 network_adapter 和 pcie_device 组件的源码及对应的 PR 说明。如果问题持续,建议在论坛上提供更详细的硬件拓扑和 BMC 日志,以便进一步定位。

麻烦附上一键日志收集辅助定位

S950X00_2102315RYU10S4100121_20260721-0701.tar.gz (23.1 MB)

请问这个问题有结论吗?碰到了同样的问题

华为方面并没有给出后续结论,但我司硬件后来解释说硬件本身不支持热拔插功能,此问题也就结束了

您好,请问现在这个问题有跟踪进展么,华为方面是否有回复呀?