我已经创建了一个说基本的容器,我正在尝试创建一个基本容器的克隆,其后备存储为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

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

谢谢,

毗湿奴(Vishnu Ganth)

最佳答案

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

# grep overlay /proc/filesystems
nodev   overlay

如果不存在,则可以作为可加载内核模块使用。您可以使用modprobe加载它:
# modprobe overlay

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

这样就完成了。对于基于非系统的发行版,请查阅相应的文档。

更新
overlay文件系统的名称有时从overlayfs更改为overlay。在38b3491提交中添加了对此功能的支持,该提交是在lxc 1.0.7发行后进行的。看起来此更改应该在LXC 1.1.1版及更高版本中可用。

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

关于linux - lxc-clone无法在centos 7中与overlayfs一起使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29941305/

10-15 09:39