Brocade 200e entre Proxmox y FreeNAS: Buffer I/O error e isp0: Receive Error con todos los puertos online
Mantengo una virtualización pequeña: dos nodos Proxmox 6 y un target en FreeNAS 11.2. Mientras los HBA estuvieron conectados directamente al target, todo funcionó meses sin un solo error. Puse entre ellos un Brocade 200e de segunda mano, para no tender cables en cruz, y empezaron los problemas.
- dos nodos Proxmox 6, HBA QLogic QLE2462 y QLE2432
- target FreeNAS 11.2
- switch Brocade 200e, Fabric OS 6.1.0a
- SFP y latiguillos LC de existencias antiguas, sin marcas identificativas
En los nodos, en el log:
Buffer I/O error on dev dm-5
y después reinicios constantes del dispositivo. Del lado del target, timeouts de firmware en los comandos (CTIO7), y aproximadamente una vez por minuto:
isp0: Receive Error
Después de eso el target se cae de golpe de ambos iniciadores, y solo se arregla reiniciando el nodo.
Lo que ya hice:
- volví a la conexión directa: no hay ningún error, es decir, los HBA, los discos y el propio target no tienen nada que ver
switchshowmuestra los tres puertos online, zonificación mínima, una sola zona- cambié los latiguillos de sitio, reinicié el switch
¿Dónde mirar en el propio switch? El online de switchshow claramente me está engañando, pero todavía no entiendo con qué comprobarlo.
Comments 4
Ya lo encontraste tú mismo: el crecimiento de crc_err y enc_out es corrupción de tramas en la línea, que más arriba en la pila se convierte en timeouts de firmware, reinicios del dispositivo e
isp0: Receive Error. Ni el kernel de los nodos ni el target tienen la culpa aquí, están contando honestamente lo que les llegó.Lo que ya has recogido se lee así:
sfpshowen esos mismos dos puertos, con cordones de la misma longitud, es una comparación entre enlaces simétricos entre sí, no contra una norma sacada de la cabeza. El tercer puerto, limpio, te sirve de referenciaQueda poco por hacer. Corre
fabriclog -s; ahí se ve cómo los puertos se reinician, incluso si switchshow en ese momento dibuja online. Y cambia en los puertos sospechosos el SFP junto con los latiguillos LC, no por separado. A mí una historia parecida terminó exactamente así: cambio de módulos y cordones en los dos puertos problemáticos, tras lo cual porterrshow se mantuvo en cero durante un día entero bajo carga, y el fabric dejó de desmoronarse.La lógica es simple: en conexión directa el tramo tiene dos conectores, a través del switch son cuatro, más dos módulos adicionales. Una SFP al límite de potencia o un cordón con polvo, que la conexión directa aún soportaba, ya no aguanta ese tramo. Así que online en switchshow no es un diagnóstico, es solo el hecho de haberse logueado.
switchshow dice exactamente una cosa: el puerto vio luz y se logueó en el fabric. No sabe nada sobre la calidad de la señal, así que confiar en él en esta situación no tiene sentido.
Haz
portstatsclearen los tres puertos, genera carga y luego miraporterrshow; interesan crc_err y enc_out, si crecen y en qué puertos exactamente. De paso,sfpshowen cada puerto: potencia de recepción y voltaje, conviene compararlos entre puertos. Y muestra qué devuelvesysctl dev.isp.0del lado de FreeNAS en el momento en que el target se cae.Limpié los contadores, generé carga, miré. El cuadro es este: en dos puertos, crc_err y enc_out crecen a ráfagas, justo en los momentos en que en los nodos aparece Buffer I/O error, y en el tercer puerto están en cero.
sfpshowen esos mismos dos puertos muestra una recepción notablemente más baja que en el vecino, con cordones de la misma longitud.sysctl dev.isp.0durante la caída muestra que el HBA se reinicializa, es decir, reacciona al corte y no lo genera. Parece que esto es física, no Proxmox ni el target.Una trampa parecida también se da fuera de FC, así que conviene mirar los contadores en cualquier caso. Hubo una combinación de Intel X520-2 con módulos 10Gtek SR a 850 nm y un Brocade FastIron CX 648S-PoE con módulo FCX-2XG y XFP de Brocade, cinco metros de fibra entre ellos.
El servidor levantaba 10GbE con normalidad y transmitía, pero no había recepción en absoluto, y el puerto en el switch se quedaba Up con velocidad None. Se revisó
show media, se cotejaron la longitud de onda y el alcance en ambos lados, se desactivó la negociación de trunk en el puerto; nada de eso llevó a ningún lado, la velocidad en el XFP no se puede fijar. La misma fibra en puertos SFP+ circulaba tranquilamente a un gigabit. La moraleja es exactamente la misma que la tuya: Up en el puerto no significa que las tramas lleguen.