Casa Impresa Che cos'è NVMe-oF?

Che cos'è NVMe-oF?

by Juan Mulford
NVMeoF

Negli ultimi anni, continuiamo a sperimentare come le prestazioni di storage stiano diventando sempre più veloci, il che ha messo a dura prova i vecchi protocolli di storage che sono diventati un collo di bottiglia per i data center. Nonostante utilizzino la velocità di rete più recente di 100GbE e i nuovi standard di rete, come InfiniBand, queste lente tecnologie di protocollo di rete limitano le prestazioni del dispositivo flash, mantenendolo all'interno del dispositivo stesso e isolato nella scatola. In questo articolo, diamo una rapida occhiata a Non-Volatile Memory Express (NVMe). Inoltre, presentiamo una panoramica di NVMe over Fabrics (NVMe-oF) e NVMe over RDMA over Converged Ethernet (NVMe over RoCE), una nuova specifica di protocollo sviluppata per risolvere i colli di bottiglia delle moderne reti di storage.

Negli ultimi anni, continuiamo a sperimentare come le prestazioni di storage stiano diventando sempre più veloci, il che ha messo a dura prova i vecchi protocolli di storage che sono diventati un collo di bottiglia per i data center. Nonostante utilizzino la velocità di rete più recente di 100GbE e i nuovi standard di rete, come InfiniBand, queste lente tecnologie di protocollo di rete limitano le prestazioni del dispositivo flash, mantenendolo all'interno del dispositivo stesso e isolato nella scatola. In questo articolo, diamo una rapida occhiata a Non-Volatile Memory Express (NVMe). Inoltre, presentiamo una panoramica di NVMe over Fabrics (NVMe-oF) e NVMe over RDMA over Converged Ethernet (NVMe over RoCE), una nuova specifica di protocollo sviluppata per risolvere i colli di bottiglia delle moderne reti di storage.

NVMe-oF

A causa della costante richiesta di bassa latenza e throughput elevato nei cloud e nei data center, si discute molto su NVMe over Fabrics. La specifica NVMe esiste da meno di un decennio e poiché anche NVMe-oF è relativamente nuova, ci sono ancora molti malintesi sulla sua pratica e sui vantaggi che offre alle aziende. Questa tecnologia è in continua evoluzione e ampiamente adottata nel settore IT. Stiamo iniziando a vedere diversi fornitori di rete che offrono prodotti correlati a NVMe-oF al mercato aziendale. Pertanto, per stare al passo con le tecnologie avanzate dei data center, è essenziale comprendere cos'è NVMe-oF, le sue funzionalità e le sue caratteristiche prestazionali. Inoltre, come può essere implementata e come combiniamo questa tecnologia in soluzioni diverse e nuove.

NVMe e NVMe-oF

Gli array all-flash (AFA) sono emersi nei data center per rispondere alla richiesta di prestazioni elevate, poiché sono molto più veloci dello storage legacy e in grado di raggiungere senza sforzo il milione di IOPS sempre promesso sul mercato. Tuttavia, molti di questi array continuavano a utilizzare una tecnologia di archiviazione quasi legacy, l’SSD SATA. Questo tipo di archiviazione si basa sul protocollo di comando AHCI (Advanced Host Controller Interface) e supporta IDE. AHCI è stato essenzialmente creato per il disco rotante e non per le unità avanzate basate su flash. Questa tecnologia basata su SCSI crea un collo di bottiglia per gli attuali controller SSD e array di archiviazione, poiché il bus SATA III con AHCI consente solo una velocità di trasferimento dati fino a 1 MB/s.

Velocità del bus NVMe-oFTabella 1: Velocità degli autobus comuni

Per sfruttare appieno le funzionalità degli SSD, avevamo bisogno di una nuova tecnologia per scaricare la memoria flash a una velocità maggiore. NVMe è una specifica che consente all'archiviazione flash (o SSD) di trarre vantaggi reali dalle prestazioni flash. Questa tecnologia è stata introdotta per la prima volta nel 2014 per migliorare i tempi di risposta delle applicazioni, presentando funzionalità nuove e migliori. Esistono molti fattori di forma dell'unità a stato solido NVMe e i più conosciuti sono AIC (scheda aggiuntiva), U.2, U.3 e M.2. Gli SSD NVMe sfruttano il bus ad alta velocità Peripheral Component Interconnector Express (PCIe) nel computer o nel server, collegandolo direttamente ad esso. Sostanzialmente, NVMe riduce il sovraccarico della CPU e semplifica le operazioni che riducono la latenza, aumentano le operazioni di input/output al secondo (IOPS) e il throughput. Ad esempio, gli SSD NVMe forniscono velocità di scrittura superiori a 3,000 MB/s. Se confrontiamo con gli SSD SATA, ciò significa 5 volte più veloce o 30 volte più veloce dei dischi rotanti.

