Эльбрус/lxc: различия между версиями
м (+ссылки) |
м (дополнение тоже от Витуса в моём пересказе) |
||
Строка 12: | Строка 12: | ||
в пустые списки, контейнер не стартует. Чем-то ему умолчания из {{path|/usr/share/lxc/config/common.conf}} не нравятся. | в пустые списки, контейнер не стартует. Чем-то ему умолчания из {{path|/usr/share/lxc/config/common.conf}} не нравятся. | ||
Если есть необходимость пробрасывать в контейнер какие-либо специальные файлы, например /dev/fuse, то можно использовать непустой | Если есть необходимость пробрасывать в контейнер какие-либо специальные файлы, например, {{path|/dev/fuse}}, то можно использовать непустой <tt>lxc.cgroup.devices.allow</tt>. Главное, чтобы он вообще присутствовал. | ||
lxc. | |||
Вот такой набор команд автоматически создает /dev/fuse в | Вот такой набор команд автоматически создает {{path|/dev/fuse}} в контейнере при старте. | ||
<pre> | <pre> | ||
Строка 24: | Строка 23: | ||
</pre> | </pre> | ||
(для того чтобы воспользоваться модулем | (для того, чтобы воспользоваться модулем fuse для perl, в astra-leningrad этот модуль пришлось пересобрать из исходников от текущего debian stable (bullseye)) | ||
Образы файловой системы для rootfs мне показалось удобным создавать с помощью пакета [[mkimage-profiles]] (см. {{path|conf.d/ve.mk}}). | Образы файловой системы для rootfs мне показалось удобным создавать с помощью пакета [[mkimage-profiles]] (см. {{path|conf.d/ve.mk}}). | ||
Лимиты в пакете lxc (и общесистемные в альте) очень прижимистые, обратите внимание на {{path|/etc/security/limits.d/50-defaults.conf}} (<tt>nproc</tt>) и {{path|/etc/sysctl.d/30-lxc-inotify.conf}} (см. тж. {{altbug|46072}}) -- если последнего не существует, может иметь смысл создать в таком виде и поправить по мере надобности: | |||
<pre> | |||
# a few dozen containers | |||
fs.inotify.max_user_instances = 1024 | |||
# more than ~50 | |||
#fs.inotify.max_user_instances = 4096 | |||
#max_queued_events = 1048576 | |||
#max_user_watches = 1048576 | |||
</pre> | |||
= Ссылки = | = Ссылки = |
Версия от 12:27, 5 мая 2023
Заметки
В процессе эксплуатации контейнеров с lxc на эльбрусе выявилась следующая особенность:
Если не установить параметры
lxc.cgroup.devices.allow = lxc.cgroup.devices.deny =
в пустые списки, контейнер не стартует. Чем-то ему умолчания из /usr/share/lxc/config/common.conf не нравятся.
Если есть необходимость пробрасывать в контейнер какие-либо специальные файлы, например, /dev/fuse, то можно использовать непустой lxc.cgroup.devices.allow. Главное, чтобы он вообще присутствовал.
Вот такой набор команд автоматически создает /dev/fuse в контейнере при старте.
lxc.hook.autodev = sh -c "mknod -m 0666 ${LXC_ROOTFS_MOUNT}/dev/fuse c 10 229" lxc.cgroup.devices.allow = c 10:229 rwm lxc.autodev = 1
(для того, чтобы воспользоваться модулем fuse для perl, в astra-leningrad этот модуль пришлось пересобрать из исходников от текущего debian stable (bullseye))
Образы файловой системы для rootfs мне показалось удобным создавать с помощью пакета mkimage-profiles (см. conf.d/ve.mk).
Лимиты в пакете lxc (и общесистемные в альте) очень прижимистые, обратите внимание на /etc/security/limits.d/50-defaults.conf (nproc) и /etc/sysctl.d/30-lxc-inotify.conf (см. тж. altbug #46072) -- если последнего не существует, может иметь смысл создать в таком виде и поправить по мере надобности:
# a few dozen containers fs.inotify.max_user_instances = 1024 # more than ~50 #fs.inotify.max_user_instances = 4096 #max_queued_events = 1048576 #max_user_watches = 1048576