NVMe over Fabrics: FC-NVMe, NVMe/TCP, NVMe/RoCE i ich optyka
NVMe zastąpiło SCSI wewnątrz serwera, ponieważ flash jest na tyle szybki, że ujawnia narzut protokołu; NVMe over Fabrics (NVMe-oF) przenosi ten sam zestaw poleceń przez sieć, tak by współdzielony storage mógł nadążyć. Działa na trzech transportach, które odpowiadają trzem rodzajom sieci — a więc trzem rodzajom optyki i trzem zestawom reguł warstwy fizycznej. Ta strona je porównuje i mówi, czego każdy z nich wymaga od łączy.
Dlaczego NVMe-oF
| Aspekt | Era SCSI (FCP, iSCSI) | NVMe-oF |
|---|---|---|
| Kolejki poleceń | jedna kolejka, ~32–256 poleceń | do 64 tys. kolejek × 64 tys. poleceń; równoległość z założenia |
| Narzut protokołu na operację I/O | dziesiątki µs czasu CPU | kilka µs; transporty RDMA omijają CPU |
| Opóźnienie dodane przez fabric | typowo 100–200 µs | 10–30 µs (RDMA/FC), 30–80 µs (TCP) |
| Najlepsze dla | HDD i wczesnych macierzy flash | all-flash, storage rozłączony (disaggregated), potoków danych GPU |
Transporty
| Transport | Sieć | Bezstratny? | Opóźnienie | Uwagi |
|---|---|---|---|---|
| FC-NVMe (FC-NVMe-2) | Fibre Channel 16/32/64GFC | tak, dzięki kredytom | bardzo niskie | działa obok SCSI FCP na tym samym fabric i tych samych SFP; zoning i serwer nazw bez zmian (Podstawy protokołu FC) |
| NVMe/RoCE v2 | Ethernet 25/100/200/400G z kartami NIC RDMA | wymaga PFC/ECN (DCQCN) | bardzo niskie | verbs RDMA po UDP/IP; wymaga bezstratnej konfiguracji od końca do końca (Ethernet bezstratny) |
| NVMe/TCP | dowolny Ethernet/IP | nie — utratą zajmuje się TCP | niskie–średnie | bez specjalnych kart NIC ani funkcji przełącznika; trasowalny; wybór objętościowy dla przedsiębiorstw |
| NVMe/IB | InfiniBand | tak, dzięki kredytom | bardzo niskie | storage HPC/AI (InfiniBand) |
Wszystkie cztery dzielą architekturę NVMe-oF: kontroler wykrywania informuje hosty, jakie podsystemy istnieją; hosty podłączają kolejki do kontrolerów I/O; ANA (asymmetric namespace access) obsługuje multipath.
Czego każdy z nich wymaga od warstwy fizycznej
| Transport | Wymaganie wobec łącza | Optyka |
|---|---|---|
| FC-NVMe | czyste łącza FC — CRC/ITW bliskie zeru, kredyty niewyczerpane | SFP FC 16/32/64GFC, zwalidowane przez producenta (Optyka FC) |
| NVMe/RoCE | zero strat: FEC włączony, PFC na klasie RoCE, brak błędów CRC (każda utracona ramka blokuje kolejkę RDMA retransmisją Go-Back-N) | 25G SFP28 / 100G QSFP28 / 400G; DAC w szafie, SR/AOC w rzędzie, LR/DR między pomieszczeniami; FEC zależny od PMD |
| NVMe/TCP | zwyczajne; utrata kosztuje opóźnienie, nie poprawność | dowolna optyka Ethernet |
| NVMe/IB | jak fabric InfiniBand | kable i optyka IB (Okablowanie IB) |
RoCE jest tym wrażliwym: łącze z mocą Rx na granicy parametrów albo brudnym złączem generuje błędy CRC, które TCP wchłonąłby po cichu, ale które w sposób widoczny blokują kolejki RDMA. Skoki opóźnień storage podążające za licznikami błędów portu są tego oznaką (Moc Rx i budżet mocy łącza, Metryki VDM i FEC).
Wybór
| Sytuacja | Rozsądny transport |
|---|---|
| Istniejąca SAN FC, macierze all-flash | FC-NVMe — ten sam fabric, ta sama optyka, włączane dla każdego targetu |
| Nowa instalacja storage Ethernet (greenfield), różni producenci, trasowanie między lokalizacjami | NVMe/TCP |
| Krytyczne opóźnienie, Ethernet jednego producenta, własna wiedza o sieciach bezstratnych | NVMe/RoCE |
| Klaster HPC/AI z fabric IB | NVMe/IB albo równoległe systemy plików po IB |
| Klastry GPU z rozbudową scale-out po Ethernet | NVMe/RoCE albo NVMe/TCP w osobnej sieci storage (Fabric GPU) |
Uwagi eksploatacyjne
- Oddzielne sieci dla storage i compute tam, gdzie to możliwe — albo przynajmniej oddzielne klasy ruchu; RoCE potrzebuje własnej bezstratnej klasy.
- MTU: 9000 w transportach Ethernet; spójne od końca do końca.
- Multipath: dwa fabric albo dwa VLAN-y/leaf; inicjatory ze wsparciem ANA.
- Monitorowanie: liczniki CRC/FEC i pauzy dla każdego portu, plus trendy DDM — degradująca się optyka objawia się skrajnymi opóźnieniami na długo przed awarią (Monitorowanie).
- Firmware: matryce zgodności firmware kart NIC/HBA i macierzy storage liczą się tak samo, jak zgodność optyki (Optyka w SAN).
W CodingBox
Optyka fabric NVMe-oF to zwykłe moduły FC, Ethernet albo IB; różnica polega na tym, jak mało błędów toleruje transport. Odczyt danych identyfikacyjnych i bazowego DDM na stanowisku przed instalacją (Check transceiver, DDM) oraz kodowanie tożsamości akceptowanych przez producentów macierzy i przełącznika (Blokada producenta) to części pracy, w których uczestniczy programator.
Adaptery, na których działają te fabric — karty NIC 100G/200G, ich klatki, limity PCIe i polityki modułów: NIC z portami optycznymi.