Cisco UCS PXE 驱动

https://blueprints.launchpad.net/ironic/+spec/cisco-ucs-pxe-driver

此蓝图建议添加一个新驱动程序,以支持部署由 Cisco UCS Manager (UCSM) 管理的 B/C/M 系列服务器。

在此蓝图中,服务器和节点可以互换使用,均指 Cisco UCS B/C/M 系列服务器。

问题描述

当前的 Ironic 驱动程序要求在所有 Cisco UCS B/C/M 系列服务器上启用 IPMI 协议,才能管理电源操作。出于安全原因,从 UCS Manager 版本 2.2.2 开始,IPMI 协议默认情况下在所有服务器上都已禁用。

为了替代使用 IPMI 协议,此蓝图建议使用新的驱动程序来管理 Cisco UCS B/C/M 系列服务器,该驱动程序使用 Cisco UCS PySDK。

提议的变更

作为 pxe_ucs 驱动程序的一部分,将添加新的电源和管理接口。此驱动程序使用 Cisco UCS PySDK 与 UCSM 通信。

此驱动程序使用
  • pxe.PXEDeploy 用于 PXE 部署操作

  • ucs.power.Power 用于电源操作

  • ucs.management.UcsManagement 用于管理接口操作

UCS Manager 提供了一个 Python SDK,用户可以使用它执行各种操作,例如控制节点的电源、启用端口、关联服务器等。UCSM 中的物理和逻辑实体表示为 ManagedObject。

  • 电源管理

    控制电源类似于修改相应 ManagedObject 的属性。LsPower 是表示服务配置文件的电源的 ManagedObject。作为电源管理的一部分,此提供程序修改 LsPower ManagedObject 的“state”属性。UCSM 会处理剩下的事情。

  • 管理接口

    此接口允许用户获取和设置 UCS B/C/M 服务器上的启动顺序。LsbootDef 是表示服务配置文件启动顺序的 ManagedObject。此接口会读取和更新 LsbootDef ManagedObject,以正确地获取和设置启动设备操作。get_sensor_data() 实现不在本规范的范围内。将提交一份单独的规范。

备选方案

如果显式启用 IPMI 协议,覆盖 UCS Manager 中的默认设置,则可以使用 IPMI Pxe 驱动程序与 Cisco UCS B/C/M 系列服务器一起使用。

数据模型影响

RPC API 影响

状态机影响

REST API 影响

客户端 (CLI) 影响

驱动程序 API 影响

Nova 驱动程序影响

安全影响

其他最终用户影响

可扩展性影响

性能影响

其他部署者影响

在将节点注册到 ironic 时,需要以下 driver_info 字段
  • ucs_address: UCS Manager 主机名/IP 地址

  • ucs_username: 具有 admin/server-profile 访问权限的用户帐户

  • ucs_password: 用户帐户密码

  • ucs_service_profile: 此节点正在使用的 service_profile DN (DistinguishedName)。

以下参数添加到位于 /etc/ironic/ironic.conf 的新创建的 [ucs] 部分中(通常位于此处)。

  • max_retry: 最大重试次数,默认值为 5。

  • action_timeout: 等待电源操作完成的秒数,默认值为 30 秒,没有明确的最大限制。

开发人员影响

实现

负责人

主要负责人:saripurigopi

其他贡献者: vinbs

工作项

  • 添加新的 pxe_ucs 驱动程序,扩展电源和管理接口 API。

  • 编写 pxe_ucs 驱动程序的单元测试用例。

  • 编写配置文档。

依赖项

此驱动程序要求在 conductor 节点上安装 Cisco UCS Python SDK。

测试

将为新的 pxe_ucs 驱动程序实现单元测试。将更新 tempest 测试套件以涵盖 pxe_ucs 驱动程序。将为 Cisco UCS B/C/M 系列服务器添加持续集成 (CI) 支持。

升级和向后兼容性

此驱动程序不会破坏 REST API 或 RPC API 的任何兼容性。

文档影响

参考资料

Cisco UCS PySdk:https://github.com/CiscoUcs/UcsPythonSDK