L'NVMe (non-volatile memory express) è un protocollo per il trasferimento di dati altamente parallelo con sovraccarichi di sistema ridotti per input/output (I/O) utilizzato nel flash storage e nelle unità SSD (solid-state drive).
Le unità SSD NVMe sono in grado di fornire tempi di risposta più rapidi rispetto alle unità hard disk (HDD) tradizionali grazie alle modifiche apportate al driver del dispositivo che consentono il parallelismo e il polling. Questi miglioramenti contribuiscono a ridurre la latenza e le rendono ideali per i workload aziendali e per numerose applicazioni consumer e professionali.
Le SSD sono dispositivi di archiviazione basati su semiconduttori che si appoggiano alla memoria flash per archiviare dati persistenti nei sistemi informatici. In un'unità SSD, ogni chip di memoria è costituito da blocchi che contengono celle di memoria (note anche come pagine o settori) che contengono bit di memoria. A differenza dello storage magnetico, come gli HDD e le unità disco che memorizzano i dati utilizzando magneti, le SSD utilizzano chip NAND, una tecnologia di storage non volatile che non richiede alimentazione per la conservazione dei dati.
Mentre le unità HDD hanno una latenza e un tempo di accesso intrinseci causati dalla rotazione dei piatti e dal movimento delle testine di lettura/scrittura, le SSD non hanno parti mobili, il che li rende molto più veloci. Le unità SSD stanno superando le HDD come standard di settore preferito per i workload di dati strutturati.
Ottieni gli insight di 1.900 dirigenti di livello top manager intervistati sull'affidabilità, le prestazioni e la sicurezza delle piattaforme server più diffuse.
Registrati per ricevere l'ebook per modernizzare le tue app più velocemente
L'NVM express è stato sviluppato tra il 2008 e il 2011 per sostituire i protocolli Serial Advanced Technology Attachment (SATA) e Serial Attached SCSI (SAS). I miglioramenti dell'NVM in termini di latenza e prestazioni rispetto ai concorrenti hanno contribuito allo sviluppo di altre importanti tecnologie, tra cui l'Internet of Things (IoT), l'intelligenza artificiale (AI) e il machine learning (ML).
Oggi gli utenti esigono tempi di risposta più rapidi che mai dalle loro applicazioni. Il protocollo NVMe è stato creato per offrire un'esperienza all'avanguardia, ad alte prestazioni, con una larghezza di banda elevata e a bassa latenza, indipendentemente dal tipo di applicazione che un utente sta implementando. Le SSD NVMe accedono allo storage flash principalmente tramite un bus Peripheral Component Interconnect Express (PCIe) che rimuove il controller "intermedio", riducendo la latenza. Tuttavia, le NVME possono funzionare anche su qualsiasi tipo di interconnessione "fabric", come Fibre Channel ed Ethernet, e all'interno di Ethernet, iWARP, ROCEv2, iSER e NVMe-TCP.
Le unità SSD NVMe possono gestire decine di migliaia di code di comandi parallele ed eseguire programmi a velocità superiori rispetto alle unità connesse tramite protocollo SCSI, che può distribuire solo una singola coda di comando. Il metodo di connessione è indipendente dal protocollo; ad esempio, l'NVMe PCIe può collegare una singola unità tramite un collegamento PCIe che esegue il protocollo NVMe.
L'NVMe è stato creato per supporti di archiviazione non volatili e ad alte prestazioni, il che lo rende ideale per gli attuali ambienti esigenti e ad alta intensità di calcolo, come i software di editing grafico, gli ambienti di cloud computing, i firmware e i database di grandi dimensioni. L'NVMe è in grado di gestire i workload aziendali in modo rapido ed efficiente, con un'infrastruttura di dimensioni ridotte e una potenza inferiore rispetto al protocollo SCSI.
Sebbene gli HDD fossero il metodo preferito nel settore per l'archiviazione e l'accesso ai dati, SATA e SAS erano soluzioni adeguate. Entrambe le tecnologie sono state progettate come interfacce di storage SCSI per agevolare il trasferimento dei dati da e verso le unità HDD. Il sistema SAS collega una singola unità tramite una porta SAS che esegue il protocollo SCSI e si connette a un collegamento PCIe. Il sistema SATA collega una singola unità tramite una porta SATA che esegue il protocollo ATA tramite un controller ATA che si connette a un collegamento PCIe.
Fino a poco tempo fa, la maggior parte delle unità SSD utilizzava SAS o SATA per connettersi al resto del sistema informatico. Tuttavia, con l'aumento della tecnologia solid-state nel settore dello storage, SAS e SATA sono diventati sempre più scomodi, essendo stati utilizzati con le unità HDD. Secondo un report dell'IDC (International Data Corporation) del 2023, l'NVMe è stato progettato per velocizzare il trasferimento dei dati ai sistemi connessi tramite PCI express, un bus di espansione seriale standard per collegare un computer a uno o più dispositivi periferici.1
Oltre al fatto che è stato progettato specificamente per l'uso con le unità SSD, il protocollo NVMe è più snello rispetto a quello SCSI, il che lo rende una soluzione migliore per le applicazioni in tempo reale, come il machine learning (ML) e l'intelligenza artificiale. Con la crescente popolarità degli ambienti di cloud computing, NVMe è anche in una posizione privilegiata per il supporto di ambienti di storage di cloud ibrido, multicloud e mainframe grazie alle elevate prestazioni e alla protezione dei dati integrate.
Ecco alcuni dei vantaggi dell'utilizzo dello storage NVMe rispetto alle unità SAS o SATA:
Prestazioni migliori: la tecnologia NVMe può utilizzare un PCIe per collegare lo storage SSD direttamente a un server o a un'unità di elaborazione centrale (CPU). Questo netto miglioramento delle prestazioni ha reso la tecnologia NVMe l'opzione di archiviazione/trasferimento dati preferita da giocatori, editor video e altri utenti che richiedono prestazioni superiori a quelle offerte dalle unità HDD SAS o SATA .
Velocità più elevata: le unità NVMe possono offrire velocità più elevate rispetto alle unità SAS o SATA perché possono inviare e ricevere comandi NVMe più velocemente e garantire una velocità di trasmissione migliore.
Maggiore compatibilità: l'NVMe è ampiamente considerato come un'opzione più compatibile rispetto a SAS/SATA e viene frequentemente aggiornato, dal momento che si sviluppa insieme a tecnologie critiche e in rapida evoluzione come AI, ML e cloud computing. La tecnologia NVMe può funzionare senza problemi con tutti i sistemi operativi moderni, compresi i telefoni cellulari, i laptop e le console di gioco.
Larghezza di banda migliorata: la connessione PCIe è più ampia e ha una larghezza di banda maggiore rispetto alle porte SAS o SATA. Inoltre migliora con ogni generazione, raddoppiando la larghezza di banda rispetto alla generazione precedente. SAS e SATA hanno connessioni con larghezza di banda inferiore e sono fisse, quindi non migliorano nel tempo. Un'altra caratteristica che distingue le connessioni PCIe è la loro scalabilità in "corsie," quindi anche nella stessa generazione gli utenti possono raddoppiare la larghezza di banda con un numero doppio di corsie.
Per un approfondimento su NVMe e SATA, consulta "NVMe e SATA: qual è la differenza?"
Fino all'avvento delle unità SSD e del flash storage, SATA era utilizzato con tutti i sistemi di storage HDD. Tuttavia, man mano che le applicazioni mobili, i videogiochi e le nuove tecnologie come l'intelligenza artificiale hanno aumentato le esigenze degli ambienti informatici, i limiti di SATA sono diventati evidenti. In particolare, la bassa velocità e la larghezza di banda di SATA hanno iniziato a rallentare i trasferimenti di dati di grandi dimensioni che erano fondamentali per le funzioni delle nuove applicazioni.
L'NVMe è stato inventato come opzione di storage/trasferimento dei dati migliore rispetto a SATA per le unità SSD in ambienti in cui era necessario trasferire grandi quantità di dati senza rallentare i tempi di elaborazione. L'NVMe consente alle unità SSD di connettersi direttamente alla CPU utilizzando il bus PCIe e un adattatore M.2 o U.2, come avviene per le unità SATA. L'NVMe consente alle unità SSD di collegarsi direttamente alla CPU e di leggere e scrivere rapidamente grandi volumi di dati.
Per ottenere prestazioni più elevate, l'NVMe definisce un'interfaccia di registro, un set di comandi e un gruppo di funzioni per le unità SSD basate su PCIe. Una volta connesso tramite il bus PCIe, il protocollo NVMe facilita la riduzione della latenza e contribuisce a ottimizzare le operazioni di I/O al secondo (IOPS).
I driver NVMe supportano molti dei sistemi operativi (OS), tra cui Windows, Linux e MacOS. Inoltre, il protocollo NVMe supporta tutti i tipi di NVM, comprese le unità SSD con tecnologia flash NAND. Infine, l'NVMe utilizza code di comandi parallele e un "polling loop" piuttosto che il driver di dispositivo basato su "interrupt" dei suoi predecessori, riducendo la latenza e l'overhead di sistema e aiutando a evitare colli di bottiglia della CPU, come nel caso di una scheda grafica che funziona più velocemente della CPU sottostante.
Fattori di forma delle unità SSD NVMe
Un altro importante elemento di differenziazione delle specifiche NVMe è il fattore di forma, ovvero il modo in cui le dimensioni, la configurazione e il design fisico influiscono sulla sua compatibilità con altri dispositivi. Di recente, la Storage Networking Industry Association (SNIA) si è riunita per stabilire l'Enterprise and Datacenter Standard Form Factor (EDSFF), con l'obiettivo di istituire un framework concordato a livello di settore per la tecnologia SSD.
Il fattore di forma standard concordato per un'unità SSD era di 2,5 pollici, che si adattava facilmente all'alloggiamento della maggior parte dei laptop e desktop, rendendo le unità SSD NVMe altamente compatibili con la tecnologia esistente. Poiché l'unità da 2,5 pollici è ampiamente utilizzata in ambienti informatici sia consumer che commerciali, la sostituzione di un'unità HDD con una SSD NVMe è semplice e immediata per gli utenti che desiderano migliorare le prestazioni del proprio sistema.
Unità NVMe m.2
Le unità SSD M.2 sono un altro fattore di forma fisica o connettore utilizzato nelle unità SSD. Anche se il termine viene spesso utilizzato in modo intercambiabile con NVMe, si tratta di tipi diversi di tecnologie di storage. Mentre le unità SSD NVMe si collegano a uno slot PCIlot su una scheda madre, offrendo velocità di trasferimento dati molto più elevate rispetto ai loro concorrenti, le unità m.2 sono un fattore di forma fisico, o connettore, che consente lo storage ad alte prestazioni in piccoli dispositivi con vincoli di potenza come laptop e tablet ultrasottili.
NVMe e memoria dinamica ad accesso casuale
La memoria dinamica ad accesso casuale (DRAM) è un tipo di memoria ad accesso casuale (RAM) molto diffusa e utilizzata da personal computer (PC), server e workstation. Le unità SSD NVMe sono disponibili sia nella versione DRAM che senza DRAM. Le unità SSD NVMe con DRAM sono più costose e più veloci di quelle senza DRAM e rappresentano un'opzione migliore per applicazioni ad alta intensità grafica come i software di editing di foto o video. Le unità NVMe senzaDRAM sono più economiche e più lente, ma comunque molto più veloci delle unità HDD o SSD SATA, il che le rende una buona opzione per gli utenti che non hanno bisogno di velocità o prestazioni elevate per le applicazioni che utilizzano.
La bassa latenza, il basso consumo energetico e la capacità delle unità NVM di archiviare e trasferire dati a una velocità superiore rispetto alle unità SAS e SATA le rendono una scelta per gli usi aziendali e di consumo. Oltre a incrementare le prestazioni e la capacità di data storage, le unità SSD NVMe sono più ampiamente disponibili rispetto alle unità SSD SAS o SATA e possono essere acquistate da aziende di consumo affidabili come Intel e Samsung. Ecco alcuni casi d'uso comuni delle unità NVMe :
La velocità, la programmabilità e la capacità delle NVMe di gestire l'elaborazione parallela le rendono ideali per una vasta gamma di applicazioni di elaborazione ad alte prestazioni, tra cui il trading finanziario ad alta frequenza, l'AI e il machine learning.
Molte applicazioni all'avanguardia richiedono una profondità di coda piuttosto elevata per l'archiviazione. A differenza dei suoi predecessori SAS/SATA , l' NVMe può contenere fino a 65 mila code e comandi per coda, consentendo l'esecuzione di migliaia di comandi in più.
Le unità SSD NVMe consentono ai data center di espandere la capacità di data storage e di offrire prestazioni più elevate a un prezzo paragonabile a quello delle unità SSD SATA, inducendo molte aziende moderne a effettuare questo passaggio. Secondo un report di Enterprise Strategy Group, quasi tre quarti delle organizzazioni utilizzano storage su unità SSD basate su NVM o intendono implementarlo nei prossimi 12 mesi.2
Che tu stia montando un video di una riunione di famiglia o lavorando a un film d'animazione, le elevate velocità di trasferimento dati delle unità NVMe rendono l'editing video notevolmente più veloce. In poche parole, la modifica e il rendering di una scena in un software di editing video generano una grande quantità di dati. Un'unità SSD NVMe è in grado di gestire tutti questi dati senza rallentare il processo.
L'implementazione dell' NVMe nelle applicazioni DevOps containerizzate ha ridotto i tempi delle build di grandi dimensioni e velocizzato le iterazioni nella programmazione per molti sviluppatori. L'NVMe sta inoltre rendendo lo sviluppo più veloce e meno costoso e aiutando i team a effettuare i lanci più rapidamente con una gamma più ampia di strumenti a loro disposizione.
I sistemi di memoria flash NVMe accelerano le prestazioni delle applicazioni e riducono il numero di server fisici necessari nei database relazionali. Questo permette loro di funzionare più velocemente rispetto ai dischi rigidi tradizionali, consentendo alle organizzazioni che li utilizzano di eseguire le query più velocemente.
IBM Storage FlashSystem 5200 è una valida opzione per le aziende che necessitano di uno storage compatto e potente e di tutti i vantaggi che lo storage NVMe può offrire. Parte della famiglia FlashSystem, il modello 5200 unifica la gestione dei dati tra core, cloud ed edge ed è progettato in un rivoluzionario fattore di forma 1U. Il modello 5200 aiuta le aziende a ottenere maggiore velocità, prestazioni e scalabilità dalla propria soluzione di data storage.
Accelera il time to value utilizzando l'infrastruttura cloud-native per le applicazioni su virtual machines e container su Red Hat OpenShift.
IBM Storage Utility è un modello a consumo di IBM Storage che offre ai clienti un modo diverso per ottenere capacità di storage per le loro esigenze aziendali, collegato alle loro iniziative di business, calcolato mensilmente in base all'utilizzo e fatturato trimestralmente.
2 “IDC's Worldwide Enterprise Storage Systems Taxonomy, 2023” (link esterno a ibm.com), autori vari, aprile 2023
2 "ESG Research Report: Data Infrastructure Trends" (link esterno a ibm.com), Enterprise Strategy Group, 15 novembre 2021