LINUX.ORG.RU
ФорумAdmin

Как используют lxcfs?

 


0

2

Совершенно нет про него упоминаний на странице https://wiki.gentoo.org/wiki/LXC

сначала, понятно, его нужно установить. Потом выполнить запуск программы-демона (кстати, как это сделать через systemd? systemctl start lxcfs). Появится файловая система в директории /var/lib/lxcfs

Иии? Дальше-то что, нужно как-то это монтировать в образ, который будет запускаться в LXC-контейнере, или что?

A container runtime wishing to use LXCFS should then bind mount the approriate files into the correct places on container startup.

это написано на https://github.com/lxc/lxcfs

Статьи про lxcfs:
https://habr.com/post/324918/
https://events.static.linuxfound.org/sites/events/files/slides/lxcfs.pdf

2003 - bsdjail
2005 - containers
2010 - lxc
2013 - unprivileged containers, User namespaces, Network, Cgroup manipulation
2014 - lxcfs

Мне не ясно, например, чем отличаются /proc для разных контейнеров. Думаю, что тот демон вычисляет параметры на лету, но неясно, как он это делает, ведь он выполняется на хосте, а запрос к нему от процесса всегда приходит через ядро.

кем и как используется файл
/usr/share/lxc/config/common.conf.d/00-lxcfs.conf
?

При запуске демона(?) службы lxcfs выдаётся сообщение

new mount options do not match the existing superblock, will be ignored

что я должен предпринять по этому поводу?

В чём может быть проблема, если служба не запускается?

