NVMe (non-volatile memory express)

NVMe (non-volatile memory express) è un’interfaccia controller host e protocollo di archiviazione creato per accelerare la velocità di trasferimento dei dati tra sistemi aziendali e client e unità a stato solido (SSD) su bus PCIe (Peripheral Component Interconnect Express) ad alta velocità di un computer.

Poiché la tecnologia a stato solido è diventata il mezzo preferito nel mercato dello storage, è diventato rapidamente chiaro che le interfacce e i protocolli esistenti, in particolare Serial Advanced Technology Attachment (SATA) e Serial-Attached SCSI (SAS), non erano adatti, in particolare negli ambienti dei data center. Il lavoro su un nuovo protocollo progettato specificamente per NAND flash è iniziato già nel 2007, con Intel che ha preso il comando. All’inizio del 2011, la specifica NVMe iniziale è stata rilasciata nearly quasi 100 aziende tecnologiche sono state coinvolte nello sviluppo.

La specifica NVMe definisce un’interfaccia di registro, un set di comandi e una raccolta di funzionalità per SSD basati su PCIe con l’obiettivo di elevate prestazioni e interoperabilità in un’ampia gamma di sottosistemi NVM. La specifica NVMe non stabilisce il modello di utilizzo definitivo, come l’archiviazione a stato solido, la memoria principale, la memoria cache o la memoria di backup.

NVMe fornisce un’alternativa allo standard SCSI (Small Computer System Interface) e allo standard ATA per il collegamento e la trasmissione di dati tra un sistema host e un dispositivo di archiviazione di destinazione periferico. Il set di comandi ATA in uso con SSD SATA e il set di comandi SCSI per SSD SAS sono stati sviluppati in un momento in cui le unità disco rigido (HDD) e nastro erano il supporto di memorizzazione primario. NVMe è stato progettato per l’utilizzo con supporti più veloci.

I principali vantaggi degli SSD PCIe basati su NVMe rispetto agli SSD basati su SAS e SATA sono una latenza ridotta nello stack software host, operazioni di input/output più elevate al secondo (IOPS) e un consumo energetico potenzialmente inferiore, a seconda del fattore di forma e del numero di corsie PCIe in uso.

Il protocollo NVMe può supportare SSD che utilizzano diversi tipi di memoria non volatile, tra cui NAND flash e la tecnologia 3D XPoint sviluppata da Intel e Micron Technology. I driver di riferimento NVMe sono disponibili per una varietà di sistemi operativi (sistemi operativi), tra cui Windows e Linux.

NVMe non consente solo alle applicazioni esistenti di funzionare più velocemente e in modo più efficiente; in realtà è un abilitatore chiave di tecnologie e applicazioni più recenti e in evoluzione come l’Internet of things (IoT), l’intelligenza artificiale (AI) e l’apprendimento automatico (ML), che possono tutti beneficiare della bassa latenza e delle elevate prestazioni dello storage NVMe-attached.

Come funziona NVMe

NVMe mappa i comandi di input/output (I / O) e le risposte alla memoria condivisa in un computer host tramite l’interfaccia PCIe. L’interfaccia NVMe supporta I / O paralleli con processori multicore per facilitare un throughput elevato e mitigare i colli di bottiglia delle Central Processing Unit (CPU).

NVMe offre un set di comandi più snello per elaborare una richiesta di I / O rispetto ai set di comandi SCSI e ATA. NVMe richiede meno della metà del numero di istruzioni della CPU rispetto al set di comandi SCSI con i dispositivi SAS e il set di comandi ATA utilizza con le unità SATA.

NVMe SSD vs. SATA SSD

SATA è un protocollo di comunicazione sviluppato per i computer di interagire con i sistemi di storage HDD. Introdotto nel 2000 da un gruppo di importanti attori tecnologici, SATA ha sostituito parallel ATA e rapidamente è diventato il protocollo di sistema di archiviazione onnipresente per computer che vanno dai laptop ai server. Nel corso degli anni, le revisioni alle specifiche sono state aumentate e attualmente funziona a 6 Gbps con un throughput effettivo fino a 600 MBps.

