CinderBobcatPTGSummary
简介
Cinder 2023.2 Bobcat 周期第七次虚拟 PTG 于 2023 年 3 月 28 日星期二至 2023 年 3 月 31 日星期五举行,每天 4 小时(UTC 1300-1700)。此页面将提供 PTG 期间讨论的所有主题的摘要。
本文档旨在提供每个会话的摘要。更多上下文可在 cinder Bobcat PTG etherpad 上找到
会话已录制,因此要获取任何讨论的全部详细信息,您可以观看/收听录制内容。录制链接位于下面的适当位置。
星期二 3月28日
录像
公告
- 2023.1 (Antelope) 已发布!
ML: https://lists.openstack.org/pipermail/openstack-discuss/2023-March/032872.html
- 2023.1 (Antelope) 在 OpenInfra live 中的项目更新
链接: https://www.youtube.com/watch?v=YdLTUTyJ1eU
PTL 和 TC 互动总结
我们讨论了新贡献者在 OpenStack 中面临的挑战以及我们可以采取哪些步骤来帮助改进流程。讨论的一些困难包括
- Gerrit 界面不太直观
- Devstack 错误不容易调试和解决:Cinder 团队这次没有强制安装 devstack 进行 Outreachy 贡献,这显著提高了贡献。
- OpenStack 需要比许多其他 OSS 项目更多的 devops/linux 风格知识
有一门学习 linux 概念的速成课程
链接: https://missing.csail.mit.edu/
Manila 团队正在为 Outreachy 申请人制作指南
链接: https://wiki.openstack.org/wiki/Outreachy_Applicants_Guide#Outreachy_Applicants_Guide
2023.1 (Antelope) 回顾
什么好?
- 增加了一个核心成员 -- Jon Bernard
什么不好?
- 由于某些修复导致 RC1 和 RC2 延迟
我们应该停止做什么?
- 有人提到他们不喜欢最近在会议议程中添加评审的做法,但另一方面,这确实引起了人们的关注
- Keystone 有周五的“评审马拉松”。他们将管理错误/评审和进行评审分开。 - 我们也有“节日”,但不是每周。
- 最好有更多人加入
- 还提到我们应该有一个会议,人们可以带上自己的补丁进行评审(不一定是 XS)
- 存在一个问题,即驱动程序补丁需要一段时间才能得到第三方 CI 的响应,并且补丁在 CI 通过后仍然会等待
- 我们可以讨论他们的 CI 状态,如果未报告,我们可以标记并警告他们进行修复
我们应该继续做什么?
- XS 评审的节日
- 每月一次的视频团队会议
Cinder 贡献信息
链接: https://tiny.cc/cinder-info
Outreachy 概述
Sofia 提供了一个关于 outreachy 的精彩演示,可以在这里找到。
关于 NFS 加密的快速问题
Dell 和 NetApp 的开发人员是否有兴趣获得其驱动程序的加密支持?如果我们启用通用 nfs 驱动程序中的加密,从它继承的驱动程序会自动获得支持,这不是我们想要的。驱动程序供应商的回复
- NetApp
- Netapp 已经具有后端加密,但他们没有启用它,因为他们没有收到任何客户的加密请求
- Dell
- 没有计划使用 NFS 加密,因为他们的客户没有真正的需求
Cinder 备份改进
Christian 无法参加会议,因此以下是他提到的需要关注的规范。
- 用于解耦备份过程与其他任务的专用状态跟踪的规范
- 允许备份加密的规范
tobias-urdin 提出了 cinder 备份/恢复和可用区之间的一个问题。
- Bug: https://bugs.launchpad.net/cinder/+bug/1949313
- Gorka 认为该错误的根源是我们没有在创建要恢复到的卷时传递可用区
- 一种解决方案是提供一个配置选项来允许跨 AZ 卷备份关系,例如,enable_cross_az_backups = true (默认)
- #action: 某人来完成修复该错误的任务
Rocky 和 Stein 的 EM 与 EOL
我们认为删除分支中的所有作业会很好,但仍然保留它以供协作使用,但存在一些反对该想法的观点
- 如果对我们不合并任何补丁的分支提出多个补丁,我们最终会使补丁相互冲突
- 保持分支 EM 表示它仍在维护(基于扩展维护的命名),这从我们的角度来看不是一个好消息
还有人提到将分支标记为 EOL 但仍然保留它的想法
- 如果我们标记分支为 EOL 并仍然保留它,我们需要说服其他项目关于标记分支为 EOL 但不删除它的提案
另一个与稳定分支相关的问题,应该报告第三方 CI 运行
- 在任何时候都有 3 个活动稳定分支,目前用于 2023.2 开发,它们是 2023.1、Zed 和 Yoga(Xena 将移动到 EM)
- 我们需要在进行此测试时跟踪 ubuntu 和 python 版本
行动项目
- #action: 回复 ML 关于 Cinder 对该情况的看法,即 EOL rocky 和 stein
- #action: Brian 在 etherpad 中总结讨论并在 ML 中发送
星期三 3月29日
录像
镜像加密 - 当前状态
python-barbicanclient 和 castellan 中的补丁已合并,castellan 版本即将发布。
从 cinder 的角度来看,我们将拥有 os-brick 和 cinder(用于创建可引导卷操作)的补丁。
glance 和 cinder 的更改将取决于 os-brick 补丁,因此优先级应该是 os-brick > glance 和 cinder。
团队认为拥有包含 glance、cinder、os-brick 代码路径的 tempest 场景测试会很好。
行动项目
- #action: 审查 os-brick 的更改
FIPS 任务
我们提出了 ubuntu 和 centos 任务。
- Ubuntu
- CentOS
由于 Ubuntu Focal (20.04) 没有支持除 MD5 之外的任何内核,因此我们无法使用 lvm + iscsi 目标。我们可能可以尝试使用 LVM+ NVMe-TCP 或 LVM + nvme-rdma 使用 Soft-RoCE。此外,FIPS 仅在 Focal 上启用,因此 Jammy 目前不符合 FIPS 测试资格。
行动项目
- #action: 审查并合并提出的补丁以开始运行非投票作业,但也要注意失败
Operator Hour
Etherpad: https://etherpad.opendev.org/p/march2023-ptg-operator-hour-cinder
没有运营商加入 cinder operator hour。为了更好地利用时间,我们讨论了一个运营商提出的主题。
- (如何) 减少“所有”部署工具的内存占用,如这里为
- Devstack: https://review.opendev.org/c/openstack/devstack/+/848290
- Triple-O: https://review.opendev.org/c/openstack/tripleo-common/+/845807
- 还有两种减少部署中内存消耗的方法
- 1) 保持块大小较小
- a) 选项名称因每个备份驱动程序而异,例如,对于 RBD 它是 backup_ceph_chunk_size
- 2) 限制备份/恢复操作的数量
- a) 这可以使用 backup_max_operations 配置选项完成
- b) https://docs.openstack.org/cinder/latest/admin/volume-backups.html#backup-max-operations
- 1) 保持块大小较小
- CI 作业中的内存使用情况
- 我们对 mysql 配置进行了一些调整,以减少 devstack 部署中的内存使用量
- https://review.opendev.org/c/openstack/devstack/+/873646
- 默认情况下禁用此功能,但可以在 gate 作业中使用 devstack 变量 MYSQL_REDUCE_MEMORY: true 启用
- 我们还为我们的 DB 添加了索引,以提高查询性能
- 我们对 mysql 配置进行了一些调整,以减少 devstack 部署中的内存使用量
我们准备好使用 SQLAlchemy 2 吗?
oslo.db 13.0.0 将在 2023.2 Bobcat 开发期间发布,并将删除 sqlalchemy-migrate 支持并正式添加对 sqlalchemy 2.x 的支持。为了使 cinder 采用此更改,我们需要合并以下补丁。
还有一项努力是删除 DB 代码中的抽象,并使 sqlalchemy 成为我们唯一的 DB ORM。团队同意我们应该继续推进此工作。
行动项目
- #action: Rajat 查看 cinderlib 中的开放补丁并发布它
- #action: Brian 更改作业定义以针对 2023.1 而不是 cinder/os-brick master 进行测试
- cinderlib 发布模型,更改:https://docs.openstack.org/cinderlib/latest/contributor/contributing.html
- 878943: 继续 2023.1 (Antelope) 开发 | https://review.opendev.org/c/openstack/cinderlib/+/878943
星期四 3月30日
录像
OpenStack Client 更新
我们在 2023.1 Antelope 版本中添加了 OSC 中缺失的命令,并使 cinderclient 和 OpenStack Client 达到一致。以下是我们计划在 2023.2 Bobcat 开发周期中进行的更改
- 我们将使 OSC 成为默认 CLI,并且仅向 OSC 添加新命令,而不向 cinderclient 添加
- 我们仍然需要向 cinderclient 添加 python 绑定
- 我们将改进 openstacksdk 以添加对缺失 cinder 操作的支持
行动项目
- #action: 向 SDK 一致性前进的计划
配额
部分工作已经完成,但不幸的是,Gorka 无法继续进行此工作,因为有其他优先级。Rajat 已经提出要进行此工作,并将进行适当的交接以继续进行此工作。
- #action: Rajat 了解当前状态并从 Gorka 处进行交接
- #action: 所有核心成员在规范最终确定后阅读规范
使用 NFS 的主动/主动支持
这应该可行,但需要一个锁来避免两个服务对同一资源进行操作。
Gorka 有一系列关于主动/主动的文章,应该会有所帮助。
测试
- 通过多个卷服务运行 tempest 进行健全性测试
- 应该使用 browbeat 或 rally 进行更彻底的测试
Glance Cinder 跨项目
RBD 删除问题
当 cinder 和 glance 都使用 RBD 作为其后端,并且我们从镜像创建可引导卷时,将执行 COW 克隆,这将创建依赖链。对于从源卷操作进行克隆也是如此。这种依赖关系在删除父资源时会导致问题。cinder 中的当前工作允许使用 RBD 的垃圾箱功能进行删除。
目前 cinder 中有一个补丁正在进行中。我们需要 glance 中的更改类似于 cinder 才能允许删除具有依赖卷的父镜像。
行动项目
- #action: Eric 对 glance RBD 存储进行 POC 并相应地提出规范
Glance-Cinder-Nova 跨项目
Glance 镜像直接 URL 访问
该工作在 glance 端启动,规范已合并,但是尚未启动实现。
- 2023.1 (Antelope) 规范: https://specs.openstack.org/openstack/glance-specs/specs/2023.1/approved/glance/new-location-info-apis.html
Nova 团队需要一份单独的规范来处理 Nova 的变更,以应对其升级和向后兼容性场景。
Nova 团队对 Nova 端变更的一些需求
- 使用 SDK 代替 glanceclient
- 保持向后兼容性,以处理 SLURP 版本之间的 API 请求
- 为新的 API 保留旧的凭据
- Nova 已经有测试来检查薄克隆是否正常工作
行动项目
- #action: 将 glance 规范重新提案至 2023.2
- #action: 提案一份 Nova 规范,处理 Nova 特定的用例
- #action: Glance 团队开始进行实现工作
Nova Cinder 跨项目
NFS 加密
这是一项为通用 NFS 驱动程序启用加密的工作。此功能需要在 Nova 和 Cinder 两端进行更改。
Nova 团队需要一个蓝图来跟踪工作。由于没有数据库或 API 变更,因此不需要规范。尽可能与 Nova 预置磁盘加密功能共享代码会很好。
行动项目
- #action: 提案一份 Nova 蓝图
- #action: 处理升级问题,确保我们不会调度到较旧的计算节点(使用特定的 trait + 预过滤器)
- #action: 为了测试,Cinder 将在现有的 NFS 作业中启用加密,Nova 可以在我们的定期作业中运行它
允许为每个卷指定 Cinder 卷的硬件模型
目前 Nova 允许我们通过镜像使用 hw_disk_bus 镜像属性选择磁盘模型,例如 hw_disk_bus=virtio 或 hw_disk_bus=sata。如果我们想将其作为卷属性支持,可以使用卷元数据来实现。值的验证将在 o
行动项目
- #action: 磁盘模型可以在卷元数据中设置,Nova 将验证该值是否正确
- #action: 在 Nova 中实现优先级顺序,以使卷元数据字段比 glance 镜像元数据字段具有更高的优先级
3 月 31 日星期五
录像
SLURP/NON-SLURP 节奏的发布说明指南
我们需要处理 SLURP/非 SLURP 版本的发布说明情况。Brian 已经提出了文档的提案。
Gorka 也有关于 SLURP 与非 SLURP 版本中 Cinder 相关变更的文档补丁
行动项目
- #action: 审查 Brian 和 Gorka 提出的文档
RBD 的将卷上传到镜像优化
目前这项工作因服务角色可用以及 RBD 删除修复合并而搁置,从而打破了依赖链。我们也可以在没有 Keystone 引导的情况下使用服务角色,并将其记录为该功能正常工作的必要先决条件。
- 规范: https://specs.openstack.org/openstack/cinder-specs/specs/yoga/optimize-upload-volume-to-rbd-store.html
- POC 补丁: https://review.opendev.org/c/openstack/cinder/+/809523
行动项目
- #action: Rajat 浏览 Nova 文档,并添加有关与服务角色和服务令牌一起使用的文档
- #action: 浏览 RBD 补丁,看看是否需要包含任何自定义更改以使 RBD 删除正常工作
Cinder 重类型用于迁移,将 new_volume_type_id 传递给驱动程序
问题在于 Cinder 在调用迁移卷功能时没有传递 new_volume_type_id。驱动程序团队希望复制通用的迁移流程,即在新主机上创建新卷,并将数据从旧卷复制到新卷。这对于驱动程序来说似乎不是一个合理的方法,因为预计驱动程序的迁移效率很高。驱动程序始终可以通过不实现 migrate_volume 方法来依赖通用的迁移。
行动项目
- #action: 致力于补丁,以允许驱动程序返回可以在重新类型化(与迁移)卷时使用的 extra_specs 属性