E’ qualche tempo che mi ero ripromesso di testare questo prodotto. Ho scoperto per la prima volta FlashSoft in occasione di Storage Field Day 3 a Denver: FlashSoft era stata acquisita da SanDisk nel Febbraio 2012, ed è stata sinceramente una sopresa scoprire che il colosso delle memorie Flash possedeva una divisione Enterprise, fatta di soluzioni come appunto FlashSoft e altre. Penso che come me, molti di voi hanno sempre abbinato il nome SanDisk alle memorie per dispositivi o alle chiavette USB…
In quell’occasione avevo potuto inoltre apprezzare la brillantezza di Serge Shats, CTO di FlashSoft e adesso simpaticamente appellato “Engineering Fellow” in SanDisk.
Dopo un ulteriore incontro al VMworld US 2013, e un’altra appagante conversazione con Serge, ho finalmente avuto la possibilità di riconfigurare il mio laboratorio con un paio di schede Fusion-IO, e ho potuto pertanto dedicare un pò di tempo a studiare questa soluzione. Questo primo articolo è una descrizione del prodotto e delle sue caratteristiche. Un secondo articolo tratterà invece i test prestazionali che ho realizzato.
FlashSoft 3.1 for VMware vSphere
FlashSoft è un prodotto di server-side caching, ed è disponibile per sistemi fisici Windows, Linux, e VMware vSphere. Questa è una prima differenza rispetto ad altre soluzioni specificatamente disegnate per l’hypervisor VMware.
In un server ESXi, FlashSoft permette di utilizzare uno storage locale molto veloce, come dischi SSD o schede Flash, e di agire come cache per i dischi delle virtual machine ospitati su uno storage di backend. La soluzione è puramente software, e risulta totalmente trasparente alle virtual machine: il software viene installato a livello di kernel dell’hypervisor, e non richiede nessuna modifica ai sistemi operativi guest o al virtual hardware.
Inoltre, nonostante SanDisk produca anche memorie Flash, il software è utilizzabile con qualsiasi hardware, e non solo coi loro prodotti.
Serge ha fatto una brillante presentazione durante Storage Field Day, andando veramente a fondo sia sulla tecnologia di FlashSoft, sia per l’uso specifico del prodotto in ambienti VMware. E’ interessante vedere come, a fronte di un prodotto generalmente ascrivibile alla categoria del server-side caching, le soluzioni adottate sono peculiari, e differenti tra i vari produttori.
Non sarei in grado di spiegare questi concetti allo stesso modo, se non trascrivendo il discorso di Serge, quindi guardatevi direttamente questi video prima di proseguire. Nel primo video, Serge spiega nel dettaglio come funziona il sistema di caching di FlashSoft:
mentre nel secondo video, viene descritto il funzionamento della versione specifica per vSphere:
Supporto per VMware
Grazie alle scelte tecniche di FlashSoft, che accelera le virtual machine a livello di VMDK (o meglio ancora, di disk extent), il software supporta qualsiasi tipo di storage che venga utilizzato, sia esso block (FC, iSCSI, FCoE), NFS, o anche i dischi locali dei singoli server ESXi. Inoltre, la visibilità dei singoli VMDK permette, all’interno di una stessa VM, di accelerare unicamente i VMDK desiderati, come ad esempio il solo disco dati di un database.
La cache è di tipo write-through, e ciò significa che è in grado di accelerare le letture, ma ad oggi non le scritture, almeno su vSphere (su Windows e Linux invece accelera anche le scritture). Essendo trasparente alle VM e ai server ESXi, FlashSoft supporta pienamente tutte le funzioni clusterizzate di VMware, come vMotion, HA, DRS, Storage vMotion, Storage DRS, ed essendo di tipo read-only non richiede nessuna accortezza particolare per le storage snapshots o i backup. Il contenuto della cache non viene replicato tra diversi server ESXi, ciò comporta che la cache sul nodo di destinazione debba essere ripopolata in seguito a una vMotion o un’intervento di HA.
Installazione e configurazione
Dopo aver gentilmente ricevuto da FlashSoft una versione di prova del loro prodotto (l’ultima versione 3.1.3, rilasciata il 19 Novembre scorso), il mio primo obiettivo era capire la sua facilità d’uso. Pertanto, ho rifiutato qualsiasi installazione guidata che mi avevano offerto, e ho proceduto unicamente col manuale. Il prodotto è veramente piccolo, i due file di cui è composto occupano rispettivamente 407 KB per il modulo da installare in ogni server ESXi, e 2,7 MB il plugin per vCenter. A confronto, il manuale di amministrazione è 3 MB…
L’installazione è veramente facile e soprattutto completamente trasparente. Il modulo host si installa in un minuto senza nemmeno attivare il Maintenance Mode del server ESXi, e non richiede nessun reboot. Vi è un problema in effetti: le VM che devono essere accelerate devono essere spente e riaccese per poter essere accelerate. L’attività ovviamente può essere programmata anche successivamente all’nstallazione di FlashSoft, quando l’impatto causato dallo spegnimento della VM è minore. Questa attività è necessaria unicamente se si vuole accelerare uno storage locale, mentre negli altri casi è sufficiente una vMotion per portare la VM fuori dal server ESXi accelerato, per poi riportarla nuovamente su questo host. Il modulo client deve essere installato in qualsiasi sistema che già ha vClient installato (non è previsto ad oggi il supporto per il Web Client), e anche in questo caso si tratta di pochi clic. Una volta installato, il plugin si presenta come un’altro tab del vClient:
La prima attività è attivare la licenza. Se il client è in grado di navigare su internet, è possibile registrare la licenza direttamente online, altrimenti è possibile richiedere un file di licenza da uploadare. Durante l’attivazione, ci viene chiesto quale periferica utilizzare come cache:
Leggendo il manuale, ho scoperto che è possibile utilizzare sia raw device, oppure dischi virtuali VMDK che risiedono su device SSD. questa seconda opzione, benchè meno “pulita”, permette eventualmente di utilizzare contemporaneamente una singola periferica SSD con FlashSoft e altre necessità. Non mi entusiasma particolarmente, perchè le prestazioni verrebbero vicendevolmente influenzate da differenti software che accedono alla memoria Flash, ma se doveste avere questa necessità, il software ne è capace. Per realizzare questa configurazione, basta selezionare un datastore esistente invece di un raw device, e la schermata successiva permetterà di impostare l’uso dell’intero volume o di un VMDK:
Ultimata la configurazione iniziale, la schermata principale ci appare così:
Da qui, possiamo passare ad attivare l’accelerazioni delle virtual machine, direttamente a livello di host, vedendo quali VM sono disponibil, oppure posizionandoci sulla singola VM:
Dopo aver attivato l’accelerazione, FlashSoft inizia subito ad accelerare la virtual machine, e anche se nel mio primissimo test non ho fatto altro che avviare la mia “I/O Test Virtual Machine”, già si vedono in console i primi benefici del software:
Note finali
FlashSoft è risultato un software molto semplice da installare, nascondendo all’utente finale tutta la complessita che possiede. In poco tempo è possibile ottenere una soluzione di server-side caching molto efficace. Ad oggi l’accelerazione su vSphere è disponibile unicamente per le letture, ma immagino che uno dei prossimi obiettivi sia aggiungere il supporto alle scritture, dato che ciò è già presente nelle versioni per Windows e Linux; così come è da attendersi il prossimo supporto per vSphere 5.5.
La capacità di accelerare qualsiasi tipo di datastore presente su ESXi (block, NFS e anche locale) è sicuramente interessante, e differenzia il software da alcuni concorrenti che si sono inizialmente focalizzati solo su alcuni scenari specifici.
Se volete vedere i risultati che ho ottenuto nei test che ho eseguito nel mio laboratorio, leggete questo articolo.