Как исправить контейнеры Centos lxc, когда зависают случайные команды?

Хост-сервер — Centos 7.0.1406. Я создаю контейнеры lxc Centos 7.2.1511, используя следующую команду:

lxc-create -n test-container -t /etc/lxc/templates/lxc-centos --lxcpath=/var/lib/lxc/ 

Контейнер lxc создан, и я могу запустить его и подключиться к нему следующим образом:

lxc-create -n test-container -t /etc/lxc/templates/lxc-centos --lxcpath=/var/lib/lxc/ 

lxc-start -d -n test-container

lxc-attach -n test-container

Оказавшись внутри test-container, я пытаюсь запустить случайные команды, такие как adduser foo или yum install emacs, и они всегда будут зависать вот так:

$ adduser foobar

...

или вот так:

Это нормально [да/нет]: y Выполняется проверка транзакции Выполняется проверка транзакции Проверка транзакции прошла успешно Выполняется транзакция Установка: freetype-2.4.11-11.el7.x86_64
1/132 Установка: libICE-1.0.9-2. el7.x86_64
2/132 Установка: 2:libpng-1.5.13-7.el7_2.x86_64
3/132 Установка: libSM-1.2.2-2.el7.x86_64
4/132 Установка : libjpeg-turbo-1.2.90-5.el7.x86_64
5/132 Установка : atk-2.14.0-1.el7.x86_64
6/132 Установка : jasper-libs-1.900.1-29 .el7.x86_64
7/132 Установка: 1:emacs-filesystem-24.3-18.el7.noarch
8/132 Установка: libthai-0.1.14-9.el7.x86_64
9/132 Установка: mesa-libglapi-10.6.5-3.20150824.el7.x86_64
10/132

...

Сначала думал, что проблема с пакетом, но висят даже такие команды, как adduser. Я пытался перезагрузить контейнер, создать контейнеры с помощью модуля соли lxc, обновить ядро ​​​​на хосте, избежать обновления пакетов, клонировать контейнер и многое другое...

У меня закончились идеи, я собираюсь перейти на контейнеры Debian, но я хотел бы знать, сталкивался ли кто-нибудь с подобной проблемой раньше и знает, как ее исправить.


person Diego Mora Cespedes    schedule 04.02.2016    source источник
comment
Я работаю с Диего над этим: зависание начинается с кажущихся случайными событий. иногда сразу после загрузки контейнера, иногда через некоторое время. После того, как мы перезагрузили хост, некоторые старые контейнеры по-прежнему работали нормально, похоже, проблема затрагивает только недавно созданные или обновленные. В одном контейнере нам удалось вызвать проблему, обновив пакет chkconfig. Однако это не было причиной проблемы, потому что после перезагрузки даже контейнер, в котором была старая версия chkconfig, теперь имеет проблему. он работал нормально до перезагрузки.   -  person eMBee    schedule 05.02.2016
comment
похоже, что если мы запустим контейнер с инструментами libvirt вместо инструментов lxc, проблема не появится. к сожалению, lxc-tools намного проще в использовании: lxc-create -n container-name -t centos; lxc-start -n container-name по сравнению с ручным созданием дерева файлов контейнера и последующей его активацией с помощью: virt-install --connect lxc:/// --name container-name --ram 512 --vcpu 1 --filesystem /var/lib/lxc/container-name/rootfs/,/ и более поздних версий virsh --connect lxc:/// start container-name (и версия libvirt даже не устанавливает имя хоста контейнера)   -  person eMBee    schedule 05.02.2016


Ответы (1)


похоже, это ошибка версии инструментов lxc, которая в настоящее время находится в Centos: lxc-1.0.8-1.el7.x86_64.

использование различных инструментов, таких как libvirt, или обновление lxc до последней актуальной версии 1.1.5 решает проблему.

person eMBee    schedule 05.02.2016
comment
Насколько мне известно, эта проблема больше нигде не обсуждается, и Диего был вынужден прекратить работу над проектом, прежде чем он успел написать отчет об ошибке. - person eMBee; 11.07.2016
comment
Большое спасибо! В версии 1.0.10-2.el7 есть ошибка. - person azalio; 24.08.2017