ConnectX-4 MCX456A-ECAT не линкуется с Cisco NCS на 100GBASE-LR4, хотя шлейф проходит на обоих концах
Мы обслуживаем пару стоек, которые сдают трафик на обращённый к оператору Cisco NCS, и один из аплинков сервера на 100G не поднимался ни разу с момента сборки. Тот же результат после переноса сервера в другую стойку с другой патч-панелью, так что перестал считать это единичным случаем.
- Сервер Supermicro, NVIDIA/Mellanox ConnectX-4 MCX456A-ECAT, оба порта свободны
- обобщённый 100GBASE-LR4 QSFP28, одномод, дальность 10 км, по одному на каждом конце
- Cisco NCS на другой стороне, тёмное волокно между двумя помещениями
Часть, из-за которой я застрял: каждый модуль проходит шлейф (loopback) на своём же устройстве. При закольцовке волокна обратно в тот же QSFP28 сетевая карта показывает чистый линк 100G, и NCS со своей стороны - то же самое. Ставим реальный пролёт между ними - и ничего.
# модуль закольцован прямо на сетевой карте
Speed: 100000Mb/s
Link detected: yes
# тот же модуль, реальный пролёт до NCS
Speed: Unknown!
Link detected: no
Что уже пробовали:
- заменили оба модуля на запасные из той же партии - без изменений
- перенесли сервер и перепатчили через другую панель
- открыли кейс у вендора сетевой карты, ответ - ссылка на список проверенных трансиверов в примечаниях к релизу прошивки, что не объясняет, почему loopback работает
Есть ли что-то в LR4 на ConnectX-4, из-за чего он линкуется локально, но никогда через реальный пролёт, или я гонюсь не за тем концом проблемы?
Comments 3
Это больше похоже на грязный тракт, а не на проблему совместимости.
Всё, что вы уже заменили, находится на стороне, которая и так проверялась хорошо, поэтому ничего и не изменилось - единственное, что осталось нетронутым, это сам пролёт. Так что займитесь трактом:
Список проверенных трансиверов, на который вас отправили, стоит просмотреть, но модуль, который чисто поднимается в loopback, уже правильно управляется сетевой картой. Списки совместимости объясняют модули, которые отклоняются напрямую, а не модули, которые линкуются локально и умирают через пролёт.
Если чистка не поможет, следующий шаг - источник света и измеритель мощности на тёмном волокне, или OTDR, если можно одолжить, прежде чем покупать ещё одну сетевую карту или ещё одну пару оптики.
Loopback доказывает только то, что порт слышит сам себя - лазер, приёмник, настройки скорости. Он ничего не говорит о стекле между вашими двумя помещениями, а это как раз то, что вы ещё не проверили. Так что прежде чем снова винить сетевую карту, снимите показания с обоих концов при подключённом реальном пролёте: какая мощность Rx на порту NCS, а какая - на сетевой карте? Rx ниже порога Low Warn при подключённом пролёте - классический указатель на дальний конец или на тракт, а не на локальный порт. На стороне Linux
ethtool -mдолжен дать те же показания, а если он вернётCannot get module EEPROM information: Input/output error, не считайте это мёртвым модулем - на mlx5 это обычно связано с доступом к модулю на стороне прошивки, иmst start,mst cable add, а затемmlxcablesвсё равно дадут вам значения.Ответом оказалась чистка. Мы посмотрели торцы под микроскопом, и оба модуля плюс оба патч-корда были загрязнены; шнур, проходящий через межкомнатную панель, был хуже обоих. Почистили всё в тракте, переустановили разъёмы, и линк 100G до NCS поднялся с первой попытки и держится с тех пор.
Слегка досадно на себя за то, что так долго топтался вокруг темы совместимости, когда результат loopback всё это время говорил, что модули в порядке, а вот тракт - нет. Кому пригодится позже: loopback доказывает исправность порта, а не волокна.