Anche se sviluppato per la tecnologia del disco rigido con vassoi di filatura meccanici e testine di lettura / scrittura controllate dall’attuatore, i primi SSD sono stati commercializzati con interfacce SATA per sfruttare l’ecosistema SATA esistente. Era un design conveniente e ha contribuito ad accelerare l’adozione di SSD, ma non era-e non lo è ancora-l’interfaccia ideale per i dispositivi di archiviazione flash NAND ed è stato sempre più visto come un collo di bottiglia del sistema.

Progettato per il flash, la velocità e la bassa latenza di NVMe lasciano SATA nella polvere e NVMe consente capacità di archiviazione molto più elevate in fattori di forma più piccoli come M. 2. Generalmente, i parametri di prestazione NVMe superano quelli di SATA di cinque volte o superiore.

SATA potrebbe essere più consolidato con una storia più lunga e costi di implementazione inferiori rispetto a NVMe, ma è chiaramente la tecnologia del disco rigido che è stata adattata a supporti di memorizzazione più moderni.

NVMe SSD vs SAS SSD

NVMe supporta 64.000 comandi in una singola coda di messaggi e un massimo di 65.535 code di I / O. Al contrario, la profondità della coda di un dispositivo SAS supporta in genere fino a 256 comandi e un’unità SATA supporta fino a 32 comandi in una coda.

Tuttavia, ssd PCIe NVMe-based sono attualmente più costosi di SAS – e SSD SATA-based di capacità equivalente; anche se, che delta si sta restringendo. Inoltre, gli SSD NVMe aziendali di fascia alta potrebbero consumare più energia rispetto agli SSD SAS o SATA. L’associazione di categoria SCSI sostiene che gli SSD SAS più maturi offrono ulteriori vantaggi rispetto agli SSD NVMe PCIe, come una maggiore scalabilità, hot pluggability e funzionalità di failover testate nel tempo. NVMe PCIe SSD può anche fornire un livello di prestazioni che molte applicazioni non richiedono.

SATA vs. SAS vs. NVMe
Un confronto di protocolli di archiviazione SATA, SAS e NVMe.

Storia ed evoluzione di NVM Express

Il gruppo di lavoro Non-Volatile Memory Host Controller Interface (NVMHCI) ha iniziato a sviluppare le specifiche NVMe nel 2009 e ha pubblicato la versione 1.0 il 1 marzo 2011. Il 1.0 le specifiche includevano l’interfaccia di accodamento, il set di comandi NVM, il set di comandi di amministrazione e le funzionalità di sicurezza.

Il gruppo di lavoro NVMHCI, comunemente noto come NVM Express Workgroup, ha rilasciato un aggiornamento alla specifica NVMe in ottobre. 11, 2012. NVMe 1.1 aggiunto il supporto per SSD con più porte PCIe per consentire multipath I/O e la condivisione dello spazio dei nomi. Altre nuove funzionalità includevano transizioni autonome dello stato di alimentazione durante il tempo di inattività per ridurre il fabbisogno energetico e le prenotazioni consentendo a due o più host di coordinare l’accesso a uno spazio dei nomi condiviso per migliorare la tolleranza ai guasti.

Linea temporale di sviluppo NVMe
Una linea temporale di date importanti per lo sviluppo di NVMe.

Il gruppo di lavoro NVM Express ha tenuto il suo primo Plugfest nel maggio 2013 per consentire alle aziende di testare la conformità dei propri prodotti alle specifiche NVMe e di verificare l’interoperabilità con altri prodotti NVMe.

Il gruppo di lavoro NVM Express è stato incorporato sotto il nome dell’organizzazione NVM Express nel marzo 2014. I membri fondatori all’epoca includevano Cisco Systems, Dell, EMC, la filiale HGST di Western Digital, Intel, LSI, Micron Technology, NetApp, Oracle, PMC-Sierra, Samsung Electronics, SanDisk e Seagate Technology.

L’organizzazione NVM Express in seguito divenne nota semplicemente come NVM Express Inc. L’organizzazione no-profit ha più di 100 aziende tecnologiche come membri.

La specifica NVMe 1.2 è emersa il nov. 3, 2014, con miglioramenti come il supporto per gli aggiornamenti del firmware dal vivo, una migliore gestione dell’alimentazione e l’opzione per la protezione dei dati end-to-end.

