Openstack无法删除云硬盘

背景:

Openstack kilo版本,终止了云主机之后,发现无法删除对应的云硬盘,删除提示报错为云硬盘的状态不是错误或者可用状态,于是切换至admin用户,手动更新云硬盘的状态至错误状态

删除步骤:

查看云硬盘状态:

# cinder list |grep error                           
| 2e641c12-79bf-463b-b65b-6e81534ececa | error  |    hyp_001    |  50  |      -      |   true   |                                      |
| 57a8ff48-4b9e-4dfd-b038-bbf8bc3f13d3 | error  |    hyp_002    |  50  |      -      |   true   |                                      |

命令行删除,提示报错说还有依赖的快照。

# cinder delete 2e641c12-79bf-463b-b65b-6e81534ececa
Delete for volume 2e641c12-79bf-463b-b65b-6e81534ececa failed: Invalid volume: Volume still has 1 dependent snapshots. (HTTP 400) (Request-ID: req-5ba025fb-5a61-422b-b00a-556e19083bd5)
ERROR: Unable to delete any of the specified volumes.

查看快照:

# cinder snapshot-list|grep hyp
| 1806ff4c-558b-4a99-808f-1998163d5692 | 2e641c12-79bf-463b-b65b-6e81534ececa | deleting |  snapshot for hyp_001_初始化  |  50  |
| 3cb470d2-4098-4975-a321-2bb85cf1e91a | 57a8ff48-4b9e-4dfd-b038-bbf8bc3f13d3 | deleting |  snapshot for hyp_002_初始化  |  50  |

发现快照处于deleting状态,一直是这样

查看ceph池,选择hyp_001的id号

# rbd ls -p volumes|grep 2e641c12-79bf-463b-b65b-6e81534ececa
volume-2e641c12-79bf-463b-b65b-6e81534ececa

以上可知,删除不了云硬盘是硬盘它有依赖的快照,但是快照无法删除的原因就不知道了,没有办法,只能采取暴力手段,进入元数据库。

mysql> select id,status,volume_id,display_name from snapshots where volume_id = '2e641c12-79bf-463b-b65b-6e81534ececa';  
+--------------------------------------+----------+--------------------------------------+--------------------------------+
| id                                   | status   | volume_id                            | display_name                   |
+--------------------------------------+----------+--------------------------------------+--------------------------------+
| 1806ff4c-558b-4a99-808f-1998163d5692 | deleting | 2e641c12-79bf-463b-b65b-6e81534ececa | snapshot for hyp_001_初始化    |
+--------------------------------------+----------+--------------------------------------+--------------------------------+

删除元数据库中的数据

元数据cinder库中的表snapshots可以查看到hyp_001的快照的信息,删掉它

mysql> delete from snapshots where volume_id = '2e641c12-79bf-463b-b65b-6e81534ececa';
Query OK, 1 row affected (0.00 sec)

再到命令行中删除云硬盘,查看发现已经删掉了

# cinder delete 2e641c12-79bf-463b-b65b-6e81534ececa
# cinder list |grep error                           
| 57a8ff48-4b9e-4dfd-b038-bbf8bc3f13d3 | error  |    hyp_002    |  50  |      -      |   true   |                                      |

检查快照和ceph池,发现也已经没有了

# cinder snapshot-list|grep hyp
| 3cb470d2-4098-4975-a321-2bb85cf1e91a | 57a8ff48-4b9e-4dfd-b038-bbf8bc3f13d3 | deleting |  snapshot for hyp_002_初始化  |  50  |

# rbd ls -p volumes|grep 2e641c12-79bf-463b-b65b-6e81534ececa

 用同样的方法把另外一个也删掉。

 

总结:

1、删除的时候注意id核volume-id两个字段,不要弄混掉了;

2、测试环境,暴力解决问题还是不太好,注意检查日志来对症下药。

转载于:https://my.oschina.net/xiaozhublog/blog/706571

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值