Glusterfs è un filesystem di rete scalabile con capacità di scalare a diversi petabyte e gestire migliaia di client. È un file system distribuito e open source che imposta le risorse di archiviazione su disco da più server in un unico spazio dei nomi. È adatto per attività ad alta intensità di dati come l'archiviazione su cloud e lo streaming di dati multimediali.
In questo tutorial, mostrerò come configurare un server di archiviazione ad alta disponibilità con GlusterFS su Ubuntu 18.04 LTS (Bionic Beaver). Useremo 3 server Ubuntu, 1 server come client e altri 2 come storage. Ciascun server di archiviazione sarà un mirror dell'altro e i file verranno replicati su entrambi i server di archiviazione.
Prerequisiti
- 3 server Ubuntu 18.04
- 15.00.10 - gfs01
- 15.00.11 - gfs02
- 15.00.12 - client01
- privilegi radice
Cosa faremo?
- Preinstallazione di GlusterFS
- Installa il server GlusterFS
- Configura i server GlusterFS
- Impostazione del client GlusterFS
- Test di replica/mirroring
Fase 1 - Preinstallazione di GlusterFS
Il primo passo che dobbiamo fare prima di installare glusterfs su tutti i server è configurare il file degli host e aggiungere il repository GlusterFS a ciascun server.
Configura file host
Accedi a ciascun server e ottieni l'accesso come root con il comando 'sudo su', quindi modifica il file '/etc/hosts'.
vim /etc/hosts
Incolla la configurazione degli host di seguito.
10.0.15.10 gfs01 10.0.15.11 gfs02 10.0.15.12 client01
Salva ed esci.
Ora esegui il ping di ogni server utilizzando il nome host come di seguito.
ping -c 3 gfs01
ping -c 3 gfs02
ping -c 3 client01
Ogni nome host verrà risolto in ogni indirizzo IP del server.
Aggiungi repository GlusterFS
Installa il pacchetto software-proprietà-comune sul sistema.
sudo apt install software-properties-common -y
Aggiungi la chiave e il repository glusterfs eseguendo i comandi seguenti.
wget -O- https://download.gluster.org/pub/gluster/glusterfs/3.12/rsa.pub | apt-key add -
sudo add-apt-repository ppa:gluster/glusterfs-3.12
Il comando aggiornerà tutti i repository. E abbiamo già aggiunto il repository glusterfs a tutti i sistemi.
Passaggio 2:installazione del server GlusterFS
In questo passaggio, installeremo il server glusterfs sui server "gfs01" e "gfs02".
Installa glusterfs-server usando il comando apt.
sudo apt install glusterfs-server -y
Ora avvia il servizio glusterd e abilitalo all'avvio ogni volta all'avvio del sistema.
sudo systemctl start glusterd
sudo systemctl enable glusterd
Il server Glusterfs è ora attivo e funzionante sui server "gfs01" e "gfs02".
Verifica i servizi e la versione del software installato.
systemctl status glusterd
glusterfsd --version
Passaggio 3:configurazione dei server GlusterFS
I servizi Glusterd sono ora attivi e funzionanti e il prossimo passo che faremo sarà configurare quei server creando un pool di archiviazione affidabile e creando il volume glusterfs distribuito.
Crea uno storage pool affidabile
Dal server 'gfs01', dobbiamo aggiungere il server 'gfs02' allo storage pool glusterfs.
Esegui il comando seguente.
gluster peer probe gfs02
Ora vedremo il risultato "peer probe:success" e abbiamo aggiunto il server "gfs02" al pool di archiviazione attendibile.
Controlla lo stato del pool di archiviazione e l'elenco utilizzando i comandi seguenti.
gluster peer status
gluster pool list
E vedrai che il server "gfs02" è connesso al cluster peer ed è nell'elenco dei pool.
Imposta volume GlusterFS distribuito
Dopo aver creato lo storage pool attendibile, creeremo un nuovo volume glusterfs distribuito. Creeremo il nuovo volume glusterfs in base alla directory di sistema.
Nota:
- Per la produzione del server, si consiglia di creare il volume glusterfs utilizzando la partizione diversa, non utilizzando una directory di sistema.
Crea una nuova directory '/glusterfs/distributed' su ogni server bot 'gfs01' e 'gfs02'.
mkdir -p /glusterfs/distributed
E dal server 'gfs01', crea il volume glusterfs distribuito denominato 'vol01' con 2 repliche 'gfs01' e 'gfs02'.
gluster volume create vol01 replica 2 transport tcp \
gfs01:/glusterfs/distributed \
gfs02:/glusterfs/distributed \
force
Ora abbiamo creato il volume distribuito "vol01":avvia "vol01" e controlla le informazioni sul volume.
gluster volume start vol01
gluster volume info vol01
E di seguito il risultato.
A questo punto, abbiamo creato il volume 'vol01' con il tipo 'Replica' e 2 mattoni sul server 'gfs01' e 'gfs02'. Tutti i dati verranno distribuiti automaticamente a ciascun server di replica e siamo pronti per montare il volume.
Sotto le informazioni sul volume "vol01" dal server "gfs02".
Fase 4 - Configurazione del client GlusterFS
In questo passaggio, monteremo il volume glusterfs 'vol01' sul client Ubuntu e dobbiamo installare il client glusterfs sul server client.
Installa glusterfs-client sul sistema Ubuntu utilizzando il comando apt.
sudo apt install glusterfs-client -y
Ora crea una nuova directory '/mnt/glusterfs' una volta completata l'installazione di glusterfs-client.
mkdir -p /mnt/glusterfs
E monta il volume distribuito glusterfs 'vol01' nella directory '/mnt/glusterfs'.
sudo mount -t glusterfs gfs01:/vol01 /mnt/glusterfs
Ora controlla il volume disponibile sul sistema.
df -h /mnt/glusterfs
E otterremo il volume glusterfs montato nella directory '/mnt/glusterfs'.
Aggiuntivo:
Per montare glusterfs in modo permanente sul sistema client Ubuntu, possiamo aggiungere il volume a '/etc/fstab'.
Modifica il file di configurazione '/etc/fstab'.
vim /etc/fstab
E incolla la configurazione di seguito.
gfs01:/vol01 /mnt/glusterfs glusterfs defaults,_netdev 0 0
Salva ed esci.
Ora riavvia il server e quando sarà online, otterremo il volume glusterfs 'vol01' montato automaticamente tramite fstab.
Fase 5 - Test di replica/mirroring
In questo passaggio, testeremo il mirroring dei dati su ciascun nodo del server.
Monta il volume glusterfs 'vol01' su ciascun server glusterfs.
Sul server 'gfs01'.
mount -t glusterfs gfs01:/vol01 /mnt
Sul server 'gfs02'.
mount -t glusterfs gfs02:/vol01 /mnt
Ora torna al client Ubuntu e vai alla directory '/mnt/glusterfs'.
cd /mnt/glusterfs
Crea alcuni file usando il comando touch.
touch file01 file02 file03
Ora controlla su ciascun server - 'gfs01' e 'gfs02' e otterremo tutti i file che abbiamo creato dalla macchina client.
cd /mnt/
ls -lah
Ecco il risultato del server 'gfs01'.
Ed ecco il risultato del server 'gfs02'.
Tutti i file che abbiamo creato dalla macchina client verranno distribuiti a tutti i server dei nodi del volume glusterfs.