背景
当发生硬盘故障时,支持运维人员、网管通过北向接口(redfish和ipmi)通过CPLD对物理盘槽位进行上下电。当前已有“BMC控制硬盘电源上下电”SMC命令字,但是CSR中没有配置读写该命令字的Accessor,也没有控制物理盘槽位电源上下电的资源协作接口和北向接口属性。
整体方案
配置读写“BMC控制硬盘电源上下电”SMC命令字的Accessor,并在CSR中硬盘对象Drive下新增属性SlotPowerState,引用该Accessor的值,用于查询、设置物理盘槽位电源的上下电状态。
决策点
- 新增Accessor对象用于读写"BMC控制硬盘电源上下电"命令字,硬盘对象Drive下新增SlotPowerState属性,引用新增的Accessor对象,用于查询、设置物理盘槽位电源的上下电状态
详细描述
- 新增Accessor对象用于读写"BMC控制硬盘电源上下电"命令字,硬盘对象Drive下新增SlotPowerState属性,引用新增的Accessor对象,用于查询、设置物理盘槽位电源的上下电状态
xxxx_basic_info.sr 配置示例:
"Accessor_Drive1PowerStateAccessor": {
"Chip": "#/Smc_EnclSMC",
"Size": 2,
"Offset": 335545857,
"Mask": 64,
"Type": 0,
"Value": 0
}
"Drive_1": {
"Id": 0,
"Name": "Disk0",
"PhysicalLocation": "HDD Plane",
"NodeId": "HDDPlaneDisk0",
"Presence": "<=/Scanner_Drive1PresentAccessor.Status;<=/Scanner_Drive1PresentAccessor.Value |> expr(($1 == 0 || $1 == 2) ? $2 : 255)",
"LocateLed": "<=/Scanner_Drive1LocateAccessor.Value",
"FaultLed": "<=/Scanner_Drive1FalutAccessor.Value",
"ActivationLed": "<=/Scanner_Drive1ActivationAccessor.Value",
"SetLocateLed": "#/Accessor_Drive1LocateAccessor.Value",
"SetFaultLed": "#/Accessor_Drive1FaultAccessor.Value",
"SlotPowerState": "#/Accessor_Drive1PowerStateAccessor.Value",
"TemperatureCelsius": 255,
"Missing": 0,
"Health": "<=/Component_Drive1.Health",
"RebuildState": 0,
"FirmwareStatus": 255,
"PredictiveFailure": 0,
"InAFailedArray": 0,
"FirmwareStatusError": false,
"SerialNumber": "",
"RelativeSlot": 0,
"PredictedMediaLifeLeftPercent": 255,
"PassThrough": "<=/Scanner_Drive1PresentAccessor.Value;<=/Scanner_Drive1PCIeType.Value|> expr(($1 == 1) && ($2 == 1))",
"HddBackplaneStartSlot": "<=/HddBackplane_1.StartSlot"
}
变化类型:新增属性
应用场景:BMC查询和设置物理盘槽位电源状态
持久化类型: 不持久化
操作权限:读:ReadOnly
| 属性名称 | 变化类型 | 签名 | 读写权限 | 持久化 | 默认值 | 变化通知 | 属性说明 | 属性约束 |
|---|---|---|---|---|---|---|---|---|
| SlotPowerState | 新增属性 | y | 读:ReadOnly | 不持久化 | 255 | true | 表示槽位电源状态,0:下电,1:上电,255:未知,默认值为255 | 无 |
评审结论
- 同意新增用于读写"BMC控制硬盘电源上下电"命令字的Accessor对象,同意在Drive对象下新增SlotPowerState属性,用于查询和设置物理盘槽位的电源状态。
遗留问题
- 确认在当CSR中配了上述读写"BMC控制硬盘电源上下电"命令字的Accessor,并且Drive对象的SlowPowerState属性关联了该Accessor,但CPLD版本不支持该功能时,资源协作接口如何处理
结论:已确认当CSR中配了上述读写"BMC控制硬盘电源上下电"命令字的Accessor,并且Drive对象的SlowPowerState属性关联了该Accessor,但CPLD版本不支持该功能时,mdbctl查询Accessor对象会抛错,查询Drive对象不会抛错,此时资源协作接口属性SlotPowerState显示为默认值255。