QSAN Q500: il SAN professionale enterprise

QSAN Q500: il NAS professionale

intro

Siamo onorati di presentare in anteprima italiana assoluta la recensione del nuovissimo QSAN Q500, un dispositivo professionale dedicato allo storaging di rete. Come avremo modo di vedere il Q500 è un sistema SAN dotato di quadrupla interfaccia 10Gbe iSCSI e ben 6 porte da 1Gbps.


Il dispositivo che andiamo a disimballare è categorizzato come dispositivo SAN (Storage Attached Network), destinato ad un target di aziende di media entità, desiderose di mantenere una propria infrastruttura hardware per l’immagazzinamento dei dati.

Come ci si aspettava, l’imballaggio del dispositivo è pressoché impeccabile: QSan ha utilizzato diversi strati di polistirolo duro, interposto tra i vari componenti del bundle. Una volta rimosso l’imballaggio protettivo riusciamo ad elencare tutto il contenuto della scatola, che riportiamo di seguito:

  • -         1x Q500-P20
  • -         Viti di montaggio per dischi
  • -         Viti di montaggio per MUX
  • -         Staffe e viti di montaggio rack
  • -         2x Cavo Console
  • -         1x Cavo UPS
  • -         2x Cavo alimentazione
  • -         DVD di installazione e manualistica

La dotazione del dispositivo è completa e coerente con le aspettative di ogni sistemista. In particolare troviamo accessori opzionali in altri contesti, come il cavo di connessione all’UPS e quelli di IO per la connessione ad una console RS 232. E’ inoltre interessante notare che QSAN abbia incluso nella dotazione anche le viti necessarie al montaggio degli adattatori MUX per i dischi SAS, oltre che alle staffe per il montaggio rack.


Essendo stato concepito per le aziende e per i professionisti del settore IT, il Q500 è un dispositivo progettato per essere facilmente manutenibile, volto alla minimizzazione del downtime. Per tale ragione QSAN ha optato per una struttura fortemente modulare, garantendo ridondanza per qualsiasi componente al suo interno. Come avremo modo di analizzare infatti, possiamo anticipare che il Q500 è composto da elementi hardware ridondanti, in grado di operare simultaneamente e/o singolarmente.

Quanto appena affermato trova immediatamente riscontro nella componentistica che caratterizza il dispositivo:

  • -         2 alimentatori
  • -         2 controller dedicati
  • -         2 sistemi di raffreddamento
  • -         16 slot dischi, configurabili in array ridondanti

Bisogna però considerare che il Q500 è perfettamente in grado di funzionare anche con un solo elemento per classe di categoria: un solo alimentatore è sufficiente per alimentare l’intera macchina (due sistemi di raffreddamento, due controller e 16 dischi), così come una sola scheda logica è in grado di gestire tutti i 16 dischi e le varie interfacce di rete. Allo stesso modo i sistemi di raffreddamento sono ridondati: doppia ventola per slot, per un totale di ben 4 ventole.

La ridondanza dei sistemi hardware, da sola, non sarebbe però sufficiente a limitare le tempistiche di downtime in casi di manutenzione straordinaria. Infatti, qualora un controller dovesse gustarsi, non sempre è possibile sostituire “on-the-fly” il componente. Talvolta i sistemisti vengono costretti a spegnere completamente la macchina prima di poter effettuare l’operazione. Il Q500 invece permette facilmente la sostituzione di qualsiasi degli elementi sopra indicati grazie all’architettura completamente HOT-SWAP modulare che esso implementa: ogni componente può essere infatti sfilato dal rack anche a caldo, mentre la macchina è in funzione, per essere subito sostituito. Tale operazione non comporta lo shutdown e permette comunque al sistema di funzionare in modo corretto. Qualora venisse rimosso un disco facente parte di un array RAID, ovviamente, il Q500 segnalerà la situazione di anomalia, sonoramente e visivamente.

 


I due controller che compongono il cuore del Q500-P20 sono amministrati da processori Intel ad alto risparmio energetico e modeste prestazioni. Si tratta infatti di CPU Intel Atom appartenenti alla serie S1200, destinati esclusivamente al mercato enterprise. Più nello specifico le CPU di cui il Q500 è dotato sono Intel Atom S1289: processori di recente sviluppo (2013) destinati al mercato server per lo storaging. Studiando più in dettaglio l’architettura di queste CPU, scopriamo che la serie S12X9 di Intel è pensata secondo i canoni dell’integrabilità e del risparmio energetico. Infatti, l’S1289 costituisce un SOC dotato di doppio core di elaborazione e del famigerato Crystal Beach DMA (CBDMA). Il CBDMA è un modulo hardware integrato nel SOC in cui alberga anche il processore, in grado di gestire IO complesso attraverso il bus PCI-Express. Visti i fini di utilizzo di questa CPU, assume grande rilevanza il pieno supporto al RAID5 e RAID6 che il CBDMA offre, soprattutto per merito di un apposito modulo XOR per il calcolo della parità dei dati. 

Ogni controller dispone di una CPU, per un totale di due CPU complessive. Ogni singola CPU è dotata di due core fisici e supporta la tecnologia Hyper Threading. Questo fa si che si possano avere fino a 8 thread (di cui 4 emulati) per l’intero controller. La memoria cache di terzo livello di cui questi processori possono avvalersi ammonta ad appena 1 Mb (512Kb per core fisico). La frequenza nominale di funzionamento delle cpu è invece di 2.00 Ghz. Se utilizzati in sistemi general purpose, le cpu in questione sarebbero inadatte a fornire prestazioni adeguate. Tuttavia, grazie al CBDMA ed al supporto di tecnologie specifiche per la comunicazione diretta su rete 10GbE ISCSI, queste CPU sono ben che sufficienti per le mansioni cui sono destinate: grazie alla presenza di hardware dedicato per la gestione degli array raid e delle reti lan, la cpu ha il solo compito di permettere la comunicazione tra dispositivi di rete e array raid. In parole povere le due cpu devono gestire un sistema operativo semplice e snello, ed allo stesso tempo garantire consumi bassi. Infatti, è proprio in questo che i due processori Atom si distinguono: seppur siano dual core con hyper threading, il loro TDP è di appena 14.1 Watt.