Il nov. 17, 2015, l’organizzazione NVM Express ha ratificato la versione 1.0 della NVM Express Management Interface (NVMe-MI) per fornire un’architettura e un set di comandi per gestire un sottosistema di memoria non volatile fuori banda. NVMe-MI consente a un controller di gestione di eseguire attività come il rilevamento di dispositivi SSD e capacità, il monitoraggio della salute e della temperatura e gli aggiornamenti del firmware non distruttivi. Senza NVMe-MI, i responsabili IT generalmente si affidavano a interfacce di gestione proprietarie e specifiche del fornitore per consentire l’amministrazione di SSD PCIe.

NVMe 1.3 miglioramenti delle funzionalità

NVM Express ha rilasciato NVMe 1.3 a giugno 2017. Mette in evidenza il centro sulle operazioni di sanificazione, un nuovo framework noto come direttive e miglioramenti della virtualizzazione.

In un’operazione di sanificazione, tutti i dati utente nel sottosistema NVMe vengono modificati in modo che il ripristino non sia possibile “da qualsiasi cache, supporto non volatile o buffer di memoria del controller”, in base a un foglio di riferimento NVM Express. Le operazioni di sanificazione sono consigliate quando un SSD viene ritirato o riutilizzato per un nuovo caso d’uso. Le modalità di sanificazione includono cancellazione di blocchi di basso livello su supporti NAND, cripto-cancellazione per modificare una chiave di crittografia multimediale e sovrascrivere.

Il framework delle Direttive definisce un meccanismo per lo scambio di dati tra un host e un sottosistema NVMe. Ciò consente il tagging dei comandi per I/O e offre agli amministratori IT la possibilità di configurare gli attributi e le impostazioni da segnalare.

Il primo utilizzo delle direttive è una funzionalità chiamata Streams per ottimizzare il posizionamento dei dati per aumentare la resistenza e le prestazioni degli SSD NAND. Tradizionalmente, prima che i nuovi dati possano essere scritti sull’SSD, i blocchi di dati di grandi dimensioni devono prima essere cancellati.

La funzione Flussi consente a un host di utilizzare un “identificatore di flusso” per indicare i blocchi logici specifici di archiviazione che appartengono a un gruppo di dati associati. Ciò consente a una lettura o una scrittura di essere etichettati con i dati correlati memorizzati in altre posizioni.

I miglioramenti alla virtualizzazione definiscono il modo in cui NVMe flash può essere utilizzato in un ambiente di storage condiviso in cui sono presenti controller fisici e virtuali, inclusi controller di storage primario e controller di storage secondario. NVM Express ha detto che l’obiettivo è quello di consentire ai team di sviluppo di dedicare uno specifico SSD a una specifica macchina virtuale (VM).

NVMe 1.4 miglioramenti delle funzionalità

NVMe 1.4 è stato introdotto nel luglio 2019. Questa ultima versione include una serie di miglioramenti e nuove funzionalità, tra cui:

  • Rebuild Assist migliora il recupero dei dati e migliora le operazioni di migrazione dei dati.
  • Registro eventi persistente mantiene una cronologia dettagliata dell’unità che può essere utilizzata per il debug e determinare le cause dei problemi.
  • I set NVM e il determinismo IO migliorano le prestazioni e la qualità del servizio (QoS).
  • L’accesso asimmetrico allo spazio dei nomi (ANA) migliora il multipathing per un’elevata disponibilità.
  • Host Memory Buffer (HMB) riduce la latenza e aiuta nella progettazione SSD.
  • Persistent Memory Region (PMR) consente ai sistemi host di leggere e scrivere direttamente sulla memoria dinamica ad accesso casuale (DRAM) che gli SSD includono insieme al loro core flash, che era stato utilizzato principalmente per il caching

Le nuove funzionalità richiederanno ai produttori di unità flash di aggiornare i loro prodotti per incorporare i miglioramenti. Nuovi driver saranno necessari anche per i sistemi operativi.

Fattori di forma e standard NVMe

La necessità di un’interfaccia di archiviazione e di un protocollo per sfruttare meglio il potenziale di prestazioni di NAND flash negli ambienti aziendali è stato il principale impulso alla base dello sviluppo delle specifiche NVMe. Ma ripensare lo standard di connessione ha aperto le porte a diversi tipi di implementazioni di interfaccia che potrebbero rimanere entro i limiti delle nuove specifiche offrendo una varietà di opzioni di implementazione.