# systemctl status lxcfs
● lxcfs.service - FUSE filesystem for LXC
   Loaded: loaded (/lib/systemd/system/lxcfs.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Wed 2018-08-29 11:38:57 -00; 18s ago
     Docs: man:lxcfs(1)
  Process: 4531 ExecStopPost=/usr/bin/fusermount -u /var/lib/lxcfs (code=exited, status=1/FAILURE)
  Process: 4530 ExecStart=/usr/bin/lxcfs /var/lib/lxcfs/ (code=exited, status=1/FAILURE)
 Main PID: 4530 (code=exited, status=1/FAILURE)

авг 29 11:38:57 localhost systemd[1]: lxcfs.service: Service hold-off time over, scheduling restart.
авг 29 11:38:57 localhost systemd[1]: lxcfs.service: Scheduled restart job, restart counter is at 5.
авг 29 11:38:57 localhost systemd[1]: Stopped FUSE filesystem for LXC.
авг 29 11:38:57 localhost systemd[1]: lxcfs.service: Start request repeated too quickly.
авг 29 11:38:57 localhost systemd[1]: lxcfs.service: Failed with result 'exit-code'.
авг 29 11:38:57 localhost systemd[1]: Failed to start FUSE filesystem for LXC.

Знаю только что можно вот так использовать:

docker run --rm -i -t -m 200m -v /var/lib/lxcfs/proc/meminfo:/proc/meminfo alpine
free -m

LeNiN ★★ ()
18 января 2020 г.

libtool: warning: remember to run 'libtool --finish /usr/lib64/lxcfs'

libtool --finish /usr/lib64/lxcfs
libtool: finish: PATH="/usr/lib/llvm/7/bin:/usr/lib/llvm/6/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/sbin" ldconfig -n /usr/lib64/lxcfs
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/lib64/lxcfs

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the '-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the 'LD_RUN_PATH' environment variable
     during linking
   - use the '-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to '/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------

Einstok_Fair ★★☆ ()

equery files lxcfs

 * Searching for lxcfs ...
 * Contents of sys-fs/lxcfs-3.0.3:
/etc
/etc/init.d
/etc/init.d/lxcfs
/lib
/lib/systemd
/lib/systemd/system
/lib/systemd/system/lxcfs.service
/usr
/usr/bin
/usr/bin/lxcfs
/usr/lib64
/usr/lib64/lxcfs
/usr/lib64/lxcfs/liblxcfs.la
/usr/lib64/lxcfs/liblxcfs.so
/usr/share
/usr/share/doc
/usr/share/doc/lxcfs-3.0.3
/usr/share/doc/lxcfs-3.0.3/AUTHORS.bz2
/usr/share/doc/lxcfs-3.0.3/README.md.bz2
/usr/share/lxc
/usr/share/lxc/config
/usr/share/lxc/config/common.conf.d
/usr/share/lxc/config/common.conf.d/00-lxcfs.conf
/usr/share/lxcfs
/usr/share/lxcfs/lxc.mount.hook
/usr/share/lxcfs/lxc.reboot.hook
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/lxcfs.1.bz2
Einstok_Fair ★★☆ ()

Вы видите проблему? А она есть!

Заключается проблема в том, что не создаётся директория

mkdir -p /var/lib/lxcfs

и именно из-за этого демон не стартует.

Einstok_Fair ★★☆ ()
Последнее исправление: Einstok_Fair (всего исправлений: 1)
6 апреля 2020 г.

Я пытаюсь переименовать версию lxcfs из 3.0.3 в 4.0.1, но при сборке возникает ошибка:

 * Applying lxcfs-fusermount-path.patch ...
can't find file to patch at input line 3
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|--- /config/init/systemd/lxcfs.service.orig	2018-10-13 17:24:46.534035126 -0500
|+++ /config/init/systemd/lxcfs.service	2018-10-13 17:25:33.007034294 -0500
--------------------------
No file to patch.  Skipping patch.
1 out of 1 hunk ignored                                                                                              [ !! ]

Ну действительно, нет там такого файла:

$ sudo find /var/tmp/portage/sys-fs/lxcfs-4.0.1/work/sys-fs-lxcfs-4.0.1 -iname "*.service"
$ 

И что теперь мне делать, повеситься или застрелиться?

А между тем, в официальном тарболе такой файл есть:

$ wget -c https://linuxcontainers.org/downloads/lxcfs/lxcfs-4.0.1.tar.gz
$ tar tf lxcfs-4.0.1.tar.gz | sed "s#lxcfs-4.0.1/##g" | grep "service$"
config/init/systemd/lxcfs.service
Einstok_Fair ★★☆ ()
Последнее исправление: Einstok_Fair (всего исправлений: 3)
Ответ на: комментарий от Einstok_Fair

Это всё потому что lxcfs.service создаётся внутри src_conigure.

Вставил, вобщем, команду eapply туда, а она мне и говорит:

 * Applying lxcfs-fusermount-path.patch ...
patching file config/init/systemd/lxcfs.service
Hunk #1 FAILED at 5.
1 out of 1 hunk FAILED -- saving rejects to file config/init/systemd/lxcfs.service.rej

Кругом засады!

Einstok_Fair ★★☆ ()
Ответ на: комментарий от AnDoR

А из содержимого файла патча не понятно, что надо адаптировать?

А почему должно быть понятно?

простому пользователю ничего не должно быть понятно. Не обязан он по уши погружаться в канализационный колодец с говном.

А ты понтуешься. Мол тебе понятно, значит ты крутой, а кому непонятно - те «дно». Я уж лучше буду «всю жизнь ключи подавать».

Я тоже так могу: патч уже пропатчен (переделан) три часа назад - https://github.com/EinstokFair/einflay/blob/master/sys-fs/lxcfs/files/lxcfs-fusermount-path-4.patch

А ты неумеешь пользоваться поиском. А-ха-ха, какой ты неумёха.

Надеюсь это сподвигнет тебя перестать быть ТАКИМ, и больше не писать высокомерные снисходительные комментарии.

Einstok_Fair ★★☆ ()
Ответ на: комментарий от Einstok_Fair

простому пользователю ничего не должно быть понятно.

простому пользователю

Gentoo

простому пользователю

Я пытаюсь переименовать версию lxcfs из 3.0.3 в 4.0.1, но при сборке возникает ошибка:

AnDoR ★★★★★ ()
Ответ на: комментарий от AnDoR

В любом случае, меня сейчас не эта проблема волнует, а как собрать distrobuilder без доступа к интернету.

там -> Как установить и пользоваться distrobuilder? (комментарий)

Einstok_Fair ★★☆ ()
Последнее исправление: Einstok_Fair (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.