Augmentez le délai de détection du disque au démarrage avec Linux / Systemd

11

J'ai une machine avec beaucoup de disques et un contrôleur SAS supplémentaire en mode HBA. Cela semble amener Linux à réfléchir pendant au moins 8 à 10 secondes une fois dans initramfs avant que les disques n'apparaissent réellement. Le délai d'attente pour la détection de disque est de 10 secondes. Cela fait que BTRFS / MDADM / etc ne parvient pas à monter un RAID1 que j'ai dans mon système, me déposant dans un shell d'urgence d'où je peux réellement monter les disques et continuer très bien.

Ma question est, comment puis-je augmenter ce délai au démarrage à partir de 10 secondes? Est-ce dans systemd? est-ce en udev? ailleurs? Je ne sais pas par où commencer à chercher, et googler sur ce problème semble surtout produire des personnes cherchant à augmenter le délai d'expiration d'E / S ou d'autres délais (scsi / lun / etc), mais je ne cherche pas cela.

Alex
la source
1
IDK non plus, mais peut-être que ce problème de délai de démarrage par trajets multiples est lié ou pourrait fournir des pistes à votre solution?
rickhg12hs
@ rickhg12hs J'ai essayé les paramètres udev mentionnés dans le message, mais il semble toujours attendre 10 secondes pour le premier appareil, puis tomber occasionnellement dans le shell d'urgence quand il dépasse le seuil .. Merci pour l'astuce cependant, je vais essayez de jouer du violon avec udev ..
Alex
Je ne l'ai toujours pas compris, je suppose que c'est un paramètre de compilation du noyau, mais je n'ai pas encore approfondi les principaux documents pour udev, alors peut-être que j'oublie quelque chose. Si quelqu'un a des idées, je suis très ouvert à les entendre, pour le moment je ne redémarre jamais le serveur, sauf quand je suis sur place ..
Alex
Les disques tournent-ils réellement pendant le POST? Avez-vous assez de puissance pour qu'ils tournent tous en même temps? Vous devrez peut-être configurer votre HBA pour une rotation échelonnée, s'il a cette option (toute décente le fera).
Michael Hampton
@MichaelHampton Oui, les disques fonctionnent et apparaissent dans l'outil de configuration SAS et le BIOS, j'ai une alimentation EVGA de 1000 W, les disques sont répartis sur 2 rails différents, mais tbh il devrait avoir suffisamment de puissance, le deuxième CPU Xeon que j'ai ajouté fonctionne également très bien et je tire environ 200-300 W du mur lorsque tout est en marche. C'est un peu comme le module du noyau pour le HBA se bloque pendant plus de 5 secondes dans la phase de démarrage initiale, provoquant l'affichage de tous les autres disques beaucoup plus tard aussi.
Alex

Réponses:

3

Je l'ai enfin trouvé! C'est bien sûr mais un simple paramètre de noyau, trouvé ici https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html

Le paramètre que je cherchais spécifiquement est rootdelay, j'avais déjà essayé rootwaitmais apparemment ce n'était pas suffisant, car il a encore abandonné l'attente après 10 secondes. Maintenant, il n'attend pas réellement les 30 secondes spécifiées, mais seulement environ 10-15 secondes selon le temps qu'il faut à mes disques pour apparaître, donc la définition d'une valeur vraiment élevée ne semble pas nuire, bien que je ne l'ai fait que définissez 30 pour mon cas d'utilisation, qui jusqu'à présent semble avoir complètement résolu le problème!

Vous pouvez l'ajouter à vos paramètres de démarrage du noyau dans Grub ou 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
la source