代码仓
中
storage硬件管理
更新时间: 2024/11/30
在AtomGit上查看源码

功能简介 ​

  1. 信息获取:支持从带外或通过BMA获取控制器、硬盘、超级电容、逻辑盘、RAID组信息
  2. 对外功能:支持创建、删除、设置逻辑盘;支持设置控制器功能;支持点硬盘定位灯
  3. 故障检测:支持控制器健康状态检测、硬盘健康状态检测、逻辑盘健康状态检测以及超级电容健康状态检测
  4. 支持RAID卡:当前支持1880RAID卡。

关键特性 ​

1880Raid卡带外管理介绍 ​

(1)介绍 这1880和PMC进行带外管理,采用MCTP方式和RAID卡进行通信。首先需要正常建立起MCTP链路后才能正常进行数据更新。 (2)实现机制 MCTP组件提供相关服务,将收发信息的接口注册到Storage,需要收发信息会调用回调函数进行处理。

  • Storage注册的回调接口为:do_mctp_writeread
  • 回调函数注册流程:CMD.register_controller

对外接口 ​

控制器对外接口 ​

bmc.kepler.Systems.Storage.Controller ​

shell
NAME                                  TYPE      SIGNATURE RESULT/VALUE                             FLAGS
.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    -                                        -
.SetSmarterCopyBackState              method    a{ss}y    -                                        -
.SetWorkMode                          method    a{ss}yy   -                                        -
.DumpLog                              method    a{ss}     u                                        -

bmc.kepler.Systems.Storage.Controller.ConsistencyCheck ​

shell
NAME                                                   TYPE      SIGNATURE RESULT/VALUE FLAGS
.Disable                                               method    a{ss}     -            -
.Enable                                                method    a{ss}qyyu -            -
.SetParameters                                         method    a{ss}qyy  -            -

bmc.kepler.Systems.Storage.Controller.VolumeManage ​

shell
NAME                                               TYPE      SIGNATURE            RESULT/VALUE                             FLAGS
.CreateCachecadeVolume                             method    a{ss}ayysyquyqy      u                                        -
.CreateVolumeInExisingtArray                       method    a{ss}qyyysuyyyyyyyyy u                                        -
.CreateVolumeInNewArray                            method    a{ss}ayyysuyyyyyyyyy u                                        -
.DeleteVolume                                      method    a{ss}q               u                                        -

硬盘对外接口 ​

bmc.kepler.Systems.Storage.Drives ​

shell
NAME                                     TYPE      SIGNATURE RESULT/VALUE           FLAGS
.CollectIODeteriorationDiagInfo          method    a{ss}     u                      -
.GetDrivesIODeteriorationDiagInfo        method    a{ss}y    aa{ua{ss}}             -
.SetDriveIODeteriorationHealthCode       method    a{ss}sq   -                      -

bmc.kepler.Systems.Storage.Drive ​

shell
NAME                             TYPE      SIGNATURE RESULT/VALUE           FLAGS
.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    -                      -

逻辑盘对外接口 ​

bmc.kepler.Systems.Storage.Volume ​

