Storage-Netzwerke
NVMe/RDMA
NVMe/RDMA trägt NVMe-over-Fabrics über RDMA-Netze (RoCEv2 oder iWARP) und erreicht per Zero-Copy und Kernel-Bypass die geringste Latenz der IP-NVMe-Transporte.
- Geringste Latenz (Zero-Copy)
- NVMe über RDMA
- RoCEv2 oder iWARP
- Multipath über ANA
- rNIC mit Hardware-Offload
NVMe/RDMA ist der RDMA-Transport von NVMe-over-Fabrics (Grundlagen siehe dort). Sein Reiz liegt in RDMA (Remote Direct Memory Access): Die RDMA-fähige Netzwerkkarte überträgt Daten direkt zwischen den Arbeitsspeichern zweier Systeme, ohne Zwischenkopien und ohne die CPU der Gegenseite zu belasten. Das ergibt sehr geringe Latenz und hohen Durchsatz.
Dieser Artikel erklärt das RDMA-Prinzip, die nutzbaren Fabrics RoCEv2 und iWARP mit ihren sehr unterschiedlichen Netzanforderungen, die nötige Hardware, das Multipathing über ANA sowie die Sicherheitslücke fehlender Transportverschlüsselung und die Gegenmaßnahmen.
1. Was RDMA leistet
RDMA erlaubt es einer Netzwerkkarte, Daten direkt in den vorab freigegebenen Speicher der Gegenstelle zu schreiben oder daraus zu lesen, am Betriebssystem-Netzwerkstack vorbei (Kernel-Bypass) und ohne die Daten zwischenzukopieren (Zero-Copy). Die CPU der Gegenseite ist am Datentransfer nicht beteiligt. Das senkt Latenz und CPU-Last drastisch und ist der Grund, warum NVMe/RDMA der schnellste IP-basierte NVMe-Transport ist.
2. Zwei Fabrics, zwei Welten: RoCEv2 und iWARP
NVMe/RDMA kann über zwei sehr unterschiedliche RDMA-Fabrics laufen (jeweils eigene Artikel):
| Fabric | Eigenschaft |
|---|---|
| RoCEv2 | RDMA über UDP/IP, routbar; verlangt verlustarmes Ethernet (PFC/ECN/DCB); in der Praxis dominant |
| iWARP | RDMA über TCP/IP; toleriert Paketverlust, kein verlustarmes Netz nötig; weniger verbreitet, höhere Latenz |
RoCEv2 braucht ein gebautes Netz
RoCEv2 hat keine effiziente eigene Verlustbehandlung und setzt deshalb verlustarmes Ethernet voraus: Priority Flow Control und ECN/DCQCN müssen über die ganze Fabric konfiguriert sein, Jumbo Frames sind üblich. Ein einziger nicht konfigurierter Switch bricht die Leistung. iWARP umgeht das über TCP, ist dafür aber langsamer und seltener.
3. Hardware und Anbindung
NVMe/RDMA setzt RDMA-fähige Netzwerkkarten (rNICs) mit Hardware-Offload voraus; eine Software-Emulation taugt nur für Tests. Adressiert wird über UDP- bzw. TCP-Port 4420. Im Linux-Kernel ist der Treiber nvme-rdma seit Version 4.8 enthalten.
Ziel über RDMA verbinden (Linux, nvme-cli)
modprobe nvme_rdma
nvme discover -t rdma -a 10.0.30.10 -s 4420
nvme connect -t rdma -a 10.0.30.10 -s 4420 -n nqn.2014-08.org.nvmexpress:uuid:... 4. Hochverfügbarkeit über ANA
Wie die anderen NVMe-oF-Transporte nutzt NVMe/RDMA ANA (Asymmetric Namespace Access) für mehrere Pfade zum selben Namespace: Das Ziel kennzeichnet optimale und nur erreichbare Pfade, der Linux-Kernel wählt nativ den besten. Eine zusätzliche Multipath-Software ist nicht erforderlich.
5. Sicherheit: die fehlende Verschlüsselung
Anders als NVMe/TCP kennt der RDMA-Transport in der Spezifikation keine eigene Verschlüsselung wie TLS. NVMe/RDMA-Verbindungen laufen im Klartext, sofern das Netz sie nicht schützt. In einem physisch getrennten, kontrollierten Storage-Fabric ist das üblich; in mandantenfähigen oder regulierten Umgebungen kommen IPsec (bei RoCEv2 über UDP/IP, auf modernen rNICs hardwarebeschleunigt) oder MACsec auf der Ethernet-Strecke hinzu. Eine In-Band-Authentifizierung wie DH-HMAC-CHAP ist beim RDMA-Transport in der Praxis nicht gegeben.
RDMA gibt Tempo, aber keine Vertraulichkeit. Außerhalb eines physisch isolierten Storage-Fabrics gehört NVMe/RDMA per IPsec oder MACsec abgesichert.
6. Stärken und Grenzen
| Stärken | Grenzen |
|---|---|
| Geringste Latenz und CPU-Last der IP-Transporte | RoCEv2 erfordert verlustarmes Ethernet (PFC/ECN) |
| Zero-Copy und Kernel-Bypass über rNIC-Offload | RDMA-fähige Hardware nötig, Software-Emulation nur für Tests |
| Routbar über RoCEv2; ANA-Multipath im Kernel | keine native Transportverschlüsselung in der Spec |
| Reife Kernel-Integration (ab Linux 4.8) | höhere Betriebskomplexität als NVMe/TCP |
| iWARP-Alternative ohne verlustarmes Netz | iWARP weniger verbreitet, kleinere NIC-Auswahl |
Häufige Fragen zu NVMe/RDMA
RoCEv2 ist verbreiteter und latenzärmer, verlangt aber ein verlustarmes Ethernet (Priority Flow Control, ECN) über die gesamte Fabric und RDMA-NICs. iWARP läuft über normales TCP und braucht kein Spezialnetz, hat dafür höhere Latenz und eine kleinere Hardware-Auswahl. Wo das Netz für RoCEv2 sauber gebaut werden kann, ist es meist die Wahl; sonst ist iWARP oder gleich NVMe/TCP einfacher.
Nicht von sich aus. Der RDMA-Transport definiert keine eigene Verschlüsselung wie das TLS von NVMe/TCP. In einem physisch isolierten Storage-Netz ist das gängige Praxis; sonst muss die Verbindung über IPsec (bei RoCEv2, auf modernen Karten hardwarebeschleunigt) oder MACsec auf Ethernet-Ebene abgesichert werden.
Auch der Autor ist nur ein Mensch, dem Fehler unterlaufen können. Wenn in diesem Beitrag etwas nicht stimmt oder unklar ist, freuen wir uns über einen kurzen Hinweis über das Kontaktformular unten, wir prüfen und korrigieren das.
Der nächste Schritt
NVMe/RDMA im eigenen Haus richtig einsetzen?
Wir klären, ob und wie der Baustein zu Ihrer Infrastruktur passt, und sagen offen, wann sich der Aufwand lohnt und wann nicht.