硬盘热插拔五次后出现Missing告警问题分析
更新时间: 2026/06/02
在Gitcode上查看源码

问题背景

  • 单板类型:kunlun2280V2;
  • 软件版本:openUBMC 25.3.0.B001;
  • 涉及功能:硬盘热插拔,告警;
  • 触发条件:热插拔Disk,插拔5次后查看告警信息。
  • 业务表现:预期无Missing告警;实际有Missing告警。

问题复现步骤

Disk2,Disk3,Disk4,Disk5均插上硬盘,每个盘均热插拔5次后查看告警信息。

关键日志信息

app.log日志:

定位过程

从日志上看,缺失产生了Missing告警,Missing属性是用于判断硬盘是否丢失,告警信息显示,热插拔之后,硬盘丢失,因此需要确认Missing属性配置,Missing属性和硬盘在位属性的具体变更逻辑。经查看,硬盘的Missing属性配置默认是0正常,接下来就需要在组件storage中确认Missing属性和硬盘在位属性的具体变更方式;从代码上确认,硬盘热插拔因其对应的Drive对象里Presence反复变化,Disk Missing告警对应的属性仅在Presence为1的时候判断并且进行防抖处理,而Presence为0的时候缺少了清空防抖次数,导致该问题产生。

问题原因

涉及具体代码仓名称:storage; 硬盘不在位的情况下,未清空防抖次数,导致Missing属性值未变更,从而产生误告警。

解决方案

硬盘不在位的情况下,清空防抖次数,在位后重新计算防抖次数。

PR链接

gitcode