lxc-clone 不能在 centos 7 中使用 overlayfs

lxc-clone not working with overlayfs in centos 7

我已经创建了一个名为 base 的容器,我正在尝试创建一个基础容器的克隆,并将后备存储作为 overlayfs。但它总是失败并出现以下错误,

lxc_container: bdev.c: overlayfs_mount: 2237 No such device - overlayfs: error mounting /var/lib/lxc/base/rootfs onto /usr/lib64/lxc/rootfs options upperdir=/var/lib/lxc/s0/delta0,lowerdir=/var/lib/lxc/base/rootfs,workdir=/var/lib/lxc/s0/olwork
clone failed

有什么办法可以解决这个问题?

谢谢,

毗湿奴甘斯

听起来好像 overlay 文件系统在您的内核中不可用。首先,检查它是否在 /proc/filesystems:

中列出
# grep overlay /proc/filesystems
nodev   overlay

如果不存在,它可能作为可加载的内核模块提供。您可以使用 modprobe:

加载它
# modprobe overlay

如果这解决了您的问题,您需要将系统配置为在启动时自动加载该模块。在基于 systemd 的系统上,您可以使用以下内容创建 /etc/modules-load.d/overlay.conf

overlay

大功告成。对于非基于 systemd 的发行版,请查阅相应的文档。

更新

overlay 文件系统的名称在某些时候从 overlayfs 更改为 overlay。在提交 38b3491 中添加了对此的支持,这是在 发布 lxc 1.0.7 之后做出的。看起来这个更改应该在 LXC 版本 1.1.1 及更高版本中可用。

CentOS 上的 lxc 软件包来自 EPEL 存储库。您可能应该针对报告问题的包 (here) 打开错误报告;包维护者应该很容易为 EPEL7 修复这个问题。