功能简介
- Storage模块是独立组件管理存储组件,对内提供资源协作接口功能接口,目前storage的版本信息在manifest/hardware子系统中
- 信息获取:支持从带外或通过BMA获取控制器、硬盘、超级电容、逻辑盘、RAID组信息
- 对外功能:支持创建、删除、设置逻辑盘;支持设置控制器功能;支持点硬盘定位灯
- 故障检测:支持控制器健康状态检测、硬盘健康状态检测、逻辑盘健康状态检测以及超级电容健康状态检测
- 支持RAID卡:当前支持1880RAID卡、博通RAID卡和PMC RAID卡
目录结构
├── src
│ ├── lualib
│ │ ├── add_event.lua #事件上报功能
│ │ ├── array #阵列功能相关
│ │ ├── battery #电容功能相关
│ │ ├── bma #直通盘及bma相关功能
│ │ ├── bus_monitor_service.lua #smbios功能
│ │ ├── common_def.lua #公共宏定义
│ │ ├── controller #raid卡功能相关
│ │ ├── ctrl_commu_loss_monitor.lua #raid卡通信丢失检测功能
│ │ ├── drive #硬盘功能相关
│ │ ├── drives #硬盘组功能相关
│ │ ├── diagnose #误码诊断功能
│ │ ├── error_engine.lua #错误引擎功能
│ │ ├── handler #配置导入导出功能
│ │ ├── ipmi_service.lua #ipmi服务
│ │ ├── link_volume_array_drive_service.lua #逻辑盘、阵列、物理盘关联功能
│ │ ├── mctp #mctp服务
│ │ ├── method_misc.lua #misc服务
│ │ ├── metric_collect.lua #硬盘数据采集功能
│ │ ├── nvme #nvme盘功能
│ │ ├── object_manager #业务对象相关功能
│ │ ├── os_patition #os分区
│ │ ├── pd #硬盘定位功能
│ │ ├── rpc_services #rpc方法
│ │ ├── sas_phy
│ │ ├── sml #sml库相关
│ │ ├── storage_app.lua #组件服务相关功能
│ │ ├── storage_bus.lua
│ │ ├── storage_mdb_object.lua
│ │ ├── storageconfig
│ │ ├── sync_task.lua #基础任务功能
│ │ ├── tasks.lua #基础任务功能
│ │ ├── task_service.lua #通用任务服务
│ │ └── volume #逻辑盘功能
│ ├── lualib-src
│ │ ├── CMakeLists.txt
│ │ └── l_sml #sml服务
│ ├── service
│ │ ├── main.lua
│ │ └── smld.lua关键特性
博通Raid卡带外管理介绍
(1)介绍
对博通卡进行带外管理时,我们要使用卡的驱动通过I2C与RAID卡进行通讯。在这个过程中,我们需要将BMC的I2C读写函数传递给RAID卡的驱动,供RAID卡的驱动进行调用。由于当前BMC的I2C通道由hwproxy模块进行统一管理,因此我们需要使用插件的方式实现支持I2C的读写。
(2)实现机制
因为BMC的I2C通信实现方式,因此我们引入插件(plugin)的方式来让存储模块使用在hwproxy管理下的I2C总线,下图描述了其中的关系
- 控制器对象实现具体的功能时,调用注册好的i2c芯片的PluginRequest方法,并传入插件名、函数名和函数参数,插件名用来寻找是哪个插件
- 找到对应的插件后,调用插件的run_cmd函数,创建一个Worker虚拟机,后续的操作都在虚拟机中实现,所以Plugin的协程可以先睡觉
- 在虚拟机中调用实际的sml库中的函数
- sml库中的函数需要使用i2c通信时,将i2c命令打包后使用skynet_send函数将消息发送给plugin所在的skynet服务,并由skynet暂停hwproxy的i2c轮询线程,优先处理当前的i2c通信请求
- 当三方库函数处理结束后,Worker虚拟机会将处理结果发送给plugin,同时唤醒Plugin的协程,并由plugin将信息返回给函数调用方
下图是具体的信息流图:
1880及PMC Raid卡代管理介绍
(1)介绍
1880和PMC的raid卡采用MCTP方式和RAID卡进行通信实现带外管理。首先需要正常建立起MCTP链路后才能正常进行数据更新。
(2)实现机制 MCTP组件提供相关服务,将收发信息的接口注册到Storage组件,需要收发信息会组件会调用回调函数进行处理。
- Storage注册的回调接口为:do_mctp_writeread
- 回调函数注册流程:CMD.register_controller
对外接口
资源协作接口
bmc.kepler.Systems.Storage.StorageConfig
属性
| 字段 | 说明 | 约束 | 单位 | 互斥关系 | 依赖关系 | 格式样例 | 唯一性要求 | 兼容性要求 |
|---|---|---|---|---|---|---|---|---|
| StorageConfigReady | 用于控制器配置导入导出场景,标志了所有控制器的状态 | 使用: ReadOnly | 不涉及 | 不涉及 | 不涉及 | 0x01 | 唯一 | 不涉及 |
| VolumesStateAbnormal | 是否存在状态异常的逻辑盘。0:否,1:是 | 使用: ReadOnly | 不涉及 | 不涉及 | 依赖所有Volume对象的State属性 | 不涉及 | 唯一 | 不涉及 |
| DiskPartitionUsagePercentageThreshold | 磁盘分区占用率告警阈值(百分比) | 默认: 100 | % | 不涉及 | 不涉及 | 100 | 不涉及 | 不涉及 |
bmc.kepler.Systems.Storage.Diagnose
属性
| 字段 | 说明 | 约束 | 单位 | 互斥关系 | 依赖关系 | 格式样例 | 唯一性要求 | 兼容性要求 |
|---|---|---|---|---|---|---|---|---|
| PhyErrorEnabled | PHY误码诊断使能 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| PhyErrorInterval | PHY误码数据采集的时间间隔,单位秒 | 默认: 1800 | 秒 | 不涉及 | PhyErrorEnabled为True时才生效 | 1800 | 不涉及 | 不涉及 |
| PhyErrorMaxRecord | PHY误码在一个OS启动周期内记录的最大条数(有增长的记录) | 默认: 20 | 条 | 不涉及 | PhyErrorEnabled为True时才生效 | 20 | 不涉及 | 不涉及 |
| PhyErrorThreshold | PHY误码单位时间增长过快的判断门限值 | 默认: 100 | dwordcount/s | 不涉及 | PhyErrorEnabled为True时才生效 | 100 | 不涉及 | 不涉及 |
| MaxPhyErrorLogFileRotationCount | PHY误码循环记录的最大文件数 | 默认: 10 | 个 | 不涉及 | PhyErrorEnabled为True时才生效 | 10 | 不涉及 | 不涉及 |
| PhyErrorSelUnlimitFlag | PHY误码是否允许产生多个SEL告警事件 | 默认: false | 不涉及 | 不涉及 | 不涉及 | false | 不涉及 | 不涉及 |
控制器对外接口
bmc.kepler.Systems.Storage.Controller
NAME TYPE SIGNATURE RESULT/VALUE FLAGS description
.ClearForeignConfig method a{ss} - - 一键清除外部配置
.ImportForeignConfig method a{ss} - - 一键导入外部配置
.RestoreDefaultSettings method a{ss} - - 恢复默认设置
.SetBootDevices method a{ss}ss - - 设置启动盘
.SetCopybackState method a{ss}y - - 设置回拷开关
.SetJBODState method a{ss}y - - 设置JBOD开关
.SetSmarterCopyBackState method a{ss}y - - 设置smrat信息错误回拷开关
.SetWorkMode method a{ss}yy - - 设置控制器的工作模式
.DumpLog method a{ss} u - 收集RAID控制器信息属性
| 字段 | 说明 | 约束 | 单位 | 互斥关系 | 依赖关系 | 格式样例 | 唯一性要求 | 兼容性要求 |
|---|---|---|---|---|---|---|---|---|
| Id | 控制器Id, 由软件生成,默认值0xFF | 默认: 255; 使用: ResetPerRetain | 不涉及 | 不涉及 | 不涉及 | 0 | 每张RAID卡对应唯一的Id | 不涉及 |
| Type | 控制器类型 | 不涉及 | 不涉及 | 不涉及 | 与TypeId一一对应 | 不涉及 | 不涉及 | 需兼容新适配的RAID卡 |
| TypeId | 控制器的类型Id | 使用: CSR | 不涉及 | 与TypeId一一对应 | 不涉及 | 不涉及 | 需兼容新适配的RAID卡 | |
| DeviceName | 对应的PCIeDevice的设备名 | 使用: CSR | 不涉及 | 不涉及 | 关联对应PCIeDevice的DeviceName | 不涉及 | 主键 | 不涉及 |
| Position | 对应的PCIeDevice的位置 | 使用: CSR | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| TemperatureCelsius | 控制器芯片温度 | 使用: CSR | °C | 不涉及 | TemperatureAbnormal为0才有效 | 不涉及 | 不涉及 | 不涉及 |
| TemperatureAbnormal | 温度异常描述,温度获取失败时置1 | 使用: CSR | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| Name | 控制器名称 | 使用: CSR | 不涉及 | 不涉及 | 不支持带外管理则为CSR配置,否则带外获取 | 不涉及 | 不涉及 | 不涉及 |
| OOBSupport | 支持带外管理模式,0:不支持带外;1:支持带外 | 使用: CSR, PoweroffPer | 不涉及 | 不涉及 | 可以通过IPMI命令持久化或非持久化的修改 | 不涉及 | 不涉及 | 不涉及 |
| FirmwareVersion | 控制器固件版本 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| SupportedMode | 控制器工作模式 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| MemorySizeMiB | 控制器内存大小,单位MB | 不涉及 | MiB | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| DeviceInterface | 控制器设备接口 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| SASAddr | 控制器SAS地址 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 唯一 | 不涉及 |
| SerialNumber | 控制器序列号 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 唯一 | 不涉及 |
| MaxStripSizeBytes | 控制器支持的最大条带 | 不涉及 | Bytes | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 唯一 | 不涉及 |
| MinStripSizeBytes | 控制器支持的最小条带 | 不涉及 | Bytes | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 唯一 | 不涉及 |
| NVDataVersion | 控制器配置版本 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| MaintainPDFailHistrory | 是否启用控制器的物理盘故障记忆功能 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| PCIeLinkWidth | 控制器的PCIE带宽 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| UnconfiguredDriveWriteCachePolicy | 非RAID组成员盘的写缓存策略:Enabled,Disabled,Default | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| HBADriveWriteCachePolicy | HBA模式下硬盘的写缓存策略:Enabled,Disabled,Default | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| ConfiguredDriveWriteCachePolicy | RAID组成员盘的写缓存策略:Enabled,Disabled,Default | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| SupportedRAIDTypes | RAID级别 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| SmarterCopyBackState | RAID控制器在检测到物理盘SMART错误之后是否自动进行Copyback | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| CopyBackState | 指定控制器的回拷功能使能状态 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| BootDevices | 控制器的启动设备列表 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| HardwareRevision | 控制器的硬件版本 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| HotSpareActivationMode | 控制器的热备激活模式:Failure,Predictive,Unknown | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| NoBatteryWriteCacheEnabled | 控制器的无电池写缓存模式 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| ReadCachePercent | 控制器的读缓存百分比,取值范围:0~100 | 默认: 255 | % | 不涉及 | 依赖OOBSupport为1 | 255 | 不涉及 | 不涉及 |
| JBODState | 控制器的JBOD功能状态:false,true | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| CachePinnedState | 控制器的Cache Pinned开关 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| DDREccCount | DDR ECC计数 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| WorkMode | 控制器的工作模式, 包括RAID、HBA、JBOD和MIXED四种 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| RefDrives | 控制器下挂载的所有硬盘名 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1进行点灯流程,与Drive对象的RefControllerId对应 | 不涉及 | 不涉及 | 不涉及 |
| BOMNumber | BOM编码 | 使用: CSR | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| CryptoEraseSupported | 驱动器是否支持加密盘数据擦除 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| EpdSupported | 控制器是否支持启用硬盘模式增强 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| JbodSupported | 当前控制器是否支持以直通方式管理硬盘,此属性由系统自动获取,禁止外部设置 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| RefChip | 使用: CSR | 不涉及 | 不涉及 | 引用接口: bmc.kepler.Chip.BlockIO | 不涉及 | 不涉及 | 特定RAIDCSR中配置 | |
| DevBus | 使用: CSR | 不涉及 | 不涉及 | 关联对应PCIeDevice对象的DevBus | 不涉及 | 不涉及 | 不涉及 | |
| DevDevice | 使用: CSR | 不涉及 | 不涉及 | 关联对应PCIeDevice对象的DevDevice | 不涉及 | 不涉及 | 不涉及 | |
| DevFunction | 使用: CSR | 不涉及 | 不涉及 | 关联对应PCIeDevice对象的DevFunction | 不涉及 | 不涉及 | 不涉及 |
bmc.kepler.Systems.Storage.Controller.ConsistencyCheck
NAME TYPE SIGNATURE RESULT/VALUE FLAGS description
.Disable method a{ss} - - 禁用
.Enable method a{ss}qyyu - - 使能开关
.SetParameters method a{ss}qyy - - 设置参数属性
| 字段 | 说明 | 约束 | 单位 | 互斥关系 | 依赖关系 | 格式样例 | 唯一性要求 | 兼容性要求 |
|---|---|---|---|---|---|---|---|---|
| State | RAID控制器一致性校验功能状态 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| PeriodOfHours | RAID控制器一致性校验周期,单位(小时), 取值范围[1:1440] | 不涉及 | 小时 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| Rate | RAID控制器一致性校验速率 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| AutoRepairEnabled | RAID控制器一致性校验自修复开关 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| RunningStatus | RAID控制器一致性校验状态 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| TotalVolumeCounts | RAID控制器一致性校验需要校验的总数量 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| CompletedVolumeCounts | RAID控制器一致性校验运行已经完成的数量 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| DelayToStart | RAID控制器一致性校验任务的等待开始时间,取值范围[0:24],时间单位:h | 不涉及 | 小时 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| Rate | RAID控制器一致性校验速率 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSuppor | 不涉及 | 不涉及 | 不涉及 |
bmc.kepler.Systems.Storage.Controller.VolumeManage
NAME TYPE SIGNATURE RESULT/VALUE FLAGS description
.CreateCachecadeVolume method a{ss}ayysyquyqy u - 创建cachecade逻辑盘
.CreateVolumeInExisingtArray method a{ss}qyyysuyyyyyyyyy u - 在现有阵列上创建逻辑盘
.CreateVolumeInNewArray method a{ss}ayyysuyyyyyyyyy u - 在新的阵列上创建逻辑盘
.DeleteVolume method a{ss}q u - 删除逻辑盘属性
| 字段 | 说明 | 约束 | 单位 | 互斥关系 | 依赖关系 | 格式样例 | 唯一性要求 | 兼容性要求 |
|---|---|---|---|---|---|---|---|---|
| CreateVolumeSupported | 控制器是否支持创建逻辑盘 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| SupportedReadPolicyList | 支持的逻辑盘读策略列表 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| DefaultReadPolicy | 默认的逻辑盘读策略 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| ReadPolicyWritable | 支持修改逻辑盘读策略 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| SupportedWritePolicyList | 支持的逻辑盘写策略列表 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| DefaultWritePolicy | 默认的逻辑盘写策略 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| WritePolicyWritable | 支持修改逻辑盘写策略 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| SupportedIOPolicyList | 支持的逻辑盘IO策略列表 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| DefaultIOPolicy | 默认的逻辑盘IO策略 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| IOPolicyWritable | 支持修改逻辑盘IO策略 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| SupportedAccessPolicyList | 支持的逻辑盘访问策略列表 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| DefaultAccessPolicy | 默认的逻辑盘访问策略 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| AccessPolicyWritable | 支持修改逻辑盘访问策略 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| SupportedDriveCachePolicyList | 支持的逻辑盘硬盘缓存策略列表 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| DefaultDriveCachePolicy | 默认的逻辑盘硬盘缓存策略 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| DriveCachePolicyWritable | 支持修改逻辑盘硬盘缓存策略 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
bmc.kepler.Systems.Storage.Controller.Driver
属性
| 字段 | 说明 | 约束 | 单位 | 互斥关系 | 依赖关系 | 格式样例 | 唯一性要求 | 兼容性要求 |
|---|---|---|---|---|---|---|---|---|
| Name | 控制器驱动器名称 | 不涉及 | 不涉及 | 不涉及 | 依赖ibma | 不涉及 | 不涉及 | 不涉及 |
| Version | 控制器驱动器版本 | 不涉及 | 不涉及 | 不涉及 | 依赖ibma | 不涉及 | 不涉及 | 不涉及 |
bmc.kepler.Systems.Storage.Controller.Chip
属性
| 字段 | 说明 | 约束 | 单位 | 互斥关系 | 依赖关系 | 格式样例 | 唯一性要求 | 兼容性要求 |
|---|---|---|---|---|---|---|---|---|
| Model | raid卡芯片型号 | 使用: CSR | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| ChipManufacturer | raid卡芯片厂商 | 使用: CSR | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
bmc.kepler.Systems.Storage.Controller.ControllerStatus
属性
| 字段 | 说明 | 约束 | 单位 | 互斥关系 | 依赖关系 | 格式样例 | 唯一性要求 | 兼容性要求 |
|---|---|---|---|---|---|---|---|---|
| FaultCode | RAID卡的故障码,每一位代表一种故障 | 使用: CSR | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| CommunicationLoss | 通信丢失 | 使用: CSR | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| Health | RAID卡的健康状态 | 使用: CSR | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| FaultCodeByBios | 通过Bios设置的RAID卡故障码 | 使用: CSR, ResetPer | 不涉及 | 不涉及 | 通过IPMI命令设置 | 不涉及 | 不涉及 | 不涉及 |
bmc.kepler.Systems.Storage.Controller.BatteryStatus
属性
| 字段 | 说明 | 约束 | 单位 | 互斥关系 | 依赖关系 | 格式样例 | 唯一性要求 | 兼容性要求 |
|---|---|---|---|---|---|---|---|---|
| BatteryPresence | RAID卡BBU的在位状态 | 默认: 255; 使用: CSR, ResetPer | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| BatteryFault | BBU故障 | 默认: 0; 使用: CSR | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| BatteryHealth | BBU健康状态 | 默认: 0; 使用: CSR | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| TemperatureCelsius | BBU温度 | 使用: CSR | °C | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
SASPhy对外接口
bmc.kepler.Systems.Storage.PhyError (SASPhy)
属性
| 字段 | 说明 | 约束 | 单位 | 互斥关系 | 依赖关系 | 格式样例 | 唯一性要求 | 兼容性要求 |
|---|---|---|---|---|---|---|---|---|
| PhyId | PHY误码Id | 使用: CSR | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 每个RAID卡下唯一 | 不涉及 |
| InvalidDwordCount | 无效DWORD数 | 使用: CSR | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| LossDwordSyncCount | 丢失DWORD同步数 | 使用: CSR | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| PhyResetProblemCount | PHY重启问题数 | 使用: CSR | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| RunningDisparityErrorCount | 连续不均衡性错误数 | 使用: CSR | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
阵列对外接口
bmc.kepler.Systems.Storage.DiskArray
属性
| 字段 | 说明 | 约束 | 单位 | 互斥关系 | 依赖关系 | 格式样例 | 唯一性要求 | 兼容性要求 |
|---|---|---|---|---|---|---|---|---|
| Id | RAID组的序号,由RAID卡读到 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 每个RAID卡下唯一 | 不涉及 |
| UsedSpaceMiB | RAID组的已使用的空间 | 应小于TotalFreeSpaceMiB | MiB | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| TotalFreeSpaceMiB | RAID组的空闲空间 | 不涉及 | MiB | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| FreeBlocksSpaceMiB | RAID组的空闲块容量列表 | 应小于TotalFreeSpaceMiB | MiB | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| RefVolumes | RAID组的关联逻辑盘列表,例:[145, 144] | 与Volume的RefDiskArrayList对应 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| RefDrives | RAID组的关联物理盘列表,例:[Disk0, Disk1] | 与Drive的RefDiskArrayId对应 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| DriveNumPerSpan | 驱动器阵列中每个Span的成员的个数 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| RAIDType | 驱动器阵列组成的虚拟磁盘的级别 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| AverageDriveFreeSpaceMiB | 指定驱动器阵列中每个驱动器的剩余容量 | 不涉及 | MiB | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| RefControllerId | RAID组关联的控制器ID | 对应的Id的RAID卡存在 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| RefPDSlots | 关联的物理盘槽位(RAID卡上报的) | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| RefPDEnclosures | 关联的物理盘框位(RAID卡上报的) | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
超级电容对外接口
bmc.kepler.Systems.Storage.Battery
属性
| 字段 | 说明 | 约束 | 单位 | 互斥关系 | 依赖关系 | 格式样例 | 唯一性要求 | 兼容性要求 |
|---|---|---|---|---|---|---|---|---|
| Name | BBU名称 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| State | BBU在位信息 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| Fault | BBU故障标志 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| HealthStatus | bit0:电压过低,bit1:需要更换BBU,bit2:电量校准失败,bit3:电量校准超时,bit4:预故障,bit5:剩余容量低,bit6:没有用于缓存卸载的空间,others:resrved | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| Health | BBU健康状态 | 不涉及 | 不涉及 | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
| TemperatureCelsius | BBU温度 | 不涉及 | °C | 不涉及 | 依赖OOBSupport为1 | 不涉及 | 不涉及 | 不涉及 |
属性
| 字段 | 说明 | 约束 | 单位 | 互斥关系 | 依赖关系 | 格式样例 | 唯一性要求 | 兼容性要求 |
|---|---|---|---|---|---|---|---|---|
| MaxTemperatureCelsius | 驱动器最高温度,用于风扇调速 | 不涉及 | °C | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| LogAutoCollectEnable | 硬盘日志自动收集开启状态 | 默认: true; 使用: PoweroffPer | 不涉及 | 不涉及 | 不涉及 | true | 不涉及 | 不涉及 |
| LogAutoCollectInterval | 硬盘日志自动收集周期 | 默认: 24; 使用: PoweroffPer | 不涉及 | 不涉及 | LogAutoCollectEnable为true才有效 | 24 | 不涉及 | 不涉及 |
硬盘对外接口
bmc.kepler.Systems.Storage.Drives
NAME TYPE SIGNATURE RESULT/VALUE FLAGS description
.CollectIODeteriorationDiagInfo method a{ss} u - 收集硬盘IO信息
.GetDrivesSubHealthDiagInfo method a{ss}y aa{ua{ss}} - 收集硬盘亚健康诊断信息
.SetDriveSubHealthDiagResult method a{ss}sq - - 设置硬盘亚健康诊断结果bmc.kepler.Systems.Storage.Drive
NAME TYPE SIGNATURE RESULT/VALUE FLAGS description
.CryptoErase method a{ss} - - 加密擦除
.SetBootPriority method a{ss}y - - 设置启动优先级
.SetFirmwareStatus method a{ss}y - - 设置固件状态
.SetHotspareType method a{ss}yq - - 设置热备盘
.SetLocationIndicatorState method a{ss}y - - 设置定位灯状态
.SetPatrolState method a{ss}y - - 设置巡检状态属性
| 字段 | 说明 | 约束 | 单位 | 互斥关系 | 依赖关系 | 格式样例 | 唯一性要求 | 兼容性要求 |
|---|---|---|---|---|---|---|---|---|
| NodeId | 资源的唯一Id | 使用: CSR | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| Id | 硬盘Id,CSR配置 由软件更新 | 使用: CSR | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 主键 | 不涉及 |
| SlotNumber | 硬盘槽位号 | 默认: 255; 使用: ResetPer | 不涉及 | 不涉及 | RAID卡定位成功后更新 | 255 | 不涉及 | 不涉及 |
| Name | 硬盘名称,Disk1等 | 使用: CSR | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| Presence | 硬盘在位状态,0不在位,1在位 | 默认: 255; 使用: CSR | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| LocateLed | 硬盘locate寄存器的值 | 使用: CSR | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| FaultLed | 硬盘fault寄存器的值 | 使用: CSR | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| EnclosureId | 硬盘所在背板的id,由控制器分配 | 默认: 65535; 使用: ResetPer | 不涉及 | 不涉及 | RAID卡定位成功后更新 | 255 | 不涉及 | 不涉及 |
| LocationIndicatorState | 硬盘定位状态,根据locate寄存器和fault寄存器判断 | 不涉及 | 不涉及 | 不涉及 | 依赖LocateLed和FaultLed | 不涉及 | 不涉及 | 不涉及 |
| CapacityMiB | 硬盘容量,以MiB为单位 | 默认: 4294967295; 使用: ResetPer | MiB | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| TemperatureCelsius | 硬盘温度,硬盘存在零下负温场景 | 默认: 255; 使用: CSR | °C | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| Model | 硬盘型号,比如MBF2300RC | 默认: N/A; 使用: ResetPer | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| Protocol | 硬盘接口类型:0:Unknown,1:parallel.SCSI,2:SAS,3:SATA,4:FC | 默认: 255; 使用: ResetPer | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| CapableSpeedGbs | 硬盘接口速率(最大速率) | 默认: 255; 使用: ResetPer | Gb/s | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| NegotiatedSpeedGbs | 硬盘连接速率(协商速率) | 默认: 255; 使用: ResetPer | Gb/s | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| MediaType | 硬盘介质类型:0:HDD,1:SSD,2:SSM,255:Unknown | 默认: 255; 使用: ResetPer | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| FirmwareStatus | 硬盘固件状态 | RAID卡管理的盘才有效 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| SerialNumber | 硬盘序列号 | 默认: N/A; 使用: CSR, ResetPer | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 唯一 | 不涉及 |
| Manufacturer | 硬盘厂商 | 默认: N/A; 使用: ResetPer | 不涉及 | 不涉及 | 与ManufacturerId一一对应 | 不涉及 | 不涉及 | 不涉及 |
| PowerOnHours | 硬盘通电时间 | 不涉及 | 小时 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| Revision | 硬盘固件版本 | 默认: N/A; 使用: ResetPer | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| RotationSpeedRPM | 硬盘转速 | HDD盘该属性才有效 | RPM | 不涉及 | 依赖MediaType | 不涉及 | 不涉及 | 不涉及 |
| BlockSizeBytes | 硬盘块大小 | 不涉及 | Bytes | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| SASAddress1 | 硬盘SAS地址的第一部分 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| SASAddress2 | 硬盘SAS地址的第二部分 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| Location | 表示当前盘的物理位置 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| PredictedMediaLifeLeftPercent | 硬盘剩余磨损率,即剩余擦写次数的百分比(0-100,或者255表示无效) | SSD盘才有效 | % | 不涉及 | 依赖MediaType | 255 | 不涉及 | 不涉及 |
| PredictedFailCount | 硬盘预故障错误统计 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| MediaErrorCount | 硬盘媒介错误统计 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| OtherErrorCount | 硬盘其他错误统计 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| PatrolState | 硬盘巡检状态:0:没有巡检或巡检结束,1:巡检中,255:未知 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| PowerState | 硬件电源状态 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| RebuildState | 硬盘重构状态:0:没有重建或重建结束,1:重建中,255:未知 | RAID卡管理的盘才有效 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| RebuildProgress | 硬盘重构进度 | RAID卡管理的盘才有效 | 不涉及 | 不涉及 | RebuildState为1才有效 | 不涉及 | 不涉及 | 不涉及 |
| BootPriority | 硬盘启动盘优先级 | RAID卡管理的盘才有效 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| HotspareType | 硬盘热备状态 | RAID卡管理的盘才有效 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| RefControllerId | 关联的控制器Id | RAID卡管理的盘才有效 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| RefVolumeList | 关联的逻辑盘Id列表 | RAID卡管理的盘才有效 | 不涉及 | 不涉及 | 与Volume的RefDriveList对应 | 不涉及 | 不涉及 | 不涉及 |
| RefDiskArrayId | 关联的硬盘阵列Id | RAID卡管理的盘才有效 | 不涉及 | 不涉及 | 与DiskArray的RefDrives对应 | 不涉及 | 不涉及 | 不涉及 |
| ManufacturerId | 厂商Id | 不涉及 | 不涉及 | 不涉及 | 与Manufacturer一一对应 | 不涉及 | 不涉及 | 不涉及 |
| PCIeLinkSpeed | PCIe单个通道的速率 | NVMe盘才有效 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| ResourceId | 表示当前盘的资源归属 | NVMe盘才有效 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| PassThrough | 硬盘是否直通,1:是,0:否 | 默认: 255; 使用: CSR | 不涉及 | 不涉及 | CSR中关联寄存器 | 不涉及 | 不涉及 | 不涉及 |
| HddBackplaneStartSlot | 所在硬盘背板的起始槽位 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| RelativeSlot | 相对槽位 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 每块硬盘背板下唯一 | 不涉及 |
| LinkFault | 链路状态 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| SetLocateLed | 用于点硬盘定位灯 | 关联对应可写寄存器 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| SetFaultLed | 用于点硬盘故障灯 | 关联对应可写寄存器 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| CommandTimeoutTimes | 硬盘IO超时次数 | 默认: 0; 使用: PoweroffPer | 不涉及 | RAID卡管理的盘才有效 | RAID卡管理的盘才有效 | 不涉及 | 不涉及 | 不涉及 |
| UnexpectedSenseTimes | 预期之外的错误次数 | 默认: 0; 使用: PoweroffPer | 不涉及 | 不涉及 | RAID卡管理的盘才有效 | 不涉及 | 不涉及 | 不涉及 |
bmc.kepler.Systems.Storage.Drive.DriveStatus
属性
| 字段 | 说明 | 约束 | 单位 | 互斥关系 | 依赖关系 | 格式样例 | 唯一性要求 | 兼容性要求 |
|---|---|---|---|---|---|---|---|---|
| Missing | 硬盘丢失标志 | 默认: 0; 使用: CSR | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| PredictiveFailure | 预故障标志 | 默认: 0; 使用: CSR | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| InAFailedArray | 是否处于一个故障的硬盘阵列。0:否,1:是 | RAID组下的盘才有效 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| CapacityError | 硬盘容量是否异常 | 默认: false; 使用: CSR | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| FirmwareStatusError | 硬盘固件状态是否异常 | 默认: false; 使用: CSR | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| Failure | 硬盘是否故障 | 默认: false; 使用: CSR | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| Health | 硬盘健康状态 | 使用: CSR | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
bmc.kepler.Systems.Storage.Drive.DriveSubHealth
属性
| 字段 | 说明 | 约束 | 单位 | 互斥关系 | 依赖关系 | 格式样例 | 唯一性要求 | 兼容性要求 |
|---|---|---|---|---|---|---|---|---|
| EstimatedRemainingLifespanInsufficient | 剩余动态预估寿命不足 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| SLCSpareBlockPercentage | 非用户区空闲块百分比 | 默认: 255; 使用: CSR | % | 不涉及 | SSD盘才有效 | 不涉及 | 不涉及 | 不涉及 |
| TLCSpareBlockPercentage | 用户区空闲块百分比 | 默认: 255; 使用: CSR | % | 不涉及 | SSD盘才有效 | 不涉及 | 不涉及 | 不涉及 |
| EstimatedRemainingLifespan | 剩余动态预估寿命 | 默认: 4294967295; 使用: CSR, PoweroffPer | 不涉及 | 不涉及 | SSD盘才有效 | 不涉及 | 不涉及 | 不涉及 |
| IODeteriorationHealthCode | 硬盘IO性能健康码 | 默认: 0; PoweroffPer | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
bmc.kepler.Systems.Storage.Drive.NVMe
属性
| 字段 | 说明 | 约束 | 单位 | 互斥关系 | 依赖关系 | 格式样例 | 唯一性要求 | 兼容性要求 |
|---|---|---|---|---|---|---|---|---|
| LifeUsedPercentage | 硬盘已使用寿命百分比 | 不涉及 | % | 不涉及 | NVMe盘才有效 | 不涉及 | 不涉及 | 不涉及 |
bmc.kepler.Systems.Storage.Drive.NVMe.SMART
属性
| 字段 | 说明 | 约束 | 单位 | 互斥关系 | 依赖关系 | 格式样例 | 唯一性要求 | 兼容性要求 |
|---|---|---|---|---|---|---|---|---|
| AvailableSpare | 驱动器可用冗余空间的百分比(0到100) | 不涉及 | % | 不涉及 | NVMe盘才有效 | 不涉及 | 不涉及 | 不涉及 |
| CriticalWarning | 控制器状态的重要的告警,bit0:表示冗余空间小于设定的阈值,bit1:表示温度超过或低于一个重要的阈值,bit2:表示由于重要的media错误,器件的可靠性已经降低,bit3:该介质已经被置为只读模式,bit4:表示控制器的易失性器件fail,该域仅在控制器内部存在易失性器件时有效,bit5-7:保留 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| UsedPercentage | 用户实际使用和厂家设定的器件寿命的百分比(0到100) | 不涉及 | % | 不涉及 | NVMe盘才有效 | 不涉及 | 不涉及 | 不涉及 |
| Status | SMART告警状态 | 不涉及 | 不涉及 | 不涉及 | 依赖CriticalWarning | 不涉及 | 不涉及 | 不涉及 |
逻辑盘对外接口
bmc.kepler.Systems.Storage.Volume
NAME TYPE SIGNATURE RESULT/VALUE FLAGS description
.CancelForegroundInit method a{ss} u - 取消前台初始化
.SetAccelerator method a{ss}y - - 设置加速方法
.SetAccessPolicy method a{ss}y - - 设置获取策略
.SetBGIEnable method a{ss}y - - 设置bgi使能
.SetBootable method a{ss}y - - 设置启动优先级
.SetCachecadeEnable method a{ss}y - - 设置cache使能
.SetDiskCachePolicy method a{ss}y - - 设置逻辑盘cache策略
.SetIOPolicy method a{ss}y - - 设置IO策略
.SetName method a{ss}s - - 设置名称
.SetReadPolicy method a{ss}y - - 设置读策略
.SetWritePolicy method a{ss}y - - 设置写策略
.StartForegroundInit method a{ss}y u - 开始前台初始化属性
| 字段 | 说明 | 约束 | 单位 | 互斥关系 | 依赖关系 | 格式样例 | 唯一性要求 | 兼容性要求 |
|---|---|---|---|---|---|---|---|---|
| Id | 逻辑盘的Id | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 每个RAID卡下唯一 | 不涉及 |
| VolumeName | 逻辑盘的名称 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| OptimumIOSizeBytes | 逻辑盘的条带大小 | 不涉及 | Byte | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| DefaultReadPolicy | 逻辑盘的默认读策略 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| DefaultWritePolicy | 逻辑盘的默认写策略 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| State | 逻辑盘的状态 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| RAIDType | 逻辑盘的Raid级别 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 依赖Controller的SupportRAIDType | 不涉及 | 不涉及 |
| CapacityBytes | 逻辑盘的容量 | 不涉及 | Byte | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| DriveCachePolicy | 逻辑盘的硬盘缓存策略 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| CurrentForegroundInitState | 逻辑盘当前是否在FGI中 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| ForegroundInitProgress | 逻辑盘当前的FGI进度,百分比 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 依赖CurrentForegroundInitState | 不涉及 | 不涉及 |
| CurrentReadPolicy | 逻辑盘当前读策略 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| CurrentWritePolicy | 逻辑盘当前写策略 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| BootPriority | 启动优先级 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 依赖BootEnable | 不涉及 | 不涉及 |
| BootEnable | 是否为启动盘 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| OSDriveName | 逻辑盘对应的OS盘符 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| BGIEnable | 后台初始化使能状态 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| SSDCachecadeVolume | 是否为CacheCade逻辑盘 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| SSDCachingEnable | 是否可使用CacheCade逻辑盘 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| AssociatedVolumes | 所关联的普通逻辑盘的访问路径 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| AssociatedCacheCadeVolume | 所关联的CacheCade逻辑盘的访问路径 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| DefaultCachePolicy | 逻辑盘默认的Cache策略 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| AccessPolicy | 逻辑盘的访问策略 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| CurrentCachePolicy | 逻辑盘当前Cache策略 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| CacheLineSizeKiB | 缓存行大小 | 不涉及 | KiB | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| AccelerationMethod | 加速方法 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| RebuildProgress | 指定逻辑盘数据重建进度 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 依赖RebuildState为1 | 不涉及 | 不涉及 |
| InitializationMode | 初始化模式 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| RebuildState | 指定逻辑盘数据重建状态 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| RefControllerId | 指定逻辑盘所属控制器id | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 为所关联的RAID卡Id | 不涉及 | 不涉及 |
| RefDriveList | 指定逻辑盘关联的物理盘列表 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 依赖Drive的RefVolumeList | 不涉及 | 不涉及 |
| RefDiskArrayList | 指定逻辑盘关联的阵列列表 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 依赖DiskArray的RefVolumeList | 不涉及 | 不涉及 |
| HotSpareDriveList | 逻辑盘关联热备盘列表 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 对应硬盘的HotSpare不为0 | 不涉及 | 不涉及 |
| SpanCount | 逻辑盘包含的子组数 | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 与NumDrivePerSpan可得到逻辑盘下的物理盘总数 | 不涉及 | 不涉及 |
| MaxResizableSizeBytes | 逻辑盘的最大可设置的容量 | 不涉及 | Byte | 不涉及 | 不涉及 | 不涉及 | 不涉及 | 不涉及 |
| NumDrivePerSpan | 不涉及 | 不涉及 | 不涉及 | 不涉及 | SpanCount | 不涉及 | 不涉及 | 不涉及 |
IPMI命令
- 具体详细请参考:mds/ipmi.json
└─/bmc
└─/bmc/kepler
├─/bmc/kepler/IpmiCmds
│ ├─/bmc/kepler/IpmiCmds/30
│ │ ├─/bmc/kepler/IpmiCmds/30/92
│ │ │ └─/bmc/kepler/IpmiCmds/30/92/SetRaidFaultStatus #设置raid卡硬件故障
│ │ └─/bmc/kepler/IpmiCmds/30/93
│ │ ├─/bmc/kepler/IpmiCmds/30/93/CreateCachecadeLogicalDrive #创建CacheCade逻辑盘
│ │ ├─/bmc/kepler/IpmiCmds/30/93/CreateLogicalDriveOnExistedArray #在已有的DiskArray上创建逻辑盘
│ │ ├─/bmc/kepler/IpmiCmds/30/93/CreateLogicalDriveOnNewArray #在新的DiskArray上创建逻辑盘
│ │ ├─/bmc/kepler/IpmiCmds/30/93/DeleteLogicalDrive #删除指定的逻辑盘
│ │ ├─/bmc/kepler/IpmiCmds/30/93/GetArrayInfo #获取指定RAID控制器的Disk Array的信息
│ │ ├─/bmc/kepler/IpmiCmds/30/93/GetArrayLds #获取指定Array上的逻辑盘ID列表
│ │ ├─/bmc/kepler/IpmiCmds/30/93/GetArrayLdsEx #获取指定Array上的逻辑盘ID列表, ID是16bit数据#
│ │ ├─/bmc/kepler/IpmiCmds/30/93/GetArrayList #查询指定RAID控制器下的DiskArray ID列表
│ │ ├─/bmc/kepler/IpmiCmds/30/93/GetArrayPds #获取指定Array的物理盘ID列表
│ │ ├─/bmc/kepler/IpmiCmds/30/93/GetCachecadeAssociatedLds #查询CacheCade逻辑盘关联的普通逻辑盘ID列表
│ │ ├─/bmc/kepler/IpmiCmds/30/93/GetCachecadeAssociatedLdsEx #查询CacheCade逻辑盘关联的普通逻辑盘ID列表(ID是16bit数据)
│ │ ├─/bmc/kepler/IpmiCmds/30/93/GetControllerCapability #获取RAID带外管理能力
│ │ ├─/bmc/kepler/IpmiCmds/30/93/GetControllerFwVersion #查询RAID控制器的Firmware版本信息
│ │ ├─/bmc/kepler/IpmiCmds/30/93/GetControllerInfo #查询RAID控制器的配置信息
│ │ ├─/bmc/kepler/IpmiCmds/30/93/GetControllerList #查询RAID控制器的ID列表
│ │ ├─/bmc/kepler/IpmiCmds/30/93/GetControllerNvdataVersion #查询RAID控制器的NVDATA版本信息
│ │ ├─/bmc/kepler/IpmiCmds/30/93/GetControllerPds #查询指定RAID控制器管理的物理盘ID列表
│ │ ├─/bmc/kepler/IpmiCmds/30/93/GetDiskManufacturer #查询指定物理盘厂商
│ │ ├─/bmc/kepler/IpmiCmds/30/93/GetDiskSilk #查询指定硬盘丝印信息
│ │ ├─/bmc/kepler/IpmiCmds/30/93/GetHddPwrStatus #查询硬盘的通电状态
│ │ ├─/bmc/kepler/IpmiCmds/30/93/GetLogicalDriveList #查询RAID控制器下的逻辑盘ID列表
│ │ ├─/bmc/kepler/IpmiCmds/30/93/GetLogicalDriveListEx #查询RAID控制器下的逻辑盘ID列表(ID为16bit数据)
│ │ ├─/bmc/kepler/IpmiCmds/30/93/GetLogicalDrivePds #查询指定逻辑盘的物理成员盘ID列表
│ │ ├─/bmc/kepler/IpmiCmds/30/93/GetPhysicalDriveInfo #查询指定逻辑盘的基本信息
│ │ ├─/bmc/kepler/IpmiCmds/30/93/GetPhysicalDriveLedStatus #查询硬盘灯状态
│ │ ├─/bmc/kepler/IpmiCmds/30/93/GetPhysicalDriveLocation #查询指定物理盘的位置信息(丝印)
│ │ ├─/bmc/kepler/IpmiCmds/30/93/GetRaidControllerTemp #查询raid控制器温度
│ │ ├─/bmc/kepler/IpmiCmds/30/93/SetControllerCopyback #修改指定RAID控制器是否启用Copyback功能
│ │ ├─/bmc/kepler/IpmiCmds/30/93/SetControllerJbod #设置指定RAID控制器是否开启JBOD功能
│ │ ├─/bmc/kepler/IpmiCmds/30/93/SetControllerOutofband #设置指定RIAD控制器是否支持带外管理
│ │ ├─/bmc/kepler/IpmiCmds/30/93/SetControllerRestoreSettings #恢复指定RAID控制器到初始设置
│ │ ├─/bmc/kepler/IpmiCmds/30/93/SetControllerSmarterCopyback #设置指定RAID控制器在检测到物理盘SMART错误之后是否自动进行Copyback
│ │ ├─/bmc/kepler/IpmiCmds/30/93/SetFirmwareStatus #设置固件状态
│ │ ├─/bmc/kepler/IpmiCmds/30/93/SetHotspareType #设置设备盘类型
│ │ ├─/bmc/kepler/IpmiCmds/30/93/SetLocationIndicatorState #设置定位灯状态
│ │ ├─/bmc/kepler/IpmiCmds/30/93/SetLogicDriveBootable #设置指定逻辑盘为启动盘
│ │ ├─/bmc/kepler/IpmiCmds/30/93/SetLogicDriveRp #设置指定逻辑盘的读策略
│ │ ├─/bmc/kepler/IpmiCmds/30/93/SetLogicDriveWp #设置指定逻辑盘的写策略
│ │ ├─/bmc/kepler/IpmiCmds/30/93/SetLogicalDriveAP #设置指定逻辑盘的访问策略
│ │ ├─/bmc/kepler/IpmiCmds/30/93/SetLogicalDriveBGI #设置指定逻辑盘的BGI使能状态
│ │ ├─/bmc/kepler/IpmiCmds/30/93/SetLogicalDriveCachecade #设置指定逻辑盘是否关联CacheCade逻辑盘
│ │ ├─/bmc/kepler/IpmiCmds/30/93/SetLogicalDriveDCP #设置指定逻辑盘的Disk缓存策略
│ │ ├─/bmc/kepler/IpmiCmds/30/93/SetLogicalDriveIOP #设置指定逻辑盘的IO策略
│ │ ├─/bmc/kepler/IpmiCmds/30/93/SetLogicalDriveName #设置逻辑盘名称
│ │ └─/bmc/kepler/IpmiCmds/30/93/SetPdLogCollect #主动触发硬盘日志收集
│ └─/bmc/kepler/IpmiCmds/38
│ └─/bmc/kepler/IpmiCmds/38/13
│ ├─/bmc/kepler/IpmiCmds/38/13/GetNvmeInfo #获取nvme盘信息
│ └─/bmc/kepler/IpmiCmds/38/13/GetNvmeNum #获取nvme盘数量配置介绍
配置NVME盘
1.在硬盘背板上面配置"Connector_ComVPDConnect_x"对象,关键字段:"Bom":"14140224", "Id":"VPD", "AuxId":"0",固定配置。 2.跟据Bom+Id+AuxId组合找到对应的文件14140224_VPD_0.sr。 3.然后框架会进一步加载14140224_VPD_0.sr文件中定义2个对象:
- "Connector_ComVPD"对象,关键字段:"Bom":"14140224","Id":"PROTOCOL","AuxId":"255"。
- "VirtualVPDConnect"对象,关键字段:"RefVPDChip":"#/Chip_Virtual_SSD","RefConnector":"#/Connector_ComVPD"。
4.Storage组件会通过"VirtualVPDConnect"对象从NVME盘中读取协议信息并更新到"Connector_ComVPD"对象的"AuxId"上,用于表示NVME支持的具体协议。
- 支持协议有:NVME_VPD_PROTOCOL_NVME_MI = 0, NVME_VPD_PROTOCOL_SSD_FORM_FACTOR = 1, SAMSUNG_NVME_VPD_PROTOCOL_SSD_FORM_FACTOR = 2
5.更新之后,框架会进一步利用Bom+Id+AuxId组合来加载具体的协议文件,比如:14140224_PROTOCOL_0.sr,14140224_PROTOCOL_0_soft.sr 6.在14140224_PROTOCOL_0.sr中定义有具体的Nvme_1对象,也就是对应Storage的c_nvme对象。