CodingBox Q&A Ask question

Brocade 200e entre Proxmox y FreeNAS: Buffer I/O error e isp0: Receive Error con todos los puertos online

Asked Active Viewed 153 AI translation from Русский
5

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
  • switchshow muestra 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

Accepted answer

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í:

  • pusiste los contadores a cero y miraste bajo carga, así que viste la velocidad de crecimiento y no la suma desde que se encendió el switch. Y los picos coincidieron con Buffer I/O error en los nodos: eso es justamente la vinculación entre los errores del fabric y lo que ven los discos
  • la recepción caída en sfpshow en 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 referencia

Queda 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.

4 Russialambdaops44RU Show original (Русский) AI translation

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 portstatsclear en los tres puertos, genera carga y luego mira porterrshow; interesan crc_err y enc_out, si crecen y en qué puertos exactamente. De paso, sfpshow en cada puerto: potencia de recepción y voltaje, conviene compararlos entre puertos. Y muestra qué devuelve sysctl dev.isp.0 del lado de FreeNAS en el momento en que el target se cae.

0 KazakhstanlinkguruKZ Show original (Русский) AI translation

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.

sfpshow en 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.0 durante 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.

3 KazakhstannetopsKZ Show original (Русский) AI translation

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.

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