【问题描述】
1、 服务器正常上电
2、BMC版本为OpenUBMC25.06,执行整机冷重启测试
3、测试后查看nvme盘的BMC信息,所有硬盘磨损率信息丢失
【日志】
查看相关日志有Nvme对象创建失败信息打印

【环境信息】
- 主板:S920X21
- CPU:HUAWEI Kunpeng 920 7272C
- 测试盘:三星PM9D3a
- OS:Tlinux3.1
【问题描述】
1、 服务器正常上电
2、BMC版本为OpenUBMC25.06,执行整机冷重启测试
3、测试后查看nvme盘的BMC信息,所有硬盘磨损率信息丢失
【日志】
查看相关日志有Nvme对象创建失败信息打印

【环境信息】
mdbctl看下对应Scanner_Remtime的Value值是多少
答案内容由AI生成,仅供参考:
根据您提供的信息,在执行多次整机冷重启测试后,OpenUBMC系统中NVMe硬盘的磨损率信息丢失,且日志中出现“Nvme对象创建失败”的提示。此问题涉及NVMe盘管理、BMC系统初始化流程以及硬件状态持久化机制。
结合知识库中的信息,该问题可能由以下原因导致:
NVMe设备初始化失败或延迟:在BMC启动过程中,若NVMe设备未能及时响应或初始化超时,可能导致NVMe相关对象(如NVMe.Smart)无法正确创建。知识库中的文档《V3 上适配nvme盘个人总结》提到,NVMe温度和固件版本获取失败曾因CPLD通信链路问题导致,说明NVMe设备的状态读取依赖于稳定的硬件通信路径。冷重启可能加剧了初始化时序问题。
对象加载依赖未满足:NVMe对象的加载依赖于Connector_ComVPDConnect和BusinessConnector等前置组件。若在冷重启过程中这些依赖组件加载顺序异常或失败,会导致NVMe对象创建失败。知识库中提到:“BMC首先会加载NVMe背板的Connector,命名上会包含背板的UID”,若此步骤失败,后续的14140244_VPD_0.sr等配置文件无法正确加载,进而影响磨损率等属性的读取。
防抖机制或状态缓存问题:OpenUBMC对硬件状态监控使用了多种防抖机制(如contbin_H5L30用于NVMe预故障检测)。冷重启可能导致状态监控逻辑误判,或将未完成初始化的NVMe设备标记为“无效”,从而跳过磨损率信息采集。此外,若PowerOnHours或UsedPercentage等属性未正确持久化,重启后可能无法恢复。
驱动或协议适配问题:三星PM9D3a作为测试盘,其NVMe-MI(Management Interface)协议实现可能与OpenUBMC的bmc.dev.NVMe.NVMeMI接口存在兼容性问题。知识库中《【已评审】新增获取硬盘NVMe-MI标准协议信息资源协作接口》提到,需通过GetSmartInfo等方法获取SMART信息,若该接口在冷重启后未能正确调用或返回空值,将导致磨损率丢失。
检查NVMe初始化日志:
/var/log/ibma.log或storage组件日志,确认是否有NVME resource初始化失败、I2C通信超时或Chip_SSD_xxx访问失败的记录。LibAdapter.py是否成功触发NVME resource的更新事件。验证硬件通信链路:
SSDChip)访问失败。mdbctl命令手动查询NVMe设备的SMART信息,验证是否能正常读取AvailableSpare、PercentageDriveLifeUsed等属性。检查配置文件加载:
14140224_VPD_0.sr和14140224_PROTOCOL_0.sr等SR文件是否正确加载。Drive类配置中SSDChip和VPDChip的引用对象是否正确指向实际硬件。调整防抖参数或初始化超时时间:
storage组件中NVMe设备的初始化超时时间,或在contbin_H5L30等防抖机制中增加容忍次数,避免因短暂通信延迟导致状态丢失。联系社区或硬件供应商:
discuss.openubmc.cn提交详细日志,并引用类似案例(如适配大普盘时的通信失败问题),寻求社区或华为工程师支持。该问题极可能是由于冷重启过程中NVMe设备初始化失败或通信链路不稳定,导致BMC未能成功创建NVMe对象,进而无法获取磨损率信息。建议从日志分析、硬件通信、配置加载和防抖机制四个方面进行排查,优先验证mdbctl能否手动读取SMART信息,以定位是驱动层还是硬件层的问题。