无需驱动交互即可从数据库中删除对象¶
https://blueprints.launchpad.net/cinder/+spec/cinder-delete-from-db
问题描述¶
当服务不可用时,无法删除卷、备份或快照。没有办法绕过驱动交互。
用例¶
有时,OpenStack 管理员会拔掉一些存储后端以使用新的后端。他们后来意识到需要清理各种对象。
提议的变更¶
通过 cinder-manage,我们将会在卷删除命令下添加一个 –db-only 开关。快照将级联删除。我们还将实现备份子命令,其行为类似于卷子命令。
备选方案¶
已知的唯一解决方法是手动更新多个表并将状态设置为“已删除”以删除各种对象。
数据模型影响¶
无
REST API 影响¶
无
安全影响¶
无
Active/Active HA 影响¶
无
通知影响¶
无
其他最终用户影响¶
这些命令将可供操作员使用
cinder-manage volume delete [--db-only] <volume-id>
cinder-manage backup delete [--db-only] <backup-id>
性能影响¶
无
其他部署者影响¶
无
开发人员影响¶
无
实现¶
负责人¶
主要负责人:David Vallee Delisle <dvd@redhat.com>
工作项¶
将在 cinder-manage 命令下进行以下更改:* 在卷删除命令中添加一个 –db-only 开关。* 添加一个支持 –db-only 的备份删除子命令。* 删除卷时,快照将级联删除。
将在 rpcapis 中进行以下更改:* 在删除函数中添加一个 db_only 参数
将在 manages 中进行以下更改:* 在删除函数中添加一个 db_only 参数
依赖项¶
无
测试¶
创建测试以验证删除卷和删除备份是否真的在删除。
文档影响¶
cinder-manage 的手册页以及任何相关的文档都将被更新。
参考资料¶
无