Выпуск системы управления контейнерами LXC 2.0

Автор: vik_kr Дата: . Категория: Новости

Доступен релиз инструментария для организации работы изолированных контейнеров LXC 2.0, который отнесён в выпускам с длительной поддержкой, обновления для которых формируются в течение 5 лет. Одновременно подготовлен релиз виртуальной ФС LXCFS, предназначенной для симуляции /proc и /sys/fs/cgroup в контейнерах. Готовые пакеты c LXC подготовлены для Ubuntu Linux.

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

Ключевые изменения:

  • Все основные команды lxc переписаны на языке Си;
  • Добавлена новая команда lxc-copy, которая сочетает возможности lxc-clone и lxc-start-ephemeral;
  • Значительно улучшена поддержка механизма CRIU для сохранения состояния контейнеров с последующей возможностью возобновить работу с сохранённой позиции;
  • Полностью переработаны средства обработки cgroup, добавлена поддержка пространств имён cgroup;
  • Внесены улучшения в утилиты командной строки. В lxc-clone добавлена поддержка переименования контейнеров. В lxc-start-ephemeral обеспечена возможность изменения точек bind-монтирования. В lxc-attach задействованы промежуточные устройства pts для защиты от атак против родительского shell;
  • Реорганизована реализация бэкенда работы с хранилищами, добавлен новый бэкенд для ФС Ceph;
  • Добавлены шаблоны для ALT Linux, Slackware и SPARCLinux;
  • Реализован новый cgroup-бэкенд cgfsng, который добавлен в список рекомендованных бэкендов;
  • Сохранена совместимость C API с прошлыми выпусками 1.x, API присвоен номер версии 1.2.