Увеличьте время ожидания обнаружения диска при загрузке с Linux / Systemd

11

У меня есть машина с большим количеством дисков и дополнительный контроллер SAS в режиме HBA. Похоже, это заставляет Linux думать по крайней мере 8-10 секунд один раз в initramfs, прежде чем диски появятся. Тайм-аут для обнаружения диска составляет 10 секунд. Это приводит к тому, что BTRFS / MDADM / etc не может смонтировать RAID1, который у меня есть в моей системе, что приводит меня к аварийной оболочке, из которой я могу фактически смонтировать диски и продолжать нормально.

У меня вопрос, как мне увеличить это время ожидания при загрузке с 10 секунд? Это в systemd? это в Удев? где-нибудь еще? Я не уверен, с чего начать поиск, и поиск этой проблемы в основном приводит к тому, что люди ищут увеличение тайм-аута ввода-вывода или другие (scsi / lun / etc) таймауты, но я этого не ищу.

Alex
источник
1
IDK тоже, но, возможно, проблема задержки многолучевой загрузки связана или может привести к вашему решению?
rickhg12hs
@ rickhg12hs Я пробовал параметры udev, упомянутые в посте, но все еще кажется, что оно ждет 10 секунд для первого устройства, а затем иногда падает в аварийную оболочку, когда оно выходит за порог. Спасибо за совет, я буду попробуйте еще немного поиграть с udev ..
Alex
Я до сих пор не понял, я предполагаю, что это параметр компиляции ядра, но мне еще предстоит углубиться в основные документы по udev, так что, возможно, я что-то упускаю. Если у кого-то есть какие-либо идеи, я очень готов их услышать, сейчас я просто никогда не перезагружаю сервер, за исключением случаев, когда я на месте ..
Алекс,
Действительно ли диски вращаются во время POST? Достаточно ли у вас силы, чтобы они все раскрутились одновременно? Возможно, вам придется настроить HBA для пошагового раскрутки, если у него есть эта опция (любая приличная будет).
Майкл Хэмптон
@MichaelHampton Да, диски работают и отображаются в инструменте конфигурации SAS и BIOS, у меня есть источник питания EVGA мощностью 1000 Вт, диски распределены по 2 разным рельсам, но для этого должно хватить мощности, второй процессор Xeon, который я добавил также работает нормально, и я извлекаю около 200-300 Вт из стены, когда все работает и работает .. Это похоже на то, как модуль ядра для HBA зависает на 5+ секунд в начальной фазе загрузки, вызывая отображение всех других дисков гораздо позже.
Alex

Ответы:

3

Я наконец нашел это! Это, конечно, простой параметр ядра, который можно найти здесь https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html.

Параметр, который я специально искал, это то rootdelay, что я уже пробовал, rootwaitно, видимо, этого было недостаточно, так как он все же прервал ожидание через 10 секунд. Теперь он фактически не ожидает полных 30 секунд, а только около 10-15 секунд, в зависимости от того, сколько времени требуется, чтобы мои диски появились, поэтому установка действительно высокого значения, кажется, не повредит, хотя я только установите 30 для моего варианта использования, который до сих пор, кажется, полностью решил проблему!

Вы можете добавить его к параметрам загрузки вашего ядра в Grub или systemd-boot.

Grub: / etc / defaults / grub -> GRUB_CMDLINE_LINUX_DEFAULT="rootdelay=30 quiet"

systemd-boot: /boot/loader/entries/yourentry.cfg -> options rootdelay=30 [other options]

Alex
источник