CinderVictoriaMidCycleSummary
目录
简介
在 Victoria (虚拟) PTG 上,我们决定举行两次中期会议,每次两个小时。第一次会议将在 Cinder 规范冻结之前进行,第二次会议将在新功能状态检查点附近进行。因此,中期会议将在 R-16 周和 R-9 周进行(以免与 Kubecon 冲突,Kubecon 在 R-8 周举行)。
第一次会议:R-16:2020年6月24日
我们通过 BlueJeans 从 UTC 14:00 到 16:00 举行会议。
etherpad: https://etherpad.openstack.org/p/cinder-victoria-mid-cycles
录像: https://www.youtube.com/watch?v=WS8ylhbjT2s
Cinder 项目更新
针对 stein (2.8.6) 和 train (2.10.4) 的新 os-brick 版本已经发布,以解决 Bug #1883654(修复 OSSN-0086 在 Python 2.7 上不起作用的问题)。包含新 os-brick 库的 cinder 版本在 gate 上出现了一些问题;train (15.3.0) 应该今天发布,stein (14.2.0) 很快也会发布。
您可以通过查看 Launchpad 来跟踪已发布的内容
- https://launchpad.net/cinder/+series
- https://launchpad.net/os-brick/+series
- https://launchpad.net/python-cinderclient/+series
我正在寻找一位 Cinder 的“发布负责人”志愿者。您不必是核心贡献者,您只需要是 Cinder 社区中负责任且活跃的成员。如果您有兴趣了解更多信息,请通过电子邮件或 IRC 与我联系。
我们同意尝试每月举行一次视频会议的实验;它将在每周例会时间(每个月的最后一个星期三)进行(我们将根据需要进行调整,以解决冲突)。所以第一次会议将在 7 月 29 日举行。我们将对要使用的视频会议软件进行投票。
操作
- rosmaita - 发送关于每月视频会议的调查
备份
Ivan 要求对他的“备份后端配置”规范提供一些反馈,https://review.opendev.org/#/c/712301/
他的问题是关于数据模型,他是否应该重用现有表来处理 volume_types,因为他需要 backup_types 的内容非常相似,或者他是否应该添加新表。经过一些讨论,团队一致认为新表更安全,并且在 volume_types 和 backup_types 随着开发而变化时,更灵活。
操作
- e0ne - 将更新 https://review.opendev.org/#/c/712301/
移除 Brocade FCZM 驱动?
Brocade 光纤通道区域管理器驱动程序在 Ussuri 中被声明为“不受支持”,并将在 Victoria 中通过 https://review.opendev.org/#/c/696857/ 移除。
供应商宣布在 Train 之后不再提供支持,并且不打算支持 python 3:https://docs.broadcom.com/doc/12397527(警告:打开 PDF)。因此,我们在 Ussuri 和 Victoria 中处于一种奇怪的境地,因为供应商明确否认了 python 3 的支持,而我们只支持 python 3。但我们不想只剩下 1 个 FCZM,所以我们之前同意将驱动程序保留在树中,但标记为“不受支持”,只要我们认为它可以在 Python 3 下运行。
现在我们有证据表明 initialize-connection 在 python 3.6 下会失败(代码期望一个列表,但得到一个迭代器)。我们目前不知道这个问题在代码中有多普遍,而且我们也没有第三方 CI 来验证更改。但对于 Cinder 来说,只有一个 FCZM 驱动程序看起来不太好。此外,我们不知道移除它会影响多少人。
经过一些讨论,我们决定执行以下操作
1. rosmaita 将发布一个删除 Brocade FCZM 驱动程序的补丁,但我们将将其标记为 WIP。
2. Gorka 将尝试抽出时间来研究它,看看他是否可以修复它。如果他不能,我们将继续删除它。
3. 同时,rosmaita 将向 ML 发送一封说明情况和存在删除补丁及日期的邮件;希望受到影响的人会站出来告诉我们。
4. 我们将在中期会议的第二部分(大约 7 周后)回顾这种情况。
操作
- rosmaita - 发布 WIP 删除补丁 - https://review.opendev.org/#/c/738148/
- rosmaita - 发送给 ML 的邮件 - http://lists.openstack.org/pipermail/openstack-discuss/2020-June/015692.html
- geguileo - 评估驱动程序的修复可能性
- 有兴趣的人 - 联系 geguileo 了解您可以做些什么来提供帮助
卷列表查询优化
haixin 正在推动这项工作。他有一个规范和一个补丁
大致来说,问题是如果用户尝试按 status=error 过滤卷详细列表,则一些处于错误状态的卷(特别是那些在“管理”过程中发生错误时处于错误状态的卷)不会出现在列表中。该建议是让所有处于错误状态的卷都显示出来
看起来这可能需要 API 更改,因此我们讨论了一个新的微版本,并可能添加某种标志来显示所有错误。您可以在 etherpad 上阅读一些有趣的观点,https://etherpad.opendev.org/p/cinder-victoria-mid-cycles
我有一个总结讨论内容并在规范评审上发表评论的任务,因此您可以去那里查看摘要:https://review.opendev.org/#/c/726070/
操作
- rosmaita - 总结规范上的讨论(完成!)
- haixin - 需要在规范、etherpad、ML 或 IRC 上解释他计划如何实现更改(看起来这里有 3 个不同的错误)
- 有兴趣的人 - 确保当卷进入这些“管理”状态时,会创建用户消息,以便向用户提供更多关于发生情况的信息
支持还原到任意快照
xuanyd 提出了这个主题,他有一个提出的规范:https://review.opendev.org/#/c/736111/
目前,Cinder 仅支持还原到最新快照。许多(很多?)存储供应商支持还原到任意快照。Cinder 也应该这样做。
大部分讨论是关于 Cinder 项目的策略,如果一个特性可以以通用的方式实现,那么就应该这样做,并且支持优化的版本的后端可以覆盖通用实现以使用原生支持。由于有一种通用的(虽然效率较低的)方法来支持还原到任意快照,因此暴露此特性必须包括提供通用实现,然后支持它的后端可以宣传使用原生支持。关键点是社区反对将此添加到 API 中,通用实现会引发“未实现”异常。
然后讨论转向通用实现应该如何进行。一个关键问题是,您还原卷到的快照之后会发生什么。这需要在规范中解决,也许以 RBD 作为参考架构。
问题是有多少驱动程序已经原生支持此功能。 Inspur MCS 驱动程序、RBD 驱动程序和 IBM Storwize 驱动程序已经过测试;看起来 Dell EMC SC Series 驱动程序也应该能够做到这一点。
讨论已经在规范评审上引发了热烈的讨论,因此请参阅 https://review.opendev.org/#/c/736111/ 以获取更多详细信息。
操作
- 所有感兴趣的评审员 - 在规范上留下评论
Victoria Milestone-1 评审
这是一个短周期,M-1 上周已经发生。目前的情况是我们没有达到 M-1 的任何目标。因此,未来两周的首要任务是与 Victoria Milestone-1 蓝图 相关的补丁,特别是
- volume-local-cache
- https://review.opendev.org/#/c/663549/ os-brick
- https://review.opendev.org/#/c/700799/ cinder
- https://review.opendev.org/#/c/715762/ tempest 测试用例
- 作为背景
- NFS 加密卷支持
- brick gpg 加密支持
- 新的后端驱动程序 - Hitachi
操作
- 大家 - 审查以上内容!
第二次会议:R-9:2020年8月12日
我们通过 BlueJeans 从 UTC 14:00 到 16:00 举行会议。
etherpad: https://etherpad.openstack.org/p/cinder-victoria-mid-cycles
录像
Cinder 项目更新
下一次 PTG 计划于 2020 年 10 月 26 日至 30 日举行,即峰会之后的一周。参加不收取费用,但基金会希望您注册:http://lists.openstack.org/pipermail/openstack-discuss/2020-August/016424.html
我们在 Victoria 周期中的位置:https://releases.openstack.org/victoria/schedule.html
- 这是 R-9 周(ussuri 周期尾随发布截止日期;ussuri cinderlib 已发布;请参阅 https://launchpad.net/cinderlib/+series)
- 距离 Cinder 新功能状态检查点和驱动程序功能声明还有 1 周
- 距离最终非客户端库发布还有 3 周(R-6)(os-brick)
- 距离 Ussuri 的最终客户端库发布还有 4 周(R-5)
- 距离 Milestone-3 和功能冻结还有 4 周(R-5)
- 距离第三方 CI 合规性检查点还有 4 周(R-5)
- 距离 Victoria 社区目标完成还有 4 周(R-5)
- 距离 RC-1 目标周还有 6 周(R-3)
操作
- rosmaita - 关于 os-brick 截止日期的邮件
- rosmaita - 关于 Cinder 新功能状态检查点的邮件
- rosmaita - 关于驱动特性声明的邮件
- rosmaita - 关于第三方 CI 合规性检查点的邮件
gate 问题
我们目前正在遇到 cinder-tempest-plugin-lvm-lio-barbican 和 cinder-grenade-mn-sub-volbak 作业的问题。
cinder-tempest-plugin-lvm-lio-barbican 失败与 os-brick 中添加的一个新的 bindep 相关,但 cinder 或 cinderlib 并非直接依赖它。我们尝试了各种修复方法,结果好坏参半。Luigi 最终找到了 devstack 认可的解决方法:https://review.opendev.org/#/c/745838/ 看起来这已经修复了 zuul 作业,一旦 QA 团队批准,我们应该就能恢复正常。
Melanie Witt 发现 cinder-grenade-mn-sub-volbak 失败是由 msgpack 的更新引起的,导致 Keystone token 处理出现问题:http://lists.openstack.org/pipermail/openstack-discuss/2020-August/016446.html 一旦她的补丁合并,cinder-grenade-mn-sub-volbak 希望就能通过我们的测试。
操作
- tosky - 向 os-brick bindep.txt 提交补丁,添加关于在添加新的 bindep 时更新 devstack 的注释
Ceph iSCSI 驱动
简而言之,我们将在 Wallaby 早期进行审查和合并。
有很多活动部件,包括驱动程序、CI 作业、brick 更改和 ceph 项目。Walt 报告说事情基本都在收尾阶段。
- 驱动程序似乎可以工作,但对代码结构进行审查会很好——https://review.opendev.org/#/c/662829/
- ceph iscsi CI 作业超时了,但还不清楚原因或位置——需要一些帮助来检查:https://review.opendev.org/#/c/667108/
- 需要审查这个 devstack-plugin-ceph 补丁——https://review.opendev.org/#/c/668667/
- 提醒:cinder 核心团队对 devstack-plugin-ceph 具有审批权限
该驱动程序依赖于 rbd-iscsi-client。一些当前的 Cinder 驱动程序也有客户端,其代码与驱动程序代码一起位于 cinder 树中。Walt 倾向于保持分离,因为 rbd-target-api 可能会更改,并且这使我们可以随意更新 rbd-iscsi-client 内部结构,以跟上 rbd-target-api 的更改,并且 ceph-iscsi 驱动程序将继续工作。共识是这样做有意义,我们应该保持 rbd-iscsi-client 分离。我们将使用“独立”发布模型将其作为 cinder 项目引入,这很有意义,因为其更改与 Ceph 项目相关,而不是 OpenStack。
操作
- cinder 团队 - 审查上述内容
- rosmaita - 开始准备将 rbd-iscsi-client 作为 cinder 项目交付物的文件工作
审查 Brocade FCZM 驱动程序的情况
Brocade FCZM 驱动程序在 Python 3 中无法工作。(Brocade 决定不再支持 Python 2.7)。Gorka 主动获得了 Brocade FC 交换机,以便测试 FCZM 驱动程序,并且他已经提出了补丁来修复它以在 Python 3 中运行:https://review.opendev.org/#/q/project:openstack/cinder+branch:master+topic:brocade
该驱动程序在 Ussuri 中被标记为“不受支持”,并且在 Victoria 中可能会被删除。我们希望将 Gorka 的补丁回溯到 Ussuri(仅支持 Python-3)和 Train(因为这是很多人正在过渡到在 Python 3 中运行的地方,即使 2.7 仍然受支持)。
我们讨论了在 Victoria 中如何处理该驱动程序。大约一年前,我们调整了“不受支持”驱动程序删除策略,以便我们不会在最早的机会立即删除不受支持的驱动程序,以便为驱动程序维护者提供更多时间来使其第三方 CI 正常工作(这是最大的问题)。Brocade 的情况有点不同,因为供应商宣布对 FCZM 驱动程序在 Train 之后不感兴趣。
Gorka 建议他可以使用 Victoria RC-1 运行 CI 测试来验证驱动程序。我们可以在文档和发行说明中明确说明情况。从历史上看,它一直是一个稳定的驱动程序(除了 Python 3 的问题),因此至少是合理的。我们可以在 Wallaby 中期重新审视这种情况。
作为补充说明,团队在六月底宣布了该驱动程序的即将删除:http://lists.openstack.org/pipermail/openstack-discuss/2020-June/015692.html 我们希望获得用户对维护此驱动程序的意愿的反馈,但没有收到任何回复。
操作
- rosmaita - 提交关于文档和发行说明的补丁,如上所述
- geguileo - 为 Brocade FCZM 运行 CI,使用 cinder RC-1
- rosmaita - 回复邮件列表帖子,宣布我们的决定
支持卷重新镜像
我们对 rambo-li 提出的实施卷重新镜像功能的建议进行了快速讨论,该功能已在 Stein 中获得批准,重新定位到 Train,但从未实施。
- cinder 规范需要重新提交到 Wallaby
- 包括使用 Nova 外部事件 API 来通知操作结果的建议
- 需要包括 cinder-tempest-plugin 测试,以确保一切正常工作
- 修改将尝试重新镜像的卷状态
Eric 提到代码可能需要对 NFS 进行显式测试,不能假定它会像其他驱动程序一样工作
操作
- rosmaita - 将 ^^ 放到当前补丁中
- rambo-li - 修改规范
重新审视备份恢复中指定可用区或卷类型的需求
Alan Bishop 提出了一项未实施的 newton 规范,该规范允许为备份恢复 API 指定可用区和/或卷类型,主要是为了让他知道他对从事这项工作感兴趣,并确保社区仍然认为这是一个好主意。他指出最近的 Launchpad 错误表明用户对这个主题感兴趣。共识是这仍然是一个值得实施的功能,而 Alan 恰好是为此人选!
操作
- rosmaita - 移除规范中的当前 assignee,并将其重新定位到 Wallaby
正在进行的镜像加密工作更新
Luzi 向我们介绍了关于正在进行的镜像加密工作的情况。Barbican Secret Consumer API,这是该方案的关键部分,已经基本完成。考虑到 Victoria os-brick 发布只有 3 周的时间,我们同意这看起来像一个 Wallaby 功能了。
正在进行的 os-brick 补丁是 https://review.opendev.org/#/c/709432
操作
- rosmaita - 重新定位 Wallaby 的规范
加密卷的大小调整(继续)
问题(大致):加密卷必须有一个标头,这会占用一些空间;当您从非加密卷类型重新调整“完整”卷到加密卷类型时,没有足够的空间用于标头,因此重新调整失败。
Sofia 报告了她在 cinder 每周会议上制定的一种方案的努力,即允许在重新调整时指定新的大小(或“允许扩展”标志或类似的东西)。问题是驱动程序以不同的方式优化迁移,并且由于我们之前没有新的大小参数,因此没有简单的方法将此信息传递给驱动程序。共识是 Sofia 将编写一个规范来更改驱动程序 API 以启用迁移大小调整,并建议如何/是否处理卷的显示大小与卷的实际大小。她还将准备一份 etherpad,概述这将是什么样子。
操作
- enriquetaso - 编写上述规范和 etherpad
NFS 在线扩展
Lucio 准备了一个专门的 etherpad,其中包含讨论要点,因此请参阅该 etherpad 以获取完整详细信息:https://etherpad.opendev.org/p/fix-nfs-online-extend
计划是让 Nova 执行在线扩展。工作流程大致是 Cinder 被告知扩展到大小 N,Cinder 在 DB 中更新卷的大小,要求 Nova 执行异步操作。Cinder 轮询 nova server-action API 以监视操作的状态。如果扩展失败,Cinder 需要将原始大小恢复到 DB 中。如果 cinder 服务在轮询时关闭,则卷可能会保持不正确的状态。
Gorka 建议我们可以这样做
- 将实际当前大小存储在卷的 admin 元数据中
- 将卷状态保留为扩展中
- 如果 Nova 成功完成操作,则将卷状态更改为使用中
- 如果 nova 失败,则恢复
- 在服务启动时添加清理程序,以检查 Nova 的操作中处于扩展状态的卷,这些卷具有 admin 元数据内容,并且如果已成功完成,则将状态更改为使用中,如果失败,则恢复它
之前有人抵制让此操作依赖于轮询外部 API,但共识似乎是对于这种情况,这是我们能做的最好的。
Sofia 正在使用 cinder-tempest-plugin 测试来测试常规和加密卷的在线扩展,因此我们将能够使用 NFS 后端来验证它是否有效。Lee Yarwood 目前正在处理与加密 NFS 卷相关的错误:https://bugs.launchpad.net/cinder/+bug/1888680
之前有人提出了在创建快照时确保在线扩展不会同时进行的问题;Lucio 提交了一个补丁来在创建快照期间锁定卷。
一个悬而未决的问题是,是否可以在启用 multiattach 时安全地执行此操作;Lucio 将研究一下。
最后一点是,Windows SMB 驱动程序显然可以执行此处概述的内容(即,扩展发生在 Nova 端)。值得研究他们是如何做到的。
操作
- lseki - ping lyarwood,查看 LP Bug #1888680 的状态
- lseki - PoC 如果 Nova 可以扩展 multiattached NetApp NFS 卷
- lseki - 研究 Windows SMB 驱动程序(也许与 Cloudbase 的 Lucian Petruț 交谈)
os-brick 过滤器
Rajat 提出了一个关于 os-brick rootwrap 过滤器的问题,这些过滤器在 os-brick 代码库的 etc/os-brick/rootwrap.d/os-brick.filters 文件中定义,即我们是否需要它们,因为 nova 和 cinder 和 glance_store 在自己的文件中定义了这些过滤器?
事实证明 os-brick 文件未实际使用的原因是,更广泛的 openstack 社区有一种感觉,库不应该运送配置文件。有一个未批准的 devstack 补丁来自 2015 年,您可以在其中跟踪讨论:https://review.openstack.org/#/c/207677/
因此,归根结底的是,使用 os-brick 的人需要是 root(如使用 python-brick-cinderclient-ext 建议的那样),在这种情况下不需要过滤器,或者必须自己配置过滤器(在这种情况下,他们将如何知道需要哪些过滤器)?共识是现在应该保留这些文件,作为库使用者需要添加到其 rootwrap 配置中的过滤器的文档。
操作
- 每个人 - 如果有一个更彻底的解决方案,那就太好了;也许有人可以想到一些东西
备份驱动程序
我们时间不够了,所以这将推迟到每周 Cinder 会议。
- 我们是否应该要求备份驱动程序的第三方 CI(我们目前没有)?
- 最近 Ivan 发现 IBM TSM 备份驱动程序损坏了,该怎么办?(我已向 IBM 的某人发送电子邮件,试图获取一些信息。)
操作
- rosmaita - 跟进上述内容