Aumenta il timeout di rilevamento del disco all'avvio con Linux / Systemd


11

Ho una macchina con molti dischi e un controller SAS aggiuntivo in modalità HBA. Ciò sembra indurre Linux a pensare per almeno 8-10 secondi una volta in initramfs prima che i dischi vengano effettivamente visualizzati. Il timeout per il rilevamento del disco è di 10 secondi. Questo fa sì che BTRFS / MDADM / etc non riescano a montare un RAID1 che ho nel mio sistema, lasciandomi su una shell di emergenza da dove posso effettivamente montare i dischi e continuare bene.

La mia domanda è: come posso aumentare questo timeout all'avvio da 10 secondi? È in systemd? è in udev? altrove? Non sono sicuro da dove iniziare a cercare, e cercare su Google questo problema per lo più sembra indurre le persone a cercare di aumentare il timeout I / O o altri timeout (scsi / lun / etc), ma non lo sto cercando.


1
IDK o, ma forse questo problema di ritardo di avvio multipath è correlato o potrebbe fornire lead alla tua soluzione?
rickhg12hs

@ rickhg12hs Ho provato i parametri udev menzionati nel post, tuttavia sembra ancora attendere 10 secondi per il primo dispositivo e poi occasionalmente cadere nella shell di emergenza quando supera la soglia .. Grazie per il suggerimento, però prova a suonare un po 'di più con udev ..
Alex

Non l'ho ancora capito, immagino sia un parametro di compilazione del kernel, ma devo ancora approfondire i documenti principali per udev, quindi forse sto trascurando qualcosa. Se qualcuno ha qualche idea, sono molto aperto a sentirli, in questo momento non riavvio mai il server, tranne quando sono in loco ..
Alex,

Le unità si stanno effettivamente ruotando durante il POST? Hai abbastanza potenza per farli girare tutti insieme? Potrebbe essere necessario impostare il tuo HBA per uno spinup sfalsato, se ha questa opzione (qualsiasi decente lo farà).
Michael Hampton,

@MichaelHampton Sì, le unità funzionano e si presentano nello strumento di configurazione SAS e nel BIOS, ho un alimentatore EVGA da 1000 W, i dischi sono distribuiti su 2 binari diversi, ma dovrebbe avere abbastanza potenza, la seconda CPU Xeon che ho aggiunto funziona anche bene e sto attingendo circa 200-300 W dal muro quando tutto è funzionante .. È un po 'come il modulo del kernel per l'HBA si blocca per 5+ secondi nella fase di avvio iniziale, facendo sì che tutti gli altri dischi mostrino anche molto più tardi.
Alex,

Risposte:


3

L'ho finalmente trovato! Ovviamente è solo un semplice parametro del kernel, che si trova qui https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html

Il parametro che stavo cercando in particolare è rootdelayche avevo già provato, rootwaitma a quanto pare non era abbastanza, in quanto interrompeva ancora l'attesa dopo 10 secondi. Ora in realtà non aspetta tutti i 30 secondi specificati, ma solo circa 10-15 secondi a seconda di quanto tempo impiega la visualizzazione dei miei dischi, quindi l'impostazione di un valore molto elevato non sembra danneggiare, anche se ho solo set 30 per il mio caso d'uso, che finora sembra aver risolto completamente il problema!

È possibile aggiungerlo ai parametri di avvio del kernel in Grub o systemd-boot.

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

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.