Aggiungere brick ad un gluster disk replicato e distribuito

Supponiamo di avere un gluster disk… ops? Non sai cosa è un gluster disk? Beh allora prima di continuare faresti bene a leggere questi altri due miei post:

GlusterFS Parte 1: Un po’ di teoria
GlusterFS Parte 2: Installiamo

Allora, dicevamo: supponiamo di avere un gluster disk replicato e distribuito…

Gluster Volume Info

Ogni data node espone un brick da 50 GB, quindi in totale il gluster disk ha una capacità di 100 GB.

Su questo cluster, vogliamo aggiungere un altro brick (disco) da 100 GB per ogni data node.

Poiché i data node sono delle virtual machine, l’aggiunta del disco può essere fatta a caldo da VMWARE. Sulla VM è necessario forzare il riconoscimento del nuovo hardware con il comando:

echo "- - -" > /sys/class/scsi_host/host0/scan

Successivamente, va creata la partizione sul disco, /dev/sdc nel mio caso.

gluster-fdisk

La partizione va formattata in XFS:

mkfs -t xfs /dev/sdc1

Va creato il mount point, inserito nel file fstab e infine va montato il disco:

mkdir /gluster-disks/sdc1
echo "/dev/sdc1 /gluster-disks/sdc1 xfs defaults 0 0" >> /etc/fstab
mount /gluster-disks/sdc1
mkdir /gluster-disks/sdc1/brick

A questo punto i nostri data node hanno un nuovo disco da 100 GB, pronto per essere inserito nel gluster disk.

gluster volume add-brick gluster-webs \
   owncloud-datanode-01.gluster:/gluster-disks/sdc1/brick \
   owncloud-datanode-02.gluster:/gluster-disks/sdc1/brick \
   owncloud-datanode-03.gluster:/gluster-disks/sdc1/brick \
   owncloud-datanode-04.gluster:/gluster-disks/sdc1/brick

Il messaggio “volume add-brick: success” ci darà la garanzia di aver scritto tutto correttamente!

gluster-volume-info-8-brick

Avremo la conferma della correttezza delle operazioni effettuate con un semplice comando df sul server che usa il gluster disk:

gluser-disk-df-webserver

Sì… ma i dati dove sono? In realtà dove stavano prima, quindi sui nuovi dischi fisici ancora non c’è niente.

gluster-disk-df-datanode

Ok, siamo maniaci dell’ordine e quindi vogliamo bilanciare l’utilizzo dello spazio disco. Dobbiamo chiedere a gluster di riorganizzare i dati all’interno dei vari brick che compongono il volume:

gluster volume rebalance gluster-webs start

Non aspettiamoci di vedere immediatamente il risultato. Possiamo però analizzare lo stato di avanzamento con il comando:

gluster volume rebalance gluster-webs status

gluster-rebalance-status

Lasciamo lavorare gluster!

Non male vero? Abbiamo aggiunto capacità di storage – replicata e distribuita – senza creare la minima interruzione di servizio.