Storage

NVM Express, cos’è?

Pagina 2: NVM Express, cos’è?

NVM Express, cos'è?

Prima di inoltrarci nelle prove dei nuovi prodotti di Intel dobbiamo tornare al 2011. Anche se sono passati solo tre anni, allora il panorama degli SSD era decisamente diverso. Intel e gli altri produttori spingevano sugli SSD come soluzioni per rimpiazzare gli hard disk. Occupavano gli stessi form factor (2.5" con spessore 7 e 9,5 mm), usavano la medesima interfaccia fisica (SATA 6Gb/s) e lo stesso device stack (AHCI). Prestazioni e affidabilità miglioravano a intervalli regolari. Le specifiche come la costanza prestazionale e la resistenza in scrittura non sarebbero state riconosciute universalmente per oltre un anno. Alcuni SSD saturavano l'interfaccia SATA con i carichi di lavoro sequenziali, mentre altri avevano problemi legati alla loro architettura. I controller, il firmware e la memoria NAND non si erano evoluti al punto da rappresentare una sfida per l'interfaccia host.

Poi, nel marzo 2011, l'industria ha preso una posizione lungimirante e ha rilasciato la specifica NVMe 1.0. E con industria indichiamo quasi tutte le aziende che operano nel settore della memoria flash. Un Promoter Group di 13 aziende, sostenuto da oltre 80 membri tra cui Intel, Micron, Samsung, Dell, EMC, NetApp, IDT e Marvell. Il loro obiettivo era liberare i futuri prodotti di archiviazione dai limiti di SATA e AHCI. NVMe (Non-Volatile Memory Express) è una specifica creata da zero che rimpiazza AHCI negli SSD connessi tramite PCIe, focalizzandosi su efficienza, scalabilità e prestazioni. AHCI è stato sviluppato in un momento in cui parole come settori e cilindri erano usate per descrivere l'archiviazione, e lo stack overhead era una piccola frazione del tempo d'accesso multimediale.

Quello che potrebbe scioccarvi è che mentre NVMe fa molto per ridurre la latenza di controller e software, quella legata alla NAND rimane il contributo maggiore, come illustrato nella slide sopra. Anche se questa è la realtà attuale, NVMe nasce con il futuro della memoria non volatile in mente. Le tecnologie di memoria resistiva come la Phase Change Memory e la Magnetic Tunnel Junction potrebbero offrire un incremento di velocità fino a 1000 volte rispetto alla NAND attuale. A quel punto il collo di bottiglia si sposterà sul device stack.

Il ruolo di NVMe non è limitato solamente alla riduzione della latenza. Con AHCI l'idea di parallelismo non è totalmente integrata nello standard. Caratteristiche come Native Command Queuing aiutavano a ottimizzare i trasferimenti, ma l'interfaccia non ha mai permesso agli SSD di massimizzare davvero il loro parallelismo interno.

Se leggete recensioni di SSD, solitamente vedete le IOPS misurate su un intervallo di queue depth, normalmente fino a 32 comandi. Questo è il punto in cui la maggior parte degli SSD SATA raggiunge le proprie prestazioni di picco. È anche il limite di AHCI. Molti controller flash possono gestire queue depth maggiori. Potete vedere tutto questo voi stessi usando SSD PCIe con i propri driver proprietari. Il P320h di Micron non ha raggiunto le proprie prestazioni di picco fino a quando la queue depth ha toccato 256. Con NVMe, non solo i comandi per coda possono salire da 32 a 64.000, ma il numero di code sale da 1 a 64.000. Ecco ciò che chiamiamo "fare piani per il futuro".

La compatibilità con i driver è uno dei maggiori problemi che hanno tutti gli SSD PCIe. Ogni prodotto è distribuito con un software proprietario. Alcuni produttori fanno un grande lavoro, altri no. A meno che il produttore che avete scelto non abbia lavorato in modo specifico non potevate avviare dal disco. Persino l'SSD 910 di Intel non era avviabile. I consumatori avevano bisogno di qualcosa di più.

Con NVMe c'è un driver standard che sarà supportato tra diverse piattaforme, incluso il supporto BIOS per l'avvio. Windows 8.1, Windows Server 2012 R2 e Linux sono alcuni dei sistemi operativi che già possono gestire al meglio gli SSD NVMe. Anche Intel ha un driver standard dedicato. Rimane da vedere se i concorrenti dell'azienda si affideranno al supporto nativo o cercheranno di offrire maggiore valore attraverso software proprietario.

Avviare da Intel SSD DC P3700

L'SSD DC P3700 permette l'avvio, nonostante un'intera lista di avvertimenti. Il primo è che è necessario un sistema che supporti UEFI 2.3.1. Poi è essenziale un sistema operativo con supporto driver nativo, come Windows Server 2012 R2. Infine bisogna installare il software. Più facile a dirsi che a farsi.

Il nostro primo tentativo ci ha lasciati davanti al prompt d'installazione di Windows. La configurazione era in grado di vedere il P3700, ma si lamentava del fatto che non fosse avviabile. A quel punto, siamo entrati nel BIOS per vedere se il P3700 apparisse. Era introvabile. Sulla base di un'intuizione siamo entrati nella schermata di avvio per rivedere le nostre opzioni. C'erano due opzioni per il DVD-ROM: Legacy e UEFI. Scegliendo la seconda abbiamo risolto il problema. A quel punto Windows non solo riconosceva il P3700 ma ci permetteva anche di usarla come soluzione di avvio. La cosa interessante, una volta completata l'installazione, è che il P3700 appariva nel BIOS come opzione di avvio UEFI – non come SSD DC P3700, ma come boot manager device di Windows.

L'ultimo passo era confrontare il tempo di avvio del nostro server passando dall'SSD DC S3700 da 800 GB all'SSD DC P3700 con la stessa capacità. Ricordate che questo è un server legittimo; i loro processi di avvio non sono quasi mai descritti come veloci.

  • Tempo di avvio Intel SSD DC S3700: 64,8 secondi
  • Tempo di avvio Intel SSD DC P3700: 44,5 secondi

Abbiamo registrato un calo di 20 secondi nel tempo di avvio. Quasi 20 secondi coinvolgono il passaggio attraverso il processo POST. Come potete vedere dall'immagine diskpart, Windows riconosce l'SSD di Intel come dispositivo di avvio. La cosa interessante, anche se non totalmente inaspettata, è che il sistema operativo lo riconosce come prodotto NVMe e capisce dove risiede all'interno della struttura PCIe.