共計 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 版本虛擬機無法刪除云硬盤該怎么辦就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。