“逻辑卷正在使用”-无法删除逻辑卷

“逻辑卷正在使用”-无法删除逻辑卷

在运行 Debian Stretch 的 Xen 4.8 虚拟机管理程序上,我正在尝试删除不再使用的 domU 的逻辑卷。

我停止了 domU 并成功删除了交换文件的逻辑卷。

但是,当尝试删除主磁盘的逻辑卷时,出现错误:

Logical volume xen3-vg/vmXX-disk in use.

由于我需要虚拟机管理程序上的其他 domU 的磁盘空间,因此我成功地将逻辑卷大小调整为 4 MB。

为了清楚知道需要删除哪个逻辑卷,我将逻辑卷重命名为“xen3-vg/deleteme”。

尽管如此:

> lvremove -vf /dev/xen3-vg/deleteme

返回:

Logical volume xen3-vg/deleteme in use.

经过搜索,我尝试了以下所有方法,但都无济于事。

> lvdisplay

--- Logical volume ---
LV Path                /dev/xen3-vg/deleteme
LV Name                deleteme
VG Name                xen3-vg
LV UUID                iL2tB4-4tjc-0dlj-ibBX-nQup-oZsX-g81XXO
LV Write Access        read/write
LV Creation host, time xen3, 2017-01-04 07:16:26 +0100
LV Status              available
# open                 1
LV Size                4.00 MiB
Current LE             1
Segments               1
Allocation             inherit
Read ahead sectors     auto
- currently set to     256
Block device           254:7

> dmsetup info -c | grep deleteme

xen3--vg-deleteme   254   7 L--w    1    1      3 LVM-aAW4aSeLjqJPPWlF1s1WxAgzeXAjWmXiiL2tB44tjc0dljibBXnQupoZsXg81XXO

> lvchange -an -v /dev/xen3-vg/deleteme

Logical volume xen3-vg/deleteme in use.

> lvremove -vf /dev/xen3-vg/deleteme

Logical volume xen3-vg/deleteme in use.

> umount /dev/xen3-vg/deleteme

umount: /dev/xen3-vg/deleteme: not mounted

> lsof | grep "254,7"

[no output]

> lsof | grep deleteme

[no output]

> fuser /dev/xen3-vg/deleteme

[no output]

如果有人能提供有关如何删除 xen3-vg/deleteme 的建议,我会非常高兴。

重新启动虚拟机管理程序是最后一个选项(在办公时间之外执行),但我宁愿不重新启动。

先感谢您。


谢谢布兰登的建议。

按照以下说明操作http://naveen161089.blogspot.com/2014/03/forcefully-remove-lvm.html我尝试了以下操作:

> dmsetup ls

[..]
xen3--vg-deleteme   (254:7)
[..]

> dmsetup info -c xen3--vg-deleteme

Name              Maj Min Stat Open Targ Event  UUID                                                                
xen3--vg-deleteme 254   7 L--w    1    1      3 LVM-aAW4aSeLjqJPPWlF1s1WxAgzeXAjWmXiiL2tB44tjc0dljibBXnQupoZsXg81XXO

> dmsetup remove xen3--vg-deleteme

device-mapper: remove ioctl on xen3--vg-deleteme failed: Device or resource busy
Command failed

> lvremove -f /dev/xen3-vg/deleteme

Logical volume xen3-vg/deleteme in use.

我已经按照以下说明操作:无法删除打开的逻辑卷正如我的原帖所述。

这两种方法都无法解决问题。

有人还有其他建议吗?

答案1

我认为主要的错误是在设备文件“/dev/xen3-vg/deleteme”上执行lsof/ fuser,而不是在挂载点(例如:“/mnt/myDataMount”)上执行/。

(这很具误导性,我也遇到过这种情况:但情况是一样的,就好像你想lsof在“/dev/sda3”上运行一样——这是行不通的。但你可以lsof在/mount/somedrive 上运行)

简而言之,步骤如下:

  1. 使用 # 在挂载点中搜索“LV 路径”,mount |grep deleteme 其中“deleteme”代表 LV 名称。此示例输出类似“/my/mountpoint”的内容
  2. lsof /my/mountpoint找出哪个进程正在使用它
  3. 终止进程(kill -9 naggingprocess)或停止服务(service something stop
  4. 再检查(2.)
  5. umount /dev/xen3-vg/deleteme
  6. lvremove /dev/xen3-vg/deleteme (或者lvremove -f

答案2

我忘记我已经将循环设备与 LV 关联了:

lrwxrwxrwx 1 root root       7 Feb  1 14:17 /dev/mapper/vg--main-test -> ../dm-8
#losetup -a
<snip>
/dev/loop7: [0005]:3088 (/dev/dm-8)

通过做:

#losetup -d /dev/loop7

然后我可以删除 LV

root@virtual3:/dev# lvremove vg-main/test
Do you really want to remove and DISCARD active logical volume vg-main/test? [y/n]: y
  Logical volume "test" successfully removed

我知道这很愚蠢..但我花了半天时间才意识到。lsof 没有发现这个问题。

答案3

我遇到了同样的问题,并且已使用此命令修复了它。试试看。

kpartx -dv /dev/mapper/VG-XXX_rootimg
Then lvremove -f /dev/mapper/VG-XXX_rootimg

答案4

我遇到了类似的问题,有一个rsync进程卡在使用快照,该快照已被延迟卸载。因此:

  • 由于已被卸载,它没有显示在mount命令中。
  • 由于 umount 是惰性的,因此打开文件的进程可以继续打开它。但是,它不再连接到挂载点 (/mnt/snapshot),因此我没有用 来结束它lsof | grep snapshot
  • 似乎是因为快照用完了所有分配的空间,I/O 被完全阻塞,rsync 一直处于等待状态,从而保持文件描述符打开,进而无法完成延迟卸载。

当然我当时并不知道这一点,但我碰巧尝试使用以下命令获取设备 ID lvdisplay

lvdisplay big/db_snapshot_20231004.0505 | grep Block.device
   Block device           253:3

然后使用 lsof 搜索罪魁祸首:

lsof |grep 253,3
rsync     30508                             root  cwd       DIR              253,3       4096      45059 /postgresql/14/main
rsync     30508                             root    3r      REG              253,3 1073741824      46124 /postgresql/14/main/base/16466/735757683.4

(顺便说一句,这些最终都不是有效的路径。)

因此,终止 rsync 进程后,lvremove就成功了!

相关内容