背景
适配YX4颗粒的1880 RAID;同时RAID FW固件版本由1.x更新至2.x,固件升级带来的影响就是启动盘规格的变更,1.x版本支持1个启动盘配置,2.x版本支持5个启动盘配置。
北向接口需要做出相应的变化,来适配此改动
关联ISSUE
https://gitcode.com/openUBMC/storage/issues/297
https://gitcode.com/openUBMC/storage/issues/296
https://gitcode.com/openUBMC/storage/issues/294
整体方案
1、支持CLI接口通过资源协作属性BootDevices获取显示RAID卡配置的多个启动盘;
2、支持Redfish接口通过资源协作属性BootDevices获取RAID卡的多个启动盘
接口无变化,返回值BootDevices会根据实际情况返回全部设备名称,未设置的显示None;
3、支持Redfish接口通过资源协作接口SetBootDevicesV2设置RAID卡的多个启动盘;
评审点
1、支持扩展Redfish接口查询和设置RAID卡的多启动盘信息
2、支持扩展Web-rest接口查询和设置RAID卡的多启动盘信息
3、支持CLI接口获取显示RAID卡配置的多个启动盘信息
详细描述
评审点1:支持扩展Redfish接口查询和设置RAID卡的多启动盘信息
资源URI:/redfish/v1/Systems/:systemid/Storages/:storageid
操作类型:GET/PATCH
变化类型:变更属性取值范围
扩展指定存储器启动盘的资源ID:BootDevices,类型:array,数组元素类型:String,启动盘数组大小根据RAID卡所支持的最大个数动态获取和设置
GET方法示例:
修改前:
{
"StorageControllers": [
{
"Oem": {
"openUBMC": {
"BootDevices": ["Disk0", "None"]
}
}
}
]
}
修改后:
{
"StorageControllers": [
{
"Oem": {
"openUBMC": {
"BootDevices": ["Disk0", "Disk1", "Disk2", "None", "None"]
}
}
}
]
}
PATCH方法示例:
修改前:
{
"StorageControllers": [
{
"Oem": {
"openUBMC": {
"BootDevices": ["Disk0", "None"]
}
}
}
]
}
修改后:
{
"StorageControllers": [
{
"Oem": {
"openUBMC": {
"BootDevices": ["Disk0", "Disk1", "Disk2"]
}
}
}
]
}
变更属性:
| 属性名 | 类型 | 示例/取值范围 | readonly | 易变属性 | 实现patch | 操作权限 | 描述 |
|---|---|---|---|---|---|---|---|
| BootDevices | array | 博通卡,PMC卡示例: [“Disk0”, “None”] 1880Raid卡1.0版本示例: [“Disk0”] 1880Raid卡2.0版本示例: [“Disk0”, “Disk2”, “Disk3”,“None”,“None”] |
否 | 否 | 是 | 控制器多启动盘信息 |
评审点2:支持扩展Web-rest接口查询和设置RAID卡的多启动盘信息
资源URI:/UI/Rest/System/Storage/:id
操作类型:GET/PATCH
变化类型:变更属性取值范围
扩展指定存储器启动盘的资源ID:BootDevices,类型:array,数组元素类型:String,启动盘数组大小根据RAID卡所支持的最大个数动态获取和设置
GET方法示例:
修改前:
{
"BootDevices": ["Disk0", "None"]
}
修改后:
{
"BootDevices": ["Disk0", "Disk1", "Disk2", "None", "None"]
}
PATCH方法示例:
修改前:
{
"BootDevices": ["Disk0", "None"]
}
修改后:
{
"BootDevices": ["Disk0", "Disk1", "Disk2"]
}
变更属性:
| 属性名 | 类型 | 示例/取值范围 | readonly | 易变属性 | 实现patch | 操作权限 | 描述 |
|---|---|---|---|---|---|---|---|
| BootDevices | array | 博通卡,PMC卡示例: [“Disk0”, “None”] 1880Raid卡1.0版本示例: [“Disk0”] 1880Raid卡2.0版本示例: [“Disk0”, “Disk2”, “Disk3”,“None”,“None”] |
否 | 否 | 是 | 控制器多启动盘信息 |
评审点3:CLI接口获取多启动盘
资源URI:ipmcget -t storage -d ctrlinfo
操作类型:GET
变化类型:变更属性取值范围
扩展指定存储器启动盘的资源ID :BootDevices,类型: array,数组元素类型:String,同意启动盘数组大小根据RAID卡所支持的最大个数动态获取
旧文案:
所有Raid卡示例:
Primary Boot Device : Disk1
Secondary Boot Device : Disk2
新文案:
博通卡,PMC卡示例:
Primary Boot Device : Disk1
Secondary Boot Device : Disk2
1880Raid卡1.0版本示例:
Boot Devices : Disk1
1880Raid卡2.0版本示例:
Boot Devices : Disk1, Disk2, Disk3, None, None
变更属性:
| 属性名 | 类型 | 示例/取值范围 | readonly | 易变属性 | 实现patch | 操作权限 | 描述 |
|---|---|---|---|---|---|---|---|
| BootDevices | array | 博通卡,PMC卡示例: [“Disk0”, “None”] 1880Raid卡1.0版本示例: [“Disk0”] 1880Raid卡2.0版本示例: [“Disk0”, “Disk2”, “Disk3”,“None”,“None”] |
否 | 否 | 否 | 控制器多启动盘信息 |
是否准备好AI预审
否