PowerVM 驱动集成 - Queens

https://blueprints.launchpad.net/nova/+spec/powervm-nova-it-compute-driver

PowerVM 驱动为在 PowerVM 管理程序上运行的 AIX、IBM i 和 Linux 虚拟机提供 OpenStack 支持。它最初以树外方式开发,但目标是提供树内实现。在它可以集成到树内之前,Nova 核心团队提出了一些要求,这些要求现已满足。集成过程始于 Pike,并在树内实现了一小部分功能。此蓝图将在此基础上进行扩展,为 Queens 集成额外的 PowerVM 驱动功能。

问题描述

在过去几个 OpenStack 版本中,树外驱动程序已经发展到包含大量的函数和成熟度。推动完全集成的努力预计将持续多个 OpenStack 版本。第一个蓝图为 Ocata 版本提供了 PowerVMLiveMigrateData 对象到 Nova 的集成,并规划了逐步合并最小计算驱动程序功能。Pike 期间引入了一些基本驱动程序功能,如下面的历史部分所述。此蓝图将继续这项工作。

在树内驱动程序集成过程中,树外驱动程序将得到维护、支持和扩展。通常,在此阶段,预计新代码将首先被提议到树外驱动程序,然后再被提议到树内。随着驱动程序集成的进一步推进,该过程将转变为所有代码都被提议到树内。但是,对于任何贡献(无论是树内还是树外),此蓝图的主要贡献者将确保在此过渡期间将更改提议到另一个驱动程序。

用例

  • 用户应该能够部署基于 glance 的镜像,并使用共享以太网适配器 (SEA) 或 Open vSwitch (OVS) 网络,在具有 PowerVM 管理程序的系统上。

  • 用户应该能够使用 config drive 启动

  • 用户应该能够附加和分离 vSCSI cinder 卷

提议的变更

拟议的更改是提交一系列补丁,以构建在 Pike 中实现的基本功能之上。新的子集驱动程序代码将支持以下功能。

  • Config drive

  • 基于 SEA 的网络

  • 基于 OVS 的网络

  • vSCSI cinder 卷附加/分离

这并不能将 PowerVM 树外驱动程序的全部内容集成到树内。还有其他功能在本版本中不会实现树内。在树内实现 PowerVM 驱动程序是一个长期的过程,将持续多个 OpenStack 版本。

备选方案

没有。从 Pike 开始,集成 PowerVM 驱动程序的多个版本的目标已经开始,除了放弃这项努力之外,没有其他选择。在本版本中实现剩余的驱动程序任务过于庞大,并且会占用过多的核心评审人员的时间。

数据模型影响

REST API 影响

安全影响

通知影响

其他最终用户影响

性能影响

没有性能影响。集成不会对现有代码路径产生性能影响。

其他部署者影响

希望使用 PowerVM 驱动程序的部署者需要在他们的 conf 中将 compute_driver 更改为 powervm.driver.PowerVMDriver。树内 PowerVM 驱动程序在 Pike 中实现了一组非常有限的功能。部署者可以安装 nova-powervm 树外驱动程序,以在团队通过多个版本集成驱动程序时获得其他功能。

驱动程序将在管理程序支持矩阵(以及树内的功能)中进行记录,并且任何其他配置选项也将进行记录。

新的依赖项 pypowervm 在 Ocata 中引入。这是一个第三方、开源库,允许其使用者驱动 PowerVM 虚拟化。pypowervm 版本要求将在 Queens 版本中根据需要进行更新。

开发人员影响

驱动程序 API 没有变化。PowerVM 驱动程序将符合现有的 Nova API。

升级影响

实现

负责人

主要负责人

efried esberglu edmondsw

其他贡献者

thorst

工作项

  • 添加 config drive 支持

  • 添加对基于 OVS 的网络的支持

  • 添加对基于 SEA 的网络的支持

  • 添加 vSCSI cinder 卷支持

  • 更新 PowerVM CI 以跟上新树内功能,随着其实现。

依赖项

  • pypowervm - 第方开源库,允许控制 PowerVM 平台。

  • PowerVM 与 NovaLink - PowerVM 是管理程序,NovaLink 是基于 Linux 的虚拟化管理 VM。Novalink 虚拟化管理 VM 允许 nova-compute 进程在系统本身上运行。

测试

