我跑了一个容器.它具有所有功能并从root用户安装所有目录(/ proc除外).当我从里面调用lvcreate时,我得到:
# lvcreate -v -L104857600B -n vol1 default Finding volume group "default" Archiving volume group "default" Metadata (seqno 17). Creating logical volume vol1 Creating volume group backup "/etc/lvm/backup/default" (seqno 18). Activating logical volume "vol1". activation/volume_list configuration setting not defined: Checking only host tags for default/vol1 Creating default-vol1 Loading default-vol1 table (252:4) Resuming default-vol1 (252:4)
命令挂起.我也在日志中得到这个:
Sep 12 12:03:31 node3 systemd-udevd[12529]: Process '/sbin/dmsetup udevcomplete 23072978' Failed with exit code 1
如果我用ctrl-C设置中断它,那就创建了逻辑卷.我也可以通过从同一个容器中发出dmsetup udevcomplete_all来中断命令.如果我在主机上调用lvcreate它可以正常工作并且干净地退出.
我相信,这个问题与容器和主机之间没有共享的udev cookie有关.我不知道,lvm在这里尝试做什么以及如何解决问题.
解决方法
我要说你应该避免在这种情况下使用udev.这很容易与LVM一起使用,LVM完全能够自行处理卷和设备安装.
在/etc/lvm/lvm.conf文件中,您将找到以下行:
udev_sync = 0 udev_rules = 0
当我在那里打印它们时,将这些值设置为零,看看是否清除它.它至少会排除udev.您将必须使卷脱机以进行此更改,因为您将从udev管理切换到LVM管理.