NVMe over Fabrics : FC-NVMe, NVMe/TCP, NVMe/RoCE et leur optique
NVMe a remplacé SCSI à l’intérieur du serveur parce que la flash est assez rapide pour exposer le coût du protocole ; NVMe over Fabrics (NVMe-oF) transporte le même jeu de commandes sur un réseau, pour que le stockage partagé suive le rythme. Il s’exécute sur trois transports qui correspondent à trois types de réseau — et donc trois types d’optique et trois jeux de règles de couche physique. Cette page les compare et indique ce que chacun exige des liaisons.
Pourquoi NVMe-oF
| Aspect | SCSI-era (FCP, iSCSI) | NVMe-oF |
|---|---|---|
| Files de commandes | une file, ~32–256 commandes | jusqu’à 64k files × 64k commandes ; parallèle par conception |
| Surcoût protocolaire par E/S | des dizaines de µs de temps CPU | quelques µs ; les transports RDMA contournent le CPU |
| Latence ajoutée par le fabric | 100–200 µs typiquement | 10–30 µs (RDMA/FC), 30–80 µs (TCP) |
| Convient à | baies HDD et flash de première génération | tout-flash, stockage désagrégé, pipelines de données GPU |
Les transports
| Transport | Réseau | Sans perte ? | Latence | Remarques |
|---|---|---|---|---|
| FC-NVMe (FC-NVMe-2) | Fibre Channel 16/32/64GFC | oui, par crédits | très faible | fonctionne aux côtés de SCSI FCP sur le même fabric et les mêmes SFP ; zoning et name server inchangés (bases du protocole FC) |
| NVMe/RoCE v2 | Ethernet 25/100/200/400G avec NIC RDMA | nécessite PFC/ECN (DCQCN) | très faible | verbs RDMA sur UDP/IP ; nécessite une configuration sans perte de bout en bout (Ethernet sans perte) |
| NVMe/TCP | tout Ethernet/IP | non — TCP gère la perte | faible à moyenne | pas de NIC ni de fonctions de commutateur spéciales ; routable ; le choix de volume en entreprise |
| NVMe/IB | InfiniBand | oui, par crédits | très faible | stockage HPC/IA (InfiniBand) |
Les quatre partagent l’architecture NVMe-oF : un contrôleur de découverte indique aux hôtes quels sous-systèmes existent ; les hôtes connectent des files aux contrôleurs d’E/S ; ANA (asymmetric namespace access) gère le multipath.
Ce que chacun exige de la couche physique
| Transport | Link requirement | Optics |
|---|---|---|
| FC-NVMe | liaisons FC propres — CRC/ITW proches de zéro, crédits non épuisés | SFP FC 16/32/64GFC, validés par le constructeur (optique FC) |
| NVMe/RoCE | zéro perte : FEC activé, PFC sur la classe RoCE, aucune erreur CRC (chaque trame perdue bloque la file RDMA avec retransmission go-back-N) | 25G SFP28 / 100G QSFP28 / 400G ; DAC en baie, SR/AOC dans la rangée, LR/DR entre salles ; FEC selon le PMD |
| NVMe/TCP | ordinaire ; la perte coûte de la latence, pas l’exactitude | toute optique Ethernet |
| NVMe/IB | comme les fabrics InfiniBand | câbles et optique IB (câblage IB) |
RoCE est le plus sensible : une liaison avec une puissance Rx limite ou un connecteur sale produit des erreurs CRC que TCP absorberait silencieusement, mais qui bloquent visiblement les files RDMA. Des pics de latence de stockage qui suivent les compteurs d’erreurs d’un port en sont le signe (puissance Rx et bilan de liaison, métriques VDM et FEC).
Choisir
| Situation | Sensible transport |
|---|---|
| SAN FC existant, baies tout-flash | FC-NVMe — même fabric, même optique, activation par cible |
| Stockage Ethernet en création, constructeurs mixtes, routage entre sites | NVMe/TCP |
| Critique en latence, Ethernet mono-constructeur, expertise sans perte en interne | NVMe/RoCE |
| Cluster HPC/IA avec un fabric IB | NVMe/IB ou systèmes de fichiers parallèles sur IB |
| Clusters GPU avec scale-out Ethernet | NVMe/RoCE ou NVMe/TCP sur un réseau de stockage séparé (fabrics GPU) |
Notes opérationnelles
- Des réseaux séparés pour le stockage et le calcul quand c’est possible — ou au moins des classes de trafic séparées ; RoCE a besoin de sa propre classe sans perte.
- MTU : 9000 sur les transports Ethernet ; cohérent de bout en bout.
- Multipath : deux fabrics ou deux VLAN/leaves ; initiateurs compatibles ANA.
- Surveillance : compteurs CRC/FEC et de pause par port, plus les tendances DDM — une optique qui se dégrade se voit dans la latence de queue bien avant de tomber en panne (surveillance).
- Firmware : les matrices de compatibilité de firmware NIC/HBA et baie comptent autant que la compatibilité de l’optique (optique dans le SAN).
Dans CodingBox
L’optique d’un fabric NVMe-oF est faite de modules FC, Ethernet ou IB ordinaires ; la différence tient à la faible quantité d’erreurs que le transport tolère. Lire l’identité et le DDM de référence au banc avant installation (Check transceiver, DDM) et coder des identités acceptées par les constructeurs de la baie et du commutateur (verrouillage constructeur) sont les parties du travail qui touchent au programmateur.
Les adaptateurs sur lesquels ces fabrics s’exécutent — NIC 100G/200G, leurs cages, limites PCIe et politiques de module : NIC à ports optiques.