LINUX.ORG.RU
ФорумTalks

predictable interface names: по-моему это fail

 , ,


0

1

В связи с настройкой нового сервера я испытал грабли с этими predictable names: до первой загрузки с systemd мне имя интерфейса не известно вообще (с чем я и столкнулся при настройке нового сервера из livecd в котором systemd не было). И вот тут меня осенило - а нафига это вообще нужно?

На сервере с одним интерфейсом я хочу чтобы имя было всегда eth0. Зачем мне его менять?

На сервере с несколькими сетевухами мне не нужны ни eth0, eth1, ни enp0s3, enp0s4 итп. Мне нужны int, ext, dmz итп. Т.е. осмысленные имена.

В общем, я считаю что Поттеринг зря потратил на эту фичу время. А persistent names в udev уже давно реализованы.

Оно нацелено на десктоп. Осмысленные имена на десктопе не нужны, нужно просто, чтобы они не менялись.

geekless ★★ ()
Ответ на: комментарий от geekless

Оно нацелено на десктоп.

На 99.99% десктопов один ethernet-интерфейс. И теперь юзер должен гадать как же он называется, и менять все конфиги при смене сетевухи.

Axon ★★★★★ ()
Ответ на: комментарий от Axon

Ну скажем спасибо тем людям, которые в незапамятные времена нарушили принцип «все есть файл» при проектировании сетевой подсистемы.

Будь это файлы, все решалось бы элементарно, как в случае с /dev/disk/

geekless ★★ ()
Последнее исправление: geekless (всего исправлений: 1)
Ответ на: комментарий от geekless

Будь это файлы, все решалось бы элементарно, как в случае с /dev/disk/

Эммм... Я с утра в танке. Что бы это поменяло? Дало возможность понаставить симлинков?

Axon ★★★★★ ()
Ответ на: комментарий от Axon

А ваще, будь поцтеринг вменяемее, он бы решил проблему нормальным способом:

Взял бы свои predictable interface names, отсортировал по алфавиту, и в соответствии с получившимся порядком назначил бы обычные имена eth0, eth1...

geekless ★★ ()
Ответ на: комментарий от geekless

А ваще, будь поцтеринг вменяемее, он бы решил проблему нормальным способом:

Взял бы свои predictable interface names, отсортировал по алфавиту, и в соответствии с получившимся порядком назначил бы обычные имена eth0, eth1...

А потом появляется новый вендор сетевого оборудования, и мы имеем всякие eth9+3/4...

Axon ★★★★★ ()
Ответ на: комментарий от geekless

это решение переусложнённое и не решает задачи при изменении кол-ва сетевух, т.е. решение практически настолько же unpredictable как и сейчас.

А при чем тут systemd? это чисто udev фича.

qnikst ★★★★★ ()

А persistent names в udev уже давно реализованы.

«names» ненужны. Нужны алиасы и HW-dependent identifiers, типа net0018718026df.

no-dashi ★★★★★ ()
Ответ на: комментарий от qnikst

т.е. решение практически настолько же unpredictable как и сейчас.

Не совсем. Как было с udev persistent names?

Вставили адаптер -> он стал eth0. Вытащили его, вставили другой в тот же слот - он тал уже eth1.

Теперь

Вставили адаптер -> он стал p3p1. Вытащили его, вставили другой - он остался p3p1. Имена как раз предсказуемые, вот только... Дурацкие.

no-dashi ★★★★★ ()
Ответ на: комментарий от qnikst

unpredictable как и сейчас.

А разве сейчас не persistent naming rules? Т.е. привязка названия к MAC. Это во многих дистрах так.

А при чем тут systemd? это чисто udev фича.

udev часть systemd и заведует им тот же товарищ, не?

true_admin ★★★★★ ()

Достаточно просто удалить/закомментировать /usr/lib/udev/rules.d/80-net-name-slot.rules.

<самопиар>
Кстати, в моём eudev-git так и сделано. Если вам всё же понадобиться включить сабжевую фичу, просто откройте /etc/udev/rules.d/80-net-name-slot.rules и раскомментируйте нужные строки.
</самопиар>

AX ★★★★★ ()
Ответ на: комментарий от J

Сервер на арче?

Мастер-машина и бэкапные виртуалки на арче. В «боевых» виртуалках ubuntu lts чтобы меньше возни было.

