networkd dispatcher service что это

Преимущества systemd-networkd на виртуальных серверах Linux

Обычно на десктопах Linux для управления сетевыми настройками используется NetworkManager, поскольку он отлично справляется со своей работой и имеет GUI фронтенды для всех популярных графических окружений. Однако на серверах Linux его использование не целесообразно: он потребляет много ресурсов. NetworkManager занимает в оперативной памяти около 20 Мб, в то время как systemd-networkd и systemd-resolvd вместе меньше 2 Мб. По этой причине, по умолчанию серверные дистрибутивы Linux server часто используют различные собственные демоны.

networkd dispatcher service что это. Смотреть фото networkd dispatcher service что это. Смотреть картинку networkd dispatcher service что это. Картинка про networkd dispatcher service что это. Фото networkd dispatcher service что это

Таким образом возникает целый зоопарк скриптов и утилит: демон networking под Debian, который управляет конфигурацией сети через ifupdown, использующий файлы конфигурации хранящиеся в /etc/networking/interfaces.d и файл /etc/networking/interfaces, под CentOS network, который использует скрипты ifup и ifdown и, конечно же, свои файлы конфигурации находящиеся в /etc/sysconfig/network-scripts, netctl под ArchLinux. Всем известно, что Linux — конструктор, но почему бы такой простой и общей для самых различных систем вещи как настройка сети не иметь одинаковый вид?

Мы предлагаем начать использовать быстрый и простой демон systemd-networkd, особенно в свете того, что многие дистрибутивы уже перешли на systemd, поэтому переключение на systemd-networkd не составит труда. На текущий момент systemd-networkd может заменить собой множество утилит и поддерживает настройку сети как по DHCP (клиент и сервер) так и со статическими IP-адресами, мосты, туннели, VLANs, беспроводные сети (используя при этом wpa_supplicant).

В статье мы рассмотрим, как активировать systemd-networkd и начать его использовать, и в чем его основные преимущества перед остальными демонами.

Запуск systemd-networkd

Несмотря на страсти, кипевшие вокруг внедрения systemd, многие популярные дистрибутивы Linux стали использовать этот менеджер служб и поставлять его по умолчанию. Поэтому, вероятно, ваша система уже содержит всё необходимое для включения systemd-networkd. Необходим systemd версии 210 и выше.

Проверить версию можно с помощью команды:

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

Конфигурирование

В качестве примера переключения рассмотрим перенос конфигурации сети по умолчанию в CentOS (/etc/rc.d/init.d/network initscript) на systemd-networkd.

Полностью аналогичо переезд можно осуществить для Fedora и, с небольшими изменениями, для других дистрибутивов. Конфигурационные файлы systemd-networkd находятся в директории /etc/systemd/network. Доступны следующие типы:

Конфигурационные файлы для CentOS (или Fedora) можно найти в директории /etc/sysconfig/network-scripts

Необходимо создать 4 файла в директории /etc/systemd/network/

Вот и всё: конфигурация сети завершена. Теперь можно перезапустить сервис:

В данном примере сконфигурируем DHCP IPv4 и IPv6; IPv6 если не нужен, можно исключить.

Подключение типа «Мост»

Сначала создает конфигурацию виртуального интерфейса:

И настраиваем интерфейс для подключения:

Недостатки (не актуальны, по большому счету, для серверов)

1. Не будет работать без systemd.

2. Нет ни CLI ни GUI фронтендов. И NetworkManager, и netctl не страдают таким недостатком. Например, для подключения к WiFi вам понадобится командная строка. Не совсем актуально для сервера.

3. Для первого подключения к WiFi необходимы root права. Однако это не совсем недостаток, так как в будущем к этой беспроводной сети подключение будет происходить автоматически.

Бенчмарк

Тестируется скорость получения адресов по DHCP, Network manager and dnsmasq отключены.

— CentOS 7
— kernel-3.10.0-327.28.3.el7
— systemd 219
— ISC DHCP client daemon and dhclient-script 4.2.5

systemd-networkd

Меньше чем за секунду.

ISC DHCP

Среднее время после нескольких попыток составило 2.5 секунд.

Заключение

