背景
新增支持配置SSD盘的剩余寿命过低告警阈值
关联ISSUE
整体方案
1.新增资源协作接口属性SSDMediaLifeLeftPercentThreshold用于关联告警
2.redfish接口、webrest接口新增获取和修改资源协作接口属性SSDMediaLifeLeftPercentThreshold
评审点
1.新增资源协作接口path:“bmc/kepler/Chassis/:chassisid/Storage”,interface: “bmc.kepler.Chassis.Storage.StorageSetting”, 属性SSDMediaLifeLeftPercentThreshold
2.redfish的Systems/:systemid接口新增获取和修改资源协作接口Oem属性SSDMediaLifeLeftPercentThreshold
3.redfish的Chassis/:chassisid接口新增获取和修改资源协作接口Oem属性SSDMediaLifeLeftPercentThreshold
4.webrest接口新增获取和修改资源协作接口属性SSDMediaLifeLeftPercentThreshold
详细描述
评审点1 新增资源协作接口属性SSDMediaLifeLeftPercentThreshold
新增资源path: “bmc/kepler/Chassis/:chassisid/Storage”
新增资源interface: “bmc.kepler.Chassis.Storage.StorageSetting”
新增属性:SSDMediaLifeLeftPercentThreshold
| 属性名称 | 变化类型 | 签名 | 读写&权限 | 持久化 | 变化通知 | 属性说明 | 接口约束 |
|---|---|---|---|---|---|---|---|
| SSDMediaLifeLeftPercentThreshold | 新增 | y | R:ReadOnly W:DiagnoseMgmt | 掉电持久化 | 是 | 硬盘剩余磨损率告警阈值,单位(%)取值范围:1~50; 默认值:5 | 无 |
评审点2 redfish的Systems/:systemid新增接口获取和修改资源协作接口Oem属性SSDMediaLifeLeftPercentThreshold
URI:“/redfish/v1/Systems/:systemid”(已有)
变化类型:新增Oem属性
操作类型:GET
应用场景:用于获取剩余寿命过低告警阈值
| 属性名称 | 操作权限 | 取值类型 | 取值范围 | 默认值 | 说明 | 约束 |
|---|---|---|---|---|---|---|
| SSDMediaLifeLeftPercentThreshold | ReadOnly | integer | 1~50 | 5 | 硬盘剩余磨损率告警门限,单位(%) | 无 |
URI:“/redfish/v1/Systems/:systemid”(已有)
变化类型:新增Oem属性
操作类型:PATCH
应用场景:用于设置剩余寿命过低告警阈值;兼容单主机,单主机设置可以成功,双主机设置报错。
| 属性名称 | 操作权限 | 取值类型 | 取值范围 | 默认值 | 说明 | 约束 |
|---|---|---|---|---|---|---|
| SSDMediaLifeLeftPercentThreshold | DiagnoseMgmt | integer | 1~50 | 5 | 硬盘剩余磨损率告警门限,单位(%) | 无 |
评审点3 redfish的Chassis/:chassisid接口新增获取和修改资源协作接口Oem属性SSDMediaLifeLeftPercentThreshold
URI:“/redfish/v1/Chassis/:chassisid”(已有)
变化类型:新增Oem属性
操作类型:GET
应用场景:用于获取剩余寿命过低告警阈值;
| 属性名称 | 操作权限 | 取值类型 | 取值范围 | 默认值 | 说明 | 约束 |
|---|---|---|---|---|---|---|
| SSDMediaLifeLeftPercentThreshold | ReadOnly | integer | 1~50 | 5 | 硬盘剩余磨损率告警门限,单位(%) | 无 |
URI:“/redfish/v1/Chassis/:chassisid”(已有)
变化类型:新增Oem属性
操作类型:PATCH
应用场景:用于设置剩余寿命过低告警阈值;单主机和双主机场景设置成功。
| 属性名称 | 操作权限 | 取值类型 | 取值范围 | 默认值 | 说明 | 约束 |
|---|---|---|---|---|---|---|
| SSDMediaLifeLeftPercentThreshold | DiagnoseMgmt | integer | 1~50 | 5 | 硬盘剩余磨损率告警门限,单位(%) | 无 |
schema说明:
"SSDMediaLifeLeftPercentThreshold": {
"$ref": "#/definitions/ThresholdValue",
"readonly": false,
"description": "Indicates the maximum threshold (%) of the ssd wornout.",
"longDescription": "Indicates the maximum threshold (%) of the ssd wornout"
}
示例:
{
"Oem": {
"openUBMC": {
"SSDMediaLifeLeftPercentThreshold": 5
}
}
}
评审点4 webrest接口新增获取和修改资源协作接口属性SSDMediaLifeLeftPercentThreshold
URI: “/UI/Rest/System/Storage/Settings”(新增)
变化类型:新增URI,新增属性
应用场景:用于读取设置的门限值
| 属性名称 | 取值类型 | 默认值 | 取值范围 | 操作权限 | 说明 | 约束 |
|---|---|---|---|---|---|---|
| SSDMediaLifeLeftPercentThreshold | integer | 5 | 1~50 | ReadOnly | 硬盘剩余磨损率告警门限,单位(%) | 无 |
URI: “/UI/Rest/System/Storage/Settings”(新增)
变化类型:新增URI,新增属性
操作类型:PATCH
应用场景:用于读取设置的门限值
| 属性名称 | 取值类型 | 默认值 | 取值范围 | 操作权限 | 说明 | 约束 |
|---|---|---|---|---|---|---|
| SSDMediaLifeLeftPercentThreshold | integer | 5 | 1~50 | DiagnoseMgmt | 硬盘剩余磨损率告警门限,单位(%) | 无 |
评审结论
评审点1
同意新增资源path:“bmc/kepler/Chassis/:chassisid/Storage”,资源interface:“bmc.kepler.Chassis.Storage.StorageSetting”, 属性:SSDMediaLifeLeftPercentThreshold
属性签名:y, 读写&权限:R:ReadOnly,W:DiagnoseMgmt,掉电持久化,变化通知:是, 说明:硬盘剩余磨损率告警阈值,单位(%),取值范围:1~50, 默认值:5
评审点2
同意在已有redfish URI:/redfish/v1/Systems/:systemid”下新增Oem属性SSDMediaLifeLeftPercentThreshold,属性PATCH权限:DiagnoseMgmt,GET权限:ReadOnly,
取值类型:integer,取值范围:1~50,默认值:5,说明:硬盘剩余磨损率告警门限,单位(%); 仅兼容单主机场景,双主机场景设置时返回失败;
评审点3
同意在已有redfish URI:“/redfish/v1/Chassis/:chassisid”下新增Oem属性SSDMediaLifeLeftPercentThreshold,属性PATCH权限:DiagnoseMgmt,GET权限:ReadOnly,
取值类型:integer,取值范围:1~50,默认值:5,说明:硬盘剩余磨损率告警门限,单位(%); 支持单主机场景,双主机场景。
评审点4
同意新增webrest URI:“/UI/Rest/System/Storage/Settings”并新增属性:SSDMediaLifeLeftPercentThreshold, 属性PATCH权限:DiagnoseMgmt,GET权限:ReadOnly,
取值类型:integer,取值范围:1~50,默认值:5,说明:硬盘剩余磨损率告警门限,单位(%);
遗留问题
1、剩余寿命过低告警阈值不允许遍历实现赋值到Drive对象,需要采用全局配置;
已修改为:新增path:“bmc/kepler/Chassis/:chassisid/Storage”,新增接口:“bmc.kepler.Chassis.Storage.StorageSetting”,进行全局配置,管理阈值
2、明确redfish接口是否要采用systemid区分,如果是则需要与网管对象需要进行适配(比如双主机场景则需要对多主机遍历配置),否则需要实现到chassis接口下面;
已明确:兼容旧的单主机场景,通过“/redfish/v1/Systems/:systemid”管理; 双主机场景在Chassis通过“/redfish/v1/Chassis/:chassisid”管理
3、webrest接口的URI优化,不能新增URI限制到某个属性的配置;
已修改为:新增“/UI/Rest/System/Storage/Settings”实现