NVMe over Fabrics: FC-NVMe, NVMe/TCP, NVMe/RoCE und ihre Optik
NVMe hat SCSI im Server abgelöst, weil Flash schnell genug ist, um den Protokoll-Overhead sichtbar zu machen; NVMe over Fabrics (NVMe-oF) trägt denselben Befehlssatz über ein Netz, damit gemeinsam genutzter Storage mithalten kann. Es läuft über drei Transporte, die auf drei Netzarten abgebildet sind — und damit auf drei Arten von Optik und drei Regelwerke für die physikalische Schicht. Diese Seite vergleicht sie und sagt, was jeder davon von den Links verlangt.
Warum NVMe-oF
| Aspekt | SCSI-Ära (FCP, iSCSI) | NVMe-oF |
|---|---|---|
| Command-Queues | eine Queue, ~32–256 Commands | bis zu 64k Queues × 64k Commands; von Grund auf parallel |
| Protokoll-Overhead je I/O | einige zehn µs CPU-Zeit | wenige µs; RDMA-Transporte umgehen die CPU |
| von der Fabric hinzugefügte Latenz | typisch 100–200 µs | 10–30 µs (RDMA/FC), 30–80 µs (TCP) |
| Am besten für | HDD und frühe Flash-Arrays | All-Flash, disaggregierten Storage, GPU-Datenpipelines |
Die Transporte
| Transport | Netz | Verlustfrei? | Latenz | Hinweise |
|---|---|---|---|---|
| FC-NVMe (FC-NVMe-2) | Fibre Channel 16/32/64GFC | ja, über Credits | sehr niedrig | läuft neben SCSI-FCP auf derselben Fabric und denselben SFPs; Zoning und Name Server unverändert (FC-Protokollgrundlagen) |
| NVMe/RoCE v2 | Ethernet 25/100/200/400G mit RDMA-NICs | benötigt PFC/ECN (DCQCN) | sehr niedrig | RDMA-Verbs über UDP/IP; braucht Ende-zu-Ende verlustfreie Konfiguration (Verlustfreies Ethernet) |
| NVMe/TCP | beliebiges Ethernet/IP | nein — TCP handhabt Verluste | niedrig bis mittel | keine speziellen NICs oder Switch-Funktionen nötig; routingfähig; die Massenwahl für Enterprise |
| NVMe/IB | InfiniBand | ja, über Credits | sehr niedrig | HPC-/KI-Storage (InfiniBand) |
Alle vier teilen sich die NVMe-oF-Architektur: Ein Discovery Controller teilt Hosts mit, welche Subsysteme existieren; Hosts verbinden (connect) Queues mit I/O-Controllern; ANA (Asymmetric Namespace Access) übernimmt Multipathing.
Was jeder von der physikalischen Schicht verlangt
| Transport | Link-Anforderung | Optik |
|---|---|---|
| FC-NVMe | saubere FC-Links — CRC/ITW nahe null, Credits nicht erschöpft | FC-SFPs 16/32/64GFC, herstellervalidiert (FC-Optik) |
| NVMe/RoCE | Nullverlust: FEC aktiv, PFC auf der RoCE-Klasse, keine CRC-Fehler (jeder verlorene Frame blockiert die RDMA-Queue mit Go-Back-N-Neuübertragung) | 25G SFP28 / 100G QSFP28 / 400G; DAC im Rack, SR/AOC in der Reihe, LR/DR zwischen Räumen; FEC je PMD |
| NVMe/TCP | gewöhnlich; Verluste kosten Latenz, nicht Korrektheit | beliebige Ethernet-Optik |
| NVMe/IB | wie InfiniBand-Fabrics | IB-Kabel und -Optik (IB-Verkabelung) |
RoCE ist der empfindliche Fall: Ein Link mit grenzwertiger Rx-Leistung oder einem verschmutzten Steckverbinder erzeugt CRC-Fehler, die TCP stillschweigend auffangen würde, die aber RDMA-Queues sichtbar blockieren. Storage-Latenzspitzen, die den Fehlerzählern eines Ports folgen, sind das Erkennungszeichen (Rx-Leistung & Leistungsbudget, VDM- und FEC-Metriken).
Auswahl
| Situation | Sinnvoller Transport |
|---|---|
| Bestehendes FC-SAN, All-Flash-Arrays | FC-NVMe — dieselbe Fabric, dieselbe Optik, je Target aktivieren |
| Neuaufbau Ethernet-Storage, gemischte Hersteller, Routing zwischen Standorten | NVMe/TCP |
| Latenzkritisch, Ethernet von einem Hersteller, Verlustfrei-Expertise im Haus | NVMe/RoCE |
| HPC-/KI-Cluster mit IB-Fabric | NVMe/IB oder parallele Dateisysteme über IB |
| GPU-Cluster mit Ethernet-Scale-out | NVMe/RoCE oder NVMe/TCP in einem separaten Storage-Netz (GPU-Fabrics) |
Hinweise zum Betrieb
- Getrennte Netze für Storage und Compute, wo möglich — oder zumindest getrennte Verkehrsklassen; RoCE braucht seine eigene verlustfreie Klasse.
- MTU: 9000 auf Ethernet-Transporten; Ende-zu-Ende konsistent.
- Multipath: zwei Fabrics oder zwei VLANs/Leaves; ANA-fähige Initiatoren.
- Monitoring: CRC-/FEC- und Pause-Zähler je Port sowie DDM-Trends — eine degradierende Optik zeigt sich als Tail-Latenz lange bevor sie ausfällt (Monitoring).
- Firmware: Kompatibilitätsmatrizen für NIC-/HBA- und Array-Firmware zählen ebenso wie Optik-Kompatibilität (Optik im SAN).
In CodingBox
Die Optik einer NVMe-oF-Fabric besteht aus gewöhnlichen FC-, Ethernet- oder IB-Modulen; der Unterschied liegt darin, wie wenig Fehler der Transport toleriert. Das Auslesen von Identität und Baseline-DDM auf der Werkbank vor der Installation (Check transceiver, DDM) und das Codieren von Identitäten, die Array- und Switch-Hersteller akzeptieren (Herstellersperre), sind die Teile der Arbeit, die das Programmiergerät berühren.
Die Adapter, auf denen diese Fabrics laufen — 100G/200G-NICs, ihre Käfige, PCIe-Grenzen und Modulrichtlinien: NICs mit optischen Ports.