В виду активного использования systemd различными топовыми дистрибутивами Linux можно заключить, что, всё же, сообщество стремится к унификации основных системных функций. К ним относится, в том числе, конфигурирование сети, а systemd, в свою очередь, предлагает удобное, быстрое и функциональное решение. И пусть пока это решение сталкивается с проблемой отсутствия GUI для десктопных систем, но для Linux серверов оно, возможно, станет стандартом «де-факто» и заменит кучу легаси демонов и отдельных утилит. Это сделает Linux гораздо более удобным для контейнеризации и использования на виртуальных машинах.

Источник

Ускорение загрузки Linux

Но порой система инициализации выполняет много лишних задач во время загрузки, иногда некоторые сервисы ожидают загрузки других и завершаются только по таймауту через некоторое время. В таких случаях система может загружаться до нескольких минут. В этой статье мы рассмотрим как ускорить загрузку Linux, что нужно для этого настроить, что удалить. А также немного поговорим о процессе загрузки. Мы сосредоточимся на системе инициализации systemd.

Как проходит загрузка Linux

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

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

Но самое интересное начинается дальше. Перед тем как начать загрузку системы ядро выполняет несколько проверок, загружает модули и так далее. Не все проверки нужно выполнять и не все модули нам нужны.

Загрузка сервисов отнимает больше всего времени и больше всего работы придется проделать здесь, определить какие сервисы не нужны и отключить их также скрыть те сервисы, которые отключить нельзя. Чтобы понять что именно отключать нам нужно знать сколько времени занимает загрузка каждого сервиса. Давайте рассмотрим анализ скорости загрузки systemd.

Анализ загрузки Systemd

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

Давайте посмотрим насколько быстро грузится наша система сейчас:

networkd dispatcher service что это. Смотреть фото networkd dispatcher service что это. Смотреть картинку networkd dispatcher service что это. Картинка про networkd dispatcher service что это. Фото networkd dispatcher service что это

Да, здесь 17 секунд, не так уж плохо, но будет еще лучше после завершения ускорения загрузки. На загрузку ядра уходит 5.405, а на все остальные сервисы 11.611. Чтобы понять какие именно сервисы замедляют систему нам нужна более подробная информация, мы можем ее получить с помощью параметра blame:

networkd dispatcher service что это. Смотреть фото networkd dispatcher service что это. Смотреть картинку networkd dispatcher service что это. Картинка про networkd dispatcher service что это. Фото networkd dispatcher service что это

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

systemd-analyze plot > graph.svf

Утилита сгенерирует svf файл с графиком, откройте его в браузере:

networkd dispatcher service что это. Смотреть фото networkd dispatcher service что это. Смотреть картинку networkd dispatcher service что это. Картинка про networkd dispatcher service что это. Фото networkd dispatcher service что это

Вот теперь у нас есть вся информация, чтобы оптимизировать систему. Здесь отображается не только время загрузки каждого сервиса, но также время когда он начал загружаться и когда завершил. Дальше начнем ускорение загрузки Linux.

Ускорение загрузки Linux

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

Настраивать Grub будем правильно. Параметры загрузки ядра находятся в файле /etc/default/grub, а именно в строчке GRUB_CMDLINE_LINUX_DEFAULT. Откройте этот файл:

Теперь приводим интересующую нас строчку к такому состоянию:

GRUB_CMDLINE_LINUX_DEFAULT=»quiet rootfstype=ext4 libahci.ignore_sss=1 raid=noautodetect selinux=0 plymouth.enable=0 lpj=12053560″

Разберем подробнее за что отвечает каждый параметр:

Чтобы узнать значение последнего параметра выполните:

networkd dispatcher service что это. Смотреть фото networkd dispatcher service что это. Смотреть картинку networkd dispatcher service что это. Картинка про networkd dispatcher service что это. Фото networkd dispatcher service что это

Нас будет интересовать значение lpj=, укажите его в своем конфигурационном файле.

Также для указания корневого раздела желательно не использовать всякие там UUID, быстрее будет если написать прямо. Для того чтобы конфигуратор grub не использовал grub добавьте в тот же файл строчку:

Сохраните файл и обновим конфигурацию grub:

