我正在运行带有LXC 1.07的Ubuntu 14.04 LTS,我想从我的lxc容器(ubuntu模板)中访问目录,这些目录是由主机上的autofs管理的NFS挂载。

可以说主机有3个由autofs挂载的NFS共享:

auto.vol:

/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在声明容器之前有一些时间来完成其工作。

08-25 06:00