lvm – 从容器内部调用lvcreate挂起

前端之家收集整理的这篇文章主要介绍了lvm – 从容器内部调用lvcreate挂起前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我跑了一个容器.它具有所有功能并从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在这里尝试做什么以及如何解决问题.

我需要这个,以便容器化的kubelet可以调用flexvolume插件,它可以分配逻辑卷.

解决方法

我要说你应该避免在这种情况下使用udev.这很容易与LVM一起使用,LVM完全能够自行处理卷和设备安装.

在/etc/lvm/lvm.conf文件中,您将找到以下行:

udev_sync = 0

udev_rules = 0

当我在那里打印它们时,将这些值设置为零,看看是否清除它.它至少会排除udev.您将必须使卷脱机以进行此更改,因为您将从udev管理切换到LVM管理.

猜你在找的Linux相关文章