关联Issuse
支持BMC设备升主能力
评审背景
需求
- 新增主备管理功能,需要提供资源协作接口用于查询/倒换主备状态
差距
当前未实现主备管理功能,无资源协作接口承载相关功能
评审点
评审点一
path /bmc/kepler/Managers/:ManagerId/LocalActiveStandbyMgmt
interfacebmc.kepler.Managers.ActiveStandbyMgmt
背景说明
增加本板对象,主要用于写寄存器以及查询本板的主备状态等
| 名称 | 数据类型 | 读写权限 | 持久化 | 信号 | 说明 |
|---|---|---|---|---|---|
| SlotId | y | ro | 否 | 否 | 槽位Id CSR配置 |
| Presence | y | ro | 否 | 否 | 在位状态(0:不在位 1:在位) CSR配置 |
| ActiveStandbyStatus | y | rw | 否 | 否 | 软件主备状态(0:主 1:备) 由组件更新 |
私有属性
| 属性名称 | 类型 | 读写权限 | 持久化 | 信号 | 说明 |
|---|---|---|---|---|---|
| HwActiveStandbyStatus | y | rw | 否 | 否 | 硬件主备状态(0:主 1:备) CSR配置 |
| StandbyToActiveAccessor | y | rw | 否 | 否 | 升主寄存器 CSR配置 |
| ActiveToStandbyAccessor | y | rw | 否 | 否 | 降备寄存器 CSR配置 |
| StandbyToActiveWriteProtect | y | rw | 否 | 否 | 升主写保护寄存器 CSR配置 |
| ActiveToStandbyWriteProtect | y | rw | 否 | 否 | 降备写保护寄存器 CSR配置 |
方法
| 切换主备状态 | 获取主备状态 | |
|---|---|---|
| 方法名 | SwitchAsStatus | GetAsStatus |
| 请求签名 | s | - |
| 请求说明 | RequestCause:请求原因 | - |
| 响应签名 | ss | y |
| 响应说明 | ReturnCode:返回码 ReturnMsg:返回信息 |
Status:主备状态 |
评审点二
path /bmc/kepler/Managers/:ManagerId/RemoteActiveStandbyMgmt/:Id
interfacebmc.kepler.Managers.RemoteActiveStandbyMgmt
背景说明
增加对板对象,提供对板状态信息查询
| 属性名称 | 类型 | 读写权限 | 持久化 | 信号 | 说明 |
|---|---|---|---|---|---|
| ActiveStandbyStatus | y | rw | 否 | 否 | 主备状态(0:主 1:备) 由组件进行更新 |
| SlotId | y | ro | 否 | 否 | 槽位Id CSR配置 |
| Presence | y | ro | 否 | 否 | 在位状态(0:不在位 1:在位) CSR配置 |
| CommunicationIP | s | ro | 否 | 否 | 通信Ip CSR配置 |
| CommunicationPort | q | ro | 否 | 否 | 通信端口 CSR配置 |
| CommunicationStatus | y | ro | 否 | 否 | 通信状态(0:异常 1:正常) CSR配置 |
方法
| 切换主备状态 | 获取主备状态 | 查询健康状态 | |
|---|---|---|---|
| 方法名 | SwitchAsStatus | GetAsStatus | GetHealthStatus |
| 请求签名 | s | - | - |
| 请求说明 | RequestCause:请求原因 | - | - |
| 响应签名 | ss | y | y |
| 响应说明 | ReturnCode:返回码 ReturnMsg:返回信息 |
Status:主备状态 | Status:健康状态 |
评审点三
私有对象 SwitchOverRules(主备切换条件)
背景说明
指可以通过模型进行配置的切换条件,针对的是对于产品来说静态的可以直接在模型中配置的数据或者是动态的但是可以通过其他资源协作接口等方式配置出来的条件
| 属性名称 | 类型 | 读写权限 | 持久化 | 信号 | 说明 |
|---|---|---|---|---|---|
| SwitchType | y | ro | 否 | 否 | 条件类型(0: 允许切换条件 1:禁止切换条件) CSR配置 |
| Threshold | y | ro | 否 | 否 | 主备切换条件的门限值 CSR配置 |
| Reading | y | ro | 否 | 否 | 主备切换条件的输入值 CSR配置 |
| Operator | y | ro | 否 | 否 | 主备切换条件的运算符 1:大于 2:大于等于 3:小于 4:小于等于 5:等于 6:不等于 CSR配置 |
| Direction | y | ro | 否 | 否 | 主备切换的方向(0:无操作 1:降备 2:升主) CSR配置 |
| Description | s | ro | 否 | 否 | 主备切换条件匹配之后的描述值 CSR配置 |
评审点四
私有对象
对象名ActiveStandbyHeartBeat(备选HealthMaintenance)
背景说明
通过一直写心跳寄存器来告知硬件需要参与主备的状态冲裁,检测周期等需要支持配置
path/bmc/kepler/Managers/:ManagerId/LocalActive
interfacebmc.kepler.Manager.LocalActive
| 属性名称 | 类型 | 读写权限 | 持久化 | 信号 | 说明 |
|---|---|---|---|---|---|
| HeartbeatStatus | y | ro | 否 | 是 | BMC的主备心跳状态(0:丢失 1:正常) 由组件进行更新 |
私有属性
| 属性名称 | 类型 | 读写权限 | 持久化 | 信号 | 说明 |
|---|---|---|---|---|---|
| HeartbeatInterval | q | ro | 否 | 否 | 主备心跳检测周期(毫秒) CSR配置 |
| HeartbeatAccessor | y | rw | 否 | 否 | 硬件主备心跳的Accessor CSR配置 |
| HeartbeatThreshold | q | ro | 否 | 否 | 主备心跳的预警门限(毫秒) CSR配置 |
评审结论
不通过,当前方案不明确,需要进行方案评审之后再行进行接口评审