28 июля, 2016

IBM x3850 m2, ядро 4.4 и блуждающие сетевые адаптеры

Некоторое время назад дошли наконец-руки до обновления Proxmox с 3.х до актуальной сейчас версии 4.2. Прошло не без проблем, но особых трудностей они тоже не создали. За исключением одного сервера. Есть у меня среди прочих некогда очень крутой IBM x3850 m2, в который в свое время затолкали 4 6-ядерных Xeon X7460 и 112 гигов фуллбуфферед-памяти. При всей суровости комплектации, обогнать современные серверы он может разве что по энергопотреблению, но на кучку всяких не очень требовательных к производительности виртуалок его все еще хватает.

Еще попутно с обновлением проксмокса в серверы были установлены 10GBe-адаптеры Intel X540, впрочем, не буду забегать вперед.

После обновления ядра до 4.4, тот x3850 m2 напрочь отказался загружаться, впадая в кернел паник при инициализации встроенного RAID-контроллера ServeRAID-MR10k (он же LSI 1078). Беглый гуглеж показал, что не один я столкнулся с этой проблемой, в качестве решения предлагалось добавить к параметрам ядра iommu=soft. Попробовал - помогло. Сервер загрузился. Настроил 10-гигабитную сетку, все проверил, работает, но так продолжалось до следующего ребута, после которого из системы напрочь пропала 10-гигабитная карточка. lspci молчит, но сервер, однако, при начальной загрузке карточку явно распознает, да и Intel Boot Agent мелькает при этом. Но в системе карточку не видно.

Было решено копать в сторону RAID-контроллера, т.к. в сторону Intel'a ничего путного накопать не удалось. На паре форумов встретил упоминание, что от iommu=soft в параметрах загрузки некоторых избавило обновление прошивки контроллера. Самой свежей прошивкой на сайте IBM была 11.0.1-0042, у меня же была установлена 11.0.1-0024. Значит, стоит попробовать обновиться.

К слову, если вы, в попытках повторить мой опыт, испортите что-нибудь в своем сервере, то виноваты в этом будете исключительно вы сами.

Скачиваем бинарник с обновлением с сайта IBM, пытаемся запустить, и тут же получаем "No such file or directory". Это ему нужно 32битную libstdc++. Ок.

apt-get install lib32stdc++6

Снова пробуем запустить. Уже лучше, для обновления оно предлагает запускать себя с аргументом -s
Пробуем, и снова облом: Unsupported Linux Distribution. Ну конечно, ведь у нас Debian Jessie, а эта гадина хочет RHEL4/5 или SLES9/10/11.

Натравливаем strace и видим, что проверить дистрибутив оно пытается путем чтения содержимого файла /etc/redhat-release. Создадим такой файл и впишем туда содержимое для RHEL5:

Red Hat Enterprise Linux Server release 5 (Tikanga)

Пробуем еще раз, на дистриубтив уже не жалуется, но какие-то проблемы с запуском ./MegaCLI и нехваткой библиотек.
К черту всё, пойдем напролом.

Распаковываем потрошка обновления:

unzip ibm_fw_sraidmr_10k-11.0.1-0042_linux_32-64.bin
cd image
chmod +x install.sh lsiMRupdate

а вот MegaCLI заменим симлинком на уже установленный из репозитория hwraid:

rm MegaCLI
ln -s /usr/sbin/megacli ./MegaCLI

Еще одна попытка обновиться:

./install.sh

*************************************************
 LSI MR Update Utility for use with IBM hardware 
       Version 1.35 - Release Date 1/21/11       
*************************************************

This update is for the ServeRAID MR10k Controller

Found 1 ServeRAID MR or MegaRAID Controller(s)

Getting configuration for Controller 0.  Please wait....

Controller 0 is a ServeRAID MR10k Controller

Attempting to flash controller 0!

Updating Controller 0.  Please wait....

./MegaCLI -AdpFwFlash -f mr10kfw.rom -a0 > result.out

Update of controller 0 completed successfully.

Successfully flashed controller 0!

You must reboot your system to complete the firmware update process.
You do not need to reboot your system immediately.

Ну наконец-то!

Пробуем перезагрузиться без iommu=soft, но увы, ядро снова впадает в панику. Возвращаем эту опцию, загружаемся, смотрим вывод lspci:

18:00.0 Ethernet controller: Intel Corporation Ethernet Controller 10-Gigabit X540-AT2 (rev 01)
18:00.1 Ethernet controller: Intel Corporation Ethernet Controller 10-Gigabit X540-AT2 (rev 01)

Оп-па! Наконец-то 10-гигабитные адаптеры снова вернулись. И даже работают.

P.S. не факт, что они снова после какой-нибудь перезагрузки куда-нибудь не исчезнут, это мне еще предстоит проверить. Если кто-нибудь из читателей может внести ясность на тему того, что это вообще такое было и как с этим жить дальше, был бы очень признателен.