L’obiettivo di questa serie di articoli è quello di introdurre il lettore all’object storage nel modo più semplice e rapido possibile accennando anche alla sua evoluzione nell’era del cloud. Una guida semplice per farsi un’idea delle problematiche che si possono indirizzare con questo particolare tipo di sistemi per la memorizzazione di dati.

Il panorama delle soluzioni storage si sta allargando continuamente. Le richieste da parte degli utenti, nuove normative e la continua necessità di trovare spazio più economico, ma sicuro, per ospitare grandi quantità di dati che spesso vengono accedute poco e primariamente in sola lettura sta innescando una domanda fortissima per questo tipo di soluzioni.

L’argomento Object storage è tornato alla ribalta soprattutto dopo la grande diffusione di servizi di Cloud sotrage che ne stanno utilizzando i concetti e le tecnologie come elemento fondante della propria proposizione. Una tecnologia presente da oltre trenta anni ma che sta vivendo un momento particolarmente florido proprio adesso grazie al cloud, sia in forma privata che pubblica.

Introduzione

Il panorama dello storage enterprise, in questi anni, è cambiato radicalmente. La crescita esplosiva dei dati non strutturati e la necessità di gestire problematiche sempre più complesse stanno portando alla luce alcuni limiti dei sistemi di archiviazione tradizionali come i File Server o i NAS (Network Attached Storage).
I file server archiviano i dati in una struttura dati denominata file system. I File System tradizionali presentano spesso dei limiti in termini di quantità di file gestibili, prestazioni e strumenti per la ricerca quando i numeri diventano particolarmente importanti (nell’ordine dei milioni, in alcuni casi anche solo di centinaia di miglia di file). A quanto appena scritto si aggiungono anche problematiche che in passato erano molto meno pressanti:
backup e replica dei dati, 
resilienza del servizio, 
politiche di retention dei dati (anche di carattere legale) più stringenti che in passato, 
possibilità di accedere ai dati da dispositivi e luoghi diversi,
sicurezza.
L’object storage si sta quindi ritagliando uno spazio nuovo nel panorama enterprise portando una serie di benefici sul lato di gestione dei dati e migliorando sensibilmente il TCO.
La ridotta penetrazione sul mercato di questa tecnologia è ancora da ricercarsi nella difficoltà di migrazione dai sistemi tradizionali e dalla difficoltà di aggiornamento delle applicazioni legacy per poter operare con protocolli per le quali non erano state studiate. 
Il cloud computing sta comunque accelerando l’adozione di object storage: il cloud storage e l’object storage sono, in molti casi, la stessa cosa. Le differenze sono pochissime e sono legate principalmente al fatto che uno è un servizio pubblico mentre l’altro è sempre stato concepito come un servizio privato. Da un punto di vista dei protocolli e delle modalità di accesso sono molto simili (in alcuni casi identici) mentre le architetture di backend, proprio per il diverso tipo di pubblico che indirizzano possono essere anche molto diverse.

Un breve cenno storico

Object storage è un termine abbastanza recente nel panorama IT, prima di utilizzare correntemente questo termine ci si riferiva a sistemi denominati CAS (content addressable storage). In pratica sistemi dove i dati vengono salvati e recuperati in funzione del loro contenuto e non della loro posizione all’interno dello storage, come avviene invece nei tradizionali file system.
I primi sistemi CAS, addirittura implementati in hardware, sono nati negli anni settanta ma poi, i prodotti commerciali che si sono diffusi maggiormente sono stati tutti software con una architettura hardware abbastanza semplice e basata su componenti standard (di solito server x86). Già in quegli anni, per la natura e per l’utilizzo a cui erano stati pensati questi sistemi, la protezione dei dati non veniva garantita utilizzando meccanismi di RAID ma, più semplicemente, duplicando l’oggetto su più nodi in funziona del livello di affidabilità che si voleva raggiungere. Questo approccio ha sempre consentito di limitare il costo del sistema, una scalabilità potenziale molto alta e una velocità di ripristino dello stato ottimale molto elevata (è sufficiente istanziare una ulteriore copia nel caso se ne perda una!).

Anche riguardo le architetture si può parlare di una implementazione abbastanza simile fra i vari prodotti che nel tempo si sono presentati al mercato: una serie di nodi dedicati alla memorizzazione vera e propria degli oggetti e dei nodi dedicati alle operazioni di input/output e indicizzazione dei contenuti. L’architettura disegnata in questo modo dovrebbe poter permettere una scalabilità teorica molto elevata anche se, in pratica, le limitazioni dei prodotti commerciali sono sempre state presenti.
Nella maggior parte dei casi i dati non venivano protetti da meccanismi di RAID, come invece avviene con altri sistemi di storage (file o blocchi) ma, visto la natura stessa dell’architettura e della tipologia dei dati che vengono salvati si è sempre preferito adottare un meccanismo di protezione che prevede la copia del dato su più nodi del cluster, in alcuni casi copie multiple garantivano una maggiore velocità di accesso e un livelllo di sicurezza molto elevato senza incorrere nei problemi classici dei sistemi RAID riguardanti la ricostruzione di dischi danneggiati.
Storicamente, questi sistemi sono dotati anche di funzionalità WORM (write once read many). Queste caratteristica, se opportunamente certificata da organismi governativi o enti accreditati ha valenza legale. E’ per questo motivo che alcune delle applicazioni principali per cui venivano usati questi sistemi di storage si trovano nell’healt care (archiviazione di immagini mediche e cartelle cliniche) piuttosto che nell’archiviazione di posta elettronica.
In passato, l’unico modo di accedere a storage di questo tipo era attraverso l’uso di API (application program interface) proprietarie ma, con l’introduzione di storage ad oggetti per il cloud (cloud storage), tutti i produttori si stanno convertendo all’uso di API aperte che rendono l‘interoperabilità dei software molto più facile e molto più trasparente rispetto al prodotto che viene adottato. L’esempio più eclatante di API aperte è quello di Amazon S3 (un servizio di cloud storage che al momento detiene la leadership del mercato) ma anche SNIA (Storage Networking Industry Association: tutti i più grandi vendor di storage partecipano a questa associazione) ha proposto il suo standard chiamato CDMI (Cloud Data Management Interface) attraverso la Cloud Storage Initiative. Alcuni produttori forniscono diversi sistemi per accedere ai dati, anche attraverso gateway che simulano una interfaccia a file, proprio per venire incontro alle richieste di poter ottenere un repository di ultima generazione capace di dialogare con una infrastruttura legacy.

Disclaimer: L’azienda Scality ha sponsorizzato la realizzazione di un report sul object storage e cloud storage. Il documento è diviso in due parti, nella prima viene presentata la problematica nei suoi aspetti più generali: introduzione, storia, funzionalità, vantaggi e svantaggi. La seconda parte di questa pubblicazione è dedicata alla presentazione di Scality e del suo prodotto RING. Il report sarà presto scaricabile dal sito dell’azienda e dall’area dei download del sito di Juku. In questo blog abbiamo deciso di pubblicare una serie di articoli che ripropongono la sezione indipendente del documento.