Анонсирован (https://linuxcontainers.org/lxc/news/) второй значительный выпуск инструментария LXC 1.1 (http://linuxcontainers.org), предназначенного для организации работы изолированных контейнеров. Изоляция процессов и ресурсов осуществляется при помощи штатных механизмов ядра Linux, таких как пространства имён (namespaces) и группы управления (cgroups). Готовые пакеты с LXC 1.1 подготовлены для Ubuntu Linux (https://launchpad.net/ubuntu/+source/lxc).В состав инструментария LXC входит библиотека liblxc, набор утилит (lxc-create, lxc-start, lxc-stop, lxc-ls и т.п.), шаблоны для построения контейнеров и набор биндингов для различных языков программирования. Для изоляции процессов, сетевого стека ipc, uts и точек монтирования используется механизм пространств имён (namespaces). Для ограничения ресурсов (https://www.stgraber.org/2014/01/01/lxc-1-0-security-features/) применяются cgroups. Для понижения привилегий и ограничения доступа задействованы такие возможности ядра, как профили Apparmor и SELinux, политики Seccomp, Chroots (pivot_root) и capabilities.
Наиболее важным улучшением в новом выпуске является интеграция в состав LXC системы CRIU (http://criu.org/), позволяющей (http://www.opennet.me/opennews/art.shtml?num=38519) сохранить состояние одного или группы процессов, а через некоторое время возобновить работу с сохранённой позиции, в том числе после перезагрузки системы или на другом сервере без разрыва уже установленных сетевых соединений. Поддержка CRIU в LXC позволяет сохранить состояние контейнера на диск обеспечив непрерывность выполнения работающих в контейнере процессов между перезапусками или при переносе контейнера на другую машину.
Другие улучшения:
- Значительно расширены возможности по использованию systemd в качестве системы инициализации внутри контейнера. Комбинацию lxcfs и systemd теперь можно использовать как для привилегированных контейнеров, так и для контейнеров, выполняемых с правами обычных пользователей.- Обновлены скрипты инициализации, которые доступны в вариантах для systemd, sysvinit и upstart. Достигнут паритет в функциональности скриптов для разных систем инициализации, что позволило включить по умолчанию использование сетевого интерфейса lxcbr0 с DHCP и DNS-сервером (dnsmasq).
- Добавлена поддержка образов в формате qcow2 (через qemu-img);
- Добавлена поддержка Oracle Linux 7. Обеспечена возможность установки пакетов из произвольных репозиториев yum;
- В Ubuntu добавлена возможность использования подразделов и снапшотов Btrfs;
- Arch Linux и openSUSE переведены на использование типовых конфигураций;
- Для всех дистрибутивов по умолчанию добавлен профиль seccomp, обеспечивающий блокировку небезопасных системных вызовов;
- Поддержка сетевых мостов на базе Openvswitch;
- В конфигурации обеспечена возможность загрузки всех файлов с расширением .conf, находящихся в указанной директории. Добавлена директория common.conf.d с настройками, общими для всех контейнеров;- Утилиты lxc-top и lxc-device переписаны с Lua на Си.
URL: https://linuxcontainers.org/lxc/news/
Новость: http://www.opennet.me/opennews/art.shtml?num=41597
как на андроиде с контейнерами дела, кто в курсе?
chroot, proot
Вроде есть пакет, но разумеется нужно ядро с поддержкой(в 99% случаев стоковые ядра не поддерживают, в CM ядрах вроде можно запускать контейнеры).
Коммент выше вашего всё объясняет.
Это что он объясняет? Что chroot = lxc?
Клево. Особенно поддержка qcow2
> поддержка Oracle Linux 7
> В Ubuntu добавлена возможность
> Arch Linux и openSUSE переведеныОни под каждый дистрибутив индивидуальный велосипед запиливают?
>Значительно расширены возможности по использованию systemd в качестве системы инициализации внутри контейнера
>по использованию systemd .. внутри контейнераСам бог велел!!
Поттеринг?
>без разрыва уже установленных сетевых соединений.Кто-нибудь разжуйте, пожалуйста, как такое может быть.
Мне вот тоже было интересно. Вот нашёл: http://criu.org/TCP_connection
Если вкратце: просто сохраняется/восстанавливается состояние tcp-сокета. Для миграции соединений по сети "без разрыва" нужно: на хост1 сохранить контейнер, выключить хост1, поставить на хост2 тот же ip-адрес, что был на хост1, восстановить контейнер на хост2. И молиться, чтобы за время миграции tcp-соединение не закрыли на удалённом конце
Спасибо.
Не понимаю зачем оно в таком виде нужно.
Если соединение порвалось, то разве есть препятствия установить его заново?Варианты типа экономии трафика и ресурсов(на повторную установку соединения) я сразу отметаю.
> Если соединение порвалось, то разве есть препятствия установить его заново?Клиент, не предполагающий подобного, отвалится.
> Мне вот тоже было интересно. Вот нашёл: http://criu.org/TCP_connection
> Если вкратце: просто сохраняется/восстанавливается состояние tcp-сокета. Для миграции
> соединений по сети "без разрыва" нужно: на хост1 сохранить контейнер, выключить
> хост1, поставить на хост2 тот же ip-адрес, что был на хост1,
> восстановить контейнер на хост2. И молиться, чтобы за время миграции tcp-соединение
> не закрыли на удалённом концеВиртуальные машины давно научились мигрировать с сохранением всего. Даунтайм измеряется десятками миллисекунд и даже редкий г___ософт не успевает отвалиться. Практично очень даже. Почему бы с контейнерами так не поступить? Не знаю как у этих граждан с реализацией, но стремление здоровое.
А вот про перезагрузку без перезапуска процесса и про миграцию процесса такого я не скажу пока, потому что не понятно что это дает. По-моему какая-то ересь в вакууме.
ухты! системды можно запускать внутри системды, чтобы запускать системды пока ты запускаешь системды
Хотеть!
LXCFS
It's designed to workaround the shortcomings of procfs, sysfs and cgroupfs by exporting files which match what a system container user would expect.Свершилось!