打开完整图文文档(PDF,共 8 页)
文档目录
图文预览
第 1 页
第 8 页正文文本
现象
XCC WebGUI页面未显示 430 HBA / 730 RAID卡所连接磁盘的详细信息。
如下是配置 430 HBA卡服务器,XCC WebGUI页面显示的磁盘信息:
如下是配置 730 RAID卡服务器, XCC WebGUI页面显示的磁盘信息:
受影响设备信息
机型、报告问题时运行的固件版本,和目前官网最新的固件版本:
型号 | XCC | UEFI | 430 HBA | 备注
SR650 | 2.7 | 2.3 | 09.00.07.00 | 当前运行版本发布时间uEFI: 2019.7XCC: 2019.6
| 7.22 | 3.11 | 18.03.00.00 | 当前官网最新版本发布时间uEFI:2021.10
XCC: 2021.11
型号 | XCC | UEFI | 730-8I | 备注
SR650 | 2.7 | 2.3 | 24.21.0-0097 | 当前运行版本发布时间uEFI: 2019.7XCC: 2019.6
| 7.22 | 3.11 | 24.21.0-0151 | 当前官网最新版本发布时间uEFI:2021.10
XCC: 2021.11
复现和原理
复现:
联想实验室复现过和贵司报告的一样的情况。如下两种情况会引起磁盘详细信息无法被显示:
XCC未被分配到EID
430 HBA / 730 RAID卡未被分配到EID
只会在服务器自检过程中有机会出现未被分配到EID的情况。
如自检过程中被分配到EID ,进入操作系统后的正常运行期间不会出现这种情况。
后续分析涉及的重要原理:
XCC和430 HBA / 730 RAID卡的通信基于MCTP协议 (Management Component Transport Protocol)。
基于MCTP协议通讯的每个节点都需要被分配一个Endpoint ID (EID)。
MCTP master(Intel ME)会在服务器自检的过程中做Discovery,并为每个设备分配EID。
Intel ME Code和Intel ME对设备Discovery有关的变更
Intel ME Code 和 Intel ME对设备Discovery有关的修复:
设备Discovery是由Intel ME作为MCTP master主导,在非官方发布的Intel ME Code中间版本,发现过Discovery有关Bug,Intel已修复,2021年第3季度发布的 uEFI 3.11 包含了所有Intel ME code做过的相应修复。
补充信息:
故障机uEFI版本:2.3。
uEFI 变更历史:https://download.lenovo.com/servers/mig/2021/11/08/54899/lnvgy_fw_uefi_ive174g-3.11_anyos_32-64.chg
针对XCC没有拿到EID情况的原因分析和对应的修复/增强方案
针对XCC没有拿到EID的情况,XCC中加入了一个修复和一个增强。
实验室复现时,发现XCC存留的上一次的MCTP状态和EID信息,会影响到下次启动时XCC成功获取EID信息。所以,XCC加入了一个修复,DC Cycle时会先把XCC的EID信息清空,把MCTP状态彻底复位,使得XCC在Intel ME 的Discovery过程中可成功获取到EID信息。
考虑到万一XCC仍然没在Discovery过程被发现并且获取到EID信息,XCC中加入了一个增强,XCC会主动发一个命令给 Intel ME,触发Intel ME重新做一次Discovery。
说明:
故障机运行的XCC版本:2.7。
只通过Reset XCC和Intel ME,只能解决XCC拿不到EID信息的问题。
Reset XCC和Intel ME后,配合DC Cycle,才能使得XCC和卡都获取到EID信息。
XCC的变更历史:
https://download.lenovo.com/servers/mig/2021/11/04/54890/lnvgy_fw_xcc_cdi382o-7.22_anyos_noarch.chg
针对卡没有拿到EID情况的原因分析和对应的修复/增强方案
针对卡没有拿到EID的情况,XCC和卡微码都增加了相应的修复和增强。
因发现卡在Option ROM Disabled 等场景下获取EID时间比较长的现象,卡会因为Discovery给与时间不够长,导致卡无法在有限时间内拿到EID信息,所以,XCC加入了一个增强,Intel ME的Discovery后,会延长一段等待时间使得卡有足够时间去获取到EID信息。
卡微码发现过引起卡没拿到EID的Bug,21年第3季度版本的卡微码中包含了对应的修复和增强。
说明:
故障机430-16i 的微码版本09.00.07.00;730 RAID卡的微码版本24.21.0-0097。
730 卡微码的变更历史:https://download.lenovo.com/servers/mig/2021/06/10/54022/lnvgy_fw_raid_mr3.0.730-24.21.0-0151-4_windows_x86-64.chg
430-16i微码的变更历史:https://download.lenovo.com/servers/mig/2021/11/18/54976/lnvgy_fw_storehba_mpt3.5.430-18.04.00.00-0_windows_x86-64.chg
结论和解决方案
结论:
uEFI的Intel ME Code,XCC和430 HBA / 730 RAID卡微码,对于分配EID的处理不够稳健,导致了问题的发生。
2021年第3季度发布的uEFI,XCC和430 HBA / 730 RAID卡微码,包含了已发现问题相关的修复和增强。
实验室可复现问题的服务器,在更新到2021年第3季度发布的微码组合后,未再复现XCC或者430 HBA / 730 RAID 卡未被分配到EID的问题。
解决方案:
解决方案是针对出问题的机器,升级到2021年第3季度发布的微码组合。
发生问题的机器的 uEFI,XCC和430 HBA / 730 RAID 卡微码,与2021年第3季度发布的微码版本差别很大(见第3页)。