硬盘热插拔五次后出现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属性值未变更,从而产生误告警。
解决方案
硬盘不在位的情况下,清空防抖次数,在位后重新计算防抖次数。