raid卡适配出现问题

问题背景

需要适配卡型:
3152,8204

相关组件所用版本:
storage:1.70.35
iBMA: 2.16.0

问题描述:

1.使用mctp协议的3152,8204都出现无法显示详细信息,os下lspci能够查询到


2.组件storage根据测试结果,9560-8i在tag 1.80以下版本能够正常显示全部信息,1.80以上显示都存在问题

排查过程:

1.根据raid卡适配指导 帖子使用busctl --user introspect bmc.kepler.mctpd /bmc/kepler/Systems/1/Mctp/MctpBinding .BmcEid和.BmcPhyAddr均为0


2.通过代码跟踪storage组件mctp_service.lua日志打印提示卡在了[Storage] Get BMC Mctp info failed,但是mctp_lib.get_mctp_pcie_binding部分涉及闭源包。

function mctp_service:prepare()
    log:notice('mctp_service:prepare')
    if not self.os_state then
        log:notice('not self.os_state')
        return
    end
    local obj = mctp_lib.get_mctp_pcie_binding(self.bus)
    if not obj then
        log:notice('[Storage] Get BMC Mctp info failed')
        return
    end
    -- 将BMC的mctp信息传递给C库的线程
    sml.mctp_infos.set_bmc_mctp_info(obj.BmcEid, obj.BmcPhyAddr)
    self.mctp_state = true
    log:notice('[Storage] mctp prepare finished. bmc_eid = %s bmc_phy = %s state = %s',
        obj.BmcEid, obj.BmcPhyAddr, self.mctp_state)
end

期望

接下来的排查思路,能够成功适配3152,8204

步骤1.首先查看一下web页面:
系统管理–系统信息–其他–PCIe卡下面有没有目标Raid卡的信息

步骤2.如果有看下面的日志是否打印; 如果没有看步骤5

步骤3:如果步骤2的日志正常打印,那么要看一下raid卡的加载流程是否走完


具体关注这几个日志是否都有打印:

步骤5:
在/var/log/app.log里面搜索一下目标raid的SR名称,看是否有加载的日志,预期要有。
如果没有,要在环境:/opt/bmc/sr路径下搜索看是否包含目标Raid卡的SR文件,预期要有。
如果路径没有可能是因为集成配置时候没有带上该SR。

如果排查SR没问题,可以排查下raid卡的oob开关是否打开,这张卡默认oob应该是关闭的

其他中能够识别出该卡

查看日志在/var/log/app.log中并没有步骤2的打印,根据步骤5,在app.log中执行cat /var/log/app.log|grep ‘19005028f_1cc40101’ 并没有回显,不满足预期
image
但是在/opt/bmc/sr中是能够查看到14140130_9005028f_1cc40101.sr文件


其内容与vpd中的vendor/PMC-Sierra/Raid/14140130_9005028f_1cc40101.sr文件进行对比内容是一致的,同时通过一键收集日志进行查看14140130_9005028f_1cc40101.sr文件有如下内容,请问这种情况接下来应该怎么做呢?

如下图raid卡的固件版本和oob设置应该能满足带外管理功能了吧?


十分感谢,定位出问题了,是卡在下面代码处,设备BDF出现问题,在sr手动写死该配置,即可正常显示

if self.DevBus == 0 and self.DevDevice == 0 and self.DevFunction == 0 then

1 个赞

现在我们在另外一个机型,将3152-8i的卡插在交换板上,参考其他机器能够正常显示的情况,已经通过写死
“DevBus”: 15,
“DevDevice”: 0,
“DevFunction”: 0

os下查看


/var/log/app.log中 storage|mctp 相关日志

根据增加的注释打印,发现是卡在了该处,在后面则没有相关信息


对比其他机型的日志,发现是缺少了mctpd闭源包后面的回复,那么接下来要怎么排查呢?

还想请问一个问题,arcconf该工具是怎么通过命令arconf list 返回slot号的?异常的机器中,插在0,2,4插槽中,回复显示的都是8

补充,bios已经返回正常的bdf号后,继续定位日志,发现mctpd能够添加switch芯片的eid,但是3152该卡的eid还是没有正常添加

重启OS,发现mctpd其实是有发出 TargetPhyAddr=131 (请求?) 131为3152-8i所在槽位的bdf号

你说的TargetPhyAddr=131 请求实际是Storage向mctp发起的注册请求,代表软件层识别到此raid卡,但mctp并未在路由中查找到131(从图中mctp_routing_table: del日志可以看到只有13 17 138),可能的原因:

  1. 此raid不支持mctp
  2. IMU与该raid卡未建链或建链失败
    请按此进行排查

1.3152-8i卡已确定支持mctp,在其他机型上已经验证(较大差异为其他机型无switch板),有详细信息
2.IMU与该raid卡未建链或建链失败,倾向于未建链,但是IMU这个部分具体要怎么排查,方便说明一下吗?IMU部分没有详细资料,联系bios,IMU为二进制,目前无法进行更多排查

请联系社区技术支持获取更多帮助

PAE协助排查后,发现是switch板固件屏蔽mctp导致