Utilizzando NVMe, IOPS viene eseguito in parallelo, consentendo molti calcoli contemporaneamente. Le attività di grandi dimensioni possono essere suddivise in diverse attività più piccole da elaborare in modo indipendente. Simile a una CPU multi-core, che funziona con più thread. Ogni core della CPU potrebbe funzionare indipendentemente l'uno dall'altro per eseguire compiti specifici.

La Queue Depths (QD) è un altro vantaggio di NVMe rispetto a AHCI. Mentre ACHI e SATA possono gestire profondità di coda di 32 (1 coda e 32 comandi), NVMe può gestire profondità di coda fino a 65K. Si tratta di code da 65, in cui ciascuna coda può contenere fino a 65 comandi per coda. Insieme alla riduzione della latenza, ciò accelera le prestazioni dei server impegnati che elaborano richieste simultanee.

NVMe-oF q profonditàTabella 2: Confronto delle code

Tuttavia, il problema per i data center rimane sui protocolli di rete di storage. Nonostante l’ascesa di NVMe, i suoi vantaggi sono limitati a ogni singolo apparecchio. E il fatto è che l'archiviazione flash e altri dispositivi di livello aziendale (costosi), come gli AFA, non sono destinati a isolare le sue notevoli prestazioni all'interno dello chassis. Sono invece pensati per essere utilizzati in enormi cluster di computer paralleli, collegandoli con dispositivi aggiuntivi e multipli, come altri server e dispositivi di archiviazione. Questa interconnessione di dispositivi è ciò che chiamiamo fabric, la rete di storage, che comprende switch, router, bridge di protocollo, dispositivi gateway e cavi.

Nel 2016 è stato lanciato lo standard industriale NVMe-oF. La specifica del protocollo estende le incredibili prestazioni di NVMe dai controller dell'array di archiviazione alla struttura, utilizzando Ethernet, Fibre Channel, RoCE o InfiniBand. NVMe-oF utilizza un protocollo di trasporto dati alternativo (su tessuti) come mappatura del trasporto, invece del bus PCIe utilizzato da NVMe. Le strutture si basano sul concetto di invio e ricezione di messaggi senza memoria condivisa tra gli endpoint. Il sistema di trasporto dei messaggi NVMe incapsula i comandi e le risposte NVMe in un sistema basato su messaggi che include uno o più comandi o risposte NVMe.

In NVMe-oF, le destinazioni vengono presentate come spazi dei nomi, che equivalgono ai LUN SCSI. NVMe-oF consente agli host di comunicare con questi target di storage su distanze molto più elevate mantenendo una latenza estremamente bassa, a livelli di microsecondi (μs). In poche parole, otteniamo prestazioni migliori tra i sistemi e lo storage flash senza aggiungere sostanzialmente la latenza del fabric. Questa bassa latenza, in parte, è dovuta alla profondità della coda NVMe menzionata prima. NVMe-oF può gestire le stesse code di NVMe, 65KQuesto numero notevole rende NVMe-oF possibile progettare un'architettura altamente parallela tra host e unità, utilizzando una coda separata per ciascuno di questi dispositivi.

Trasporti di tessuti NVMe 

Tre tipi di trasporti fabric supportati e utilizzati da NVMe sono NVMe-oF che utilizza RDMA, NVMe-oF che utilizza Fibre Channel e NVMe-oF che utilizza TCP.

NVMe-oF su RDMA

Questa specifica utilizza Remote Direct Memory Access (RDMA) e consente il trasferimento di dati e memoria tra computer e dispositivi di archiviazione attraverso la rete. RDMA è un modo per scambiare informazioni tra la memoria principale di due computer in una rete senza coinvolgere il processore, la cache o il sistema operativo di entrambi i computer. Poiché RDMA evita il sistema operativo, di solito è il meccanismo più veloce e con il minor sovraccarico per trasmettere dati attraverso una rete.

