Storage scalabile e fault-tolerant usando filesystem distribuiti

In molte realtà aziendali è necessario avere a disposizione soluzioni storage che consentano l'archiviazione massiva di grossi files, con la garanzia che questi sopravvivano alla prova del tempo e che non abbiano costi di mantenimento proibitivi.

La maggior parte delle soluzioni commerciali proposte alle aziende prevedono l'adozione di soluzioni all-in-one, a scatola chiusa, a partire da semplici NAS con doppio disco in RAID, arrivando a soluzioni SAN, come NetApp, i cui costi di licenza surclassano i costi dell'hardware schietto. Per non parlare del fatto che abbracciare una tecnologia di questo tipo comporta uno stretto legame con il fornitore, pena la necessità di migrare tutti i dati verso altre soluzioni da un mese ad un altro.

Invece, grazie alla disponibilità di diversi filesystem distribuiti opensource, è possibile costruirsi il proprio storage utilizzando hardware di uso comune, con la possibilità di aumentare lo spazio a disposizione all'aumentare delle necessità, con la sicurezza di tollerare guasti hardware ridondando un singolo file su server fisici diversi, in modo del tutto trasparente per l'utente o l'applicazione che effettua l'archiviazione di documenti, immagini e qualsiasi altro tipo di file.

GlusterFS è uno di questi, recentemente adottato da Red Hat, che emerge rispetto ad altre soluzioni grazie alla sua architettura completamente decentralizzata e la semplicità di configurazione.

E' possibile partire da una configurazione base composta da due server con uno o più dischi SATA2 ciascuno, in modalità replica 2: cioè, per ogni file archiviato, devono esser mantenute 2 copie su nodi diversi. In questo semplice caso, i dati sulle due macchine saranno identici (stile RAID1), permettendoci di sopportare tranquillamente la perdita di uno dei due nodi (sia per problemi ai dischi, che guasti più seri come alimentazione, rete, ecc.).

Senza bisogno di pianificare migrazioni dei dati verso storage più campienti, è possibile in un secondo tempo aggiungere nuovi dischi ai nodi esistenti o aggiungere nuovi nodi ed espandere lo spazio a disposizione senza tempi morti.

Lato client, è possibile utilizzare il client FUSE nativo sulle piattaforme supportate (qualsiasi Linux recente), oppure utilizzare una delle due modalità fallback messe a disposizione, ovvero via NFS (Unix) o CIFS (Windows).

Un utilizzo tipico di GlusterFS è come backend storage per infrastrutture di Cloud Computing o per l'archiviazione di documenti digitali per il lungo periodo (BNCF e Magazzini Digitali).

Altri filesystem distribuiti possono essere utilizzati per scopi diversi, come MooseFS per nodi di storage disomogenei o per avere /home utente unix fault-tolerant, o XtreemFS per replicare dati fra nodi di storage geo-localizzati, interconessi con link di rete non-stabili (WAN, ADSL).