Contenu

Introduction

Qu'est-ce qu'un abandon ?

Où se situe la carte réseau FNIC dans la pile ?

Les abandons de la carte réseau FNIC sont-ils causés par le pilote de la carte réseau FNIC ?

Qu'est-ce qui peut provoquer l'abandon de FC ?

Qu'indique ce message d'abandon trouvé dans le journal ?

Quelle est la différence entre un message d'abandon et un message de non-correspondance FCPIO ?

Informations connexes

Introduction

Ce document décrit ce qu'est une carte d'interface réseau Fibre Channel (FNIC) Abort et fournit des réponses aux questions fréquemment posées (FAQ).

Qu'est-ce qu'un abandon ?

Fibre Channel (FC) n'a aucun moyen de récupération pour les pertes ou les trames endommagées. Le message Abort (ABTS) est envoyé en cas de problème avec un échange. Un abandon est un service de niveau de liaison qui peut être émis par l'initiateur ou la cible. La récupération est gérée par la couche SCSI (Small Compute System Interface) avec des délais d'attente de 60 à 120 secondes qui dépendent de la configuration du système d'exploitation.

Où se situe la carte réseau FNIC dans la pile ?

Dans le cas de Linux/ESXi, le pilote FNIC se situe entre les bibliothèques libfc fournies par le fournisseur du système d'exploitation (SE) et le matériel réel.  La couche SCSI envoie une requête au pilote fnic, le pilote fnic envoie la requête scsi au micrologiciel. Le micrologiciel génère des trames Fibre Channel over Ethernet (FCoE) et les envoie sur le câble.

Les abandons de la carte réseau FNIC sont-ils causés par le pilote de la carte réseau FNIC ?

Non, les abandons FNIC ne sont pas nécessairement un problème de pilote, mais plutôt un message générique indiquant que l'initiateur (ou la cible) n'a pas reçu de trame dans le délai imparti et que la couche SCSI met fin à l'échange et à la nouvelle tentative.

Qu'est-ce qui peut provoquer l'abandon de FC ?

Les abandons FC peuvent être provoqués par diverses raisons, telles que la congestion, les périphériques de faible performance (disque dur, processeur de stockage, liaisons à faible vitesse), les problèmes de microprogramme, les problèmes de pilote, les problèmes de système d'exploitation, la perte de liaison, la liaison inactive/active, etc.

Comme les abandons sont des messages génériques, la première étape consiste à réduire la portée du problème en posant des questions telles que :

- Se produit-il uniquement d'un côté du fabric de stockage ou des deux ?

- Se produit-il sur un ou plusieurs hôtes ?

- Si plusieurs hôtes présentent un problème, qu’est-ce qui est commun entre les hôtes qui en ont un et qu’est-ce qui est différent des hôtes qui ne connaissent pas de problème ?

- Se produit-il lorsqu'il communique avec une cible SAN spécifique ou un numéro d'unité logique (LUN) spécifique sur la cible SAN ?

- Existe-t-il d'autres cibles ou LUN SAN qui ne rencontrent pas de problème et, dans l'affirmative, quelles sont les différences entre ces LUN/cibles actives et la cible non opérationnelle ?

- Existe-t-il un modèle pour le moment où le problème se produit, par exemple pendant les tâches de sauvegarde hebdomadaires ?

Les réponses à ces questions vous aident à déterminer où se trouve le problème et où commencer à vous concentrer.

La cause la plus courante de l'abandon est due à des problèmes de couche 1 et il est recommandé de vérifier l'intégralité du chemin de l'initiateur à la cible pour détecter toute erreur d'interface telle que les erreurs CRC (Cyclic Redundancy Check) ou les interfaces de battement.

La raison courante suivante de l'abandon est la sursouscription de liaisons entre l'initiateur/la cible ou la sursouscription de composants sur la cible, tels que le processeur et le disque.  C'est là qu'une bonne base de performances est utile.

Qu'indique ce message d'abandon trouvé dans le journal ?

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

Dans cet exemple, le 2017-07-27T14:54:10 UTC, un abandon a été appelé sur vmhba2 pour FCID 0x50a00 sur le LUN 0xa avec la balise SCSI du système d'exploitation hôte 0xc8.

LUN ID 0xA est converti en nombre décimal pour déterminer que l'ID de LUN 10 était le LUN avec lequel le système d'exploitation a tenté de communiquer sur la baie.

La balise 0xc8 est la balise d'E/S de la couche scsi hôte pour la demande qui peut être utilisée pour correspondre aux entrées de journal sur la carte VIC.

L'instance de périphérique 2 peut être associée jusqu'au numéro vmware vmhba avec fnic-tracetool -i

/tmp # ./fnic-tracetool -i

HBA             Device

---             ------

vmhba1          fnic1

vmhba2          fnic2

Le FCID 0x50c00 peut être associé à une cible spécifique dans la base de données fcns sur les commutateurs de fabric ascendant vers le nord si l'interconnexion de fabric s'exécute en mode hôte final.

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

Journaux de la carte 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 => Aucune trame n'est reçue

- exch_type 0x1 => Exchange est en entrée et est actif

- Nombre total d'octets attendus => tot_bytes_exp 0xa00

- Reçu => 0x0

- burst_offset est défini => 0x0

- La balise E/S de la couche scsi hôte pour cette demande est => 0xc8

- ID source => 0x36010f

- ID cible dest => 0x50c00

- ID de séquence => 0x0

- rx_id => 0

Status (état)

- État 3 = commande write

- État 1 = commande read

Type d'échange (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

Valeurs d'état Exchange(s_stat) :

==========================================================================================================================================================================================================================================================

0x00 Aucune trame n'est reçue

0x01 Au moins une trame enregistrée

La séquence 0x02 est toujours active

Séquence 0x04 terminée

0x08 transfert séquence init

Séquence de sortie 0x10 active

0x20 rsp pour et entrée hôte envoyée

Séquence de données 0x40 exch en attente

Quelle est la différence entre un message d'abandon et un message de non-correspondance FCPIO ?

Une non-correspondance FCPIO peut se produire lorsque toutes les données attendues ne sont pas reçues.

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

Informations connexes

- Tunables de la gamme Cisco UCS

- Utilisation de LIBfc avec VMware et Cisco VIC pour dépanner les communications initiateur/cible

- Encombrement SAN ! Compréhension, dépannage et réduction des risques dans un fabric Cisco

- Support et documentation techniques - Cisco Systems