iLO Power Driver for Ironic

https://blueprints.launchpad.net/ironic/+spec/ironic-ilo-power-driver

本提案增加了使用 iLO 客户端 Python 库通过 iLO 管理 HP ProLiant 服务器电源的能力。

问题描述

HP iLO 子系统是 HP ProLiant 服务器的标准组件,可简化服务器的初始设置、服务器健康状况监控、电源和散热优化以及远程服务器管理。我们提出的 Ironic IloDriver 将在 OpenStack 中公开这些功能,以管理 HP ProLiant 服务器。

本提案涵盖使用 iLO 进行电源管理接口的支持。

提议的变更

将添加一个新的 IloPower() 模块,该模块将符合 base.PowerInterface。该模块使用 iLO 凭据(ilo_address、ilo_username、ilo_password),这些凭据在节点的 driver_info 属性中指定,以连接到目标 iLO。它使用 proliantUtils 库中的 iLO 客户端与 iLO 通信。

HP iLO 还支持用于监控和功率限制的更高级的电源管理功能。我们希望稍后添加对这些高级供应商特定功能的支持。

注意:尽管 iLO 使用 443 端口上的 SSL 进行通信,但 RIBCL 通信不支持基于 SSH 密钥的身份验证。需要提供 iLO 用户名/密码才能与 iLO 通信。

备选方案

IPMI 标准规范可用于电源管理。但添加一个新的电源模块允许解决方案与未来使用单个 iLO 接口执行操作的其他 iLO 驱动程序保持一致。

目前,选择此模块与 IPMI 没有功能上的优势。

数据模型影响

REST API 影响

驱动程序 API 影响

Nova 驱动程序影响

安全影响

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

其他最终用户影响

可扩展性影响

性能影响

其他部署者影响

需要的driver_info字段如下
  • ilo_address - iLO 的主机名或 IP 地址。

  • ilo_username - 具有管理员权限的 iLO 用户名。

  • ilo_password - ilo_username 的密码

  • ilo_client_timeout - iLO 操作的超时时间。默认值为 60 秒。

  • ilo_client_port - iLO 客户端用于 iLO 操作的端口。默认值为 443。

开发人员影响

实现

负责人

主要负责人

Ramakrishnan G (rameshg87)

其他贡献者

Anusha Ramineni (anusha_08)

工作项

实现一个新的电源模块 IloPower,符合 base.PowerInterface。

依赖项

  • 此功能面向配备 iLO4 及更高版本的 HP ProLiant 服务器。此电源模块可能适用于旧版本的 iLO(如 iLO3),但 iLO 驱动程序团队不会对此进行官方测试。

  • 依赖 proliantutils 库。

测试

将添加单元测试,模拟 proliantutils 库。

当 ironic 树中提供更多高级的 IloDriver 模块(如部署)时,将考虑 Tempest 测试。

文档影响

需要在文档中包含所需的 driver_info 属性,以指导操作员如何将 Ironic 与 iLO 驱动程序一起使用。

参考资料

proliantutils 库:https://github.com/hpproliant/proliantutils https://pypi.python.org/pypi/proliantutils

HP iLO4 用户指南:http://h20628.www2.hp.com/km-ext/kmcsdirect/emr_na-c03334051-10.pdf

HP 功率限制和 HP 动态功率限制 http://bit.ly/1m8sbEi