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.