实例删除后volume仍然为in-use解决方法

项目场景:

执行openstack server delete 命令后,实例删除成功,但是volume没有删除,volume状态仍然为in-use


问题描述

删除虚拟机后,volume状态仍然显示为in-use状态,如下:
实例删除后volume仍然为in-use解决方法_第1张图片


原因分析:

  1. 将volume从server上删掉,报下面的错
openstack server delete volume <server_id> <volume_id>

在这里插入图片描述
2. 删除volume报下面的错
在这里插入图片描述
分析:nova删除虚机时自动detach卷,但由于rabbitmq或者其他原因导致卸载卷不成功,nova未能对此结果处理,还是将虚机删除掉了,就会导致这种情况。


解决方案:

调用openstack api volume与server的attach关系,此时volume状态变为available状态,再执行cinder delete可以解决。
1.获取openstack token
实例删除后volume仍然为in-use解决方法_第2张图片
2.通过openstack debug命令,查看debug日志获取 volume接口的url

openstack volume show 5d651325-d9d9-412d-bf38-83406ba89cf6 --debug

在这里插入图片描述
3.curl命令查询volume详情

curl -g -i -X GET http://cinder-api.openstack.svc.jinan-lab-arm.mycloud.com:8776/v3/44d58a5a8d914145908e859bc7adf926/volumes/5d651325-d9d9-412d-bf38-83406ba89cf6 -H "Accept: application/json" -H "User-Agent: python-cinderclient" -H "X-Auth-Token: gAAAAABja35GPtPeohPTvwJckmEV3GhJC9O6_CJEelifZl_iuCK5qYzUPEv2vyIRUtGoNF0bwj4HhIWDaew4ac2jtVCz8chH-YTvtFMf8sxUmm0GoCRu8ymsIAbyLy0E4gBpD324aH7WwkvA3ejyH90xiEpAauxyJXgFTZItaTnBOHM1QuVSuMM"

实例删除后volume仍然为in-use解决方法_第3张图片
4.获取挂载id,attachment_ids的参数就是挂载id,如下:
实例删除后volume仍然为in-use解决方法_第4张图片
5.执行以下命令恢复卷的状态为available

curl -g -i -X POST http://cinder-api.openstack.svc.jinan-lab-arm.mycloud.com:8776/v3/44d58a5a8d914145908e859bc7adf926/volumes/5d651325-d9d9-412d-bf38-83406ba89cf6/action -H "Accept: application/json" -H "Content-Type: application/json"   -H "User-Agent: python-cinderclient" -H "X-Auth-Token: gAAAAABja35GPtPeohPTvwJckmEV3GhJC9O6_CJEelifZl_iuCK5qYzUPEv2vyIRUtGoNF0bwj4HhIWDaew4ac2jtVCz8chH-YTvtFMf8sxUmm0GoCRu8ymsIAbyLy0E4gBpD324aH7WwkvA3ejyH90xiEpAauxyJXgFTZItaTnBOHM1QuVSuMM" -d '{"os-detach": {"attachment_id": "119a1240-bd1a-4967-ae18-ffc451a0ba02"}}'

实例删除后volume仍然为in-use解决方法_第5张图片
6.再次查看volume状态为available,如下:
实例删除后volume仍然为in-use解决方法_第6张图片
7.删除卷,cinder delete,删除成功
在这里插入图片描述

你可能感兴趣的:(openstack,openstack)