Redfish API

本文主要介绍redfish api的调用路径及格式。

Redfish是一种基于HTTPs服务的管理标准,利用RESTful接口实现设备管理。可以理解为redfish api就是通过http的调用方式来操作服务器的bmc设备,从而实现对设备的远程控制。

1. BMC常用功能操作

  • BIOS 管理

  • 启动设置(boot order)

  • 虚拟媒体管理

  • 电源管理(开机、关机、重启)

  • 固件升级

  • 远程控制(VNC/SOL)

  • 监控和日志

2. 通用 Redfish API 接口格式

2.1. 通用 Redfish API 接口格式

2.1.1. 基础路径结构

/redfish/v1/

2.1.2. 主要资源类型

  1. 系统资源 (Systems)
/redfish/v1/Systems/{systemId}/
├── Bios/                    # BIOS设置
├── Boot/                    # 启动设置
├── Memory/                  # 内存信息
├── Processors/              # 处理器信息
├── Storage/                 # 存储信息
├── EthernetInterfaces/      # 网络接口
└── Actions/                 # 系统操作
  1. 机箱资源 (Chassis)
/redfish/v1/Chassis/{chassisId}/
├── Power/                   # 电源管理
├── Thermal/                 # 温度管理
├── NetworkAdapters/         # 网络适配器
└── Actions/                 # 机箱操作
  1. 管理控制器 (Managers)
/redfish/v1/Managers/{managerId}/
├── NetworkProtocol/         # 网络协议
├── VirtualMedia/            # 虚拟媒体
├── LogServices/            # 日志服务
└── Actions/                # 管理操作
  1. 更新服务 (UpdateService)
/redfish/v1/UpdateService/
├── FirmwareInventory/      # 固件清单
└── Actions/                # 更新操作

3. BIOS 管理

1. 通用 BIOS 接口路径

/redfish/v1/Systems/{systemId}/Bios

获取 BIOS 属性

GET /redfish/v1/Systems/{systemId}/Bios

设置 BIOS 属性

PATCH /redfish/v1/Systems/{systemId}/Bios/Settings

2. 各厂商路径

厂商 操作 方法 路径 request
Dell 获取 BIOS 属性 GET /redfish/v1/Systems/{systemId}/Bios
设置 BIOS 属性 PATCH /redfish/v1/Systems/{systemId}/Bios/Settings {"Attributes": attrs,
"@Redfish.SettingsApplyTime": "OnReset"}
HPE 获取 BIOS 属性 GET /redfish/v1/Systems/{systemId}/Bios
设置 BIOS 属性 PATCH /redfish/v1/Systems/{systemId}/Bios/Settings {"Attributes": attrs,
"@Redfish.SettingsApplyTime": "OnReset"}
HUAWEI 获取 BIOS 属性 GET /redfish/v1/Systems/{systemId}/Bios
设置 BIOS 属性 PATCH /redfish/v1/Systems/{systemId}/Bios/Settings { "Attributes": attrs}
Inspur 获取 BIOS 属性 GET /redfish/v1/Systems/{systemId}/Bios
设置 BIOS 属性 PATCH
Lenovo 获取 BIOS 属性 GET /redfish/v1/Systems/{systemId}/Bios
设置 BIOS 属性 PATCH /redfish/v1/Systems/{systemId}/Bios/Settings { "Attributes": attrs}
xFusion 获取 BIOS 属性 GET /redfish/v1/Systems/{systemId}/Bios
设置 BIOS 属性 PATCH /redfish/v1/Systems/{systemId}/Bios/Settings { "Attributes": attrs}

4. 启动设置(boot order)

5. VirtualMedia 的通用接口路径

1. 通用 VirtualMedia 接口路径

/redfish/v1/Managers/{managerId}/VirtualMedia/{mediaId}/

获取虚拟媒体信息

GET /redfish/v1/Managers/{managerId}/VirtualMedia/{mediaId}/

插入虚拟媒体

POST /redfish/v1/Managers/{managerId}/VirtualMedia/{mediaId}/Actions/VirtualMedia.InsertMedia

弹出虚拟媒体

POST /redfish/v1/Managers/{managerId}/VirtualMedia/{mediaId}/Actions/VirtualMedia.EjectMedia

2. 各厂商路径

厂商 操作 方法 路径 request
Dell 获取VirtualMedia GET /redfish/v1/Managers/{managerId}/VirtualMedia/CD
插入VirtualMedia
弹出VirtualMedia
HPE 获取VirtualMedia GET /redfish/v1/Managers/{managerId}/VirtualMedia/{mediaId}
插入VirtualMedia POST /redfish/v1/Managers/{managerId}/VirtualMedia/{mediaId}/Actions/VirtualMedia.InsertMedia {
"Image": "string",
"Inserted": boolean,
"WriteProtected": boolean
}
弹出VirtualMedia POST /redfish/v1/Managers/{managerId}/VirtualMedia/{mediaId}/Actions/VirtualMedia.EjectMedia
HUAWEI 获取VirtualMedia GET /redfish/v1/Managers/{managerId}/VirtualMedia/CD
插入VirtualMedia POST /redfish/v1/Managers/{managerId}/VirtualMedia/CD/Oem/Huawei/Actions/VirtualMedia.VmmControl {"VmmControlType": "Connect",
"Image": imageURL}
弹出VirtualMedia POST /redfish/v1/Managers/{managerId}/VirtualMedia/CD/Oem/Huawei/Actions/VirtualMedia.VmmControl {"VmmControlType": "Disconnect"}
Inspur(M6) 获取VirtualMedia GET /redfish/v1/Managers/{managerId}/VirtualMedia/{mediaId} mediaId=CD/CD1
插入VirtualMedia POST /redfish/v1/Managers/{managerId}/VirtualMedia/{mediaId}/Actions/VirtualMedia.InsertMedia {"Image": image,
"TransferProtocolType": "NFS"}
弹出VirtualMedia POST /redfish/v1/Managers/{managerId}/VirtualMedia/{mediaId}/Actions/VirtualMedia.EjectMedia
Lenovo 获取VirtualMedia GET /redfish/v1/Systems/{systemId}/VirtualMedia/EXT1
插入VirtualMedia
弹出VirtualMedia PATCH /redfish/v1/Systems/{systemId}/VirtualMedia/EXT1 {"Inserted": false}
xFusion(华为子品牌) 获取VirtualMedia GET /redfish/v1/Managers/{managerId}/VirtualMedia/CD
插入VirtualMedia POST /redfish/v1/Managers/{managerId}/VirtualMedia/CD/Oem/xFusion/Actions/VirtualMedia.VmmControl {"VmmControlType": "Connect",
"Image": imageURL}
弹出VirtualMedia POST /redfish/v1/Managers/{managerId}/VirtualMedia/CD/Oem/xFusion/Actions/VirtualMedia.VmmControl {"VmmControlType": "Disconnect"}

6. 电源管理(开机、关机、重启)

7. 固件升级


最后修改 May 18, 2025: add redfish api (e8fa552)