Автор Тема: etcnet + bond vs systemd  (Прочитано 5563 раз)

Оффлайн KALIBR-10

  • Давно тут
  • **
  • Сообщений: 357
etcnet + bond vs systemd
« : 16.02.2021 20:03:39 »
Есть 4 интерфейса: eno1, eno2, ens5f0, ens5f1
А так же bond0 [eno1, eno2] и bond1 [ens5f0, ens5f1]
Для eno1, eno2, ens5f0, ens5f1 созданы юниты и добавлены в автозапуск
Но при перезагрузке сервера бонды не поднимаются

options для eno1, eno2, ens5f0, ens5f1:
TYPE=eth
CONFIG_WIRELESS=no
BOOTPROTO=static
CONFIG_IPV4=no
DISABLED=no
NM_CONTROLLED=no
ONBOOT=no
CONFIG_IPV6=no

options для bond0:
TYPE=bond
ONBOOT=yes
DISABLED=no
NM_CONTROLLED=no
CONFIG_WIRELESS=no
CONFIG_IPV4=yes
CONFIG_IPV6=no
BOOTPROTO=static
HOST="eno1 eno2"
BONDMODE=1
BONDOPTIONS=" "

options для bond1:
TYPE=bond
ONBOOT=yes
DISABLED=no
NM_CONTROLLED=no
CONFIG_WIRELESS=no
CONFIG_IPV4=yes
CONFIG_IPV6=no
BOOTPROTO=static
HOST="ens5f0 ens5f1"
BONDMODE=1
BONDOPTIONS=" "

Если после загрузки ОС залогиниться и выполнить:
systemctl restart networkто бонды поднимаются.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 7 351
  • Sunny 273 RUS crew
Re: etcnet + bond vs systemd
« Ответ #1 : 16.02.2021 23:21:07 »
А сервис network при загрузке стартует?

Оффлайн KALIBR-10

  • Давно тут
  • **
  • Сообщений: 357
Re: etcnet + bond vs systemd
« Ответ #2 : 17.02.2021 09:01:13 »
А сервис network при загрузке стартует?

Да, вот так выглядит

фев 17 05:51:58 mlxbackups2.localdomain systemd[1]: Starting Network Connectivity...
фев 17 05:51:58 mlxbackups2.localdomain network[2790]: Computing interface groups: ....... 7 interfaces found
фев 17 05:51:58 mlxbackups2.localdomain network[2790]: Starting group 0/virtual (1 interfaces)
фев 17 05:51:58 mlxbackups2.localdomain network[2790]: Computing interface groups: ....... 7 interfaces found
фев 17 05:51:58 mlxbackups2.localdomain network[2790]: Starting group 0/virtual (1 interfaces)
фев 17 05:51:58 mlxbackups2.localdomain systemd[1]: Starting Network Connectivity...
фев 17 05:51:58 mlxbackups2.localdomain network[2790]: Computing interface groups: ....... 7 interfaces found
фев 17 05:51:58 mlxbackups2.localdomain network[2790]: Starting group 0/virtual (1 interfaces)
фев 17 05:51:58 mlxbackups2.localdomain network[2790]:         Starting lo:  'lo' is already up SKIPPED
фев 17 05:51:58 mlxbackups2.localdomain network[2790]: Starting group 1/realphys (4 interfaces)
фев 17 05:51:58 mlxbackups2.localdomain network[2790]:         Starting eno1:  on boot SKIPPED
фев 17 05:51:58 mlxbackups2.localdomain network[2790]:         Starting eno2:  on boot SKIPPED
фев 17 05:51:58 mlxbackups2.localdomain network[2790]:         Starting ens5f0:  on boot SKIPPED
фев 17 05:51:58 mlxbackups2.localdomain network[2790]:         Starting ens5f1:  on boot SKIPPED
фев 17 05:51:58 mlxbackups2.localdomain network[2790]: Processing /etc/net/vlantab: empty.
фев 17 05:51:58 mlxbackups2.localdomain network[2790]: Starting group 2/hostedphys (2 interfaces)
фев 17 05:51:59 mlxbackups2.localdomain network[2790]:         Starting bond0: Cannot find device "eno1"
фев 17 05:51:59 mlxbackups2.localdomain network[2790]: .Cannot find device "eno1"
фев 17 05:51:59 mlxbackups2.localdomain network[2790]: .Cannot find device "eno2"
фев 17 05:51:59 mlxbackups2.localdomain network[2790]: .Cannot find device "eno2"
фев 17 05:51:59 mlxbackups2.localdomain network[2790]: .Cannot find device "eno1"
фев 17 05:51:59 mlxbackups2.localdomain network[2790]: Cannot find device "eno2"
фев 17 05:51:59 mlxbackups2.localdomain network[2790]: !FAILED
фев 17 05:51:59 mlxbackups2.localdomain network[2790]:         Starting bond1: Cannot find device "ens5f0"
фев 17 05:51:59 mlxbackups2.localdomain network[2790]: .Cannot find device "ens5f0"
фев 17 05:51:59 mlxbackups2.localdomain network[2790]: Cannot find device "ens5f0"
фев 17 05:51:59 mlxbackups2.localdomain network[2790]: .Cannot find device "ens5f1"
фев 17 05:51:59 mlxbackups2.localdomain network[2790]: .Cannot find device "ens5f1"
фев 17 05:51:59 mlxbackups2.localdomain network[2790]: Cannot find device "ens5f1"
фев 17 05:51:59 mlxbackups2.localdomain network[2790]: .Cannot find device "ens5f0"
фев 17 05:51:59 mlxbackups2.localdomain network[2790]: Cannot find device "ens5f1"
фев 17 05:51:59 mlxbackups2.localdomain network[2790]: !FAILED
фев 17 05:51:59 mlxbackups2.localdomain systemd[1]: Started Network Connectivity.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 7 351
  • Sunny 273 RUS crew
