Zwiększ limit czasu wykrywania dysku przy rozruchu dzięki Linux / Systemd

11

Mam maszynę z dużą ilością dysków i dodatkowy kontroler SAS w trybie HBA. Wydaje się, że powoduje to, że Linux myśli przynajmniej raz na 8-10 sekund w initramfs, zanim dyski się pojawią. Limit czasu wykrywania dysku wynosi 10 sekund. Powoduje to, że BTRFS / MDADM / etc nie może zamontować RAID1, który mam w swoim systemie, upuszczając mnie do awaryjnej powłoki, z której faktycznie mogę zamontować dyski i kontynuować wszystko dobrze.

Moje pytanie brzmi: jak zwiększyć ten limit czasu przy rozruchu z 10 sekund? Czy to jest systemd? czy to jest w udev? gdzieś indziej? Nie jestem pewien, od czego zacząć, a googlowanie na temat tego problemu wydaje się przynosić ludziom, którzy chcą zwiększyć limit czasu we / wy lub inne (scsi / lun / etc), ale nie szukam tego.

Alex
źródło
1
IDK też, ale może ten problem z opóźnieniem rozruchu na wielu ścieżkach jest związany lub może prowadzić do twojego rozwiązania?
rickhg12hs
@ rickhg12hs Próbowałem parametrów udev wspomnianych w poście, jednak wydaje się, że nadal czeka 10 sekund na pierwsze urządzenie, a następnie czasami wpadam do powłoki awaryjnej, gdy przekroczy próg. Dziękuję za wskazówkę, ale spróbuj jeszcze raz pogłaskać udev ..
Alex
Nadal tego nie rozgryzłem, domyślam się, że jest to parametr kompilacji jądra, ale muszę jeszcze zagłębić się w główne dokumenty dla udev, więc może coś pomijam. Jeśli ktoś ma jakieś pomysły, jestem bardzo otwarty na ich wysłuchanie, teraz po prostu nigdy nie uruchamiam ponownie serwera, chyba że jestem na miejscu ..
Alex
Czy dyski faktycznie się rozwijają podczas testu POST? Czy masz wystarczająco dużo mocy, aby wszyscy mogli jednocześnie uruchomić? Może być konieczne skonfigurowanie karty HBA do stopniowego spinupu, jeśli ma tę opcję (każda przyzwoita).
Michael Hampton
@MichaelHampton Tak, dyski działają i pokazują się w narzędziu konfiguracji SAS i BIOSie, mam zasilacz EVGA o mocy 1000 W, dyski są rozmieszczone na 2 różnych szynach, ale tbh powinno mieć wystarczającą moc, drugi procesor Xeon, który dodałem działa również dobrze i pobieram około 200-300 W ze ściany, gdy wszystko jest uruchomione. To trochę tak, jak moduł jądra dla HBA zawiesza się przez ponad 5 sekund w początkowej fazie rozruchu, powodując wyświetlanie wszystkich innych dysków znacznie później.
Alex

Odpowiedzi:

3

Wreszcie to znalazłem! Jest to oczywiście prosty parametr jądra, który można znaleźć tutaj https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html

Parametr, którego konkretnie szukałem rootdelay, to już próbowałem, rootwaitale najwyraźniej to nie wystarczyło, ponieważ nadal przerywało oczekiwanie po 10 sekundach. Teraz tak naprawdę nie czeka pełnych 30 sekund, ale tylko około 10-15 sekund, w zależności od tego, ile czasu zajmuje wyświetlenie się moich dysków, więc ustawienie naprawdę wysokiej wartości nie wydaje się boleć, chociaż ja tylko zestaw 30 dla mojego przypadku użycia, który jak dotąd wydaje się całkowicie rozwiązać problem!

Możesz dodać go do parametrów rozruchowych jądra w Grub lub 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
źródło