Проверяем, действительно ли установлены нужные опции:

networkd dispatcher service что это. Смотреть фото networkd dispatcher service что это. Смотреть картинку networkd dispatcher service что это. Картинка про networkd dispatcher service что это. Фото networkd dispatcher service что это

Да, все правильно, перезагружаем компьютер, и смотрим что вышло:

networkd dispatcher service что это. Смотреть фото networkd dispatcher service что это. Смотреть картинку networkd dispatcher service что это. Картинка про networkd dispatcher service что это. Фото networkd dispatcher service что это

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

Настройка системы

Во-первых SELinux отключен не полностью. Для полного отключения добавляем строку в файл /etc/selinux/config:

sudo vi /etc/selinux/config

Во-вторых, проверка файловых систем тоже может занять некоторое время. Оставляем проверку на ошибки только для корня. Для этого откройте файл /etc/fstab и приведите строчку для корня к такому виду:

/dev/sda3 / ext4 defaults 1 1

/dev/sda1 /boot ext4 noauto,comment=systemd.automount 1 0

Затем давайте перенесем папку /tmp в оперативную память, чтобы уменьшить количество операций на жестком диске:

tmpfs /tmp tmpfs defaults 0 0

Ускорение загрузки Linux отключением сервисов

Вот мы и добрались к сервисам. Оптимизация сервисов заключается в том, чтобы отключить лишнее, а также использовать только возможности, встроенные в systemd, так будет быстрее. Сначала перенесем всю функциональность на systemd.

Первым отключим rsyslog. В systemd используется свой механизм записи логов journald, поэтому вести еще один не нужно. Для отключения выполните:

sudo systemctl disable rsyslog
$ sudo systemctl mask rsyslog

Опция mask позволяет спрятать юнит, система будет думать что его не существует и не сможет загрузить. Восстановить такой юнит можно командой systemctl unmask.

Отключаем NetworkManager и включаем networkd:

sudo systemctl disable NetworkManager
sudo systemctl enable systemd-networkd

Службу networking тоже можно отключить, если не используете:

sudo systemctl disable networking

Включаем resolved, который отвечает за настройку DNS серверов:

sudo systemctl enable systemd-resolved
sudo systemctl start systemd-resolved

Даем символическую ссылку на файл /etc/resolv.conf

Осталось настроить динамическое получение ip адреса при загрузке:

sudo vi /etc/systemd/network/20-dhcp.network

[Match]
Name=enp*
[Network]
DHCP=yes

enp0* значит, что сеть нужно подымать только для устройств, имена которых начинаются на enp0. Готово, сеть настроена.

В systemd есть свое решение для выполнения задач по расписанию, поэтому cron можно не использовать:

sudo systemctl disable cron

С заменой разобрались, перейдем к удалению лишнего. Отключаем фаервол, на домашней машине, за маршрутизатором он не нужен:

sudo systemctl disable ufw
$ sudo systemctl mask ufw

Отключаем apport (служба отчетов об ошибках):

sudo systemctl disable apport

Я не использую ppp и мобильные соединения, поэтому и эти сервисы можно отключить.

sudo systemctl disable pppd-dns
sudo systemctl mask pppd-dns

sudo systemctl disable ModemManager
sudo systemctl mask ModemManager

Если вы не используете Avahi, его тоже можно отключить:

sudo systemctl disable avahi-daemon

Систему AppArmor тоже можно отключить:

sudo systemctl disable apparmor

Также если у вас загружаются такие программы, как postfix (почтовый сервер), apache (веб-сервер), mysql (сервер баз данных) лучше их тоже убрать из автозагрузки и запускать потом вручную.

Перезагружаемся и проверяем скорость загрузки:

networkd dispatcher service что это. Смотреть фото networkd dispatcher service что это. Смотреть картинку networkd dispatcher service что это. Картинка про networkd dispatcher service что это. Фото networkd dispatcher service что это

Выводы

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

Источник

Linux служба ‘NetworkManagerDispatcher’ | Как поддерживать активное сетевое соеднинение

Демон NetworkManager пытается постоянно поддерживать активное сетевое соединение.

