删除cinder僵尸卷
问题描述:
最近清理openstack环境,在删除cinder云硬盘时,出现数据删不掉,一直处理于deleteing状态。
查询/var/log/cinder下面的日志信息,无报错。于时开始地毯式的搜索解决问题的办法,无意间在网上找到一篇文章,用于处理cinder中僵尸卷。附地址:
http://blog.csdn.net/gaoxingnengjisuan/article/details/20871731
解决办法如下:
1、针对lvm,可以用命令lvdisplay列出所有卷的信息,如果现在应用命令lvremove来删除相应的卷,则会提示要删除的卷正在使用中,所以我们使用命令lsof查看相应卷所占用的进程,然后kill这个进程;
2、应用命令lvremove来删除相应的卷;
解决过程如下:
1、通过lvdisplay |grep查询cinder对应的卷地址。
lvdisplay | grep "3a615ad5-5880-4b68-b1af-f9241ecd9287"
2、通过lsof | grep查询占用cinder卷的端口
lsof| grep "3a615ad5-5880-4b68-b1af-f9241ecd9287" kill-9 76568
3、通过lvremove删除相应的卷
lvremove /dev/cinder-volumes/volume-3a615ad5-5880-4b68-b1af-f9241ecd9287结果报错: device-mapper: remove ioctl on failed: Deviceor resource busy 。设备繁忙
4、dmsetupinfo -c /dev/cinder-volumes/volume-3a615ad5-5880-4b68-b1af-f9241ecd9287 查看是否被打开
可以看到open为4说明它被打开了,所以remove不掉。
5、fuser -m /dev/cinder-volumes/volume-3a615ad5-5880-4b68-b1af-f9241ecd9287 查看是谁打开的
我们可以看到有四个进程打开/dev/dm-5
6、把占用设备的进程杀掉
kill -9 58638 76788 78918 800507 、重新执行第 4 和 5 步,验证是否还有进程占用
从上图可以看到open为0,表示现在没有进程占用
8 、重复第 3 步操作,通过 lvremove 删除相应的卷
删除成功!
9、验证卷是否存在
volume-3a615ad5-5880-4b68-b1af-f9241ecd9287已被删除!
10、进入系统,更改需要删除卷状态为“可用配额”,然后“删除卷”
操作完成!