我经常注意到之后
$ 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的。
要允许删除逻辑卷,我执行以下操作:
我最近碰到了这个。 我完全忘记了设备XYZ是一个stream水线体积,映射到XYZ,而底层lvm实际上是由luks映射使用的。