cinder卷删除不掉解决方法

现象:创建的卷虚机人为或代码干预导致虚机删除掉但是卷还在in-use的状态,此种情况想要detach卷报错虚机不存在,想删除卷也删不掉

原因为: nova删除虚机时自动分离卷,但由于rabbitmq或者其他原因导致卸载卷不成功,但nova未能对此结果处理,还是将虚机删除掉了,就会导致这种情况

#可以发现虚拟机已经删除掉,但是卷还在挂载着
[root@controller ~]# openstack volume list
+--------------------------------------+------+--------+------+---------------------------------------------------------------+
| ID                                   | Name | Status | Size | Attached to                                                   |
+--------------------------------------+------+--------+------+---------------------------------------------------------------+
| 77664599-c422-4f32-afe8-49baa5f8c9f2 |      | in-use |   20 | Attached to b4c93fae-6177-47c0-bebe-094dd73f2614 on /dev/vda  |
+--------------------------------------+------+--------+------+---------------------------------------------------------------+

#无法删除的卷,导致报错,提示需要修改卷状态
[root@controller ~]# openstack volume delete 77664599-c422-4f32-afe8-49baa5f8c9f2
Failed to delete volume with name or ID '77664599-c422-4f32-afe8-49baa5f8c9f2': Invalid volume: Volume status must be aor \
error or error_restoring or error_extending or error_managing and must not be migrating, attached, belong to a groupapshots \
or be disassociated from snapshots after volume transfer. (HTTP 400) (Request-ID: req-47970140-7b78-4cd1-b84b-9b5)
1 of 1 volumes failed to delete.

#用命令改变卷的状态为available
[root@controller ~]# cinder reset-state 77664599-c422-4f32-afe8-49baa5f8c9f2 --state available
[root@controller ~]# openstack volume list
+--------------------------------------+------+-----------+------+------------------------------------------------------+
| ID                                   | Name | Status    | Size | Attached to                                          |
+--------------------------------------+------+-----------+------+------------------------------------------------------+
| 77664599-c422-4f32-afe8-49baa5f8c9f2 |      | available |   20 | Attached to b4c93fae-6177-47c0-bebe-094dd73f2614 on  |
+--------------------------------------+------+-----------+------+------------------------------------------------------+

#第二次删除还是导致失败
[root@controller ~]# cinder delete 77664599-c422-4f32-afe8-49baa5f8c9f2
Delete for volume 77664599-c422-4f32-afe8-49baa5f8c9f2 failed: Invalid volume: Volume status must be available or error_restoring \
or error_extending or error_managing and must not be migrating, attached, belong to a group, have snapshots associated from snapshots \
after volume transfer. (HTTP 400) (Request-ID: req-156ca339-2971-4ff3-a7a3-520f3a088a5e)
ERROR: Unable to delete any of the specified volumes.

解决方法如下:

  1. 在控制节点先show一下问题卷 加上debug 调取接口
cinder --debug show 77664599-c422-4f32-afe8-49baa5f8c9f2
#获取到的链接
http://controller:8776/v3/6535a5a0ef0c4e9caa42912d02bd7d54/volumes/77664599-c422-4f32-afe8-49baa5f8c9f2
  1. 获取token认证
openstack token issue
#获取的token值
gAAAAABexeM59k1IxnaprSQnMRf0eMI8lBD9Q5jlBC97A-8thQ8PFsljLuxqoGo98cnwPfOAbNny7r0T14etakmsL7Smfmjlb25frlSnSqG5mCZOp5chJ0OYtc7P2paGgjn6STlkGxFoaIH7lCe0ehwB-DjYWrCpjC-oH9Wrh1UwaE4Vvmf29rw
  1. 最后要去数据库查询

volume_attachment表格中这个卷对应的挂载的 id

MariaDB [(none)]> use cinder
MariaDB [cinder]> select * from volume_attachment where volume_id='77664599-c422-4f32-afe8-49baa5f8c9f2';
#获取到的id值
5ed3a5ca-c6b3-4fcd-899a-146f3cf9db80
  1. 将以上查询到的信息集成修复接口

curl -g -i -X POST http://controller:8776/v3/6535a5a0ef0c4e9caa42912d02bd7d54/volumes/77664599-c422-4f32-afe8-49baa5f8c9f2/action -H "User-Agent: python-cinderclient" -H "Content-Type: application/json" -H "Accept: application/json" -H "X-Auth-Token: gAAAAABexeM59k1IxnaprSQnMRf0eMI8lBD9Q5jlBC97A-8thQ8PFsljLuxqoGo98cnwPfOAbNny7r0T14etakmsL7Smfmjlb25frlSnSqG5mCZOp5chJ0OYtc7P2paGgjn6STlkGxFoaIH7lCe0ehwB-DjYWrCpjC-oH9Wrh1UwaE4Vvmf29rw" -d '{"os-detach": {"attachment_id": "5ed3a5ca-c6b3-4fcd-899a-146f3cf9db80"}}'

控制节点执行完此命令 重新查询该卷 已经变为了available状态 重新执行cinder delete id 删除掉就可以了;

[root@controller ~]# openstack volume list
+--------------------------------------+------+-----------+------+-------------+
| ID                                   | Name | Status    | Size | Attached to |
+--------------------------------------+------+-----------+------+-------------+
| 77664599-c422-4f32-afe8-49baa5f8c9f2 |      | available |   20 |             |
+--------------------------------------+------+-----------+------+-------------+
[root@controller ~]# cinder delete 77664599-c422-4f32-afe8-49baa5f8c9f2
Request to delete volume 77664599-c422-4f32-afe8-49baa5f8c9f2 has been accepted.
[root@controller ~]# openstack volume list
为空

ceph存储上也被删除

#删除前
[root@cephnode01 ~]# rbd ls volumes
volume-77664599-c422-4f32-afe8-49baa5f8c9f2
#删除后
[root@cephnode01 ~]# rbd ls volumes
为空

你可能感兴趣的:(cinder卷删除不掉解决方法)