NVMe-oF su RDMA utilizza il protocollo di trasporto TCP per fornire dati su reti IP. Le tipiche implementazioni RDMA includono Virtual Interface Architecture, RDMA over Converged Ethernet (RoCE), InfiniBand, Omni-Path e iWARP. RoCE, InfiniBand e iWARP sono attualmente i più utilizzati.

NVMe su Fibre Channel

La combinazione dell'utilizzo di NVMe su Fibre Channel (FC) viene spesso definita FC-NVMe, NVMe su FC o talvolta NVMe/FC. Fibre Channel è un protocollo affidabile per il trasferimento di dati tra array di storage e server e viene utilizzato dalla maggior parte dei sistemi SAN aziendali. In FC-NVMe, i comandi sono incapsulati all'interno dei frame FC. Si basa sulle regole FC standard e corrisponde al protocollo FC standard che supporta l'accesso al flash NVMe condiviso. I comandi SCSI sono incapsulati nei frame FC; tuttavia, viene imposta una penalità prestazionale per interpretarli e tradurli in comandi NVMe.

NVMe su TCP/IP

Questo tipo di trasporto è uno degli ultimi sviluppi all'interno di NVMe-oF. NVMe su TCP (Transport Control Protocol) utilizza NVMe-oF e il protocollo di trasporto TCP per trasferire dati su reti IP (Ethernet). NVMe trasportato all'interno di datagrammi TCP su Ethernet come trasporto fisico. Nonostante disponga di RDMA e Fibre Channel, TCP fornisce un'alternativa probabilmente più economica e flessibile. Inoltre, confrontandolo con RoCE, che utilizza anch'esso Ethernet, NVMe/TCP funziona più come FC-NVMe perché utilizza la semantica della messaggistica per l'I/O.

L'utilizzo di NVMe-oF con RDMA, Fibre Channel o TCP costituisce una soluzione di storage NVMe end-to-end completa. Queste soluzioni forniscono prestazioni particolarmente elevate mantenendo la latenza molto bassa disponibile tramite NVMe.

NVMe su RDMA su Converged Ethernet (RoCE)

Tra i protocolli RDMA spicca RoCE. Sappiamo cosa sono RDMA e NVMe-oF e ora abbiamo Converged Ethernet (CE), il supporto di RDMA su una rete Ethernet. CE è come una versione Ethernet avanzata, nota anche come Data Center Bridging e Data Center Ethernet. Incapsula il pacchetto di trasporto InfiniBand su Ethernet. La sua soluzione fornisce il meccanismo di controllo del flusso a livello di collegamento per garantire perdite pari a zero, anche quando la rete è satura. Il protocollo RoCE consente latenze inferiori rispetto al suo predecessore, il protocollo iWARP.

Esistono due versioni RoCE, RoCE v1 e RoCE v2. RoCE v1 è un protocollo Ethernet di livello 2 (collegamento) che consente la comunicazione tra due host nello stesso dominio di trasmissione Ethernet. Pertanto, non può instradare tra sottoreti. La nuova opzione è RoCE v2, un protocollo che si sovrappone al protocollo UDP/IPv4 o UDP/IPv6. RoCE v2 è un protocollo Ethernet di livello 3 (Internet), il che significa che i suoi pacchetti possono essere instradati. Il supporto software per RoCE v2 sta ancora emergendo. Mellanox OFED 2.3 o successivo ha il supporto RoCE v2 e anche Linux Kernel v4.5.

NVMe su RoCE è un nuovo tipo di SAN. Questo protocollo fornisce le stesse prestazioni di servizi dati aziendali e la stessa flessibilità dell'hardware e del software SAN. Sebbene il protocollo RoCE tragga vantaggio dalle caratteristiche di una rete Ethernet convergente, il protocollo può essere utilizzato anche su una rete Ethernet tradizionale o non convergente. Per configurare l'infrastruttura di storage NVMe su RoCE, la scheda NIC, lo switch e l'AFA devono supportare la convergenza Ethernet. La scheda NIC (chiamata R-NIC) e l'array all-flash devono fornire il supporto per RoCE. I server con R-NIC e AFA con interfacce NVMe su RoCE saranno plug-and-play con gli switch CE installati.

