重复执行硬盘上下电触发链路问题/BT通道超时

// 此模板仅供参考,如果不适用可以修改

问题描述

环境存在3个2*NVMe背板,满配6NVMe硬盘。通过ipmitool命令连续执行6NVMe硬盘的上下点指令。前10轮执行均正常,执行到第十一轮存在指令发送不通问题,查看app.log,此时出现写入cpld失败情况。

image

同时查看存在ipmi-BT通道超时告警。这种情况是因为什么呢

ern :info : [Tue Apr 21 15:13:26 2026] pcieport 0000:59:06.0: pciehp: Slot(159): Link Down
kern :info : [Tue Apr 21 15:13:26 2026] nvme nvme1: remove pci function 0000:5b:00.0
kern :info : [Tue Apr 21 15:13:26 2026] pcieport 0000:59:04.0: pciehp: Slot(158): Card present
kern :info : [Tue Apr 21 15:13:27 2026] pcieport 0000:59:04.0: pciehp: Slot(158): No link
kern :info : [Tue Apr 21 15:13:27 2026] pcieport 0000:59:06.0: pciehp: Slot(159): Card present
kern :info : [Tue Apr 21 15:13:28 2026] pcieport 0000:59:06.0: pciehp: Slot(159): No link
kern :warn : [Tue Apr 21 15:13:30 2026] ipmi_si IPI0001:01: IPMI BT: timeout in RD_WAIT
kern :warn : [Tue Apr 21 15:13:30 2026] 2 retries left
kern :warn : [Tue Apr 21 15:13:35 2026] ipmi_si IPI0001:01: IPMI BT: timeout in RD_WAIT
kern :warn : [Tue Apr 21 15:13:35 2026] 1 retries left
kern :warn : [Tue Apr 21 15:13:44 2026] ipmi_si IPI0001:01: IPMI BT: timeout in RD_WAIT
kern :warn : [Tue Apr 21 15:13:44 2026] 2 retries left
kern :warn : [Tue Apr 21 15:13:49 2026] ipmi_si IPI0001:01: IPMI BT: timeout in RD_WAIT
kern :warn : [Tue Apr 21 15:13:49 2026] 1 retries left
kern :warn : [Tue Apr 21 15:13:57 2026] ipmi_si IPI0001:01: IPMI BT: timeout in RD_WAIT
kern :warn : [Tue Apr 21 15:13:57 2026] 2 retries left
kern :warn : [Tue Apr 21 15:14:02 2026] ipmi_si IPI0001:01: IPMI BT: timeout in RD_WAIT
kern :warn : [Tue Apr 21 15:14:02 2026] 1 retries left
kern :warn : [Tue Apr 21 15:14:09 2026] ipmi_si IPI0001:01: IPMI BT: timeout in RD_WAIT
kern :warn : [Tue Apr 21 15:14:09 2026] 2 retries left
kern :warn : [Tue Apr 21 15:14:14 2026] ipmi_si IPI0001:01: IPMI BT: timeout in RD_WAIT

环境信息

  • 操作系统:[如 Ubuntu 24.04]

  • 软件版本:[如 OpenUBMC2509]

  • 硬件配置:[如 CPU、内存等]

重现步骤

  1. [第一步]

  2. [第二步]

  3. [第三步]

期望结果

[您希望实现什么]

实际结果

[实际发生了什么,包含错误信息]

尝试过的解决方案

[列出您已经尝试过的解决方案及结果]

分析结论

[详细总结您对此问题的分析结论]

答案内容由AI生成,仅供参考:
好的,根据您的要求,我从提供的回答内容中提取了“总结”章节的内容如下:

总结

根本原因:您的操作(连续执行6个NVMe硬盘的上下电)在短时间内产生了大量的IPMI并发请求,超出了IPMI BT通道的处理能力,导致通道拥塞并触发超时。

结论:此问题属于 IPMI BT通道在特定高并发场景下的已知性能瓶颈,并非硬件故障或BMC固件异常。在您这种多NVMe硬盘的配置下,高频、连续的上下电操作很容易复现此问题。


