Glusterfs ist ein skalierbares Netzwerkdateisystem mit der Fähigkeit, auf mehrere Petabyte zu skalieren und Tausende von Clients zu handhaben. Es ist ein Open-Source- und verteiltes Dateisystem, das Festplattenspeicherressourcen von mehreren Servern in einem einzigen Namespace zusammenfasst. Es eignet sich für datenintensive Aufgaben wie Cloud-Speicherung und Datenträger-Streaming.
In diesem Tutorial zeige ich, wie man einen hochverfügbaren Speicherserver mit GlusterFS auf Ubuntu 18.04 LTS (Bionic Beaver) einrichtet. Wir werden 3 Ubuntu-Server verwenden, 1 Server als Client und 2 weitere als Speicher. Jeder Speicherserver ist ein Spiegel des anderen und Dateien werden auf beiden Speicherservern repliziert.
Voraussetzungen
- 3 Ubuntu 18.04-Server
- 10.0.15.10 - gfs01
- 10.0.15.11 - gfs02
- 10.0.15.12 - client01
- Root-Berechtigungen
Was werden wir tun?
- GlusterFS-Vorinstallation
- GlusterFS-Server installieren
- GlusterFS-Server konfigurieren
- GlusterFS-Client einrichten
- Replikation/Spiegelung testen
Schritt 1 - GlusterFS-Vorinstallation
Der erste Schritt, den wir tun müssen, bevor wir glusterfs auf allen Servern installieren, ist die Konfiguration der Hosts-Datei und das Hinzufügen des GlusterFS-Repositorys zu jedem Server.
Hosts-Datei konfigurieren
Melden Sie sich bei jedem Server an und erhalten Sie Root-Zugriff mit dem Befehl „sudo su“, bearbeiten Sie dann die Datei „/etc/hosts“.
vim /etc/hosts
Hostkonfiguration unten einfügen.
10.0.15.10 gfs01 10.0.15.11 gfs02 10.0.15.12 client01
Speichern und beenden.
Pingen Sie nun jeden Server mit dem Hostnamen wie unten beschrieben an.
ping -c 3 gfs01
ping -c 3 gfs02
ping -c 3 client01
Jeder Hostname wird in jede Server-IP-Adresse aufgelöst.
GlusterFS-Repository hinzufügen
Installieren Sie das Paket software-properties-common auf dem System.
sudo apt install software-properties-common -y
Fügen Sie den glusterfs-Schlüssel und das Repository hinzu, indem Sie die folgenden Befehle ausführen.
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
Der Befehl aktualisiert alle Repositories. Und wir haben das glusterfs-Repository bereits zu allen Systemen hinzugefügt.
Schritt 2 - GlusterFS-Server installieren
In diesem Schritt installieren wir den glusterfs-Server auf den Servern „gfs01“ und „gfs02“.
Installieren Sie glusterfs-server mit dem apt-Befehl.
sudo apt install glusterfs-server -y
Starten Sie nun den Glusterd-Dienst und aktivieren Sie ihn so, dass er jedes Mal beim Systemstart gestartet wird.
sudo systemctl start glusterd
sudo systemctl enable glusterd
Der Glusterfs-Server läuft jetzt auf den Servern „gfs01“ und „gfs02“.
Überprüfen Sie die Dienste und die installierte Softwareversion.
systemctl status glusterd
glusterfsd --version
Schritt 3 – GlusterFS-Server konfigurieren
Die Glusterd-Dienste sind jetzt betriebsbereit und der nächste Schritt ist die Konfiguration dieser Server, indem wir einen vertrauenswürdigen Speicherpool und das verteilte Glusterfs-Volume erstellen.
Erstellen Sie einen vertrauenswürdigen Speicherpool
Vom 'gfs01'-Server müssen wir den 'gfs02'-Server zum glusterfs-Speicherpool hinzufügen.
Führen Sie den folgenden Befehl aus.
gluster peer probe gfs02
Jetzt sehen wir das Ergebnis „peer probe:success“, und wir haben den „gfs02“-Server zum Storage Trusted Pool hinzugefügt.
Überprüfen Sie den Speicherpoolstatus und die Liste mit den folgenden Befehlen.
gluster peer status
gluster pool list
Und Sie werden sehen, dass der 'gfs02'-Server mit dem Peer-Cluster verbunden ist und sich auf der Pool-Liste befindet.
Verteiltes GlusterFS-Volume einrichten
Nach dem Erstellen des vertrauenswürdigen Speicherpools erstellen wir ein neues verteiltes glusterfs-Volume. Wir erstellen das neue glusterfs-Volume basierend auf dem Systemverzeichnis.
Hinweis:
- Für die Serverproduktion wird empfohlen, das glusterfs-Volume unter Verwendung der anderen Partition zu erstellen, nicht unter Verwendung eines Systemverzeichnisses.
Erstellen Sie auf jedem Bot-Server „gfs01“ und „gfs02“ ein neues Verzeichnis „/glusterfs/distributed“.
mkdir -p /glusterfs/distributed
Erstellen Sie vom Server „gfs01“ aus das verteilte Glusterfs-Volume mit dem Namen „vol01“ mit zwei Replikaten „gfs01“ und „gfs02“.
gluster volume create vol01 replica 2 transport tcp \
gfs01:/glusterfs/distributed \
gfs02:/glusterfs/distributed \
force
Jetzt haben wir das verteilte Volume „vol01“ erstellt – starten Sie das „vol01“ und prüfen Sie die Volume-Info.
gluster volume start vol01
gluster volume info vol01
Und folgendes ist das Ergebnis.
In diesem Stadium haben wir das Volume „vol01“ mit dem Typ „Replicate“ und 2 Bricks auf den Servern „gfs01“ und „gfs02“ erstellt. Alle Daten werden automatisch an jeden Replica-Server verteilt, und wir sind bereit, das Volume bereitzustellen.
Unterhalb der Volume-Info „vol01“ vom „gfs02“-Server.
Schritt 4 - GlusterFS-Client einrichten
In diesem Schritt mounten wir das glusterfs-Volume „vol01“ auf dem Ubuntu-Client, und wir müssen den glusterfs-Client auf dem Client-Server installieren.
Installieren Sie glusterfs-client mit dem apt-Befehl auf dem Ubuntu-System.
sudo apt install glusterfs-client -y
Erstellen Sie nun ein neues Verzeichnis ‚/mnt/glusterfs‘, wenn die Installation des glusterfs-Clients abgeschlossen ist.
mkdir -p /mnt/glusterfs
Hängen Sie das verteilte Glusterfs-Volume „vol01“ in das Verzeichnis „/mnt/glusterfs“ ein.
sudo mount -t glusterfs gfs01:/vol01 /mnt/glusterfs
Überprüfen Sie nun das verfügbare Volumen auf dem System.
df -h /mnt/glusterfs
Und wir werden das glusterfs-Volume in das Verzeichnis ‚/mnt/glusterfs‘ einhängen.
Zusätzlich:
Um glusterfs dauerhaft in das Ubuntu-Client-System einzubinden, können wir das Volume zu „/etc/fstab“ hinzufügen.
Bearbeiten Sie die Konfigurationsdatei „/etc/fstab“.
vim /etc/fstab
Und fügen Sie die Konfiguration unten ein.
gfs01:/vol01 /mnt/glusterfs glusterfs defaults,_netdev 0 0
Speichern und beenden.
Starten Sie nun den Server neu und wenn er online ist, erhalten wir das Glusterfs-Volume „vol01“ automatisch über die fstab.
Schritt 5 – Replikation/Spiegelung testen
In diesem Schritt testen wir die Datenspiegelung auf jedem Serverknoten.
Mounten Sie das Glusterfs-Volume „vol01“ auf jedem Glusterfs-Server.
Auf dem 'gfs01'-Server.
mount -t glusterfs gfs01:/vol01 /mnt
Auf dem 'gfs02'-Server.
mount -t glusterfs gfs02:/vol01 /mnt
Nun zurück zum Ubuntu-Client und in das Verzeichnis ‚/mnt/glusterfs‘ gehen.
cd /mnt/glusterfs
Erstellen Sie einige Dateien mit dem Touch-Befehl.
touch file01 file02 file03
Überprüfen Sie nun jeden Server – „gfs01“ und „gfs02“, und wir erhalten alle Dateien, die wir vom Client-Computer erstellt haben.
cd /mnt/
ls -lah
Hier ist das Ergebnis vom 'gfs01'-Server.
Und hier ist das Ergebnis vom 'gfs02'-Server.
Alle Dateien, die wir vom Client-Rechner erstellt haben, werden an alle Knotenserver des Glusterfs-Volumes verteilt.