true_admin ★★★★★ ()
Ответ на: комментарий от no-dashi

ты контекст разговора видел? я про решение предложенное geekless, который предагал делать сначала predictable а потом их сортировать по имени и переименовывать в ethX, что не спасло бы от гонок, т.к. ядро и юзер разделяют пространство имен ethX, плюс было бы то, что ты описал сначала.

Для udev раньше было решение с persistent names, которое работало не всегда, т.е. там присутствуют race conditions (решается или использованием другого пространства имен, или в случае фейла переименования попытаться переименовать ещё раз через небольшой таймаут). Насчет сейчас тоже как-то неясно, они предсказуемые после 1 запуска, если мы втыкаем сетевуху в голый комп - мы понятия не имеем, какое у неё будет имя, хотя у меня нету опыта работы с серверами, чтобы судить насколько это там важно.

qnikst ★★★★★ ()
Ответ на: комментарий от true_admin

А разве сейчас не persistent naming rules? Т.е. привязка названия к MAC. Это во многих дистрах так

да, только с гонками.

udev часть systemd и заведует им тот же товарищ, не?

к счастью пока это всё же подпроект, но весьма отдельный и если бы не упёртость некоторых товарищий даже собирался бы отдельно. Возможно ситуация меняется, напр. судя по тому, что они стали брать некоторые патчи из eudev, и возможно будет новый тур по проталкиванию патчей на standalone build.

qnikst ★★★★★ ()
Ответ на: комментарий от geekless

systemd на десктоп? Сам поцеринг говорил, что оно и для серверов делается.

Quasar ★★★★★ ()
Ответ на: комментарий от no-dashi

Нужны алиасы и HW-dependent identifiers, типа net0018718026df.

А что делать в случае с Link Aggregation?

GateKeeper ★★ ()

На сервере с несколькими сетевухами мне не нужны ни eth0, eth1, ни enp0s3, enp0s4 итп. Мне нужны int, ext, dmz итп. Т.е. осмысленные имена.

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

А persistent names в udev уже давно реализованы.

давно выпилены, если про net

В общем, я считаю что Поттеринг зря потратил на эту фичу время.

Это все проделки Кая )

vasily_pupkin ★★★★★ ()
Ответ на: комментарий от qnikst

Возможно ситуация меняется, напр. судя по тому, что они стали брать некоторые патчи из eudev, и возможно будет новый тур по проталкиванию патчей на standalone build.

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

vasily_pupkin ★★★★★ ()
Ответ на: комментарий от qnikst

Насчет сейчас тоже как-то неясно, они предсказуемые после 1 запуска, если мы втыкаем сетевуху в голый комп - мы понятия не имеем, какое у неё будет имя, хотя у меня нету опыта работы с серверами, чтобы судить насколько это там важно.

Это совершенно не нужно.

