添加新的 cinder 附件 API 和多重挂载支持¶
https://blueprints.launchpad.net/glance-store/+spec/attachment-api-and-multiattach-support
使 glance cinder 存储使用 cinder 的新的附件 API 进行镜像操作。
问题描述¶
目前,当我们对 glance 发出同时请求,使用镜像创建多个卷或启动多个实例时,相同的镜像卷需要被多次挂载以服务这些请求,并且由于 glance cinder 存储中缺乏此支持,因此部分请求会失败。
提议的变更¶
Cinder 的新附件 API 在 microversion 3.27 中引入,应该被 cinder 支持,并且在通过 cinderclient 进行调用时需要通过。引入了 2 个新方法,attachment_complete 在 MV 3.44 中,以及在 attachment_create 中传递挂载模式在 MV 3.54 中,这些方法也都是必需的,因此我们将使用 MV 3.54 进行附件相关操作。所有这些更改都是在添加多重挂载处理之前必需的。
这应该是一个两阶段的变更
1) 将现有的 cinder 附件 API 调用替换为新的附件 API 调用
添加 glance cinder 用例的多重挂载处理
备选方案¶
使用 cinder 的镜像卷缓存,该缓存将克隆从镜像创建的第一个可启动卷,后续请求将导致 cinder 的克隆操作,而不是从 glance 下载镜像。
数据模型影响¶
无
REST API 影响¶
无
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
无
性能影响¶
这将减少对 cinder 的调用次数,从而提高性能。例如:initialize_connection 和 attach 调用将被 attachment_update 替换,类似地,terminate_connection 和 detach 调用将被 attachment_delete 替换。
其他部署者影响¶
无
开发人员影响¶
无
实现¶
负责人¶
主要负责人: * whoami-rajat
- 其他贡献者
无
评审人员¶
核心评审人
abhishek-kekane
jokke
rosmaita
smcginnis
工作项¶
将对旧附件方法的现有调用替换为新的附件 API 调用
修改 cinderclient 调用以包含 microversion
添加多重挂载处理代码
添加适当的单元测试
依赖项¶
无
测试¶
单元测试将具有代码覆盖率,并且新的附件代码路径将通过在 glance gate 上运行的 glance cinder tempest 作业进行测试。
文档影响¶
无
参考资料¶
无