Эльбрус/lxc: различия между версиями

Материал из ALT Linux Wiki
(Новая страница: «В процессе эксплуатации контейнеров с lxc на эльбрусе выявилась следующая особенность: Если не установить параметры <nowiki> lxc.cgroup.devices.allow = lxc.cgroup.devices.deny = </nowiki> в пустые списки, контейнер не стартует. Чем-то ему умолчания из /usr/share/lxc/config/common.conf не нравятся....»)
 
 
(не показано 6 промежуточных версий 2 участников)
Строка 1: Строка 1:
В процессе эксплуатации контейнеров с lxc на эльбрусе выявилась следующая особенность:
= Заметки =
 
В процессе эксплуатации контейнеров с [[lxc]] на [[эльбрус|эльбрусе]] выявилась следующая особенность:
 
Если не установить параметры  
Если не установить параметры  


<nowiki>
<pre>
lxc.cgroup.devices.allow =
lxc.cgroup.devices.allow =
lxc.cgroup.devices.deny =
lxc.cgroup.devices.deny =
</nowiki>  
</pre>
 
в пустые списки, контейнер не стартует. Чем-то ему умолчания из {{path|/usr/share/lxc/config/common.conf}} не нравятся.
 
Если есть необходимость пробрасывать в контейнер какие-либо специальные файлы, например, {{path|/dev/fuse}}, то можно использовать непустой <tt>lxc.cgroup.devices.allow</tt>. Главное, чтобы он вообще присутствовал.
 
 
Вот такой набор команд автоматически создает {{path|/dev/fuse}} в контейнере при старте.
 
<pre>
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
</pre>
 
(для того, чтобы воспользоваться модулем fuse для perl, в astra-leningrad этот модуль пришлось пересобрать из исходников от текущего debian stable (bullseye))
 
Образы файловой системы для 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>


в пустые списки, контейнер не стартует. Чем-то ему умолчания из /usr/share/lxc/config/common.conf не нравятся.
= Ссылки =
* [http://habr.com/ru/company/rostelecom/blog/564156/ Краткое руководство по LXC в ОС Эльбрус]
* [http://xgu.ru/wiki/LXC LXC — Xgu.ru] wiki
* [http://wiki.gentoo.org/wiki/LXC LXC — Gentoo Wiki]


Образы файловой системы для rootfs мне показалось удобным создавать с помощью пакета mkimage-profiles.
{{Category navigation|title=E2K|category=E2K|sortkey=*}}

Текущая версия от 09:46, 24 апреля 2024

Заметки

В процессе эксплуатации контейнеров с 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

Ссылки