Table des matières

Introduction

Qu'est-ce qu'un abandon ?

Où la carte FNIC s'insère-t-elle dans la pile ?

La carte FNIC est-elle abandonnée par le pilote FNIC ?

Quelle peut être la cause des abandons 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-concordance FCPIO ?

Informations connexes

Introduction

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

Qu'est-ce qu'un abandon ?

Fibre Channel (FC) ne dispose d'aucun moyen de récupération des trames perdues ou endommagées. Un message d'abandon (ABTS) est envoyé en cas de problème d'échange. Un abandon est un service au niveau de la 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'expiration de 60 à 120 secondes qui dépendent de la configuration du système d'exploitation.

Où la carte FNIC s'insère-t-elle dans la pile ?

Dans le cas de Linux/ESXi, le pilote FNIC se trouve entre les bibliothèques libfc fournies par le fournisseur du système d'exploitation et le matériel réel.  La couche SCSI envoie une requête au pilote de la carte réseau. Le pilote de la carte réseau 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.

La carte FNIC est-elle abandonnée par le pilote FNIC ?

Non, les abandons de la carte 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 recommence.

Quelle peut être la cause des abandons FC ?

Les abandons FC peuvent être dus à diverses raisons, telles que l'encombrement, des périphériques à faibles performances (disque dur, processeur de stockage, liaisons à faible vitesse), des problèmes de microprogramme, des problèmes de pilote, des 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 d'un seul côté du fabric de stockage ou des deux ?

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

- Si plusieurs hôtes sont concernés, quels sont les points communs entre les hôtes présentant un problème et quels sont les éléments qui diffèrent des hôtes ne présentant pas de problème ?

- Se produit-il lorsqu'il communique avec une cible SAN (Storage Attached Network) 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 cibles/LUN actives et la cible inactive ?

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

Les réponses à ces questions vous aident à identifier où le problème peut se situer et où commencer.

La cause la plus fréquente des abandons est due à des problèmes de couche 1 et il est recommandé de vérifier le chemin entier de l'initiateur à la cible pour détecter d'éventuelles erreurs d'interface telles que des erreurs CRC (Cyclic Redundancy Check) ou des interfaces instables.

La raison courante suivante pour les abandons est due à 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 s'avère 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 l'étiquette SCSI du système d'exploitation hôte 0xc8.

Le LUN ID 0xA est converti au format décimal pour déterminer que l'ID de LUN 10 correspond à la LUN avec laquelle 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 de l'hôte pour la requête, qui peut être utilisée pour établir une correspondance avec les entrées de journal sur l'adaptateur VIC.

L'instance de périphérique 2 peut être associée 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 si l'interconnexion de fabric s'exécute en mode d'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 l'adaptateur 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

- Le nombre total d'octets attendus est => tot_bytes_exp 0xa00

- Reçu => 0x0

- burst_offset est défini => 0x0

- La balise E/S de la couche SCSI de l'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 de lecture

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 reçue

La séquence 0x02 est toujours active

La séquence 0x04 est terminée

0x08 init de séquence de transfert

Séquence de sortie 0x10 active

0x20 rsp fr et entrée d'hôte envoyées

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

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

Une non-concordance 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 carte réseau Cisco UCS

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

- Congestion SAN ! Présentation, dépannage et réduction des risques dans un fabric Cisco

- Assistance et documentation techniques - Cisco Systems