环境:25.12 LTS SP1 代码
复现步骤:
1、服务器安装DPU卡
2、执行ipmitool命令对服务器和DPU同时下电,命令:ipmitool -I lanplus -H <host_bmc_ip > -U <host_bmc_user> -P <host_bmc_user_passwd> raw 0x3a 0xf5 0x00
3、无须等待DPU上电 ,执行ipmitool命令对服务器进行强制开机 ,命令:ipmitool -I lanplus -H <host_bmc_ip > -U <host_bmc_user> -P <host_bmc_user_passwd> raw 0x3a 0xf6 0x00
4、查看服务器上电状态,BMC运行日志有记录强制开机,机器实际没有上电成功
调用到fructl 开机报错如下:
一键日志如下:
Atlas800IA3_2102315QYP10RC100007_20260514-0737.tar.gz (8.5 MB)
答案内容由AI生成,仅供参考:
总结
当前强制开机不生效最可能的原因是 DPU 组件的上电锁机制 在操作时序上阻塞了命令。建议按上述步骤排查,尤其是等待锁释放、检查锁状态、调整命令执行时机。如果问题依旧,可提供完整的 fructrl 和 firmware_mgmt 日志作进一步分析。
点击此处查看详细分析解答
根据您提供的问题描述、日志信息以及知识库中的相关内容,以下是对“带DPU2.5环境下强制开机命令不生效”问题的综合分析及定位建议。
问题现象概述
环境 :25.12 LTS SP1 代码,服务器安装 DPU 卡。
复现步骤 :
使用 ipmitool raw 0x3a 0xf5 0x00 对服务器和 DPU 同时下电。
未等待 DPU 上电,立即使用 ipmitool raw 0x3a 0xf6 0x00 执行强制开机。
BMC 日志记录有强制开机操作,但服务器实际未上电。
关键日志 :frucrtl_obj_mgmt.lua(288): [System:1]set poweron lock, pwronlocked=false, timeout=600, appname=CTCC, reason=ZijinDPU
知识库相关上下文分析
1. 上电锁机制
软件上电锁 :BMC 提供的升级固件服务中,要求升级或生效过程中不能做上电操作。升级专用上电锁由 fructrl 管理,上锁期间不响应任何上电命令。
(来源:文档块2 - “软件上电锁”)
硬件上电锁 :默认状态下,若服务器在指定时间内未完成上电,BMC 会锁定服务器上电功能,服务器将无法通过 BMC 上电。该锁可被 cli 命令清除。
(来源:文档块4 - “规则31” 及 文档块2 - “硬件上电锁”)
日志中出现的 appname=CTCC, reason=ZijinDPU 表明 CTCC 组件 (DPU 相关接口,见知识图谱 CTCC_DPU_CARD_INTF)设置了上电锁,原因与 DPU 相关(ZijinDPU)。
2. DPU 上电锁与强制开机冲突
文档块1(【问题求助】AC压测过程中)描述了类似场景:
“当前服务器有DPU,添加了上电锁,在DPU OS启动完成后,释放上电锁时,正好遇到BMC maca进行BMC复位,导致未进行正式上电”
这说明在 DPU 环境下,存在一个上电锁 机制,用于保护 DPU OS 启动过程不被打断。如果在 DPU OS 尚未完成启动并释放锁之前,执行强制开机命令,该命令可能会被上电锁阻塞,导致不生效。
3. 通电开机策略
文档块2、3、4提及通电开机策略有三种:保持上电、保持下电、保持AC掉电前的电源状态。下电后立即执行强制开机,可能会因为 DPU 尚未释放锁而受到策略影响。但此处使用的是 ipmitool raw 0x3a 0xf6 强制开机命令,属于直接命令,应绕开通电开机策略,但仍受上电锁约束。
4. IPMI 命令与 DPU 关联
ipmitool raw 0x3a 0xf5 0x00 和 0x3a 0xf6 0x00 属于自定义 OEM 命令,用于同时控制服务器和 DPU 的上下电。
知识图谱中 BMCkiller 曾提供解决方案:启用 power cap 后再使用 IPMI 命令 (源:BMCkiller -> IPMI Command 关系:“BMCkiller provided the correct solution, advising to enable the power cap before using the IPMI command.”)。这可能与电源策略相关,但日志未直接体现。
5. BMC 版本敏感性
BMC Version 25.12 被提及为社区 LTS 版本,且部分命令行为受版本影响(如 BMC Version -> IPMI Query Command 关系:“The command failure may be influenced by the BMC version 25.03”)。当前环境为 25.12 LTS SP1,属于相关版本。
根本原因推断
最可能的原因 :在步骤1执行下电后,DPU 的 CTCC 组件设置了上电锁(pwronlocked=false 表示当前未锁定?注意日志中 pwronlocked=false 可能表示锁已释放?但仔细看日志两次出现 set poweron lock, pwronlocked=false,参数含义需明确:pwronlocked=false 可能是 设置锁的状态为未锁定 还是 当前锁状态为 false ?从 set poweron lock 动作看,可能是在释放锁 或设置锁参数 。结合文档块1中锁的释放与 BMC 复位冲突,可能是在锁释放瞬间执行强制开机,时序上导致上电失败。另外,也可能是上电锁尚未释放时执行强制开机,命令被锁阻塞。
另一种可能性:在 DPU 下电后立即强制开机,DPU 的 OS 尚未进入稳定状态,BMC 侧的 fructrl 检测到 DPU 未就绪或存在安全策略(如高温检测、上电超时等),拒绝执行上电。
定位建议和解决方案(基于知识库)
步骤1:检查上电锁状态
执行以下命令查询当前上电锁状态:
ipmcget -t main -d poweronlock
如果返回 locked,则说明存在硬件上电锁,需用 CLI 命令清除。
检查日志中类似 set poweron lock 的条目,确认锁的持有者(如 CTCC)和原因。
步骤2:调整操作时序
参考文档块1中的经验,等待 DPU OS 启动完成并释放上电锁后,再执行强制开机命令 。可尝试在步骤1下电后,等待一段时间(如 60 秒)再执行强制开机,或观察日志中是否有 DPU 释放锁的提示(类似 release poweron lock)。
步骤3:检查 DPU 状态
使用以下接口查询 DPU 初始化状态(来自知识图谱):
GetAllDpuEPInitStatus:获取所有 DPU EP 初始化状态
GetDpuSystemStatus:获取 DPU 系统状态
确保 DPU 已进入可操作状态。
步骤4:验证电源策略
检查当前 PowerOnStrategy 和 PowerOnStrategyExceptions 配置(文档块4规则29)。可通过 Redfish 或 CLI 查看。
步骤5:检查 BMC 版本兼容性
确认 BMC 版本 25.12 LTS SP1 是否正确匹配 DPU 固件,参考知识图谱中 BMC Version 的描述,不一致可能导致命令失败。
步骤6:尝试启用 Power Cap
根据 BMCkiller 的建议,在强制开机前先执行启用 Power Cap 的命令(如 ipmitool raw 相关设置),再执行强制开机。
总结
当前强制开机不生效最可能的原因是 DPU 组件的上电锁机制 在操作时序上阻塞了命令。建议按上述步骤排查,尤其是等待锁释放、检查锁状态、调整命令执行时机。如果问题依旧,可提供完整的 fructrl 和 firmware_mgmt 日志作进一步分析。
grlxw
(xijie)
2026 年5 月 28 日 06:33
3
2026-05-14 07:19:47.438606 fructrl NOTICE: pg_signal.lua(77): ==== [System:1]PowerGDStatus changed to power on ====
从日志看是上电成功了