Рубрика «systemd» - 3

Несколько дней назад вышла в свет с опережением графика очередная версия классической Unix/Linux системы инициализации sysvinit 2.92. Предыдущий выпуск 2.91 вышел чуть больше месяца назад.

devu

Что же примечательного в выходе минорной версии старинной системы инициализации (СИ), от которой отказались почти все современные дистрибутивы Linux, и какая от этого радость сообществу сторонников открытого кода и пользователям Debian Linux?

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

Несколько дней назад вышла в свет с опережением графика очередная версия классической Unix/Linux системы инициализации sysvinit 2.92. Предыдущий выпуск 2.91 вышел чуть больше месяца назад.

devu

Что же примечательного в выходе минорной версии старинной системы инициализации (СИ), от которой отказались почти все современные дистрибутивы Linux, и какая от этого радость сообществу сторонников открытого кода и пользователям Debian Linux?

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

Несколько дней назад вышла в свет с опережением графика очередная версия классической Unix/Linux системы инициализации sysvinit 2.92. Предыдущий выпуск 2.91 вышел чуть больше месяца назад.

devu

Что же примечательного в выходе минорной версии старинной системы инициализации (СИ), от которой отказались почти все современные дистрибутивы Linux, и какая от этого радость сообществу сторонников открытого кода и пользователям Debian Linux?

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

Всем привет! Вот мы и открыли очередной, четвёртый по счёт уже, поток курса «Администратор Linux», который уверенно занимают свою нишу рядом с девопсерским курсом. Больше преподавателей, больше информации и стендов. Ну и как всегда больше интересной информации, которую подобрали преподаватели.

Поехали.

Задумывались ли вы когда-нибудь, что нужно для того, чтобы ваша система была готова к запуску приложений?

Понимать процессы загрузки ядра и запуска системы Linux, важно для настройки Linux и решения проблем запуска. В этой статье представлен обзор процесса загрузки ядра с использованием GRUB2 загрузчика и запуска, выполняемого системой инициализации systemd.

На самом деле, есть два ряда событий, необходимых для приведения компьютера с Linux в рабочее состояние: загрузка ядра (boot) и запуск системы (startup). Процесс загрузки ядра начинается при включении компьютера и заканчивается с инициализацией ядра и запуском systemd. После этого начинается процесс запуска системы, и именно он доводит компьютер Linux до рабочего состояния.

Введение в процессы загрузки ядра и запуска системы Linux - 1Читать полностью »

По профилю работы DevOps-инженером я часто занимаюсь автоматизацией установки и настройки разнообразных IT-систем в различных средах: от контейнеров до облака. Приходилось работать со многими системами, основанными на Java-стеке: от небольших (вроде Tomcat), до масштабных (Hadoop, Cassandra и др.).

При этом почти каждая такая система, даже самая простая, почему-то имела сложную неповторимую систему запуска. Как минимум, это были многострочные shell-скрипты, как в Tomcat, а то и целые фреймворки, как в Hadoop. Мой нынешний "пациент" из этой серии, вдохновивший меня на написание этой статьи — хранилище артефактов Nexus OSS 3, скрипт запуска которого занимает ~400 строк кода.

Непрозрачность, избыточность, запутанность startup-скриптов создает проблемы даже при ручной установке одного компонента на локальной системе. А теперь представьте, что набор таких компонентов и сервисов нужно запаковать в Docker-контейнер, попутно написав еще один слой абстракции для мало-мальски адекватного оркестрирования, развернуть в Kubernetes-кластере и реализовать этот процесс в виде CI/CD-пайплайна...

Короче говоря, давайте на примере упомянутого Nexus 3 разберемся, как вернуться из лабиринта shell-скриптов к чему-то более похожему на java -jar <program.jar>, учитывая наличие удобных современных DevOps-инструментов.

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

Возникла передо мной такая задача: тестирование debian пакета. И требования:

  • пакет устанавливает и стартует systemd сервис.
  • используются native armhf библиотеки

Тестирование должно включать в себя:

  • установка пакета на чистую систему: проверка наличия зависимостей
  • запуск: проверка зависимостей в рантайме
  • тестирование запущенного приложения: проверка prod конфигурации

Тестирование debian пакетов в Travis-CI - 1

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

В продолжение третьей части…
Переосмысление 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 портмаппера и т.д. А теперь задумайтесь об этом, на самом деле есть только одна вещь чего ждут остальные.
Читать полностью »

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

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

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


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js