Re: etcnet + bond vs systemd
« Ответ #3 : 17.02.2021 11:05:48 »
Ну так написано же: Cannot find device "eno1" и т.п. Значит к этому моменту они ещё не переименованы из eth[0123], как их ядро обозвало (и следует помнить, что ядро имена относительно произвольно назначает от перезагрузки к перезагрузке). Может быть надо это средствами systemd настраивать, или проверять, что udev до этого стартует. По идее переименовывает udev, но кто его знает.

Оффлайн KALIBR-10

  • Давно тут
  • **
  • Сообщений: 357
Re: etcnet + bond vs systemd
« Ответ #4 : 17.02.2021 11:51:32 »
Ну так написано же: Cannot find device "eno1" и т.п. Значит к этому моменту они ещё не переименованы из eth[0123], как их ядро обозвало (и следует помнить, что ядро имена относительно произвольно назначает от перезагрузки к перезагрузке). Может быть надо это средствами systemd настраивать, или проверять, что udev до этого стартует. По идее переименовывает udev, но кто его знает.

Такая ситуация именно на 2-х одинаковых по железу серверах, на остальных пока такое не наблюдалось. У меня уже сил нет с этим разбираться, работа стоит, накачу на эти эти 2 цент, будем считать что железо не подходит для импортозамещения))

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 7 351
  • Sunny 273 RUS crew
Re: etcnet + bond vs systemd
« Ответ #5 : 17.02.2021 17:58:06 »
Такая ситуация именно на 2-х одинаковых по железу серверах, на остальных пока такое не наблюдалось. У меня уже сил нет с этим разбираться, работа стоит, накачу на эти эти 2 цент, будем считать что железо не подходит для импортозамещения))
Да хоть на скольких. Всё совершенно предсказуемо и прозрачно. А где не так, там просто повезло.

1. Ядро именует интерфейсы именами ethN в произвольном порядке. Влиять на это может драйвер сетевой карты, например с Intel обычно это было постоянно.
2. udev переименовывает имена в соответствии либо с link-файлами, либо с /etc/udev/rules.d/XX-persistent-net.rules
3. etcnet работает с доступными на данный момент именами.

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

Зачем systemd на сервере? Надо ставить систему с sysvinit, и волосы будут шелковистыми. :-)  Ну если только systemd реально зачем-то не нужен.

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 587
Re: etcnet + bond vs systemd
« Ответ #6 : 17.02.2021 19:12:09 »
> Зачем systemd на сервере?

так и на десктопе эта хрень как собаке 5 нога.

а в теме походу состояние гонки в этом велосипеде... что-то стартует раньше чем следует...

если rc.local или аналог еще существует, то запихать туда
sleep 10
systemctl restart network

:) ну чтоб интерпрайзненько было



Оффлайн klark973

  • Давно тут
  • **
  • Сообщений: 584
  • Неспящий саппорт
Re: etcnet + bond vs systemd
« Ответ #7 : 18.02.2021 09:54:18 »
Ошибка в этом месте:
options для eno1, eno2, ens5f0, ens5f1:
...
ONBOOT=no
...
ONBOOT=yes тут должно быть.

В настройках bond'ов можно ещё заменить две последних строки на:
BONDMODE=4
BONDOPTIONS="lacp_rate=1"
Разумеется, при поддержке 802.3ad свичами, это вообще единственный нативный бондинг.
To moan or to solve -- that is the question!

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 7 351
  • Sunny 273 RUS crew
