NVME + Linux — unexpected high latency, I/O timeout

Приступил к вводу nvme в Ceph. Все узлы у меня практически идентичны, не считая материнских плат и процессоров. Так как бюджет ограничен и выдаётся порциями, то было куплено некоторое количество накопителей, которые я разместил в двух узлах. Результат оказался положительным и оставалось дождаться вторую партию накопителей, чтобы разместить их в оставшихся узлах.

К слову, весь кластер у меня на RHEL9 5.14.0-162.6.1.el9_1.x86_64, а первая партия была проинсталлирована в материнские платы Supermicro X9DRi-LN4+.

Приехала вторая партия накопителей и я как можно скорее начал их размещать в оставшихся узлах. Всё шло хорошо, OSD были созданы и добавлены в CRUSH, но через 15 минут перестал подавать признаки жизни один из свежедобавленных nvme, а Zabbix начал периодически сыпать сообщениями от узлов, в которые была добавлена вторая партия накопителей:
Problem name: nvme2n1: Disk read/write request responses are too high (read > 20 ms for 15m or write > 20 ms for 15m)
Operational data: 40.03 ms, 8.28 ms

Да при чём как-то хитро на графиках данного элемента мониторинга всё скакало от нуля до 40 ms, и только на чтении. На нодах, куда были добавлены nvme из первой партии, этот показатель не выпрыгивал за 10 ms.

Свежая, «проблемная» партия была вставлена в узлы на базе Supermicro X10DRH.

А сутки спустя один OSD отпал и через некоторое время опять появился, в dmesg было следующее:

kernel: nvme nvme1: I/O 890 QID 7 timeout, aborting
kernel: nvme nvme1: I/O 31 QID 6 timeout, aborting
kernel: nvme nvme1: I/O 733 QID 5 timeout, aborting
kernel: nvme nvme1: I/O 32 QID 6 timeout, aborting
kernel: nvme nvme1: I/O 33 QID 6 timeout, aborting

В итоге я всё таки попробовал всем известные параметры ядра, хотя и не верил в успех:
nano /etc/default/grub
GRUB_CMDLINE_LINUX="… nvme_core.default_ps_max_latency_us=0 pcie_aspm=off"
grub2-mkconfig -o /boot/grub2/grub.cfg
reboot
cat /proc/cmdline

О чудо, график задержки чтения стал показывать минимальные значения, редко выпрыгивая из 1 ms, а OSD пока не отваливались. Выходит что есть некая разница в материнских платах, процессорах, на которую влияют данные параметры, а может настройка в BIOS, пока что для меня это загадка.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Яндекс.Метрика