Seppur destinati ad applicazioni di limitate esigenze computazionali, le due cpu in questione supportano appieno alcuni standard classici di processori enterprise. E’ il caso della tecnologia Intel VT-X per l’emulazione di sistemi virtuali e il supporto di memoria con codice a correzione di errore (ECC). Infatti, ogni scheda logica è dotata di un banco di memoria ram DDR3 A-DATA da 4Gb, capace di funzionare a 1600MHz. Tuttavia, sebbene le memoria siano in grado di operare ad una più alta frequenza, i processori supportano nominalmente solo banchi da 1333 MHz, perciò il loro funzionamento è limitato a tale frequenza.

Oltre alla CPU, il sistema di storaging fa affidamento a due SAS Expander (uno per controller), incaricati del routing dalla CPU ai dispositivi SAS connessi al Q500-P20.

In dettaglio, come si evince dalle foto sopra riportate, ogni controller logico dispone di un chip di espansione SAS, comunemente detti SAS-Expander. Più nello specifico, identifichiamo due LSI SAS2x36, ovvero due SOC basati su un processore ARM926, operante alla frequenza di 150MHz e dotati di 512Kb di memoria dedicata. Tecnicamente, ognuno di questi expander può supportare fino a 36 dispositivi SAS, tramite gli standard di connessione SAS / SATA fino ai 6Gbps. In questo caso i dispositivi dovranno gestire al più 16 dischi.

 


Continuando l’analisi del controller logico, passiamo ora ai componenti che amministrano la comunicazione di rete del dispositivo. Come anticipato più volte nel corso di questo articolo, il Q500 dispone di connettività Ethernet 1Gbps, 10Gbps iSCSI, di livello professionale.

In primo luogo, per ogni scheda logica, identifichiamo un controller dedicato per doppia interfaccia 10Gbe, basato su chip Intel 82599ES. Si tratta di un chip prodotto con processo produttivo a 65nm, dotato di doppia porta 10Gbe, connesso al bus di sistema attraverso standard PCI-Express 2.0. Tra le caratteristiche principali di questo chip, notiamo il supporto per la tecnologia NC Sideband. Sideband consiste in un sistema di monitoring e management del server, bypassando il SO e utilizzando un processore dedicato (chiamato MC) per monitorare e manutenere il server da remoto. Inoltre il controller 82599ES supporta nativamente gli standard iSCSI, FCoE e NFS, nonché varie altre tecnologie di condivisione delle risorse in ambienti virtualizzati (di fatto non rilevanti per il NAS in questione). E’ il caso del supporto alla tecnologia VMDq, che permette di filtrare o inviare contemporaneamente uno stesso pacchetto sia al sistema HOST che ad eventuali sistemi guest virtualizzati, abbattendo i tempi di delay dovuti a driver software per emulare switch ethernet. Interessante è anche la tecnologia Intel DDIO, tramite la quale la comunicazione tra dispositivo di rete e CPU avviene direttamente attraverso la cache della cpu, evitando la memoria di sistema. Per maggiori informazioni in merito al chip di rete in questione, rimandiamo l’utente al website ufficiale Intel: http://ark.intel.com/it/products/41282/Intel-82599ES-10-Gigabit-Ethernet-Controller.

Sempre per quanto riguarda l’aspetto del networking, il Q500-P20 dispone di ben tre porte Ethernet da 1Gbps ciascuna, per scheda logica (per un totale di 6 porte ethernet). In particolare, la gestione delle interfacce di rete avviene per mezzo dei chip broadcom BCM5720, ovvero controller di rete in grado di gestire due porte 1Gbps ciascuno.

Il controller BCM5720 supporta un gran numero di standard professionali che si possono desiderare da un controller di rete. Innanzitutto troviamo il supporto nativo per boot da iSCSI e boot PXE, nonché il pieno supporto del Wake-On-Lan. Ancora più interessanti per il contesto in cui verranno utilizzate sono le tecnologie VLAN e Link-Aggregation, nativamente supportate dal controller: grazie a loro sarà possibile combinare più NIC in reti virtuali, nonché garantire ridondanza, multipath e load-balancing tra le varie interfacce di rete.

Altre interessanti caratteristiche tecniche riguardano l’implementazione del TSO e dello standard MSI-X su bus PCI-Express. Il TCP Segmentation Offload (TSO) permette di scaricare la gestione degli header TCP-IP-ETHERNET direttamente a livello hardware (tramite ASIC su chip, appunto), segmentando i dati presenti nel pacchetto originale che il SO invia sulla rete. In tal modo la CPU viene scaricata da tali mansioni, che svolgerebbe con tempistiche maggiori rispetto a quelle richieste dalla ASIC.

Lo standard MSI-X costituisce invece un sistema di interruzioni basate su messaggi in memoria piuttosto che su trasmissione tramite segnali hardware. Ciò permette al sistema di evitare cicli di clock per ottenere i dati relativi all’interruzione hardware, accedendo alle informazioni direttamente in memoria. Non solo: il sistema MSI-X consente inoltre anche l’invio di più interruzioni simultaneamente, risparmiando ancora più clock della CPU per la gestione degli stessi. Infine, grazie al pieno supporto dei protocolli TSS e RSS, tramite i quali è possibile direzionare in modo opportuno i pacchetti Ethernet direttamente da/a specifici core della cpu, viene aumentata la capacità di parallelizzare la gestione dei pacchetti in ambienti multi-core.

 


