VMware aggiunto di recente NVMe su tessuto (NVMe-oF) come opzione del protocollo di rete di storage in vSphere 7.0. Il fatto che la soluzione di storage condiviso più veloce possa ora essere utilizzata dal software di virtualizzazione più popolare al mondo rappresenta un punto di svolta, poiché apre una serie completamente nuova di casi d’uso per un data center virtualizzato. Ciò significa anche che ora esistono applicazioni bare metal in grado di funzionare su macchine virtuali (VM) abilitate per NVMe-oF su vSphere. Questi includono l'intelligenza artificiale (AI), l'apprendimento automatico (ML), i database in-memory, il calcolo ad alte prestazioni (HPC), il trading ad alta frequenza (HFT), l'elaborazione delle transazioni online (OLTP), nonché qualsiasi altra applicazione che richieda latenza estremamente bassa e storage ad alta capacità.
VMware aggiunto di recente NVMe su tessuto (NVMe-oF) come opzione del protocollo di rete di storage in vSphere 7.0. Il fatto che la soluzione di storage condiviso più veloce possa ora essere utilizzata dal software di virtualizzazione più popolare al mondo rappresenta un punto di svolta, poiché apre una serie completamente nuova di casi d’uso per un data center virtualizzato. Ciò significa anche che ora esistono applicazioni bare metal in grado di funzionare su macchine virtuali (VM) abilitate per NVMe-oF su vSphere. Questi includono l'intelligenza artificiale (AI), l'apprendimento automatico (ML), i database in-memory, il calcolo ad alte prestazioni (HPC), il trading ad alta frequenza (HFT), l'elaborazione delle transazioni online (OLTP), nonché qualsiasi altra applicazione che richieda latenza estremamente bassa e storage ad alta capacità.
Noi di StorageReview.com siamo sempre interessati a testare le tecnologie più recenti per vedere come funzionano nel mondo reale. Considerata la nostra precedente esperienza con NVMe-oF, ci aspettiamo che migliori in modo significativo le prestazioni delle applicazioni per vSphere. Per avere un'idea reale di come NVMe-oF influirà sulle prestazioni, lo confronteremo con iSCSI, che è l'attuale portabandiera per lo storage a blocchi in un data center vSphere. Ma i nostri test avranno una svolta unica, poiché non utilizzeremo una tecnologia di nicchia altamente specializzata. Utilizzeremo invece prodotti che si trovano comunemente nei data center odierni. I nostri test verranno eseguiti su un server Dell R720XD connesso tramite gli adattatori a doppia porta ConnectX-5 di NVIDIA in esecuzione a 25GbE a un Pure Storage FlashArray//X che supporta NVMe-oF.
Prima di arrivare ai risultati dei nostri test, ti forniremo una panoramica di ciò che VMware supporta in termini di NVMe-oF, quindi ti forniremo un po' di background su NVMe e NVMe-oF e spiegheremo perché sono più performanti di iSCSI. Tratteremo anche alcuni dei passaggi che abbiamo eseguito per configurare NVMe su vSphere.
VMware ha recentemente abilitato il supporto NVMe-oF (aprile 2020), sebbene lo standard NVMe-oF sia stato rilasciato nel 2016. Linux è in grado di utilizzarlo dal 2018 e il supporto NVMe-oF negli array di archiviazione è disponibile anche da alcuni anni . NVMe-oF è considerata una tecnologia emergente ma stabile. Nell'aprile del 2020, VMware ha rilasciato vSphere 7.0 e questa versione includeva il supporto per NVMe-oF, consentendo la connettività agli array NVMe con NVMe over Fibre Channel (NVMe/FC) o NVMe over RDMA Converged Ethernet (NVMe-RoCE, indicato anche come NVMe/RDMA).
Panoramica di NVMe e NVMe-oF
Fino a poco tempo fa, gli SSD erano il de facto supporti standard per l'archiviazione collegata. Tuttavia, presentano anche un collo di bottiglia critico. Gli SSD utilizzano connettori SATA o SAS, progettati per essere utilizzati con gli HDD e questo limita gravemente le prestazioni di un SSD. Per risolvere questo problema, nel 90 un consorzio di oltre 2011 aziende si è unito e ha rilasciato una nuova specifica per connettere gli SSD ai computer che non avrebbero avuto questo collo di bottiglia SATA. Questa soluzione alla fine divenne nota come NVMe.
I dispositivi NVMe sono veloci. Mentre gli SSD SATA/SAS hanno cambiato radicalmente il settore dello storage nell’ultimo decennio, NVMe sta cambiando radicalmente il settore dello storage in questo secolo. Ad esempio, nei nostri recenti test utilizzando un carico di lavoro di lettura 4K, abbiamo scoperto che un'unità SATA (Kingston DC500M) potrebbe fornire poco meno di 80,000 IOPS, ma un'unità NVMe (Kingston DC1000M) potrebbe fornire 580,000 IOPS, una differenza enorme di 7.25 volte. Ci sono molte ragioni tecniche per spiegare perché NVMe è molto più performante delle unità SATA, ma una delle più importanti è che ha un percorso dati più breve. Il diagramma seguente mostra un'illustrazione semplificata di come il percorso dei dati sia notevolmente più breve per NVMe rispetto allo storage di ultima generazione come SAS.
I suoi miglioramenti delle prestazioni, insieme al precipitoso calo del prezzo, hanno reso NVMe il preferito dei moderni data center.
Poco dopo che le unità NVMe sono diventate ampiamente utilizzate nei data center, le persone si sono rese conto che i dispositivi non venivano sfruttati al massimo delle loro potenzialità e il loro limite derivante dall'essere dispositivi di archiviazione diretti è diventato più evidente. I dispositivi NVMe dovevano essere disaccoppiati dal server, quindi un altro gruppo di aziende si è riunito e ha sviluppato una specifica su come fornire NVMe su una rete. Una volta disponibile il meccanismo di trasporto per lo storage NVMe, abbiamo potuto aggregare, astrarre e condividere i dispositivi NVMe in un sistema di storage su molti sistemi diversi, inclusi gli host ESXi. NVMe-oF utilizza la terminologia target/iniziatore.
RoCE consente l'accesso remoto diretto alla memoria (RDMA) su una rete Ethernet. Esistono due versioni di RoCE: RoCE v1 e RoCE v2. Mentre RoCE v1 consente la comunicazione tra due host qualsiasi nello stesso dominio di trasmissione Ethernet (livello 2), RoCE v2 viene eseguito su TCP (livello 3) ed è quindi instradabile, consentendogli di connettersi a host al di fuori di un dominio di trasmissione Ethernet. A causa dei vantaggi intrinseci e della popolarità nel data center, VMware supporta solo v2. Per tutta la durata di questo articolo, faremo riferimento a RoCE v2 semplicemente come RoCE.
RoCE richiede controller di interfaccia di rete RDMA (rNIC) anziché NIC standard. Le reti RoCE di solito richiedono la configurazione del controllo del flusso prioritario, ma gli switch Spectrum sono ottimizzati per il controllo della congestione se utilizzati con adattatori ConnectX, che consentono una configurazione pari a zero. RoCE è molto popolare e dispone di un fiorente ecosistema che fornisce sia rNIC che sottosistemi NVMe-oF. Attualmente è utilizzato da alcuni dei data center iperscalabili più grandi del mondo e ciò ha fatto scendere notevolmente il prezzo delle rNIC rispetto a quando sono state introdotte per la prima volta.
Utilizzando RDMA, i dati possono essere trasferiti direttamente a un host dai dispositivi NVMe-oF senza dover essere copiati nei buffer di memoria, come accadrebbe se si utilizzasse uno stack TCP/IP (Transmission Control Protocol/Internet Protocol) standard. Bypassando i buffer, RDMA riduce l'utilizzo della CPU sull'host e diminuisce la latenza per accedere ai dati sul dispositivo NVMe remoto. Sono molti i motivi tecnici per cui NVMe-oF è più performante rispetto alle tecnologie di storage di rete di ultima generazione. Da notare l'enorme numero di code (64K) supportate da NVMe-oF, ma forse il più significativo è il percorso dati NVMe-oF. Il diagramma seguente mostra un'illustrazione semplificata di come il percorso dei dati sia notevolmente più breve per NVMe-oF rispetto allo storage iSCSI.
RoCE utilizza UDP, che influisce sulle prestazioni poiché UDP richiede meno spese generali. Tuttavia, RoCE si affida alla compatibilità end-to-end per fornire una connettività completa senza perdite. Sebbene gli switch di rete moderni supportino la connettività senza perdite, è necessario prestare attenzione per garantire che uno switch più vecchio che non supporti la connettività senza perdite non si trovi nel percorso di rete di NVMe-oF.
Il risultato di tutto ciò è che NVMe-oF consente l’accesso alle unità NVMe di una rete come se fossero locali rispetto al server che accede. I primi report hanno dimostrato che la latenza per lo storage in pool è di circa 100μs, invece dei 500μs o più di un array di storage all-flash iSCSI.
NVMe-oF con vSphere
I requisiti per NVMe-oF con vSphere sono semplici:
- Array NVMe che supporta il trasporto RDMA (RoCE).
- Host ESXi compatibile
- Switch Ethernet che supportano una rete senza perdite
- Adattatore di rete che supporta RoCE
- Software NVMe su adattatore RDMA
- Controller NVMe
- Una rete senza perdite sia a livello 2 che a livello 3 o rete con perdite con la soluzione ZTR (Zero Touch RoCE) di NVIDIA
- Collegamenti dedicati, VMkernel e adattatori RDMA a target NVMe
- VLAN dedicata di livello 3 o connettività di livello 2
Poiché NVMe-oF è una novità per VMware, non tutte le funzionalità di vSphere sono disponibili. Alcune funzionalità che abbiamo notato mancavano sono il supporto per VMDK condivisi, Raw Device Maps (RDM), vVol e la possibilità di eseguire l'avvio da NVMe-oF.
Implementazione di NVMe-oF
Abbiamo utilizzato le rNIC ConnectX-5 di NVIDIA, una delle schede più comuni nei data center. Queste schede sono adattatori di rete a porta singola o doppia abilitati per RDMA. Sono disponibili per server PCIe Gen 3.0 e Gen 4.0 e forniscono supporto per 1, 10, 25, 40, 50 e 100 Gb. Hanno una latenza di 750 ns e possono trasmettere fino a 200 milioni di messaggi al secondo. Se utilizzati con carichi di lavoro di storage, supportano un'ampia gamma di tecnologie di accelerazione.
Per i nostri test, abbiamo eseguito le schede PCIe Gen 3.0 ConnectX-5 a 25GbE in una coppia di server Dell R720 su una rete connessa tramite una coppia di switch NVIDIA Spectrum SN2010 all'array flash Pure Storage.
Per prima cosa abbiamo verificato che stavamo eseguendo il driver nmlx5_core inserendo esxcfg-nics -l |grep -E 'Nome|NVIDIA'.
Se avessimo eseguito il driver nmlx4_core, avremmo potuto abilitare RoCE dalla CLI ESXi.
Il processo per abilitare NVMe-oF (simile a quello per impostare e abilitare iSCSI) prevedeva la configurazione di vSwitch, gruppi di porte e porte vmkernel sugli host ESXi. La differenza principale era che dovevamo aggiungere almeno due adattatori software NVMe su RDMA a ciascun host ESXi.
L'ultimo passaggio che dovevamo completare era identificare il nome qualificato NVMe (NQN) dell'host ESXi inserendo Ottieni informazioni su esxcli nvme.
Sull'array Pure Storage l'operazione era simile alla configurazione di un array iSCSI, con una grande eccezione. Avevamo bisogno di selezionare Configura NQN.
Risultati dei test di NVMe-oF con vSphere
Per questo test abbiamo mantenuto tutto costante ad eccezione del tessuto. Ciò che vogliamo valutare è l'impatto del passaggio dal più tradizionale iSCSI a RoCE. Per essere chiari, questo non è un esercizio di benchmarking sullo storage; questo è un esame per esaminare i vantaggi di NVMe-oF in un ambiente VMware che richiede pochissime modifiche. Abbiamo utilizzato due server Dell EMC PowerEdge e un Pure FlashArray//X R2 per il backend di storage.
Il nostro piano di test prevedeva la misurazione delle prestazioni aggregate di 8 VM (4 su ciascun host ESXi) e l'utilizzo di vdBench per misurare i tradizionali quattro angoli e i carichi di lavoro misti. Ciascuna VM consumava 64 GB di spazio di archiviazione, con un ingombro totale di 512 GB per carico di lavoro disponibile per confrontare le modifiche delle prestazioni al variare del protocollo.
Per interpretare questi risultati, tenere presente che per il throughput è preferibile un miglioramento, mentre per la latenza è preferibile una diminuzione.
Nel nostro primo carico di lavoro che misurava le prestazioni di lettura casuale 4K con un carico dell'80%, abbiamo misurato un aumento del throughput del 14.6% e un calo della latenza di lettura del 21.4%.
Successivamente, esaminando la larghezza di banda di lettura in un carico di lavoro di lettura sequenziale di 64K, abbiamo notato un enorme aumento dell'81.3% nel throughput, nonché una diminuzione del 36.8% nella latenza, sempre con un carico dell'80%.
Sebbene i maggiori miglioramenti misurati si siano verificati nei carichi di lavoro di lettura, abbiamo esaminato anche alcuni carichi di lavoro misti comuni, il primo dei quali era SQL 90/10. In questo carico di lavoro, abbiamo misurato una diminuzione della latenza fino al 78.2% con un carico del 100% e un calo della latenza del 43.4% con un carico dell'80%.
Infine, nel nostro carico di lavoro Oracle 90/10, abbiamo riscontrato un calo della latenza del 13.2% con un carico del 100% e un calo della latenza del 35.7% con un carico dell'80%.
In questi test, RoCE ha chiaramente apportato notevoli miglioramenti in un'ampia gamma di carichi di lavoro comuni nell'azienda.
Conclusione
I nostri test hanno dimostrato che NVMe-oF nel mondo reale è più di un semplice concetto. NVMe-oF è in grado di offrire prestazioni eccezionali utilizzando l'hardware attuale del tuo data center, come server con slot PCI Gen 3.0, schede NIC ConnectX-5 di NVIDIA e Pure Storage FlashArray//X R2 (Pure ora offre //X R3 con prestazioni ancora maggiori miglioramenti delle prestazioni).
Nei nostri test, abbiamo riscontrato miglioramenti significativi nei carichi di lavoro di lettura di blocchi piccoli e grandi. Per esaminare l’impatto nel mondo reale, ci siamo concentrati su una saturazione del carico di lavoro inferiore al 100%, poiché la maggior parte dei carichi di lavoro non satura completamente la piattaforma di storage sottostante. Nel nostro test che misurava le prestazioni di lettura casuale 4K, la latenza è scesa del 21.4% con un carico di lavoro dell'80%. Le prestazioni di lettura sequenziale con un carico di lavoro di 64K hanno registrato un enorme aumento dell'81.3% nel throughput con un carico dell'80%. Abbiamo anche riscontrato riduzioni della latenza del 43.4% e del 35.7% nei nostri carichi di lavoro SQL 90/10 e Oracle 90/10, rispettivamente, sempre con un carico dell'80%. Questi numeri indicano che esiste un’ulteriore opportunità di trasferire carichi di lavoro bare metal impegnativi in VMware.
Siamo fiduciosi che NVMe-oF sarà la prossima grande novità nella tecnologia di storage e prevediamo che la sua popolarità nei data center prolifererà rapidamente. Saremo in prima linea in questa categoria man mano che si svilupperà nei prossimi anni e non vediamo l'ora di indagare su altre tecnologie NVMe adiacenti non appena verranno rilasciate.
Per ulteriori informazioni:
Questo rapporto è sponsorizzato da NVIDIA. Tutti i pareri e le opinioni espressi in questo rapporto si basano sulla nostra visione imparziale dei prodotti in esame.