Wirtualizacja sieci (NVMe-oF i RDMA): jak wykorzystać NVMe over Fabrics w domowym lub laboratoryjnym środowisku
Wirtualizacja sieci (NVMe-oF i RDMA): jak wykorzystać NVMe over Fabrics w domowym lub laboratoryjnym środowisku
NVMe-oF (NVMe over Fabrics) to technologia umożliwiająca udostępnianie dysków NVMe przez sieć z opóźnieniami zbliżonymi do lokalnych urządzeń PCIe.
W połączeniu z protokołami RDMA (Remote Direct Memory Access), takimi jak RoCE v2 lub iWARP, można zbudować domowe lub laboratoryjne środowisko storage o wydajności klasy enterprise — bez inwestowania w drogi sprzęt.
Coraz więcej zaawansowanych użytkowników, administratorów i pentesterów buduje własne laby testowe z NVMe-oF, aby badać:
- wirtualizację storage,
- wydajność sieci niskich opóźnień,
- klastrowanie maszyn,
- konteneryzację i systemy Kubernetes,
- środowiska serwerowe Linux i Windows.
Ten artykuł to praktyczny przewodnik, jak skonfigurować NVMe-oF i RDMA w domowych warunkach.
Czym jest NVMe-oF?
NVMe over Fabrics umożliwia dostęp do zdalnego dysku NVMe z tak małym narzutem, że system widzi go prawie jak lokalny nośnik.
Obsługiwane transporty to:
- RDMA (RoCE v2, iWARP) – najniższe opóźnienia, najwyższa przepustowość,
- TCP – największa kompatybilność, minimalne wymagania,
- Fibre Channel – stosowane w dużych firmach, w domu raczej nie.
W warunkach domowych najlepsze do NVMe-oF jest RoCE v2, ponieważ oferuje:
- opóźnienia rzędu mikrosekund,
- bardzo niskie zużycie CPU,
- dużą stabilność w wirtualizacji (KVM, Proxmox, Hyper-V).

Co daje NVMe-oF w domowym labie?
✔ Wydajny zdalny dysk NVMe dla:
- Proxmox / KVM / Xen
- ESXi
- Hyper-V
- Linux bare-metal
- Windows 11 / Windows Server
✔ Możliwość centralizacji storage:
- jeden szybki „serwer NVMe” → wiele klientów
- idealne dla klastrów HA, Ceph, Kubernetes
✔ Realistyczne środowisko testowe bez drogich macierzy SAN
✔ Wsparcie dla technologii enterprise:
- multipath
- failover
- load balancing
- QoS sieciowy
RDMA (RoCE v2 vs iWARP) – co wybrać?
| Protokół | Zalety | Wady |
|---|---|---|
| RoCE v2 | Najniższe opóźnienia, najlepsza wydajność, szeroka dostępność kart | Wymaga konfiguracji PFC/ECN na switchu |
| iWARP | Działa na każdym switchu Ethernet bez konfiguracji | Wyższe opóźnienia, mniejsza popularność |
| TCP (NVMe/TCP) | Wystarczy dowolna sieć, łatwa konfiguracja | Wyższe opóźnienia, większy narzut CPU |
Do domowego labu polecam:
➤ RoCE v2 jeśli masz:
- switch z obsługą PFC lub ECN,
- karty 10/25/40/100 GbE z RDMA (Mellanox, Chelsio, Broadcom).
➤ NVMe/TCP jeśli nie masz sprzętu RDMA
To ciągle bardzo szybka metoda, dużo lepsza niż iSCSI.
Minimalny sprzęt do NVMe-oF w domu
1. Serwer lub PC z NVMe (idealnie PCIe 4.0/5.0)
- 1–2 szybkie dyski NVMe
- najlepiej konfiguracja RAID1/RAID10
2. Karty sieciowe RDMA
Najlepszy wybór:
- Mellanox ConnectX-3, 4, 5 (RoCE) – bardzo tanie na rynku wtórnym
- Chelsio T5/T6 (iWARP)
- Intel E810 (RoCE + iWARP)
3. Switch z obsługą:
- Priority Flow Control (PFC)
- ECN (Explicit Congestion Notification)
Dla RoCE niezbędne są co najmniej PFC na portach NVMe-oF.
4. Sieć ≥ 10 Gb/s
W praktyce NVMe-oF „oddycha” dopiero przy:
- 25 GbE – idealny kompromis
- 40/100 GbE – pełna wydajność NVMe
Konfiguracja NVMe-oF w Linux (domowy serwer storage)
Instalacja narzędzi NVMe:
sudo apt install nvme-cli
sudo apt install nvmetcli
Konfiguracja przestrzeni NVMe-oF:
- Tworzymy namespace:
nvmetcli
- Tworzymy subsystem:
/subsystems/mynvme
attr:
allow_any_host = 1
- Dodajemy NVMe jako backend:
/subsystems/mynvme/namespaces/1
device_path = /dev/nvme0n1
- Konfigurujemy transport RDMA:
/ports/1
addr:
trtype = rdma
traddr = <IP-serwera>
trsvcid = 4420
Zapisujemy:
nvmetcli save
Konfiguracja klienta NVMe-oF w Linux
sudo nvme connect \
-t rdma \
-n mynvme \
-a <IP-serwera> \
-s 4420
Po połączeniu:
nvme list
Dysk NVMe pojawi się jako:
/dev/nvme1n1
i można go formatować, montować, używać na VM — jak lokalny.
NVMe-oF w Windows 11 / Windows Server
Microsoft natywnie wspiera NVMe/TCP, ale RDMA wymaga sterowników OEM (np. Mellanox OFED).
Komenda Windows PowerShell:
nvme connect -transport tcp -traddr <IP> -trsvcid 4420 -n mynvme
Dysk pojawia się w „Zarządzaniu dyskami”.
Wydajność NVMe-oF — realne dane z labów domowych
Przykładowe wyniki dla RoCE v2 25 GbE:
| Operacja | Wynik |
|---|---|
| Seq read | 2,5–2,8 GB/s |
| Seq write | 2,3–2,6 GB/s |
| Random Read 4k | 500k–700k IOPS |
| Latency | 20–40 µs |
To poziom lokalnego NVMe z lekkim narzutem sieciowym.
Typowe błędy przy pierwszej konfiguracji
❌ Brak PFC → niski throughput
❌ Nieprawidłowe MTU (zbyt małe)
Najczęściej używa się MTU 9000.
❌ Zbyt słaby procesor na serwerze NVMe
NVMe-oF generuje duże obciążenie QD (queue depth).
❌ Używanie kabla 1 GbE
NVMe-oF nie działa sensownie na 1 GbE.
Idealne zastosowania domowe i laboratoryjne
- osobna szybka przestrzeń storage dla VM
- testowanie klastrów HA (Proxmox, Kubernetes)
- domowy NAS klasy enterprise
- środowiska DevOps / CI/CD
- testy sieci RDMA
- serwery gier i aplikacji wymagających I/O
- eksperymenty z wirtualizacją storage i SDS
Podsumowanie
NVMe-oF i RDMA to technologie, które jeszcze kilka lat temu były dostępne tylko w drogich macierzach SAN, dziś zaś można je uruchomić za kilka–kilkanaście stów w domowym labie.
Dają:
- minimalne opóźnienia,
- ogromną przepustowość,
- niskie zużycie CPU,
- perfekcyjną wydajność dla wirtualizacji,
- realistyczne środowisko testowe dla administratorów i devopsów.
To must-have dla każdego, kto chce budować nowoczesne, wydajne środowiska storage w domu lub w małym laboratorium testowym.






