适用于 Gen10 及以上 HPE Proliant 服务器的带外 RAID 配置¶
https://bugs.launchpad.net/ironic/+bug/1716329
本规范提出为 ILO 管理的 HPE Proliant 服务器实现带外 RAID 配置。
问题描述¶
在当前场景下,HPE Proliant 服务器上的 RAID 配置仅通过带内清理完成,基于 Ilo5 的 HPE Proliant Gen10 服务器提供支持以执行带外 RAID 配置,而 Gen9 及以下服务器则没有此支持。但是,RAID 的创建或删除只有在系统到达 POST 阶段后才会生效。因此,RAID 的创建或删除需要伴随重启操作。
提议的变更¶
本规范建议实现由父规范 [1] 描述的带外 RAID 配置。这将需要实现新的硬件类型 Ilo5Hardware 和一个新的 raid 接口,作为 ilo 的 IloRAID。
OOB RAID 配置将是一个四步过程。1. delete_configuration - 删除系统中的当前 raid 配置。 2. read_configuration - 获取系统更新后的 raid 配置并相应地更新节点属性。 3. create_configuration - 创建用户在节点属性的 target_raid_config 中设置的 raid 配置。 4. read_configuration - 获取系统更新后的 raid 配置并相应地更新节点属性。
所需更改列表
以下将是
Ilo5Hardware的组成此硬件类型将受基于 ilo5 的 HPE Proliant 服务器的支持。
Ilo5Hardware 将继承父类 IloHardware 的所有接口。
Ilo5Hardware 将支持新的 RAID 接口
IloRAID。
以下将是
IloRAID的组成IloRAID 将继承基类的 RAIDInterface。
delete_configuration- 这将删除裸机节点上的 RAID 配置。由于需要重启才能使更改生效,此函数将用附加参数
reboot_required装饰,其值设置为True。它将从 proliantutils 库创建一个 IloClient 对象,以对 iLO 进行操作。这将调用 proliantutils 库的 delete_raid_configuration 以删除系统上的逻辑驱动器。
create_configuration- 这将在裸机节点上创建 RAID 配置。由于需要重启才能使更改生效,此函数将用附加参数
reboot_required装饰,其值设置为True。它将从 proliantutils 库创建一个 IloClient 对象,以对 iLO 进行操作。这将调用 proliantutils 库的 create_raid_configuration 以向固件发出请求,以在系统上创建逻辑驱动器。
read_configuration- 这将读取裸机节点上的 RAID 配置。它将从 proliantutils 库创建一个 IloClient 对象,以对 iLO 进行操作。这将调用 proliantutils 库的 read_raid_configuration 以获取系统上的逻辑驱动器。因此,它将在调用
create_configuration之后使用实际的 RAID 配置更新节点属性,并在调用delete_configuration之后更新为None。
以下将是 ironic 清理架构中为支持所需的后重启操作而进行的更新(如果需要任何清理步骤)。
向 BaseInterface 的 clean_step 函数添加一个新的布尔位置参数
reboot_required。此参数的默认值设置为False。注意:相同的做法已在需要重启的带内清理中使用。更新 ironic/conductor/manager.py:_do_next_clean_step(),对于每个步骤,如果 reboot_required 设置为 True 并且上一个命令接口.execute_clean-step() 的结果不是
clean wait,则调用 prepare_cleaning()。
备选方案¶
可以执行带内 raid 配置以达到相同的结果。但是,在这种情况下使用的 ramdisk 应该具有 proliant-tools 元素,该元素将用于 RAID 操作的 ‘ssacli’ 实用程序捆绑到镜像中。
数据模型影响¶
无
状态机影响¶
无
REST API 影响¶
无
客户端 (CLI) 影响¶
无
RPC API 影响¶
无
驱动程序 API 影响¶
无
Nova 驱动程序影响¶
无
Ramdisk 影响¶
无
安全影响¶
无
其他最终用户影响¶
无
可扩展性影响¶
无
性能影响¶
无
其他部署者影响¶
用户需要配置以下两件事才能在 HPE Proliant Gen10 服务器上使用 OOB RAID 配置。
将新的硬件类型
ilo5配置到 ([DEFAULT]enabled_hardware_types)。将新的 raid 接口
ilo5配置到 ([DEFAULT]enabled_raid_interfaces)。
开发人员影响¶
无
实现¶
负责人¶
主要负责人:theanshuljain
工作项¶
为 ilo 添加一个新的硬件类型
Ilo5Hardware,该类型继承 IloHardware。添加一个新的硬件接口
IloRAID,该接口继承 base.RAIDInterface。编写新的 OOB RAID 接口的单元测试用例。
依赖项¶
proliantutils 中对 OOB RAID 的支持正在开发中,尚未发布。
测试¶
将添加单元测试用例。将在第三方 CI 设置中进行测试。
升级和向后兼容性¶
无
文档影响¶
需要更新 iLO 驱动程序文档,以获取新的硬件类型和 RAID 接口。
参考资料¶
[1] Ironic 通用 raid 规范:https://review.opendev.org/173214