Выпуск системы управления контейнерами LXC 1.1, со встроенной поддержкой CRIU

Анонсирован второй значительный выпуск инструментария LXC 1.1, предназначенного для организации работы изолированных контейнеров. Изоляция процессов и ресурсов осуществляется при помощи штатных механизмов ядра Linux, таких как пространства имён (namespaces) и группы управления (cgroups). Готовые пакеты с LXC 1.1 подготовлены для Ubuntu Linux. В состав инструментария LXC входит библиотека liblxc, набор утилит (lxc-create, lxc-start, lxc-stop, lxc-ls и т.п.), шаблоны для построения контейнеров и набор биндингов для различных языков программирования. Для изоляции процессов, сетевого стека ipc, uts и точек монтирования используется механизм пространств имён (namespaces). Для ограничения ресурсов применяются cgroups. Для понижения привилегий и ограничения доступа задействованы такие возможности ядра, как профили Apparmor и SELinux, политики Seccomp, Chroots (pivot_root) и capabilities.

Наиболее важным улучшением в новом выпуске является интеграция в состав LXC системы CRIU, позволяющей сохранить состояние одного или группы процессов, а через некоторое время возобновить работу с сохранённой позиции, в том числе после перезагрузки системы или на другом сервере без разрыва уже установленных сетевых соединений. Поддержка 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 на Си.

© OpenNet