Nel mondo della tecnologia, è sempre fondamentale mantenere i dati altamente disponibili per garantire che siano accessibili all'applicazione/utente. L'elevata disponibilità si ottiene qui distribuendo i dati su più volumi/nodi.
Le macchine client/gli utenti possono accedere allo spazio di archiviazione come se fosse un archivio locale. Ogni volta che l'utente crea dati sullo storage Gluster, i dati verranno duplicati/distribuiti ad altri nodi di storage.
Cos'è GlusterFS?
GlusterFS è un filesystem di rete scalabile e open source adatto per carichi di lavoro ad alta intensità di dati come streaming multimediale, archiviazione cloud e CDN (Content Delivery Network). GlusterFS è stato sviluppato inizialmente da Gluster Inc e poi da Redhat, a seguito dell'acquisizione.
Terminologie:
Di seguito sono riportate le terminologie importanti che utilizziamo in questo articolo.
Mattone – è l'archiviazione di base (directory) su un server nel pool di archiviazione attendibile.
Volume – è una logica collezione di mattoni.
Gruppo – è un gruppo di computer collegati, che lavorano insieme come un unico computer.
File system distribuito – Un file system in cui i dati sono distribuiti su più nodi di archiviazione e consente ai client di accedervi tramite una rete.
Cliente – è una macchina che monta il volume.
Server – è una macchina in cui è ospitato il file system effettivo in cui verranno archiviati i dati.
Replica – Esecuzione di più copie di dati per ottenere un'elevata ridondanza.
Fusibile – è un modulo del kernel caricabile che consente agli utenti non privilegiati di creare i propri file system senza modificare il codice del kernel.
gluster – è un demone che viene eseguito su tutti i server nel pool di archiviazione attendibile.
RAID – L'array ridondante di dischi economici (RAID) è una tecnologia che fornisce una maggiore affidabilità di archiviazione attraverso la ridondanza.
Volumi:
Come detto in precedenza, il volume è la raccolta di mattoni e la maggior parte delle operazioni di gluster come la lettura e la scrittura avvengono sul volume. GlusterFS supporta diversi tipi di volumi in base ai requisiti; adatto per ridimensionare le dimensioni dello spazio di archiviazione o migliorare le prestazioni o per entrambi.
In questo articolo, configureremo un volume GlusterFS replicato su CentOS 7 / RHEL 7.
Volume Glusterfs replicato è come un RAID 1 e il volume conserva le copie esatte dei dati su tutti i mattoni. Puoi decidere il numero di repliche durante la creazione del volume, quindi avresti bisogno di almeno due mattoni per creare un volume con due repliche o tre mattoni per creare un volume di 3 repliche.
Questo volume offre una migliore affidabilità e ridondanza dei dati.Perché non leggere i restanti tipi di volumi GlusterFS.
Requisiti:
Qui configureremo il volume GlusterFS con due repliche. Assicurati di avere due sistemi a 64 bit (virtuali o fisici) con 1 GB di memoria e un disco rigido di riserva su ciascun sistema.
Nome host | Indirizzo IP | OS | Memoria | Disco | Scopo |
---|---|---|---|---|---|
gluster1.itzgeek.local | 192.168.12.16 | CentOS 7 | 1 GB | /dev/sdb (5 GB) | Nodo di archiviazione 1 |
gluster2.itzgeek.local | 192.168.12.17 | RHEL 7 | 1 GB | /dev/sdb (5 GB) | Nodo di archiviazione 2 |
client.itzgeek.local | 192.168.12.8 | Ubuntu 16.04 | NA | NA | Macchina cliente |
Configura DNS:
I componenti GlusterFS utilizzano il DNS per la risoluzione dei nomi, quindi configura il DNS o imposta una voce host. Se non hai un DNS nel tuo ambiente, modifica il file /etc/hosts e aggiornalo di conseguenza.
sudo vi /etc/hosts 192.168.12.16 gluster1.itzgeek.local gluster1 192.168.12.17 gluster2.itzgeek.local gluster2 192.168.12.20 client.itzgeek.local client
Aggiungi repository GlusterFS:
Prima di procedere all'installazione, è necessario configurare il repository GlusterFS su entrambi i nodi di archiviazione. Segui le istruzioni per aggiungere il repository al tuo sistema.
RHEL 7:
Aggiungi repository Gluster su RHEL 7.
vi /etc/yum.repos.d/Gluster.repo [gluster38] name=Gluster 3.8 baseurl=http://mirror.centos.org/centos/7/storage/$basearch/gluster-3.8/ gpgcheck=0 enabled=1
CentOS 7:
Installa il pacchetto centos-release-gluster, ti fornisce i file di repository YUM richiesti. Questo RPM è disponibile da CentOS Extras.
yum install -y centos-release-gluster
Installa GlusterFS:
Dopo aver aggiunto il repository sui tuoi sistemi, siamo a posto per l'installazione di GlusterFS. Installa il pacchetto GlusterFS usando il comando seguente.
yum install -y glusterfs-server
Avvia il servizio glusterd su tutti i nodi gluster.
systemctl start glusterd
Verifica che il servizio glusterfs funzioni correttamente.
[root@gluster1 ~]# systemctl status glusterd ● glusterd.service - GlusterFS, a clustered file-system server Loaded: loaded (/usr/lib/systemd/system/glusterd.service; disabled; vendor preset: disabled) Active: active (running) since Tue 2016-09-27 16:00:19 EDT; 1s ago Process: 4072 ExecStart=/usr/sbin/glusterd -p /var/run/glusterd.pid --log-level $LOG_LEVEL $GLUSTERD_OPTIONS (code=exited, status=0/SUCCESS) Main PID: 4073 (glusterd) CGroup: /system.slice/glusterd.service └─4073 /usr/sbin/glusterd -p /var/run/glusterd.pid --log-level INFO Sep 27 16:00:19 gluster1.itzgeek.local systemd[1]: Starting GlusterFS, a clustered file-system server... Sep 27 16:00:19 gluster1.itzgeek.local systemd[1]: Started GlusterFS, a clustered file-system server.
Consenti a glusterd di avviarsi automaticamente all'avvio del sistema.
systemctl enable glusterd
Configura Firewall:
Dovresti disabilitare il firewall oppure configura il firewall per consentire tutte le connessioni all'interno di un cluster.
Per impostazione predefinita, glusterd ascolterà su tcp/24007 ma aprire quella porta non è sufficiente sui nodi gluster. Ogni volta che aggiungerai un brick , si aprirà una nuova porta (che potrai vedere con "stato dei volumi gluster")# Disable FirewallD systemctl stop firewalld systemctl disable firewalld OR # Run below command on a node in which you want to accept all traffics comming from the source ip firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="<ipaddress>" accept' firewall-cmd --reload
Aggiungi spazio di archiviazione:
Supponendo che tu abbia un disco rigido di riserva sulla tua macchina, /dev/sdb è quello che userò qui per un mattone. Crea una singola partizione sul disco rigido di riserva mostrato come di seguito.
Dovresti eseguire i passaggi seguenti su entrambi i nodi.
fdisk /dev/sdb
Formatta la partizione creata con il filesystem di tua scelta.
mkfs.ext4 /dev/sdb1
Monta il disco su una directory chiamata /data/gluster .
mkdir -p /data/gluster mount /dev/sdb1 /data/gluster
Aggiungi una voce a /etc/fstab per mantenere il montaggio persistente durante il riavvio.
echo "/dev/sdb1 /data/gluster ext4 defaults 0 0" | tee --append /etc/fstabPagine:1 2