PowerVM 驱动集成 - 第二阶段¶
https://blueprints.launchpad.net/nova/+spec/powervm-nova-compute-driver
PowerVM 驱动最初是树外开发的,但目标是提供树内实现。在它可以被集成到树内之前,Nova 核心团队提出了一些要求,这些要求已经得到满足。这份蓝图是该系列中的第二个,将致力于 PowerVM 驱动的树内集成。
问题描述¶
PowerVM 驱动为 AIX、IBM i 和在 PowerVM 虚拟机管理程序上运行的 Linux 虚拟机提供 OpenStack 支持,已被提议集成到主 Nova 树中。然而,由于树外驱动程序在过去几个 OpenStack 版本中已经包含大量功能和成熟度,因此目标是将此驱动程序引入树内。推动完全集成的过程预计将在多个 OpenStack 版本中进行。第一个蓝图为 Ocata 版本提供了 PowerVMLiveMigrateData 对象集成,并规划了逐步合并最小计算驱动程序功能。这份蓝图继续这项工作。
PowerVM 驱动团队已经满足了 Nova 核心团队提出的以下要求。
CI 正在运行并发布针对 Nova 和 nova-powervm 驱动程序的结果:结果是公开可用的,CI 的配置也是公开的。根据 Nova 核心团队的指导,CI 针对所有 Nova 变更集运行,但目前尚未对补丁进行投票,因为它不是树内驱动程序。 CI 的配置 也公开可用。
PowerVC 以外的外部用户:公司正在积极使用 PowerVM 驱动程序集成到使用 Kolla 和 RDO 的 OpenStack 云中。PowerVM 驱动团队还已将 PowerVM 添加到 OpenStack-Ansible 项目中,PowerVM 现在是 OSA 的目标平台。
展示对驱动程序的承诺:我们的第一个支持版本是 Liberty,并且我们继续维护、增长和扩展驱动程序,后续每个版本都遵循稳定分支支持模型。我们致力于遵循 OpenStack 方式 开发驱动程序,采用开源代码、开放的设计/开发和开放的社区(IRC @ #openstack-powervm 等)。PowerVM 驱动程序符合 Nova 计算驱动程序的设计,并遵循社区开发方向。我们还确保开发团队积极参与上游开发 - 参加 IRC 会议、中期周期和峰会。
树外驱动程序将在树内驱动程序集成时继续维护、支持和扩展。对于这个阶段,预计新代码将首先被提议到树外驱动程序,然后被提议到树内。随着驱动程序集成进一步推进,该过程将转变为所有代码都被提议到树内。但是,对于任何贡献(无论是树内还是树外),这份蓝图的主要贡献者将确保在此过渡期间将更改提议到另一个驱动程序。
用例¶
用户应该能够部署基于 glance 的镜像,并在具有 PowerVM 虚拟机管理程序的系统上进行基本的网络配置。该镜像可以是 Linux(RHEL、SLES、Ubuntu 等…)、AIX 或 IBM i。
提议的变更¶
提出的更改是提交一系列补丁,构建足够的基本功能以支持在 PowerVM 上部署基于 glance 的虚拟机。这部分驱动程序代码(以及相关的单元测试)将支持诸如
基本的 VM 生命周期任务(生成、关机、重启、快照等)
实例状态
VNC 控制台
使用 Open vSwitch Neutron 代理的 Flat/VLAN 网络
Config drive
通过主机本地磁盘或共享存储池逻辑单元(PowerVM 集群文件系统)引导磁盘。
驱动程序的这一阶段旨在获得 支持矩阵 中 强制 和 可选 选项的最低限度。
我们将其视为一个长期的旅程。我们将继续努力将更多功能引入 Nova 树中,后续版本将继续进行。
以下是一些将在未来蓝图中包含的特定功能,不属于本次蓝图:
调整大小
实时迁移
冷迁移
Cinder 卷支持
共享以太网支持(PowerVM 网络技术)
SR-IOV 支持
还有一些额外的功能(当前集成在树外驱动程序中),但它们将在后续蓝图中提出。
备选方案¶
集成整个驱动程序。这对于一个版本来说太过于庞大,并且需要过多的核心评审人员时间。
不集成驱动程序。由于有用户在使用该驱动程序,并且 Nova 的方向是将驱动程序置于树内,因此这不是一个选项。
数据模型影响¶
无
REST API 影响¶
无
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
无
性能影响¶
没有性能影响。集成不会对现有代码路径产生性能影响。
其他部署者影响¶
希望使用 PowerVM 驱动程序的部署者需要在他们的 conf 文件中将 compute_driver 更改为 powervm.PowerVMDriver。树内 PowerVM 驱动程序最初将具有非常有限的功能集。如上所述,他们可以安装树外 nova-powervm 驱动程序以获得额外的功能,同时团队在多个版本中努力集成驱动程序。
对于首次集成,部署者除了设置 compute_driver 类型外,将不需要任何配置。该驱动程序将在超visor 支持矩阵中记录(以及其树内的功能)。
在 Ocata 中引入了一个新的依赖项 pypowervm。这是一个第三方开源库,允许其使用者驱动 PowerVM 虚拟化。在 pike 中,pypowervm 版本要求将根据需要进行更新,以适应驱动程序功能。
开发人员影响¶
驱动程序 API 没有变化。PowerVM 驱动程序将符合现有的 Nova API。
实现¶
负责人¶
- 主要负责人
efried esberglu thorst
- 其他贡献者
wangqinw adreznec
工作项¶
添加对基本生命周期任务(创建、打开/关闭电源、删除)的支持
添加对基于 OVS 的网络的支持
添加通过 VNC 的控制台支持
将现有的 PowerVM CI 的范围扩大到包括树内 PowerVM 驱动程序。在此过渡期间,将需要为每个 Nova 变更启动两个作业(一个用于树外,一个用于树内)。
依赖项¶
测试¶
所有代码路径都通过标准 Tempest 测试作为我们 CI 的一部分运行。该代码还将包含大量的单元测试。此代码来自树外 nova-powervm 驱动程序。CI 基础设施还将继续支持树外 nova-powervm 驱动程序的自动化测试。
CI 仅对树内驱动程序启用投票。根据我们与 Nova 核心团队的讨论,我们不会为树外驱动程序启用投票。但是,两个运行的日志都是公开可用的,并且我们有专门的团队成员监控和支持 CI。
不需要新的测试。PowerVM 驱动程序旨在符合 Nova 模型。
将进行外部测试以验证性能和可扩展性。这已经在树外驱动程序上完成了。还将验证 RefStack 合规性,但我们预计第一阶段不会通过,因为它默认情况下不具备所有必需的支持。
文档影响¶
我们将与 ID 团队合作创建关于 PowerVM 驱动程序的新文档。还将提出对虚拟机管理程序驱动程序矩阵的更新建议。
参考资料¶
- nova-powervm
概述:PowerVM 的树外 Nova 驱动程序
- pypowervm
概述:第三方开源模块,提供对 PowerVM 管理程序功能的访问。
- networking-powervm
概述:Neutron ML2 机制驱动程序和插件,支持 PowerVM 的共享以太网适配器以及(从牛顿开始)SR-IOV 虚拟 NIC。
- ceilometer-powervm
概述:PowerVM 平台的 Ceilometer 收集器。捕获 I/O、CPU 和内存统计信息。
- 持续集成
概述:CI 服务器的配置
Tempest 配置:https://github.com/powervm/powervm-ci/blob/master/tempest/tempest.conf
历史¶
从历史上看,曾经有其他几个 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 依赖项引入需求项目(Ocata)。
发布名称 |
描述 |
|---|---|
Ocata |
引入 |
Pike |
重新提出 |