I vendor di storage dei dati aziendali oggi non fanno altro che parlare di NVMe.
C'è una buona ragione per tutto questo fragore. L'implementazione di NVMe (NVM Express) come protocollo di trasferimento dei dati end-to-end in un ambiente SAN può migliorare significativamente la capacità di trasmissione e ridurre la latenza, offrendo un'esperienza nettamente migliore agli utenti. Tuttavia, la parte "end-to-end" è fondamentale; sfortunatamente, molti dei prodotti di storage dei dati NVMe ora sul mercato offrono solo una piccola parte dei potenziali miglioramenti delle performance di NVMe.
Questo perché lo standard di trasferimento dei dati NVMe prevede due aspetti distinti:
- Protocollo "back-end" fra il supporto flash e lo storage controller
- Protocollo "front-end" tra l'host e lo storage controller in tutto il Data Fabric, ovvero come NVMe over Fabrics (NVMe-oF)
Il motivo per cui è importante andare oltre la superficie è che nella maggior parte dei casi meno del 20% del potenziale aumento della velocità della tecnologia NVMe deriva dall'utilizzo di supporti NVMe back-end, con l'80% o più dei benefici derivanti dall'utilizzo di NVMe-oF per sostituire i protocolli di trasferimento dati front-end basati su SCSI. Alcuni blog di marketing per data center sono abbastanza banali, quindi è opportuno verificare se il sistema storage in questione esegue effettivamente NVMe-oF piuttosto che semplici supporti flash NVMe back-end.
L'aggiunta del massimo parallelismo di NVMe al data fabric preannuncia enormi miglioramenti nelle performance. Pertanto, la domanda cui devono far fronte leader e architetti dell'IT è quale tipo di fabric adottare, considerando le enormi differenze in termini di performance, affidabilità e costi.
Fin dall'inizio, nel 2016, lo standard NVMe-oF è stato progettato per garantire che il set di comandi NVMe potesse essere trasportato dalla più ampia varietà possibile di fabric e trasporti di rete.
Tre tipi principali di fabric
Oggi, i principali protocolli di trasferimento dei dati del mondo IT sono:
- Fibre Channel (FC). Il protocollo dominante per il trasferimento dei dati tra dispositivi di storage e server, utilizzato dalla maggior parte dei sistemi SAN aziendali.
- RDMA (Remote Direct Memory Access). Vari modi di accedere direttamente alla memoria tra i sistemi informatici senza affidarsi al sistema operativo.
- Protocollo TCP/IP (Transmission Control Protocol/Internet Protocol). Utilizzo del protocollo di trasporto TCP per la trasmissione di dati attraverso le reti IP, proprio come Internet.
I tre tipi corrispondenti di fabric supportati da NVMe sono:
- NVMe/FC. Il set di comandi NVMe incapsulato in frame FC. Si basa su processi FC comuni come la suddivisione in zone ed è compatibile senza alcun problema con l'attuale protocollo FC standard, in cui i set di comandi SCSI sono incapsulati in frame FC.
- NVMe over RoCE (NVMe/RoCE), InfiniBand e iWARP. Un'alternativa che si sta facendo strada è RoCE v2, che utilizza RDMA su una Converged Ethernet fisica (Data Center Bridging lossless Ethernet Network).
- NVMe over TCP (NVMe/TCP). NVMe trasportato all'interno di datagrammi TCP su Ethernet come trasporto fisico. Anche se sia RoCE che NVMe/TCP utilizzano l'Ethernet, NVMe/TCP si comporta in modo più simile a NVMe/FC perché entrambi utilizzano la semantica della messaggistica per l'I/O.
Diamo uno sguardo alla tecnologia alla base di questi tre modi di implementare NVMe attraverso un data fabric, per poi esaminare i pro e i contro di ogni approccio.
Cosa rende NVMe così veloce?
I principali protocolli di trasferimento dati utilizzati attualmente dai sistemi SAN sono FC, iSCSI e FCoE. D'ora in poi è possibile ignorare questi acronimi perché sono tutti basati su SCSI, una serie di standard di interfaccia degli anni '70 progettati per dischi floppy e unità disco rigido.
Lo standard NVMe è stato sviluppato nell'ultimo decennio ed è specificatamente ideato per sfruttare al massimo la memoria flash, i dischi a stato solido (SSD), gli SSD NVMe-attached e persino le tecnologie di storage che non sono ancora state inventate. Anziché la singola coda di comandi di SCSI (con una profondità di 32 comandi), NVMe supporta 65mila code con 65mila comandi per coda, il che significa che è possibile eseguire un numero molto maggiore di comandi contemporaneamente.
Le prime iterazioni di NVMe si sono concentrate sull'ottimizzazione dell'I/O tra un computer host e un supporto NVMe locale, connessi tramite un bus PCIe (Peripheral Component Interconnect Express) ad alta velocità. Con l'evoluzione alla tecnologia NVMe-oF, uno dei principali obiettivi di progettazione era garantire che supportasse la più ampia varietà possibile di protocolli di fabric e di rete. Oggi questo significa tre principali protocolli di trasferimento dati: NVMe/FC, NVMe over RDMA (NVMe/RDMA) e NVMe/TCP.
NVME/FC
La velocità, l'efficienza e la disponibilità costantemente elevate dei sistemi SAN basati su FC li rendono la scelta ideale a cui affidare i carichi di lavoro mission-critical per la maggior parte delle aziende.
- NVME/FC
- Pro:
- La tecnologia NVMe/FC offre miglioramenti e riduzioni delle performance molto elevati nelle latenze dei carichi di lavoro.
- Il protocollo FC è stabile, maturo, efficiente e ad alta velocità e offre performance costantemente elevate.
- I sistemi storage NetApp® AFF A300, AFF A700s e AFF A800 attualmente disponibili possono ospitare e supportare contemporaneamente il traffico NVMe/FC e FC utilizzando gli stessi componenti fabric (HBA, switch e così via), in modo che gli utenti possano facilmente passare da FC a NVMe/FC.
- Con le soluzioni NetApp NVMe, non sono necessarie modifiche applicative per implementare NVMe/FC, pertanto non sono richiesti aggiornamenti integrali.
- Lo standard offre storage ad alta disponibilità (HA) con un potenziamento NVMe Asymmetric Namespace Access (ANA), sviluppato da NetApp e che ha contribuito alla specifica NVMe.
- NVMe/FC è più maturo delle altre opzioni NVMe-oF, con l'ecosistema più ampio ora presente nell'universo NVMe-oF.
- Le organizzazioni che vogliono iniziare a testare o implementare NVMe/FC possono farlo semplicemente effettuando l'aggiornamento a NetApp ONTAP® 9.4 o versione successiva e aggiungendo una licenza NVMe/FC.
- Contro:
- Come tutte le offerte NVMe, NVMe/FC è così nuovo che l'ecosistema di sistemi operativi, host bus adapter (HBA) e switch supportati è ancora relativamente contenuto.
- NVMe/FC dispone di un ecosistema più ampio di RoCE v2, ma è ancora molto piccolo rispetto al più maturo protocollo FC.
- NVMe/FC fa affidamento su un fabric FC e pertanto potrebbe non essere adatto alle organizzazioni che non hanno un fabric FC o stanno cercando di abbandonare i fabric FC.
RDMA
RDMA è un modo per scambiare dati tra la memoria principale di due computer in una rete senza coinvolgere il processore, la cache o il sistema operativo di nessuno dei due computer. Poiché RDMA bypassa il sistema operativo, è generalmente il meccanismo a più alto e più basso overhead per la comunicazione dei dati attraverso una rete.
Le principali varianti di RDMA nel computing aziendale sono due: InfiniBand e RDMA over Converged Ethernet (RoCE).
NVMe Over InfiniBand (NVMe/IB)
InfiniBand è stata una delle prime implementazioni di RDMA ed è nota per le performance incredibilmente veloci. NetApp fornisce array ibridi E-Series e all-flash che supportano InfiniBand 100Gbps GB dal 2017, offrendo una latenza inferiore a 100 microsecondi per carichi di lavoro di analisi dei big data. Nonostante i suoi vantaggi, InfiniBand non è così popolare come il suo parente stretto, RoCE, né come lo standard FC Enterprise.
- NVMe/IB
- Pro:
- Protocollo molto veloce.
- Ampiamente utilizzato nelle analisi dei big data (ad esempio, carichi di lavoro Hadoop) e nel calcolo scientifico.
- Contro:
- Costoso; non supportato da molti fornitori.
- Non si scala facilmente.
- Non presente nella maggior parte degli ambienti informatici aziendali generici.
RoCE v2
Tra i protocolli RDMA, il concorrente emergente è RoCE, che viene eseguito su Converged Ethernet, una serie di miglioramenti di data center bridging (DCB) al protocollo Ethernet che mirano a renderlo senza perdita. RoCE v1 opera al livello 2, il livello di collegamento dati nel modello OSI (Open Systems Interconnection). Pertanto, non prevede l'instradamento tra sottoreti, di conseguenza supporta solo la comunicazione tra due host nella stessa rete Ethernet. RoCE v2 è molto più utile perché utilizza UDP (User Datagram Protocol) quindi, come NVMe/TCP, opera al livello OSI 3 e può essere instradato.
- NVMe/RoCE v2
- Pro:
- La tecnologia NVMe/RoCE utilizza una rete Ethernet per il trasporto, sfruttando uno standard di rete molto diffuso.
- Le offerte RoCE v2 sono state sviluppate da diversi vendor di soluzioni storage per aziende.
- Contro:
- ROCE v2 dispone al momento di un ecosistema molto ridotto con un'unica versione di Linux e non supporta l'high availability o il multipath dello storage.
- La rete Ethernet è sostanzialmente con perdita di dati: è stata progettata per gestire reti inaffidabili e prevede quindi numerose opzioni per la correzione degli errori e la ritrasmissione. Tuttavia, le reti Converged Ethernet (la sigla "CE" in RoCE) per gli i/o NVMe devono essere senza perdita di dati, il che richiede meccanismi come il controllo di flusso prioritario (PFC) e la notifica esplicita della congestione (ECN). Le reti Ethernet convergenti presentano quindi tolleranze rigide che ne rendono difficile l'espansione.
- La maggior parte delle organizzazioni che prendono in considerazione l'adozione di RoCE v2 dovrà acquisire switch di rete DCB specializzati e schede RNIC (Network Interface Card) RDMA, che sono relativamente costose. Le reti DCB possono essere difficili da configurare e da scalare in verticale, ad esempio quando le organizzazioni aggiungono switch alla rete.
NVMe Over TCP/IP
Ad oggi, il costo delle reti FC o InfiniBand ha escluso alcune organizzazioni dal mercato di NVMe-oF. Per colmare questa lacuna sul mercato, NetApp e altri membri del consorzio NVMe.org hanno sviluppato e pubblicato un nuovo standard NVMe-oF (NVMe/TCP) che utilizza una LAN Ethernet con datagrammi TCP come trasporto.
Infatti, nel novembre 2018, l'ente standard NVMe ha ratificato NVMe/TCP come nuovo meccanismo di trasporto. In futuro, è probabile che TCP/IP si evolverà fino a diventare un'importante tecnologia di trasporto per data center per NVMe.
- NVMe over TCP
- Pro:
- Lo standard utilizza TCP come trasporto. TCP è molto comune, ben compreso e altamente scalabile.
- Nonostante l'utilizzo di Ethernet per la connettività, NVMe/TCP somiglia più a NVMe/FC perché entrambi utilizzano messaggi per le proprie comunicazioni principali, a differenza dei protocolli basati su RDMA, come RoCE, che utilizzano la semantica della memoria.
- Esiste un enorme ecosistema di fornitori nel mondo TCP, che sta investendo molto nel miglioramento delle performance. Nei prossimi anni è probabile che la velocità aumenti in modo significativo.
- Contro:
- La progettazione della rete può avere un impatto significativo sulle performance NVMe/TCP. In particolare, l’allocazione dei buffer deve essere appropriata. Un buffer eccessivo aumenta la latenza e un livello insufficiente determina cadute e ritrasmissione.
- NVMe over TCP è la più recente tecnologia fabric per NVMe; non ancora disponibile in commercio.
Quale fabric?
Per gli architetti dell'IT che pianificano di aggiornare la propria infrastruttura per supportare la tecnologia NVMe-oF, la questione principale è quale fabric. Naturalmente, la risposta dipenderà dai contenuti della loro attuale infrastruttura, cui si aggiungono i loro piani e i budget per il futuro.
L'altro fattore chiave è la tempistica. NVMe/RoCE v2 mostra un grande potenziale, ma probabilmente ci vorranno un paio di anni prima che sia pronto a gestire in modo affidabile i carichi di lavoro Enterprise Tier 1. Inoltre, NVMe/TCP offrirà con tutta probabilità un eccellente rapporto prezzo/performance quando la tecnologia raggiungerà la sua maturità, ma anche dopo pochi anni.
Per ora, la maggior parte degli architetti dell'IT ha concluso che FC offre il protocollo di trasferimento dei dati più maturo per carichi di lavoro Enterprise mission-critical, rendendo NVMe/FC la scelta del fabric più adatta. Un report del 2018 redatto dagli analisti tecnici di Demartek, Performance Benefits of NVMe over Fibre Channel, conferma l'entità dei miglioramenti delle performance attribuibili al fabric NVMe/FC, mostrati nella figura seguente. Per un tipico carico di lavoro Oracle in esecuzione su un sistema NetApp AFF 700, gli IOPS sono stati superiori di circa il 50% per NVMe/FC rispetto al protocollo SCSI FC.[/didascalia] I test di laboratorio sono stati eseguiti su un sistema AFF A700 a nodo singolo utilizzando un carico di lavoro Oracle simulato con una combinazione di lettura/scrittura di 80/20 KB con una dimensione del blocco di 8KB KB (I/O tipico del database OLTP), oltre a una piccola quantità di 64 KB di scritture sequenziali (log di ripristino tipici). I risultati hanno mostrato che NVMe/FC ha raggiunto IOPS superiori del 58% con una latenza di 375μs rispetto al protocollo FC SCSI.
Abbiamo riscontrato risultati simili nei nostri laboratori con i sistemi di storage SAN AFF A800, distribuiti da maggio 2018. Questi sistemi offrono una connettività NVMe end-to-end completa, con supporti flash NVMe-attached e connettività NVMe/FC attraverso il fabric tra storage controller e host. I risultati del test confermano che, anche se i supporti NVMe-attached al back-end forniscono un miglioramento misurabile delle performance durante l'esecuzione delle app Oracle su AFF A800, il NVMe-oF front-end altamente parallelizzato contribuisce per la maggior parte del miglioramento.
È il meglio di entrambi i mondi: sono in grado di implementare senza interruzioni la moderna tecnologia di storage di rete più matura, preparandosi all'imminente futuro all-NVMe.
Per ulteriori informazioni, leggi il reportPerformance Benefits of NVMe over Fibre Channel (non è richiesta alcuna registrazione).