Redaktionens viktigaste punkter
- NVMe-oF (NVMe over Fabrics) förlänger NVMe-kommandon över nätverket — via RDMA/RoCE, TCP, InfiniBand eller Fibre Channel — så att fjärrlagrad flash känns som lokala diskar.
- I tester ger NVMe-oF över RDMA cirka 90 procent lägre latens än iSCSI: 0,082 ms mot 0,806 ms vid slumpmässig 4K-läsning, med cirka 85 procent lägre CPU-belastning.
- NVMe/TCP körs på vanlig Ethernet (port 4420) utan särskild hårdvara och är den enda transporten som är praktisk för hemlabb.
- TrueNAS har inbyggt NVMe-oF-stöd; en Linux-klient ansluter med nvme-cli och ett enda kommando.
- För de flesta hemlabb är NVMe-oF overkill — det lönar sig först med 10 GbE eller snabbare, flashlagring och parallella arbetslaster.
NVMe-oF (NVMe over Fabrics): när flashlagringen flyttar ut på nätverket
Vad är NVMe-oF egentligen?
NVMe skapades för att prata direkt med flashminne över PCIe — ett gränssnitt byggt för massiv parallellitet och mikrosekundsvarstider. Men NVMe är i grunden en lokal buss. Så fort lagringen ska delas mellan flera servrar över ett nätverk har världen fallit tillbaka på SCSI-baserade protokoll som iSCSI och Fibre Channel, utvecklade under de snurrande diskarnas era.
NVMe over Fabrics lägger till ett transportlager ovanpå NVMe-kommandosetet: samma kommandon, men kapslarna skickas över ett nätverk i stället för över PCIe. En värd (initiator) når fjärrlagrade NVMe-enheter (targets) med prestanda nära lokala diskar, och flera servrar delar samma flashpool. Tekniken standardiseras av NVM Express-organisationen.
Kärnan är köerna. SCSI har i praktiken en kommandokö per anslutning, vilket ger köbildning under belastning. NVMe stödjer upp till 64 000 köer med 64 000 kommandon vardera — och NVMe-oF behåller den modellen över nätet. För databaser och virtualisering med många parallella I/O-operationer är det den avgörande skillnaden mot iSCSI.
Fem transporter, ett protokoll
NVMe-oF är inte ett nätverksprotokoll i sig, utan ett sätt att bära NVMe över olika fabrics:
- FC-NVMe: NVMe på Fibre Channel — uppgraderingsväg för företag med befintliga FC-SAN.
- InfiniBand: RDMA på InfiniBands egen fabric, förlustfri av design. Vanligast i HPC-miljöer.
- RoCE (RDMA over Converged Ethernet): RDMA över Ethernet. Lägst latens på Ethernet, men kräver förlustfritt DCB-nät med PFC och ECN.
- iWARP: RDMA över TCP. Routningsbart och mindre känsligt än RoCE, men ovanligare.
- NVMe/TCP: NVMe över vanlig TCP (port 4420). Fungerar på vilket Ethernet som helst — hemlabbets transport.
| Transport | Bärnät | Typisk tillagd latens | Nätverkskrav | Klienthårdvara |
|---|---|---|---|---|
| RoCEv2 | Ethernet (UDP/IP) | 10–20 µs | Förlustfritt DCB (PFC + ECN) | RDMA-kapabelt nätverkskort |
| InfiniBand | InfiniBand-fabric | 3–10 µs | IB-fabric | IB-värdadapter |
| iWARP | Ethernet (TCP) | 10–25 µs | Vanligt IP-nät | RDMA-kapabelt nätverkskort |
| NVMe/TCP | Ethernet (TCP, port 4420) | 50–150 µs | Vanligt IP-nät | Vanligt nätverkskort |
| FC-NVMe | Fibre Channel | 10–25 µs | FC-fabric | FC-värdadapter |
NVMe-oF mot iSCSI: siffrorna som spelar roll
iSCSI (SCSI över TCP/IP, port 3260) har varit standard för IP-SAN i över femton år. NVMe/TCP är dess arvtagare: samma vanliga Ethernet, men NVMe-kommandon med parallella köer i stället för SCSI:s enkla kömodell. På identisk hårdvara blir skillnaden tydlig:
| Mätvärde (4K-block) | NVMe-oF över RDMA | NVMe-oF över TCP | iSCSI |
|---|---|---|---|
| Läs-IOPS | 1 558 000 | 1 503 000 | 1 272 000 |
| Läslatens | 0,082 ms | 0,382 ms | 0,806 ms |
| Skrivlatens | 0,055 ms | 0,260 ms | 0,906 ms |
| CPU vid läsning | 7 % | 19 % | 47 % |
| CPU vid skrivning | 5 % | 12 % | 42 % |
Siffrorna, från StarWinds jämförelse (april 2024), visar att NVMe-oF över RDMA ger cirka 90 procent lägre latens än iSCSI och cirka 85 procent lägre CPU-belastning tack vare hårdvaruavlastning. Även NVMe/TCP — helt i mjukvara — halverar latensen och använder mindre än hälften så mycket CPU. Protokollets stora vinst är effektivitet, inte bara toppfart.
I hantering skiljer sig adresseringen: iSCSI använder IQN-namn på port 3260, NVMe-oF NQN-namn med port 4420 för TCP. Båda stöder autentisering, men isolera lagringstrafiken i ett dedikerat VLAN.
Var används NVMe-oF i dag?
Företags-SAN och disaggregerad lagring
Det klassiska användningsområdet är all-flash-arrayer som exponerar NVMe-namespaces över FC-NVMe eller RoCE till databaskluster med krav på svarstider under 100–200 mikrosekunder. Parallellt växer disaggregerad lagring, där beräkning och lagring skalas oberoende: moln och Kubernetes-miljöer bygger rena lagringsnoder som nås via NVMe/TCP eller RoCE. NVMe/TCP passar i containermiljöer eftersom det är CSI-vänligt och inte kräver särskild fabric-hantering.
AI, HPC och latenskritiska databaser
I AI/ML-kluster laddar GPU-servrar enorma dataset och skriver checkpoints mot delad lagring — arbetslaster där RDMA:s låga CPU-kostnad per I/O verkligen märks, inte minst eftersom RDMA-nätverkskort ofta redan finns i GPU-klustren. NVIDIAs GPUDirect Storage bygger en direkt datapath mellan lagring och GPU-minne. I högfrekvenshandel motiverar RDMA:s deterministiska latens investeringen i förlustfria fabrics — samma logik gäller tier-0-databaser.
NVMe/TCP i hemlabbet: så kommer du igång
NVMe/TCP kräver ingen exotisk hårdvara — bara ett hyfsat snabbt Ethernet-nätverk och programvara som redan finns i Linux-kärnan. TrueNAS har inbyggt NVMe-oF-stöd: aktivera tjänsten under System → Services, skapa ett subsystem under Sharing → NVMe-oF Subsystems, lägg till en zvol som namespace och anteckna subsystemets NQN. Det finns även ett officiellt TrueNAS-plugin för Proxmox som provisionerar NVMe/TCP-lagring direkt till klustrets noder.
sudo apt-get install -y nvme-cli
sudo modprobe nvme-tcp
sudo nvme connect -t tcp -a 192.0.2.10 -s 4420 -n nqn.2026-01.exempel.lagring:ssd-pool
Efter anslutningen dyker enheten upp som till exempel /dev/nvme1n1 och beter sig som en lokal disk. För bestående montering efter omstart, lägg till _netdev i fstab så att systemet väntar på nätverket. Viktigt: NVMe/TCP gör inte snurrande diskar snabbare — protokollet ger en effektivare väg för parallella arbetslaster, men poolens fysiska medier sätter taket.
Hårdvarukrav: vad behöver du egentligen?
För NVMe/TCP: i princip ingenting utöver ett vettigt nätverk. Ett vanligt 10 eller 25 GbE-nätverkskort räcker; processorn sköter TCP-stacken i mjukvara. På 25 GbE hamnar latensen kring 60–80 mikrosekunder — fullt tillräckligt för VM-lagring i ett hemlabb.
För RoCE stiger ribban: RDMA-kapabla nätverkskort, exempelvis NVIDIAs ConnectX-serie, i båda ändar, en switch med Data Center Bridging samt korrekt PFC och ECN. Utan förlustfritt nätverk kollapsar RDMA-prestandan — felkonfigurerad RoCE presterar sämre än vanlig NVMe/TCP.
FC-NVMe kräver Fibre Channel-adaptrar och FC-switchar — utmärkt teknik, men ekosystemet är prissatt för företag och ointressant för hemlabbet.
När är NVMe-oF overkill?
I de flesta hemlabb, ärligt talat. Med 1 GbE-nätverk är nätet — inte protokollet — flaskhalsen, och då räcker iSCSI eller NFS. Serverar en ensam NAS mest filer är blockprotokoll fel verktyg. Och med mekaniska diskar i poolen vinner du nästan ingenting — diskarna svarar i millisekunder oavsett transport.
NVMe-oF blir intressant när tre saker gäller samtidigt: nätverket är 10 GbE eller snabbare, lagringen är flashbaserad och arbetslasten är parallell — till exempel ett Proxmox-kluster med många virtuella maskiner mot en separat TrueNAS-nod. Då är NVMe/TCP ett reellt lyft över iSCSI till noll extra kostnad.
Slutsats: praktiska köpråd
Börja med NVMe/TCP. Det kostar inget extra, körs på befintlig Ethernet och ger märkbart lägre latens och CPU-belastning än iSCSI för flashlagring. Tröskeln är ett kommando, inte en inköpsorder.
Köp RDMA-hårdvara bara vid ett mätbart latenskrav under cirka 100 mikrosekunder. I hemlabbet gör samma pengar mer nytta i fler eller snabbare SSD:er, eller i ett steg från 10 till 25 GbE.
Välj NVMe/TCP framför iSCSI för nya installationer med flashlagring, men låt befintliga iSCSI-miljöer vara. Undvik Fibre Channel helt i labbmiljö.
Den viktigaste regeln: protokollet är aldrig snabbare än sitt svagaste led. NVMe-oF över ett överbelastat 1 GbE-nät mot en HDD-pool är fortfarande långsamt — bara med en finare akronym. Matcha transport, nätverk och medier med varandra.