Aggiungiamo un metadata a MooseFS e attiviamo l’HA

Nel precedente articolo abbiamo creato uno storage di test attraverso MooseFS: trattasi di una installazione utile solo a fini di test in quanto non prevede alcun sistema di alta affidabilità.
Aggiungere l’alta affidabilità allo storage (i server chunck) è una cosa piuttosto semplice, in quanto è sufficiente installatre un nuovo server, configurare il servizio chunk e avviarlo: il chunk si collegherà al master server e agirà bilanciando il contenuto del filesystem in base alle impostazioni.
Aggiungere l’alta affidabilità al master, invece, è una cosa leggermente più complessa in quanto dobbiamo introdurre nel nostro setup un server “metadata”.
Questo server non fa altro che sincronizzare ad intervalli regolari, il metadata dal master in modo da averne una copia locale.
Avendo questa copia, in caso di guasto del server principale è sufficiente far partire il servizio master sul server metadata per essere di nuovo online.
In questo howto ci occuperemo di automatizzaare questo processo.

Iniziamo dall’installazione di linux base con i tools per la compilazione come nel precedente articolo e quindi procediamo al download e alla scompattazione del pacchetto:

wget http://pro.hit.gemius.pl/hitredir/id=0sWa0S8ft4sTAHF1bGAAEZPcP3ziyq7f9SdhoQf7oeT.c7/url=moosefs.org/tl_files/mfscode/mfs-1.6.20-2.tar.gz
tar zxvf mfs-1.6.20-2.tar.gz
cd mfs-1.6.20-2

Creiamo l’utente e installiamo FUSE come se si trattasse del nodo master:

useradd moose
emerge sys-fs/fuse

Configuriamo il processo di installazione di moose e compiliamo i sorgenti come se si trattasse di un master server:

./configure --disable-mfschunkserver --enable-mfsmount --with-default-user=moose --with-default-group=moose
make && make install

Copiamo il file di configurazione del processo master in locale:

scp master:/usr/local/etc/mfsmaster.cfg /usr/local/etc/

A questo punto il nostro server metadata è configurato nella stessa identica maniera del master.

Quello che dobbiamo fare ora è configurare il server in modo da replicare il metadata del master in locale.
Andiamo a creare il file /usr/local/etc/mfsmetalogger.cfg:

<strong>/usr/local/etc/mfsmetalogger.cfg</strong>
WORKING_USER = moose
WORKING_GROUP = moose
SYSLOG_IDENT = mfsmetalogger
LOCK_MEMORY = 0
NICE_LEVEL = -19

DATA_PATH = /usr/local/var/mfs

BACK_LOGS = 50
META_DOWNLOAD_FREQ = 24

MASTER_RECONNECTION_DELAY = 5

MASTER_HOST = master
MASTER_PORT = 9419

MASTER_TIMEOUT = 60

e avviamo il servizio metalogger:

/usr/local/sbin/mfsmetalogger

A questo punto punto server secondario terrà aggiornato il metalogger con frequenza giornaliera. Per installazioni reali, meglio usare frequenze molto più elevate.

Per chiudere il cerchio, installiamo heartbeat o coroync, configuriamo un ip condiviso e facciamo gestire l’avvio dei demoni /usr/local/sbin/mfsmaster e /usr/local/sbin/mfscgiserv dal sistema di HA. Per ulteriori informazioni su come utilizzare Pacemaker con Heartbeat, vi rimando a questo articolo del mio blog.