La settimana scorsa, durante lo Storage Field Day 3, ho incontrato alcune aziende interessanti che stanno costruendo soluzione ibride SSD molto interessanti.
E’ chiaro che ancora oggi i prodotti 100% flash sono troppo costosi per la maggioranza degli utenti e le soluzioni ibride sono quelle che stanno raccogliendo più interesse fra gli utenti. La via più facile, e probabilmente più efficiente, per implementare la memoria flash è utilizzarla come cache. In pratica, SSD nel front-end che fa da polmone ad un back-end lento fatto di dischi tradizionali meccanici.
Per farla breve, una relativamente piccola quantità di cache SSD per far schizzare le prestazioni senza doversi svenare, ma è importante capire come (e dove) usarla!
Durante l’evento che ho menzionato su abbiamo visto molti approcci diversi al problema, differenti topologie e anche diversi livelli di integrazione con i vari strati di software superiori, con tutti i relativi pro e contro.
Lato server
Fare caching sul lato server è l’approccio più radicale, se comparato con le architetture a storage condiviso. Da il meglio in termini di prestazioni ma, dall’altro lato, c’è un grosso scoglio ad implementarlo dovuto alla complessità del software che deve mantenere la coerenza della cache, l’affidabilità e la resilienza necessaria negli ambienti clusterizzati.
Alcune soluzioni sono veramente brillanti, mascherano la complessità e lo fanno attraverso una forte integrazione con il sistema operativo o l’hypervisor. L’esempio più interessate in questo senso è quello di PernixData FVP. La demo (qui il video completo) mostra un prodotto che è completamente trasparente all’intera infrastruttura mentre offre affidabilità e resilienza di classe enterprise. Anche la velocità è stupefacente. Il mio unico dubbio su questo prodotto riguarda il fatto che supporta solo VMware vSphere… (anche se in verità per la maggioranza degli utenti non è un problema)
Altri player hanno scelto strade diverse per poter supportare un maggior numero di sistemi operativi, FlashSoft di SanDisk è l’esempio più calzante (qui i video della loro sessione). Questo software supporta più sistemi operativi (Microsoft Windows, VMware, Linux) ma al costo di una minore integrazione. Il vero vantaggio per l’utente finale risiede nella possibilità di utilizzare un prodotto, praticamente identico, con tutti i sistemi operativi. Infatti, dal punto di vista utente non è male avere un’unica piattaforma di caching da gestire. Anche se, in ogni caso, è sempre necessario verificare poi volta per volta limiti e costrizioni prima di dispiegarla.
C’è anche una terza via per ottenere il massimo al minimo costo: eliminare ogni forma di cluster e abilitare meccanismi di replica a livello applicativo. (es.: il log shipping che molti DB mettono a disposizione). Non è esattamente il massimo in termini di HA ma è sicuramente una opzione da valutare quando la velocità di accesso ai dati e il costo sono molto più importanti di tutto il resto.
Lato array
Gli array ibridi stanno guadagnandosi un sacco di spazio. La settimana scorsa ho incontrato Starboard systems (video), NetApp (video) e NexGen, ora parte di FusionIO (video). Tutti questi usano memoria flash per diminuire le latente e aumentare gli IOPS. Ma non solo questo naturalmente, gli SSD vengono anche usati per abilitare (o migliorare) funzionalità come la deduplica in real time.
I sistemi ibridi di storage non sono veloci quanto quelli full-SSD ma sono “good enough” per servire la maggioranza dei workload, specialmente quando si parla di aziende SMB.
Il valore di questo tipo di soluzioni mi è stato provato anche qualche giorno fa da un rappresentate di Nimble storage: più del 30% delle loro vendite è legato a progetti VDI! E’ tanto ed è la prova che questo tipo di sistemi può aiutare le aziende medie a dispiegare soluzioni VDI senza dover ricorrere a infrastrutture specializzate.
Caching contro Tiering
Il tiering è una ottima tecnologia (Aziende come Compellent ci hanno costruito sopra la propria fortuna) ma, non sarà che è sorpassato?
L’automated Tiering è stato sviluppato in un’epoca in cui gli array erano costruiti intorno a dischi meccanici: prestazioni, latenza, e dimensioni dei dischi più veloci erano paragonabili a quelle di quelli più lenti.
Ora, con la memoria Flash, si può avere 50-100X le IOPS mentre le dimensioni di tutto lo strato flash sono più piccole di quelle di un singolo HDD… senza aver nominato la differenza di latenza!
In due parole: gli algoritmi che regolano la movimentazioni fra i diversi tier hanno bisogno di essere adattati e ottimizzati per gestire al meglio questo nuovo media. Il problema poi è che più questi algoritmi vengono velocizzati più questi risultano simili a quelli che regolano le cache… ma so che questo è un discorso molto lungo!
Nota finale
La memoria flash nei server è quella che da le migliori prestazioni ma è più complesso gestire alta affidabilità e resilienza. C’è anche bisogno di una cultura più elevata per disegnare la soluzione.
La memoria flash negli array ibridi è più facile e trasparente da adottare ma non si ottengono le prestazioni migliori.
La prima è chiaramente più adattata ad ambienti enterprise (con le richieste più pressanti) mentre l’altra è più adatta ad ambiti SMB.
Disclaimer: Sono stato invitato a questo meeting da Gestalt IT e loro hanno pagato per il viaggio e l’alloggio. Non sono stato ricompensato in alcun modo per il mio tempo e non sono in obbligo di scrivere articoli. In ogni caso, i contenuti di questi articoli non sono concordati, rivisti o approvati dalle aziende menzionate o da altri al di fuori del team di juku.
bello il log shopping ;-D
OK, OK. Lo metto a posto 🙂