Релиз системного менеджера systemd 209

После почти пяти месяцев разработки Леннарт Поттеринг (Lennart Poettering) представил релиз системного менеджера systemd 209, примечательный обеспечением полноценной поддержки kdbus, включением в состав нового компонента systemd-networkd для настройки параметров сети, большим числом новых опций и API. Новый выпуск ориентирован в первую очередь на наращивание функциональности и содержит большую порцию нового кода, поэтому он требует дополнительной стабилизации и не рекомендуется для включения в состав веток дистрибутивов с длительным временем поддержки. В ближайшее время планируется с интервалом в несколько недель выпустить несколько корректирующих выпусков, устраняющих выявленные проблемы.

Systemd сочетает в себе функции системы инициализации, механизм для контроля за выполнением фоновых процессов, службу для журналирования событий и средства для управления сервисами, сеансами пользователей и подключаемыми устройствами. Для определения параметров сервисов в Systemd используется набор конфигурационных unit-файлов, вместо оформления сценариев запуска в виде shell-скриптов. Система нацелена на интенсивную параллелизацию выполнения сервисов на этапе загрузки системы, вобрав в себя лучшие черты таких систем, как launchd (Mac OS X), SMF (Solaris) и Upstart (Ubuntu, старые версии Fedora). В настоящее время на использование systemd уже перешли такие дистрибутивы, как Fedora, openSUSE, Mandriva и Arch Linux, одобрен переход на systemd дистрибутивов Debian и Ubuntu.

Основные улучшения:

  • Полноценная поддержка работы с использованием сервиса kdbus, реализованного на уровне ядра и не требующего запуска традиционного демона DBus, выполняемого на уровне пользователя. Для работы задействована новая библиотека sd-bus с реализацией универсальной прослойки для организации обмена сообщениями, способной работать как поверх kdbus, так и с использованием DBus. Библиотека libdbus исключена из числа обязательных зависимостей.

    Поддержка kdbus интегрирована непосредственно в процесс, обслуживающий PID 1. При включении работы с использованием kdbus появляется поддержка нового типа юнитов ".busname", которые позволяют использовать технику активации по запросу с шины kdbus (запуск обработчика при поступлении связанного с ним имени шины), работающую по аналогии с юнитами .socket" (активация по сокету). Для преобразования классических файлов с параметрами активации по шине dbus1 в юниты .busname и .service добавлен специальный конвертер. Для включения работы с использованием kdbus требуется сборка systemd с опцией "--enable-kdbus". Поддержка классического DBus сохранена и пока остаётся рекомендованной по умолчанию.

    Напомним, что в рамках проекта Kdbus развивается надёжная, быстрая и безопасная система обмена сообщениями, поддерживающая доставку сообщений как в мультикаст-режиме (от одного отправителя к группе получателей), так и в режиме точка-точка. Функциональность Kdbus выходит за рамки DBus, но позволяет создать реализации DBus поверх рассматриваемой подсистемы ядра, не требующие запуска в пространстве пользователя отдельного демона D-Bus. Kdbus пока не входит в состав основного ядра Linux и ожидается не раньше ядра 3.15. Для тестирования рекоендуется использовать свежий срез git-репозитория kdbus.

  • Новый компонент "systemd-networkd", предназначенный для унификации компонентов дистрибутивов, используемых для настройки параметров сети (скрипты /etc/network, /etc/sysconfig/network, /etc/sysconfig/network-scripts/ifcfg-* и т.п.). Сервис systemd-networkd реализован в форме фонового процесса и может выполняться параллельно с традиционными скриптами и демонами настройки сети. Настройка systemd-networkd производится через создание файлов конфигурации /etc/systemd/network/*.network.

    Из поддерживаемых в настоящее время возможностей отмечаются средства для настройки VLAN, агрегирования интерфейсов (bonding) и сетевых мостов. Поддерживается настройка параметров локальных сетевых интерфейсов как через статические правила, так и через DHCP. Средства для интеграции с интерактивными конфигураторами сети относятся к планам на будущее, поэтому область использования "systemd-networkd" пока ограничена настройкой сети для initrd, контейнеров, встраиваемых систем и серверов.

    При выборе файла конфигурации для текущего устройства используется логика сходная с выбором ".link"-файлов, при которой осуществляется линейный разбор файлов в алфавитном порядке и применение первого подходящего условиям файла конфигурации. В отличие от файлов ".link", для категории ".network" доступна возможность сопоставления по именам сетевых интерфейсов, учёта состояния линка и привязки обработчиков горячего подключения интерфейсов по маске. Например, можно обойтись одним конфигурационным блоком для автоматического добавления в сетевой мост всех имеющихся Ethernet-интерфейсов.

    Пример файла конфигурации:

       [Match]    MACAddress=    Path=    Driver=    Type=    Name=    [Network]    Description=    [IP]    Gateway=192.168.1.1    Address=label at 192.168.1.23/24    Address=fe80::9aee:94ff:fe3f:c618/64 

  • Ранее разрозненные компоненты libsystemd-journal.so, libsystemd-id128.so, libsystemd-login и libsystemd-daemon объединены в одну общую библиотеку libsystemd.so, что позволило заметно сократить дублирование кода в разных частях systemd и избавиться от цикличных зависимостей. На уровне экспортируемых символов новая библиотека полностью соответствует старым библиотекам. При указании опции "--enable-compat-libs" предусмотрена возможность сборки заглушек, транслирующих старые библиотечные вызовы в libsystemd.so.
  • Добавлена новая программа "systemd-socket-proxyd", которую можно использовать в качестве двунаправленного прокси для TCP-сокетов. В частности, программа будет полезна для обеспечения поддержки активации по сокету в сервисах, которые сами по себе не предусматривают возможность такой активации, в том числе для запуска виртуальных машин.


Источник:
http://www.opennet.ru/opennews/art.shtml?num=39135

<= Назад
Комментарии
]]> ipv6 ready Kiev LUGLinux4MeНостальгияЛичный сайт skeletora ]]>