背景
《T CESA 服务器南向接口技术要求 草案2025.12.23.doc》8.15存储设备相关接口中,属性类型、签名类型以及方法无法满足开发需求,需要补充调整。
关联ISSUE
[缺陷]: 接口设计,实现不合理,需要优化实现 - openUBMC/component_drivers - AtomGit
整体方案
当前按照web端9560Raid卡实际操作内容,补充资源协作接口方法,部分属性实现不合理,调整属性名称或者签名类型。
评审点1:新增资源协作接口 bmc.dev.Storage.Volume.Settings
接口描述:逻辑磁盘操作。
新增方法
| 方法名称 | 请求签名 | 请求参数描述 | 响应签名 | 响应参数描述 | 方法描述 | 访问权限 |
|---|---|---|---|---|---|---|
SetBootPriority |
y |
BootPriority: 启动优先级0:非启动盘1:主启动盘2:次启动盘 |
i |
成功:0;失败:错误码 |
设置逻辑盘是否启动盘 |
BasicSetting |
SetProperties |
(usyyyyyyyuyi) |
Properties: 需要修改的属性,SettingOptions:位掩码,标识哪些字段为有效值LdName:逻辑盘名称ReadPolicy:读策略WritePolicy:写策略IOPolicy:IO策略AccessPolicy:访问策略DiskCachePolicy:磁盘缓存策略BGIEnable:后台初始化使能Accelerator:加速方法CapacityMB:容量大小,单位MBStripSize:条带大小SSDInLd:指示逻辑盘中是否包含SSD硬盘 |
i |
成功:0;失败:错误码 |
修改逻辑磁盘参数配置 |
BasicSetting |
StartFGI |
y |
InitType: 初始化类型0 = 快速初始化 1 = 全量初始化 |
u |
TaskId |
开始前台初始化 |
BasicSetting |
CancelFGI |
i |
成功:0;失败:错误码 |
取消前台初始化 |
BasicSetting |
||
SetSSDCachingEnable |
b |
Enabled: 是否关联true = 关联 false = 不关联 |
i |
成功:0;失败:错误码 |
设置SSD Cache使能状态 |
BasicSetting |
评审点2:变更资源协作接口 bmc.dev.Storage.Volume.Settings
变更描述:boolean改为uint8_t类型。
变更签名
| 变更类型 | 属性名称 | 签名 | 只读 | 变化通知 | 属性描述 | 访问权限 | 属性来源 | 持久化 | 变更影响 |
|---|---|---|---|---|---|---|---|---|---|
变更 |
BootEnable |
b → y |
false |
false |
0xFF表示查询失败 |
不持久化 |
无影响 |
||
变更 |
SSDCachingEnable |
b → y |
false |
false |
sml_base中如果是SSD组的逻辑盘,直接返回 0xFF |
不持久化 |
无影响 |
评审点3:变更资源协作接口 bmc.dev.Storage.Drive.Status
变更描述:接口方法响应类型无改为U32。
变更响应类型
| 方法名称 | 请求签名 | 请求参数描述 | 响应签名 | 响应参数描述 | 方法描述 | 访问权限 |
|---|---|---|---|---|---|---|
SetFirmwareStatus |
y |
FirmwareStatus: 固件状态 |
void → i |
成功:0;失败:错误码 |
设置固件状态 |
BasicSetting |
SetLocationIndicatorState |
y |
LocationIndicatorState: 定位指示灯状态 |
void → i |
成功:0;失败:错误码 |
设置定位指示灯状态 |
BasicSetting |
SetFaultIndicatorState |
y |
FaultIndicatorState: 故障指示灯状态 |
void → i |
成功:0;失败:错误码 |
设置故障指示灯状态 |
BasicSetting |
评审点4:变更资源协作接口 bmc.dev.Storage.Drive.Settings
变更描述:接口方法响应类型无改为int32。
变更响应类型
| 方法名称 | 请求签名 | 请求参数描述 | 响应签名 | 响应参数描述 | 方法描述 | 访问权限 |
|---|---|---|---|---|---|---|
SetHotspare |
yq |
HotspareType: 驱动器的热备状态0 = None 1 = Global2 = Dedicated3 = AutoVolumeId:逻辑盘Id |
void → i |
成功:0;失败:错误码 |
设置热备类型 |
BasicSetting |
CryptoErase |
void → i |
成功:0;失败:错误码 |
擦除加密盘 |
BasicSetting |
||
SetBootPrority |
BootPriority: 启动优先级 |
void → i |
成功:0;失败:错误码 |
设置启动优先级 |
BasicSetting |
|
SetPatrolState |
PatrolState: 巡检状态 |
void → i |
成功:0;失败:错误码 |
设置物理盘的巡检状态 |
BasicSetting |
评审点5:变更资源协作接口 bmc.dev.Storage.Volume
变更描述:属性名称和签名修改。
变更属性名称和签名类型
| 变更类型 | 属性名称 | 签名 | 只读 | 变化通知 | 属性描述 | 访问权限 | 属性来源 | 持久化类型 | 变更影响 |
|---|---|---|---|---|---|---|---|---|---|
变更 |
CapacityBytes → CapacityMB |
t → u |
true |
false |
属性描述:逻辑盘容量,单位MB |
不持久化 |
无影响 |
||
变更 |
StripSizeBytes → StripSize |
u → y |
true |
false |
属性描述:逻辑盘条带大小枚举 |
不持久化 |
无影响 |
||
变更 |
MaxResizableSizeBytes → MaxResizableSize |
t → u |
true |
false |
属性描述:逻辑盘最大可调整的容量 |
不持久化 |
无影响 |
||
变更 |
CacheLineSizeKiB→ CacheLineSize |
u → y |
true |
false |
逻辑盘缓存行大小 |
不持久化 |
无影响 |
评审点6:新增资源协作接口 bmc.dev.Storage.Controller.Settings
接口描述:逻辑磁盘操作。
新增方法
| 方法名称 | 请求签名 | 请求参数描述 | 响应签名 | 响应参数描述 | 方法描述 | 访问权限 |
|---|---|---|---|---|---|---|
SetCopybackEnabled |
y |
CopybackEnabled: 状态 0:Disable1:Enable |
i |
成功:0;失败:错误码 |
设置控制器的回拷功能 |
BasicSetting |
SetSMARTerCopybackEnabled |
y |
SMARTerCopybackEnabled: 状态 0:Disable1:Enable |
i |
成功:0;失败:错误码 |
设置RAID控制器在检测到物理盘SMART错误之后是否自动进行Copyback |
BasicSetting |
SetMode |
y |
Mode: 工作模式0 = Raid 1 = HBA2 = JBOD |
i |
成功:0;失败:错误码 |
设置控制器的工作模式 |
BasicSetting |
SetJBODEnabled |
y |
Enabled: 状态0 = Disable1 = Enable |
i |
成功:0;失败:错误码 |
设置控制器的JBOD功能状态 |
BasicSetting |
SetMaintPDFailHistory |
y |
Enabled: 状态0 = 关闭1 = 开启 |
i |
成功:0;失败:错误码 |
用于设置RAID卡硬盘故障记忆功能的开启或者关闭 |
BasicSetting |
SetNoBatteryWriteCache |
y |
Enabled: 状态0 = Disable1 = Enable |
i |
成功:0;失败:错误码 |
设置控制器无电池写缓存状态 |
BasicSetting |
SetReadCachePercent |
y |
Percent: 读缓存百分比取值范围 0~100,必须为5的倍数 |
i |
成功:0;失败:错误码 |
设置控制器读缓存百分比 |
BasicSetting |
评审点7:变更资源协作接口 bmc.dev.Storage.Controller.ForeignConfigurations
变更描述:接口方法响应类型无改为int32。
变更响应类型
| 方法名称 | 请求签名 | 请求参数描述 | 响应签名 | 响应参数描述 | 方法描述 | 访问权限 |
|---|---|---|---|---|---|---|
Import |
void → i |
成功:0;失败:错误码 |
导入外部配置 |
BasicSetting |
||
Clear |
void → i |
成功:0;失败:错误码 |
清除外部配置 |
BasicSetting |
评审点8:变更资源协作接口 bmc.dev.Storage.Volume.Policy
变更描述:String改为uint8_t类型。
变更签名
| 变更类型 | 属性名称 | 签名 | 只读 | 变化通知 | 属性描述 | 访问权限 | 属性来源 | 持久化 | 变更影响 |
|---|---|---|---|---|---|---|---|---|---|
变更 |
DefaultReadPolicy |
s → y |
false |
false |
逻辑盘默认读策略 |
不持久化 |
无影响 |
||
变更 |
CurrentReadPolicy |
s → y |
true |
false |
逻辑盘实际读策略 |
不持久化 |
无影响 |
||
变更 |
DefaultWritePolicy |
s → y |
false |
false |
逻辑盘默认写策略 |
不持久化 |
无影响 |
||
变更 |
CurrentWritePolicy |
s → y |
true |
false |
逻辑盘实际写策略 |
不持久化 |
无影响 |
||
变更 |
DefaultIOPolicy |
s → y |
false |
false |
逻辑盘默认IO策略 |
不持久化 |
无影响 |
||
变更 |
CurrentIOPolicy |
s → y |
true |
false |
逻辑盘实际IO策略 |
不持久化 |
无影响 |
||
变更 |
DiskCachePolicy |
s → y |
false |
false |
逻辑盘的物理盘缓存策略 |
不持久化 |
无影响 |
||
变更 |
AccessPolicy |
s → y |
false |
false |
逻辑盘访问策略 |
不持久化 |
无影响 |
评审点9:新增资源协作接口 bmc.dev.Storage.Controller
变更描述:String改为uint8_t类型。
新增属性
| 属性名称 | 签名 | 只读 | 变化通知 | 属性描述 | 访问权限 | 属性来源 | 持久化类型 | 易变属性 |
|---|---|---|---|---|---|---|---|---|
TypeId |
y |
true |
false |
属性描述:控制器类型 |
Read: ReadOnly |
不持久化 |
false |
|
Model |
s |
true |
false |
属性描述,产品型号 |
Read: ReadOnly |
不持久化 |
false |
|
HardwareRevision |
s |
true |
false |
属性描述,控制器的硬件版本 |
Read: ReadOnly |
不持久化 |
false |
|
HotSpareActivationMode |
s |
true |
false |
属性描述,控制器的热备激活模式:Failure,Predictive,Unknown |
Read: ReadOnly |
不持久化 |
false |
|
FirmwareVersion |
s |
true |
false |
属性描述,控制器固件版本 |
Read: ReadOnly |
不持久化 |
false |
评审点10:变更资源协作接口 bmc.dev.Storage.Controller.Status
变更描述:boolean改为uint8_t类型。
变更签名
| 变更类型 | 属性名称 | 签名 | 只读 | 变化通知 | 属性描述 | 访问权限 | 属性来源 | 持久化 | 变更影响 |
|---|---|---|---|---|---|---|---|---|---|
变更 |
CachePinned |
b → y |
true |
false |
是否发生cache pinned |
不持久化 |
无影响 |
评审点11:新增资源协作接口 bmc.dev.Storage.Drive.Metrics
变更描述:新增华为ssd硬盘smart信息,新增华为硬盘smart标记位信息,新增厂商自定义Smart标记位信息,用于计算"预估寿命(天)"。
新增属性
| 属性名称 | 签名 | 只读 | 变化通知 | 属性描述 | 访问权限 | 属性来源 | 持久化类型 | 易变属性 |
|---|---|---|---|---|---|---|---|---|
SlcPeCycle |
u |
true |
false |
属性描述:华为自定义Smart信息:SLC擦除次数的规格值 |
Read: ReadOnly |
不持久化 |
false |
|
TlcPeCycle |
u |
true |
false |
属性描述,华为自定义Smart信息:TLC擦除次数的规格值 |
Read: ReadOnly |
不持久化 |
false |
|
SlcAvgEc |
u |
true |
false |
属性描述,华为自定义Smart信息:SLC的平均擦除次数 |
Read: ReadOnly |
不持久化 |
false |
|
TlcAvgEc |
u |
true |
false |
属性描述,华为自定义Smart信息:TLC的平均擦除次数 |
Read: ReadOnly |
不持久化 |
false |
|
SlcPoh |
u |
true |
false |
属性描述,华为自定义Smart信息:SLC当前的累计上电时长 |
Read: ReadOnly |
不持久化 |
false |
|
TlcPoh |
u |
true |
false |
属性描述,华为自定义Smart信息:TLC当前的累计上电时长 |
Read: ReadOnly |
不持久化 |
false |
|
SlcUsedLifespan |
u |
true |
false |
属性描述,华为自定义Smart信息:用户区已使用寿命百分比值 |
Read: ReadOnly |
不持久化 |
false |
|
TlcUsedLifespan |
u |
true |
false |
属性描述,华为自定义Smart信息:非用户区已使用寿命百分比值 |
Read: ReadOnly |
不持久化 |
false |
|
HwValidFlag |
b |
true |
false |
属性描述:标志从华为自定义Smart获取信息 |
Read: ReadOnly |
不持久化 |
false |
|
VendorValidFlag |
b |
true |
false |
属性描述,标志从厂商自定义Smart获取信息 |
Read: ReadOnly |
不持久化 |
false |
|
VendorPoh |
u |
true |
false |
属性描述,厂商自定义Smart信息:累计上电时长 |
Read: ReadOnly |
不持久化 |
false |
|
VendorRemnWearout |
y |
true |
false |
属性描述,厂商自定义Smart信息:剩余磨损率 |
Read: ReadOnly |
不持久化 |
false |
|
StripTemperatureCelsius |
u |
true |
false |
属性描述:SAS硬盘条带温度 |
Read: ReadOnly |
不持久化 |
false |
|
ElementsInGrownDefectList |
u |
true |
false |
属性描述:SAS硬盘GLIST计数 |
Read: ReadOnly |
不持久化 |
false |
|
ElementsInPrimaryDefectList |
u |
true |
false |
属性描述:SAS硬盘PLIST计数 |
Read: ReadOnly |
不持久化 |
false |
|
ManufacturedInWeekOfYear |
s |
true |
false |
属性描述:SAS硬盘生产日期 |
Read: ReadOnly |
不持久化 |
false |
|
BlocksSentToInitiator |
u |
true |
false |
属性描述:SAS硬盘发送到发起者的块数 |
Read: ReadOnly |
不持久化 |
false |
|
BlocksReceivedFromInitiator |
u |
true |
false |
属性描述:SAS硬盘从发起者接收的块数 |
Read: ReadOnly |
不持久化 |
false |
|
UntilNextInterSMARTTestMinutes |
u |
true |
false |
属性描述:SAS硬盘距离下次SMART测试的分钟数 |
Read: ReadOnly |
不持久化 |
false |
|
LastPrefailEventSeqNum |
u |
true |
false |
属性描述:预故障事件序列号 |
Read: ReadOnly |
不持久化 |
false |
评审点12:新增资源协作接口 bmc.dev.Storage.Controller.Metrics
变更描述:新增控制器内存UCE计数"。
新增属性
| 属性名称 | 签名 | 只读 | 变化通知 | 属性描述 | 访问权限 | 属性来源 | 持久化类型 | 易变属性 |
|---|---|---|---|---|---|---|---|---|
UncorrectableParityErrorCount |
u |
true |
false |
属性描述:控制器内存生命周期内不可纠正奇偶校验错误的数量 |
Read: ReadOnly |
不持久化 |
false |
评审点13:新增资源协作接口 bmc.dev.Storage.Drive.Status
接口描述:新增慢盘计数器查询方法。
新增方法
| 方法名称 | 请求签名 | 响应签名 | 响应参数描述 | 方法描述 | 访问权限 |
|---|---|---|---|---|---|
GetSlowDiskCounters |
无 |
(uuuu) |
CommandTimeoutTimes: 命令超时次数增量UnexpectedSenseTimes: 意外感知次数增量ResetTimes: 重置次数增量PowerOnTimes: 上电次数增量 |
获取慢盘计数器增量(读取后RAID卡内部清零) |
ReadOnly |
评审点14:资源协作接口 *bmc.dev.Storage.Controller.Settings*变更方法签名类型
接口描述:接口方法响应类型无改为int32。
变更方法签名类型
| 方法名称 | 请求签名 | 请求参数描述 | 响应签名 | 响应参数描述 | 方法描述 | 访问权限 |
|---|---|---|---|---|---|---|
SetDriveWriteCachePolicy |
yy |
Type: RAID下的硬盘管理类型enum: 0:"ConfiguredDriveWriteCachePolicy", 1:"UnconfiguredDriveWriteCachePolicy", 2:"HBADriveWriteCachePolicy WriteCachePolicy: 写缓存策略enum: 0:"Default", 1:"Enabled", 2:"Disabled |
void → i |
成功:0;失败:错误码 |
设置硬盘写缓存策略 |
BasicSetting |
SetConsisCheck |
qyy |
Period: RAID控制器一致性校验周期,单位(小时), 取值范围[1:1440]Rate: RAID控制器一致性校验速率AutoRepairedEnabled: 自动修复启用使能 |
void → i |
成功:0;失败:错误码 |
设置一致性检查参数,包括周期、比例、延时等 |
BasicSetting |
RestoreSettings |
void → i |
成功:0;失败:错误码 |
恢复控制默认设置 |
BasicSetting |