Re: etcnet + bond vs systemd
« Ответ #8 : 18.02.2021 10:14:37 »
ONBOOT=yes тут должно быть.
Не важно. ONBOOT=yes есть в bondX, поднимется по цепочке. Главное, что не DISABLED=yes (хотя... надо глянуть, может и это проигнорируется).

Оффлайн KALIBR-10

  • Давно тут
  • **
  • Сообщений: 357
Re: etcnet + bond vs systemd
« Ответ #9 : 18.02.2021 10:21:42 »
Ошибка в этом месте:
options для eno1, eno2, ens5f0, ens5f1:
...
ONBOOT=no
...
ONBOOT=yes тут должно быть.


Взято от сюда https://www.altlinux.org/Etcnet#%D0%98%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D1%8F_%D1%81_systemd,_%D0%B8%D0%BB%D0%B8_%D1%87%D1%82%D0%BE_%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C_%D0%B5%D1%81%D0%BB%D0%B8_%D0%BD%D0%B5_%D0%BF%D0%BE%D0%B4%D0%BD%D0%B8%D0%BC%D0%B0%D0%B5%D1%82%D1%81%D1%8F_%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81_%D0%BF%D1%80%D0%B8_%D1%81%D1%82%D0%B0%D1%80%D1%82%D0%B5., я же ничего сам не придумываю, и стараюсь действовать в рамках статей и документации

Интеграция с systemd, или что делать если не поднимается интерфейс при старте.
Начиная с версии 0.9.12 в etcnet добавлен Unit для включения интерфейсов по мере их появления в системе. Это позволяет избежать "гонок", когда сетевая подсистема поднимается раньше, чем ОС загружает драйвера для сетевых устройств. Для этого нужно выставить ONBOOT=no в файле options интерфейса и включить его подъём через systemd при загрузке: systemctl enable network@<имя интерфейса>.

Оффлайн klark973

  • Давно тут
  • **
  • Сообщений: 584
  • Неспящий саппорт
Re: etcnet + bond vs systemd
« Ответ #10 : 18.02.2021 10:23:24 »
ONBOOT=yes тут должно быть.
Не важно. ONBOOT=yes есть в bondX, поднимется по цепочке.
Нет, не поднимается. Проверялось уже много раз. Надо будет на ВиКи поправить. Или в etcnet. :-)
To moan or to solve -- that is the question!

Оффлайн klark973

  • Давно тут
  • **
  • Сообщений: 584
  • Неспящий саппорт
Re: etcnet + bond vs systemd
« Ответ #11 : 18.02.2021 10:32:42 »
Интеграция с systemd, или что делать если не поднимается интерфейс при старте.
Это очень спорный спорный вопрос при дальнейшем конфигурировании средствами etcnet. Он делался без учёта systemd изначально. Если не поднимается интерфейс при старте, нужно прописать соответствующий модуль в options:
...
MODULE=e1000e
Как вариант, прописать загрузку нужных модулей в /etc/modules глобально.
To moan or to solve -- that is the question!

Оффлайн KALIBR-10

  • Давно тут
  • **
  • Сообщений: 357
Re: etcnet + bond vs systemd
« Ответ #12 : 18.02.2021 10:54:36 »
Это очень спорный спорный вопрос при дальнейшем конфигурировании средствами etcnet. Он делался без учёта systemd изначально. Если не поднимается интерфейс при старте, нужно прописать соответствующий модуль в options:
...
MODULE=e1000e
Как вариант, прописать загрузку нужных модулей в /etc/modules глобально.

Переустановил систему чтоб с нуля всё попробовать. И так, я не создаю юниты для системд, выставляю в в опциях интерфейса ONBOOT=yes и прописываю модуль. Надеюсь разберусь какие модули нужны для моих сетевух

Оффлайн klark973

  • Давно тут
  • **
  • Сообщений: 584
  • Неспящий саппорт
Re: etcnet + bond vs systemd
« Ответ #13 : 18.02.2021 10:57:15 »
Переустановил систему чтоб с нуля всё попробовать.
В первом посте была правильная конфигурация за исключением одного указанного момента.

Надеюсь разберусь какие модули нужны для моих сетевух
lspci -k поможет.
To moan or to solve -- that is the question!

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 7 351
  • Sunny 273 RUS crew
Re: etcnet + bond vs systemd
« Ответ #14 : 18.02.2021 11:11:31 »
ONBOOT=yes тут должно быть.
Не важно. ONBOOT=yes есть в bondX, поднимется по цепочке.
Нет, не поднимается. Проверялось уже много раз. Надо будет на ВиКи поправить. Или в etcnet. :-)
Ну именно с TYPE=bond не проверял, но с TYPE=vlan поднимается бодро.