iRMC 管理驱动程序 for Ironic

https://blueprints.launchpad.net/ironic/+spec/irmc-management-driver

该提案介绍了在 Ironic 中添加对 FUJITSU PRIMERGY iRMC(集成远程管理控制器)的管理标准接口支持所需的工作。

问题描述

FUJITSU PRIMERGY iRMC 允许 IPMI 获取/设置启动模式,无论是传统 BIOS 还是 UEFI,并允许 SCCI 获取传感器数据。但是,当前的 Ironic 标准管理模块 ipmitool.IPMIManagement 无法利用 iRMC 的功能。

提议的变更

该模块继承自 ipmitool.IPMIManagement,并为了利用 iRMC IPMI 启动模式获取/设置功能和 SCCI 获取传感器数据,覆盖了以下两个函数:pxe_irmc、iscsi_irmc 和 agent_irmc [1]

当 Ironic 管理接口中的启动模式设置/获取接口标准化时,此模块将被重构。

  • set_boot_device() - 如果在 Ironic 节点的属性字段的 capabilities 参数中指定了 ‘boot_mode:uefi’,则此函数将向 iRMC 发送 IPMI 设置系统启动选项命令,在参数选择器 5 中设置 data1 的第 5 位,BIOS 启动类型为 UEFI。否则,此函数将默认调用父类函数 ipmitool.IPMIManagement.set_boot_device()。

  • get_sensors_data() - 如果在 ironic 配置文件中的 [irmc] 部分指定了可选参数 ‘sensor_method=scci’,则此函数将通过 iRMC SCCI 获取传感器数据,该数据不仅返回标准数据,还返回供应商特定的传感器数据。iRMC SCCI 使用 python-scciclient 包。否则,如果可选参数是默认值 ‘sensor_method=ipmitool’,则此函数将默认调用父类函数 ipmitool.IPMIManagement.get_sensors_data()。

备选方案

如果需要以 UEFI 模式自动启动裸机节点,则没有替代方案。

IPMI 管理模块只能在部署者手动将裸机节点的启动模式设置为 UEFI 时使用。

数据模型影响

REST API 影响

RPC API 影响

驱动程序 API 影响

Nova 驱动程序影响

安全影响

管理员凭据将以未加密的形式存储在数据库中,并在发出 node-show 命令时显示在节点的 driver_info 字段中。但是,只有 ironic 管理员用户才能访问 Ironic 数据库和节点详细信息。

其他最终用户影响

可扩展性影响

性能影响

其他部署者影响

  • 配置 BIOS 模式的节点

    ironic node-update <node-uuid> add properties/capabilities='boot_mode:bios'
    
  • 配置 UEFI 模式的节点

    ironic node-update <node-uuid> add properties/capabilities='boot_mode:uefi'
    

开发人员影响

实现

负责人

主要负责人

玉田直弘 (naohirot)

其他贡献者

工作项

  • 通过继承 ipmitool.IPMIManagement 并覆盖 set_boot_device() 和 get_sensors_data(),为 iRMC 驱动程序(pxe_irmc、iscsi_irmc、agent_irmc)实现 iRMC 管理模块。

依赖项

测试

  • 单元测试

  • 富士通计划进行第三方 CI 测试

升级和向后兼容性

此驱动程序的默认行为与 ipmitool.IPMIManagement 兼容。

文档影响

需要在文档中包含所需的 driver_info 字段和 [irmc] 部分参数,以指导操作员如何使用 Ironic 与 iRMC。

参考资料