CodingBox Q&A Ask question

Brocade 200e между Proxmox и FreeNAS: Buffer I/O error и isp0: Receive Error при всех портах online

Asked Active Viewed 153 Original language: Русский
5

Держу небольшую виртуализацию: два узла Proxmox 6 и таргет на FreeNAS 11.2. Пока HBA были соединены с таргетом напрямую, всё жло месяцами без единой ошибки. Поставил между ними бывший в употреблении Brocade 200e, чтобы не тянуть провода крест-накрест, и началось.

  • два узла Proxmox 6, HBA QLogic QLE2462 и QLE2432
  • таргет FreeNAS 11.2
  • коммутатор Brocade 200e, Fabric OS 6.1.0a
  • SFP и LC-патчкорды из старых запасов, без опознавательных знаков

На узлах в логе:

Buffer I/O error on dev dm-5

и следом постоянные сбросы устройства. На стороне таргета - таймауты прошивки на командах (CTIO7), а примерно раз в минуту:

isp0: Receive Error

После этого таргет отваливается сразу от обоих инициаторов, и лечится это только перезагрузкой узла.

Что уже сделал:

  • вернул прямое подключение - ошибок нет вообще, то есть HBA, дииски и сам таргет ни при чём
  • switchshow показывает все три порта online, зонирование минимальное, одна зона
  • переткнул патчкорды, перезагрузил коммутатор

Куда смотреть на самом коммутаторе? online в switchshow меня явно обманывает, но чем его проверить, я пока не понимаю.

Comments 4

Accepted answer

Ты сам уже всё нашёл: растущие crc_err и enc_out - это порча кадров на линии, дальше по стеку она превращается в таймауты прошивки, сбросы устройства и isp0: Receive Error. Ни ядро на узлах, ни таргет тут не виноваты, они честно рассказывают о том, что им прилетело.

То, что ты уже снял, читается так:

  • счётчики ты сбросил и смотрел под нагрузкой, значит видел скорость роста, а не сумму с момента включения коммутатора. И всплески совпали с Buffer I/O error на узлах - это и есть привязка ошибок фабрики к тому, что видят диски
  • просевший приём в sfpshow на тех же двух портах при одинакоовых по длине шнурах - это сравнение симметричных линков между собой, а не с нормой из головы. Третий, чистый порт работает у тебя эталоном

Дальше остаётся немного. Прогони fabriclog -s - там видно, как порты передёргиваются, даже если switchshow в этот момент рисует online. И меняй на подозрительных портах SFP вместе с LC-патчкордами, не по отдельности. У меня похожая история именно этим и закончилась: замена модулей и шнуров на двух проблемных портах, после чего porterrshow за сутки под нагрузкой остался нулевым, и фабрика больше не разваливалась.

Логика простая: при прямом подключении на трассе два коннектора, через коммутатор - четыре, плюс два лишних модуля. Пограничный по мощности SFP или запылённый шнур, который вытягивал прямое соединение, такую трассу уже не тянет. Так что online в switchshow - это не диагноз, а всего лишь факт логина.

4 Russialambdaops44RU AI translation to English Original (Русский)

switchshow говорит ровно одно: порт увидел свет и залогинился в фабрику. О качестве сигнала он не знает ничего, поэтому верить ему в такой ситуации бессмысленно.

Сделай portstatsclear на всех трёх портах, погоняй нагрузку и потом смотри porterrshow - интересуют crc_err и enc_out, растут ли они и на каких именно портах. Заодно sfpshow по каждому порту: мощность на приёме и напряжение, их полезно сравнить между портами. И покажи, что отдаёт sysctl dev.isp.0 на стороне FreeNAS в момент, когда таргет отваливается.

0 KazakhstanlinkguruKZ AI translation to English Original (Русский)

Почистил счётчики, дал нагрузку, посмотрел. Картина такая: на двух портах crc_err и enc_out растут пачками, причём ровно в те моменты, когда на узлах сыплется Buffer I/O error, а на третьем порту по нулям.

sfpshow на этих же двух портах показывает заметно более низкий приём, чем на соседнем, при одинаковых по длине шнурах. sysctl dev.isp.0 во время отвала показывает, что HBA переинициализируется, то есть он реагирует на обрыв, а не создаёт его. Похоже, это физика, а не Proxmox и не таргет.

3 KazakhstannetopsKZ AI translation to English Original (Русский)

Похожая ловушка бывает и не в FC, так что счётчики стоит смотреть в любом случае. Была связка Intel X520-2 с модулями 10Gtek SR на 850 нм и Brocade FastIron CX 648S-PoE с модулм FCX-2XG и брокадовскими XFP, пять метров волокна между ними.

Сервер честно поднимал 10GbE и передавал, а приёма не было вообще, и порт на коммутаторе висел Up со скоростью None. Смотрели show media, сверили длину волны и дальность с обеих сторон, отключали согласование транка на порту - ничем это не кончилось, скорость на XFP не зафиксируешь. То же самое волокно на SFP+ портах спокойно бегало на гигабите. Мораль ровно та же, что у тебя: Up на порту не значит, что кадры доезжают.

3 Ukrainecoaxeng7UA AI translation to English Original (Русский)
Log in to comment. Log in