Aumente o tempo limite de detecção de disco na inicialização com Linux / Systemd

11

Eu tenho uma máquina com muitos discos e um controlador SAS extra no modo HBA. Isso parece fazer com que o Linux pense por pelo menos 8 a 10 segundos uma vez no initramfs antes que os discos realmente apareçam. O tempo limite para detecção de disco é de 10 segundos. Isso faz com que o BTRFS / MDADM / etc falhe ao montar um RAID1 que eu tenho no meu sistema, levando-me a um shell de emergência de onde eu posso realmente montar os discos e continuar bem.

Minha pergunta é: como faço para aumentar esse tempo limite na inicialização de 10 segundos? Está no systemd? está no udev? Em outro lugar? Não sei por onde começar a procurar, e pesquisar no Google sobre esse problema geralmente gera pessoas que procuram aumentar o tempo limite de E / S ou outros tempos limite (scsi / lun / etc), mas não estou procurando por isso.

Alex
fonte
1
IDK também, mas talvez esse problema de atraso de inicialização por caminhos múltiplos esteja relacionado ou possa fornecer pistas para sua solução?
precisa saber é o seguinte
@ rickhg12hs Eu tentei os parâmetros do udev mencionados no post, mas ainda parece esperar 10 segundos pelo primeiro dispositivo e, ocasionalmente, cair no shell de emergência quando ultrapassar o limite .. Obrigado pela dica, porém, vou tente mexer um pouco mais com udev ..
Alex
Ainda não descobri, acho que é um parâmetro de compilação do kernel, mas ainda tenho que aprofundar os principais documentos do udev, então talvez esteja esquecendo alguma coisa. Se alguém tiver alguma idéia que eu sou muito aberto a ouvi-los, agora eu estou apenas nunca reiniciar o servidor, exceto quando estou no local ..
Alex
As unidades estão realmente girando durante o POST? Você tem poder suficiente para todos girarem de uma só vez? Pode ser necessário configurar seu HBA para um spinup escalonado, se ele tiver essa opção (qualquer um decente o fará).
Michael Hampton
@MichaelHampton Sim, as unidades estão funcionando e aparecendo na ferramenta de configuração SAS e BIOS, eu tenho uma fonte de alimentação EVGA de 1000W, os discos estão espalhados por 2 trilhos diferentes, mas tbh deve ter energia suficiente, a segunda CPU Xeon que eu adicionei também funciona bem e estou desenhando cerca de 200-300W da parede quando tudo está funcionando. É como o módulo do kernel do HBA travar por mais de 5 segundos na fase inicial de inicialização, causando a exibição de todos os outros discos muito mais tarde também.
28418 Alex

Respostas:

3

Eu finalmente encontrei! É claro que é apenas um parâmetro simples do kernel, encontrado aqui https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html

O parâmetro que eu estava procurando especificamente é que rootdelayeu já havia tentado, rootwaitmas aparentemente isso não foi suficiente, pois ainda abortou a espera após 10 segundos. Agora, na verdade, ele não espera os 30 segundos completos especificados, mas apenas cerca de 10 a 15 segundos, dependendo do tempo que leva para meus discos aparecerem, portanto, definir um valor realmente alto não parece prejudicar, embora eu tenha apenas defina 30 para o meu caso de uso, que até agora parece ter resolvido completamente o problema!

Você pode adicioná-lo aos seus parâmetros de inicialização do kernel no 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
fonte