lvremove声称LV是开放的

我经常注意到之后

$ sudo lvcreate vg -L 10G 

紧接着是一个

 $ sudo lvremove vg/<created volume> 

我收到错误消息

无法删除打开的逻辑卷“…”

而一个

 $ sudo lvs 

显示我的数量

  lvol2 vg -wi-a- 10,00g 
  • 所以有一个-在旗子之后,如果真的是开放的话那里应该有一个o

过了一段时间,删除工作。

为什么是这样? 我怎样才能立即工作?

编辑:以下没有导致有用的东西:

 $ sudo rm /dev/mapper/vg-lvol24 $ sudo lvremove /dev/vg/lvol24 Can't remove open logical volume "lvol24" $ sudo lvs vg/lvol24 LV VG Attr LSize Origin Snap% Move Log Copy% Convert lvol24 vg -wi-a- 10,00g $ sudo lvremove /dev/vg/lvol24 Can't remove open logical volume "lvol24" 

所以除了NFS之外,还有另一种可能性,即过时的bash过程和udev的不良行为,即在块设备上打开的分区。

kpartx -d /dev/vg1/lv1

然后,你可以validation在lvdisplay的输出中#打开lvdisplay 0。

看来lvm和udev之间的合作存在问题。

在一个lvremove ,每个可用的块设备都有udev变化事件。 他们的处理似乎干扰了删除过程,并且删除失败。

解决方法是使用lvchange -an <given LV>去激活LV(s)。 在这种情况下,只有less数的“删除”事件被创build,这是由于关联的dm设备被删除而产生的。

如果我lvremove现在停用的LV,仍然有很多的udev改变事件,但是它们不影响LV被删除(因为它不再存在于dm中),所以它没有问题。

/ dev / mapper /删除所有映射到LV的映射 ,删除符号链接,然后您将能够删除它。

一些有用的命令,以确定是否仍在使用磁盘:

 cat /proc/mounts dmsetup ls --tree lsof <device> 

我遇到了OpenStack安装类似的问题。 lsof对我来说什么也没有,但是dmsetup ls --tree确实显示了依赖/目标。 lvchange -an <given LV>也不适合我。 也没有删除/dev/dm-*设备的符号链接

就我而言,我closures了OpenStack服务,然后能够lvremove的卷。

这是一个实验性的设置,我想我最初可能是通过强制重启来解决其他问题。

我也收到了这个错误。 幸运的是,我正处于初始build设阶段,没有数据丢失。 我应该注意到逻辑卷是在最后半小时内创build的。

要允许删除逻辑卷,我执行以下操作:

  1. (在fdisk中)删除我为这个逻辑卷创build的表分区。
  2. (在fdisk中)执行写操作 – 确认没有表分区存在之后
  3. partprobe
  4. multipath -F(刷新未使用的多path设备)
  5. 服务多path停止
  6. 服务多path启动
  7. 重新启动服务器
  8. lvscan服务器恢复时
  9. lvremove

我最近碰到了这个。 我完全忘记了设备XYZ是一个stream水线体积,映射到XYZ,而底层lvm实际上是由luks映射使用的。