Решил переустановить систему с Proxmox VE 8.2 и raid1 mdadm на Proxmox VE 8.3 с raid1 zfs на пару NVME. Все прошло гладко.
Но старая проблема не ушла. Логи были забиты AER-сообщениями. Изредка случались даже зависания (до просмотра логов даже подумал на ОЗУ).
Сразу небольшая ремарка про AER для тех, кто не в теме
AER - Advanced Error Reporting. Относится к PCI Express и сигнализирует об ошибках на шине/устройствах.
Может проявлять активность в логах как из-за неправильных настроек шины и чипсета, неудачной трассировки линий материнской платы, грязных пяточков процессора/сокета, так и прошивки устройств / их неисправности или просто при плохом контакте в слоте.
В общем причин может быть много.
В моем же случае особую нелюбовь вызвал NVME WD SN730.
Доходило до полных зависаний сервера из-за спама в логах.
Замена на другой китайский NVME в свое время значительно снизила количество ошибок. Зависания пропали.
Спам. Откуда и что с ним делать
После замены диска сервер проработал около полугода. Пришло время установки еще 4х NVME. А у x99 с ними, как я успел понять, все не очень хорошо.
Установил 4 NVME Samsung PM1A и консоль стало заваливать ошибками с новой силой.
Одним из неприятных моментов было то, что из-за постоянного потока ошибок терминалом было невозможно пользоваться.
Приходилось прописывать вслепую dmesg -n 1 , чтобы можно было видеть что вводишь и самое важное - видеть результат.
Думаю, лучше показать, насколько забиты:
Jan 26 22:33:12 AES kernel: pcieport 0000:00:03.1: AER: TLP Header: 34000000 05000010 00000000 80008000
Jan 26 22:33:12 AES kernel: pcieport 0000:00:03.1: AER: device recovery successful
Jan 26 22:33:12 AES kernel: pcieport 0000:00:03.1: AER: Multiple Uncorrectable (Non-Fatal) error message received from 0000:00:03.1
и так еще 236 раз за одну секунду!!!
Как решение рекомендуют отключение ASPM в биосе и/или через параметры ядра pcie_aspm=off и/или pci=nommconf как возможное решение. Не помогало.
Кроме совета: "заменить железо на какое-нибудь другое, без x99" был и банальный: "обновите биос".
Но как его обновить, если последняя версия 00.02?!
Нового нет. А если сделаю?
Начал разбираться в теме. Самым простым и безопасным выглядело обновление модулей в оригинальной прошивке.
Под плату существует модифицированная версия с разблокированными таймингами и прочим. Но мне ничего и того не нужно. В моей сборке навряд ли получу ощутимый прирост производительности, к тому же не хочется приобретать очередные риски стабильности работы.
В общем посчитал, что лучше модифицировать оригинал.
Наткнулся на статью по улучшению биоса на overclockers.ru, но там практически все ссылки оказались уже нерабочими.
Ладно, отыскал сайт-источник [Руководство по инструментам+Новости] «UEFI BIOS Updater» (UBU), а после и новые версии модулей, микрокода.
Стал разбираться и пытаться все это свести в что-то единое и осмысленное.
Ах да, чуть не забыл!
У меня ведь в вводных был еще один замечательный момент.
Я имею на руках еще одну материнскую плату (мертворожденную).
С завода на ней, неподалеку от разъема питания, есть межслойное КЗ.
Т.е. биос во флэше можно считать девственно чистым для дампа!
Именно его я и взял за основу.
Продолжаем.
Обновил модули bios:
- Драйвер Intel RSTe for SATA c 4.5.0.1012 до 4.7.0.1017.
- Микрокоды до актуальных:
- 406F1: 2019-06-18 -> 2021-05-19;
- 406F0: 2015-07-02;
- 306F2: 2018-04-20 -> 2021-08-11
- 306F1: 2013-10-02 -> 2014-01-10.
sSATA и RAID Driver остались прежней версии. Не проверял, т.к. ими не пользуюсь.
Мне был важен 406F1, т.е. пара моих E5 2686v4. Но остальные тоже обновил.
Перепаял флэш-память 25Q128 и, к моему удивлению, все получилось и запустилось с первого раза.
Сразу же я, по ранее сделанным фото, восстановил все пункты настроек в меню биоса и загрузился в ОС.
А это: дата и время, автозапуск после подачи питания, профиль управления куллерами, IIO PCIe, VT-d и т.п. присущее моей конфигурации.
После загрузки системы обнаружил, что ошибок не было. Ни одной!
Я убрал параметры ядра, которыми ранее пытался исправить ошибки, перезагрузился и все так же, в логах нет прошлого спама. Успех!
Тесты и размышления
Да, возможно все дело в микрокоде и могло бы помочь обновление его каждый раз уже после загрузки, прямо из ОС. Подробнее можно почитать, например, здесь.
Но я пошел другим путем и сейчас не могу проверить насколько бы это исправило (и все ли бы) проблемы.
А сейчас хочу поделиться полученным файлом и был бы рад получить обратную связь по методу (параметры ядра/обновление микрокода из ОС/обновление биоса моим дампом), который смог помочь вам.
На момент написания этого абзаца прошло чуть больше пары суток работы с шестью M2 NVME, 8 SATA SSD (через LSI рейд-карту), пары SATA жестких дисков (через RSTe for SATA) и двух видеокарт под ОС Proxmox VE 8.3.
AER-ошибки появлялись, но гораздо реже. Например, на момент написания:
Jan 29 13:54:37 AES kernel: pcieport 0000:00:03.0: AER: Correctable error message received from 0000:00:03.0
Jan 29 14:36:52 AES kernel: pcieport 0000:00:03.2: AER: Correctable error message received from 0000:00:03.2
Jan 29 14:49:35 AES kernel: pcieport 0000:00:03.0: AER: Correctable error message received from 0000:00:03.0
Jan 29 16:04:08 AES kernel: pcieport 0000:00:03.2: AER: Correctable error message received from 0000:00:03.2
Jan 29 16:33:25 AES kernel: pcieport 0000:00:03.1: AER: Correctable error message received from 0000:05:00.0
Jan 29 17:58:53 AES kernel: pcieport 0000:00:03.0: AER: Correctable error message received from 0000:00:03.0
Jan 29 19:01:12 AES kernel: pcieport 0000:00:03.0: AER: Correctable error message received from 0000:00:03.0
Согласитесь, это гораздо меньше и формат иной :).
Прошло еще 3 дня. В это время NVME активно использовались. Соответственно был выше риск появления сообщений.
Переносились контейнеры и машины с одного рейда в другой, а также через rsync с физически другой машины переносились данные.
На вскидку было около 4ТБ транзакций.
По итогу в среднем 10 сообщений в день с 6 NVME, 8 SATA SSD (через LSI-карту) и 2 SATA HDD, ну и пары видеокарт.
Зависаний или еще чего-то странного тоже не было замечено.
Если решите обновить свой биос моей версией, то помните, что все на ваш страх и риск!
Впрочем, процедура относительно простая и безопасная при правильном подходе. Главное не забудьте перед записью сделать дамп вашего биоса, чтобы восстановить его, если вдруг что-то пойдет не так.
Файл обновленного чистого биоса можно скачать с моего сервера.