我们有一台在 CentOS 6.7 服务器上运行的 KVM 机器,并且已经删除了虚拟机。但是,分配给虚拟机的逻辑卷仍保留在系统上,我找不到删除它的方法。
我尝试了所有明显的命令,但都没有成功,例如:
[root@server ~]# lvremove /dev/vg/test
Logical volume vg/test is used by another device.
[root@server ~]# lvchange -an -f /dev/vg/test
Logical volume vg/test is used by another device.
[root@server ~]# lvscan | grep /dev/vg/test
ACTIVE '/dev/vg/test' [10.00 GiB] inherit
[root@server ~]# dmsetup remove vg-test
device-mapper: remove ioctl on vg-test failed: Device or resource busy
额外命令输出:
[root@server ~]# mount -l
/dev/md2 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/md0 on /boot type ext2 (rw)
/dev/md1 on /tmp type ext4 (rw)
/dev/mapper/vg-backup on /backups type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
[root@server ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/md2 96G 20G 72G 22% /
tmpfs 7.8G 0 7.8G 0% /dev/shm
/dev/md0 591M 184M 377M 33% /boot
/dev/md1 283M 2.1M 266M 1% /tmp
/dev/mapper/vg-backup
197G 19G 169G 10% /backups
我怎样才能删除这个逻辑卷?
答案1
在这种情况下,设备映射器似乎正在创建一个算作“正在使用”的映射。通过以下方式检查映射:
dmsetup 信息 -c | grep 测试
它应该给出一些输出,例如[在我的情况下,逻辑卷是 data_vol-data_logVol00]:
dmsetup 信息 -c | grep 数据
数据卷-数据日志Vol00 253 0 L--w 1 5 0 LVM-9BAtA4lpzSlsMEg8Wrpw71qdfegiR4zxdmzG0MggVseJatR12wjqtGY8qYZatIybB
然后使用它来找出是什么阻碍了它:
ls -la /sys/dev/block/253:0/holders/
总计 0 drwxr-xr-x 2 root root 0 6月 5 日 17:49 . drwxr-xr-x 8 root root 0 5月 18 日 20:40 .. lrwxrwxrwx 1 root root 0 5月 24 日 18:25 dm-1 -> ../../dm-1
然后在该设备映射器设备上执行 dmsetup remove:
dmsetup 删除 /dev/dm-1
现在你已经可以使用 lvremove 了:
lvremove -v /dev/vg/test
答案2
我们发现有问题的 LV 上安装了 RAID -ls -l /dev/mapper
然后我们通过运行获得了真正的设备cat /proc/mdstat
。
然后需要使用以下命令停用 RAID 阵列:
mdadm -S /dev/mdXXX
lvremove
之后,可以使用原始问题中发布的命令成功删除 LV 。