shell
NAME                              TYPE      SIGNATURE RESULT/VALUE       FLAGS
.CancelForegroundInit             method    a{ss}     u                  -
.SetAccelerator                   method    a{ss}y    -                  -
.SetAccessPolicy                  method    a{ss}y    -                  -
.SetBGIEnable                     method    a{ss}y    -                  -
.SetBootable                      method    a{ss}y    -                  -
.SetCachecadeEnable               method    a{ss}y    -                  -
.SetDiskCachePolicy               method    a{ss}y    -                  -
.SetIOPolicy                      method    a{ss}y    -                  -
.SetName                          method    a{ss}s    -                  -
.SetReadPolicy                    method    a{ss}y    -                  -
.SetWritePolicy                   method    a{ss}y    -                  -
.StartForegroundInit              method    a{ss}y    u                  -

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
    │ │ └─/bmc/kepler/IpmiCmds/30/93
    │ │   ├─/bmc/kepler/IpmiCmds/30/93/CreateCachecadeLogicalDrive
    │ │   ├─/bmc/kepler/IpmiCmds/30/93/CreateLogicalDriveOnExistedArray
    │ │   ├─/bmc/kepler/IpmiCmds/30/93/CreateLogicalDriveOnNewArray
    │ │   ├─/bmc/kepler/IpmiCmds/30/93/DeleteLogicalDrive
    │ │   ├─/bmc/kepler/IpmiCmds/30/93/GetArrayInfo
    │ │   ├─/bmc/kepler/IpmiCmds/30/93/GetArrayLds
    │ │   ├─/bmc/kepler/IpmiCmds/30/93/GetArrayLdsEx
    │ │   ├─/bmc/kepler/IpmiCmds/30/93/GetArrayList
    │ │   ├─/bmc/kepler/IpmiCmds/30/93/GetArrayPds
    │ │   ├─/bmc/kepler/IpmiCmds/30/93/GetCachecadeAssociatedLds
    │ │   ├─/bmc/kepler/IpmiCmds/30/93/GetCachecadeAssociatedLdsEx
    │ │   ├─/bmc/kepler/IpmiCmds/30/93/GetControllerCapability
    │ │   ├─/bmc/kepler/IpmiCmds/30/93/GetControllerFwVersion
    │ │   ├─/bmc/kepler/IpmiCmds/30/93/GetControllerInfo
    │ │   ├─/bmc/kepler/IpmiCmds/30/93/GetControllerList
    │ │   ├─/bmc/kepler/IpmiCmds/30/93/GetControllerNvdataVersion
    │ │   ├─/bmc/kepler/IpmiCmds/30/93/GetControllerPds
    │ │   ├─/bmc/kepler/IpmiCmds/30/93/GetDiskManufacturer
    │ │   ├─/bmc/kepler/IpmiCmds/30/93/GetDiskSilk
    │ │   ├─/bmc/kepler/IpmiCmds/30/93/GetHddPwrStatus
    │ │   ├─/bmc/kepler/IpmiCmds/30/93/GetLogicalDriveList
    │ │   ├─/bmc/kepler/IpmiCmds/30/93/GetLogicalDriveListEx
    │ │   ├─/bmc/kepler/IpmiCmds/30/93/GetLogicalDrivePds
    │ │   ├─/bmc/kepler/IpmiCmds/30/93/GetPhysicalDriveInfo
    │ │   ├─/bmc/kepler/IpmiCmds/30/93/GetPhysicalDriveLedStatus
    │ │   ├─/bmc/kepler/IpmiCmds/30/93/GetPhysicalDriveLocation
    │ │   ├─/bmc/kepler/IpmiCmds/30/93/GetRaidControllerTemp
    │ │   ├─/bmc/kepler/IpmiCmds/30/93/SetControllerCopyback
    │ │   ├─/bmc/kepler/IpmiCmds/30/93/SetControllerJbod
    │ │   ├─/bmc/kepler/IpmiCmds/30/93/SetControllerOutofband
    │ │   ├─/bmc/kepler/IpmiCmds/30/93/SetControllerRestoreSettings
    │ │   ├─/bmc/kepler/IpmiCmds/30/93/SetControllerSmarterCopyback
    │ │   ├─/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
    │ │   ├─/bmc/kepler/IpmiCmds/30/93/SetLogicalDriveCachecade
    │ │   ├─/bmc/kepler/IpmiCmds/30/93/SetLogicalDriveDCP
    │ │   ├─/bmc/kepler/IpmiCmds/30/93/SetLogicalDriveIOP
    │ │   ├─/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
    │     └─/bmc/kepler/IpmiCmds/38/13/GetNvmeNum

配置介绍 ​

恢复控制器默认配置 ​

shell
post: https://{ip}/redfish/v1/Systems/1/Storages/{raidid}/RestoreStorageControllerDefaultSettingsActionInfo