storage
更新时间: 2025/12/31
在Gitcode上查看源码

功能简介

  1. Storage模块是独立组件管理存储组件,对内提供资源协作接口功能接口,目前storage的版本信息在manifest/hardware子系统中
  2. 信息获取:支持从带外或通过BMA获取控制器、硬盘、超级电容、逻辑盘、RAID组信息
  3. 对外功能:支持创建、删除、设置逻辑盘;支持设置控制器功能;支持点硬盘定位灯
  4. 故障检测:支持控制器健康状态检测、硬盘健康状态检测、逻辑盘健康状态检测以及超级电容健康状态检测
  5. 支持RAID卡:当前支持1880RAID卡、博通RAID卡和PMC RAID卡

目录结构

shell
├── 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

属性

字段说明约束单位互斥关系依赖关系格式样例唯一性要求兼容性要求
PhyErrorEnabledPHY误码诊断使能不涉及不涉及不涉及不涉及不涉及不涉及不涉及
PhyErrorIntervalPHY误码数据采集的时间间隔,单位秒默认: 1800不涉及PhyErrorEnabled为True时才生效1800不涉及不涉及
PhyErrorMaxRecordPHY误码在一个OS启动周期内记录的最大条数(有增长的记录)默认: 20不涉及PhyErrorEnabled为True时才生效20不涉及不涉及
PhyErrorThresholdPHY误码单位时间增长过快的判断门限值默认: 100dwordcount/s不涉及PhyErrorEnabled为True时才生效100不涉及不涉及
MaxPhyErrorLogFileRotationCountPHY误码循环记录的最大文件数默认: 10不涉及PhyErrorEnabled为True时才生效10不涉及不涉及
PhyErrorSelUnlimitFlagPHY误码是否允许产生多个SEL告警事件默认: false不涉及不涉及不涉及false不涉及不涉及

控制器对外接口

bmc.kepler.Systems.Storage.Controller

shell
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不涉及不涉及不涉及
HBADriveWriteCachePolicyHBA模式下硬盘的写缓存策略:Enabled,Disabled,Default不涉及不涉及不涉及依赖OOBSupport为1不涉及不涉及不涉及
ConfiguredDriveWriteCachePolicyRAID组成员盘的写缓存策略:Enabled,Disabled,Default不涉及不涉及不涉及依赖OOBSupport为1不涉及不涉及不涉及
SupportedRAIDTypesRAID级别不涉及不涉及不涉及依赖OOBSupport为1不涉及不涉及不涉及
SmarterCopyBackStateRAID控制器在检测到物理盘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为1255不涉及不涉及
JBODState控制器的JBOD功能状态:false,true不涉及不涉及不涉及依赖OOBSupport为1不涉及不涉及不涉及
CachePinnedState控制器的Cache Pinned开关不涉及不涉及不涉及依赖OOBSupport为1不涉及不涉及不涉及
DDREccCountDDR ECC计数不涉及不涉及不涉及依赖OOBSupport为1不涉及不涉及不涉及
WorkMode控制器的工作模式, 包括RAID、HBA、JBOD和MIXED四种不涉及不涉及不涉及依赖OOBSupport为1不涉及不涉及不涉及
RefDrives控制器下挂载的所有硬盘名不涉及不涉及不涉及依赖OOBSupport为1进行点灯流程,与Drive对象的RefControllerId对应不涉及不涉及不涉及
BOMNumberBOM编码使用: 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

shell
NAME                                                   TYPE      SIGNATURE RESULT/VALUE FLAGS  description
.Disable                                               method    a{ss}     -            -      禁用
.Enable                                                method    a{ss}qyyu -            -      使能开关
.SetParameters                                         method    a{ss}qyy  -            -      设置参数

属性

字段说明约束单位互斥关系依赖关系格式样例唯一性要求兼容性要求
StateRAID控制器一致性校验功能状态不涉及不涉及不涉及依赖OOBSupport为1不涉及不涉及不涉及
PeriodOfHoursRAID控制器一致性校验周期,单位(小时), 取值范围[1:1440]不涉及小时不涉及依赖OOBSupport为1不涉及不涉及不涉及
RateRAID控制器一致性校验速率不涉及不涉及不涉及依赖OOBSupport为1不涉及不涉及不涉及
AutoRepairEnabledRAID控制器一致性校验自修复开关不涉及不涉及不涉及依赖OOBSupport为1不涉及不涉及不涉及
RunningStatusRAID控制器一致性校验状态不涉及不涉及不涉及依赖OOBSupport为1不涉及不涉及不涉及
TotalVolumeCountsRAID控制器一致性校验需要校验的总数量不涉及不涉及不涉及依赖OOBSupport为1不涉及不涉及不涉及
CompletedVolumeCountsRAID控制器一致性校验运行已经完成的数量不涉及不涉及不涉及依赖OOBSupport为1不涉及不涉及不涉及
DelayToStartRAID控制器一致性校验任务的等待开始时间,取值范围[0:24],时间单位:h不涉及小时不涉及依赖OOBSupport为1不涉及不涉及不涉及
RateRAID控制器一致性校验速率不涉及不涉及不涉及依赖OOBSuppor不涉及不涉及不涉及

