OpenBMC 驱动程序

https://bugs.launchpad.net/ironic/+bug/1634635

本提案涵盖了 OpenBMC 的电源和管理接口的添加,以及将驱动程序添加到 IPA 和 PXE 驱动程序类中。

注意

由于 OpenBMC 已经支持 Redfish API 接口,并且这是一个更优越的基于标准的接口,因此该规范不再被视为适用。在提出此规范时,OpenBMC 中尚未实现 Redfish API。

问题描述

目前,OpenBMC 并不完全支持 IPMI。相反,OpenBMC 的电源通过 RESTful 接口进行控制。此外,启动设备也可以通过此 RESTful 接口检索和设置。虽然 OpenBMC 未来可能会支持 IPMI,但推荐的交互方式将继续是其 REST API

运行 OpenBMC 的服务器需要一个新的接口实现来控制其电源,另一个用于设置启动设备,以及一个硬件类型,该类型使用这些受支持的接口。

提议的变更

添加一个 OpenBMCPower() 模块,符合 base.PowerInterface。登录凭据将指定为 openbmc_address、openbmc_username 和 openbmc_password,位于节点的 driver_info 属性中。

添加一个 OpenBMCManagement() 模块,符合 base.ManagementInterface,它也使用 openbmc_address、openbmc_username 和 openbmc_password 作为登录凭据。

该模块将登录到 BMC,发出正确的命令,然后从 BMC 登出。

将添加一个硬件类型 OpenBMCHardware。此硬件类型将在其 ‘supported_power_interfaces’ 列表中包含 OpenBMCPower。此硬件类型还将在其 ‘supported_management_interfaces’ 列表中包含 OpenBMCManagement。

备选方案

等待 IPMI 功能被 OpenBMC 完全支持。这将允许 pxe_ipmitool 和 agent_ipmitool 驱动程序工作。

这里的缺点是它不是与 BMC 交互的推荐方法。此外,IPMI 何时完全支持尚不清楚。

数据模型影响

状态机影响

REST API 影响

客户端 (CLI) 影响

“ironic” CLI

“openstack baremetal” CLI

RPC API 影响

驱动程序 API 影响

Nova 驱动程序影响

Ramdisk 影响

安全影响

其他最终用户影响

可扩展性影响

性能影响

其他部署者影响

开发人员影响

实现

负责人

主要负责人

Michael Turek (mjturek)

其他贡献者

Mark Hamzy (mark-hamzy)

工作项

  • 实现一个新的电源接口 OpenBMCPower,符合 base.PowerInterface。

  • 实现一个新的管理接口 OpenBMCManagement,符合 base.ManagementInterface

  • 添加硬件类型 OpenBMCHardware,该类型将这些接口作为受支持的接口。

  • 添加文档,详细说明接口和驱动程序的用法。

依赖项

此功能只能由运行 OpenBMC 的目标硬件使用。

测试

该功能将使用 KVM on POWER OpenStack CI 环境进行测试。

该作业将运行 ironic tempest 测试,但不会添加新的集成测试。该作业最初将针对真实硬件进行测试。

还将添加单元测试。

升级和向后兼容性

文档影响

将添加文档,描述新的接口以及如何使用它们。

参考资料