Sebbene siano anche loro componenti hot-swap, consideriamo come interni anche i due alimentatori ed i due moduli di raffreddamento dell’unità SAN.

Per quanto riguarda gli alimentatori di cui il Q500 è dotato, troviamo due dispositivi AcBel FSA035. Si tratta di alimentatori industriali di fascia alta in grado di sviluppare fino a 550W di potenza, con corrente massima erogabile sulla linea 12V pari a 45A. Grande rilevanza assuma la certificazione 80plus gold di questi alimentatori: grazie all’elevata efficienza, queste PSU contribuiscono all’abbattimento dei costi in termini di energia, necessari al dispositivo per funzionare.

Riportiamo di seguito i dettagli in merito al modello di PSU, reperibili dal website ufficiale 80p.org, che ha rilasciato la certificazione per questi alimentatori.

efficienza

Fonte:http://www.plugloadsolutions.com/psu_reports/ACBEL_R1CA2551A_550W_SO-393_Report.pdf

Come è possibile notare, l’efficienza media di queste PSU è del 90,72 %, con un’efficienza tipica del 92,02% (per tipica intendiamo carico pari al 50%). Dal grafico di sinistra, notiamo appunto che il massimo grado lo si ottiene con un carico di 295 W, pari al 92,02%. Con l’aumentare del carico, l’efficienza decresce molto lentamente, tanto da non perdere neppure due punti percentuali al massimo carico nominale. Notiamo invece che la PSU soffre di più, in termini di efficienza energetica, con carichi bassi, inferiori al 50%. In particolare il caso limite è identificato dal test con carico del 10%, dove l’efficienza della PSU è dell’81,18%. Del resto, tale comportamento è normale: la sola ventola di raffreddamento interno della PSU, così come tutti i componenti attivi al suo interno, costituiscono un carico ulteriore che va a sommarsi con quello in uscita dall’alimentatore. Trattandosi però di carichi bassi, con lo scalare del carico a valle della PSU e rimanendo tale consumo interno costante, si alza il valore dell’efficienza.

Il sistema di raffreddamento fa affidamento a due moduli hot-swap, ognuno dei quali è dotato di due ventole AN ACE 80 9G0812P1K081, prodotte da SANYO DENKI. E’ facile intuire che si trattino di ventole da 80mm di diametro, più spesse di quelle che normalmente troviamo sul mercato per sistemi desktop. Infatti le dimensioni delle ventole sono 80mmx80mmx38mm per un peso di 170g ciascuna. Queste ventole lavorano a 12V e sono dotate di sistema PWM per la gestione del regime rotazionale. Tuttavia, abbiamo notato che il Q500-P20 non permette in alcun modo la regolazione del regime rotazionale delle ventole, che rimane costantemente al 100%, generando una notevole rumorosità, pari a 58dbA per singola ventola. Del resto, queste ventole sono in grado di spostare una quantità impressionante di aria: circa 186 metri cubi d’aria per ora spostati da ogni singola ventola, con una pressione statica massima di 2,32 mmHg (Torr).

 


I sistemi di archiviazione aziendali dei giorni nostri sono in grado di fornire più livelli di amministrazione, spesso distinti per complessità e facilità di configurazione. Così come abbiamo avuto modo di notare per il TrioNas U210, anche il Q500 presenta diversi livelli di accesso, differenti per tipologia di interfacciamento e gradi di configurazione consentiti. In generale, il Q500 supporta le seguenti modalità di configurazione:

  • -         Console RS232
  • - Telnet / SSH
  • -         QCentral
  • -         Web GUI

Ordinati dal meno accessibile al più fruibile, le modalità di interfacciamento uomo macchina che il Q500 offre sono in linea di massima coerenti con quelle che avevamo visto per il TrioNas U210: la console rs232 richiede accesso fisico locale al dispositivo e la dimestichezza con ambienti a linea di comando, Qcentral funziona sulla rete locale LAN, richiede una JVM sul dispositivo che lo utilizza, ma consente la configurazione dettagliata del dispositivo; infine la web GUI è la più accessibile (volendo anche direttamente da WAN) e la più immediata in termini di configurazione. Tuttavia, se l’amministrazione da remoto tramite la web gui è consigliabile quando il sistema è stato già configurato e si devono apportare modifiche limitate all’infrastruttura, l’accesso RS232 consente di identificare problemi sul dispositivo in modo diretto, quando spesso la WebGUI non risulta accessibile. Un esempio calzante potrebbe essere quello della prima installazione in una nuova LAN: come impostare gli indirizzi IP delle varie NIC del Q500? In questo caso la webUI e QCentral non sono accessibili se non utilizziamo un server DHCP sulla nostra rete, pertanto si rivela estremamente utile poter agire sulle configurazioni di rete direttamente attraverso la console RS232.

 Una nota particolare va spesa per i sistemi di amministrazione "classici" quali Telnet e SSH. In ambo i casi il Q500 non fornisce una linea di comando con la quale interfacciarsi, la un ambiente misto: console testuali che presentano le stesse voci di menu disponibili sull'interfaccia web. Tale caratteristica facilita i meno esperti, ma di fatto risulta essere ridondante e meno comoda per i più avezzi alle linee di comando. Sarebbe stato più utile, a nostro avviso, lasciare una linea di comando accessibile tramite questi sistemi, dato che il sistema testuale è di fatto identico -in termini di funzionalità - a quello web.


