La specifica Non-Volatile Memory Express(NVMe) si sta imponendo come una potente alternativa ai supporti di memorizzazione tradizionali. L'archiviazione NVMe ad alta velocità è così veloce e reattiva che a volte sembra più una RAM che un disco rigido convenzionale. Il recente lancio di Linode NVMe Block Storage è un buon motivo per dare un'occhiata più da vicino a NVMe e al motivo per cui è importante.
La specifica Serial AT Attachment (SATA), apparsa per la prima volta nel 2000, è stata sviluppata per una precedente generazione di supporti per dischi rigidi rotanti. La specifica SATA ha rappresentato un gradito miglioramento rispetto alle altre tecnologie disponibili all'epoca ed è stata ampiamente accettata come standard per il collegamento di un computer a un dispositivo di archiviazione.
Il formato di comunicazione seriale utilizzato con SATA era affidabile e costante, e sicuramente abbastanza veloce da soddisfare la velocità di un disco rigido rotante. Tuttavia, quando sono apparse le prime unità a stato solido (SSD) basate su memoria flash, i progettisti di hardware si sono resi conto che l'interfaccia seriale SATA sarebbe diventata un collo di bottiglia per le SSD più veloci. Le unità flash di prima generazione hanno continuato a utilizzare il bus SATA perché era familiare e supportato dalla maggior parte dell'hardware, ma con l'evoluzione della tecnologia, i produttori di storage di fascia alta hanno iniziato a sviluppare le proprie soluzioni proprietarie per ottenere prestazioni migliori dalle unità SSD.
Molte di queste soluzioni proprietarie utilizzavano il noto bus Peripheral Component Interconnect Express (PCIe). Il bus PCIe, che supporta l'elaborazione parallela, consente un accesso più efficiente ai dati e riduce il rallentamento dovuto alla comunicazione con il dispositivo di archiviazione. Come spesso accade, il problema di queste soluzioni proprietarie era l'assenza di uniformità. Ciascuna di esse richiedeva un driver di dispositivo e procedure di installazione distinte e i fornitori si ritrovavano a reinventare la ruota per ogni nuovo dispositivo, risolvendo separatamente i problemi e tentando di apportare miglioramenti.
NVMe è nato per fornire una soluzione uniforme in grado di sfruttare la velocità e il parallelismo dei supporti flash. Un gruppo di 90 aziende, guidate da Intel, si è riunito per formare il gruppo di lavoro NVM Express, che ha rilasciato la versione 1 di NVMe nel 2011. La specifica NVMe offre diversi miglioramenti rispetto agli altri standard di archiviazione utilizzati con le unità SSD. Un cambiamento importante è che un'unità NVMe ha un microcontrollore integrato nel dispositivo e comunica direttamente con la CPU sul bus PCIe. Il risultato è un I/O più parallelo, con una latenza minore e un throughput maggiore.
NVMe rispetto allo storage convenzionale
Da qualsiasi punto di vista, lo storage NVMe è molto più veloce di quello convenzionale. I risultati possono variare a seconda dell'hardware e della configurazione, ma a titolo illustrativo un'unità di archiviazione convenzionale potrebbe avere una velocità di 250 MB/sec, mentre le unità NVMe di solito offrono velocità di trasmissione misurate in gigabyte.
L'I/O a blocchi per secondo (IOPS) è un'altra misura critica della velocità. Anche in questo caso, i numeri possono variare a seconda del dispositivo, ma è lecito affermare che NVMe è in grado di fornire un numero di IOPS da dieci a 100 volte superiore rispetto a un'unità disco tradizionale. Una delle ragioni principali dei miglioramenti di velocità è l'elaborazione parallela ottenuta con NVMe. SATA supportava una coda di comandi seriale con una dimensione massima di 32. NVMe, invece, supporta una coda di comandi parallela. NVMe, invece, può supportare fino a 64K code di comando, ciascuna con una dimensione di 64K. Un altro vantaggio di NVMe è che le prestazioni più elevate possono avere l'effetto di ridurre la latenza. La latenza di un'unità NVMe è in genere meno della metà di quella di un disco rotante.
L'accelerazione radicale ottenuta con NVMe rappresenta una svolta per alcuni tipi di applicazioni. In particolare, un servizio transazionale come un database o un sito di e-commerce può funzionare in modo molto più efficiente con uno storage NVMe più veloce. Il parallelismo massiccio possibile con NVMe è ideale anche per qualsiasi servizio che possa ricevere molte connessioni simultanee. Lo storage NVMe offre una densità di prestazioni, o IOPS per gigabyte, molto maggiore rispetto allo storage tradizionale.
Naturalmente, ogni scelta comporta dei compromessi, uno dei quali è il costo. Lo storage NVMe è più costoso per megabyte rispetto allo storage a oggetti. Un'opzione pratica consiste nell'utilizzare NVMe per i dati ad accesso frequente e per i carichi di lavoro che beneficiano di una bassa latenza, per poi utilizzare lo storage a oggetti o lo storage a blocchi tradizionale per l'archiviazione e altre attività che richiedono un accesso meno frequente. Il nostro team può aiutarvi a valutare le possibilità di accesso alla potenza di NVMe e a trovare la configurazione di storage ottimale per il vostro ambiente.
Commenti (2)
Hello. Is NVMe a physical storage device different from SSDs, or is it a new hardware that works together with an SSD device improving its performance.
Or NVMe is the storage device itself.
I’ll appreciate, if you can clarify this confusion that I have.
Thank you very much for your help, your above explanation was really good. I’m still learning. Have a good day and remain waiting for your answer.
Hey Franco! NMVe drives are a type of SSD and are an improvement on the standard SATA-based drive which allow for faster Read/Write performance and lower latency. This IBM article goes into more detail about the technical specs and differences between types of hard drives: https://www.ibm.com/think/topics/ssd-vs-nvme