Creare Gluster Filesystem Distribuito Linux

7 Luglio 2017 di Daniele Frulla


Il filesystem è la parte più significativa di un sistema operativo, dopo la ram e la cpu. All’interno del filesystem vengono immagazzinati tutti i dati, le configurazioni, le informazioni sia per l’esecuzione del sistema operativo che degli archivi di una base dati.

Oggi è sempre più impellente la necessità di avere un filesystem che garantisca failover e che sia abbastanza grande da immagazzinare una grande mole di informazioni.

Il software che può venirci incontro è Glusterfs, un applicativo che distribuisce i tuoi file su più servers e ne garantisce l’HA (High Availability).

Come funziona Gluster.

Gluster è un software open source, che è attualmente in gestito e manutenuto da sviluppatore Red Hat. E’ possibile comunque installarlo su sistemi Linux come Debian, semplicemente con il gestore pacchetti apt.

Il file system distribuito è utilissimo nelle sale ced, ma si può benissimo installare nei nostri servers casalinghi o aziendali.

Per la casa si potranno acquistare servers fanless a basso consumo ed inserire hard disk USB. Servers fanless costano circa 100€, hard disk da 2 Terabyte circa 80 € quindi, con una spesa di circa 360€ potremmo avere a casa la nostra configurazione Gluster in replica. In replica significa che 2 Tera di hard disk sarrano usati per i dati e 2 Tera saranno usati per la copia di quei dati (possiamo quindi evitare di bare un backup lungo e costoso in termini di cpu perché i nodi di Gluster sono automaticamente replicati)

Tutti i servers (nodi di gluster) dovranno avere la medesima configurazione e dovranno potersi vedere all’interno della nostra rete senza firewalls.

Installazione su Ubuntu

L’installazione nei sistemi linux derivati da Debian è semplice:

sudo apt install glusterfs-server

Ogni nodo rappresenta un server. Le caratteristiche minime di ogni server sono:

  • 2 Gb di Ram
  • CPU 64 bit
  • 1 GBit di velocità di rete

Gluster è già pronto all’uso e tutti i comandi che lanciamo su di un nodo saranno automanticamente eseguiti negli altri.

Le configurazioni possibili volumi di un filesystem gluster distribuito sono:

  • Distributed (ogni server ha vari contenitori – brick – sui quali vengono distribuiti i vari files)

  • Striped (i files vengono spezzettati e distribuiti sui vari brick – utile se si devono immagazzinare file di grandi dimensioni come video, iso, ecc)

  • Distributed-Striped (file vengono spezzati e distribuiti)

  • Replicated (file vengono replicati)

  • Distributed-Replicated (file sono distribuiti e replicati)

  • Distributed-Striped-Replicated (file sono spezzati, distribuiti e replicati)

 

Ovviamente, è la replica del filesystem che poi dà la sicurezza che il nostro filesystem sia failover. In altri termini, se un server si rompe, il nostro filesystem è ancora raggiungile.

La configurazione striped è necessaria invece quando si vuole velocità nella consultazione del filesystem.

Una volta scelta la nostra configurazione iniziamo con i comandi base per metterla in piedi.

Come soluzione principale e casalinga consigli di iniziare con 2 servers e con la replica del filesystem.

 

Configurare Gluster Come Replica

Benissimo, abbiamo installato Gluster ed il demone è già attivo sui nostri servers.

Poniamo il caso di avere 2 dischi USB da 2 TeraByte, occorre montarli nella giusta collocazione per poter poi aggiungere i contenitori al filesystem gluster.

Creiamo in entrambi i servers la directory:

mkdir /gluster/dev1/

Formattiamo i nostri harddisk in modalità xfs:

mkfs.xfs /dev/<device> -L LDEV1

Montiamo i nostri dischi in /gluster/dev1/

mount /dev/<device> /gluster/dev1

Per fare in modo che il punto di mount sia al boot del sistema occorrerà modificare il file /etc/fstab aggiungendo:

LABEL=LDEV1  /gluster/dev1   xfs    defaults   0    0

Finita la fase preparativa possiamo creare il nostro volume Gluster in Replica supponendo che i nostri servers (nodi) siano s1 e s2.

gluster volume create test-volume replica 2 transport tcp s1:/gluster/dev1/b1  s2:/gluster/dev1/b1

gluster volume start test-volume

Occorre ora montare il nostro volume con un gluster client o da un altro server o su uno dei due servers s1 o s2 e digitiamo:

mount.glusterfs s1:test-volume /mnt

Potremo cosi visualizzare il nostro volume nella cartella /mnt ed ogni file che aggiungeremo, cancelleremo o modificheremo sarà replicato sia in s1 che s2.

Se s1 crolla tutto il filesystem sarà ancora raggiungibile come se nulla fosse accaduto. Occorre però prendere provvedimenti e riparare il problema.

Per ulteriori informazioni puoi consultare la documentazione gluster.


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *


Copyright di Caterina Mezzapelle Part. I.V.A. 02413940814 - R.E.A. 191812