Il QSAN PQ500-P20 offre diverse possibilità in termini di configurazione dei dischi. Data la tipologia dei sistemi SAN e l’utilizzo che se ne fa, bisogna tenere bene a mente che le infrastrutture dati tendono, col tempo, a crescere. Per tale ragione gli amministratori di rete e i sistemisti preferiscono hardware e software in grado di garantire vari livelli di flessibilità: dischi hot-spare, array di dischi estendibili, dischi virtuali combinabili. Un classico esempio in ambiente Linux è LVM (Logical Volume Management): un sistema software in grado di stratificare i sistemi di archiviazione, rendendoli trasparenti al FS.

Il Q500 si basa sullo stesso principio: gli ingegneri QSAN hanno infatti progettato un sistema operativo ad hoc per il SAN, basato su kernel Linux 2.6, sviluppando opportuni moduli (driver) di integrazione software-hardware con il Kernel. In particolare il Q500-P20 prevede l’identificazione di più unità di storage, ognuna con caratteristiche e finalità differenti:

  • Dischi fisici
  • Array Raid
  • Dischi Virtuali

Il primo livello identifica singolarmente ogni disco installato nel dispositivo. Questo corrisponde al livello più basso di gestione dello spazio di archiviazione: è possibile identificare i dischi guasti o che presentano segnali di failure imminente e localizzare tali dispositivi in modo semplice tramite la funzionalità di “indicatore luminoso”, che permette l’accensione del led relativo al disco in analisi.

Lo strato soprastante a quello fisco è rappresentato dal driver di aggregazione RAID. Questo modulo consente di combinare più dischi in configurazioni RAID standard quali: 0,1,3,5,6,1+0,0+1. Sono inoltre possibili anche configurazioni avanzate come il RAID 50 e come il RAID 60. Il livello di aggregazione raid permette la definizione anche di alcuni parametri di caching: cache in scrittura e readahead.

Direttamente al di sopra dello strato di aggregazione RAID viene quello dei virtual disk. In questo ambito, il Virtual Disk si configura come un partizionamento virtuale dei raid group. Ciò consente un ulteriore strato di flessibilità al sistema: al crescere di un Raid Group è possibile far corrispondere l’espansione di uno o più virtual disk. Inoltre, più virtual disk possono risiedere sullo stesso raid group.

I vantaggi di questa configurazione sono evidenti: ciò che viene esposto al FS è una vista di disco virtuale (da cui Virtual Disk), che a sua volta fa affidamento ad un Raid Group. Il raid group è quindi trasparente al virtual disk: quando un virtual disk inizia a saturarsi, è possibile aumentare lo spazio all’interno del raid group. Qualora sia esaurito anche tutto lo spazio all’interno del raid group, allora sarà possibile aumentare lo spazio fisico nel raid group, semplicemente aggiungendo dischi fisici ed assegnandoli all’array di interesse.

 


Non è mai semplice eseguire test mirati e precisi su dispositivi SAN di questo genere. I motivi sono svariati, ma il principale è che nei test sono coinvolti molteplici componenti hardware e software. Non solo il numero e i modelli di dischi utilizzati nel san influenzano le prestazioni, ma ad essi si aggiungono anche il controlller di rete server, lo switch intermedio, i cavi ed i controller di rete client, nonché la capacità di calcolo del client. Come se non bastasse vi sono per giunta la varietà dei driver di rete che è possibile utilizzare, i diversi tipi di iSCSI initator. Dulcis in fundo, anche i software di benchmarking spesso non garantiscono l'uniformità dei risultati: alcuni di essi possono far registrare risultati migliori in determinati contesti, piuttosto che in altri.

Nel nostro caso, sarebbe impossibile in termini di tempistiche, pensare di poter recensire ogni singola sottoparte del sistema, anche perché sarebbe difficile trovare termini di paragone per apprezzare o criticare le prestazioni del dispositivo. Piuttosto, ci concentriamo su un'analisi generale delle prestazioni del Q500, cercando di verificarne le prestazioni ad ampio spettro, al variare della tipologia dei dischi e delle loro configurazioni RAID. Perciò, in questa sezione, riportiamo quali saranno i nostri test in termini di configurazione della SAN, morfologia di rete, software di benchmarks, tipologia di dischi usati e configurazione del client.

Tipologia e numero di dischi

Tipologia di aggregazione

Tipologia di test

4 x WD Caviar Blue 1Gb

Raid 0

Raid 1

Raid 5

Raid 10

HDTune Pro Read – Write

Crystal DiskMark Read – Write

HDTach Long Benchmark

4 x SSD Kingston KC100 240Gb

Raid 0

Raid 1

Raid 10

Raid 5

Raid 6

HDTune Pro Read – Write

 

La morfologia della rete è stata mantenuta costante durante tutti i test. Per evitare ulteriori variabili in grao di introdurre potenziali colli di bottiglia, abbiamo scelto di collegare direttametne il dispositivo SAN alla nostra macchina client, utilizzando un cavo di rete 10gbps certificato CISCO. Allo stesso moto la macchina da test client è stata configurata una tantum e mai variata nella configurazione, come riportato dalla tabella seguente.

 

Processore

Intel i7 4820K @ 4.50 GHz

Scheda Madre

Asus Rampage IV Extreme

Memoria Ram

4 x 4 Gb Kingston HyperX 2133 MHz CL9

Hard Drive

1 x Kingston KC100 240Gb

Interfaccia di rete iSCSI

Chelsio T320 10Gbps

Initiator iSCSI

Chelsio iSCSI Driver

PSU

Antec HCP 1000W Platinum

