Linux Forum Казахстан

Общий => Новости => Тема начата: Радость от 03 Мая 2010, 16:59

Название: systemd
Отправлено: Радость от 03 Мая 2010, 16:59
Lennart Poettering, сотрудник компании Red Hat, представил (http://0pointer.de/blog/projects/systemd.html) концепцию принципиально нового механизма управления инициализацией системы -- systemd (system daemon), которая вобрала в себя достоинства классического System V init (http://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81_%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8_Linux#.D0.9F.D1.80.D0.BE.D1.86.D0.B5.D1.81.D1.81_init_.28.D1.82.D0.BE.D0.BB.D1.8C.D0.BA.D0.BE_.D1.82.D0.B8.D0.BF.D0.B0_UNIX_System_V.29) и более современных launchd (http://en.wikipedia.org/wiki/Launchd) (Mac OS X), SMF (http://ru.wikipedia.org/wiki/Service_Management_Facility) (Solaris) и Upstart (http://en.wikipedia.org/wiki/Upstart) (Ubuntu, Fedora), но при этом лишена многих их недостатков. В разработке этого проекта ему помогали сотрудники Red Hat, Novell, IBM, Intel и Nokia.

systemd опирается на современные linux-технологии: cgroups, AutoFS, D-Bus, и при этом совместим с исторически устоявшимися механизмами: init-скриптами, стандартными командами shutdown, poweroff и т.п. Предоставляемый systemd функционал позволяет заменить не только систему инициализации, но и ряд других подсистем, в частности, cron, (x)inetd, xdm/kdm/gdm/..., частично даже SELinux.

Основные идеи, использованные при создании systemd:

[indent]
ЦитироватьOn my system the scripts in /etc/init.d call grep at least 77 times. awk is called 92 times, cut 23 and sed 74,
при этом замечая, что почти каждый такой запуск влечет накладные расходы на поиск библиотек, подгрузку данных интернационализации (i18n) и т.п.

В качестве альтернативы Леннарт предлагает предлагает переписать критичные участки на C, а также вынести часть функционала в самих демонов и в systemd. Сейчас для systemd уже готовы написанные на C подсистемы монтирования и установки имени хоста. До полной победы, отмечает Леннарт, работа предстоит огромная, но результат того стоит.

Базовым элементом systemd являются модули (units), которые связаны между собой и имеют определенный тип. Каждый модуль может требовать для своей работы другие модули, конфликтовать с модулями, запускаться только после или до определенного модуля (директивы конфигурации Requires, Conflicts, Before, After, Wants). Из типов модулей определены:

Надо заметить, что systemd отличается от SMF, во-первых, тем, что позволяет оперировать не только зависимостями между службами, но и событиями, например, «готовность устройства» или «обращение к сокету». Во-вторых, systemd использует более простой формат файлов конфигурации (.desktop aka .INI против XML в SMF).

От upstart же systemd отличается более высокой степенью параллелизации, и как следствие, более высокой скоростью загрузки. Например, если демон A требует для работы сокет, открытый демоном B, то upstart сначала запустит демона B, а затем демона A, в то время как systemd создаст сокет сам и запустит обоих демонов одновременно, что занимает примерно в два раза меньше времени. Используемый в upstart принцип, когда ключевыми событиями является лишь запуск и остановка демона, Леннарт и его коллеги считают изначально неэффективным.


[/indent]# Источник (http://www.linux.org.ru/news/opensource/4842538?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+org%2FLOR+%28Linux.org.ru%3A+%D0%9D%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D0%B8%29)
Название: systemd
Отправлено: Rubik от 10 Марта 2011, 08:57
[size="3"][color="#3399ff"]30.04.2010 23:47[/color][/size][size="3"] systemd - новая система инициализации от разработчиков Red Hat и Novell [/size]

Леннарт Поттеринг (Lennart Poettering), создатель звукового сервера PulseAudio, работающий в компании Red Hat, при участии разработчиков из компаний Novell, IBM, Intel и Nokia, подготовил (http://0pointer.de/blog/projects/systemd.html) прототип принципиальной новой системы инициализации для Linux - systemd (http://git.0pointer.de/?p=systemd.git), нацеленной на более интенсивную параллелизацию выполнения сервисов на этапе загрузки.

На первом этапе выполнения инициализации в systemd осуществляется анализ конфигурации и построение плана выполнения инициализации, в котором учитываются не только вызываемые из скриптов программы, но и открываемые файлы, создаваемые сетевые сокеты и обращения к устройствам. Иными словами, если системы инициализации подобные Upstart как правило оперируют зависимостью между сервисами (события вида запустить B, после выполнения A), то systemd отталкивается от готовности ресурсов, учитывается такие дополнительные сущности, как сокеты и готовность устройств. Например, если один сервис требует создания канала связи вторым сервисом, вместо последовательного запуска сервисов, вначале может быть организован канал (шина) для обмена данными между сервисами, а потом одновременно запущены оба сервиса.

После построения плана выбирается наиболее оптимальный вариант параллельного запуска сервисов и сокращается повторный вызов программ (например, awk в процессе инициализации запускается около 92 раза, grep - 77 раз) и повторное обращения к типовым ресурсам (например, чтение значения таймера или получение параметров сетевого интерфейса). Процессы вызываются только при необходимости, т.е. например, CUPS не будет запущен до того, как локально или удаленно не будет обращения к сервису печати. Кроме обслуживания процесса загрузки, systemd выполняет также такие функции как управление процессами в системе и обеспечение корректной работы системы с новым динамически подключаемыми устройствами.

Базовым элементом systemd являются "юниты", которые связаны между собой и имеют определенный тип. Каждый юнит может требовать для своей работы другие юниты, конфликтовать с юнитами, определять возможность запуска только после или до определенного юнита (директивы конфигурации Requires, Conflicts, Before, After, Wants). Например, устройство может зависеть от сервиса, который должен быть запущен сразу после доступности устройства. Из типов юнитов определены:

opennet.ru (http://www.opennet.ru/opennews/art.shtml?num=26447)
[size="3"][color="#3399ff"]07.07.2010 12:07[/color][/size][size="3"] Вышла первая версия системы инициализации systemd [/size]

Леннарт Поттеринг (Lennart Poettering), сотрудник компании Red Hat, создавший в свое время звуковой сервер PulseAudio, официально представил (http://lists.freedesktop.org/archives/systemd-devel/2010-July/000095.html) первый релиз системного менеджера systemd (http://www.freedesktop.org/wiki/Software/systemd). systemd является альтернативной системой инициализации Linux, вобравшей в себя достоинства классического System V init и более современных launchd (Mac OS X), SMF (Solaris) и Upstart (Ubuntu, Fedora), но при этом лишенной многих их недостатков.

systemd (system daemon) реализует принципиально новый подход к инициализации и контролю работы системы. Одним из ключевых новшеств этого подхода является высокая степень параллелизации запуска служб при инициализации системы, за счет активного использования возможностей сокетов, что в перспективе позволяет добиться гораздо более высокой скорости, чем традиционный подход с последовательным запуском взаимозависимых служб, используемый, например, в upstart. Другим важным моментом является контроль над точками монтирования (не-жизненно-важные файловые системы можно монтировать только при первом обращении к ним, не тратя на это время при инициализации системы) и устройствами (можно запускать и останавливать определенные службы и при появлении или удалении заданных устройств). Для отслеживания групп процессов используется механизм cgroups, который также может быть использован для ограничения потребляемых ими системных ресурсов.

С момента прошлого анонса (http://linuxforum.kz/index.php?/topic/3681-systemd/page__view__findpost__p__15635) Леннарт и его коллеги проделали огромную работу, и выход первого официального релиза является важной вехой в развитии проекта -- теперь systemd готов к эксплуатации. Пакеты с systemd v1 уже включены в Fedora Rawhide (https://admin.fedoraproject.org/community/?package=systemd#package_maintenance) и openSUSE Factory (https://build.opensuse.org/package/show?package=systemd&project=Base%3ASystem). Также подготовлены сборочные скрипты для дистрибутивов Arch (http://aur.archlinux.org/packages.php?ID=36902) и Gentoo (http://en.gentoo-wiki.com/wiki/Systemd). Проект Debian, как всегда, нетороплив -- на данный момент в experimental находится (http://packages.debian.org/experimental/systemd) git-снапшот месячной давности. Все эти дистрибутивы полностью поддерживаются systemd. Что касается Ubuntu, то разработчики этого дистрибутива не проявили никакой заинтересованности в проекте, и поэтому поддержка инфраструктуры и готовые пакеты для данного дистрибутива отсутствуют.
opennet.ru (http://www.opennet.ru/opennews/art.shtml?num=27218)
Название: systemd
Отправлено: Rubik от 10 Марта 2011, 09:03
[size="3"][color="#3399ff"]23.08.2010 23:31[/color][/size][size="3"] Отчет о развитии systemd [/size]

Леннарт Поттеринг, ведущий разработчик перспективной системы инициализации systemd (http://linuxforum.kz/index.php?/topic/3681-systemd/page__view__findpost__p__15635), рассказал (http://0pointer.de/blog/projects/systemd-update.html) о ключевых достижениях в разработке данного программного продукта:

opennet.ru (http://www.opennet.ru/opennews/art.shtml?num=27721)
 
Название: systemd
Отправлено: Rubik от 10 Марта 2011, 09:40
[size="3"][color="#3399ff"]20.11.2010 11:00[/color][/size][size="3"] Второй отчет о развитии системного менеджера systemd [/size]

Леннарт Поттеринг, возглавляющий разработку перспективной системы инициализации systemd (http://linuxforum.kz/index.php?/topic/3681-systemd/page__view__findpost__p__15635), представил (http://0pointer.de/blog/projects/systemd-update-2.html) очередной отчет о развитии проекта, приуроченный к его 13-му релизу (http://lists.freedesktop.org/archives/systemd-devel/2010-November/000793.html).

Ключевые моменты:


 Наконец, стоит отметить что, благодаря модульной организации этой инфраструктуры, она не является обязательной частью systemd, что значительно упрощает его сборку, например, для embedded-систем, в которых поддержка шифрованных томов обычно не требуется, но требования по потреблению памяти и места на диске являются довольно жесткими.
opennet.ru (http://www.opennet.ru/opennews/art.shtml?num=28713)
 
Название: systemd
Отправлено: Zhek@Ch от 30 Апреля 2011, 11:21
[size="3"]Сравнение систем инициализации systemd, upstart и SysVinit [/size]

Приблизительно год назад Леннарт Поттеринг (Lennart Poettering), сотрудник компании Red Hat, создавший в свое время звуковой сервер PulseAudio, начал (http://linuxforum.kz/index.php?/topic/3681-systemd/page__view__findpost__p__10410) разработку новой системы инициализации и управления сервисами под названием systemd (http://www.freedesktop.org/wiki/Software/systemd). На создание замены SysVinit, существующей уже несколько десятков лет со времён первых Unix систем, Леннарта сподвигли недостатки традиционной системы и её несоответствие реалиям нашего времени - появлению SSD-накопителей, обладающих практически нулевым временем поиска нужных данных и огромной скоростью, посему способных обеспечить параллельную загрузку информации. Другой проблемой SysVinit является её зависимость от множества достаточно тяжёлых и не очень быстрых приложений - bash, awk, sed и других, которые не отличаются скорой работы на встраиваемых системах. Учитывая, что Linux стал использоваться на серверах, где требуется повышенная отказоустойчивость, от SysVinit потребовалась возможность слежения и перезапуска сервисов в случае их краха, которую она не обеспечивала.

Первым дистрибутивом, где systemd будет использоваться по умолчанию станет Fedora 15, готовящаяся к выпуску в конце мая этого года. Разработчики OpenSUSE собираются использовать systemd в следующем стабильном релизе 12.1. Arch, Debian, Gentoo включают поддержку systemd в экспериментальном режиме. Разработчики Mandriva также планируют использовать systemd. Следует учитывать, что при использовании ядра с собственной конфигурацией, systemd требует включения некоторых параметров ядра (http://en.gentoo-wiki.com/wiki/Systemd#Configuring_the_kernel).

Леннарт Поттеринг опубликовал (http://0pointer.de/blog/projects/why.html) развёрнутое сравнение systemd, upstart и SysVinit, которое не оставляет никаких сомнений в том, что systemd станет стандартом де-факто в мире Linux.

(http://pics.kz/s5/3d/ef/5a/3def5a486578b3c8ffe9724fe2b31e17.png)
(http://pics.kz/s1/ca/95/c7/ca95c710bdb54b40aa12f90a6b7fb6e7.png)
[indent][color="#555555"][1] Реализация упреждающего чтения в Upstart доступна в виде отдельного пакета ureadahead и требует наложения патча на ядро
[2] Активация через сокеты в upstart является экспериментальной возможностью, а также не поддерживает сериализацию, поэтому вообще не подходит для этого.
[3] Активация через шину для upstart доступна пока только в виде патча, который в основную ветку разработки ещё не принят.
[4] реализация в upstart не является практичной.
[5] Данная возможность для upstart существует в виде отдельного пакета и работает только для монтирования во время загрузки, плохо поддерживая зависимости.
[6] Некоторые дистрибутивы реализуют эту возможность с помощью shell скриптов.
[7] Скрипты инициализации LSB поддерживают это, в случае если они используются. [/color][/indent] Также systemd предлагает огромные возможности по установке параметров запускаемых сервисов:

# opennet.ru (http://www.opennet.ru/opennews/art.shtml?num=30412)
Название: systemd
Отправлено: Zhek@Ch от 20 Июня 2011, 00:05
[size="3"]Systemd 29[/size]
 
16 июня, тихо и незаметно вышла 29-ая версия новой системы инициализации для Linux. Среди её возможностей основными являются:

Всё это даёт возможность загружать систему за время порядка 10 секунд и выключать за 1 секунду.

В новой версии были незначительно изменены Makefile-ы, и было добавлено 2 пункта в TODO:

Будем надеяться, что в следующей 30 версии мы увидим эти новые фичи.

>>> Исходники (http://www.freedesktop.org/software/systemd/systemd-29.tar.bz2)

>>> О systemd и ссылки (http://www.freedesktop.org/wiki/Software/systemd)

>>> Подробности (http://0pointer.de/blog/projects/systemd.html)

# linux.org.ru (http://www.linux.org.ru/news/linux-general/6395201)
Название: systemd
Отправлено: Zhek@Ch от 19 Ноября 2011, 13:24
[size="3"]Разработчики systemd представили Journal, замену системе syslog [/size]

Леннарт Поттеринг (Lennart Poettering) представил (http://0pointer.de/blog/projects/the-journal.html) в своём блоге Journal (https://docs.google.com/document/pub?id=1IC9yOXj7j6cdLLxWEBAGRL6wl97tFxgjLUEHIX3MSTs&pli=1), дополнение к системному менеджеру systemd, призванное заменить собой службу syslog и другие сопутствующие сервисы журналирования событий. Разработка пока находится на начальной стадии, прототип с реализацией базовой функциональности можно найти (http://cgit.freedesktop.org/systemd/log/?h=journal) в Git-репозитории (http://cgit.freedesktop.org/systemd) systemd. Первую экспериментальную реализацию Journal планируется интегрировать в дистрибутив Fedora 17.

Ключевой особенностью Journal является использование криптографических средств для гарантирования неизменности и целостности накопленных логов. Как правило, первым делом после взлома злоумышленники пытаются замести следы и вычистить из системных логов записи, выдающие их активность. Используемые в настоящее время реализации службы syslog беспомощны перед такими действиями. В Journal для решения данной задачи планируется задействовать средства обеспечения целостности, похожие на те, что используются в Git. Каждой записи в журнале будет сопоставлен хэш, который по цепочке будет охватывать хэши предыдущих записей. Используя отдельно сохранённый эталонный начальный хэш, который недоступен атакующему (без этого хэша нет возможности воссоздать всю цепочку подтверждений), можно легко проверить неизменность всего лога.

Journal будет частью systemd и не сможет использоваться обособленно. Все логи будут проиндексированы и храниться в бинарных файлах, к которым к сожалению будут неприменимы стандартные утилиты обработки текстовых данных, например, grep. Тем не менее, Journal не исключает параллельное использование традиционных syslog-служб, таких как rsyslog и syslog-ng. Каждая запись в БД Journal содержит набор параметров в формате "переменная=значение". С целью обеспечения структурирования информации, переменные могут создаваться произвольно. Кроме текстовых данных допускается прикрепление бинарных дополнений, которые могут содержать такие данные, как core-дампы, данные мониторинга SMART и диагностические дампы SCSI.

По своему формату БД Journal является комбинацией классических линейных логов и идей, используемых в репозитории Git. Как в случае с обычными логами, данные добавляются в конец БД с небольшим изменением служебных заголовков в начале файла. Данные хранятся в сжатом виде. Каждое поле в блоке данных сохраняется как независимый объект, что позволяет минимизировать потребление дискового пространства при наличии типовых значений (например, при сохранеии поля с именем хоста, если такое имя уже было в логе, вместо дублирования информации будет помещена ссылка). Сообщения от непривилегированных пользователей размещаются в отдельных файлах БД, привязанных к логину пользователя. Подобный подход позволяет ограничить доступ к логам только для их владельцев (для доступа к системным логам пользователь должен входить в специальную группу).

Для отправки подлежащих журналированию сообщений может быть использован стандартный API syslog(3), поэтому совместимость с приложениями будет сохранена. В будущем планируется реализовать ряд расширений, которые позволят из специализированных программ отправлять в лог не только строковые сообщения, но привязанные к ним метаданные и бинарные приложения. Каждая запись в логе имеет свой уникальный 128-разрядный идентификатор.

Для управления журналами будет подготовлен набор инструментов, которые позволят выполнять такие операции, как ротация, копирование, объединение и создание произвольных выборок. Ротация БД с журналом будет производиться автоматически, после превышения заданного лимита. С целью предотвращения утери логов дополнительно будет учитываться наличие свободного пространства на диске. Для защиты от атак, направленных на переполнение диска из-за разрастания лога, будут задействованы средства контроля за интенсивностью отправки сообщений (rate limit), при этом лимит будет автоматически корректироваться в зависимости от размера доступного места на диске. Выборку данных можно будет производить как по дате, так и по отдельным полям. Утилита для выборки данных автоматически будет охватывать и подвергнутые ротации файлы, т.е. весь архив логов будет виден как единое целое.

Кроме выполнения функций syslog, новая система сможет взять на себя ведение и других типов логов, таких как журнал входа в систему (wtmp), журнал начальной загрузки и логи системы аудита. Источником поступления сообщений может быть как стандартный интерфейс syslog(3), так и вызов printk() из ядра, а также различные специализированные API. В будущем рассматривается возможность перехвата сообщений от прошивок (логи UEFI) и задействование расширенных механизмов журналирования в ядре Linux. Начальная реализация Journal будет включать в себя только минимальную поддержку передачи логов по сети, которая будет ограничена простым копированием файлов БД на центральный хост при помощи scp, rsync или NFS. В будущем появятся более серьёзные средства для непрерывного приёма и отправки новых записей по сети.

Особенности Journal:

Среди основных проблем syslog, которые попытались решить разработчики Journal, отмечаются:

# opennet.ru (http://www.opennet.ru/opennews/art.shtml?num=32347)