Introducción
Este documento describe qué es un Aborto de tarjeta de interfaz de red de canal de fibra (FNIC) y proporciona respuestas a preguntas frecuentes (FAQ).
¿Qué es un Aborto?
El canal de fibra (FC) no dispone de medios de recuperación para las tramas caídas o dañadas. El mensaje Abort (ABTS) se envía cuando hay problemas con un intercambio. Un aborto es un servicio de nivel de link que puede ser ejecutado por el iniciador o el destino. La recuperación se gestiona mediante la capa de interfaz de sistema informático pequeño (SCSI) con tiempos de espera de entre 60 y 120 segundos que dependen de la configuración del sistema operativo.

¿Dónde encaja el FNIC en la pila?
En el caso de Linux/ESXi, el controlador FNIC se encuentra entre las bibliotecas libfc proporcionadas por el proveedor del sistema operativo (OS) y el hardware real. La capa SCSI envía la solicitud al controlador fnic, el controlador fnic envía la solicitud scsi al firmware. El firmware genera tramas de Fibre Channel over Ethernet (FCoE) y se envía por cable.

¿Los abortos FNIC son causados por el driver FNIC?
No, los abortos FNIC no son necesariamente un problema de controlador, sino más bien un mensaje genérico de que el iniciador (o destino) no recibió una trama dentro del período de tiempo de espera y la capa SCSI termina el intercambio y vuelve a intentarlo.
¿Qué puede causar abortos de FC?
Los abortos de FC pueden deberse a diversas razones, como la congestión, los dispositivos de bajo rendimiento (disco duro, procesador de almacenamiento, enlaces de baja velocidad), problemas de firmware, problemas de controladores, problemas de SO, pérdida de enlaces, desconexión/activación de enlaces, etc.
Como los abortos son mensajes genéricos, el primer paso es reducir el alcance del problema con preguntas como:
- ¿Ocurre solamente en un lado del fabric de almacenamiento o en ambos?
- ¿Ocurre en un solo host o en varios hosts?
- Si hay varios hosts, ¿qué es común entre los hosts que tienen un problema y qué es diferente de los hosts que no experimentan un problema?
- ¿Ocurre cuando se comunica con un destino de red conectada al almacenamiento (SAN) específico o con un número de unidad lógica (LUN) específico en el destino SAN?
- ¿Existen otros LUN o destinos SAN que no experimenten un problema y, en caso afirmativo, cuáles son las diferencias entre estos LUNs/objetivos en funcionamiento y el objetivo que no funciona?
- ¿Existe un patrón para cuándo se produce el problema, por ejemplo, durante los trabajos de copia de seguridad semanales?
Las respuestas a estas preguntas le ayudan a aislar dónde podría residir el problema y dónde comenzar a centrarse.
La causa más común de los abortos se debe a problemas en la capa 1 y se recomienda verificar la ruta completa desde el iniciador al destino para detectar cualquier error de interfaz, como errores de verificación de redundancia cíclica (CRC) o interfaces inestables.
La siguiente razón común para los abortos se debe a la suscripción excesiva de links entre el iniciador/destino o la suscripción excesiva de componentes en el destino, como CPU y el disco. Aquí es donde resulta útil contar con una base de referencia de buen rendimiento.
¿Qué indica este mensaje de anulación encontrado en el registro?
VMWare vmkernel log:
2017-07-27T14:54:10.590Z cpu6:33351)<7>fnic : 2 :: Abort Cmd called FCID 0x50a00, LUN 0xa TAG c8 flags 3
En este ejemplo, en 2017-07-27T14:54:10 UTC se llamó a un aborto en vmhba2 para FCID 0x50a00 en LUN 0xa con la etiqueta SCSI del SO host 0xc8.
El LUN ID 0xA se convierte a decimal para determinar que el LUN ID 10 era el LUN con el que el sistema operativo intentó comunicarse en el arreglo de discos.
La etiqueta 0xc8 es la etiqueta de E/S de la capa scsi del host para la solicitud que se puede utilizar para coincidir con las entradas de registro en el adaptador VIC.
La instancia del dispositivo 2 puede coincidir con el número vmware vmhba con fnic-tracetool -i
/tmp # ./fnic-tracetool -i
HBA Device
--- ------
vmhba1 fnic1
vmhba2 fnic2
El FCID 0x50c00 puede coincidir con un destino específico en la base de datos fcns en los switches de fabric ascendentes si el fabric interconnect se ejecuta en modo host extremo.
switch-A(nxos)# show fcns database fcid 0x50c00 detail vsan 1 ------------------------ VSAN:1 FCID:0x50c00 ------------------------ port-wwn (vendor) :50:00:00:00:ff:ff:ff:01 (EMC) node-wwn :50:00:00:00:ff:ff:ff:00 class :3 node-ip-addr :0.0.0.0 ipa :ff ff ff ff ff ff ff ff fc4-types:fc4_features :scsi-fcp:both 253 symbolic-port-name :SYMMETRIX::SAF- 3fB::FC::5876_272+::EMUL B80F0000 41234F44 94F360 07.27.15 11:14 symbolic-node-name :SYMMETRIX::FC::5876_272+ port-type :N port-ip-addr :0.0.0.0 fabric-port-wwn :20:1e:00:2a:6a:ea:00:00 hard-addr :0x000000 permanent-port-wwn (vendor) :50:00:00:00:ff:ff:ff:01 (EMC) connected interface :fc1/30
Registros del adaptador VIC
170727-14:54:10.590661 ecom.ecom_main ecom(4:0): abort called for exch abort called for exch 431b, status 3 rx_id 0s_stat 0x0xmit_recvd 0x0burst_offset 0x0sgl_err 0x0 last_param 0x0 last_seq_cnt 0x0tot_bytes_exp 0xa00h_seq_cnt 0x0exch_type 0x1s_id 0x36010fd_id 0x50c00 host_tag 0xc8
- s_stat 0x0 => No se reciben tramas
- exch_type 0x1 => Exchange es de entrada y está activo
- Bytes totales esperados es => tot_bytes_exp 0xa00
- Recibido es => 0x0
- burst_offset está configurado => 0x0
- La etiqueta E/S de la capa SCSI del host para esta solicitud es => 0xc8
- ID de origen => 0x36010f
- ID de destino de destino de prueba => 0x50c00
- ID de cola => 0x0
- rx_id => 0
Estado
Tipo de intercambio(exch_type):
==========================
EXCH_NOT_IN_USE = 0,
EXCH_INITIATOR_INGRESS_ACTIVE = 1
EXCH_TARGET_INGRESS_ACTIVE = 2
EXCH_EGRESS_ACTIVE = 3
EXCH_ABORTED = 4
EXCH_DEBUG = 5
Valores de estado de intercambio(s_stat):
==========================================================================================================================================================================================================================================================
0x00 No se reciben tramas
0x01 Al menos una trama recuperada
La secuencia 0x02 sigue activa
La secuencia 0x04 está completa
inicialización de secuencia de transferencia 0x08
La secuencia de salida 0x10 está activa
0x20 rsp para y entrada de host enviada
0x40 exch secuencia de datos pendiente
¿Cuál es la diferencia entre un mensaje de discordancia FCPIO y un mensaje de discordancia FCPIO?
La discordancia FCPIO puede ocurrir cuando no se reciben todos los datos esperados.
Total bytes xmit < expecte ddata length
160621-04:26:51.733255 ecom.ecom_main ecom(8:3): ox_id 41d4 rx_id 44b seq_cnt 7 seq_id 1 160621-04:26:52.066235 ecom.ecom_main ecom(8:1): fcpio_data_cnt_mismatch for exch 4202 status 1 rx_id5f7 s_stat 0x3 xmit_recvd 0x3000 burst_offset 0x3000 sgl_err 0x0 last_param 0x2800 last_seq_cnt 0x0 tot_bytes_exp 0x8000 h_seq_cnt 0x5 exch_type 0x0 s_id 0xab800 d_id 0xab800 host_tag 0x377
Información Relacionada