NVMe over Fabrics: FC-NVMe, NVMe/TCP, NVMe/RoCE e la loro ottica · Sistemi di storage · Tecnologie · Documentazione · CodingBox
CodingBox Documentazione

NVMe over Fabrics: FC-NVMe, NVMe/TCP, NVMe/RoCE e la loro ottica

NVMe ha sostituito SCSI dentro il server perché la flash è abbastanza veloce da esporre l’overhead del protocollo; NVMe over Fabrics (NVMe-oF) porta lo stesso set di comandi attraverso una rete, così lo storage condiviso può tenere il passo. Funziona su tre trasporti che corrispondono a tre tipi di rete — e quindi tre tipi di ottiche e tre insiemi di regole del livello fisico. Questa pagina li confronta e dice cosa richiede ciascuno ai collegamenti.

Perché NVMe-oF

AspettoEra SCSI (FCP, iSCSI)NVMe-oF
Code di comandiuna coda, ~32–256 comandifino a 64k code × 64k comandi; parallelo per progettazione
Overhead di protocollo per I/Odecine di µs di tempo CPUpochi µs; i trasporti RDMA bypassano la CPU
Latenza aggiunta dalla fabric100–200 µs tipici10–30 µs (RDMA/FC), 30–80 µs (TCP)
Ideale perarray HDD e flash di prima generazioneall-flash, storage disaggregato, pipeline dati GPU

I trasporti

TrasportoReteLossless?LatenzaNote
FC-NVMe (FC-NVMe-2)Fibre Channel 16/32/64GFCsì, a creditimolto bassafunziona insieme a SCSI FCP sulla stessa fabric e gli stessi SFP; zoning e name server invariati (Nozioni di base del protocollo FC)
NVMe/RoCE v2Ethernet 25/100/200/400G con NIC RDMArichiede PFC/ECN (DCQCN)molto bassaverbs RDMA su UDP/IP; serve una configurazione lossless end-to-end (Ethernet lossless)
NVMe/TCPqualsiasi Ethernet/IPno — TCP gestisce la perditabassa–medianessuna NIC o funzionalità switch speciale; instradabile; la scelta più diffusa in ambito enterprise
NVMe/IBInfiniBandsì, a creditimolto bassastorage HPC/AI (InfiniBand)

Tutti e quattro condividono l’architettura NVMe-oF: un controller di discovery comunica agli host quali subsystem esistono; gli host collegano le code ai controller I/O; ANA (asymmetric namespace access) gestisce il multipath.

Cosa richiede ciascuno al livello fisico

TrasportoRequisito del collegamentoOttiche
FC-NVMecollegamenti FC puliti — CRC/ITW vicino a zero, crediti non esauritiSFP FC 16/32/64GFC, validati dal produttore (Ottiche FC)
NVMe/RoCEzero perdite: FEC attivo, PFC sulla classe RoCE, nessun errore CRC (ogni frame perso blocca la coda RDMA con ritrasmissione go-back-N)25G SFP28 / 100G QSFP28 / 400G; DAC in rack, SR/AOC in fila, LR/DR tra sale; FEC per PMD
NVMe/TCPordinaria; la perdita costa latenza, non correttezzaqualsiasi ottica Ethernet
NVMe/IBcome le fabric InfiniBandcavi e ottiche IB (Cablaggio IB)

RoCE è quello sensibile: un collegamento con una potenza Rx al limite o un connettore sporco produce errori CRC che TCP assorbirebbe silenziosamente ma che bloccano visibilmente le code RDMA. I picchi di latenza dello storage che seguono i contatori di errore di una porta sono il segnale rivelatore (Potenza Rx e bilancio del collegamento, Metriche VDM e FEC).

Come scegliere

SituazioneTrasporto consigliato
SAN FC esistente, array all-flashFC-NVMe — stessa fabric, stesse ottiche, abilita per target
Storage Ethernet greenfield, fornitori misti, routing tra sediNVMe/TCP
Critico per la latenza, Ethernet a fornitore unico, competenza lossless internaNVMe/RoCE
Cluster HPC/AI con fabric IBNVMe/IB o file system paralleli su IB
Cluster GPU con scale-out EthernetNVMe/RoCE o NVMe/TCP su una rete di storage separata (Fabric GPU)

Note operative

  • Reti separate per storage e compute dove possibile — o almeno classi di traffico separate; RoCE ha bisogno di una propria classe lossless.
  • MTU: 9000 sui trasporti Ethernet; coerente end-to-end.
  • Multipath: due fabric oppure due VLAN/leaf; initiator con supporto ANA.
  • Monitoraggio: contatori CRC/FEC e di pausa per porta, più gli andamenti del DDM — un’ottica in degrado si manifesta come latenza di coda molto prima di guastarsi (Monitoraggio).
  • Firmware: le matrici di compatibilità del firmware di NIC/HBA e array contano quanto la compatibilità delle ottiche (Le ottiche nella SAN).

In CodingBox

Le ottiche di una fabric NVMe-oF sono normali moduli FC, Ethernet o IB; la differenza è quanto poco errore tollera il trasporto. Leggere l’identità e il DDM di baseline sul banco prima dell’installazione (Check transceiver, DDM) e codificare identità che i produttori di array e switch accettano (Blocco del produttore) sono le parti del lavoro che riguardano il programmatore.

Gli adattatori su cui girano queste fabric — NIC 100G/200G, le loro gabbie, i limiti PCIe e le policy dei moduli: NIC con porte ottiche.


Se trovi un’imprecisione o un errore in questo articolo, seleziona il passaggio corrispondente e premi Ctrl+Enter per .