Чтобы добавлять сообщения и комментарии, .

@Graf:
Graf

Поставил я тут lxc, зопилил генту в контейнер на генте, все заебись кроме одного.
При veth контейнера не добавляется в бридж, надобно добавлять руками. Есть чо?

@Hawat:
Hawat

Не стартует в контейнере, точнее asterisk -cv стартует, а через services нет.

@Turbid:
Turbid

Чтобы iptables завелся внутри lxc-контейнера делаем на хосте:
# mkdir /var/lib/lxc/<name>/rootfs/lib/modules
# echo "iptable_filter" >> /etc/modules
и в конфиг контейнера:
lxc.mount.entry = /lib/modules /var/lib/lxc/<name>/rootfs/lib/modules none ro,bind 0 0

@Balancer:
Balancer

Пришёл к идее, что, если удастся нормально настроить под MariaDB произвольную мастер-мастер репликацию индивидуальных БД (т.е. разные БД — на разные сервера), то надо нафиг выносить MariaDB из контейнеров («в каждом своя») на хост. Достало оверхедить памятью :)

@Balancer:
Balancer

Тля. Gentoo уже и в роли чисто хоста для контейнеров всё опаснее. Взяли и в LXC в init.d молча перенесли содержимое контейнеров в /var/lib/$container_name. Мало того, что полный идиотизм (нафига мне /var/lib засорять десятками контейнеров?), так ещё и без предупреждения — всё нафиг отвалилось после перезагрузки...

data.gpo.zugaina.org

LXC_PATH="/var/lib"

что характерно, если тупо поменять на LXC_PATH="/var/lib/lxc", то не работает, ругается, что не находит конфига. Если переложить в старый gentoo-заскок в виде /etc/lxc и прописать LXC_PATH="/etc/lxc", то тогда всё нормально.

Короче, в очередной раз поломали нафиг работающую систему.

@moury:
moury

В первые дни после релиза debian jessie развернул с нуля виртуалку в LXC. Раньше написать не получилось.
Тогда на wiki.debian.org было кратко написано, что systemd мешает нормальной работе, и нужно сразу менять его на sysvinit. Сейчас то же написано более резко и подробно.
Результат: при запуске виртуалки через lxc-start ОС виснет (или блокируется) в процессе загрузки. При запуске через libvirt виртуалка запускается нормально, но руту вход с консоли virsh запрещен.
Как победил: в шаблоне виртуалки предусмотрена установка openssh-server. Я по файловой системе хоста настроил в виртуалке сеть и разрешил вход руту. После этого запустил виртуалку через libvirt, вошел по ssh рутом, поставил
sysvinit. Дальше — обычная, безопасная первичная настройка, и все такое.
При настройке сети была методическая сложность: чтобы виртуалка стала доступна по сети, IP-адрес пришлось
прописать в настройках обоих систем виртуализации (и в config-файле LXC, и в XML-файле libvirt). Раньше для настройки сети адрес прописывался только в той системе виртуализации, с которой работаешь.

@Balancer:
Balancer

Отлично! weave позволяет на лету связывать в одну сеть уже запущенные контейнеры Docker и LXC. Жаль только, что не позволяет автоматически сменить точку входа в сеть, если исходная отваливается. Можно, конечно, скриптом попробовать оптимизировать, типа, если один внешний хост перестаёт пинговаться, то переключаемся на резервный... Может, есть более прямая альтернатива?

@Balancer:
Balancer

Эти контейнеры меня доведут :D Поднял в контейнере MariaDB, настроил репликацию с удалённого сервера, дня три она крутилась, а сегодня сервер с контейнером перезагрузил. Лезу в MySQL — нет ответа. Хм. Начинаю ковыряться в Docker образах. В docker ps пусто. В docker ps -a вижу два container_id с образом mariadb. Запускаю один — фигушки. Другой — стартует. Потом становится понятно, что первый стартовал просто как mysql-клиент ко второму. Ладно, лезу в контейнер — репликации нет, головной сервер не настроен o_O. Лезу в /var/lib/mysql — там файлы от 01 декабря O_o. Потом смотрю, ещё и объём базы вместо 15Гб что-то около 300Мб...

В общем, ковырялся минут 40 в общей сложности, даже find'ом искал по всему диску БД по имени... Пока не догадался в lxc-ls глянуть и увидеть, что я базу-то в LXC-контейнере поднимал :D Как раз, специально, ибо сложная MySQL-конфигурация тянет не на приложение, а комплекс приложений. Придётся, походу, всё строго документировать, а то запутаться в десятках разнотипных контейнеров на полудюжине серверов как делать нефиг...

