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 修复这个问题。
我已经创建了一个名为 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 修复这个问题。