另外,文中也包含“相关解决方案与规避建议”章节,但未明确以“解决方案”或“结论”作为标题,因此按照您“原样提取”中“总结”、“解决方案”或“结论”章节的要求,仅提取上述“总结”章节。

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

好的,根据您提供的详细信息以及知识库中的内容,我对您遇到的“重复执行硬盘上下电触发链路问题/BT通道超时”问题分析如下。

问题分析结论

根据您提供的日志和知识库中的信息,导致此问题的核心原因是 IPMI BT 通道在高并发操作下的性能瓶颈。具体分析如下:

1. 直接原因:IPMI BT 通道带宽不足

您的环境中有 3个2*NVMe背板,满配 6个NVMe硬盘。当您通过 ipmitool 连续、快速地执行6个硬盘的上下电指令时,这会在短时间内产生大量并发的IPMI命令请求。

  • 根据知识库,IPMI BT通道 是一个通信接口,但其 带宽有限,并发处理能力较弱。
  • 当多个组件(如您场景中的6个NVMe硬盘)同时触发IPMI请求时,BT通道会迅速成为瓶颈,导致通道拥塞。
  • 这种拥塞直接体现为内核日志中的 IPMI BT: timeout in RD_WAIT (读取等待状态超时) 以及 failed 2 retries (重试失败)。

2. 间接原因:与“一键收集日志”场景的相似性

知识库中明确记录了 “iBMC页面一键收集日志,系统dmesg日志出现IPMI BT timeout” 的问题。该问题描述与您当前情况高度相似:

  • 触发条件:都需要在短时间内处理大量与硬件交互的IPMI命令。
  • 根本原因:问题分析和解决方案章节明确指出,“IPMI BT 接口性能有限,带宽较小且并发处理能力较弱”,在大量并发请求时导致超时。
  • 解决方案:建议 避免在业务高峰或在线状态下执行此类高负载操作

您反复执行上下电指令,本质上等同于人为制造了一个高并发的IPMI命令请求场景,从而触发了相同的BT通道性能瓶颈。

3. 关联问题:CPLD写入失败

您提到的 “写入cpld失败” 很可能是 BT通道超时的直接后果

  • 当BT通道因拥塞而超时后,后续通过该通道发送给CPLD的控制命令(如上下电指令)将无法成功传输。
  • 因此,app.log中出现的“写入cpld失败”是BT通道超时引发的下游错误,而不是问题的根本原因。这通常是在通信链路出现问题后,上层应用(BMC)执行操作时遇到的必然失败结果。

总结

根本原因:您的操作(连续执行6个NVMe硬盘的上下电)在短时间内产生了大量的IPMI并发请求,超出了IPMI BT通道的处理能力,导致通道拥塞并触发超时。

结论:此问题属于 IPMI BT通道在特定高并发场景下的已知性能瓶颈,并非硬件故障或BMC固件异常。在您这种多NVMe硬盘的配置下,高频、连续的上下电操作很容易复现此问题。

相关解决方案与规避建议

基于知识库中的信息,您可以尝试以下方案:

  1. 降低操作频率:这是最直接有效的规避方法。避免在短时间内连续、快速地执行大量硬盘的上下电指令。可以在每次操作之间增加适当的延迟(例如,等待前一个操作完全完成并稳定后再执行下一个)。
  2. 分批操作:不要同时对6个硬盘执行上下电,尝试每次操作1-2个硬盘,分批次完成。
  3. 避免高峰期:如果系统承载着关键业务,请在业务空闲或维护窗口期执行此类操作。
  4. 更新固件/软件:根据知识库中关于“昆仑太科_张红涛”的贡献,他曾建议 “更新到较新的固件版本” 来解决BT通道相关的性能问题。请检查您的OpenUBMC版本(如您提到的OpenUBMC2509)是否有后续的补丁或更新,特别是涉及 ipmi_core 组件的版本(如建议升级到 1.10.31 及以后版本)。