Brocade 200e entre Proxmox e FreeNAS: Buffer I/O error e isp0: Receive Error com todas as portas online
Mantenho uma virtualização pequena: dois nós Proxmox 6 e um target em FreeNAS 11.2. Enquanto os HBAs estavam conectados direto ao target, tudo funcionou por meses sem um único erro. Coloquei entre eles um Brocade 200e usado, para não passar cabos cruzados, e começou.
- dois nós Proxmox 6, HBAs QLogic QLE2462 e QLE2432
- target FreeNAS 11.2
- switch Brocade 200e, Fabric OS 6.1.0a
- SFP e cordões LC de estoque antigo, sem identificação
Nos nós, no log:
Buffer I/O error on dev dm-5
e em seguida resets constantes do dispositivo. Do lado do target, timeouts de firmware nos comandos (CTIO7), e mais ou menos uma vez por minuto:
isp0: Receive Error
Depois disso o target cai imediatamente dos dois iniciadores, e isso só se resolve reiniciando o nó.
O que já fiz:
- voltei para a conexão direta - nenhum erro, ou seja, HBA, discos e o próprio target não têm nada a ver com isso
switchshowmostra as três portas online, zoneamento mínimo, uma zona só- retirei e reconectei os cordões, reiniciei o switch
Para onde olhar no próprio switch? O online no switchshow claramente está me enganando, mas com o que verificar isso, eu ainda não entendo.
Comments 4
Você mesmo já achou tudo: crc_err e enc_out crescendo são corrupção de frames no link, e mais adiante na pilha isso vira timeout de firmware, reset de dispositivo e
isp0: Receive Error. Nem o kernel nos nós, nem o target têm culpa aqui, eles só estão contando honestamente o que chegou até eles.O que você já coletou se lê assim:
sfpshownas mesmas duas portas, com cordões do mesmo comprimento, é uma comparação entre links simétricos, não contra uma norma tirada da cabeça. A terceira porta, limpa, funciona como referência para vocêDepois disso resta pouco. Rode
fabriclog -s- ali dá para ver as portas piscando, mesmo se o switchshow nesse momento desenhar online. E troque nas portas suspeitas o SFP junto com os cordões LC, não separadamente. Comigo uma história parecida terminou exatamente assim: troca de módulos e cordões nas duas portas problemáticas, depois do que o porterrshow ficou zerado por um dia inteiro sob carga, e o fabric parou de desmoronar.A lógica é simples: na conexão direta o trajeto tem dois conectores, passando pelo switch são quatro, mais dois módulos extras. Um SFP no limite de potência ou um cordão empoeirado, que a conexão direta ainda aguentava, esse trajeto já não aguenta mais. Então online no switchshow não é diagnóstico, é só o fato de ter logado.
O switchshow diz exatamente uma coisa: a porta viu luz e logou no fabric. Sobre a qualidade do sinal ele não sabe nada, então confiar nele nessa situação não faz sentido.
Faça
portstatsclearnas três portas, rode uma carga e depois olheporterrshow- interessam crc_err e enc_out, se eles crescem e em quais portas exatamente. De quebra,sfpshowem cada porta: potência de recepção e tensão, vale comparar entre as portas. E mostre o que osysctl dev.isp.0retorna do lado do FreeNAS no momento em que o target cai.Limpei os contadores, dei carga, olhei. O quadro é o seguinte: em duas portas o crc_err e o enc_out crescem em lotes, exatamente nos momentos em que os nós despejam Buffer I/O error, e na terceira porta fica tudo zerado.
O
sfpshownessas mesmas duas portas mostra uma recepção visivelmente mais baixa que na vizinha, com cordões do mesmo comprimento. Osysctl dev.isp.0durante a queda mostra que o HBA está se reinicializando, ou seja, ele reage à interrupção, não a cria. Parece ser física, não Proxmox nem o target.Uma armadilha parecida acontece fora do FC também, então vale olhar os contadores de qualquer jeito. Tinha uma combinação de Intel X520-2 com módulos 10Gtek SR em 850 nm e um Brocade FastIron CX 648S-PoE com o módulo FCX-2XG e XFPs da própria Brocade, cinco metros de fibra entre eles.
O servidor honestamente subia 10GbE e transmitia, mas recepção não tinha nenhuma, e a porta no switch ficava Up com velocidade None. Olhamos
show media, conferimos comprimento de onda e alcance dos dois lados, desligamos a negociação de trunk na porta - nada disso resolveu, velocidade no XFP não dá para fixar. A mesma fibra em portas SFP+ rodava tranquila em gigabit. A moral é exatamente a mesma que a sua: Up na porta não significa que os frames estão chegando.