Supporto NVMe-oF su RoCE per VMware

VMware ha aggiunto il supporto per lo storage NVMe condiviso utilizzando NVMe-oF. Per la connettività esterna, vSphere 7.0 supporta NVMe su Fibre Channel e NVMe su RDMA. Gli host ESXi possono utilizzare RDMA su Converged Ethernet v2 (RoCE v2). Per abilitare e accedere allo storage NVMe utilizzando RDMA, l'host ESXi utilizza un adattatore R-NIC sull'host e un adattatore di storage SW NVMe su RDMA. La configurazione deve essere configurata in entrambi gli adattatori per utilizzarli per il rilevamento dello storage NVMe.

Le destinazioni vengono presentate come spazi dei nomi a un host in modalità di accesso attivo/attivo o asimmetrico (ALUA) quando si utilizza NVMe-oF. Ciò consente agli host ESXi di individuare e utilizzare gli spazi dei nomi presentati. ESXi emula internamente le destinazioni NVMe-oF come destinazioni SCSI e le presenta come destinazioni SCSI attive/attive o destinazioni SCSI ALUA implicite.

Requisiti NVMe su RDMA:

  • Array NVMe che supporta il trasporto RDMA (RoCE v2).
  • Host ESXi compatibile
  • Switch Ethernet che supportano una rete senza perdite.
  • Adattatore di rete che supporta RoCE v2
  • SW NVMe su adattatore RDMA
  • Controller NVMe
  • RoCE oggi funziona su strutture con perdite che supportano ZTR (Zero Touch RoCE) o richiede una rete configurata per il traffico di informazioni senza perdite solo al livello 2 o sia al livello 2 che al livello 3 (utilizzando PFC)

Quando si configura NVMe-oF su un host ESXi, è necessario seguire alcune pratiche.

  • Non combinare tipi di trasporto per accedere allo stesso spazio dei nomi.
  • Assicurarsi che tutti i percorsi attivi siano presentati all'host.
  • NMP non è utilizzato/supportato; invece, HPP (High-Performance Plugin) viene utilizzato per i target NVMe.
  • È necessario disporre di collegamenti dedicati, VMkernel e adattatori RDMA per le destinazioni NVMe.
  • VLAN dedicata di livello 3 o connettività di livello 2
  • limiti:
    • Spazi dei nomi-32
    • Percorsi=128 (max 4 percorsi/spazio dei nomi su un host)

Conclusione

Dato che sempre più persone dipendono dai dati nei servizi cloud, vi è una crescente domanda di storage back-end più veloce nei data center. NVMe è un modo più nuovo di interfacciarsi con i dispositivi flash e, insieme a NVMe-oF, le tecnologie hanno fatto avanzare le opzioni di connettività esterna. NVMe-oF e i suoi diversi tipi di trasporto stanno iniziando a essere riconosciuti come il futuro dell'archiviazione dei dati. Questi dispositivi ed apparecchi di storage sono considerati il ​​cuore dei data center, poiché ogni millisecondo conta all'interno della struttura interconnessa. La tecnologia NVMe riduce i comandi di input/output mappati in memoria e si adatta ai driver del dispositivo del sistema operativo per prestazioni più elevate e minore latenza.

NVMe è diventato sempre più popolare grazie alla sua velocità multitasking a bassa latenza e throughput elevato. Sebbene NVMe venga utilizzato anche nei personal computer per migliorare l'editing video, i giochi e altre soluzioni, il vantaggio reale si vede nell'azienda, attraverso NVMe-oF. Settori come quello dell’IT, dell’intelligenza artificiale e del machine learning continuano a progredire e la domanda di prestazioni migliorate continua a crescere. Ora è normale vedere fornitori di software e di rete, come VMware e Mellanox, offrire più prodotti e soluzioni NVMe-oF al mercato aziendale. Con i cluster di computer moderni e massivamente paralleli, quanto più velocemente possiamo elaborare e accedere ai nostri dati, tanto più preziosi sono per la nostra azienda.

Risorse

Hub di archiviazione: VMware NVMeoF vSphere

NVMexpress: NVMe sui tessuti

Recensione NetApp AFF A800 NVMeOF

Interagisci con StorageReview

Newsletter | YouTube | Podcast iTunes/Spotify | Instagram | Twitter | Facebook | RSS feed