Оптика QLE2692 линкуется, но Proxmox VE 6.2 не показывает LUN: qla2xxx register_localport failed
Переношу пару гипервизоров на хранилище Fibre Channel, и один хост отказывается показать хоть один LUN, тогда как то же самое железо работает, когда карту передают виртуальной машине.
- QLogic QLE2692, FC 16/32 Гбит на базе ISP2722, оба порта подключены
- Fujitsu Eternus DX100 S5 на другом конце
- хост Proxmox VE 6.2, встроенный в ядро qla2xxx на ядре 5.4
- та же карта, проброшенная в Windows VM на этом хосте
На хосте порты поднимаются, оптика показывает свет, но блочные устройства так и не появляются. В dmesg каждый раз при инициализации драйвера следующее:
qla2xxx: register_localport failed: ret=ffffffea
WARNING in qla_nvme_register_hba
Что я уже сделал:
- поменял модули SFP+ и патч-корды между двумя портами местами - никакого изменения
- пробросил всю карту в Windows VM: LUN DX100 появляются там сразу, так что кабели, оптика и сторона массива явно в порядке
- проверил
lspci -k, qla2xxx привязан к обеим функциям, и ничто больше не борется за карту
Я даже не пытаюсь запустить NVMe over FC здесь, мне просто нужны обычные LUN FC на хосте. Стоит ли дальше разбирать оптику, или это чётко проблема драйвера хоста?
Comments 5
Прежде чем снова трогать оптику, выложите скучные подробности. Опубликуйте весь блок dmesg, а не эти две строки: всё, что драйвер печатает с момента probe и далее, включая предупреждение. Строка регистрации сама по себе никому не говорит, закончили ли порты подниматься или умерли на середине init.
И скажите, представляет ли массив вообще что-нибудь как пространства имён NVMe, или только обычные LUN SCSI. Сообщение, которое вы вставили, выходит из половины драйвера, отвечающей за NVMe, так что если в этой конфигурации нигде нет пространств имён, это уже сужает, что именно ломается и почему за этим следует остальной стек.
Пространств имён нигде нет: массив отдаёт только обычные FC LUN SCSI, ничто в этой фабрике не говорит на NVMe, что как раз и заставило меня удивиться этому сообщению с самого начала.
Блок dmesg короткий и скучный. Драйвер загружается, обе функции чисто проходят probe, порты поднимаются, а затем
register_localport failed: ret=ffffffeaпоявляется, а сразу за нимWARNING in qla_nvme_register_hba. Никаких таймаутов, никаких сбросов, ничего про фабрику между ними. Это повторяется на обоих портах при каждой загрузке, и после этого ни одно устройство SCSI на хосте не появляется. Та же карта с теми же модулями в VM с пробросом видит LUN сразу.Перестаньте смотреть на трансиверы, это драйвер хоста. Встроенный в ядро qla2xxx на 5.4 проваливает регистрацию NVMe-FC при поднятии адаптера, что и есть именно тот
register_localport failed: ret=ffffffea, который вы видите, и это оставляет порты FC непригодными для использования вообще ни для чего. Вот почему ваши обычные LUN SCSI никогда не появляются, хотя вы нигде не просили NVMe-FC. Проброс работает, потому что драйвер Windows не имеет никакого отношения к этому коду.Практический путь - другое ядро. Те же карты ведут себя нормально на Proxmox 6.1 с ядром 5.3, и снова нормально на 5.8, так что выберите, что подходит под ваши планы обновления, загрузитесь, проверьте, что предупреждение о регистрации исчезло из dmesg, и затем пересканируйте. Привычка, которую стоит выработать с FC HBA в целом: grep dmesg на ошибки со стороны драйвера, прежде чем подозревать модуль, потому что драйвер, умирающий при инициализации, выглядит точь-в-точь как мёртвый линк, когда вы смотрите на массив хранения.
Это было оно. Загрузил 5.8 на хосте, предупреждение о регистрации исчезло из dmesg, и LUN DX100 перечислились по обоим путям без каких-либо дальнейших изменений, те же кабели, те же модули, то же зонирование. Для полноты картины вернул второй узел на 6.1 с ядром 5.3, и там тоже работает, так что поломка действительно ограничена 5.4 на этом железе. Карта и оптика остаются в точности как есть, и запасные модули, которые я уже заказал, пригодятся.
Подтверждаю картину с другой стороны: мы столкнулись ровно с этим на Proxmox 7.1 под ядром 5.13, так что 5.4 не единственная затронутая версия, и это стоит проверять после любого перехода на другое ядро.
Emulex не лучше, кстати. Два порта LPe31000/LPe32000, месяцами работавшие без изменений, перестали видеть какие-либо LUN после перехода ядра на 5.15.64, а затем 5.15.74, с
Enable MI Mailbox x9b (x1/xbf) failed, rc:x10 mi:x2иCMF is disabledв логе, и ни одной цели не находилось после этого. Кабели и оптика, разумеется, не тронуты. Это сидит в lpfc и появилось начиная с ядер после 5.15.60. Два выхода сработали у людей: закрепить загрузочное ядро там, где оно ещё работало, черезproxmox-boot-tool kernel pin 5.15.60-2-pve, либо перейти на опциональное ядро 5.19, если уход с ветки 5.15 для вас приемлем. Исправление должно было попасть в 5.15.77, но я так и не собрался попробовать эту сборку. Суть в том, что когда линк FC выглядит мёртвым сразу после обслуживания, посмотрите, в какое ядро вы загрузились, прежде чем заказывать замену модулей.