Summary: | Выбор сетевого интерфейса DHCP при установке по сети. | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | Branch p10 | Reporter: | Bolshedvorsky Evgeny <jenya> | ||||||||||||
Component: | propagator | Assignee: | Leonid Krivoshein <klark> | ||||||||||||
Status: | CLOSED FIXED | QA Contact: | qa-p10 <qa-p10> | ||||||||||||
Severity: | normal | ||||||||||||||
Priority: | P3 | CC: | alexander.s.artamonov, antohami, iv, klark, mike, nickf, rider, sem | ||||||||||||
Version: | не указана | ||||||||||||||
Hardware: | all | ||||||||||||||
OS: | Linux | ||||||||||||||
Attachments: |
|
Description
Bolshedvorsky Evgeny
2019-05-15 18:01:34 MSK
1) https://www.altlinux.org/Installer/common/propagator : automatic=method:http,interface:eth1,network:dhcp 2) На подходе новый make-initrd, заменяющий propagator -- там с сетью всё будет поумнее. (In reply to comment #0) > А еще лучше возможность > передавать конкретное имя интерфейса для DHCP. (In reply to comment #1) > automatic=method:http,interface:eth1,network:dhcp Так оно работает, как описано в документации, или нет? Багу можно закрывать? > (In reply to comment #1)
> > automatic=method:http,interface:eth1,network:dhcp
>
> Так оно работает, как описано в документации, или нет? Багу можно закрывать?
Конкретно на 801 вываливается в окошко выбора сетевых интерфейсов (static/dhcp)
При при выборе DHCP сразу возвращается назад выбору интерфейсов.
(In reply to comment #3) > > (In reply to comment #1) > > > automatic=method:http,interface:eth1,network:dhcp > > > > Так оно работает, как описано в документации, или нет? Багу можно закрывать? > Конкретно на 801 вываливается в окошко выбора сетевых интерфейсов (static/dhcp) > При при выборе DHCP сразу возвращается назад выбору интерфейсов. Всё-таки просьба привести тогда полностью вывод /proc/cmdline, где на e2k с предложенным вариантом всё равно вываливается окошко. Оно обычно вываливается, когда есть проблемы с настройками DHCP-сервера и тогда помогает дописывание ещё и полного пути к ISO-образу вместе с IP-адресом NFS-сервера. Так что здесь надо увидеть сразу ещё и весь /etc/dhcp/dhcpd.conf. (Ответ для Bolshedvorsky Evgeny на комментарий #3) > > (In reply to comment #1) > > > automatic=method:http,interface:eth1,network:dhcp > > > > Так оно работает, как описано в документации, или нет? Багу можно закрывать? > Конкретно на 801 вываливается в окошко выбора сетевых интерфейсов > (static/dhcp) > При при выборе DHCP сразу возвращается назад выбору интерфейсов. Я такое смог воспроизвести в виртуалке, если подключить два интерфейса в одну сеть. Выбор интерфейса работает, но не работает dhcp. Леонид подготовил исправление: https://git.altlinux.org/tasks/334829 В моём кейсе помогает. Created attachment 15123 [details]
no_interface_on_boot.jpg
Created attachment 15124 [details]
ifaces.jpg
Created attachment 15125 [details]
ifaces_error.jpg
Развернул сервер сетевой установки для ВК Эльбрус. Для установки использовался образ: alt-server-10.2-20231122-e2kv4.iso 29b3009e61f4607c7bddd9c6e6d7ba20 Проверку загрузки выполнял на Эльбрус 801 Если в boot.conf не указан интерфейс "automatic=method:http,network:dhcp" загрузка повисает на этапе Sending DHCP request... В install.log пишет что пытается использовать интерфейс sit0, но получить ip по dhcp не может. На другие интерфейсы не переключается.(скрин no_interface_on_boot.jpg) При указании интерфейса в boot.conf "automatic=method:http,interface:eth0,network:dhcp" установка начинается корректно. Если переподключить dhcp не к eth0, появляется меню выбора интерфейсов(скрин ifaces.jpg). Но при выборе нужного сетевого интерфейса продолжить установку нет возможности, так как дальнейшие шаги не видно. (скрин ifaces_err.jpg) (Ответ для Nikita Obukhov на комментарий #9) > Но при выборе нужного сетевого интерфейса > продолжить установку нет возможности, так как дальнейшие шаги не видно. > (скрин ifaces_err.jpg) Попробуйте прописать параметр загрузки nomodeset. drm модуль ядра в неудачный момент загружается. (Ответ для Nikita Obukhov на комментарий #9) > Если в boot.conf не указан интерфейс "automatic=method:http,network:dhcp" > загрузка повисает на этапе Sending DHCP request... По этой причине и хотели починить возможность указывать конкретный интерфейс и пропускать карты, у которых нет линка. Пропуск давно реализован в рамках другого бага, этим чинится как раз возможность указывать или выбирать сетевой интерфейс. > В install.log пишет что пытается использовать интерфейс sit0, но получить ip > по dhcp не может. На другие интерфейсы не переключается.(скрин > no_interface_on_boot.jpg) Интерфейс может быть банально заблокирован на другой стороне, узнал пост-фактум, даже в методику тестирования этот нюанс просочился. > При указании интерфейса в boot.conf > "automatic=method:http,interface:eth0,network:dhcp" установка начинается > корректно. Что говорит об успешном решении проблемы. > Если переподключить dhcp не к eth0, появляется меню выбора > интерфейсов(скрин ifaces.jpg). Но при выборе нужного сетевого интерфейса > продолжить установку нет возможности, так как дальнейшие шаги не видно. > (скрин ifaces_err.jpg) Это уже за пределами данного бага, можно использовать VNC/headless. (Ответ для Leonid Krivoshein на комментарий #11) > Это уже за пределами данного бага, можно использовать VNC/headless. На данном этапе ip-адрес еще не получен. Подключение по vnc не возможно (Ответ для Антон Мидюков на комментарий #10) > Попробуйте прописать параметр загрузки nomodeset. drm модуль ядра в > неудачный момент загружается. Помогло, спасибо. >Если переподключить dhcp не к eth0, появляется меню выбора интерфейсов(скрин ifaces.jpg). Данное меню появляется не всегда. Из 5ти загрузок, меню появилось 2 раза. После выбора DHCP и загрузки по HTTP, сетевая установка начинается корректно. Остальные 3 раза, зависает на этапе Sending DHCP request... Сетевая установка не возможна (Ответ для Nikita Obukhov на комментарий #12) > (Ответ для Leonid Krivoshein на комментарий #11) > > Это уже за пределами данного бага, можно использовать VNC/headless. > На данном этапе ip-адрес еще не получен. Подключение по vnc не возможно Было сказано в ответ на: > при выборе нужного сетевого интерфейса > продолжить установку нет возможности, так как дальнейшие шаги не видно. Скорее всего, прошли дальше, судя по: > (Ответ для Антон Мидюков на комментарий #10) > > Попробуйте прописать параметр загрузки nomodeset. drm модуль ядра в > > неудачный момент загружается. > Помогло, спасибо. > >Если переподключить dhcp не к eth0, появляется меню выбора интерфейсов(скрин ifaces.jpg). > Данное меню появляется не всегда. > Из 5ти загрузок, меню появилось 2 раза. После выбора DHCP и загрузки по > HTTP, сетевая установка начинается корректно. > Остальные 3 раза, зависает на этапе Sending DHCP request... Сетевая > установка не возможна Предполагаю тут один из двух вариантов (либо оба): забанненый интерфейс и особенности работы с сетевой загрузкой, упоминаемой в методике тестирования. В любом случае, кажется, проблема решилась, а вновь выявленное относится не к ней. Так что с task #334829? Кто одобрит в Сизиф? 10.2 x86_64 Подтверждаю такое поведение инсталлятора при autoinstall. Поставил на всякий случай nomodeset, но для кластера предпочел перейти на static адреса сразу, т.е. method:nfs,network:static,ip:<ip узла> method:http в такой постановке не работает. Не видит почему-то сервер установки. Предлагает меню выбора. В выборе уже прописан правильный сервер и директория верная, но подтверждение возвращает туда же. Оказалось, что так тоже не всегда работает - иногда просто синий экран Welcome to ALT Linux. Есть какой-то "железный" метод, чтобы работало всегда??? (In reply to Александр from comment #15) > Есть какой-то "железный" метод, чтобы работало всегда??? Описанное вами не имеет совсем никакого отношения к обсуждаемому тут багу. Вам стоит подробно описать условия, железо, задачу и ожидания в новом баге. По данному багу было решение и много пингов, исправляющий таск так и висит в "кармане" без одобрения. Тем временем пропагатор отправляется в музей истории, замена будет в p11: https://www.altlinux.org/Installer/common/altboot Описанное мною есть именно ошибка при автоматической установке по сети на сервер с несколькими сетевыми устройствами. Я пытался попробовать другие варианты, в надежде, что заработает, но безуспешно. Поэтому я их перечислил. Но проблема в невозможности однозначно определить сетевое устройство для установщика. В одном случае это зависание на Sending DHCP request, в другом окно выбора сетевого интерфейса. Такое поведение происходит не всегда, поэтому проблемы не в DHCP. У меня кластер на x86_64. В одном из узлов 4 одинаковых сетевых интерфейса и там самые большие проблемы, потому что правильный интерфейс практически никогда не выбирается. Я вижу, что есть исправление propagator, но как мне его применить к образу Альт Линукс сервер 10.2? Пересобирать образ с новым propagator? но он требует GLIBC2.33, 2.34, 2.38 и я не уверен, что получу образ стабильный после такого. Будьте добры, посоветуйте что попробовать сделать и как. Created attachment 17373 [details]
Во вложении скрин с виртуалки, которая повторяет состояние кластера
Странные кракозябры в trying with iface
Проблема в том, что сетевые интерфейсы в произвольном порядке инициализируются. И периодически та карта, которая пробуется DHCP, оказывается не той, которой MAC адрес используется при загрузке по сети. Так что наверно дело не в propagator... (Ответ для Александр на комментарий #19) > Проблема в том, что сетевые интерфейсы в произвольном порядке > инициализируются. И периодически та карта, которая пробуется DHCP, > оказывается не той, которой MAC адрес используется при загрузке по сети. > Так что наверно дело не в propagator... Так вы должны указать желаемый интерфейс. Например так: method:nfs,interface:enp0,network:static,ip:<ip узла> Вместо enp0 имя реального интерфейса. Нужно загрузиться обычным образом и узнать имя интерфейса. Антон, спасибо за ответ. Я читал ветку и все варианты пробовал. Я написал, что назначить интерфейс не получается и прикрепил дополнительно скриншот. Со статическим IP аналогично не работает. Так как интерфейсы поднимаются в произвольном порядке имя требуемого адаптера может измениться. При передаче ядру параметра net.ifnames=0 все тоже самое, только с именами eth0,1, и т.д. Я бы хотел все-таки попробовать новый propagator. Я пересобрал его для x86_64 под 10 ветку, но не знаю дальше с ним что делать... (Ответ для Александр на комментарий #21) > Антон, спасибо за ответ. > Я читал ветку и все варианты пробовал. Я написал, что назначить интерфейс не > получается и прикрепил дополнительно скриншот. Со статическим IP аналогично > не работает. > Так как интерфейсы поднимаются в произвольном порядке имя требуемого > адаптера может измениться. > При передаче ядру параметра net.ifnames=0 все тоже самое, только с именами > eth0,1, и т.д. Никаких eth0, eth1 быть не должно. В initrd.img запакованы udev-правила, по которым должны стабильно выдаваться одни и те же уникальные имена. Вы должны указать правильное имя интерфейса. > Я бы хотел все-таки попробовать новый propagator. Я пересобрал его для > x86_64 под 10 ветку, но не знаю дальше с ним что делать... Команда сборки initrd должна быть на iso-образе в файле .disk/mkinitrd, рядом initrd.mk - конфиг, с которым нужно собирать initrd.img. (In reply to Александр from comment #18) > Странные кракозябры в trying with iface Да, таск #334829 исправляет именно эту порчу памяти. Мне непонятно, почему два года, как эта проблема описана, исправлена в пакете, но всё равно попала в продукты. (In reply to Антон Мидюков from comment #22) > Никаких eth0, eth1 быть не должно. В initrd.img запакованы udev-правила, по > которым должны стабильно выдаваться одни и те же уникальные имена. Вы должны > указать правильное имя интерфейса. Не уверен, что имя интерфейса стабильно во всех случаях, зависит ещё от ядра и модуля сетевой карты. Но память буфера с именем интерфейса может портиться даже, если интерфейс выбран таким способом. И тогда propagator не может сконфигурировать этот интерейс. Проблема как раз характерна для машин с двумя и более сетевыми картами. (In reply to Александр from comment #17) > Будьте добры, посоветуйте что попробовать сделать и как. Попробуйте отключить все карты, кроме одной, на которой будет несущая. Через module_blacklist=<module> и параметры модуля, позволяющие отключить не нужные instance. Антон, я запустил установку без net.ifnames=0, посмотрел, как именуется интерфейс при загрузке и прописал его (см. скриншот). Но загрузка выдала окно выбора интерфейса. (Ответ для Александр на комментарий #24) > Антон, я запустил установку без net.ifnames=0, посмотрел, как именуется > интерфейс при загрузке и прописал его (см. скриншот). Но загрузка выдала > окно выбора интерфейса. Понятно. Тогда пересобирать с исправленным propagator только. Created attachment 17376 [details]
только udev из initrd
Обращаю внимание на строку trying with iface. Там должно быть имя интерфейса enp0s10f1, но там нечитаемые символы...
(Ответ для Leonid Krivoshein на комментарий #23) > (In reply to Александр from comment #18) > > Странные кракозябры в trying with iface > Да, таск #334829 исправляет именно эту порчу памяти. Мне непонятно, почему > два года, как эта проблема описана, исправлена в пакете, но всё равно попала > в продукты. > > (In reply to Антон Мидюков from comment #22) > > Никаких eth0, eth1 быть не должно. В initrd.img запакованы udev-правила, по > > которым должны стабильно выдаваться одни и те же уникальные имена. Вы должны > > указать правильное имя интерфейса. > Не уверен, что имя интерфейса стабильно во всех случаях, зависит ещё от ядра > и модуля сетевой карты. Но память буфера с именем интерфейса может портиться > даже, если интерфейс выбран таким способом. И тогда propagator не может > сконфигурировать этот интерейс. Проблема как раз характерна для машин с > двумя и более сетевыми картами. > > (In reply to Александр from comment #17) > > Будьте добры, посоветуйте что попробовать сделать и как. > Попробуйте отключить все карты, кроме одной, на которой будет несущая. Через > module_blacklist=<module> и параметры модуля, позволяющие отключить не > нужные instance. Леонид, можно по-подробнее про отключение ненужных instance. У меня все 4 карты melanox, так что модуль один для всех. Я думал, что есть параметры, но где искать? Это у вендора карты искать или у Альт Линукс есть свои параметры? (In reply to Александр from comment #27) > Леонид, можно по-подробнее про отключение ненужных instance. У меня все 4 > карты melanox, так что модуль один для всех. Я думал, что есть параметры, но > где искать? Это у вендора карты искать или у Альт Линукс есть свои параметры? Скорее всего, в выводе modinfo mlx5_core |grep parm или изучать документацию по сетевой карте, бывает, что отключается внешней родной утилитой, так как нет своего BIOS Setup. Но в случае Mellanox 10G и выше с пропагатором есть и другая проблема, особенно, если получается слишком длинное имя интерфейса или МАК-адрес имеет 20 вместо 6 октетов. Тогда проще временно использовать другую сетевую карту, а модуль mellanox заблэклистить. Или раздеплоить готовую систему, сняв бэкап с виртуалки, используюя образ регулярки ALT Rescue на p11 или Сизифе. В Сизифе и p11 не используется propagator, поэтому на p10. propagator-20250120-alt1 -> p10: Mon Jan 20 2025 Leonid Krivoshein <klark@altlinux> 20250120-alt1 - improve build and spec Wed Nov 22 2023 Leonid Krivoshein <klark@altlinux> 20231122-alt1 - Memory corruption fix (closes: #36751, #48516) Tue Nov 21 2023 Leonid Krivoshein <klark@altlinux> 20231121-alt1 - improvements to logging during boot loading (closes #37201) |