【待评审】主备管理支持北向接口材料评审

背景

为满足上层管理软件对主备状态的查询和主备倒换能力,需要提供北向接口(Web、CLI、Redfish)来支持主备状态的查询和倒换命令。

依赖 D-Bus 服务

服务 路径 接口 属性/方法
主备状态查询 /bmc/kepler/Managers/1/ActiveStandby/Local bmc.kepler.Managers.ActiveStandby.Local ActiveStatusHealthStatus
对板状态查询 /bmc/kepler/Managers/1/ActiveStandby/Remote bmc.kepler.Managers.ActiveStandby.Remote ActiveStatusHealthStatus
主备倒换 /bmc/kepler/Managers/1/ActiveStandby/Local bmc.kepler.Managers.ActiveStandby.Local SwitchStatus 方法

关联ISSUE

[需求]: 支持主备管理的北向接口-rackmount-AtomGit | GitCode

评审点

1、web接口支持查询主备状态和发送主备倒换命令

2、cli接口支持查询主备状态和发送主备倒换命令

3、redfish接口支持查询主备状态和发送主备倒换命令

详细描述

评审点一:web接口支持查询主备状态和发送主备倒换命令

项目 说明
接口名称 查询主备状态
URL https://device_ip/UI/Rest/BMCSettings/Failover
操作类型 GET
复用策略 保持 URL 不变,修改后端接口映射配置

新增属性输出说明

一级属性 二级属性 类型 示例 描述
ActiveIndex / Number 1 原有属性,主用板索引
Standbys / Array - 新增属性,备用节点列表
StandbyIndex Number 2 原有属性,备用板索引
StandbyPresent Number 1 原有属性,在位状态:1=在位,0=不在位
SyncStatus String “Synchronized” 原有属性,同步状态
{
    "ActiveIndex": 1,
    "Standbys": [
        {
            "StandbyIndex": 2,
            "StandbyPresent": 1,
            "SyncStatus": "Synchronized"
        },
        {
            "StandbyIndex": 3,
            "StandbyPresent": 1,
            "SyncStatus": "Synchronized"
        },
        {
            "StandbyIndex": 4,
            "StandbyPresent": 0,
            "SyncStatus": "Unsynchronized"
        }
    ]
}
项目 说明
接口名称 执行主备倒换
URL https://device_ip/UI/Rest/BMCSettings/Failover/ForceFailover
操作类型 POST
复用策略 保持 URL 不变,修改后端接口映射配置,调用新 D-Bus 服务 SwitchStatus 方法

评审点二:cli接口支持查询主备状态和发送主备倒换命令

项目 说明
命令名称 查询主备状态
命令格式 ipmcget [ -l smm ] -d redundancy
复用策略 保持命令格式不变,修改 CLI 接口映射配置
输出格式 参考原格式如下
ipmcget -l smm -d redundancy
The Redundancy States of SMMs:
SMM1: Present(active)*
SMM2: Present(standby)

* = The SMM you are currently logged into.
项目 说明
命令名称 执行主备倒换
命令格式 ipmcset [ -l smm ] -d failover -v 1
复用策略 保持命令格式不变,修改 CLI 接口映射配置,调用新 D-Bus 服务 SwitchStatus 方法

评审点三:redfish接口支持查询主备状态和发送主备倒换命令

项目 说明
功能 查询主备状态
URI /redfish/v1/Managers/{ManagerId}/Failover
操作类型 GET
新增原因 标准 Redfish Manager 资源无主备状态字段

属性输出说明

一级属性 二级属性 类型 示例 描述
ActiveIndex / Number 1 原有属性,主用板索引
Standbys / Array - 新增属性,备用节点列表
StandbyIndex Number 2 原有属性,备用板索引
StandbyPresent Number 1 原有属性,在位状态:1=在位,0=不在位
SyncStatus String “Synchronized” 原有属性,同步状态
{
    "ActiveIndex": 1,
    "Standbys": [
        {
            "StandbyIndex": 2,
            "StandbyPresent": 1,
            "SyncStatus": "Synchronized"
        },
        {
            "StandbyIndex": 3,
            "StandbyPresent": 1,
            "SyncStatus": "Synchronized"
        },
        {
            "StandbyIndex": 4,
            "StandbyPresent": 0,
            "SyncStatus": "Unsynchronized"
        }
    ]
}

3.2 执行主备倒换

项目 说明
功能 执行主备倒换
URI /redfish/v1/Managers/{ManagerId}/Failover/ForceFailover
操作类型 POST
实现方式 调用新 D-Bus 服务 SwitchStatus 方法

评审结论

已在 Interface评审里提交待评审,望版主删除