使用Linux / Systemd引导时增加磁盘检测超时


11

我有一台装有很多磁盘的计算机,并且在HBA模式下有一个额外的SAS控制器。这似乎导致Linux在initramfs中至少思考8-10秒钟,然后磁盘才真正出现。磁盘检测超时时间为10秒。这会导致BTRFS / MDADM / etc无法挂载我在系统中拥有的RAID1,从而使我进入应急外壳,从那里我可以实际挂载磁盘并继续正常运行。

我的问题是,如何在启动时从10秒增加超时?在systemd中吗?在udev中吗?别的地方?我不确定从哪里开始寻找内容,而谷歌搜索这个问题似乎似乎使人们寻求提高I / O超时或其他一些(scsi / lun / etc)超时,但是我不是在寻找。


1
IDK还是可以的,但是也许这个多路径启动延迟问题是相关的,或者可以为您的解决方案提供线索?
rickhg12hs

@ rickhg12hs我已经尝试了帖子中提到的udev参数,但是对于第一个设备,它似乎仍然要等待10秒,然后当它超过阈值时偶尔掉入紧急外壳。尝试用udev摆弄一些东西。–
Alex

我仍然没有弄清楚,我猜它是内核编译参数,但是我还没有深入介绍udev的主要文档,所以也许我忽略了一些东西。如果任何人有任何想法,我听到他们,现在我只是从来没有重新启动,除了当我现场服务器非常开放..
亚历克斯

驱动器在开机自检期间是否真正旋转了?您是否有足够的力量让他们立即旋转起来?如果具有此选项,则可能需要将HBA设置为交错旋转(任何合适的选项)。
迈克尔·汉普顿

@MichaelHampton是的,驱动器正在工作,并显示在SAS配置工具和BIOS中,我有一个1000W EVGA电源,磁盘分布在2个不同的导轨上,但是它应该有足够的功率,这是我添加的第二个Xeon CPU一切正常,当一切正常运行时,我从墙上汲取约200-300W的功率。这有点像HBA的内核模块在初始引导阶段挂起5秒以上,导致所有其他磁盘显示还要晚得多。
亚历克斯

Answers:


3

我终于找到了!当然,这只是一个简单的内核参数,可在此处找到https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html

我一直在寻找的参数是rootdelay,我已经尝试过了,rootwait但是显然这还不够,因为它在10秒后仍然中止了等待。现在实际上它不会等待指定的30秒,而是大约10-15秒,具体取决于磁盘显示所需的时间,因此,设置一个很高的值似乎没有什么害处,尽管我只是为我的用例设置30,到目前为止,它似乎已经完全解决了该问题!

您可以将其添加到Grub或systemd-boot的内核引导参数中。

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

系统启动:/boot/loader/entries/yourentry.cfg-> options rootdelay=30 [other options]

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.