📋 文档信息
| 项目 | 内容 |
|---|
| 文档标题 | ChassisFruCtrl类配置字典 |
| 版本 | v1.3 |
| 创建日期 | 2025-01-27 |
| 最后更新 | 2026-11-07 |
| 维护状态 | ✅ 活跃维护 |
📋 变更历史记录
文档变更记录
| 版本 | 发布日期 | 变更类型 | 变更内容 | 影响范围 | 维护人员 |
|---|
| v1.0 | 2025-01-27 | 初始版本 | 创建ChassisFruCtrl类配置字典 | 全新文档 | 系统管理员 |
| v1.1 | 2026-05-15 | 修订 | 对齐model.json,更新属性类型和默认值 | ChassisFruCtrl所有CSR属性 | 基础服务组 |
| v1.2 | 2026-11-03 | 优化 | 补充PowerGDState枚举取值:0-下电,1-上电 | PowerGDState字段 | 基础服务组 |
| v1.3 | 2026-11-07 | 修订 | 与模型同步,补充 CSR 属性:PowerOffLocked、PowerOffLockedReasons、PowerOnStrategy、PowerState | ChassisFruCtrl | 待补充 |
🎯 类概览
ChassisFruCtrl 类
| 属性 | 值 |
|---|
| 类名称 | ChassisFruCtrl |
| 功能描述 | 机箱FRU电源控制,支持上下电策略、错峰控制、PowerCycle管理等 |
| 所属SIG组 | hardware |
| 所属组件 | fructrl |
| 责任人 | 基础服务组 |
| 最后更新 | 2026-11-07 |
| 状态 | 🟢 正常运行 |
📊 属性定义详表
模型来源:fructrl/mds/model.json。字段是否可由 CSR 配置以模型的 usage 为准;接口属性的类型和描述补查 mdb_interface/json/intf 中同名接口,模型显式定义优先。
ChassisFruCtrl 类 - 必选属性
| 属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
|---|
PowerGDState | U8 | - | 0:下电;1:上电 | - | 关联整机PG寄存器,表征整机上下电状态 | 配置整机PG状态 | 1 | CSR | 硬件 |
ChassisFruCtrl 类 - 可选属性
| 属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
|---|
StaggeredPowerOnInterval | U8 | 60 | U8 | - | 错峰上电时间间隔,单位s | 配置错峰上电间隔 | 60 | CSR | 软件 |
StaggeredPowerOffInterval | U8 | 0 | U8 | - | 错峰下电时间间隔,单位s | 配置错峰下电间隔 | 0 | CSR | 软件 |
PowerCycleInterval | U8 | 10 | U8 | - | 下电再上电时间间隔,单位s | 配置PowerCycle间隔 | 10 | CSR | 软件 |
PowerOffLocked | Boolean | 无 | - | - | 是否下电锁定:true:锁定 false:解锁 | CSR 配置 | false | CSR配置 | 硬件 |
PowerOffLockedReasons | String[] | 无 | - | - | 不允许下电的原因,KVM呈现,记录所有原因 | CSR 配置 | [] | CSR配置 | 硬件 |
PowerOnStrategy | String | AlwaysPowerOn | ["AlwaysPowerOff", "AlwaysPowerOn", "LastState", "AlwaysPowerOnUnmodifiable"] | - | 整刀片通电开机策略,各枚举含义及实现限制见下表 | CSR 配置 | AlwaysPowerOn | CSR配置 | 硬件 |
PowerState | String | 无 | ON:上电;OFF:下电 | - | 整刀片上下电状态 | CSR 配置 | "ON" | CSR配置 | 硬件 |
PowerOnStrategy 取值说明
| 取值 | 含义与当前实现 |
|---|
AlwaysPowerOff | AC 恢复供电后保持下电,不自动开机。 |
AlwaysPowerOn | AC 恢复供电后自动开机,仍须满足上电条件。 |
LastState | 恢复 AC 掉电前的上下电状态:原来上电则开机,原来下电则保持下电。 |
AlwaysPowerOnUnmodifiable | 接口枚举中表示不可修改的自动开机策略;当前公共 fructrl 实现未提供该值的专用分支及禁止修改逻辑,会进入兜底上电分支并记录策略获取失败日志。不能依靠此值锁定策略,配置前需确认目标固件支持。 |
实现依据:fructrl/src/lualib/chassis_fructrl/power_ctrl.lua 将整机策略下发到各主机;fructrl/src/lualib/pwr_restore.lua 的 pp_do_pwr_restore_process 处理前三种策略,其余值走兜底上电分支。接口 mdb_interface/json/intf/mdb/bmc/kepler/Chassis/FruCtrl.json 声明上述四个枚举,策略属性允许写入。
📝 配置示例
机箱电源控制配置
json{
"ChassisFruCtrl": {
"Id": 1,
"PowerGDState": 1,
"StaggeredPowerOnInterval": 60,
"StaggeredPowerOffInterval": 0,
"PowerCycleInterval": 10,
"PowerOnStrategy": "AlwaysPowerOn"
}
}
🔧 使用指南
配置步骤
- 配置整机PG状态:设置PowerGDState关联整机状态
- 配置错峰间隔:根据需要设置StaggeredPowerOnInterval和StaggeredPowerOffInterval
- 配置PowerCycle:设置PowerCycleInterval控制重启间隔
注意事项
- PowerGDState:关联整机PG寄存器,表示上下电状态
- StaggeredPowerOnInterval:单位为秒,用于错峰上电避免冲击
- StaggeredPowerOffInterval:默认0表示不下电
故障排查
- 整机状态异常:检查PowerGDState配置
- 上电冲击过大:调整StaggeredPowerOnInterval
- PowerCycle失败:检查PowerCycleInterval设置