sata盘信息获取问题

现象:直通sata盘信息无法获取

参考SAS/SATA盘信息无法获取 - 交流互助区 - openUBMC 论坛,配置好了PcieAddrInfo_SAS,丝印文件正常生成:

和hostagent的数据的BDF和pyhid都是匹配的:BDF为b4:03.0,phyid是4:

但是hostagent的silkscreen还是null,请问这是为什么?

答案内容由AI生成,仅供参考:

问题分析

根据您提供的现象和日志信息,直通SATA盘信息无法获取的问题,尽管已经配置了 PcieAddrInfo_SAS 且丝印文件(silkconfig.json)已正常生成,但 host_agentSilkScreen 字段仍然为 null。这表明系统在从 host_agent 到 BMC 的信息传递链路上出现了问题。

核心问题在于:BMC 无法将 host_agent 中的硬盘信息与本地通过 PcieAddrInfo_SAS 生成的丝印信息进行正确匹配

可能原因与排查方向

  1. BDF 和 RootBDF 配置不一致

    • 根据知识库中的案例( M.2转接板下硬盘信息无显示 ),一个常见问题是 PcieAddrInfo_SAS 对象中配置的 RootBDF 与操作系统(OS)通过 lspci 命令报告的 RootBDF 不一致。
    • 排查方法:登录操作系统,执行 lspci -tv 命令,找到您的 SATA 盘对应的 BDF(例如 b4:03.0)。然后检查 PcieAddrInfo_SAS 对象的 RootBDF 属性(包括 Bus, Device, Function)是否与此值完全一致。如果不一致,需要将 PcieAddrInfo_SASRootBDF 修改为 OS 报告的值。
  2. PcieAddrInfo_SAS 配置不完整

    • PcieAddrInfo_SAS 对象不仅需要 RootBDF,还需要正确配置 socket_id, control_id, phy_id 等参数。您提到 phyid 是 4,需要确认 PcieAddrInfo_SAS 中的 phy_id 是否也设置为 4。
    • 排查方法:核对 PcieAddrInfo_SAS 的所有参数,确保 socket_id, control_id, phy_id, slot 等都与实际硬件拓扑和 host_agent 获取的信息匹配。
  3. SR 文件配置问题

    • SR 文件是定义硬件拓扑和属性的关键。如果 SR 文件中没有正确定义 ConnectorPcieAddrInfo_SAS 的关联,或者 Drive 对象的定义有误,也会导致信息无法关联。
    • 排查方法:检查用于该 M.2 转接板或 SATA 背板的 SR 文件(如 14100665_...sr)。确认其中是否存在 PcieAddrInfo_SAS 对象,并且该对象的属性是否正确。同时,确认 DrivePassThroughDrive 对象是否通过 RefPCIeAddrInfo 等字段正确引用了 PcieAddrInfo_SAS
  4. BMA 与 BMC 的信息同步机制

    • 硬盘信息的获取依赖于 BMA(带内代理)和 BMC(带外控制器)的协同工作。BMA 负责从 OS 获取信息,BMC 负责根据丝印和 BDF 进行匹配。
    • 排查方法:参考知识库中 https://discuss.openubmc.cn/t/topic/2016,`SilkScreen` 的匹配是关键。即使 host_agent 收到了信息,但如果 BMC 认为丝印不匹配,就不会更新 SilkScreen 字段。可以尝试重启 OS,强制重新生成丝印文件和触发信息同步。

总结与建议

综合来看,最可能的原因是 PcieAddrInfo_SAS 中的 RootBDF 配置与 OS 实际的 BDF 不匹配。这是导致“丝印生成了,但 host_agent 不认”的经典问题。

建议的解决步骤:

  1. 在操作系统中运行 lspci -tv,获取 SATA 盘的真实 BDF
  2. 找到 PcieAddrInfo_SAS 对象的配置,将其中的 Bus, Device, Function(即 RootBDF)修改为步骤1中获取的值。
  3. 确保 PcieAddrInfo_SAS 中的 phy_idhost_agent 报告的一致。
  4. 重启服务器或重启 host_agent 服务。
  5. 再次检查 host_agentSilkScreen 字段是否仍为 null

这是我的硬盘丝印截图:

已经确认pcieaddrinfo_sas对象的**Bus, Device, Function, portid(phy_id)**配置无误,host_agent还是不认。

从iBMA log看,Port4里的4和HDDPlaneDisk2里的2哪个是phyid?

还是这里的ata4里的4是phyid?

我丝印文件里配置的phyid为4对不对?

打开bma白名单,访问redfish接口redfish/v1/Sms/1/Systems/1/Storage/1/Drives查询bma提供的信息,硬盘URI路径最后一个数字就是PhyId。

1、截个图看看?redfish接口返回ibma信息是啥样的。

2、bma的日志我不熟悉,可以试下PhyId改为2.

请问如何打开IBMA白名单? 我目前redfish访问不到Sms这个路径

开启iBMA白名单透传可以通过redfish方式获取到iBMA上报给iBMC的数据,一般通过该方式即可完成对问题的定界。

登录os,查询白名单配置文件路径: find / -name WhiteURLList.ini
chmod +w WhiteURLList.ini
vi WhiteURLList.ini
编辑文件添加以下内容:
"^/redfish/v1/_SmsID/*"

重启BMA

我如此改了:

改后重启ibma:ibmacli service restart,重启完成之后查看ibma状态:

redfish返回依旧是404:

@mao_0v0_q7rci @yelmh_kno07 需要看下为什么storag接口查询不到

解决了么,我也遇到了一样的问题,修改白名单以后redfish查询sms下的uri失败,sms下的uri只有updateservice的uri支持调用。难道是920B不支持bma白名单配置?