我正在运行带有 LXC 1.07 的 Ubuntu 14.04 LTS,我想从我的 lxc-container(ubuntu 模板)中访问目录,这些目录是由主机上的 autofs 管理的 NFS 挂载。
假设主机有 3 个不同的由 autofs 挂载的 NFS 共享:
自动音量:
/vol/server1 -fstype=nfs IPserver1:/vol/server1
/vol/server2 -fstype=nfs IPserver2:/vol/server2
/vol/server3 -fstype=nfs IPserver3:/vol/server3
现在我尝试从我的容器中访问这些,配置如下所示:
lxc.mount.entry = /vol/server1 vol/server1 none bind 0 0
lxc.mount.entry = /vol/server2 vol/server2 none bind 0 0
lxc.mount.entry = /vol/server3 vol/server3 none bind 0 0
现在的问题是这只在我第二次或第三次启动容器时有效,大多数时候 LXC 会提示“符号链接(symbolic link)级别太多”并退出。这是输出:
lxc-start: conf.c: mount_entry: 2049 Too many levels of symbolic links - failed to mount '/vol/server1' on '/usr/lib/x86_64-linux-gnu/lxc/vol/server1'
lxc-start: conf.c: lxc_setup: 4163 failed to setup the mount entries for 'vm.local'
lxc-start: start.c: do_start: 688 failed to setup the container
lxc-start: sync.c: __sync_wait: 51 invalid sequence number 1. expected 2
我第二次启动容器时它会提示/vol/server2 等等,直到它最终按预期工作。
问题是什么?为什么我启动它的次数越多,它就越有效?
最佳答案
感谢 lxc-user 邮件列表的好用户,我现在知道问题出在哪里了。
似乎主机上的 autofs 不够快,无法挂载目录,这就是容器提示的原因。在下一次尝试时,先前的 lxc.mount.entry 已由 autofs 等挂载。
解决方案似乎是摆脱 autofs 或在主机上调用“ls/vol/server”,以便 autofs 在声明容器之前有一些时间来完成它的工作。
关于linux - 为什么 LXC 由于 "Too many levels of symbolic links"而无法启动,但在第二次或第三次尝试时启动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31266838/