Некоторое время назад дошли наконец-руки до обновления 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. не факт, что они снова после какой-нибудь перезагрузки куда-нибудь не исчезнут, это мне еще предстоит проверить. Если кто-нибудь из читателей может внести ясность на тему того, что это вообще такое было и как с этим жить дальше, был бы очень признателен.