Al fine di evitare eventuali colli di bottiglia lato client, abbiamo portato le prestazioni della CPU ai propri limiti: ben 4.50 GHz con HT attivo (8 threads) ed abbiamo scelto il driver proprietario CHELSIO come Initiator iSCSI. Dal punto di vista software, la macchina client è stata configurata con il sistema operativo Microsoft Windows Server 2012 Standard Edition con basic GUI.

 


Il primissimo test cui abbiamo sottoposto il Q500 ha previsto la configurazione Raid 0 dei dischi. In dettaglio abbiamo configurato un solo Raid Group (unico array di quattro dischi), all’interno del quale abbiamo creato un unico virtual disk, occupando tutto lo spazio disponibile. Per quanto riguarda le tecnologie di Write-Back e ReadAhead, abbiamo mantenuto attive entrambe le funzionalità.

Di seguito riportiamo i grafici relativi ai test eseguiti su dischi meccanici.

Come ci aspettavamo, i risultati registrati nelle letture sequenziali e nelle scritture sequenziali sono molto positivi. In particolare HDTune fa registrare una banda media di lettura dati di circa 395 Mb/s con picchi (registrati in fase iniziale, grazie alla cache write back) di ben 554 Mb/s. Tale comportamento subisce un overhead contenuto quando si passa al medesimo test con block size di 64Kb: la media di lettura sequenziale rimane a 370 Mb/s, con picchi verso l’alto di 465 Mb/s. Anche DiskMark conferma quanto registrato da HDTune Pro: le letture sequenziali ed a 512Kb fanno registrare valori intorno ai 560 Mb/s.

Dal punto di vista delle scritture sequenziali, le performance sono meno brillanti. In questo caso entra in gioco la limitatezza dei dischi meccanici e delle tempistiche necessarie all’allineamento delle testine sui dischi. In tutti i test di scrittura sequenziale notiamo valori medi nell’ordine dei 150 (HDTune)- 200 (DiskMark) Mb/s.

I test di lettura/scrittura non sequenziali, bensì ad accesso casuale, sono per eccellenza i più ostici per i dischi meccanici. I risultati registrati ce ne danno conferma: DiskMark registra valori di lettura di 52 Mb/s e di scrittura di soli 5,5 Mb/s, in linea con i 12792 IOPS in lettura e 7587 IOPS in scrittura registrati da HDTune. Questi valori non ci sorprendono affatto: si tratta di limiti fisici dei dischi meccanici, difficilmente aggirabili con l’uso di cache e di meccanismi ReadAhead.

Procediamo ora all’analisi delle prestazioni registrate con dischi a stato solido.

La situazione che registriamo con i dischi a stato solido è migliore. Le prestazioni di lettura e scrittura sono praticamente costanti e non registriamo picchi consistenti verso l’alto o verso il basso. Un quadro del genere, di solito, è dovuto ai limiti di banda del dispositivo e non dei dischi. Sappiamo per certo che questi dischi – così configurati – tramite controller Raid hardware dedicati, sono in grado di raggiungere valori oltre 1Gb/s. In questo caso, entrando in gioco l’overhead del protocollo iSCSI e della comunicazione di rete, i risultati sono limitati alle prestazioni del NAS e non a quelle dei dischi.

Il secondo test, eseguito con block size di 64Kb ce ne da conferma: dovendo eseguire scritture / lettura più contenute ma in numero maggiore, l’overhead del protocollo iSCSI è maggiore e fa decadere le prestazioni totali del dispositivo.

In generale, possiamo dire che il test in Raid 0 ci ha soddisfatto: non ci aspettavamo valori di lettura sequenziale così elevati nel caso di dischi meccanici. Ciò dimostra che l’algoritmo ReadAhead funziona bene e riesce a rendere disponibili in cache i dati che il sistema chiederà immediatamente dopo le letture attuali.

Tuttavia, nel caso dei dischi a stato solido, il test mette in evidenza i limiti reali del dispositivo e dell’infrastruttura basata su protocollo iSCSI: utilizzando 4 Kingston KC100, i massimi valori di lettura e scrittura sequenziali non hanno superato i 600 Mb/s in nessun caso. In ambienti diversi (per esempio NAS dotati di controller raid dedicato) questi valori sono raggiungibili, in quanto è possibile spostare una grande quantità di dati senza dover incapsularli nel protocollo SCSI.

 


Procediamo ora al commento dei risultati ottenuti dai test sugli array di RAID 5. Come nei casi precedenti, abbiamo configurato un singolo Raid Group di tipo RAID 5, abilitandone le funzioni di ReadAhead e write back cache. All’interno del Raid Group abbiamo espanso un singolo Virtual Disk, esposto su protocollo iSCSI su un’unica interfaccia di rete 10Gbps, connessa alla macchina client.

I risultati dei test mostrano comportamenti differenti a seconda del benchmark utilizzato. In particolare i migliori risultati si evincono da DiskMark e dal benchmark di Atto: notiamo infatti valori di lettura sequenziale di ben 443 - 515 Mb/s, attribuibili all’algoritmo di ReadAhead e dall’uso intelligente della cache. Per quanto riguarda le scritture sequenziali, i risultati sono invece peggiori: la maggiorparte dei test fa registrare valori di scrittura intorno ai 50 Mb/s. Unica voce fuori coro è il test di Atto, che per sua morfologia utilizza in gran parte le cache e permette l’ottenimento di risultati migliori, totalizzando ben 754 Mb/s come throughput.

Le scritture random a 4K risentono, come di consueto, di un pesante overhead. In gran parte, tale comportamento è attribuibile ai dischi meccanici, solitamente non in grado di registrare un gran numero di IOPS con accesso random (il problema è quello del SEEK time, necessario per allineare la testina sul disco). Inoltre, il protocollo iSCSI richiede l’incapsulamento delle istruzioni sul layer 2 di TCP/IP (Ethernet in questo caso) e tale operazione ha un costo non indifferente sulle prestazioni. In particolare è HDTune a far registrare risultati bassi, di circa 35 Mb/s in scrittura ed appena 1163 IOPS (4Kb single). Le letture mostrano invece risultati più positivi: 12910 IOPS contro i 1163 IOPS registrati in scritture di singoli blocchi da 4Kb.

Seguono qui i medesimi test svolti su un raid group composto da quattro dischi a stato solido Kingston KC100 da 240Gb.

Come lecito aspettarsi, i risultati ottenuti da un array di Raid 5 composto da dischi a stato solido sono positivi. Ci sorprende notare che le letture sequenziali con block size a 8Mb facciano registrare bande dati più larghe rispetto a quelle annotate in modalità RAID 0. Il meccanismo di ReadAhead sembra lavorare in modo egregio con questa modalità RAID, tanto da permettere il raggiungimento di valori come 885 Mb/s. Nel test con block size a 64Kb, la banda dati scende a 425 Mb/s di media. Per quanto riguarda le scritture, il test con block size a 8Mb fa registrare una banda media di 480 Mb/s, che si riduce a 225 Mb/s in scrittura per il test con blocchi da 64Kb. In effetti, vista la reattività dei dischi a stato solido utilizzati, questo test mette in risalto le prestazioni del calcolo della parità effettuato dalla CPU: le scritture sequenziali a 500Mb/s in un array di raid 5 richiedono il calcolo della parità da scrivere sui dischi ed è questa l’operazione che più di tutte ne impatta le prestazioni quando si utilizzano dischi veloci. Il limite in questo caso è appunto di 500 Mb/s, un valore alto considerando che non viene utilizzato alcun ASIC dedicato, ma solamente una porzione di CPU ad hoc per il calcolo XOR.

Il verdetto sui test in raid 5 è positivo: non ci aspettavamo affatto valori nell’ordine di 300 – 500 Mb/s in lettura sequenziale da un array di appena quattro dischi meccanici. Ciò costituisce una chiara prova dell’efficacia dell’algoritmo di ReadAhead di QSAN, confermati dai risultati ottenuti dal test sugli SSD (885 Mb/s). Il risultato ottenuto dal test di scrittura sequenziale sui dischi a stato solido costituisce un punto di forza di questo dispositivo. Inoltre, le alte bande di lettura riscontrate in questi test giustificano la presenza di interfacce 10Gbps: tali throughput non potrebbero essere dirottati su una singola NIC gigabit senza incorrere in colli di bottiglia assai evidenti.

 


La terza carrellata di test riguarda la modalità comunemente definita RAID 10. Si tratta di una modalità complessa che combina sia ma modalità Mirror (1) che Striping (0), creando due array Mirrored poi combinati in Striping. Come al solito abbiamo creato un unico Raid Group all’interno del quale è stato espanso un solo Virtual Disk, assegnato alla interfaccia di rete 10Gbps tramite iSCSI Target. Anche in questo caso abbiamo attivato ambo le funzionalità di caching, WriteBack e ReadAhead.

Di seguito riportiamo i risultati dei test in merito ai dischi meccanici WD Caviar Blue da 1Tb ciascuno.

La modalità RAID 10 sembra non essere quella preferibile per il Q500. Notiamo risultati molto discordanti tra loro in base al benchmark utilizzato. HDTune mostra valori di lettura e scrittura sequenziali completamente fuori scala, nell’ordine di 60 Mb/s in lettura e appena 17 Mb/s in scrittura. DiskMark fa registrare risultati diversi nei test di IO sequenziale: 549 Mb/s in lettura e appena 12,3 Mb/s in scrittura.  Il comportamento strano in questo caso sta nel fatto che si ottengono prestazioni migliori con block size ridotti: il test HDTune con dimensione dei blocchi pari a 64Kb fa registrare lettura nell’ordine dei 77 Mb/s contro i 59 Mb/s con block size id 8Mb. Anche DiskMark segue una tendenza simile: il test a 512Kb permette di totalizzare ben 170 Mb/s in scrittura contro i miseri 12,3 Mb/s nel test sequenziale.

Pensiamo che tali comportamenti siano dovuti alla natura del RAID 10, che prevede una fase di mirroring dei dischi. In tali circostanze i dati vengono scritti contemporaneamente su tutti i dischi con un grado di parallelizzazione inferiore, subendo l’overhead sia del protocollo iSCSI sia del SEEK Time di allineamento delle testine ai dischi rotanti.

Passiamo ora all’analisi dei risultati ottenuti con dischi a stato solido:

Analogamente a quanto visto per il RAID 0, i dischi a stato solido permettono il raggiungimento di risultati migliori, non subendo l’overhead del seektime. Anche in questo caso notiamo valori di lettura sequenziale intorno ai 500 Mb/s nel test con block size patri a 8Mb mentre si registrano valori intorno ai 365 Mb/s scendendo a Block Size di 64Kb. Le scritture sequenziali invece subiscono un brusco rallentamento se confrontante a quelle registrate in RAID 0: con block size di 8Mb si ottiene una media di 330 Mb/s (contro i 536 Mb/s) e si scende fino a 85 Mb/s con block size a 64Kb (contro i 233 Mb/s del RAID 0).  

Possiamo dire che la modalità RAID 10 non è il punto di forza di questo dispositivo: a farcelo presente sono i risultati ottenuti dai test sui dischi a stato solido: mentre le letture sequenziali rispecchiano in pieno le nostre aspettative, siamo rimasti delusi dai valori di scrittura sequenziale, bassi sia nel test con SSD, sia nei test con dischi meccanici. Riteniamo che questa modalità raid possa essere migliorata da QSAN: probabilmente tali prestazioni possono essere migliorate da QSAN con semplici accorgimenti attuabili a livello di firmware. Ciò ci fa sperare in future release per migliorare le prestazioni del Q500 in RAID 10.

 


L’ultima modalità RAID di nostro interesse è il RAID 6. Tale configurazione prevede il calcolo di doppia parità per i dischi, permettendo il fallimento di ben due dischi su un array di 5 dischi totali. Ciò, come è prevedibile, richiederà un maggior sforzo da parte del processore per il calcolo della parità distribuita, perciò non ci aspettiamo risultati migliori di quelli registrati per il RAID 5.

Anche in questo caso le modalità di test sono rimaste identiche: cache in lettura e scrittura abilitate, singolo Raid Group e singolo Virtual Disk. Per nostra mancanza non siamo riusciti a testare la modalità raid 6 su dischi meccanici (avevamo a disposizione solamente 4 dischi WD Caviar Blue da 1Tb), perciò abbiamo condotto i test sui soli dischi a stato solido.

Il primo test eseguito tramite HDTune Pro su block size di 8mb mostra risultati del tutto analoghi a quanto registrato per il RAID 0 e per il RAID 5: valori di lettura e scrittura quasi pari tra loro, nell’ordine dei 450-500 Mb/s. La situazione è diversa nel test seguente, ovvero con block size a 64Kb. In tal caso le letture sequenziali fano registrare valori intorno ai 364 Mb/s, di tutto rispetto se confrontanti a quelli registrati per il Raid 0. Lascia a bocca asciutta il test in scrittura sequenziale su blocksize di 64Kb. In questo caso i test di scrittura fanno registrare valori intorno ai 35 Mb/s in modo piuttosto costante (i valori oscillano in un intervallo compreso tra 35 e 36,5 Mb/s). Data la velocità dei dischi, un tale rallentamento non è certamente attribuibile alle performance dei dischi, bensì all’algoritmo di calcolo parità della modalità RAID 6.

Possiamo concludere che il test riguardante la modalità RAID 6 ci ha soddisfatto ad eccezione delle scritture su blocchi a 64Kb, che hanno subito un pesante drop in termini di performance. In tutti gli altri casi il gap prestazionale rispetto alle modalità RAID 5 e RAID 0 è contenuto, rendendo il RAID 6 una scelta appetibile per chi ha a cuore ridondanza e prestazioni.

 


Un aspetto interessante, che ci interessa sempre valutare quando testiamo i dispositivi di archiviazione, è l’impatto che i meccanismi di caching hanno sulle prestazioni. In effetti, data la complessità ed i costi che tali sistemi introducono, ha senso valutare se gli stessi siano più o meno efficienti. In questa sezione andiamo a considerare gli effetti che i meccanismi di ReadAhead e WriteBack cache mostrano nei test con i dischi meccanici.

Nella fase di lettura, l’utilizzo del meccanismo di ReadAhead permette un buon incremento prestazionale, passando da una media di 250 Mb/s ad una di 295 Mb/s per le letture sequenziali, incrementando ancora di più i vantaggi nel test con block size a 64Kb: in quest ultimo caso, la banda media di lettura è di 370 Mb/s contro i 250 Mb/s registrati con ReadAhead disabilitato. In termini relativi, parliamo di un incremento prestazionale massimo pari al 48%.

Ancora più evidenti sono i vantaggi offerti dal meccanismo di cache WriteBack. Utilizzando i 4Gb di memoria ECC installata su ogni controller del Q500, i dati vengono mantenuti in cache per poi essere trascritti in batch, asincronamente, sui dischi meccanici (per loro natura decisamente più lenti della memoria). Come è evidente, disabilitando questo meccanismo di caching si va incontro ad un degrado prestazionale enorme, tanto da vaneggiare l’acquisto di un tale dispositivo. In termini pratici il sistema di WriteBack permette il boost prestazionale di un fattore pari a x4 nelle scritture sequenziali, diventando addirittura x80 quando si effettuano scritture con block size di 64Kb.

Possiamo concludere questa analisi affermando che i sistemi di ReadAhead e WriteBack sono fondamentali quando si sfruttano array di dischi meccanici, in quanto consentono di incrementare le performance di lettura e scrittura sia sequenziali che random, compensando la lentezza degli stessi dovuta ai movimenti meccanici delle testine.

 


Il test che ci apprestiamo a presentare riguarda gli effetti delle tecniche di caching in lettura e scrittura (ReadAhead e WriteBack) nei casi di array RAID composti da dischi a stato solido. Si tratta di una valutazione molto interessante, in quanto permette di verificare se e di quanto le cache migliorino le prestazioni degli array RAID composti da dischi molto veloci. Purtroppo è luogo comune pensare che l’uso di cache possa aumentare le prestazioni in lettura e scrittura con qualsiasi disco. In vero, nel caso di SSD, le cose possono cambiare.

Analizzando i risultati ottenuti in lettura, notiamo che l’algoritmo di ReadAhead permette un incremento prestazionale di circa 30 Mb/s sul test con block size a 8Mb. Al contrario, il test eseguito con block size a 64Kb, dimostra che l’algoritmo ReadAhead non permette il raggiungimento di risultati maggiori, ma addirittura lievemente peggiori.

In scrittura la situazione è analoga: abilitando la write-back cache, nel test sequenziale con blocchi da 8Mb si ottengono valori di scrittura pari a 480 Mb/s. Lo stesso test, disabilitando il meccanismo di WriteBack, fa registrare una banda media di 375 Mb/s. Ripetendo i due test su HDTune Pro con block size a 64Kb, otteniamo bande di scrittura pressoché pari (425 Mb/s).

