Meningkatkan batas waktu deteksi disk saat boot dengan Linux / Systemd

11

Saya memiliki mesin dengan banyak disk, dan pengontrol SAS tambahan dalam mode HBA. Ini tampaknya menyebabkan Linux berpikir setidaknya 8-10 detik sekali dalam initramfs sebelum disk benar-benar muncul. Batas waktu untuk deteksi disk adalah 10 detik. Hal ini menyebabkan BTRFS / MDADM / etc gagal me-mount RAID1 yang saya miliki di sistem saya, menjatuhkan saya ke shell darurat dari tempat saya benar-benar dapat me-mount disk dan melanjutkan dengan baik.

Pertanyaan saya adalah, bagaimana cara meningkatkan batas waktu ini saat boot dari 10 detik? Apakah itu di systemd? apakah itu di udev? di tempat lain? Saya tidak yakin di mana harus mulai mencari, dan googling tentang masalah ini sebagian besar tampaknya menghasilkan orang-orang yang ingin menaikkan batas waktu I / O atau batas waktu (scsi / lun / etc) lainnya, tetapi saya tidak mencari itu.

Alex
sumber
1
IDK juga, tetapi mungkin masalah keterlambatan boot multipath ini terkait atau dapat memberikan arahan ke solusi Anda?
rickhg12hs
@ rickhg12hs Saya sudah mencoba parameter udev yang disebutkan dalam posting, namun sepertinya masih menunggu 10 detik untuk perangkat pertama dan kemudian kadang-kadang jatuh ke shell darurat ketika melewati ambang batas .. Terima kasih untuk tipnya, saya akan kasih tipnya, saya akan coba biak lagi dengan udev ..
Alex
Saya masih belum mengetahuinya, saya kira ini adalah parameter kompilasi kernel, tapi saya belum mendalami dokumen utama untuk udev jadi mungkin saya sedang mengabaikan sesuatu. Jika ada yang punya ide saya sangat terbuka untuk mendengarnya, saat ini saya tidak pernah me-reboot server kecuali ketika saya sedang berada di lokasi ..
Alex
Apakah drive benar-benar berputar selama POST? Apakah Anda memiliki kekuatan yang cukup bagi mereka untuk berputar sekaligus? Anda mungkin perlu mengatur HBA Anda untuk spinup terhuyung, jika memiliki opsi ini (yang layak akan).
Michael Hampton
@MichaelHampton Ya, drive bekerja dan muncul di alat konfigurasi SAS dan BIOS, saya memiliki catu daya EVGA 1000W, disk tersebar di 2 rel yang berbeda, tetapi tbh itu harus memiliki daya yang cukup, CPU Xeon kedua saya tambahkan juga berfungsi dengan baik dan saya menggambar sekitar 200-300W dari dinding ketika semuanya berjalan dan berjalan .. Ini seperti modul kernel untuk HBA hang selama 5+ detik pada fase boot awal, menyebabkan semua disk lain menunjukkan nanti juga.
Alex

Jawaban:

3

Saya akhirnya menemukannya! Ini tentu saja tetapi parameter kernel sederhana, ditemukan di sini https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html

Parameter yang saya cari secara spesifik adalah rootdelay, saya sudah mencoba rootwaittetapi ternyata itu tidak cukup, karena masih membatalkan menunggu setelah 10 detik. Sekarang sebenarnya tidak menunggu 30 detik penuh yang ditentukan, tetapi hanya sekitar 10-15 detik tergantung pada berapa lama yang diperlukan untuk disk saya muncul, jadi pengaturan nilai yang sangat tinggi tampaknya tidak sakit, meskipun saya hanya set 30 untuk kasus penggunaan saya, yang sejauh ini tampaknya telah menyelesaikan masalah sepenuhnya!

Anda dapat menambahkannya ke parameter boot kernel Anda di Grub atau 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
sumber