快照附加卷而不强制

包含您的 Launchpad 蓝图的 URL

https://blueprints.launchpad.net/cinder/+spec/fix-snapshot-create-force

Cinder 需要在快照创建调用中传递“force”标志,才能从附加到实例的卷创建快照。 这是不必要的,因为快照附加卷会产生崩溃一致性快照,这很有用、足够,并且是快照在现实世界中最常见的使用方式之一。

问题描述

大多数用户和其他创建 Cinder 快照的软件实际上想要附加卷的崩溃一致性快照,因此将此作为异常情况没有意义。 代码被编写为始终使用“force”,并且用户了解到创建快照需要它。

在许多虚拟化平台上,多年来,创建在线磁盘的崩溃一致性快照不是异常情况,而是一种正常操作。 它也应该在 Cinder 中实现。

用例

  • 更方便最终用户

  • 为开发人员提供更直观的快照 API

提议的变更

引入一个新的微版本,不再使用“force”标志来控制何时可以为卷创建快照。

这意味着对于处于“available”(可用)或“in-use”(使用中)状态的卷,快照创建将成功。 “force”参数不再需要,但接受“force=true”以减少为当前从代码中传递此标志的用户所需的代码更改。

在此新微版本之后,使用“force=false”的快照创建将被拒绝,视为无效。

备选方案

数据模型影响

REST API 影响

  • 为此次更改引入一个新的微版本

  • 无需添加 force 标志即可成功创建正在使用的卷的快照。

  • 传递 force=True 对于正在使用的卷仍然会成功,就像目前一样,但此参数不再需要此情况。

  • 在新微版本之后,不允许传递 force=False 进行快照创建。 这可能很少使用,并且删除它可以减少关于在正在使用的卷默认可以快照的情况下,“force=False”的含义的歧义。

安全影响

Active/Active HA 影响

通知影响

其他最终用户影响

最少的 cinderclient 更改

性能影响

  • 更少的快照创建调用返回 HTTP 400,导致用户发出第二个带有“force”标志的快照创建调用

其他部署者影响

开发人员影响

实现

负责人

主要负责人

eharney

工作项

  • 修复快照创建

  • 新的 API 微版本

  • Tempest 测试

  • 查看备份创建(类似的问题)

依赖项

测试

  • cinder-tempest-plugin 中的新 tempest 测试

文档影响

  • 最小化

参考资料