Nel mio precedente articolo su 'Introduzione a GlusterFS (File System) e installazione – Parte 1' era solo una breve panoramica del file system e dei suoi vantaggi che descriveva alcuni comandi di base. Vale la pena menzionare le due caratteristiche importanti, Autoguarigione e Riequilibrio, in questo articolo senza che spiegazione su GlusterFS servirà a nulla. Prendiamo confidenza con i termini Autoguarigione e Riequilibrio.
Questa funzione è disponibile per i volumi replicati. Supponiamo di avere un volume replicato [numero minimo di repliche 2]. Supponiamo che a causa di alcuni errori uno o più mattoni tra i mattoni della replica vadano giù per un po' e che l'utente elimini un file dal punto di montaggio che verrà interessato solo sul mattone online.
Quando il mattone offline torna online in un secondo momento, è necessario rimuovere anche quel file da questo mattone, ad es. deve essere eseguita una sincronizzazione tra i mattoni di replica chiamata guarigione. Lo stesso vale per la creazione/modifica di file su mattoni offline. GlusterFS ha un demone di auto-guarigione integrato per prendersi cura di queste situazioni ogni volta che i mattoni diventano online.
Considera un volume distribuito con un solo mattone. Per esempio noi creare 10 file sul volume tramite il punto di montaggio. Ora tutti i file risiedono sullo stesso mattone poiché c'è solo un mattone nel volume. Aggiungendo un altro mattone al volume, potrebbe essere necessario 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.
1. Crea un volume replicato utilizzando il comando seguente.
$ gluster volume create vol replica 2 192.168.1.16:/home/a 192.168.1.16:/home/b
NotaNota: la creazione di un volume replicato con mattoni sullo stesso server può generare un avviso per il quale è necessario procedere ignorando lo stesso.
2. Avvia e monta il volume.
$ gluster volume inizio vol. $ mount -t glusterfs 192.168.1.16:/vol /mnt/
3. Crea un file dal punto di montaggio.
$ tocco /mnt/pippo
4. Verifica lo stesso su due mattoncini replica.
$ ls /casa/a/ pippo. $ ls /casa/b/ pippo
5. Ora invia uno dei mattoni offline uccidendo il demone glusterfs corrispondente usando il PID ottenuto dalle informazioni sullo stato del volume.
$ stato volume gluster vol
Stato del volume: vol. Processo Gluster Porta Online Pid Brick 192.168.1.16:/home/a 49152 Y 3799 Brick 192.168.1.16:/home/b 49153 Y 3810 Server NFS su localhost 2049 Y 3824 Daemon di autoriparazione su localhost N/A Y 3829
Nota: Visualizza la presenza del demone di auto-riparazione sul server.
$ uccidi 3810
$ stato volume gluster vol
Stato del volume: vol Processo Gluster Port Online Pid Brick 192.168.1.16:/home/a 49152 Y 3799 Brick 192.168.1.16:/home/b N/D N N/D Server NFS su localhost 2049 S 3824 Daemon di autoriparazione su localhost N/D S 3829
Ora il secondo mattone è offline.
6. Elimina il file pippo dal punto di montaggio e controllare il contenuto del mattone.
$ rm -f /mnt/pippo. $ ls /casa/a. $ ls /casa/b. pippo
Vedi pippo è ancora lì nel secondo mattone.
7. Ora riporta il mattone in linea.
$ gluster volume inizio vol forza. $ stato volume gluster vol
Stato del volume: vol Processo Gluster Port Online Pid Brick 192.168.1.16:/home/a 49152 Y 3799 Brick 192.168.1.16:/home/b 49153 Y 4110 Server NFS su localhost 2049 Y 4122 Daemon di autoriparazione su localhost N/D S 4129
Ora il mattone è online.
8. Controlla il contenuto dei mattoni.
$ ls /casa/a/ $ ls /casa/b/
Il file è stato rimosso dal secondo mattone dal demone di autoguarigione.
NotaNota: in caso di file di dimensioni maggiori potrebbe essere necessario un po' di tempo prima che l'operazione di riparazione automatica venga eseguita correttamente. Puoi controllare lo stato di guarigione usando il seguente comando.
$ gluster volume guarire informazioni sul volume
1. Creare un volume distribuito.
$ gluster crea volume distribuisci 192.168.1.16:/home/c
2. Avvia e monta il volume.
$ gluster volume inizia a distribuire. $ mount -t glusterfs 192.168.1.16:/distribute /mnt/
3. Crea 10 file.
$ tocca /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 distribuire.
$ gluster volume add-brick distribuire 192.168.1.16:/home/d. $ ls /home/d
5. Riequilibra.
$ gluster ribilanciamento volume distribuisci ribilanciamento volume iniziale: distribuisci: successo: L'avvio del ribilanciamento alla distribuzione del volume ha avuto successo.
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: È possibile controllare lo stato di ribilanciamento emettendo il seguente comando.
$ stato di distribuzione del ribilanciamento del volume del gluster
Nodo Dimensioni file ribilanciate falliti scansionati stato saltato runtime in sec localhost 5 0Byte 15 0 0 completato 1.00 ribilanciamento volume: distribuzione: successo:
Con questo ho intenzione di concludere questa serie su GlusterFS. Sentiti libero di commentare qui con i tuoi dubbi riguardo alle funzioni di Autoguarigione e Riequilibrio.