Анонсирован (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.dev/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.dev/opennews/art.shtml?num=41597