Выпуск systemd 220
22 мая 2015 года
Леннарт Поттеринг (Lennart Poettering) представил выпуск системного менеджера systemd 220. Systemd сочетает в себе функции системы инициализации, механизм для контроля за выполнением фоновых процессов, службу для журналирования событий и средства для управления сервисами, сеансами пользователей и подключаемыми устройствами. Для определения параметров сервисов в Systemd используется набор конфигурационных unit-файлов, вместо оформления сценариев запуска в виде shell-скриптов. Система нацелена на интенсивную параллелизацию выполнения сервисов на этапе загрузки системы, вобрав в себя лучшие черты таких систем, как launchd (Mac OS X), SMF (Solaris) и Upstart (Ubuntu, старые версии Fedora). В настоящее время на использование systemd уже перешли почти все значительные дистрибутивы Linux, включая Fedora, RHEL, Debian, Ubuntu, openSUSE, Mandriva и Arch Linux.
Наиболее существенные изменения:
- Под именем "systemd-boot" в состав интегрирован загрузчик gummiboot (Архивная копия от 12 сентября 2013 на Wayback Machine), который можно использовать для обеспечения верификации процесса загрузки на системах с UEFI Secure Boot. Верификация загрузки позволяет гарантировать отсутствие посторонней активности во время начальной загрузки. Кроме проверки загрузчика или верификации загрузки ядра и связанных с ним модулей, теперь появилась возможность разрешить загрузку только специально подписанных системных образов начальной загрузки (initramfs). Загрузчик gummiboot изначально поддерживает интеграцию с systemd и не требует специальной настройки - он автоматически выявляет конфигурацию ядра и наличие на диске заверенных цифровой подписью EFI-образов и добавляет их в меню загрузки;
- Библиотека gudev выделена в отдельный репозиторий и отныне будет развиваться как часть проекта GNOME. Несмотря на то, что разработка уже перемещена, на переходный период библиотека пока оставлена в составе релиза systemd 220, но, скорее всего, будет исключена из следующего выпуска;
- В systemd-machined, systemd-logind и systemd большинство вызовов через шину теперь доступны для непривилегированных процессов, которые могут использовать PolicyKit для получения доступа. В systemd-logind пользователю предоставлена возможность прекращения связанного с ним сеанса без получения дополнительных привилегий и авторизации;
- Из состава удалён компонент systemd-shutdownd, для завершения работы по расписанию следует использовать средства systemd-logind;
- Монтирование
- В систему автоматического монтирования добавлена возможность определения времени неактивности точки монтирования, после которого монтирование будет прекращено. Таймаут настраивается через опцию "TimeoutIdleSec=" в юнитах ".automount" или через параметр "x-systemd.idle-timeout=" в /etc/fstab. Для разделов ESP (EFI System Partition), примонтированных в /boot при помощи systemd-efi-boot-generator, теперь выполняется автоматическое размонтирование после двух минут неактивности, что минимизирует риск повреждения ESP;
- В /etc/fstab добавлены опции "x-systemd.requires=" и "x-systemd.requires-mounts-for=", через которые можно определить дополнительные зависимости для монтирования. Например, можно организовать монтирование журналируемой ФС только после монтирования раздела, используемого для хранения журнала, или монтирование многослойных ФС только после монтирования нижних базовых слоёв;
- В systemd-tmpfiles добавлена возможность установки файловых атрибутов по аналогии с утилитой "chattr". Для установки атрибутов добавлены новые типы строк 'h' и 'H';
- В /etc/crypttab обеспечена возможность указания опций "offset=" и "skip=", как это раньше было реализовано в Debian;
- Управление сервисами
- Удалена возможность указания альтернативной привязки уровней запуска SysV с systemd. Подобная привязка теперь определена жестко в форме связывания уровней 2, 3, 4 с multi-user.target и уровня 5 с graphical.target;
- Для всех сервисных юнитов доступно свойство "CPUUsageNSec=", в котором отражается общее время потребления процессорных ресурсов для всех процессов, связанных с сервисом. При включении аккаунтинга (CPUAccounting) посмотреть значение свойства можно в выводе команды "systemctl status";
- В /usr/lib/os-release обеспечена возможность определения варианта дистрибутива, например десктоп- или серверной-редакции, через опциональное поле "VARIANT=";
- Сетевые возможности
- В systemd-networkd добавлена возможность определения сбоя в работе аплинка и динамического переподключения к другой сети;
- В systemd-networkd добавлена поддержка настройки индентификатора клиента DHCP, создания туннелей VTI6, настройки различных опций VXLAN и использования опции "UseNTP=" для привязки NTP-сервера к заданной подсети;
- При запуске сервисов, обрабатывающих сетевые запросы, теперь выставляются переменные окружения $REMOTE_ADDR и $REMOTE_PORT, которые можно использовать по аналогии с CGI;
- Изолированные контейнеры
- В systemd-importd добавлена возможность импорта контейнеров в форматах .tar, .raw и .qcow2, а также экспорта в форматах .tar и .raw. Обеспечена поддержка импорта по сети образов dkr v2. Загружаемые образы теперь могут быть верифицированы с использованием GPG2 (ранее использовался GPG1);
- При импортировании образов контейнера при помощи systemd-importd в конфигурациях без применения файловой системы Btrfs, теперь создаётся виртуальное блочное устройство с разделом Btrfs (/var/lib/machines.raw), которое монтируется в режиме loopback в директорию /var/lib/machines;
- В systemd-nspawn добавлена опция "--property=", через которую можно установить свойства юнита в пределах заданного контейнера. Например, можно установить ограничения ресурсов ("CPUShares=500") при запуске контейнера из командной строки;
- В systemd-nspawn добавлена опция "--private-users=", позволяющая использовать появившиеся в свежих ядрах Linux пространства имён для пользователей;
- Утилиту systemd-nspawn теперь можно запускать в рамках цепочки выполнения команд с обработкой stdin и stdout;
- В systemd-nspawn добавлена опция "--overlay=" для монтирования содержимого контейнера с использованием OverlayFS;
- В systemd-machined и systemd-importd добавлена поддержка квот Btrfs для ограничения размера контейнера на диске. Для установки квот следует использовать команду "machinectl set-limit";
- Загрузка
- В команду "systemctl reboot" добавлена опция "--firmware-setup", при указании которой осуществляется перезагрузка в интерфейс настройки прошивки EFI;
- В команды "systemctl enable", "systemctl disable" и "systemctl mask" добавлена опция "--now", при указании которой помеченные для включения юниты будут сразу запущены, а помеченные для отключения - остановлены;
- Добавлены компоненты для создания комбинированных образов ядра для EFI, содержащих не только ядро Linux, но и initrd, заставку, интерфейс командной строки и информацию о релизе. Подобный комбинированный образ может быть снабжён цифровой подписью и разом верифицирован прошивкой во время загрузки;
- В systemd-fsck добавлена опциональная возможность вывода данных о прогрессе проверки через сокет AF_UNIX;
- Взаимодействие с оборудованием
- Udev больше по умолчанию не создаёт символические ссылки для всех блочных устройств. Вместо черного списка исключения блочных устройств теперь применяется белый список, в котором перечислены блочные устройства для которых необходимо создать символьные ссылки;
- В libsystemd добавлен API sd-device.h, который призван заменить собой функциональность libudev. В настоящее время большая часть libudev уже является надстройкой над sd-device.h.
- Добавлена новая БД hwdb для хранения метаданных о трекпойнтах (PointStick);
- Ведение журнала
- В systemd-journald прекращена установка флага NOCOW для файлов с журналом на разделах Btrfs. Данный режим можно включить через использование нового типа "h" в tmpfiles;
- В systemd-journald обеспечена трансляция в читаемый вид идентификаторов из сообщений системного аудита, перед их записью в журнал.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.