bmc.kepler.Systems.Storage.Controller.VolumeManage

shell
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

属性

字段说明约束单位互斥关系依赖关系格式样例唯一性要求兼容性要求
Modelraid卡芯片型号使用: CSR不涉及不涉及依赖OOBSupport为1不涉及不涉及不涉及
ChipManufacturerraid卡芯片厂商使用: CSR不涉及不涉及依赖OOBSupport为1不涉及不涉及不涉及

bmc.kepler.Systems.Storage.Controller.ControllerStatus

属性

字段说明约束单位互斥关系依赖关系格式样例唯一性要求兼容性要求
FaultCodeRAID卡的故障码,每一位代表一种故障使用: CSR不涉及不涉及依赖OOBSupport为1不涉及不涉及不涉及
CommunicationLoss通信丢失使用: CSR不涉及不涉及依赖OOBSupport为1不涉及不涉及不涉及
HealthRAID卡的健康状态使用: CSR不涉及不涉及依赖OOBSupport为1不涉及不涉及不涉及
FaultCodeByBios通过Bios设置的RAID卡故障码使用: CSR, ResetPer不涉及不涉及通过IPMI命令设置不涉及不涉及不涉及

bmc.kepler.Systems.Storage.Controller.BatteryStatus

属性

字段说明约束单位互斥关系依赖关系格式样例唯一性要求兼容性要求
BatteryPresenceRAID卡BBU的在位状态默认: 255; 使用: CSR, ResetPer不涉及不涉及依赖OOBSupport为1不涉及不涉及不涉及
BatteryFaultBBU故障默认: 0; 使用: CSR不涉及不涉及依赖OOBSupport为1不涉及不涉及不涉及
BatteryHealthBBU健康状态默认: 0; 使用: CSR不涉及不涉及依赖OOBSupport为1不涉及不涉及不涉及
TemperatureCelsiusBBU温度使用: CSR°C不涉及依赖OOBSupport为1不涉及不涉及不涉及

SASPhy对外接口

bmc.kepler.Systems.Storage.PhyError (SASPhy)

属性

字段说明约束单位互斥关系依赖关系格式样例唯一性要求兼容性要求
PhyIdPHY误码Id使用: CSR不涉及不涉及依赖OOBSupport为1不涉及每个RAID卡下唯一不涉及
InvalidDwordCount无效DWORD数使用: CSR不涉及不涉及依赖OOBSupport为1不涉及不涉及不涉及
LossDwordSyncCount丢失DWORD同步数使用: CSR不涉及不涉及依赖OOBSupport为1不涉及不涉及不涉及
PhyResetProblemCountPHY重启问题数使用: CSR不涉及不涉及依赖OOBSupport为1不涉及不涉及不涉及
RunningDisparityErrorCount连续不均衡性错误数使用: CSR不涉及不涉及依赖OOBSupport为1不涉及不涉及不涉及

阵列对外接口

bmc.kepler.Systems.Storage.DiskArray

属性

字段说明约束单位互斥关系依赖关系格式样例唯一性要求兼容性要求
IdRAID组的序号,由RAID卡读到不涉及不涉及不涉及依赖OOBSupport为1不涉及每个RAID卡下唯一不涉及
UsedSpaceMiBRAID组的已使用的空间应小于TotalFreeSpaceMiBMiB不涉及依赖OOBSupport为1不涉及不涉及不涉及
TotalFreeSpaceMiBRAID组的空闲空间不涉及MiB不涉及依赖OOBSupport为1不涉及不涉及不涉及
FreeBlocksSpaceMiBRAID组的空闲块容量列表应小于TotalFreeSpaceMiBMiB不涉及依赖OOBSupport为1不涉及不涉及不涉及
RefVolumesRAID组的关联逻辑盘列表,例:[145, 144]与Volume的RefDiskArrayList对应不涉及不涉及依赖OOBSupport为1不涉及不涉及不涉及
RefDrivesRAID组的关联物理盘列表,例:[Disk0, Disk1]与Drive的RefDiskArrayId对应不涉及不涉及依赖OOBSupport为1不涉及不涉及不涉及
DriveNumPerSpan驱动器阵列中每个Span的成员的个数不涉及不涉及不涉及依赖OOBSupport为1不涉及不涉及不涉及
RAIDType驱动器阵列组成的虚拟磁盘的级别不涉及不涉及不涉及依赖OOBSupport为1不涉及不涉及不涉及
AverageDriveFreeSpaceMiB指定驱动器阵列中每个驱动器的剩余容量不涉及MiB不涉及依赖OOBSupport为1不涉及不涉及不涉及
RefControllerIdRAID组关联的控制器ID对应的Id的RAID卡存在不涉及不涉及依赖OOBSupport为1不涉及不涉及不涉及
RefPDSlots关联的物理盘槽位(RAID卡上报的)不涉及不涉及不涉及依赖OOBSupport为1不涉及不涉及不涉及
RefPDEnclosures关联的物理盘框位(RAID卡上报的)不涉及不涉及不涉及依赖OOBSupport为1不涉及不涉及不涉及