@overmind88:
overmind88

Клонирование контейнеров lxc 1.0 в ubuntu 12.04 linux.org.ru
HALP!

@akshimassar:
akshimassar

Еще из прелестей убунту: в fstab-файле lxc нельзя использовать опцию auto — она всё ломает. При этом почему-то производятся попытки примонтировать совершенно не туда, куда надо. В документации написано "fstab format".

@hizel:
hizel

в свежем lxc gentoo в gentoo встало и не качается — удобно

@overmind88:
overmind88

А кто-нибудь обновлял убунте 12.04 lxc с 0.7.5 до 1.0? Есть ли какие грабли?

@4DA:
4DA

реквестирую какие-нибудь говноскрипты для быстрого развертывания скайпоговна в lxc в одну команду.

@hizel:
hizel

Чота так и не осилил нормальную работу gentoo в качестве гостевой в lxc 1.х ubuntu/gentoo. Приходится пользовать под гостевушечки debian/ubuntu. Скрипя и страдая сердцем конечно же.

@qnikst:
qnikst

я понимаю, что у меня кривые руки в nix может кривой systemd, а для lxc нужно передавать systemd какую-нибудь смешную
опцию, которую неясно откуда вычитывать. Но как дебажить систему которая пишет:
[FAILED] Failed to start Login Service.
See 'systemctl status systemd-logind.service' for details.
а при попытке логина в систему:
nixos login: root
Password:

Cannot make/remove an entry for the specified session

на хост оси systemd нет

@Balancer:
Balancer

Начал разгребать почту на admin@ — увидел, что недавно наступил год, как я активно переехал на LXC (почта с первых 5-6 контейнеров от января 2013-го). Сейчас LXC-контейнеров десятка полтора, некоторые — под довольно приличной нагрузкой. За весь год не было ни одного происшествия, связанного с LXC. Думаю, вполне показатель :)

В гостевых системах используют почти исключительно Ubuntu (версии разные, LTS. 13.10, даже 12.10). Хостовые системы на старых/своих машинах Gentoo, на новых (DigitalOcean и Hetzner) — Ubuntu LTS.

@Mendor:
Mendor

Я твой код API шатал и диффы на git log вертел.

@wasd:
wasd

Посоны, есть один линукс на 2.6.34 (openSuSE 11.3)
Я хочу, ничего не обновляя и не перезагружаясь, получить что-нибудь для запуска контейнеров/виртуалок, но не могу выбрать.
1. OpenVZ: кажется, для него нужно кастомное ядро
2. LXC: на момент 2.6.34 не был стабилен (или уже был?)
3. KVM: рассматривается, но использовать не особо хочу, поскольку не хочу тяжестей типа KVM, когда можно обойтись меньшим.

Ваши варианты/советы?

@iportnov:
iportnov

Чисто чтобы не забыть.
Задача: поставить в убунте оракл в lxc-контейнер.
Решение: сделать контейнер просто: sudo lxc-create -n oracle -t oracle.
Дальше качаем сам оракл и ставим внутри контейнера. При rpm -ivh oracle*.rpm получается, похоже, ubuntu-cпецифичная трабла:
error: permission denied on key 'kernel.*'
Т.е. оно пытается установить какие-то sysctl-параметры, а ему не разрешают. Проблема, оказывается, в apparmor. Решение:
1. sudo ln -s /etc/apparmor.d/usr.bin.lxc-start /etc/apparmor.d/disabled/
2. В конфиге контейнера дописать строчку lxc.aa_profile=unconfined.

@avagin:
avagin

Как с помощью утилиты unshare запустить bash в новом pid namespace?

@qnikst:
qnikst

а можно каким-нибудь образом запретить установку глобальных (действующих на весь хост) sysctl параметров? Отобрать root не предлагать.

@avagin:
avagin

Интервью с Павлом Емельяновым. О развитии контейнерной функциональности в ядре Linux. История проекта CRIU и планы на будущее. habrahabr.ru

@qnikst:
qnikst

кто пользуется lxc есть следующий вопрос, у вас после выполнения shutdown -h now убивается ли процесс lxc-start на хосте, если да то:
1). какой дистрибутив на хосте?
2). какой дистрибутив в контейнере?
3). используется ли inotify на utmp (задается где-то в конфиге)*
4). есть ли у гостя cap_boot?
5). что является PID-1? shutdown из sysvinit или симлинк на что-то другое?
6). какая версия lxc?

@sai:
sai

Котоны, поясните за LXC. Хочу в CI использовать, чтобы vagrant поднимал не virtualbox, а LXC-контейнер. А то шеф-скрипты слишком долго на виртуалке отрабатывают. Какие подводные камни?

