美文网首页OpenStack
cinder卷删除不掉解决方法

cinder卷删除不掉解决方法

作者: Linux丶晨星 | 来源:发表于2020-05-21 10:40 被阅读0次

    现象:创建的卷虚机人为或代码干预导致虚机删除掉但是卷还在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卷删除不掉解决方法

        本文链接:https://www.haomeiwen.com/subject/zttzohtx.html