Рубрика «systemd»

В продолжение третьей части…
Переосмысление PID 1. Часть 4 - 1

Касательно Upstart

Прежде всего, позвольте мне подчеркнуть, что мне в действительности нравится код Upstart, он очень хорошо документирован и в нем легко ориентироваться. В общем на его примере должны учиться другие проекты (включая мой).

Я это сказал, но я не могу сказать, что в целом согласен с подходом используемом в Upstart. Но для начала, чуть больше об Upstart.
Читать полностью »

В продолжение второй части…

Распараллеливание заданий файловой системы

Если вы посмотрите график загрузки текущих дистрибутивов, увидите больше точек синхронизации чем просто запуски демонов: больше всего времени отнимают задания, связанные с ФС: монтирование, проверка ФС на ошибки (fsck), квотирование. Сейчас, во время загрузки много времени тратится в ожидании, пока все диски, указанные в /etc/fstab не появятся в дереве устройств, а далее проверены на ошибки, примонтированы и применены квоты (если конечно они включены). Только после всего этого мы сможем пойти дальше и в действительности начнется загрузка служб.

Можем ли мы улучшить этот процесс? Выходит, что можем. Гарольд Хойер пришел с идеей использования достопочтенной autofs для улучшения процесса.
Читать полностью »

В продолжение первой части…

Распараллеливание служб сокетов

Этот вид синхронизации при загрузке приводит к опоследовательности (последовательный запуск служб) существенной части процесса загрузки. Не было бы круто если бы мы могли избавиться от цены синхронизации и опоследовательности? Что ж, мы можем на самом деле избавиться. Для этого, нам необходимо понять, что на самом деле службы (демоны) требуют друг от друга, и почему их запуск откладывается. Для традиционных демонов (служб) Unix, есть только один ответ на этот вопрос: они ждут до тех пор, пока демон предоставляющий свои службы не будет готов принимать соединения. Обычно это AF_UNIX сокет в файловой системе, но это может таже быть AF_INET сокет. Для примера: клиенты D-Bus ждут /var/run/dbus/system_bus_socket, чтобы сконнектиться к нему, клиенты syslog ждут /dev/log, клиенты CUPS ждут /var/run/cups/cups.sock и NFS точки монтирования ждут /var/run/rpcbind.sock и порт IP портмаппера и т.д. А теперь задумайтесь об этом, на самом деле есть только одна вещь чего ждут остальные.
Читать полностью »

Если у Вас есть хорошие связи или вы хорошо читаете между строк, вы уже могли догадаться о чем этот блог-пост. Но тем не менее Вы можете найти эту историю интересной. Так что хватайте чашку кофе, садитесь поудобнее, и читайте, что грядет.

Это длинный блог-пост, несмотря даже на то, что я Вам порекомендую прочитать сей длинный блог-пост, вот вам однострочное саммари: мы экспериментируем с новой системой загрузки и это забавно.

Здесь код. А вот здесь история:
Читать полностью »

Security Week 27: ExPetr=BlackEnergy, более 90% сайтов небезопасны, в Linux закрыли RCE-уязвимость - 1Зловещий ExPetr, поставивший на колени несколько весьма солидных учреждений, продолжает преподносить сюрпризы. Наши аналитики из команды GReAT обнаружили его родство со стирателем, атаковавшим пару лет назад украинские электростанции в рамках кампании BlackEnergy.

Конечно, откровенного использования кусков кода в ExPetr не наблюдается, авторы постарались не спалиться. Но программистский почерк так просто не замаскируешь.

Сначала аналитики сравнили списки расширений шифруемых файлов. На первый взгляд не очень похоже – BlackEnergy работал со значительно большим разнообразием файлов, – но если приглядеться, сходство все-таки есть. Типов расширений существует множество, и из них можно собрать бесконечное число разных списков, а тут налицо явные пересечения по составу и форматированию.
Читать полностью »

Среди множества функций, которые предоставляет systemd, есть одна, которую несправедливо забыли. Это функция автомонтирования. При настройке автомонтирования указанный каталог будет подмонтирован только после первого обращения к нему (точнее, прямо во время).

NFS over VPN

Конкретный пример: у меня есть удалённый сервер, на котором есть интересующий меня каталог. Я хочу иметь этот каталог локально на своей машине. Протокол доступа — nfs. Т.к. он не имеет шифрования, то разумным решением выглядит использование vpn-канала до сервера.

При этом я хочу монтировать его на ходу и отмонтировать через некоторое время, чтобы не испытывать странных затруднений из-за тупящей nfs при лежащей сети. Таймаут монтирования куда более гуманная ошибка, чем таймаут nfs на ls.

Как оно устроено

Systemd имеет специальный вид automount-юнитов, которые позволяют автоматически монтировать указанный каталог.
Читать полностью »

До середины 2000-х никому в голову не приходило менять sysvinit, почти никому. Gentoo с самого начала создавала и развивала OpenRC. Все изменилось с появлением launchd в Mac OS X. Разработчики Ubuntu бросились создавать Upstart, в котором были позаимствованы некоторые идеи из launchd. Дело шло не шатко, не валко, но тут случился systemd и смешал все карты. Но кто же был истинным первопроходцем?

Системы инициализации Unix и Linux после SysV - 1

Daniel J. Bernstein математик и специалист по криптографии, автор популярного MTA qmail и множества других менее известных программ, среди которых выделяется daemontools. Для множества современных систем инициализации daemontools являлся примером и вдохновителем. Прошу внутрь для того, чтобы познакомиться с самой элегантной, простой и влиятельной системой управления службами в Unix / Linux.

Читать полностью »

Кажется, что systemd — некое яблоко раздора в Linux-сообществе. Как будто не существует нейтральной точки зрения на systemd. Кардинально противоположные мнения предполагают, что вы должны или любить его, или желать уничтожения. Я хочу предложить некую середину. Для начала, обсудим кошмарные свойства systemd.

Плохое и кошмарное

systemd-escape

Тот факт, что существует systemd-escape, сам по себе явно указывает на нечто ужасно неправильное. Если вы никогда не видели или не использовали эту команду в деле, считайте, что вам повезло.
Читать полностью »

Как вы думаете на сколько реально зайти на машину по ssh, обновить систему, загрузить новое ядро и при этом оставаться в той же ssh сессии. Сейчас есть модное движения по обновлению ядра на лету (ksplice, KernelCare, ReadyKernel, etc), но у этого способа есть много ограничений. Во-первых, он не позволяет применять изменения, которые меняют структуру данных. Во-вторых, объекты в памяти могут уже содержать неверные данные, которые могут вызвать проблемы в дальнейшем. Здесь будет описан более «честный» способ обновить ядро. На самом деле, сам способ уже давно известен [1], а ценность этой статьи в том, что мы разберем все в деталях на реальном примере, поймем на сколько это просто или сложно, и чего стоит ждать от подобных экспериментов.
Читать полностью »

PostgreSQL slave + btrfs и systemd=горячая тестовая база - 1

При активной разработке ПО нередко нужна тестовая база с актуальными данными из боевой базы. Хорошо, если база маленькая и развернуть копию не долго. Но если в базе десятки гигабайт данных и все нужны для полного тестирования, да ещё и посвежее, то возникают трудности. В этой статье я опишу вариант преодоления подобных неприятностей с помощью snapshot-ов btrfs. А управлять работой получившегося комплекса будет systemd – удобный и функциональный инструмент.

Читать полностью »