Erhöhen Sie das Zeitlimit für die Festplattenerkennung beim Booten mit Linux / Systemd

11

Ich habe einen Computer mit vielen Festplatten und einen zusätzlichen SAS-Controller im HBA-Modus. Dies scheint dazu zu führen, dass Linux in initramfs mindestens 8-10 Sekunden lang nachdenkt, bevor die Festplatten tatsächlich angezeigt werden. Das Zeitlimit für die Festplattenerkennung beträgt 10 Sekunden. Dies führt dazu, dass BTRFS / MDADM / etc ein RAID1, das ich in meinem System habe, nicht mounten kann, wodurch ich zu einer Notfall-Shell geleitet werde, von der aus ich die Festplatten tatsächlich mounten und problemlos weitermachen kann.

Meine Frage ist, wie ich dieses Timeout beim Booten von 10 Sekunden erhöhen kann. Ist es in systemd? ist es in udev? irgendwo anders? Ich bin mir nicht sicher, wo ich anfangen soll zu suchen, und das Googeln über dieses Problem scheint meistens Leute hervorzubringen, die das E / A-Zeitlimit oder andere (scsi / lun / etc) Zeitlimits erhöhen möchten, aber ich suche nicht danach.

Alex
quelle
1
IDK auch, aber vielleicht hängt dieses Problem mit der Mehrwegestartverzögerung zusammen oder könnte zu Ihrer Lösung führen?
Rickhg12hs
@ rickhg12hs Ich habe die im Beitrag erwähnten udev-Parameter ausprobiert, aber es scheint immer noch 10 Sekunden auf das erste Gerät zu warten und dann gelegentlich in die Notfall-Shell zu fallen, wenn es die Schwelle überschreitet. Danke für den Tipp, werde ich versuchen Sie noch etwas mit udev zu fummeln ..
Alex
Ich habe es immer noch nicht herausgefunden, ich vermute, es ist ein Kernel-Kompilierungsparameter, aber ich habe die Hauptdokumente für udev noch nicht vertieft, also übersehen ich vielleicht etwas. Wenn jemand irgendwelche Ideen hat, bin ich sehr offen dafür, sie zu hören, im Moment starte ich den Server nur nie neu, außer wenn ich vor Ort bin.
Alex
Drehen sich die Laufwerke während des POST tatsächlich? Haben Sie genug Kraft, damit sich alle auf einmal drehen können? Möglicherweise müssen Sie Ihren HBA für einen gestaffelten Spinup einrichten, wenn diese Option verfügbar ist (jeder anständige wird dies tun).
Michael Hampton
@MichaelHampton Ja, die Laufwerke funktionieren und werden im SAS-Konfigurationstool und im BIOS angezeigt. Ich habe ein 1000-W-EVGA-Netzteil. Die Festplatten sind auf 2 verschiedene Schienen verteilt, aber es sollte genügend Strom haben, die zweite Xeon-CPU, die ich hinzugefügt habe funktioniert auch gut und ich ziehe ungefähr 200-300W von der Wand, wenn alles läuft. Es ist so, als ob das Kernelmodul für den HBA in der anfänglichen Startphase mehr als 5 Sekunden lang hängt, wodurch alle anderen Festplatten angezeigt werden viel später auch.
Alex

Antworten:

3

Ich habe es endlich gefunden! Es ist natürlich nur ein einfacher Kernel-Parameter, den Sie hier finden: https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html

Der Parameter, nach dem ich speziell gesucht habe, ist rootdelay, ich hatte es bereits versucht, rootwaitaber anscheinend war das nicht genug, da das Warten nach 10 Sekunden immer noch abgebrochen wurde. Jetzt wartet es tatsächlich nicht die angegebenen 30 Sekunden, sondern nur etwa 10 bis 15 Sekunden, je nachdem, wie lange es dauert, bis meine Festplatten angezeigt werden. Das Einstellen eines wirklich hohen Werts scheint also nicht zu schaden, obwohl ich es nur getan habe Set 30 für meinen Anwendungsfall, der das Problem bisher vollständig gelöst zu haben scheint!

Sie können es zu Ihren Kernel-Boot-Parametern in Grub oder systemd-boot hinzufügen.

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

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

Alex
quelle