所有代码路径都通过标准 Tempest 测试作为我们 CI 的一部分运行。该代码还将包含大量的单元测试。此代码来自树外 nova-powervm 驱动程序。CI 基础设施还将继续支持树外 nova-powervm 驱动程序的自动化测试。

PowerVM CI 将为所有 nova 变更集发布树外和树内驱动程序的运行结果。所有日志将公开可用。PowerVM CI 将提供非强制投票。我们有专门的团队成员监控和支持 CI。

不需要新的测试。PowerVM 驱动程序旨在符合 Nova 模型。

文档影响

我们将继续与 ID 团队合作,更新和创建 PowerVM 驱动程序的新文档。随着新功能的实现,管理程序支持矩阵将得到更新。

参考资料

历史

从历史上看,还有其他几个 Power 驱动程序。第一个 PowerVM 驱动程序构建在 PowerVM 上,仅适用于名为 IVM 的组件。挑战在于,它要求 nova-compute 在单独的服务器上运行,并通过 SSH 发出命令。它也没有很好地与其他 OpenStack 组件集成。

还有 PowerVC OpenStack 驱动程序。它位于 PowerVC 之上,是一种集群化管理模型。由于远离集群化管理,这并不是 OpenStack Nova Compute 批准的管理模型。它从未被拉入树内。

这种模式不同,对 PowerVM 管理程序进行了核心更改。它已经在该领域发货了很长时间,并且已经构建了产品在其之上。它还符合 OpenStack Nova 的开发模型,并拥有致力于此开发的开发人员多年。

最后,Power 系统也原生运行 Linux。对于希望在 Power 上使用 KVM 的人,标准 libvirt 驱动程序也可用。但是,该支持仅限于基于 Linux 的客户端虚拟机。

提供了一个大致的时间表如下。

  • 2013 年 11 月:由于缺乏 CI 和开发,PowerVM IVM 驱动程序被删除。也没有符合 Nova 核心团队希望 Nova compute 进程在系统本身上运行的方向。

  • 2014 年 10 月:基于 NovaLink 的新 PowerVM 驱动程序的第一次提交

  • 2015 年 5 月:在峰会上宣传了基于 NovaLink 的 PowerVM 驱动程序。NovaLink 更改了管理程序本身以匹配 OpenStack 模型。所有 OpenStack 代码都是从一开始就以开源方式开发的。

  • 2015 年 10 月:基于 Liberty 的树外 nova-powervm 驱动程序发布。

    全部公开开发。支持
    • 生命周期操作

    • 从 glance 生成

    • Cinder FC 支持

    • 具有 networking-powervm 代理的 Nova

    • 实时迁移

    • AIX 和 Linux VM

    • DevStack

    • TaskFlow 在其核心中支持失败操作的优雅回滚

  • 2016 年 1 月:持续集成环境上线。

  • 2016 年 4 月:nova-powervm 驱动程序更新为 Mitaka 版本。

    所有 nova-powervm 开发都在发布期间公开进行。进行了初始的第三方贡献。

    添加了新功能
    • 冷迁移/重建/调整大小

    • 可扩展性测试

    • 基本的 VNC 控制台

    • IBM i VM

    • 规模和弹性测试

  • 2016 年 7 月:CI 正在运行所有 Nova 补丁集。不投票(由于 Nova 核心团队的指导),但日志仍然发布到日志服务器。

  • 2016 年 10 月:nova-powervm 驱动程序更新为 Newton 版本。更新为
    • 通过 PowerVM vNIC 的 SR-IOV

    • Linux Bridge / OVS

    • 增强 VNC 控制台

    • 与 OpenStack Ansible 集成(nova-powervm 之外)

  • 2016 年 10 月:第一个树内变更集 提议用于计算驱动程序生成/销毁。

  • 2016 年 11 月:PowerVMLiveMigrateData 对象在树内引入 (Ocata)。

  • 2017 年 1 月:pypowervm 依赖项在 requirements 项目中引入 (Ocata)。

  • 2017 年 8 月:Pike 版本 - 阶段 1 已实现,包括
    • 完整的 flavor 生成和销毁

    • 电源开启/关闭和重启

    • VNC 控制台支持

    • PowerVM 共享存储池临时磁盘支持

修订版

发布名称

描述

Ocata

引入

Pike

阶段 1 已实现

Queens

阶段 2 提议