Ricerca nel sito web

Come eseguire operazioni di auto-riparazione e ribilanciamento nel file system Gluster - Parte 2


Nel mio precedente articolo su “Introduzione a GlusterFS (file system) e installazione – Parte 1” c’era solo una breve panoramica del file system e dei suoi vantaggi descrivendo alcuni comandi di base. Vale la pena menzionare le due importanti funzionalità, Self-heal e Re-balance, in questo articolo, senza le quali la spiegazione su GlusterFS sarà inutile inutile. Acquisiamo familiarità con i termini Autoguarigione e Riequilibrio.

Cosa intendiamo per Autoriparazione sui volumi replicati?

Questa funzionalità è disponibile per i volumi replicati. Supponiamo di avere un volume replicato [conteggio minimo di repliche 2]. Supponiamo che a causa di alcuni guasti uno o più mattoni tra i mattoni di replica si interrompano per un po' e l'utente elimini un file dal punto di montaggio che verrà interessato solo sul mattone online.

Quando il mattoncino offline torna online in un secondo momento, è necessario rimuovere il file da questo mattoncino, ovvero è necessario eseguire una sincronizzazione tra i mattoncini di replica chiamata guarigione. Lo stesso vale per la creazione/modifica di file su mattoncini offline. GlusterFS dispone di un demone di auto-riparazione integrato per gestire queste situazioni ogni volta che i mattoncini diventano online.

Cosa intendiamo per Riequilibrio?

Considera un volume distribuito con un solo mattone. Ad esempio creiamo 10 file sul volume tramite il punto di montaggio. Ora tutti i file risiedono sullo stesso mattone poiché nel volume è presente solo un mattone. Aggiungendo un ulteriore mattone al volume, potremmo dover riequilibrare il numero totale di file tra i due mattoni. Se un volume viene espanso o ridotto in GlusterFS, i dati devono essere ribilanciati tra i vari mattoni inclusi nel volume.

Esecuzione dell'autoriparazione in GlusterFS

1. Crea un volume replicato utilizzando il seguente comando.

gluster volume create vol replica 2 192.168.1.16:/home/a 192.168.1.16:/home/b

Nota: la creazione di un volume replicato con brick sullo stesso server potrebbe generare un avviso per il quale è necessario procedere ignorando lo stesso.

2. Avvia e monta il volume.

gluster volume start vol
mount -t glusterfs 192.168.1.16:/vol /mnt/

3. Creare un file dal punto di montaggio.

touch /mnt/foo

4. Verificare lo stesso su due mattoncini replica.

ls /home/a/
foo
ls /home/b/
foo

5. Ora invia uno dei mattoni offline uccidendo il demone glusterfs corrispondente utilizzando il PID ottenuto dalle informazioni sullo stato del volume.

gluster volume status vol
Uscita del campione
Status of volume: vol
Gluster process					Port	Online	Pid 
------------------------------------------------------------------------------ 
Brick 192.168.1.16:/home/a			49152	  Y	3799 
Brick 192.168.1.16:/home/b			49153	  Y	3810 
NFS Server on localhost				2049	  Y	3824 
Self-heal Daemon on localhost			N/A	  Y	3829

Nota: verifica la presenza del demone di auto-riparazione sul server.

kill 3810
gluster volume status vol
Uscita del campione
Status of volume: vol 
Gluster process					Port	Online	Pid 
------------------------------------------------------------------------------ 
Brick 192.168.1.16:/home/a			49152	  Y	3799 
Brick 192.168.1.16:/home/b			N/A	  N	N/A 
NFS Server on localhost				2049	  Y	3824 
Self-heal Daemon on localhost			N/A	  Y	3829

Ora il secondo mattone è offline.

6. Elimina il file foo dal punto di montaggio e controlla il contenuto del mattoncino.

rm -f /mnt/foo
ls /home/a
ls /home/b
foo

Vedi che foo è ancora lì nel secondo mattone.

7. Ora riporta il mattoncino online.

gluster volume start vol force
gluster volume status vol
Uscita del campione
Status of volume: vol 
Gluster process					Port	Online	Pid 
------------------------------------------------------------------------------ 
Brick 192.168.1.16:/home/a			49152	  Y	3799 
Brick 192.168.1.16:/home/b			49153	  Y	4110 
NFS Server on localhost				2049	  Y	4122 
Self-heal Daemon on localhost			N/A	  Y	4129

Ora il mattone è online.

8. Controlla il contenuto dei mattoncini.

ls /home/a/
ls /home/b/

Il file è stato rimosso dal secondo mattone dal demone di auto-riparazione.

Nota: in caso di file di grandi dimensioni potrebbe essere necessario del tempo prima che l'operazione di auto-riparazione venga eseguita con successo. Puoi controllare lo stato della guarigione usando il seguente comando.

gluster volume heal vol info

Esecuzione del ribilanciamento in GlusterFS

1. Crea un volume distribuito.

gluster create volume distribute 192.168.1.16:/home/c

2. Avvia e monta il volume.

gluster volume start distribute
mount -t glusterfs 192.168.1.16:/distribute /mnt/

3. Crea 10 file.

touch /mnt/file{1..10}
ls /mnt/
file1  file10  file2  file3  file4  file5  file6  file7  file8  file9

ls /home/c
file1  file10  file2  file3  file4  file5  file6  file7  file8  file9

4. Aggiungi un altro mattone al volume distribuisci.

gluster volume add-brick distribute 192.168.1.16:/home/d
ls /home/d

5. Riequilibrare.

gluster volume rebalance distribute start

volume rebalance: distribute: success: Starting rebalance on volume distribute has been successful.

6. Controlla i contenuti.

ls /home/c
file1  file2  file5  file6  file8 

ls /home/d
file10  file3  file4  file7  file9

I file sono stati ribilanciati.

Nota: puoi controllare lo stato del ribilanciamento immettendo il seguente comando.

gluster volume rebalance distribute status
Uscita del campione
Node           Rebalanced-files     size          scanned    failures    skipped   status	run time in secs 
---------      -----------          ---------     --------   ---------   -------   --------     ----------------- 
localhost          5                0Bytes           15          0         0       completed         1.00 
volume rebalance: distribute: success:

Con questo intendo concludere questa serie su GlusterFS. Sentiti libero di commentare qui con i tuoi dubbi riguardo alle funzionalità di autoguarigione e riequilibrio.