при попытке запустить LXC контейнер (не важно, из virsh или virt-manager), запуск проваливается с диагностикой error: error from service: GDBus.Error:org.freedesktop.machine1.NoMachineForPID: PID 7497 does not belong to any known machine Похоже, это *исправленная* ошибка https://gitlab.com/libvirt/libvirt/-/issues/182 при передаче ядру параметра systemd.unified_cgroup_hierarchy=1 контейнер запускается, но оказывается практически бесполезным, так как приложения в контейнере не могут найти /sys/fs/cgroup/memory/memory.usage_in_bytes и прочую инфраструктуру.
Предполагается, что p9 останется жить на cgroup1 (по-умолчанию). С cgroup2 ничего не тестировалось на p9. Можно попробовать таск #291274
Ох, извиняюсь, письмо улетело в спам, только сейчас увидел. таск сегодня попробую. с p10 и cgroup ситуация такая, что в LXC контейнерах не запускается slapd, ns-slapd (из ipa): дек 12 13:31:45 localhost.localdomain ns-slapd[11464]: [12/Dec/2021:13:31:45.919329303 +0000] - WARN - spal_meminfo_get - Unable to retrieve /sys/fs/cgroup/machine.slice/machine-lxc\x2d237225\x2> дек 12 13:31:45 localhost.localdomain ns-slapd[11464]: [12/Dec/2021:13:31:45.944366134 +0000] - ERR - _spal_get_uint64_t_file - Unable to open file "/sys/fs/cgroup/machine.slice/machine-lxc\x2d2> дек 12 13:31:45 localhost.localdomain ns-slapd[11464]: [12/Dec/2021:13:31:45.969329701 +0000] - WARN - spal_meminfo_get - Unable to retrieve /sys/fs/cgroup/machine.slice/machine-lxc\x2d237225\x2> дек 12 13:31:45 localhost.localdomain ns-slapd[11464]: [12/Dec/2021:13:31:45.994390381 +0000] - ERR - _spal_get_uint64_t_file - Unable to open file "/sys/fs/cgroup/machine.slice/machine-lxc\x2d2> дек 12 13:31:46 localhost.localdomain ns-slapd[11464]: [12/Dec/2021:13:31:46.027663362 +0000] - WARN - spal_meminfo_get - Unable to retrieve /sys/fs/cgroup/machine.slice/machine-lxc\x2d237225\x2> дек 12 13:31:46 localhost.localdomain ns-slapd[11464]: [12/Dec/2021:13:31:46.061006939 +0000] - NOTICE - ldbm_back_start - cache autosizing: userRoot entry cache (3 total): 54043195080704k дек 12 13:31:46 localhost.localdomain ns-slapd[11464]: [12/Dec/2021:13:31:46.098368210 +0000] - ERR - memory allocator - calloc of 1 elems of 864691121291328 bytes failed; OS error 12 (Cannot al> дек 12 13:31:46 localhost.localdomain ns-slapd[11464]: The server has probably allocated all available virtual memory. To solve дек 12 13:31:46 localhost.localdomain ns-slapd[11464]: this problem, make more virtual memory available to your server, or reduce дек 12 13:31:46 localhost.localdomain ns-slapd[11464]: one or more of the following server configuration settings: дек 12 13:31:46 localhost.localdomain ns-slapd[11464]: nsslapd-cachesize (Database Settings - Maximum entries in cache) дек 12 13:31:46 localhost.localdomain ns-slapd[11464]: nsslapd-cachememsize (Database Settings - Memory available for cache) дек 12 13:31:46 localhost.localdomain ns-slapd[11464]: nsslapd-dbcachesize (LDBM Plug-in Settings - Maximum cache size) дек 12 13:31:46 localhost.localdomain ns-slapd[11464]: nsslapd-import-cachesize (LDBM Plug-in Settings - Import cache size). дек 12 13:31:46 localhost.localdomain ns-slapd[11464]: Can't recover; calling exit(1). дек 12 13:31:46 localhost.localdomain systemd[1]: dirsrv@EUREKI-EUR.service: Main process exited, code=exited, status=1/FAILURE
(Ответ для Alexey Shabalin на комментарий #1) > Предполагается, что p9 останется жить на cgroup1 (по-умолчанию). > С cgroup2 ничего не тестировалось на p9. > > Можно попробовать таск #291274 результат следующий: 1. libvirt запускает контейнер lxc 2. контейнер запускается и как-то(!) работает, но: $ free total used free shared buff/cache available Mem: 9007199254740991 349128 9007199254391863 10272 0 9007199254391863 Swap: 17824112 0 17824112 приложения видят сумасшедший объём доступной памяти, ни байта из которого нельзя выделить (от ограничений на память в контейнере ничего не меняется): дек 12 22:18:42 ipa.eureki.eur ns-slapd[1421]: [12/Dec/2021:22:18:42.163975970 +0700] - NOTICE - ldbm_back_start - found 9007199252372576k available дек 12 22:18:42 ipa.eureki.eur ns-slapd[1421]: [12/Dec/2021:22:18:42.180643625 +0700] - NOTICE - ldbm_back_start - cache autosizing: db cache: 1572864k дек 12 22:18:42 ipa.eureki.eur ns-slapd[1421]: [12/Dec/2021:22:18:42.206313119 +0700] - NOTICE - ldbm_back_start - cache autosizing: userRoot entry cache ( 3 total): 54> дек 12 22:18:42 ipa.eureki.eur ns-slapd[1421]: [12/Dec/2021:22:18:42.238512996 +0700] - ERR - memory allocator - calloc of 1 elems of 864691121291328 bytes failed; OS > дек 12 22:18:42 ipa.eureki.eur ns-slapd[1421]: The server has probably allocated all available virtual memory. To solve дек 12 22:18:42 ipa.eureki.eur ns-slapd[1421]: this problem, make more virtual memory available to your server, or reduce дек 12 22:18:42 ipa.eureki.eur ns-slapd[1421]: one or more of the following server configuration settings: дек 12 22:18:42 ipa.eureki.eur ns-slapd[1421]: nsslapd-cachesize (Database Settings - Maximum entries in cache) дек 12 22:18:42 ipa.eureki.eur ns-slapd[1421]: nsslapd-cachememsize (Database Settings - Memory available for cache) дек 12 22:18:42 ipa.eureki.eur ns-slapd[1421]: nsslapd-dbcachesize (LDBM Plug-in Settings - Maximum cache size) дек 12 22:18:42 ipa.eureki.eur ns-slapd[1421]: nsslapd-import-cachesize (LDBM Plug-in Settings - Import cache size). дек 12 22:18:42 ipa.eureki.eur ns-slapd[1421]: Can't recover; calling exit(1). дек 12 22:18:42 ipa.eureki.eur systemd[1]: dirsrv@EUREKI-EUR.service: Main process exited, code=exited, status=1/FAILURE дек 12 22:18:42 ipa.eureki.eur systemd[1]: dirsrv@EUREKI-EUR.service: Failed with result 'exit-code'. дек 12 22:18:42 ipa.eureki.eur systemd[1]: Failed to start 389 Directory Server EUREKI-EUR.. дек 12 22:18:42 ipa.eureki.eur ipactl[1411]: Failed to start Directory Service: CalledProcessError(Command ['/sbin/systemctl', 'start', 'dirsrv@EUREKI-EUR. service'] re> дек 12 22:18:42 ipa.eureki.eur ipactl[1411]: Starting Directory Service дек 12 22:18:42 ipa.eureki.eur systemd[1]: ipa.service: Main process exited, code=exited, status=1/FAILURE дек 12 22:18:42 ipa.eureki.eur systemd[1]: ipa.service: Failed with result 'exit-code'. дек 12 22:18:42 ipa.eureki.eur systemd[1]: Failed to start Identity, Policy, Audit 3. контейнер игнорирует высталвенные ограничения по числу ядер и памяти.
Запущен ли сервис lcxfs? Благодаря ему начинают работать различные ограничения для lxc контейнеров (cpu, mem).
(Ответ для Alexey Shabalin на комментарий #4) > Запущен ли сервис lcxfs? > Благодаря ему начинают работать различные ограничения для lxc контейнеров > (cpu, mem). да. проверить ещё раз смогу только завтра
(Ответ для Alexey Shabalin на комментарий #4) > Запущен ли сервис lcxfs? > Благодаря ему начинают работать различные ограничения для lxc контейнеров > (cpu, mem). Итак, действительно, lxcfs *запущен*. Результат: ограничения по cpu и памяти НЕ применяются, в контейнере рапортуется неправдоподобно большой объём памяти. выделить из которого память нельзя. cat /proc/meminfo на хосте: MemTotal: 16281916 kB MemFree: 10628704 kB MemAvailable: 13940648 kB Buffers: 2484 kB Cached: 3536200 kB SwapCached: 0 kB Active: 3216628 kB Inactive: 2012828 kB Active(anon): 1692348 kB Inactive(anon): 25904 kB Active(file): 1524280 kB Inactive(file): 1986924 kB Unevictable: 136 kB Mlocked: 0 kB SwapTotal: 17824112 kB SwapFree: 17824112 kB Dirty: 2052 kB Writeback: 0 kB AnonPages: 1674252 kB Mapped: 747740 kB Shmem: 27484 kB KReclaimable: 108892 kB Slab: 242128 kB SReclaimable: 108892 kB SUnreclaim: 133236 kB KernelStack: 16096 kB PageTables: 27712 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 25965068 kB Committed_AS: 6635136 kB VmallocTotal: 34359738367 kB VmallocUsed: 41000 kB VmallocChunk: 0 kB Percpu: 20864 kB HardwareCorrupted: 0 kB AnonHugePages: 704512 kB ShmemHugePages: 0 kB ShmemPmdMapped: 0 kB FileHugePages: 24576 kB FilePmdMapped: 22528 kB CmaTotal: 0 kB CmaFree: 0 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB Hugetlb: 0 kB DirectMap4k: 379092 kB DirectMap2M: 7895040 kB DirectMap1G: 8388608 kB А вот в контейнере MemTotal: 9007199254740991 kB MemFree: 9007199254200083 kB MemAvailable: 9007199254200083 kB Buffers: 0 kB Cached: 512328 kB SwapCached: 0 kB Active: 66264 kB Inactive: 462188 kB Active(anon): 132 kB Inactive(anon): 15896 kB Active(file): 66132 kB Inactive(file): 446292 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 17824112 kB SwapFree: 17824112 kB Dirty: 3076 kB Writeback: 0 kB AnonPages: 1675208 kB Mapped: 748000 kB Shmem: 27484 kB KReclaimable: 108908 kB Slab: 0 kB SReclaimable: 0 kB SUnreclaim: 0 kB KernelStack: 16080 kB PageTables: 27704 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 25965068 kB Committed_AS: 6635044 kB VmallocTotal: 34359738367 kB VmallocUsed: 41016 kB VmallocChunk: 0 kB Percpu: 20864 kB HardwareCorrupted: 0 kB AnonHugePages: 710656 kB ShmemHugePages: 0 kB ShmemPmdMapped: 0 kB FileHugePages: 24576 kB FilePmdMapped: 22528 kB CmaTotal: 0 kB CmaFree: 0 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB Hugetlb: 0 kB DirectMap4k: 379092 kB DirectMap2M: 7895040 kB DirectMap1G: 8388608 kB (dist-upgrade сделан). Поведение одинаковое на p9 и p10
на p10 попробуйте подключить таск #291659. Мне кажется в p10 устаревший lxcfs.
(Ответ для Alexey Shabalin на комментарий #7) > на p10 попробуйте подключить таск #291659. > Мне кажется в p10 устаревший lxcfs. К сожалению, никаких изменений. free total used free shared buff/cache available Mem: 9007199254740991 319900 9007199254087411 9992 333680 9007199254087411 Swap: 17824112 59136 17764976 [21/Jan/2022:20:08:03.733879409 +0700] - ERR - _spal_get_uint64_t_file - Unable to open file "/sys/fs/cgroup/memory/memor y.limit_in_bytes". errno=2 [21/Jan/2022:20:08:03.758866690 +0700] - WARN - spal_meminfo_get - Unable to retrieve /sys/fs/cgroup/memory/memory.limit_ in_bytes. There may be no cgroup support on this platform [21/Jan/2022:20:08:03.783881614 +0700] - ERR - _spal_get_uint64_t_file - Unable to open file "/sys/fs/cgroup/memory/memor y.usage_in_bytes". errno=2 [21/Jan/2022:20:08:03.808874603 +0700] - WARN - spal_meminfo_get - Unable to retrieve /sys/fs/cgroup/memory/memory.limit_ in_bytes. There may be no cgroup support on this platform [21/Jan/2022:20:08:03.833843667 +0700] - NOTICE - ldbm_back_start - found 9007199254740991k physical memory [21/Jan/2022:20:08:03.858825893 +0700] - NOTICE - ldbm_back_start - found 9007199253886375k available [21/Jan/2022:20:08:03.883871105 +0700] - NOTICE - ldbm_back_start - cache autosizing: db cache: 1572864k [21/Jan/2022:20:08:03.910749326 +0700] - ERR - _spal_get_uint64_t_file - Unable to open file "/sys/fs/cgroup/memory/memor y.soft_limit_in_bytes". errno=2 [21/Jan/2022:20:08:03.933877172 +0700] - WARN - spal_meminfo_get - Unable to retrieve /sys/fs/cgroup/memory/memory.soft_l imit_in_bytes. There may be no cgroup support on this platform [21/Jan/2022:20:08:03.958878490 +0700] - ERR - _spal_get_uint64_t_file - Unable to open file "/sys/fs/cgroup/memory/memor y.limit_in_bytes". errno=2 [21/Jan/2022:20:08:03.991400527 +0700] - WARN - spal_meminfo_get - Unable to retrieve /sys/fs/cgroup/memory/memory.limit_ in_bytes. There may be no cgroup support on this platform [21/Jan/2022:20:08:04.058900471 +0700] - ERR - _spal_get_uint64_t_file - Unable to open file "/sys/fs/cgroup/memory/memor y.usage_in_bytes". errno=2 [21/Jan/2022:20:08:04.117220698 +0700] - WARN - spal_meminfo_get - Unable to retrieve /sys/fs/cgroup/memory/memory.limit_ in_bytes. There may be no cgroup support on this platform [21/Jan/2022:20:08:04.150572600 +0700] - NOTICE - ldbm_back_start - cache autosizing: userRoot entry cache (3 total): 540 43195080704k [21/Jan/2022:20:08:04.185422791 +0700] - ERR - memory allocator - calloc of 1 elems of 864691121291328 bytes failed; OS e rror 12 (Cannot allocate memory)
При использовании хостовой машины с p9 и p10, проблем с выделением памяти в контейнерах не обнаружено. Команды free и cat /proc/meminfo показывают заданный объем памяти.
(Ответ для obirvalger@altlinux.org на комментарий #9) > При использовании хостовой машины с p9 и p10, проблем с выделением памяти в > контейнерах не обнаружено. Команды free и cat /proc/meminfo показывают > заданный объем памяти. ну как же так? хорошо, в чём может быть причина? Извиняюсь за назойливость, но эта проблема мешает приобретению коммерческой лицензии.
(Ответ для obirvalger@altlinux.org на комментарий #9) > При использовании хостовой машины с p9 и p10, проблем с выделением памяти в > контейнерах не обнаружено. Команды free и cat /proc/meminfo показывают > заданный объем памяти. и да, какиим образом формировался и запускался контейнер?
У меня на 2 тестовых машинах и виртуалке в p10 воспроизводится стабильно. Возможно, разные условия запуска контейнеров? Что и как запускалось?
(Ответ для Gleb Kulikov на комментарий #13) > У меня на 2 тестовых машинах и виртуалке в p10 воспроизводится стабильно. > Возможно, разные условия запуска контейнеров? > Что и как запускалось? Самым удобным, на мой взгляд, является конвертация из обычного lxc контейнера: 1. Запустить сервис lxc-net; 2. Создать lxc контейнер `lxc-create -t download -n p10` Выбрать alt, p10 и amd64; 3. Сконвертировать его в понятный для virsh формат `virsh -c lxc:/// domxml-from-native lxc-tools /var/lib/lxc/p10/config > p10.xml` 4. Отредактировать полученый файл p10.xml: 4.1. Вместо тэгов memory и currentMemory сдлеать один тэг "memory>700000</memory>" 4.2. Тэг source заменить на следующий "<source dir='/var/lib/lxc/p10/rootfs'/>" 4.3. После закрытия тэга interface добавить "<console type='pty' />" 5. Добавить возможность заходить в контейнер: 5.1. Задать пароль: `chroot /var/lib/lxc/p10/rootfs passwd` 5.2. Добавить /dev/console в список девайсов, с которых разрешен логин рута: `echo console >> /var/lib/lxc/p10/rootfs/etc/securetty` 6. Создать контейнер: `virsh -c lxc:/// create p10.xml` 7. Зайти в него: `virsh -c lxc:/// console p10`
(Ответ для obirvalger@altlinux.org на комментарий #14) извиняюсь за задержку с ответом, болен. > (Ответ для Gleb Kulikov на комментарий #13) > > У меня на 2 тестовых машинах и виртуалке в p10 воспроизводится стабильно. > > Возможно, разные условия запуска контейнеров? > > Что и как запускалось? > > Самым удобным, на мой взгляд, является конвертация из обычного lxc > контейнера: > `lxc-create -t download -n p10` Выбрать alt, p10 и amd64; обязательно p10? а что делать с исторически унаследованными контейнерами? > 4. Отредактировать полученый файл p10.xml: > 4.1. Вместо тэгов memory и currentMemory сдлеать один тэг > "memory>700000</memory>" Это не работает: при запуске запись автоматически меняектся на <memory unit='KiB'>4194304</memory> <currentMemory unit='KiB'>4194304</currentMemory> если стартовать virt-manager и попробоватьв нём отредактировать xml, происходит в точности то-же самое: <memory>xxx</memory> меняется на <memory unit='KiB'>xxxxx</memory> <currentMemory unit='KiB'>xxxxx</currentMemory> > `virsh -c lxc:/// create p10.xml` > 7. Зайти в него: > `virsh -c lxc:/// console p10` независмо от способа входа, через virsh или virt-manager: free total used free shared buff/cache available Mem: 9007199254740991 598824 9007199254095151 607288 47016 9007199254095151 Swap: 17824112 552008 17272104