超级电容对外接口

bmc.kepler.Systems.Storage.Battery

属性

字段说明约束单位互斥关系依赖关系格式样例唯一性要求兼容性要求
NameBBU名称不涉及不涉及不涉及依赖OOBSupport为1不涉及不涉及不涉及
StateBBU在位信息不涉及不涉及不涉及依赖OOBSupport为1不涉及不涉及不涉及
FaultBBU故障标志不涉及不涉及不涉及依赖OOBSupport为1不涉及不涉及不涉及
HealthStatusbit0:电压过低,bit1:需要更换BBU,bit2:电量校准失败,bit3:电量校准超时,bit4:预故障,bit5:剩余容量低,bit6:没有用于缓存卸载的空间,others:resrved不涉及不涉及不涉及依赖OOBSupport为1不涉及不涉及不涉及
HealthBBU健康状态不涉及不涉及不涉及依赖OOBSupport为1不涉及不涉及不涉及
TemperatureCelsiusBBU温度不涉及°C不涉及依赖OOBSupport为1不涉及不涉及不涉及

属性

字段说明约束单位互斥关系依赖关系格式样例唯一性要求兼容性要求
MaxTemperatureCelsius驱动器最高温度,用于风扇调速不涉及°C不涉及不涉及不涉及不涉及不涉及
LogAutoCollectEnable硬盘日志自动收集开启状态默认: true; 使用: PoweroffPer不涉及不涉及不涉及true不涉及不涉及
LogAutoCollectInterval硬盘日志自动收集周期默认: 24; 使用: PoweroffPer不涉及不涉及LogAutoCollectEnable为true才有效24不涉及不涉及

硬盘对外接口

bmc.kepler.Systems.Storage.Drives

shell
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

shell
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; 使用: ResetPerMiB不涉及不涉及不涉及不涉及不涉及
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; 使用: ResetPerGb/s不涉及不涉及不涉及不涉及不涉及
NegotiatedSpeedGbs硬盘连接速率(协商速率)默认: 255; 使用: ResetPerGb/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盘才有效%不涉及依赖MediaType255不涉及不涉及
PredictedFailCount硬盘预故障错误统计不涉及不涉及不涉及不涉及不涉及不涉及不涉及
MediaErrorCount硬盘媒介错误统计不涉及不涉及不涉及不涉及不涉及不涉及不涉及
OtherErrorCount硬盘其他错误统计不涉及不涉及不涉及不涉及不涉及不涉及不涉及
PatrolState硬盘巡检状态:0:没有巡检或巡检结束,1:巡检中,255:未知不涉及不涉及不涉及不涉及不涉及不涉及不涉及
PowerState硬件电源状态不涉及不涉及不涉及不涉及不涉及不涉及不涉及
RebuildState硬盘重构状态:0:没有重建或重建结束,1:重建中,255:未知RAID卡管理的盘才有效不涉及不涉及不涉及不涉及不涉及不涉及
RebuildProgress硬盘重构进度RAID卡管理的盘才有效不涉及不涉及RebuildState为1才有效不涉及不涉及不涉及
BootPriority硬盘启动盘优先级RAID卡管理的盘才有效不涉及不涉及不涉及不涉及不涉及不涉及
HotspareType硬盘热备状态RAID卡管理的盘才有效不涉及不涉及不涉及不涉及不涉及不涉及
RefControllerId关联的控制器IdRAID卡管理的盘才有效不涉及不涉及不涉及不涉及不涉及不涉及
RefVolumeList关联的逻辑盘Id列表RAID卡管理的盘才有效不涉及不涉及与Volume的RefDriveList对应不涉及不涉及不涉及
RefDiskArrayId关联的硬盘阵列IdRAID卡管理的盘才有效不涉及不涉及与DiskArray的RefDrives对应不涉及不涉及不涉及
ManufacturerId厂商Id不涉及不涉及不涉及与Manufacturer一一对应不涉及不涉及不涉及
PCIeLinkSpeedPCIe单个通道的速率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盘才有效不涉及不涉及不涉及
StatusSMART告警状态不涉及不涉及不涉及依赖CriticalWarning不涉及不涉及不涉及

逻辑盘对外接口

bmc.kepler.Systems.Storage.Volume

shell
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
shell
└─/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对象。