添加 z/VM 支持¶
https://blueprints.launchpad.net/nova/+spec/add-zvm-driver-rocky
在 nova 树中添加 z/VM 支持。
z/VM 提供高度安全和可扩展的企业云基础设施,以及在 IBM z 系统和 IBM LinuxONE 上高效运行多种关键应用程序的环境,支持比任何其他平台在单个占位符上更多的虚拟机。这些 z/VM 虚拟机可以运行 Linux、z/OS 等。详细信息请参见 http://www.vm.ibm.com/
问题描述¶
z/VM
z/VM 驱动程序团队参考之前的 virt 驱动程序集成,已经满足 Nova 核心团队提出的以下要求。
CI 正在运行并发布针对 Nova 和 nova-zvm 驱动程序的结果:结果是公开可用的,CI 的配置也是公开的。根据 Nova 核心团队的指导,CI 针对所有 Nova 变更集运行,但目前未对补丁进行投票,因为它不是树内驱动程序。 CI 测试日志 也公开可用。
z/VM 本身以外的外部用户:公司正在积极使用 z/VM 驱动程序集成到 OpenStack 云中,例如 SuSE;Canonical 和 RHEL 正在讨论中。目前 Openmainframe 项目 是主导的大型技术社区和主框架启用开放项目,包括 openstack 其他开源项目。
展示对驱动程序的承诺:我们的第一个支持版本是 Icehouse,并且我们继续维护和扩展驱动程序,后续每个版本都遵循稳定分支支持模型。我们致力于遵循 OpenStack 方式 开发驱动程序,采用开源代码、开放设计/开发和开放社区。z/VM 驱动程序符合 Nova 计算驱动程序设计,并遵循社区开发方向。我们还确保开发团队积极参与上游开发 - 参加 IRC 会议、中期周期和峰会。
z/VM 驱动程序的 Config Drive¶
现在有两种方法可以将元数据从 openstack (nova) 传递到生成的服务器,一种是 Metadata,另一种是 Config Drive。
目前,z/VM 驱动程序仅支持 Config Drive,即 nova 计算服务打包由 nova 社区的 configure drive 构建生成的 ISO9660 或 vfat 格式,服务器在云 Active 引擎之前挂载该文件(默认情况下是 cloud-init);当 cloud-init 启动时,它会检查输入的元数据并相应地更新服务器的 IP、主机名和其他项目。
元数据服务是一个可选功能,并被某些功能期望,而某些部署者由于安全问题而不使用它,z/VM 驱动程序团队将在不久的将来添加对元数据服务的支持(可能通过另一个 nova-spec)。
特殊的 Active 引擎¶
根据上述讨论,cloud-init 是目前云中主要和最常用的 Active 引擎。cloud-init 具有 Config Drive 的先决条件,但 z/VM 本身无法在虚拟机的定义中模拟 iso9660 格式的磁盘,因此 z/VM 驱动程序团队引入了一个名为 zvmguestconfigure 的小型 Active 引擎。
zvmguestconfigure 是 z/VM Cloud Connector 的一部分,nova z/VM 驱动程序使用它来管理 z/VM。它记录在 z/VM 镜像构建 中,包括为什么需要 Active 引擎以及它的位置,此外,除了用户创建镜像外,它还提供了有关不同发行版的说明集。
基本工作流程将是
Nova 启动一个实例,并通过 config drive 创建元数据
config drive (ISO9660) 从 nova 计算节点发送到生成的实例
生成的实例已经安装了 zvmguestconfigure Active 引擎
在启动阶段,zvmguestconfigure 将获取 config drive 并挂载它
cloud-init 将查找 config drive 并处理更新
Neutron z/VM 代理¶
z/VM nova 驱动程序需要与 neutron 合作以添加 NIC。该代理是 neutron zvm 代理,目前它使用 ML2 插件。
用例¶
用户应该能够部署一个基于 glance 的镜像,并在具有 z/VM 超visor 的系统上进行基本的网络配置。该镜像可以是 Linux (RHEL, SLES, Ubuntu 等)。
提议的变更¶
提出的更改是提交一系列补丁,构建足够的基功能以支持在 z/VM 上部署基于 glance 的虚拟机。这部分驱动程序代码(以及相关的单元测试)将支持诸如
基本的 VM 生命周期任务(生成、关机、重启、快照等)
实例状态
控制台输出
使用 z/VM neutron 代理的 Flat/VLAN 网络
驱动程序的这一阶段旨在获得 支持矩阵 中 强制 和 可选 选项的最低限度。
我们认为这是一个长期的旅程。我们将继续努力在后续版本中将更多功能引入 Nova 树。
现在在树外驱动程序中支持的一些特定功能,这些功能将作为不属于本次蓝图的未来蓝图的一部分
调整大小
冷迁移
备选方案¶
集成整个驱动程序。这对于一个版本来说太过于庞大,并且需要过多的核心评审人员时间。
不集成驱动程序。由于有用户在使用该驱动程序,并且 Nova 的方向是将驱动程序置于树内,因此这不是一个选项。
数据模型影响¶
无
REST API 影响¶
无
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
无
性能影响¶
无
其他部署者影响¶
希望使用 z/VM 驱动程序的部署者需要在他们的 conf 中将 compute_driver 更改为 zvm.zVMDriver。树内 z/VM 驱动程序最初将具有非常有限的功能集。如上所述,他们可以安装树外 nova-zvm 驱动程序以获得额外的功能,同时团队在多个版本中努力集成驱动程序。
对于首次集成,部署者除了设置 compute_driver 类型外,将不需要任何配置。该驱动程序将在超visor 支持矩阵中记录(以及其树内的功能)。
开发人员影响¶
无
升级影响¶
无
实现¶
负责人¶
- 主要负责人
jichenjc rhuang ychuang
其他贡献者
工作项¶
添加对基本生命周期任务(创建、打开/关闭电源、删除)的支持
添加控制台输出
将现有的 z/VM CI 范围扩大到包括树内的 z/VM 驱动程序。在过渡期间,每次 Nova 更改都需要启动两个作业(一个用于树外,一个用于树内)。
依赖项¶
无
测试¶
所有代码路径都将通过标准的 Tempest 测试作为我们 CI 的一部分运行。该代码还将包含大量的单元测试。此代码将来自树外 nova-zvm 驱动程序。CI 基础设施还将继续支持树外 nova-zvm 驱动程序的自动化测试。
文档影响¶
由于现在没有 ID 团队,我们将主要致力于以下文档和其他与 virt 驱动程序相关的文档
https://docs.openstack.org/nova/latest/admin/arch.html#hypervisors https://docs.openstack.org/nova/latest/admin/configuration/hypervisors.html https://docs.openstack.org/developer/nova/support-matrix.html
参考资料¶
- nova-zvm
概述:用于 z/VM 的树外 Nova 驱动程序
源代码:https://git.openstack.org/cgit/openstack/nova-zvm-virt-driver/
- neutron-zvm-agent
概述:开源 z/VM neutron 代理
源代码:https://git.openstack.org/cgit/openstack/networking-zvm/
- ceilometer-zvm
概述:用于 z/VM 平台的 Ceilometer 收集器。捕获 I/O、CPU 和内存统计信息。
源代码:https://git.openstack.org/cgit/openstack/ceilometer-zvm/
历史¶
z/VM 早在 2013/2014 年左右就提交了补丁并与 nova 社区进行了一些讨论。当时我们缺乏 CI,因此我们遵循了创建 CI 的指南并做了更多的社区贡献。
我们还投入了更多的 CI 测试和与更广泛的社区(如上述 Open mainframe 项目 https://www.openmainframeproject.org/)的更多合作,我们希望继续我们的努力,使 z/VM 被接受为树内插件。
发布名称 |
描述 |
|---|---|
Queens |
介绍、批准、实施开始 |
Rocky |
重新提出 |