[Sysadmins] Поломалось lxc-create если на lvm

Максим Васюк vasukma на yandex.ru
Пн Дек 17 10:20:36 MSK 2018


> Потом я решил посмотреть, как себя ведёт lxc-create c параметром -P
> lxc-create -P /root/tmp -n test_04 -t altlinux -B lvm --vgname vg_test --lvname test_04_root --fstype ext4
> Контейнер создался и lvm том создался.
> Часть конфига лежала в /var/lib/lxc/test_04, а часть в /root/tmp/test_04.
> Меня это не устроило и решил удалить контейнер.
> Уже не помню точно, вроде как, в /var/lib/lxc каталог удалился, а вот в /root/tmp нет, и самое подозрительное что том lvm тоже остался.
> Т.к. lxc-create у меня не хотел создавать контейнеры на уже созданном lvm томе, я его удалил руками.

> После этого lxc-create перестала создавать контейнеры, если указать в -B lvm.
> Если -B dir то отрабатывает без ошибок. С lvm ни в какую.
> Перезагрузка тоже не помогает. Что где прописалось где, непонятно.
> Причем lvm том создается, а накатить туда фс и примонтировать она уже не в состоянии.
> Кроме выхлопа в консоль, больше логов нигде не нашел.

Тут я ошибся, создавать с -B dir получается, а вот запустить уже нет, зависает процесс запуска и консоль не отдает, даже Ctrl-C не помогает.
Приходится по pid с другого терминала убивать.

Сделал
lxc-start -F -n test_07
И увидел вот что:
lxc-start: cgroups/cgfsng.c: cgfsng_create: 1072 No such file or directory - Failed to create /sys/fs/cgroup/systemd//lxc/test_07: No such file or directory
lxc-start: conf.c: setup_rootfs: 1207 No such file or directory - failed to access to '/usr/lib64/lxc/rootfs', check it is present
lxc-start: conf.c: do_rootfs_setup: 3623 failed to setup rootfs for 'test_07'

Видимо в процессе создания/удаления контейнеров с разными опциями каталог /usr/lib64/lxc/rootfs каким-то образом удалился. Полез в пакет lxc-lib(rev).rpm, он там лежит, а в нём README, что мол, этот пустой каталог должен быть, в него временно разворачивается корень.
Я положил туда этот каталог и всё стало прекрасно!
Контейнеры стали нормально запускаться, а также создаваться с опцией -B lvm и также корректно запускаться.

Решил повторить финту ушами:
# lxc-create -n test_08 -t altlinux -B lvm --vgname vg_test --fstype ext4 -P /root/tmp
отработал как надо
lvm-том создался, конфиг упал в /root/tmp.
# lxc-start -n test_08 -F
Контейнер запускается и работает.
Выключаю.
И самое интересное:
# lxc-destroy -n test_08
lvm-том не удалился, а вместо него удалился каталог /usr/lib64/lxc/rootfs.

Я что-то делаю не так или всё-таки бага?

 --
Васюк Максим


Подробная информация о списке рассылки Sysadmins