@qnikst:
qnikst

Вопрос, а процесс, который ядро запускает при выходе последнего процесса из иерархии (release_agent) чем-то отличается от обычного? Поскольку я заметил, что я не могу внутри этого процесса записать новый процесс в ту же цгруппу.

Судя по исходникам, лок на цгруппах не стоит:
lxr.free-electrons.com

Судя по выводу ps процесс вполне обычный, но модификация цгрппы через echo $$ > /sys/fs/cgroup/foo/bar/task приводит к invalid argument. замена $$ на 0, тоже не помогает.

Куда можно копать?

P.S. (последний тег, чтобы больше народу скастовать).
P.P.S. я знаю как обойти этот вопрос запустив демона в userspace, но мне не нравится такой вариант.

@adept-:
adept-

Кто-нибудь может подсказать, как посмотреть, какой из veth* интерфейсов в системе принадлежит какому контейнеру? lxc-list и lxc-ls не кажут

@Turbid:
Turbid

я правильно понял, что хост-машина неверно будет показывать user в списке процессов для lxc-процессов? а то у меня mysqld в одном из хостов работет от usbmux 0_o

@hizel:
hizel

github.com

@Turbid:
Turbid

чё-то ржу. первые строчки мана по lxc:
You are in a hurry, and you don't want to read this man page. Ok, without warranty,
here are the commands to launch a shell inside a container with a predefined config‐
uration template, it may work. /usr/bin/lxc-execute -n foo -f
/usr/share/doc/lxc/examples/lxc-macvlan.conf /bin/bash
все для людей

@Turbid:
Turbid

есть домашний сервачек, хочу на нем развернуть opengts, который чуть менее чем полностью на java. нет желания гадить в основную систему, тем более сервис будет доступен извне. что из тегов сейчас в моде для такой задачи?
p.s. CPU — 330-ый Atom, RAM 2Gb

@avagin:
avagin

Хорошая презенташка "7 проблем Linux контейнеров" slideshare.net

@avagin:
avagin

Заменит ли vzctl своего младшего брата LXC? openvz.org

@qnikst:
qnikst

а что в libvirt нельзя запустить qemu-kvm?

@Balancer:
Balancer

LXC рулит, однако. Дошли руки до поковыряться со старыми данными munin, недоступными из-за апгрейда 32 to 64 бит. Дамп, как обычно, вовремя был забыт, только бинарные файлы. Ну и традиционное «ERROR: This RRD was created on another architecture». А тут осенило. Глянул — LXC отлично поддерживает 32-х битные контейнеры в 64-х битном хосте.
[code=bash]
lxc-create -n ubuntu32 -t ubuntu — -r quantal -a i686
[/code]
и готово. Загрузился в 32-х битный контейнер, сделал дамп старых .rrd, вышел в хост, восстанвил из дампа уже на 64-х битах, через gist.github.com — и готово. Старые данные уже доступны снова:
balancer.ru

Теперь надо, наконец, разобраться с munin на тему динамических графиков, чтобы смотреть и данные старше, чем за год. Ну и на Авиабазе попробовать восстановить архив munin'а, там в конце 2009-го такая же бяка была, тогда не решённая :)

@avagin:
avagin

Забавная штука. В Android стандартный интерфейс юзеров используется для разграничения прав пользователей. А пользователи походу будут сделаны, как отдельный контейнеры.

@avagin:
avagin

Написал новую статейку "CRIU 0.2 и Linux Containers — новые возможности" habrahabr.ru Буду рад любой обратной связи, особенно о формате статьи. Есть возможность писать более технические вещи или на оборот более понятные для широкого потребителя.

@avagin:
avagin

А вы знаете главное отличие этих двух систем на ванильных ядрах? LXC по дефолту выдает контейнер в котором ничего не ограничено, т е разрешен доступ ко всем девавйсам, все капабилити. В OpenVZ изначально идея была обратная, выдать максимально изолированный контейнер, все запрещено по максимуму и пользователь по надобности открывает, то что необходимо. А вам какая схема по душе?

@avagin:
avagin

Вышла версия vzctl, которая умеет стартить контейнер на ванильном ядре! Контейнер будет такой же, как и LXC. Enjoy! wiki.openvz.org

@exception13:
exception13

таки всю малину мне портил подмонтированный ns из cgroup. теперь дебильянчик стартует чисто.

@avagin:
avagin

Да, мы зарелизили вторую версию, которая может чекпоинтить и ресторить LXC контейнер criu.org .