项目场景:
执行openstack server delete <server_id>命令后,实例删除成功,但是volume没有删除,volume状态仍然为in-use
问题描述
删除虚拟机后,volume状态仍然显示为in-use状态,如下:
原因分析:
- 将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
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"
4.获取挂载id,attachment_ids的参数就是挂载id,如下:
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"}}'
6.再次查看volume状态为available,如下:
7.删除卷,cinder delete,删除成功
温馨提示❤
如果操作过程中有遇到问题,可以直接关注并私信我,发送报错问题,我看到后会第一时间回复。