Выпуск системного менеджера Systemd 205
Леннарт Поттеринг (Lennart Poettering) представил релиз системного менеджера systemd 205, примечательный пересмотром методов работы с cgroups для управления системными ресурсами. Изменения отражают планы по переработке концепции использования cgroups, предпринятой с целью устранения недостатков в дизайне данной подсистемы. Новая схема использования cgroups предусматривает наличие центрального арбитра для распределения ресурсов, который будет выступать промежуточным звеном между конфигурацией cgroups на уровне ядра и кодом, выполняемым на уровне пользователя. Таким образом, приложения не смогут напрямую изменять конфигурацию cgroups, а должны обращаться для выполнения данных операций к арбитру через специальный высокоуровневый API. Функции подобного арбитра возьмёт на себя systemd. В самом systemd функции прямого обращения к конфигурации cgroups также будут заменены на возможности, учитывающие новую схему взаимодействия и более плотно использующие иерархические принципы работы с cgroups.
Первые изменения в рамках реализации нового плана использования cgroups представлены в Systemd 205. В частности, прекращена поддержка низкоуровневых опций ControlGroup, ControlGroupModify, ControlGroupPersistent и ControlGroupAttribute, и представлены новые типы юнитов scope и slice, а также концепция временных юнитов. Юниты scope напоминают юниты для запуска сервисов и отличаются от них тем, что порождаются не главным процессом инициализации (init), а уже работающими обычными процессами, что позволяет приложениям и демонам группировать запущенные ими дочерние процессы. Юниты slice используются для разбиения системы на части, вводя в обиход раздельные области для системных процессов, пользовательских сеансов и изолированных контенеров или виртуальных машин, и предоставляя возможность использовать разные юниты в зависимости от текущего слайса.
Временные юниты («transient») отличаются от обычных тем, что создаются на лету через обращение к API, а не сохраняются на диск в виде файлов конфигурации. При помощи подобных юнитов появляется возможность запуска произвольных программ в роли независимых сервисов, все параметры запуска которых передаются через API без заведения файлов на диске, что делает Systemd более динамической системой и позволяет применять в роли менеджера пакетных заданий. Для запуска программ в виде временных сервисов или scope-групп в состав включена утилита «systemd-run», которая позволяет передать параметры выполнения в виде опций командной строки. В настоящее время возможности «systemd-run» ограничены, но в будущем планируется расширить функциональность утилиты средствами создания очередей для выполнения работ в заданное время, с определением заданий в стиле утилиты «at».
Другим новшеством Systemd 205 является демон systemd-machined, предназначенный для управления виртуальными машинами и контейнерами, а также для накопления метаданных об их работе. Systemd-machined может быть использован менеджерами виртуализации для регистрации виртуальных машин и контейнеров. Для доступа к накопленным метаданным подготовлена специальная утилита «machinectl».
Systemd сочетает в себе функции системы инициализации, механизм для контроля за выполнением фоновых процессов, службу для журналирования событий и средства для управления сервисами, сеансами пользователей и подключаемыми устройствами. Для определения параметров сервисов в Systemd используется набор конфигурационных unit-файлов, вместо оформления сценариев запуска в виде shell-скриптов. Система нацелена на интенсивную параллелизацию выполнения сервисов на этапе загрузки системы, вобрав в себя лучшие черты таких систем, как launchd (Mac OS X), SMF (Solaris) и Upstart (Ubuntu, старые версии Fedora). В настоящее время на использование systemd уже перешли такие дистрибутивы, как Fedora, openSUSE, Mandriva и Arch Linux.
© OpenNet