In breve tempo, sono emersi una serie di fattori di forma flash conformi alle specifiche NVMe, tra cui schede aggiuntive di tipo convenzionale (AIC) per il bus PCIe e nuovi fattori di forma per SSD denominati M. 2 e U. 2.

  • AIC. Il fattore di forma AIC consente ai produttori di creare le proprie schede che si inseriscono nel bus PCIe senza preoccuparsi di design del vano di archiviazione o limitazioni simili. Le schede sono spesso progettate per casi d’uso speciali e possono includere processori aggiuntivi e altri chip per migliorare le prestazioni dello storage a stato solido.
  • M. 2. Il M.2 fattore di forma è stato sviluppato per sfruttare le dimensioni compatte di NAND flash e bassa scarica di calore. In quanto tali, i dispositivi M. 2 non sono progettati per adattarsi ai tradizionali scomparti dell’alloggiamento dell’unità, ma piuttosto per essere distribuiti in spazi molto più piccoli. Spesso descritto come circa le dimensioni di un bastone di gomma, M. 2 SSD misura 22mm di larghezza e generalmente 80mm di lunghezza, anche se alcuni prodotti possono essere più o meno lungo.
  • U. 2. A differenza del fattore di forma M. 2, gli SSD U. 2 sono stati progettati per adattarsi a alloggiamenti di archiviazione esistenti originariamente destinati a dispositivi SATA o SAS standard. U.Gli SSD 2 assomigliano molto a quei supporti più vecchi, poiché in genere utilizzano le custodie da 2,5 pollici o 3,5 pollici che sono alloggiamenti familiari per HDD. L’idea, ovviamente, era di rendere il più semplice possibile implementare la tecnologia NVMe con il minor reengineering possibile.

Un altro fattore di forma NVMe meno diffuso è il fattore di forma SSD enterprise e data center o EDSFF. È supportato da attori chiave del settore dello storage, come Intel, Dell EMC, Hewlett Packard Enterprise (HPE), Lenovo, Samsung e altri. L’obiettivo di EDSFF è portare prestazioni e capacità più elevate nei sistemi di storage di classe enterprise. Forse l’esempio più noto di EDSFF flash sono Intel E1.L (lungo) e E1.S (breve) dispositivi flash, che sono forniti in quello che è stato originariamente indicato come il fattore di forma” righello”.

NVMe su tessuti

NVM Express Inc. pubblicata la versione 1.0 della specifica NVMe over Fabrics (NVMe-oF) il 5 giugno 2016. NVMe-oF è progettato per estendere i vantaggi ad alte prestazioni e bassa latenza di NVMe su tessuti di rete che collegano server e sistemi di storage, come Fibre Channel (FC), Ethernet e InfiniBand.

I trasporti fabric includono NVM-OF che utilizza l’accesso diretto alla memoria remota (RDMA) e NVMe-OF mappato su FC. Un sottogruppo tecnico di NVM Express Inc. ha lavorato su NVMe – dI con RDMA, e il comitato T11 del Comitato internazionale per gli standard di tecnologia dell’informazione (INCITS) è responsabile per lo sviluppo di NVMe su FC (FC-NVMe).

La specifica NVMe-oF è in gran parte la stessa della specifica NVMe. Una delle principali differenze tra NVMe-oF e NVMe è la metodologia per trasmettere e ricevere comandi e risposte. NVMe è progettato per l’uso locale e mappe comandi e risposte alla memoria condivisa di un computer tramite PCIe. Al contrario, NVMe over Fabrics impiega un sistema basato su messaggi per comunicare tra il computer host e il dispositivo di archiviazione di destinazione.

Come funziona NVMe-Of
Una semplice visuale di come funziona NVMe-oF.

L’obiettivo di progettazione dichiarato per NVMe-oF era di aggiungere non più di 10 microsecondi di latenza per la comunicazione tra un computer host NVMe e un dispositivo di archiviazione NVMe collegato alla rete, rispetto alla latenza associata a un dispositivo di archiviazione NVMe utilizzando il bus PCIe di un computer locale.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *