Ethernet sans perte pour le stockage : DCB, PFC, ECN · Systèmes de stockage · Technologies · Documentation · CodingBox
CodingBox Documentation

Ethernet sans perte pour le stockage : DCB, PFC, ECN

Ethernet perd des trames en cas de congestion ; les protocoles de stockage conçus pour Fibre Channel ou RDMA supposent que rien n’est jamais perdu. Le Data Center Bridging (DCB) comble cet écart avec un contrôle de flux et une allocation de bande passante par priorité, et RoCE ajoute par-dessus une signalisation de congestion. Le résultat n’est sans perte qu’à hauteur de sa pire liaison : une optique limite qui perd une trame sur un million est un incident de stockage. Cette page explique les mécanismes et les traduit en exigences de couche physique.

La boîte à outils DCB

NormeNomRôle
IEEE 802.1QbbPFC — priority-based flow controltrames de pause par classe de trafic (0–7) : un récepteur congestionné arrête une classe sans arrêter le port
IEEE 802.1QazETS — enhanced transmission selectionparts de bande passante garanties par classe (par ex. 50 % stockage, 50 % LAN)
IEEE 802.1QazDCBX — DCB exchangenégociation des réglages PFC/ETS entre commutateur et NIC, basée sur LLDP
IEEE 802.1QauCN — congestion notificationrarement déployé
RFC 3168 + DCQCNmarquage ECN + contrôle de débitle commutateur marque les paquets quand les files se remplissent ; les NIC RoCE ralentissent le flux avant que le PFC soit nécessaire

Comment RoCE reste sans perte

  1. Le trafic stockage/RDMA est marqué avec une priorité dédiée (souvent 3 ou 4) via DSCP ou 802.1p.
  2. Le PFC n’est activé que pour cette priorité sur chaque port le long du chemin, avec un headroom de tampon dimensionné pour le débit de la liaison et la longueur du câble (octets en transit).
  3. Les seuils ECN marquent les paquets tôt ; les NIC exécutent DCQCN pour réduire leur débit, si bien que le PFC ne se déclenche qu’en dernier recours.
  4. ETS garantit sa bande passante à la classe stockage sous charge LAN.
  5. DCBX maintient la cohérence des réglages entre NIC et commutateur ; une incohérence casse silencieusement le caractère sans perte.

FC et InfiniBand obtiennent le même résultat par défaut grâce aux crédits sur chaque liaison ; Ethernet doit le configurer, le vérifier et le surveiller (bases du protocole FC, transport InfiniBand).

Ce qui peut mal tourner

ProblèmeEffetDétection
PFC non activé sur un saut / mauvaise prioritépertes sous charge ; retransmissions RDMA ; pics de latencecompteurs de pause à zéro là où ils ne devraient pas l’être ; pertes sur la classe
Tempête de PFCun récepteur bloqué met en pause l’amont indéfiniment ; la congestion se propage à tout le fabricinondation de trames de pause ; compteurs de watchdog
Interblocage PFCdépendance cyclique de tampons dans les fabrics Clos ; tout le trafic de la classe s’arrêtenécessite une détection d’interblocage / un watchdog pour le rompre
Headroom trop faible pour des câbles/optiques longspertes malgré le PFCpertes avec compteurs de pause actifs
Seuils ECN incorrectstrop tôt : perte de débit ; trop tard : le PFC débordecompteurs de marques ECN, compteurs de CNP sur les NIC
Erreurs physiques sur une liaison (CRC, FEC non corrigible)trames perdues qu’aucun contrôle de flux ne peut récupérercompteurs d’erreurs de port, compteurs FEC — métriques VDM et FEC

iSCSI sans DCB

iSCSI fonctionne sur TCP et survit à la perte, mais le paie en latence et en retransmissions. Bonnes pratiques indépendamment du DCB :

  • des VLAN/sous-réseaux dédiés par fabric, deux fabrics, MPIO sur les hôtes ;
  • des trames jumbo (MTU 9000) de bout en bout ;
  • pas de sursouscription entre initiateurs et cibles ; liaisons montantes 25G/100G dimensionnées pour la baie ;
  • FEC activé sur chaque liaison 25G et plus ; compteurs CRC à zéro ;
  • éventuellement le PFC sur la classe iSCSI pour lisser les micro-rafales (de nombreuses baies le recommandent).

Exigences de couche physique

ExigencePourquoiPratique
FEC activé et assorti sur chaque liaison 25G et plusRoCE ne tolère pas le BER brut de voies 25G/50G non protégéesFEC et link training
CRC et FEC non corrigible = 0chaque trame perdue bloque une filealerte sur tout incrément
Puissance Rx dans la fenêtre avec margeune optique limite produit des rafales d’erreurs sous l’effet de la températurepuissance Rx et bilan de liaison
Débit/duplex/AN cohérentsle DAC nécessite AN + link training aux deux extrémitéscuivre et DAC
Longueur de câble compatible avec les hypothèses de headroomle headroom est calculé à partir des octets en transitpréférer le DAC en baie, SR/AOC dans la rangée, DR/LR entre salles
Identité acceptée par le NIC et le commutateurune optique rejetée retombe sur pas de liaison ou un débit réduitverrouillage constructeur

Liste de contrôle pour la surveillance

  • Par port : trames de pause envoyées/reçues par priorité, marques ECN, pertes par classe, CRC, FEC corrigé/non corrigible, battements de liaison.
  • Par NIC : CNP envoyés/reçus, retransmissions, paquets hors séquence, timeouts.
  • Par optique : tendances de puissance Rx/Tx et de température (surveillance).
  • Corrélez les pics de latence de queue du stockage avec ce qui précède — la couche physique est coupable plus souvent que la baie.

Dans CodingBox

Un fabric sans perte est construit à partir d’une optique ordinaire, simplement tenue à un niveau d’exigence plus élevé. L’inspection à l’entrée sur le banc — identité, sommes de contrôle, DDM en direct comparé aux valeurs typiques, référence enregistrée — permet d’écarter les modules limites d’un fabric où une seule mauvaise liaison coûte à une application son SLA de latence (Check transceiver, DDM).

Où se situent le PFC et l’ECN parmi les autres mécanismes de forwarding, et comment les erreurs de couche physique s’y manifestent : bases du forwarding.


Si vous trouvez une inexactitude ou une erreur dans cet article, sélectionnez le passage concerné et appuyez sur Ctrl+Enter pour .