Спустя десять дней с момента прошлого выпуска представлен релиз системного менеджера systemd 226, который содержит исправления ошибок, корректирующие изменения и порцию улучшений. Из наиболее заметных новшеств отмечается поддержка унифицированной иерархии cgroups, расширение возможностей реализации сервера и клиента DHCP, улучшение интеграции с PolicyKit и поддержка отдельных файлов конфигурации для nspawn.
Подробнее об улучшениях:
- Серия улучшений встроенной в systemd-networkd реализации протокола DHCP:
- В DHCP-сервере реализована возможность выдачи информации о серверах DNS и NTP. Включение и настройка осуществляется при помощи опций "EmitDNS=", "DNS=", "EmitNTP=" и "NTP=";
- В сервер и клиент DHCP добавлена поддержка передачи и приёма информации с параметрами часового пояса. Настройка осуществляется при помощи опций "UseTimezone=", "EmitTimezone=" и "Timezone=". Передача данных о текущем часовом поясе автоматически включена для контейнеров;
- Возможность настройки таймаутов выделения адресов ("MaxLeaseTimeSec=" и "DefaultLeaseTimeSec=");
- В DHCP-сервере увеличена стабильность выделения клиентам адресов (leases) - по возможности клиентам выдаются те же самые адреса, даже если сервера был перезапущен;
- Для контроля метрик пула выданных клиентам адресов в DHCP-сервер добавлены опции "PoolOffset=" и "PoolSize=";
- При обращении к PolicyKit в процессе управления юнитами, systemd теперь добавляет к запросу дополнительные поля, такие как имя юнита и желаемая операция. Данные поля позволяют создавать более изощрённые правила PolicyKit, при принятии решения учитывающие связанные с systemd параметры;
- В nspawn добавлена поддержка загрузки настроек в отдельные файлы ".nspawn", которые могут сопровождать файлы с образами или директории с контейнерами, и содержать дополнительные настройки для контейнера. Файлы ".nspawn" можно рассматривать как метод, альтернативный заданию настроек в командной строке;
- В systemd-networkd добавлена поддержка генерации предсказуемых имён интерфейсов для устройств virtio и возможность настройки ('EncapsulationLimit=') лимита на уровень инкапсуляции в туннелях;
- Обеспечена поддержка концепции пользовательских шин (user bus) вместо сеансовых шин (session bus) в случае использования демона DBus 1.10 (включается опцией "--enable-user-session"). Ранее пользовательские шины можно было использовать только на системах с kdbus;
- Добавлена опциональная поддержка появившегося в ядре Linux 3.16 нового интерфейса cgroups, основанного на применении единой унифицированной иерархии cgroup (вместо отдельных иерархий для распределения ресурсов CPU и памяти), определяющей применение правил к группам процессов. Поддержка унифицированной иерархии включается через передачу ядру опции "systemd.unified_cgroup_hierarchy=1", при указании которой systemd попытается примонтировать /sys/fs/cgroup. Для выборочного включения унифицированной иерархии cgroup для заданных контейнеров в nspawn добавлена переменная окружения $UNIFIED_CROUP_HIERARCHY (по умолчанию используется тот же тип cgroup, что и на хост системе). Отмечается, что для корректной работы унифицированной иерархии cgroup требуется ядро Linux 4.2;
- Представлен новый специализированный юнит "init.scope", объединяющий параметры, связанные с первым идентификатором процесса (PID 1). Например, init.scope можно использовать для определения потребляемых ресурсов и привязки ограничений к PID 1, который вынесен из корневого дерева cgroup;
- В утилиту cgtop добавлена поддержка игнорирования нитей ядра при подсчёте задач и cgroup. Число процессов по умолчанию теперь суммируется рекурсивно. Для возврата к старому поведению представлены опции "-k" и "--recursive=". Утилита также адаптирована для корректной поддержки контейнеров;
- В systemd-nspawn опции "--bind=" и "--bind-ro=" расширены возможностью нерекурсивного монтирования.