Proxmox 9.1.5. Проблемы с bind сетевых nfs шар в LXC

Форум, привет.

Вчера в поисках причин, почему умер мой гипервизор после обновления PVE до v.9.1.5 натолкнулся на описание ошибки на форуме PVE: ссылка

Суть проблемы:

- Не запускаются LXC, если есть точка монтирования (bind) на сетевую nfs шару

- Если в LXC есть точка монтирования на корень PVE " / ", то гипервизор умирает.

Пример “убойного” конфига LXC:

При запуске такого LXC сначала слетает авторизация, а после перезагрузки умирает множество сервисов в числе которых сеть, при старте системы видим такое:

Failed to start dbus.service

Причина в компоненте: pve-container: 6.1.0

Пока лучше не обновляться и подождать фикс либо откатываться на предыдущую версию компоненты:

apt install pve-container=6.0.18

Если разберусь, как поднять сломанный PVE, то дополню сообщение.

1 лайк

По поводу монтирования корня и сломанного PVE я уже высказал мнение

По поводу просто прокидывания шары проверил у себя, но так и не удалось сломать, но зато перевел свою систему монтирования NASа а autofs

Суть бага сводится к соблюдению одновременно всех довольно таки специфичных условий:

  1. Пакет pve-container версии 6.1.0
  2. Монтирование NFS шары внутрь контейнера
  3. Шара должна подключаться при помощи autofs
  4. Контейнер должен быть непривилегированным
  5. Точка монтирования должна быть параметром “только для чтения”

Т.е. вот так

$ cat /etc/auto.master.d/truenas-nfs.autofs 
/mnt/truenas /etc/auto.nfs --timeout=300

$ grep mp /etc/pve/lxc/108.conf 
mp0: /mnt/truenas/scans,mp=/mnt/scans,shared=1,replicate=0,ro=1

$ pct start 108
run_buffer: 571 Script exited with status 30
lxc_init: 845 Failed to run lxc.hook.pre-start for container "108"
__lxc_start: 2046 Failed to initialize container "108"
startup for container '108' failed

Установка предыдущей версии действительно решает эту проблему

apt install pve-container=6.0.18
...
Unpacking pve-container (6.0.18) over (6.1.0) ...
...
root@pve-05:~# pct start 108
1 лайк

Кстати, нужен короткий мануал по autofs? Я пока решил погонять в тестовом режиме

В моём случае выглядит так:

  1. Пакет pve-container версии 6.1.0
  2. Монтирование NFS шары происходит в хостовую ОС PVE
    192.168.1.126:/mnt/share /mnt/share nfs4 rw,vers=4.2,hard,timeo=600,retrans=2,rsize=1048576,wsize=1048576,_netdev,noauto,x-systemd.automount 0 0
  3. По поводу autofs не уверен, что именно понимается под этим понятием. Мои настройки содержат параметры: noauto, timeo, retrans, x-systemd.automount.
  4. Да, контейнер unprivileged
  5. Точка монтирования - rw

Итого:
Я монтирую NFS в PVE, далее делаю bind в LXC, после этого LXC не запускается.
Если просто сделать bind корня хоста в LXC, то гипервизор умирает. В моём случае у меня корень смонтирован в LXC с Filebrowser для более удобного администрирования файловой системы (пока мне так удобно). Проблема воспроизвелась в виртуальной машине и на физическом сервере.

Роман, про autofs было бы интересно почитать, пришли, пожалуйста.

Я пробовал такой механизм монтирования и оно не заработало, хочу сделать ещё один заход на кампуктере

Посмотрите есть ли вообще монтирования активные? Может стоит сделать mount /mnt/share и потом попробовать запустить?

Вообще если точек монтирования не много (у меня их 17), то есть смысл noauto поменять на auto

autofs это отдельная система программируемого динамического монтирования не на основе fstab и вот там мне удалось воспроизвести указанный баг

1 лайк

На другой ноде словил подобную ошибку, там и через fstab и через autofs не запускалось, помог откат pve-container

Уже выпустили патч бага, осталось дождаться пока он войдет в deb пакет (думаю, что пару дней надо еще подождать)

1 лайк

Отличная новость, спасибо!!