Почему LXC не запускается из-за слишком большого числа уровней символических ссылок, но запускается со второй или третьей попытки?

Я использую Ubuntu 14.04 LTS с LXC 1.07, и я хотел бы получить доступ к каталогам из моего lxc-контейнера (шаблон Ubuntu), которые являются монтированиями NFS, управляемыми autofs на хосте.

Допустим, на хосте есть 3 разных NFS-ресурса, смонтированных с помощью autofs:

авто.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 жалуется на «Слишком много уровней символических ссылок» и завершает работу. Это результат:

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 и так далее, пока он, наконец, не заработает, как ожидалось.

в чем проблема и почему он работает, так как я запускаю его чаще?


person hinf    schedule 07.07.2015    source источник
comment
У меня была эта проблема с autofs/lxc в течение многих лет.   -  person drescherjm    schedule 11.02.2017


Ответы (1)


Благодаря хорошим пользователям списка рассылки lxc-user, теперь я знаю, в чем была проблема.

Кажется, что autofs на хосте недостаточно быстр для монтирования каталогов, и поэтому контейнер жалуется. При следующей попытке предыдущая lxc.mount.entry была смонтирована с помощью autofs и так далее.

Решение, по-видимому, состоит в том, чтобы избавиться от autofs или вызвать «ls /vol/server» на хосте, чтобы у autofs было некоторое время для выполнения своей работы, прежде чем указывать контейнер.

person hinf    schedule 22.07.2015