Выпуск systemd 220

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.