Openstack kilo版本虚拟机无法删除云硬盘该怎么办

51次阅读
没有评论

共计 2571 个字符,预计需要花费 7 分钟才能阅读完成。

这篇文章将为大家详细讲解有关 Openstack kilo 版本虚拟机无法删除云硬盘该怎么办,文章内容质量较高,因此丸趣 TV 小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

背景:

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、测试环境,暴力解决问题还是不太好,注意检查日志来对症下药。

关于 Openstack kilo 版本虚拟机无法删除云硬盘该怎么办就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计2571字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)