grep ^1 /sys/class/net/*/type -l | cut -f 5 -d /
vasily_pupkin ★★★★★ ()
Ответ на: комментарий от geekless

Взял бы свои predictable interface names, отсортировал по алфавиту, и в соответствии с получившимся порядком назначил бы обычные имена eth0, eth1...

што

vasily_pupkin ★★★★★ ()
Ответ на: комментарий от qnikst

Если ты пишешь конфиги до того как знаешь название своей сетевухи (даже без udev), ты, вероятно, пишешь в общем случае. В таком случае тебе логичнее было бы полагаться на интроспекцию ОС. Если ты пишешь конфиги после того как знаешь название своей сетевухи, то.. то проблемы нет. Если ты пишешь конфиги для конкретной тачки и ситуации, но не знаешь название сетевухи, то не понятно что тебе мешает запустить ip и его узнать.

vasily_pupkin ★★★★★ ()
Ответ на: комментарий от qnikst

А разве сейчас не persistent naming rules? Т.е. привязка названия к MAC. Это во многих дистрах так

да, только с гонками.

гонки успешно разруливаются удавом путём переименования. Причём именно в ethX, как оно надо.

drBatty ★★ ()
Ответ на: комментарий от vasily_pupkin

На 99.99% десктопов с линаксом стоит NM, которому глубоко покуй, какие там имена сетевух

ну стоять-то оно стоит, только далеко не все его юзают (сужу как всегда и по себе).

drBatty ★★ ()
Ответ на: комментарий от vasily_pupkin

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

я же в топике указал случай когда имя мне не было известно. Как мне интроспекция поможет узнать имя которое назначит udev? Самому ручками вычислить?

true_admin ★★★★★ ()
Ответ на: комментарий от true_admin

Как мне интроспекция поможет узнать имя которое назначит udev?

Для начала нужно узнать, что ты под этим понимаешь, и с какой целью тебе это нужно. Потому что узнать имя которое назначит удев очень просто, собственно:

http://cgit.freedesktop.org/systemd/systemd/tree/src/udev/udev-builtin-net_id...

vasily_pupkin ★★★★★ ()
Ответ на: комментарий от drBatty

гонки успешно разруливаются удавом путём переименования. Причём именно в ethX, как оно надо.

Ну здрасте. Создание правил для переименования сетевых интерфейсов в ethX строго не рекомендуется, так как именно это и вызывает race condition. RTFM.

Axon ★★★★★ ()
Ответ на: комментарий от Axon

Ну здрасте. Создание правил для переименования сетевых интерфейсов в ethX строго не рекомендуется, так как именно это и вызывает race condition. RTFM.

до свидания. Я с Патрегом создаю, УМВР, ЧЯДНТ?

drBatty ★★ ()
Ответ на: комментарий от drBatty

сказать то что хотел?

в генте тоже есть удав, при этом можно поставить как 171 (как в слаке, если не ошибаюсь), так 197 или live версию, и там есть eth0, eth1 и т.д.

qnikst ★★★★★ ()
Ответ на: комментарий от drBatty

тебе уже сказали, что systemd отношения к этому не имеет. Race же есть, но далеко не всегда, хочешь посмотреть на race - поменяй маки eth0 и eth1 в persistent конфиге местами.

qnikst ★★★★★ ()
Ответ на: комментарий от drBatty

может я просто не юзаю systemd?

Это не имеет никакого значения.

Axon ★★★★★ ()
Ответ на: комментарий от Axon

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

qnikst ★★★★★ ()
Ответ на: комментарий от drBatty

ну я тебе показал, что ты не прав.

Дополню, в генте можно иметь udev-197 и там будет predictable имена, если захочешь (установишь use-flag или руками добавишь файл).

qnikst ★★★★★ ()
Ответ на: комментарий от geekless

Оно нацелено на десктоп.

Пользователям десктопов вообще не надо задумываться как звется сетевой интерфейс.

Deleted ()
Ответ на: комментарий от qnikst

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

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

Axon ★★★★★ ()
Ответ на: комментарий от Axon

Просто гонку по какой-нибудь причине выиграет ядро, и привет.

чо?

У меня такое было, например.

ты сможешь объяснить процесс, который там происходил? Случаев где такое может быть крайне мало и лечатся они элементарно.

qnikst ★★★★★ ()
Ответ на: комментарий от Axon

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

KivApple ★★★★★ ()
Ответ на: комментарий от no-dashi

Если я ничего не путаю, то в FreeBSD такая схема реализована, только более красиво.

Chaser_Andrey ★★★★★ ()
Ответ на: комментарий от KivApple

достаточно маловероятно

Редкое но вполне себе обычное явление.

Behem0th ★★★★★ ()
Ответ на: комментарий от Axon

Рассчитываете на это. Когда сломается, вспомните, что я предупреждал.

и долго мне ждать, пока оно «сломается»? Вангую, что твой systemds в твоём арчике сломается куда как раньше.

drBatty ★★ ()
Ответ на: комментарий от qnikst

тебе уже сказали, что systemd отношения к этому не имеет. Race же есть, но далеко не всегда, хочешь посмотреть на race - поменяй маки eth0 и eth1 в persistent конфиге местами.

менял. И что? Всё равно eth0 остаётся eth0, как его не меняй. В чём проблема-то? Что eth1 опознаётся раньше eth0? Ну дык удав их и переименовывает как надо. Зачем нужны какие-то новые имена?

drBatty ★★ ()
Ответ на: комментарий от qnikst

ну я тебе показал, что ты не прав.

нет. Не показал. Если обозвать eth0 как eth0, то он будет eth0, в чём проблема-то? В наличие второго eth(третьего и т.д)? Ну есть такое, что дальше?

Мне кажется, ты выдаёшь какие-то гентупроблемы(арчепроблемы) за глобальную беду.

drBatty ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.