Questo articolo fa parte di una piccola serie (1, 2, 3 e qui uno sullo storage tradizionale) che ha l’obiettivo di informare il lettore su come sta evolvendo lo storage enterprise e cosa si deve aspettare per la sua futura infrastruttura. Continuo quindi parlando delle caratteristiche software:
Thin Provisioning
Il thin provisioning è la funzionalità che permette di allocare la quantità di spazio disco realmente utilizzata senza dover costringere a pre-assegnare spazio prima del suo effettivo utilizzo. In pratica, quando creo un nuovo volume per ospitare i dati questo è vuoto: in un sistema tradizionale il volume viene allocato per la sua interezza mentre, con il TP, ne viene allocata una minima parte e il resto sarà assegnato solo quando un dato viene realmente scritto.
Questa funzionalità permette grandi risparmi proprio perchè di solito si registrano differenze molto importanti fra la dimensione dei volumi (LUN) e i dati realmente scritti all’interno di essi. Alcune implementazioni commerciali di TP hanno delle limitazioni che ne rendono l’uso complicato o addirittura inadatto ad applicazioni che richiedono alte performance, ma negli storage di ultima generazione, dove il TP e il WS sono disegnati per lavorare insieme questo problema è praticamente inesistente.
Gli utenti che stanno usando questa funzionalità sono ancora una minoranza ma è vero che le cose stanno cambiando velocemente e, per alcuni storage di nuova generazione, l’utilizzo di questa funzionalità è praticamente l’unico modo di operare.
Snapshot efficienti
Le snapshot sono sempre state uno strumento molto potente e che possono far risparmiare tempo e denaro. Purtroppo, come per molte altre funzionalità, gli storage tradizionali implementano sistemi di snapshot poco fruibili dagli utenti e spesso rimangono inutilizzate.
La snapshot è una vista di un volume di dati creata ad un determinato istante temporale: una specie di fotografia. Questo Volume-fotografia, di solito, si utilizza in modalità read-only per fare copie di backup, caricamenti di basi dati, repliche remote, ecc. evitando quindi di dover copiare o fermare dati che sono in produzione. Fondamentalmente, le snapshot esistono di due tipi: copy-on-write e redirect-on-write.
Nel primo caso, quello che di solito è in uso nei sistemi tradizionali, le snapshot hanno un impatto sensibile sulle prestazioni del volume sorgente e sono limitate nella quantità di spazio che possono occupare. Questo avviene perchè quando si modifica un blocco nel volume di origine, questo deve essere copiato in una area apposita, prima che il nuovo blocco prenda il suo posto. Non solo, di solito le snapshot di questo tipo sono limitate in numero e sono solo read-only impedendo di fatto di essere usate liberamente per attività sofisticate (come ad esempio la creazione di cloni di una lun di base per replicare delle installazioni). Una configurazione errata (sotto dimensionata) del sistema di storage può seriamente compromettere la prestazione dell’intero sistema.
Le snapshot di tipo redirect-on-write sono molto più elastiche e non presentano i limiti imposti in precedenza sia in termini di prestazioni che di numero di snapshot per volume e neanche di funzionalità del volume figlio. In questo caso, ogni volta che un dato viene scritto il sistema si annota che il vecchio blocco fa parte di una snapshot. Questo è possibile grazie al fatto che le snapshot non sono una funzionalità aggiunta (come per gli storage tradizionali) ma sono state integrate direttamente nello strato di virtualizzazione che sostiene tutta l’architettura. Cadaono tutti i limiti che ho descritto prima, quindi: numero di snapshot elevato/illimitato, read/write, nessuna degradazione delle prestazioni. In alcuni casi queste snapshot hanno anche il pregio di essere integrate, a loro volta, con le funzionalità di replica dei dati rendendo le copie fra diversi sistemi molto più efficienti (in termini di banda utilizzata e latenza) di quelle tradizionali di tipo sincrono o asincrono.
Replica dei dati
Oltre ai tradizionali sistemi di replica dei dati che possiamo trovare su sistemi storage di vecchia generazione (sincorno e asincrono), ci sono almeno due nuovi meccanismi degni di nota. Il primo riguarda ciò che ho già detto nel paragrafo precedente: la replica attraverso le snapshot. Il secondo è la possibilità di creare degli stretched cluster locali o geografici (in questo caso non si parla di un vero sistema di replica dei dati ma il risultato che si ottiene è similare).
Nei sistemi di nuova generazione, dove le snapshot non introducono rallentamenti e non sono limitate in numero, è possibile schedulare copie anche ogni pochi minuti e quindi replicarle. Questo sistema permette di ottimizzare al massimo l’uso della banda a disposizione mantenendo comunque una finestra fra una copia e l’altra che può essere accettabile per la maggior parte delle aziende.
Alcune architetture scale-out hanno anche la possibilità di realizzare dei cluster che possono essere distribuiti localmente (e in alcuni casi, con delle limitazioni, geograficamente) e che quindi agiscono come un unica entità garantendo nel contempo un meccanismo di salvaguardia sofisticato che non ha nessun impatto sugli strati superiori.
Nei prossimi giorni pubblicherò un altro articolo in cui introdurrò Deduplication, Compressione e l’uso degli SSD. Stay tuner!