【已评审】支持对物理盘槽位的上下电控制

背景

当发生硬盘故障时,支持运维人员、网管通过北向接口(redfish和ipmi)通过CPLD对物理盘槽位进行上下电。当前已有“BMC控制硬盘电源上下电”SMC命令字,但是CSR中没有配置读写该命令字的Accessor,也没有控制物理盘槽位电源上下电的资源协作接口和北向接口属性。

整体方案

配置读写“BMC控制硬盘电源上下电”SMC命令字的Accessor,并在CSR中硬盘对象Drive下新增属性SlotPowerState,引用该Accessor的值,用于查询、设置物理盘槽位电源的上下电状态。

决策点

  1. 新增Accessor对象用于读写"BMC控制硬盘电源上下电"命令字,硬盘对象Drive下新增SlotPowerState属性,引用新增的Accessor对象,用于查询、设置物理盘槽位电源的上下电状态

详细描述

  1. 新增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

评审结论

  1. 同意新增用于读写"BMC控制硬盘电源上下电"命令字的Accessor对象,同意在Drive对象下新增SlotPowerState属性,用于查询和设置物理盘槽位的电源状态。

遗留问题

  1. 确认在当CSR中配了上述读写"BMC控制硬盘电源上下电"命令字的Accessor,并且Drive对象的SlowPowerState属性关联了该Accessor,但CPLD版本不支持该功能时,资源协作接口如何处理
    结论:已确认当CSR中配了上述读写"BMC控制硬盘电源上下电"命令字的Accessor,并且Drive对象的SlowPowerState属性关联了该Accessor,但CPLD版本不支持该功能时,mdbctl查询Accessor对象会抛错,查询Drive对象不会抛错,此时资源协作接口属性SlotPowerState显示为默认值255。