SAS/SATA盘不在资产维护-资产清单中

问题描述

SAS/SATA盘不在资产维护-资产清单中

环境信息

  • 操作系统:如 Ubuntu 24.04

  • 软件版本:OpenUBMC2509、2512

  • 硬件配置:[如 CPU、内存等]

重现步骤

  1. 环境有SAS/SATA盘

  2. 查看web 资产维护-资产清单

  3. 确认SAS/SATA盘是否在里面

期望结果

SAS/SATA盘在资产维护-资产清单中

实际结果

SAS/SATA盘不在资产维护-资产清单中

Disk0是SATA盘,其他的是NVMe

尝试过的解决方案

资产维护应该是属于product_mgmt组件

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

SAS/SATA盘未出现在资产维护-资产清单中的问题分析与解决方案

根据您提供的详细信息,系统中存在SAS/SATA硬盘(如Disk0),但这些磁盘未出现在资产维护-资产清单中。以下是对该问题的全面分析和解决方案建议。


:magnifying_glass_tilted_left: 问题概述

  • 现象:SAS/SATA硬盘(如Disk0,接口类型为SATA)在物理盘信息页面可见,但在“资产维护-资产清单”中缺失。
  • 期望:所有已识别的物理磁盘(包括SAS/SATA)应出现在资产清单中。
  • 实际:仅NVMe磁盘(如Disk4-Disk7)被列出,而SAS/SATA盘(如Disk0)未被纳入。
  • 环境
    • OpenUBMC版本:2509、2512
    • 操作系统:Ubuntu 24.04
    • 硬件配置:含SAS/SATA及NVMe磁盘

:puzzle_piece: 根本原因分析

结合知识库内容和系统行为,该问题的根本原因可能涉及以下几点:

1. 资产清单的数据来源依赖BMA 2.0的状态

多处提示明确指出:

“此页面的RAID控制器、逻辑驱动器、物理驱动器的信息依赖RAID卡的带外管理功能,并且在系统引导完成后或安装并完全启动BMA 2.0才能显示。”

  • BMA 2.0(Base Management Agent)是负责采集和上报RAID控制器及SAS/SATA物理盘信息的关键组件。
  • 若BMA 2.0未正确安装、未完全启动,或版本不兼容,SAS/SATA盘的信息将无法被BMC完整采集,导致无法进入资产清单。

:pushpin: 证据支持

  • System Boot事件必须完成,BMA 2.0才可初始化并上报信息。
  • Physical Drive信息依赖于BMA 2.0运行。
  • 文档 SAS/SATA硬盘信息未显示 中也提到,host_agent的SilkScreen属性为null,表明采集链路异常。

2. SAS/SATA直通盘需特殊配置(PcieAddrInfo_SAS)才能被识别

对于直连(Passthrough)模式下的SATA/SAS盘,其信息获取依赖于正确的PCIe地址映射配置。

  • 需要在CSR中配置 PcieAddrInfo_SAS 类对象,用于建立BDF(Bus:Device.Function)与磁盘槽位之间的映射关系。
  • 若缺少该配置,即使主机操作系统识别到了硬盘,BMC也无法将其纳入资产管理体系。

:pushpin: 证据支持

  • 文档 [PcieAddrInfo类配置字典] 中定义了ControllerType=3表示SATA控制器。
  • 用户案例显示:尽管BDF和phyid匹配成功,但hostagentSilkscreen仍为null,说明配置虽部分存在,但关联链路未打通

3. RAID卡带外管理(OOB)支持尚未激活

  • SAS/SATA盘通常受RAID卡管理,其信息需通过RAID卡的带外管理接口(如iBMA与RAID卡通信)获取。
  • OpenUBMC通过GetControllerPds方法从RAID控制器获取物理盘列表。
  • 如果RAID卡未启用OOB管理、固件不支持或驱动未加载,则信息采集失败。

:pushpin: 相关实体

  • GetControllerPds 返回由RAID控制器管理的物理驱动器列表。
  • SP686C-M-40i Raid Card 需BMA 2.0支持才能完整显示信息。

4. NVMe与SATA/SAS的资产管理机制存在差异

  • NVMe磁盘可通过标准PCIe枚举和Redfish接口直接暴露(如bmc.dev.NVMe.ProductInfo)。
  • SAS/SATA盘多通过RAID卡或南桥(PCH)挂载,需额外抽象层支持资产建模。

:pushpin: 结果对比

  • Disk4–7(NVMe)正常出现在资产清单。
  • Disk0(SATA)未出现 → 表明SAS/SATA资产建模流程中断

:white_check_mark: 解决方案建议

:white_check_mark: 方案一:确保 BMA 2.0 已安装并正常运行

  1. 确认BMA 2.0服务状态

    systemctl status bma-daemon
    ps aux | grep bma
    
  2. 查看日志是否存在错误

    journalctl -u bma-daemon --since "1 hour ago"
    
    • 检查是否有failed to connect to RAID controllertimeout等错误。
  3. 重启BMA服务

    systemctl restart bma-daemon
    
  4. 确认系统已完全引导完毕后再检查资产清单

    • BMA信息必须在System Boot完成后才能获取完整数据。

:white_check_mark: 方案二:检查并配置 PcieAddrInfo_SAS

在CSR配置中添加对SATA控制器的地址信息支持:

{
  "PcieAddrInfo_SAS": {
    "Location": "HddBackplane1",
    "ComponentType": 71,                 // SAS/SATA组件类型
    "ControllerIndex": 0,
    "ControllerType": 3,                 // 3 表示 SATA 控制器
    "ContainerUID": "00000001030302023934",
    "ContainerUnitType": "SEU",
    "GroupPosition": "PcieAddrInfo_SAS_0"
  }
}

:repeat_button: 配置后需重启BMC或执行ipmcset -d reset以使拓扑重建。


:white_check_mark: 方案三:验证RAID卡OOB支持和固件状态

  1. 登录BMC命令行,执行:

    ipmitool raw 0x30 0x93 0x8D 0x00 0x00 0x01
    

    查询资产管理配置是否启用。

  2. 使用Redfish API检查RAID控制器状态:

    GET /redfish/v1/Systems/1/Storage/Controllers/Controller_1/
    

    确保返回中有Status: {"State": "Enabled"}

  3. 确认RAID卡固件版本支持当前BMA版本(2.16.0或更高推荐)。


:white_check_mark: 方案四:检查Host Agent是否正确获取SilkScreen

  • Host Agent负责从OS层获取硬件丝印信息。
  • SilkScreennull,说明信息传递断链。

检查步骤:

  1. 在主机侧运行:

    busctl get-property bmc.kepler.sms.redfish /bmc/kepler/Systems/1/Sms/1/ComputerSystem/Storage/Drives/PCH_0000:b4:03.0_ata4 bmc.kepler.sms.redfish SilkScreen
    
    • 若返回null,则需排查:
      • PcieAddrInfo_SAS是否正确生成silkconfig.json
      • 是否正确设置了DiskSilk字段
  2. 查看生成的silkconfig.json文件内容:

    {
      "DiskSilk": [
        {
          "SocketId": 1,
          "RootBDF": "0000:b4:03.0",
          "CtrlId": 1,
          "PhyId": 4,
          "SlotId": 0
        }
      ]
    }
    

:hammer_and_wrench: 临时排查命令汇总

类型 命令 用途
BMA状态 systemctl status bma-daemon 检查BMA是否运行
日志查看 journalctl -u bma-daemon 查看BMA错误
Redfish查询 GET /redfish/v1/Systems/1/Storage/Drives/ 获取所有磁盘信息
IPMI查询 ipmitool storage list 列出存储控制器
配置检查 cat /etc/silkconfig.json 检查丝印配置
BMC重启 ipmcset -d reset 重置BMC并重建拓扑

:pushpin: 结论

项目 状态 建议
NVMe磁盘 :white_check_mark: 正常识别 无需干预
SAS/SATA磁盘 :cross_mark: 未进入资产清单 必须检查BMA、RAID OOB和PcieAddrInfo配置
根本原因 BMA 2.0未激活或PcieAddrInfo缺失 配置修复+服务重启
修复优先级 :warning: 建议作为发布前必检项

:white_check_mark: 推荐处理流程

  1. 确认BMA 2.0正在运行;
  2. 在CSR中配置PcieAddrInfo_SAS
  3. 重启BMC;
  4. 登录Web界面,进入“物理盘信息”页面,确认SATA盘信息完整;
  5. 进入“资产维护-资产清单”,验证SATA盘是否已出现。

如以上操作仍未解决,请提供以下信息以便进一步分析:

  • journalctl中BMA服务的日志片段
  • silkconfig.json文件内容
  • /redfish/v1/Systems/1/Storage/Drives/的API响应结果

我们将基于新数据继续深入定位。

相关链接:

  1. SAS/SATA硬盘信息未显示
  2. sata盘信息获取问题
  3. 点定位灯之后,硬盘信息消失
  4. SAS/SATA盘信息无法获取
  5. CSR配置字典之HddBackplane类 | 文档中心 | openUBMC
function c_handler_drives:update_drive(obj, data)
    log:notice("Update %s info by bma", obj.Name)
    self:update_drive_info(obj, data)

    log:debug("Update drive info(revision: %s)",data.FirmwareVersion)
    update_if_not_config(obj.Revision, default_na(data.FirmwareVersion))
    // 在这里打日志看是否进来了,
    obj:update_asset_data_info()
end

这里update_asset_data_info函数更新了 应该会显示在资产信息里

我看这里是有ibma情况下的执行函数,实测ibma启动后资产中是有的;如果是直通盘依赖bios上报的信息,就没有这个流程了,这个场景是否可以考虑加上

要看这个资产的概念了,主要是目前的逻辑是需要更新了厂商 序列号这些静态信息才会对外体现资产信息,不然这个硬盘什么信息都没有,显示在资产信息里也没法维护,可以上hardware_sig上评审下,看下这种无法获取信息的硬件是否需要展示在资产信息中。有结论后可提issue修改

应该是有两种情况,个人认为可以分开处理

1、无信息的直通盘,可以考虑不显示在资产清单中

2、依赖BIOS上报的直通盘,这些静态信息是有的,可以考虑显示在资产清单中

1 个赞

依赖BIOS上报的直通盘,拿到信息后就会维护到资产列表中吧,如果当前实现有误,提issue修改

好的,issue:AtomGit | GitCode - 全球开发者的开源社区,开源代码托管平台