Tirando le somme in merito all’algoritmo ReadAhead utilizzato in concomitanza con dischi a stato solido, possiamo affermare che si ottengono miglioramenti sensibili in condizioni di letture sequenziali molto ampie. Qualora si effettuino letture sparse di entità limitata, l’algoritmo non può garantire alcun miglioramento delle performance.

La questione è diversa per il Write Back: questo meccanismo di caching dimostra di essere utile e veloce in ogni circostanza. Nel caso peggiore, le prestazioni saranno simili a quelle ottenibili senza il suo ausilio, nel caso migliore si ottengono miglioramenti prestazionali nell’ordine del 30%.

 


L’aspetto energetico è strettamente legato a quello del raffreddamento. In primis perché un maggiore assorbimento energetico è spesso correlabile ad un maggiore surriscaldamento del sistema. Analogamente, un maggior surriscaldamento spesso comporta un maggiore consumo energetico per i sistemi di raffreddamento.

Il Q500 dispone di hardware ottimizzato per ridurre al minimo i consumi, massimizzando l’efficienza dell’intero sistema. In primis abbiamo notato la presenza di due alimentatori ridondanti certificati 80+ platinum caratterizzati da un’efficienza media del 94%. Altro elemento fondamentale è il processore: appartenente alla famiglia Atom destinata alla fascia server, questo chip presenta un TDP di appena 14,2 Watt, nonostante sia prodotto a 32nm. 

Il sistema di raffreddamento è composto da quattro ventole davvero possenti, in grado di raffreddare l’intero dispositivo anche se in funzione singolarmente. Ognuna di queste assorbe circa 22 W, per un totale di ben 88 W di picco. Considerando che il Q500 non utilizza meccanismi di riduzione del regime rotazionale delle proprie ventole, l’intero sistema di cooling in funzione assorbe costantemente 80 W di potenza.

Abbiamo quindi eseguito alcuni test per misurare il consumo energetico del Q500 senza alcun dispositivo di archiviazione installato, variando esclusivamente il numero di ventole collegato e il numero di controller utilizzato. I risultati sono riportati di seguito:

 

Controller Singolo

Doppio Controller

Due ventole

 97 W  140 W

Quattro ventole

 133 W  172 W

 Il consumo massimo registrato è inferiore a 180W. Si tratta di un ottimo risultato, per due ragioni fondamentali: il consumo è limitato non superiore ad un sistema desktop, in secondo luogo si utilizza appena il 35 % della capacità totale della PSU. Infatti, considerando i grafici dell'efficienza delle PSU di cui il Q500 è dotato, notiamo che il range di carica dal 30% al 70% è quello per cui si hanno i massimi livelli di efficienza. Da ciò comprendiamo che QSAN ha preferito dotare il dispositivo in questione di alimentatori ben dimensionati.


Non capita tutti i giorni di poter recensire un SAN come il Q500. Il QSAN Q500-P20 è un dispositivo Enterprise con la “E” maiuscola, per svariati motivi. Primo fra tutti l’affidabilità del sistema, realizzata tramite la completa simmetria hardware: sono stati ridondati tutti i componenti indispensabili al dispositivo per operare. Doppio modulo di raffreddamento, doppia PSU e doppia scheda logica, ognuna delle quali dotata di doppia interfaccia 10Gbps e doppia interfaccia 1Gbps, garantiscono robustezza e versatilità alla SAN.

In secondo luogo, a contribuire all’aspetto aziendale, vi è la minimizzazione dei consumi. Attuata tramite l’uso di hardware ad-hoc, come l’Intel Atom S1289 e le eccellenti PSU certificate 80+ Platinum, la politica di efficienza si è dimostrata efficace, senza impattare le performance.

In terzo luogo non possiamo non lodare la flessibilità che il Q500 permette di conseguire grazie all’abbondanza di interfacce di rete 10 Gbps e 1 Gbps. Tramite la configurazione di Virtual Lan e Link Aggregation si possono gestire i casi di multipath e load balancing, in base alla morfologia della propria rete aziendale.

Anche sul piano delle performance il Q500 si è dimostrato all’altezza delle nostre aspettative: i meccanismi di ReadAhead e WriteBack permettono di raggiungere risultati eccellenti utilizzando dischi meccanici. Per quanto riguarda le prestazioni registrate con dischi a stato solido, notiamo dei miglioramenti non troppo evidenti, segno che questo dispositivo non è nato per essere usato con dischi a stato solido, bensì è stato ottimizzato da QSAN per funzionare al meglio con dischi meccanici.

Uniche macchie, su un curriculum quasi impeccabile, sono le povere performance registrate nel caso di array RAID 10 e la necessità di MUX per utilizzare dischi SATA anziché SAS. Nel primo caso siamo fiduciosi che QSAN risolva con i prossimi aggiornamenti del firmware; nel secondo caso non prevediamo possibilità di migliorie se non fornendo a costo zero i mux nel bundle del Q500.

Il costo del dispositivo è, come ci si aspetterebbe, rapportato alla fascia di mercato alla quale si propone: parliamo di circa 6.000 euro. Una tale cifra è assolutamente ragionevole per aziende di media entità, mentre diventa proibitivo per le piccole imprese o i piccoli uffici.

In conclusione, siamo lieti di assegnare al Q500 il riconoscimento Enterprise Hw di HardwareForYou, conseguito per l’ottima qualità dei componenti hardware, l’attenzione per HA, gli ottimi livelli di efficienza e le buone prestazioni registrate. 

 EAward

 

Si ringraziano QSan ed Active Solution per aver reso possibile questa recensione.