Caricamento

NVMe e NVMe-oF: i nuovi protocolli di accesso ai dischi flash

NVMe e NVMe-oF: i nuovi protocolli di accesso ai dischi flash

L’introduzione dei dischi Flash ha aumentato le aspettative degli utenti relativamente alle prestazioni; chiunque utilizzi un tablet o sia in possesso di un PC con disco flash è ormai abituato a tempi di risposta molto rapidi e le stesse performance se le aspetta da tutte le applicazioni aziendali, indipendentemente dal fatto che queste siano più complesse e che spesso siano ospitate in cloud.

Per contro, le performance dei dischi SSD sono arrivate al limite a causa dei colli di bottiglia presenti nel path che il dato percorre per arrivare al disco. Il vero limite è da imputare al fatto che viene utilizzato SCSI come protocollo di comunicazione. SCSI è un protocollo che è stato sviluppato molti anni fa (progettato nel 1978; https://it.wikipedia.org/wiki/Small_Computer_System_Interface) per l’accesso ai dischi meccanici (gli odierni dischi SAS e NL-SAS) e non è ovviamente ottimizzato per la gestione dell’accesso ai dischi flash.

Il limite principale è dovuto al fatto che il protocollo SCSI inserisce le richieste di I/O in una singola coda, contenente un massimo di 256 comandi. Questo protocollo era adatto per i dischi meccanici in quanto le richieste di I/O rimanevano si in attesa nella coda ma le testine di lettura/scrittura (in grado di eseguire una sola richiesta per volta) erano occupate a cercare i dati sulla corretta porzione di disco (ovvero il collo di bottiglia era il disco e la sua velocità di accesso al dato). La situazione è cambiata con l’introduzione dei dischi Flash: non ci sono parti mobili e quindi la latenza è molto bassa. Ora il collo di bottiglia per l’accesso ai dati in questa tipologia di dischi non è più il disco ma la coda SCSI. Inoltre l’introduzione dell’interfaccia PCI Express (PCIe), in grado di gestire fino a 64.000 code ognuna contenente fino a 64.000 comandi ha ulteriormente evidenziato la necessità di costruire un nuovo protocollo per l’accesso ai dati. Dal 2014 ha iniziato lavorare a questo protocollo il consorzio NVM Express (https://nvmexpress.org/). Si tratta di una organizzazione che raggruppa i principali produttori di Hardware/Software e che ha come obiettivo lo sviluppo di questo nuovo protocollo standard in grado di sfruttare tutti i vantaggi derivanti dall’utilizzo delle memorie non-volatili installate su bus PCIe. Tra i membri dell’organizzazione abbiamo i seguenti:

NVM Express (NVMe) è anche il nome del protocollo realizzato: si tratta di una interfaccia (HCI: Host Controller Interface) ad alta velocità progettata per tutti quei sistemi che utilizzano dischi allo stato solido su bus PCI express. NVMe sfrutta le caratteristiche del bus PCIe e dei dischi a stato solido migliorando il numero di IOPS e riducendo la latenza. NVMe supporta 64000 code ognuna in grado di contenere fino a 64000 comandi. Le code sono progettate in modo tale che i comandi di I/O e le risposte a tali comandi operino sullo stesso core di CPU e possano sfruttare le capacità di elaborazione parallela dei processori multi-core. La grande quantità di code disponibili permette ad ogni applicazione di avere una propria coda indipendente, quindi non c’è I/O lock.

(Fonte https://nvmexpress.org)

L’evoluzione più naturale del protocollo NVMe è quello di permetterne l’utilizzo anche per sistemi che sono connessi a storage esterni tramite rete FC, Ethernet o Infiniband. Per questo motivo è stato introdotto NVMe over Fabrics (NVMe-oF). Questo protocollo permette di estendere i benefici di NVMe appena descritti non solo all’accesso ai dischi flash locali ma anche all’accesso a storage AllFlash esterni.

(Fonte https://nvmexpress.org)

 

NVMe è sviluppato su due tipologie di trasporto:

  • RDMA: è un meccanismo di trasporto da RAM a RAM tra due computer. I dati vengono inviati da uno spazio indirizzo di memoria a un altro, senza richiamare il sistema operativo o il processore. Supportato da Infiniband, RoCE (RDMA over Converged Ethernet ) e iWARP (Internet Wide-Area RDMA Protocol)
  • Fibre Channel (FC-NVMe): sviluppato dal comitato T11 dell'International Committee for Information Technology Standards (INCITS); consente anche la coesistenza di altri protocolli su di esso, come NVMe, SCSI e FICON. In questo modo è possibile avere sulla stessa infrastruttura sia sistemi NVMe che sistemi FC (switch e HBA di ultima generazione sono in grado di gestire entrambi i protocolli)

Tutte le componenti devono supportare il protocollo NVMe-oF: il server, gli switch utilizzati per la connessione allo storage e lo storage stesso.

Molte aziende hanno già attive soluzioni FC di storage area network; gli switch FC e le HBA di ultima generazione, mediante upgrade del firmware, sono in grado di gestire anche il protocollo NVMe. In architetture di questo tipo non è necessario sostituire l’intera infrastruttura ma è sufficiente inserire in SAN uno storage NVMe, continuando a utilizzare il protocollo FC per l’esistente e il protocollo NVMe-oF verso il nuovo storage. È così possibile ridurre i costi e rischi di migrazione.

Tra i principali storage vendor con a portafoglio soluzioni storage NVMe troviamo Netapp e Pure Storage.

 

A cura di 

Franco Benuzzi - Business Manager Datacenter 

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.