NVMe盘I2C断路告警

问题背景

NVMe盘频繁产生Failed to obtain data of the disk DiskX VPD information告警,下一个扫描周期告警又会消除

问题分析

告警逻辑

对应PR:【修改描述】修复NVMe盘I2C断路时无法告警的问题-vpd-AtomGit | GitCode


Scanner_SSD_ReadVPDFail状态异常或状态正常且读值为0时触发告警

日志分析

2026-02-28 05:43:49.082731 event NOTICE: events.lua(106): System minor count change 1 to 2 by [Event_VPDReadFail_01010202].

2026-02-28 05:43:49.096946 event NOTICE: hardware_event.lua(570): Event_VPDReadFail_01010202|{"source":{"expressions":["expr(($1 == 1 || ($1 == 0 && $2 == 0)) ? 1 : 0)"],"properties":[{"Service":"bmc.kepler.hwproxy","Property":"Status","Interface":"bmc.kepler.Scanner","Path":"/bmc/kepler/Scanner/Scanner_SSD_ReadVPDFail_01010202"},{"Service":"bmc.kepler.hwproxy","Property":"Value","Interface":"bmc.kepler.Scanner","Path":"/bmc/kepler/Scanner/Scanner_SSD_ReadVPDFail_01010202"}]},"type":"synchronization","value":[0,0]}

2026-02-28 05:43:49.200205 general_hardware NOTICE: fructl_handler.lua(76): get_power_state: system[1] get power power ON

2026-02-28 05:43:49.210846 event NOTICE: abstract_event.lua(241): [Event_VPDReadFail_01010202] generate an event [assert] while Reading change to [1].

2026-02-28 05:43:49.220067 event_policy NOTICE: synchronizer.lua(252): received a event[37-0].

2026-02-28 05:43:49.221268 redfish NOTICE: alarm.lua(600): received a event[37-0].

2026-02-28 05:43:54.137474 event NOTICE: events.lua(106): System minor count change 2 to 1 by [Event_VPDReadFail_01010202].

2026-02-28 05:43:54.157558 event NOTICE: hardware_event.lua(570): Event_VPDReadFail_01010202|{"source":{"expressions":["expr(($1 == 1 || ($1 == 0 && $2 == 0)) ? 1 : 0)"],"properties":[{"Service":"bmc.kepler.hwproxy","Property":"Status","Interface":"bmc.kepler.Scanner","Path":"/bmc/kepler/Scanner/Scanner_SSD_ReadVPDFail_01010202"},{"Service":"bmc.kepler.hwproxy","Property":"Value","Interface":"bmc.kepler.Scanner","Path":"/bmc/kepler/Scanner/Scanner_SSD_ReadVPDFail_01010202"}]},"type":"synchronization","value":[0,1]}

2026-02-28 05:43:54.239355 event NOTICE: abstract_event.lua(241): [Event_VPDReadFail_01010202] generate an event [deassert] while Reading change to [0].

2026-02-28 05:43:54.246545 event_policy NOTICE: synchronizer.lua(252): received a event[38-0].

日志来看是value跳变到0触发的告警

NVMe设计文档分析

Value值是VPD读取的第一个字节,应该是IPMI格式版本号


疑问

1、版本号读值变成0能作为读取VPD失败的依据吗
2、是否应该增加防抖机制规避该问题
@yelmh_kno07
S920S20_2102315QSF10S1100003_20260302-0937.tar.gz (4.1 MB)

1.第一点的逻辑不是我改的,这个是宇浩改的,当时问他是因为硬件的人给的方案
2.可以加防抖