1

报错

[root@SBackup ~]# lvremove /dev/vg_storage1/lei
Logical volume vg_storage1/lei in use.

查看是否被占用

[root@SBackup ~]# lvdisplay /dev/vg_storage1/lei |grep open
# open 1 --被打开了

[root@SBackup ~]# fuser -kuc /dev/vg_storage1/lei
/dev/vg_storage1/lei: 1726(root) --也可以看到进程号1726的root用户正在使用

杀掉该进程

ps -ef | grep 1726 

kill 1726

再次删除

[root@SBackup ~]# lvremove /dev/vg_storage1/lei
Do you really want to remove active logical volume lei? [y/n]: y
Logical volume "lei" successfully removed

2

问题描述

k8s环境中需要重新创建 lvm:/dev/mapper/test-vg-test-storage ,该lvm挂载在 /data/prometheus 下面,在删除出现 “Logical volume contains a filesystem in use” 的错误,表明该 lvm 被某个进程占用,但直接使用该lvm的容器已经被清理,使用 lvchange -an /dev/mapper/test-vg-test-storage 去激活该 lvm 时也会出现上述错误。

解决方法

# 使用如下脚本找出所有与该lvm有关的进程
for i in /proc/[0-9]* ; do echo $i >> /tmp/mountinfo ; grep -q "/dev/mapper/test-vg-test-storage" $i/mountinfo ; echo $? >> /tmp/mountinfo ;done

# 结果如下
grep -B 1 '^0$' /tmp/mountinfo
/proc/922
0

分析

因为 prometheus 的 node-exporter 使用了该lv,导致该lv被进程使用卸载不掉。