Aumente el tiempo de espera de detección de disco en el arranque con Linux / Systemd

11

Tengo una máquina con muchos discos y un controlador SAS adicional en modo HBA. Esto parece hacer que Linux piense durante al menos 8-10 segundos una vez en initramfs antes de que los discos aparezcan realmente. El tiempo de espera para la detección del disco es de 10 segundos. Esto hace que BTRFS / MDADM / etc. no pueda montar un RAID1 que tengo en mi sistema, dejándome en un shell de emergencia desde donde realmente puedo montar los discos y continuar bien.

Mi pregunta es, ¿cómo puedo aumentar este tiempo de espera en el arranque de 10 segundos? ¿Está en systemd? ¿Está en Udev? ¿en algún otro lugar? No estoy seguro de por dónde empezar a buscar, y buscar en Google este problema en su mayoría parece ceder a las personas que buscan aumentar el tiempo de espera de E / S o algún otro tiempo de espera (scsi / lun / etc.), pero no estoy buscando eso.

Alex
fuente
1
¿IDK tampoco, pero tal vez este problema de retraso de arranque de múltiples rutas está relacionado o podría proporcionar pistas para su solución?
rickhg12hs
@ rickhg12hs He probado los parámetros de udev mencionados en la publicación, sin embargo, todavía parece esperar 10 segundos para el primer dispositivo y luego ocasionalmente caer en el shell de emergencia cuando pasa el umbral. Sin embargo, gracias por el consejo, intenta tocar un poco más con udev ..
Alex
Todavía no lo he descubierto, supongo que es un parámetro de compilación del kernel, pero todavía tengo que profundizar en los documentos principales para udev, así que tal vez estoy pasando por alto algo. Si alguien tiene alguna idea, estoy muy abierto a escucharla, en este momento, nunca estoy reiniciando el servidor, excepto cuando estoy en el sitio ...
Alex
¿Las unidades realmente giran durante la POST? ¿Tienes suficiente poder para que todos giren a la vez? Es posible que deba configurar su HBA para un spin-up escalonado, si tiene esta opción (cualquier decente lo hará).
Michael Hampton
@MichaelHampton Sí, las unidades funcionan y se muestran en la herramienta de configuración SAS y el BIOS, tengo una fuente de alimentación EVGA de 1000 W, los discos se distribuyen en 2 rieles diferentes, pero para que tenga suficiente energía, la segunda CPU Xeon que agregué también funciona bien y estoy dibujando alrededor de 200-300W de la pared cuando todo está en funcionamiento. Es algo así como el módulo del kernel para el HBA se cuelga durante más de 5 segundos en la fase de arranque inicial, haciendo que se muestren todos los otros discos hasta mucho más tarde también.
Alex

Respuestas:

3

¡Finalmente lo encontré! Por supuesto, es un simple parámetro del núcleo, que se encuentra aquí https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html

El parámetro que estaba buscando específicamente es rootdelayque ya lo había intentado rootwaitpero aparentemente eso no fue suficiente, ya que aún abortó la espera después de 10 segundos. Ahora en realidad no espera los 30 segundos completos especificados, sino solo unos 10-15 segundos, dependiendo de cuánto tiempo tarden en aparecer mis discos, por lo que establecer un valor realmente alto no parece doler, aunque solo he establecer 30 para mi caso de uso, que hasta ahora parece haber resuelto completamente el problema.

Puede agregarlo a los parámetros de arranque de su núcleo en Grub o systemd-boot.

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

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

Alex
fuente