Issue链接
查询当前TPSU/PSU模块电容包硬件能力
配置TPSU/PSU模块Turbo能力,并可查询
支持TPSU/PSU供电故障恢复后切换等待延迟时间配置功能
支持TPSU/PSU的Turbo电容容量查询
支持TPSU/PSU双输入供电继电器切换次数查询
支持覆盖TPSU的告警功能
背景
机柜管理场景需支持对TPSU/PSU相关属性进行设置和查询,包括模块电容硬件管理能力,供电故障恢复后切换等待延迟时间,Turbo电容容量和双输入继电器切换次数,具体包括电容硬件版本查询,电容Turbo能力设置和查询,供电故障恢复后切换等待延迟时间设置和查询,Turbo电容容量查询,双输入继电器切换次数查询,涉及新增资源协作属性/方法,redfish接口下属性,web接口下属性
决策点
- 新增硬件版本号属性
- 新增电压防抖时间属性,新增放电深度属性,新增设置电压防抖时间方法,新增设置放电深度方法
- 新增查询电容硬件版本号redfish接口
- 新增查询电容硬件版本号web接口
- 新增双输入供电故障恢复回切时间配置属性
- 新增双输入供电故障恢复回切时间定制项
- 新增电容容量属性
- 新增继电器切换次数属性
- 新增TPSU告警状态属性
详细描述
决策点1:新增硬件版本号属性HardwareVersion
path:/bmc/kepler/Systems/:SystemId/PowerMgmt/:ID
新增interface:bmc.kepler.Chassis.PowerSubsystem.Capacitor
新增属性:HardwareVersion用于表示硬件版本号
| 属性名称 | 变化类型 | 签名 | 访问权限 | 持久化 | 变化通知 | 属性值来源 | 说明 | 约束 |
|---|---|---|---|---|---|---|---|---|
| HardwareVersion | 新增属性 | s | 只读,读:ReadOnly | 不持久化 | false | 通过电源管理协议从电源读取后更新 | 硬件版本号,默认值为"" | 属性仅适用于机柜管理场景双输入电源,其余场景取值为默认值 |
决策点2:新增电压防抖时间属性VOUTDebounceMilliseconds和放电深度属性DepthOfDischargeVolts,设置电压防抖时间方法SetVOUTDebounceMilliseconds,设置放电深度方法SetDepthOfDischargeVolts
path:/bmc/kepler/Systems/:SystemId/PowerMgmt/:ID
新增interface:bmc.kepler.Chassis.PowerSubsystem.Capacitor
新增属性:VOUTDebounceMilliseconds用于表示电压防抖时间,DepthOfDischargeVolts用于表示放电深度
新增方法:SetVOUTDebounceMilliseconds用于设置电压防抖时间,SetDepthOfDischargeVolts设置放电深度
| 属性名称 | 变化类型 | 签名 | 访问权限 | 持久化 | 变化通知 | 属性值来源 | 说明 | 约束 |
|---|---|---|---|---|---|---|---|---|
| VOUTDebounceMilliseconds | 新增属性 | u | 只读,读:ReadOnly | 不持久化 | false | 通过电源管理协议从电源读取后更新 | 电压防抖时间,单位ms; 默认值为0,表示该机型不支持该属性 |
属性仅适用于机柜管理场景双输入电源,其余场景取值为默认值 |
| DepthOfDischargeVolts | 新增属性 | u | 只读,读:ReadOnly | 不持久化 | false | 通过电源管理协议从电源读取后更新 | 放电深度,单位V,该属性表示电源输出电压可放电电压值; 默认值为0,表示该机型不支持该属性 |
属性仅适用于机柜管理场景双输入电源,其余场景取值为默认值 |
| 方法名称 | 变化类型 | 请求签名 | 请求参数说明 | 响应签名 | 响应参数说明 | 操作权限 | 说明 | 约束 |
|---|---|---|---|---|---|---|---|---|
| SetVOUTDebounceMilliseconds | 新增方法 | u | u: VOUTDebounceMilliseconds,电压防抖时间,单位ms | 无 | 无 | PowerMgmt | 设置电压告警防抖时间,设置的数据在业务逻辑中进行校验 | 方法仅适用于机柜管理场景双输入电源,其余场景不支持 |
| SetDepthOfDischargeVolts | 新增方法 | u | u:DepthOfDischargeVolts,放电深度,单位V | 无 | 无 | PowerMgmt | 设置放电深度电压,设置的数据在业务逻辑中进行校验 | 方法仅适用于机柜管理场景双输入电源,其余场景不支持 |
决策点3:在redfish接口(/redfish/v1/Chassis/:chassisid/PowerSubsystem/PowerSupplies/:powersuppliesid)新增电容硬件版本号属性
URI: /redfish/v1/Chassis/:chassisid/PowerSubsystem/PowerSupplies/:powersuppliesid
变化类型:在Oem字段下新增Capacitor对象,并在该对象下新增属性HardwareVersion
操作类型:GET
权限: ReadOnly
参数说明:
| 属性名称 | 取值类型 | 说明 | 取值范围 | 默认值 | 操作权限 | 是否频繁变化并需要屏蔽变化事件 | 约束 |
|---|---|---|---|---|---|---|---|
| HardwareVersion | string | 硬件版本号 | 大于等于0的纯数字字符串 | “” | ReadOnly | 否 | 属性仅适用于机柜管理场景双输入电源,其余场景取值为默认值 |
响应示例:
{
"@odata.context": "/redfish/v1/$metadata#PowerSupplies.PowerSupplies",
"@odata.id": "/redfish/v1/Chassis/1/PowerSubsystem/PowerSupplies/1",
"@odata.type": "#PowerSupply.v1_6_0.PowerSupply",
"Id": "1",
"Name": "Power Supply 1",
"FirmwareVersion": "",
"LineInputStatus": "",
"Manufacturer": "XXX",
"Model": "",
"PartNumber": "",
"PowerSupplyType": 1,
"ProductionDate": "2023-04-19",
"SerialNumber": "",
"Metrics": {
"odata.id": "/redfish/v1/Chassis/1/PowerSubsystem/PowerSupplies/1/Metrics"
},
"Status": {
"State": "Enabled",
"Health": "OK"
},
"Oem": {
"OemIdentifier": {
"DeepSleepEnabled": true,
"Capacitor": {
"HardwareVersion": "0"
}
}
}
}
决策点4:在web接口(/UI/Rest/System/PowerSupply)新增电容硬件版本号
URI: /UI/Rest/System/PowerSupply
变化类型:在SupplyList下新增Capacitor对象,并在该对象下新增属性HardwareVersion
操作类型:GET
权限: ReadOnly
参数说明:
| 属性名称 | 取值类型 | 说明 | 取值范围 | 默认值 | 操作权限 | 是否频繁变化并需要屏蔽变化事件 | 约束 |
|---|---|---|---|---|---|---|---|
| HardwareVersion | string | 硬件版本号 | 大于等于0的纯数字字符串 | “” | ReadOnly | 否 | 属性仅适用于机柜管理场景双输入电源,其余场景取值为默认值 |
响应示例:
"SupplyList": [
{
"Manufacturer": "",
"PartNumber": "",
"Model": "",
"ManufactureDate": "",
"OutputVoltage": 54,
"FirmwareVersion": "DC:27 PFC:27 TURBO_MODEL:a127 CAN:26 TURBO_CHIP:00",
"InputWatts": 1808,
"SerialNumber": "",
"Name": "PSU1",
"LineInputVoltage": 224,
"PowerSupplyChannel": "MainCircuit",
"PowerSupplyType": "AC",
"PowerCapacityWatts": 6600,
"Position": "PowerShelf1",
"Capacitor": {
"HardwareVersion": "0"
}
}
]
决策点5:新增双输入供电故障恢复回切时间配置属性RetransferDelaySeconds
新增path :/bmc/kepler/PowerEquipment/PowerDistribution
新增interface :bmc.kepler.PowerEquipment.PowerDistribution.TransferConfiguration
新增属性:RetransferDelaySeconds用于表示双输入供电故障恢复回切时间,即从备用电路自动切回主用电路的延迟时间
| 属性名称 | 变化类型 | 签名 | 访问权限 | 持久化 | 变化通知 | 属性值来源 | 说明 | 约束 |
|---|---|---|---|---|---|---|---|---|
| RetransferDelaySeconds | 新增属性 | u | 读:ReadOnly 写:PowerMgmt |
掉电持久化 | false | 通过电源管理协议从电源读取后更新 | 表示备用电路自动切回主用电路的延迟时间,单位为秒,默认值为1800s | 属性仅适用于机柜管理场景双输入电源 |
决策点6:新增双输入供电故障恢复回切时间定制项BMCSet_RetransferDelaySeconds
定制化项名称:BMCSet_RetransferDelaySeconds
应用场景:当电源出现双输入供电故障时设置的恢复回切时间,使其自动恢复
定制化项详细说明:
| 定制化项名称 | 定制化项 | 归属组件 | 取值说明 | 默认值 | 处理逻辑(伪代码) | 说明 | 实现方式 |
|---|---|---|---|---|---|---|---|
| 设置电源双输入供电故障恢复回切时间(Retransfer delay seconds) | BMCSet_RetransferDelaySeconds | power_mgmt | 取值范围10s-16200s | 默认值为1800s | if (BMCSet_RetransferDelaySeconds为空) 设置电源主备路切换延时等待时间为1800 else if BMCSet_RetransferDelaySeconds< 10 or BMCSet_RetransferDelaySeconds> 16200 返回参数错误 else 设置电源双输入供电故障恢复回切时间 |
TPSU模块输入供电异常后,由主路切换到备路供电,当主路供电恢复后,供电由备路切换回主路的延迟等待时间 | 配置文件导入 |
决策点7:新增电容容量属性CapacityMicrofarads
path:/bmc/kepler/Systems/:SystemId/PowerMgmt/:ID
新增interface:bmc.kepler.Chassis.PowerSubsystem.Capacitor.Metrics
新增属性:CapacityMicrofarads用于表示容量
| 属性名称 | 变化类型 | 签名 | 访问权限 | 持久化 | 变化通知 | 属性值来源 | 说明 | 约束 |
|---|---|---|---|---|---|---|---|---|
| CapacityMicrofarads | 新增属性 | u | 只读,读:ReadOnly | 不持久化 | false | 通过电源管理协议从电源读取后更新 | 表示容量,单位为微法拉,默认值为0 | 属性仅适用于机柜管理场景双输入电源,其余场景取值为默认值 |
决策点8:新增继电器切换次数属性RelaySwitchedCount
path:/bmc/kepler/Systems/:SystemId/PowerMgmt/:ID
interface:bmc.kepler.Systems.PowerMgmt.OnePower
新增属性:RelaySwitchedCount用于表示继电器切换次数
| 属性名称 | 变化类型 | 签名 | 访问权限 | 持久化 | 变化通知 | 属性值来源 | 说明 | 约束 |
|---|---|---|---|---|---|---|---|---|
| RelaySwitchedCount | 新增属性 | q | 只读,读:ReadOnly | 不持久化 | false | 通过电源管理协议从电源读取后更新 | 表示继电器切换次数,默认值为0 注:继电器属于电源中的一个硬件器件,用于实现双路源之间的切换 |
属性仅适用于机柜管理场景双输入电源,其余场景取值为默认值 |
决策点9:新增TPSU告警状态属性TPSUStatusHigh和TPSUStatusLow
path:/bmc/kepler/Systems/:SystemId/PowerMgmt/:ID
interface:bmc.kepler.Systems.PowerMgmt.OnePower.Status
新增属性:TPSUStatusHigh和TPSUStatusLow用于表示TPSU整流模块信息状态
| 属性名称 | 变化类型 | 签名 | 访问权限 | 持久化 | 变化通知 | 属性值来源 | 说明 | 约束 |
|---|---|---|---|---|---|---|---|---|
| TPSUStatusHigh | 新增属性 | u | 只读,读:ReadOnly | 不持久化 | true | 通过电源管理协议从电源读取后更新 | 表示整流模块告警高32位信息,TPSUStatusHigh和TPSUStatusLow完整表示告警信息(该属性当前累计48位),每一位均表示一种类型的告警,默认值为0 | 属性仅适用于机柜管理场景双输入电源,其余场景取值为默认值 |
| TPSUStatusLow | 新增属性 | u | 只读,读:ReadOnly | 不持久化 | true | 通过电源管理协议从电源读取后更新 | 表示整流模块告警低32位信息,TPSUStatusHigh和TPSUStatusLow完整表示告警信息(该属性当前累计48位),每一位均表示一种类型的告警,默认值为0 | 属性仅适用于机柜管理场景双输入电源,其余场景取值为默认值 |
评审结论
决策点1:新增硬件版本号属性HardwareVersion
结论:同意新增如下资源协作接口和属性
path:/bmc/kepler/Systems/:SystemId/PowerMgmt/:ID
新增interface:bmc.kepler.Chassis.PowerSubsystem.Capacitor
新增属性:HardwareVersion
| 属性 | 签名 | 访问权限 | 持久化 | 变化通知 |
|---|---|---|---|---|
| HardwareVersion | s | 只读,读:ReadOnly | 不持久化 | false |
决策点2:新增电压防抖时间属性VOUTDebounceMilliseconds和放电深度属性DepthOfDischargeVolts,设置电压防抖时间方法SetVOUTDebounceMilliseconds,设置放电深度方法SetDepthOfDischargeVolts
结论:同意新增电压防抖时间和放电深度属性,设置电压防抖时间和设置放电深度方法
path:/bmc/kepler/Systems/:SystemId/PowerMgmt/:ID
新增interface:bmc.kepler.Chassis.PowerSubsystem.Capacitor
新增属性:VOUTDebounceMilliseconds,DepthOfDischargeVolts
| 属性 | 签名 | 访问权限 | 持久化 | 变化通知 | 说明 |
|---|---|---|---|---|---|
| VOUTDebounceMilliseconds | u | 只读,读:ReadOnly | 不持久化 | false | 电容输出电压采样防抖时间,单位:毫秒 |
| DepthOfDischargeVolts | u | 只读,读:ReadOnly | 不持久化 | false | 电容放电深度,单位:V,即电容放电后的最低电压 |
新增方法:SetVOUTDebounceMilliseconds,SetDepthOfDischargeVolts
| 方法 | 请求签名 | 响应签名 | 操作权限 | 说明 |
|---|---|---|---|---|
| SetVOUTDebounceMilliseconds | u | NA | PowerMgmt | 设置电容输出电压采样防抖时间 |
| SetDepthOfDischargeVolts | u | NA | PowerMgmt | 设置电容柜放电深度 |
决策点3:在redfish接口(/redfish/v1/Chassis/:chassisid/PowerSubsystem/PowerSupplies/:powersuppliesid)新增电容硬件版本号属性
结论:同意在redfish接口新增电容硬件版本号属性
URI: /redfish/v1/Chassis/:chassisid/PowerSubsystem/PowerSupplies/:powersuppliesid
变化类型:在Oem对象中新增Capacitor对象,并在该对象新增属性HardwareVersion,类型为string
操作类型:GET
权限: ReadOnly
决策点4:在web接口(/UI/Rest/System/PowerSupply)新增电容硬件版本号
结论:同意在web接口新增电容硬件版本号属性
URI: /UI/Rest/System/PowerSupply
变化类型:在SupplyList下新增Capacitor对象,并在该对象新增属性HardwareVersion,类型为string
操作类型:GET
权限: ReadOnly
决策点5:新增双输入供电故障恢复回切时间配置属性RetransferDelaySeconds
结论:同意新增如下资源协作接口和属性
新增path:/bmc/kepler/PowerEquipment/PowerDistribution
新增interface:bmc.kepler.PowerEquipment.PowerDistribution.TransferConfiguration
新增属性:RetransferDelaySeconds
| 属性 | 签名 | 访问权限 | 持久化 | 变化通知 | 说明 |
|---|---|---|---|---|---|
| RetransferDelaySeconds | u | 读:ReadOnly 写:PowerMgmt |
掉电持久化 | false | 供电线路从备用切回主用的延迟时间,单位:秒,0表示不支持此双输入供电线路 |
决策点6:新增双输入供电故障恢复回切时间定制项BMCSet_RetransferDelaySeconds
结论:同意新增双输入供电故障恢复回切时间定制项,BMCSet_RetransferDelaySeconds
决策点7:新增电容容量属性CapacityMicrofarads
结论:同意新增如下资源协作接口和属性
path:/bmc/kepler/Systems/:SystemId/PowerMgmt/:ID
新增interface:bmc.kepler.Chassis.PowerSubsystem.Capacitor.Metrics
| 属性 | 签名 | 访问权限 | 持久化 | 变化通知 | 说明 |
|---|---|---|---|---|---|
| CapacityMicrofarads | u | 只读,读:ReadOnly | 不持久化 | false | 电容实时容量,单位:微法(μF) |
遗留问题及确认结论:
问题:确认电容容量是否为额定值,若是额定值则不需要放到Metrics下;
结论:与电源确认,电容容量为可变化值,因此将其放至Metrics下即可;
决策点8:新增继电器切换次数属性RelaySwitchedCount
结论:同意资源协作接口bmc.kepler.Systems.PowerMgmt.OnePower新增继电器切换次数属性
path:/bmc/kepler/Systems/:SystemId/PowerMgmt/:ID
interface:bmc.kepler.Systems.PowerMgmt.OnePower
新增属性:RelaySwitchedCount
| 属性 | 签名 | 访问权限 | 持久化 | 变化通知 | 说明 |
|---|---|---|---|---|---|
| RelaySwitchedCount | q | 只读,读:ReadOnly | 不持久化 | false | 电源内部继电器切换次数 |
遗留问题及确认结论:
问题:是否需要将属性值放到供电电路相关接口下(circuit)
结论:与电源确认,继电器属于电源中的一个硬件器件,用于实现双路源之间的切换,因此该属性添加到电源相关接口:bmc.kepler.Systems.PowerMgmt.OnePower
决策点9:新增TPSU告警状态属性TPSUStatusHigh和TPSUStatusLow
结论:同意资源协作接口bmc.kepler.Systems.PowerMgmt.OnePower.Status新增TPSU告警状态属性
path:/bmc/kepler/Systems/:SystemId/PowerMgmt/:ID
interface:bmc.kepler.Systems.PowerMgmt.OnePower.Status
新增属性:TPSUStatusHigh,TPSUStatusLow
| 属性 | 签名 | 访问权限 | 持久化 | 变化通知 | 说明 |
|---|---|---|---|---|---|
| TPSUStatusHigh | u | 只读,读:ReadOnly | 不持久化 | true | TPSU状态位高4字节,按bit定义状态 |
| TPSUStatusLow | u | 只读,读:ReadOnly | 不持久化 | true | TPSU状态位低4字节,按bit定义状态 |