Средство NetworkManager предлагает инструмент NetworkManagerDispatcher, который выполняет команды в /etc/NetworkManager/dispatcher.d в соответствии с изменением состояния сетевых интерфейсов.

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

Для выполнения событий изменения состояния сети, на которые отвечает NetworkManagerDispatcher, должен работать NetworkManager.

Управление сервисом

Чтобы установить службу NetworkManagerDispatcher, установите пакет RPM NetworkManager:

Чтобы управлять службой NetworkManagerDispatcher при последующих выключениях и перезагрузках, используйте инструмент chkconfig:

Для немедленного управления службой NetworkManagerDispatcher используйте инструмент service:

Запустить этот демон:

Настройка

Ниже приведен пример скрипта, поставляемого с пакетом NetworkManager, расположенным в каталоге /etc/NetworkManager/dispatcher.d.

Заметка

Объект NetworkManager был разработан, чтобы облегчить пользователям мобильной сети, таким как пользователи ноутбуков, при переходе от одного беспроводного «hotspot» к другому. Системным администраторам следует внимательно рассмотреть вопрос о возможности включения средства NetworkManager на серверах, подключенных к фиксированной сети.

Источник

Настройка systemd-networkd на виртуальных серверах Ubuntu

systemd-networkd – это системный демон, который управляет сетевыми настройками. По мере появления он обнаруживает и настраивает сетевые устройства, также может создавать виртуальные сетевые устройства. Эта служба может быть особенно полезной для установки сложных сетевых настроек, для контейнера управляемым Systemd-nspawn или для виртуальных машин. А также отлично работает на простом соединении.

Systemd полностью поддерживается в Ubuntu 15.04 и старше.

Запуск systemd-networkd

Чтобы использовать, запустите следующие две службы и включите их работу при загрузке системы (отключив при этом другие демоны, управляющие конфигурацией сети, например netplan):

Конфигурирование

Конфигурационные файлы systemd-networkd находятся в директории /etc/systemd/network. Доступны следующие типы файлов:

Все они следуют тем же правилам:

[Match] раздел

Наиболее распространенные ключи:

[Network] раздел

Наиболее распространенные ключи:

[Address] раздел

Большинство общих ключ в разделе [Address]:

[Route] раздел

Большинство общих ключ в разделе [Route]:

Конфигурация для примера: два интерфейса со статическим IP в LAN и WAN.

Необходимо создать 4 файла в директории /etc/systemd/network/

Вот и всё: конфигурация сети завершена. Теперь можно перезапустить сервис:

В данном примере конфигурируем DHCP IPv4

Подключение типа «Мост»

Cоздает конфигурацию виртуального интерфейса:

Источник

Как выполнить пост-up скрипты с помощью netplan

Мой ник падает в сценариях с высокой пропускной способностью, если только разгрузка TSO не отключена.

Это I217-LM (драйвер e1000e).

Я делал это в интерфейсах:

Как мне сделать это с netplan на Ubuntu 18.04?

В настоящее время не поддерживается, конечно. Теперь у разработчиков Linux есть привычка менять что-то, что работает без всякой причины, и предоставлять незавершенный продукт.

Не уверен, что эта ссылка изменилась с момента публикации Bibelo, но, как говорится, netplan теперь поддерживает запуск сценариев с помощью хуков, в зависимости от вашего рендера.

Если вы используете рендер по умолчанию для networkd, вам нужно добавить пакет networkd-dispatcher. https://gitlab.com/craftyguy/networkd-dispatcher

Исходя из того, что вы пытаетесь сделать, я, вероятно, поместил бы скрипт в каталоги carrier.d и / или routable.d. На этой странице было лучшее описание того, для чего нужны разные каталоги состояний.

Посмотрите это для примера того, как я использовал networkd-dispatcher для другой цели. https://fixingitpro.com/2018/12/28/displaying-ip-info-on-console-with-netplan/

Я создал небольшой скрипт /etc/networkd-dispatcher/routable.d/50-ifup-hooks

Он запускается при каждой перезагрузке после запуска сетевых интерфейсов.

пример

Мой хук post-up необходим для поддержки маршрутизации источника, так как у меня есть две сетевые карты:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *