So installierst du das skalierbare Netzwerk-Dateisystem GlusterFS unter Debian 11

GlusterFS oder Gluster File System, ist ein freies und quelloffenes verteiltes Dateisystem, das von RedHat entwickelt wurde. GlusterFS ist ein skalierbares Dateisystem, das sich aus mehreren Servern zu einem einzigen Dateisystem zusammensetzt, das es den Nutzern ermöglicht, sich mit dem GlusterFS-Volumen zu verbinden und es einzuhängen.

GlusterFS ist ein modernes Dateisystem, das Petabytes an Daten verarbeiten kann. Außerdem ist es einfach zu installieren und zu warten, und das Dateisystem lässt sich leicht skalieren.

In diesem Lernprogramm installierst du GlusterFS – ein verteiltes und skalierbares Netzwerkdateisystem – auf Debian 11 Servern. Du richtest ein GlusterFS-Volumen ein, das Daten automatisch auf mehrere Server repliziert, und richtest das hochverfügbare Dateisystem ein. Außerdem lernst du, wie du das Linux-Partitionierungswerkzeug „parted“ verwendest, um zusätzliche Festplatten auf Debian-Servern einzurichten. Schließlich überprüfst du die Datenreplikation auf GlusterFS zwischen mehreren Debian-Servern und stellst die Hochverfügbarkeit sicher.

Voraussetzungen

Um dieses Tutorial durchzuführen, brauchst du die folgenden Voraussetzungen:

  • Zwei oder drei Debian 11 Server.
  • Ein Nicht-Root-Benutzer mit sudo/administrator Root-Rechten.

In diesem Beispiel werden drei Debian 11 Server mit den folgenden Angaben verwendet:

Hostname    IP Address
--------------------------
node1       192.168.5.50
node2       192.168.5.56
node3       192.168.5.57

Das war’s. Wenn diese Voraussetzungen erfüllt sind, starte die GlusterFS-Installation.

Hostname und FQDN einrichten

Der erste Schritt, den du tun musst, ist die Einrichtung von Hostname und FQDN für alle Debian-Server, die von GlusterFS verwendet werden sollen. Du kannst den Hostnamen über den Befehl„hostnamectl“ und den FQDN (Fully Qualified Domain Name) über die Datei„/etc/hosts“ einrichten.

Um den Hostnamen einzurichten, gibst du auf jedem Server den folgenden Befehl ein.

# run on node1
sudo hostnamectl set-hostname node1.home.lan
# run on node2
sudo hostnamectl set-hostname node2.home.lan
# run on node3
sudo hostnamectl set-hostname node3.home.lan

Anschließend öffnest du die Datei„/etc/hosts“ auf jedem Server mit deinem bevorzugten Editor. Für diesen Lehrgang wirst du den Editor nano verwenden.

sudo nano /etc/hosts

Füge die folgenden Zeilen in die Datei ein. Wenn du eine IP-Adresse hast, die auf mehrere Hostnamen verweist, ersetze sie durch die folgenden Zeilen.

192.168.5.50  node1.home.lan  node1
192.168.5.56  node2.home.lan  node2
192.168.5.57  node3.home.lan  node3

Drücke Strg+x zum Beenden, gib y zur Bestätigung ein und drücke dann ENTER, um fortzufahren.

Überprüfe abschließend den fqdn auf jedem Server, indem du den folgenden Befehl eingibst.

hostname -f
cat /etc/hosts

Du erhältst eine ähnliche Ausgabe wie diese – Auf Knoten1 sollte der fqdn node1.home.lan, auf Knoten2 node2.home.lan und auf Knoten3 node3.home.lan lauten.

Hostname und Fqdn einrichten

Festplattenpartition einrichten

Es wird empfohlen, ein bestimmtes Laufwerk bzw. eine bestimmte Festplatte für den GlusterFS-Einsatz zu verwenden. In diesem Beispiel hat jeder Debian-Server eine zusätzliche Festplatte „/dev/vdb“, die für die GlusterFS-Installation verwendet wird. In diesem Schritt lernst du, wie du mit dem Terminal und dem Befehl „fdisk“ eine neue Festplatte auf einem Linux-System einrichten kannst.

Gib zunächst den folgenden„fdisk„-Befehl ein, um die Liste der verfügbaren Festplatten auf deinem Debian-Server zu überprüfen.

sudo fdisk -l

Du erhältst eine ähnliche Ausgabe wie diese – Auf dem„node1“ sind zwei Festplatten verfügbar, die„/dev/vda„, auf der das Betriebssystem installiert ist, und die„/dev/vdb„, die noch nicht konfiguriert ist.

Disketten auflisten

Um mit der Partitionierung der Festplatte „/dev/vdb“ zu beginnen, gibst du den folgenden fdisk-Befehl ein. Du solltest die neue Eingabeaufforderung des fdisk-Tools erhalten und dich mit der Festplatte„/dev/vdb“ verbinden.

sudo fdisk /dev/vdb
  • Um eine neue Partition zu erstellen, gib den Befehl„n“ ein.
  • Wähle den Partitionstyp aus, den du erstellen möchtest.p“ für primär und „e“ für erweitert. In diesem Beispiel wirst du eine primäre Partition erstellen, also gib„p“ ein.
  • Wie viele Partitionen möchtest du auf der Festplatte „/dev/vdb“ erstellen? In diesem Beispiel wirst du nur eine Partition erstellen, also gib„1“ ein.
  • Wähle den ersten Sektor für die neue Partition. Du kannst ihn als Standard belassen, also drücke ENTER, um fortzufahren.
  • Im letzten Sektor legst du die Größe der Partition fest, die du erstellen willst. In diesem Beispiel werden es etwa 5 GB sein, also gib„+5GB“ ein.
  • Zum Schluss gibst du „w“ ein, um die Änderungen auf der Festplatte „/dev/vdb“ zu bestätigen und anzuwenden.

Die Ausgabe„Die Partitionstabelle wurde geändert“ bestätigt, dass die Änderungen auf deine Festplatte angewendet wurden.

Partition erstellen fdisk

Damit ist deine neue Partition zwar erstellt, aber immer noch unbrauchbar. Denn du musst deine neue Partition auf bestimmte Dateisystemformate formatieren. Du kannst den folgenden fdisk-Befehl eingeben, um sicherzustellen, dass die neue Partition auf der Festplatte „/dev/vdb“ erstellt wird.

sudo fdiks -l

Du erhältst eine ähnliche Ausgabe wie diese – Im Abschnitt „/dev/vdb“ siehst du, dass die neue Partition„/dev/vdb1“ mit einer Größe von„4,7 GB“ erstellt wurde.

list partition dev/vdb

Als Nächstes gibst du den folgenden Befehl ein, um deine neue Partition„/dev/vdb1“ zu formatieren. In diesem Beispiel formatierst du die Partition im ext4-Dateisystemformat.

sudo mkfs -t ext4 /dev/vdb1

Du erhältst dann eine ähnliche Ausgabe wie diese – Die neue Partition ‚/dev/vda1‚ ist als ext4-Dateisystem formatiert.

Trennwand bilden

Auto-Mount-Partition einrichten

In diesem Schritt richtest du die automatische Einbindung der neuen Partition „/dev/vdb1“ über die Datei„/etc/fstab“ ein. Außerdem erstellst du ein neues Verzeichnis, das zum Speichern von Daten in GlusterFS verwendet werden soll.

Erstelle zunächst ein neues Zielverzeichnis, das zum Einhängen der neuen Partition„/dev/vdb1“ verwendet wird.

# run on node1
mkdir -p /data/node1
# run on node2
mkdir -p /data/node2

# run on node3
mkdir -p /data/node3

Öffne die Konfigurationsdatei„/etc/fstab“ mit dem unten stehenden nano-Editor-Befehl.

sudo nano /etc/fstab

Füge die folgende Zeile in die Datei ein. Damit wird die neue Partition„/dev/vdb1“ beim Systemstart automatisch eingehängt.

# for node1
/dev/vdb1    /data/node1    ext4    defaults    0    1
# for node2
/dev/vdb1    /data/node2    ext4    defaults    0    1

# for node3
/dev/vdb1    /data/node3    ext4    defaults    0    1

Als Nächstes führst du den folgenden Befehl aus, um die neue Partition einzuhängen, die du in der Datei „/etc/fstab“ konfiguriert hast. Wenn kein Fehler auftritt, kannst du loslegen.

sudo mount -a

Zuletzt führst du den folgenden Befehl aus, um für jeden Server ein neues Verzeichnis „brick0“ auf der neu gemounteten Partition zu erstellen.

# run on node1
mkdir -p /data/node1/brick0
# run on node2
mkdir -p /data/node2/brick0

# run on node3
mkdir -p /data/node3/brick0

Installation von GlusterFS Server

In diesem Schritt installierst du das GlusterFS-Paket auf den Debian-Servern, die für den GlusterFS-Cluster verwendet werden sollen. Daher musst du die folgenden Befehle auf den Servern node1, node2 und node3 ausführen.

Führe den folgenden apt-Befehl aus, um grundlegende Abhängigkeiten auf deinem System zu installieren. Gib y ein, wenn du dazu aufgefordert wirst, und drücke ENTER, um fortzufahren.

sudo apt install gnupg2 apt-transport-https software-properties-common

Ausgabe:

Abhängigkeiten installieren

Lade den GPG-Schlüssel für das GlusterFS-Repository über den Befehl curl herunter. Konvertiere dann den neuen Schlüssel in die Datei„/usr/share/keyrings/glusterfs-archive-keyring.gpg„.

curl https://download.gluster.org/pub/gluster/glusterfs/10/rsa.pub | gpg --dearmor > /usr/share/keyrings/glusterfs-archive-keyring.gpg

Als Nächstes führst du den folgenden Befehl aus, um neue Umgebungsvariablen zu erstellen und das GlusterFS-Repository zu deinem System hinzuzufügen.

DEBID=$(grep 'VERSION_ID=' /etc/os-release | cut -d '=' -f 2 | tr -d '"')
DEBVER=$(grep 'VERSION=' /etc/os-release | grep -Eo '[a-z]+')
DEBARCH=$(dpkg --print-architecture)
echo "deb [signed-by=/usr/share/keyrings/glusterfs-archive-keyring.gpg] https://download.gluster.org/pub/gluster/glusterfs/LATEST/Debian/${DEBID}/${DEBARCH}/apt ${DEBVER} main" | sudo tee /etc/apt/sources.list.d/gluster.list

Ausgabe:

Repo hinzufügen

Sobald der GPG-Schlüssel und das Repository hinzugefügt sind, führe den folgenden apt-Befehl aus, um den Paketindex zu aktualisieren und aufzufrischen.

sudo apt update

Ausgabe:

Repo aktualisieren

Installiere nun das GLusterFS-Serverpaket, indem du den folgenden Befehl eingibst. Wenn du zur Bestätigung aufgefordert wirst, gib y ein und drücke ENTER.

sudo apt install glusterfs-server

Ausgabe:

glusterfs installieren

Nachdem du GlusterFS installiert hast, führe den folgenden systemctl-Befehl aus, um den GLusterFS-Dienst zu starten und zu aktivieren. Damit sollte GlusterFS auf allen deinen Servern laufen und ist nun aktiviert, d.h. der GlusterFS-Dienst wird beim Systemstart automatisch gestartet.

sudo systemctl start glusterd
sudo systemctl enable glusterd

Führe abschließend den folgenden systemctl-Befehl aus, um den GlusterFS-Dienst zu überprüfen und sicherzustellen, dass der Dienst läuft und aktiviert ist.

sudo systemctl status glusterd

Die Ausgabe „active (running)“ bestätigt, dass der GlusterFS-Dienst läuft und die Ausgabe „…; enabled;“ bestätigt, dass der GlusterFS-Dienst aktiviert ist und beim Systemstart automatisch gestartet wird.

start verify glusterfs service

Jetzt hast du eine neue Festplatte/Partition vorbereitet und den GLusterFS-Server installiert. Als Nächstes beginnst du mit der Erstellung und Initialisierung des GLusterFS-Clusters.

Speicherpool initialisieren

In diesem Schritt richtest du den GlusterFS-Cluster mit drei Debian-Servern, node1, node2 und node3, ein. Du initialisierst den GlusterFS-Cluster von„node1“ aus und fügst die anderen Knoten„node2“ und„node3“ zum Cluster hinzu.

Bevor du beginnst, stelle sicher, dass jeder Server über den Hostnamen oder fqdn erreichbar ist. Du kannst dies überprüfen, indem du den Ping-Befehl an jeden Server sendest.

ping node2.home.lan
ping node3.home.lan

Auf dem Terminal „node1“ führst du den folgenden Gluster-Befehl aus, um den GlusterFS-Cluster mit den Clustermitgliedern node2 und node3 zu initialisieren.

sudo gluster peer probe node2.home.lan
sudo gluster peer probe node3.home.lan

Die Ausgabe„peer probe: success“ bestätigt, dass die Initialisierung des GlusterFS-Clusters erfolgreich war.

Cluster-Speicherpool initialisieren

Als Nächstes gehst du zum Terminal„node2“ und gibst den folgenden Befehl ein, um den Status des GlusterFS-Clusters zu überprüfen.

sudo gluster peer status

Du solltest eine ähnliche Ausgabe erhalten wie diese – Auf’node2‚ siehst du den GlusterFS-Cluster mit zwei Peers, node1 und node3, mit dem Status connected.

Status von Knoten2

Wechsle nun zum Terminal„node3“ und führe den folgenden Befehl aus, um den Status des GLusterFS-Clusters zu überprüfen.

sudo gluster peer status

Ausgabe – Auf’node3‚ siehst du den GlusterFS-Cluster mit zwei Peers, node1 und node2, mit dem Status connected.

Status von Knoten3

Außerdem kannst du die Liste der Pools auf dem GlusterFS-Cluster mit dem folgenden Befehl überprüfen. Du kannst diesen Befehl auf den Servern node1, node2 oder node3 ausführen.

sudo gluster pool list

Damit hast du den GlusterFS-Cluster mit drei Debian-Servern erfolgreich initialisiert. Im nächsten Schritt erfährst du, wie du ein Volume auf GlusterFS erstellst und wie du das GlusterFS-Volume auf dem Client-Rechner einhängst.

Repliziertes Volume erstellen

Bei GlusterFS gibt es mehrere Arten von Volumes, die du erstellen kannst: Verteiltes Volume, Repliziertes Volume, Verteiltes Repliziertes Volume, Disperses Volume und Verteiltes Disperses Volume. In der offiziellen Dokumentation von GlusterFS findest du weitere Informationen zu den einzelnen Volume-Typen.

In diesem Schritt erstellst du ein neues GlusterFS-Volume mit dem Typ Replicated mit drei verschiedenen GlusterFS-Servern. Damit werden deine Daten automatisch von einem Server zum anderen innerhalb des Speicherpools und des GlusterFS-Clusters kopiert.

Führe den folgenden Gluster-Befehl aus, um ein neues repliziertes Volume auf GlusterFS zu erstellen. In diesem Beispiel erstellst du ein neues Volume„testVolume“ mit dem Typ Replicated zwischen den drei Servern node1, node2 und node3.

sudo gluster volume create testVolume replica 3 node1.home.lan:/data/node1/brick0 node2.home.lan:/data/node2/brick0 node3.home.lan:/data/node3/brick0

Die Ausgabe‚volume create: testVolume: success: …‚ bestätigt, dass das neue Volume‚testVolume‚ erstellt ist.

Als Nächstes musst du das‚testVolume‚ starten, bevor du es verwenden kannst, indem du den folgenden Befehl gibst.

sudo gluster volume start testVolume

Die Ausgabe‚volume start: testVolume: success‚ bestätigt, dass das‚testVolume‚ gestartet und bereit ist.

Ausgabe:

Volumen erstellen und starten

Abschließend kannst du mit dem folgenden gluster-Befehl die Detailinformationen zu„testVolume“ überprüfen.

sudo gluster volume info

Du erhältst eine ähnliche Ausgabe wie diese – Das„testVolume“ mit dem Typ„Replicated„, der Standardübertragungsart„tcp“ und drei verschiedenen Servern node1, node2 und node3.

Ausgabe:

Volumen prüfen

Damit hast du den GlusterFS-Cluster mit drei verschiedenen Servern initialisiert und ein Replicated-Volume „testVolume“ darauf erstellt. Im nächsten Schritt erfährst du, wie du den Client-Rechner einrichtest und das GlusterFS-Volumen muntest.

GlusterFS-Volumen auf dem Client einbinden

In diesem Schritt lernst du, wie du ein GlusterFS-Volume auf dem Client-Rechner einhängst. In diesem Beispiel wird ein Ubuntu/Debian-basierter Rechner mit dem Hostnamen„client“ verwendet. Nun wirst du das GlusterFS-Volume„testVolume“ auf dem Client-Rechner einbinden und die automatische Einbindung über die Datei „/etc/fstab“ einrichten.

Öffne zunächst die Datei„/etc/hosts“ mit dem folgenden Editor-Befehl: nano.

sudo nano /etc/hosts

Gib die folgenden Zeilen in die Datei ein und achte darauf, dass du die Details der IP-Adressen und Hostnamen mit dem GLusterFS-Server abgleichst.

192.168.5.50  node1.home.lan  node1
192.168.5.56  node2.home.lan  node2
192.168.5.57  node3.home.lan  node3

Speichere die Datei und beende den Editor, wenn du fertig bist.

Als nächstes führst du den folgenden apt-Befehl aus, um das Paket „glusterfs-client“ zu installieren. Um das GlusterFS-Volume zu mounten, musst du das Paket„glusterfs-client“ auf deinem Client-Rechner installieren.

sudo apt install glusterfs-client

Gib y ein, wenn du dazu aufgefordert wirst, und drücke ENTER, um fortzufahren.

glusterfs client installieren

Nachdem der glusterfs-client installiert ist, erstelle ein neues Verzeichnis „/data“, das als Zielverzeichnis für das GlusterFS-Volume verwendet wird.

mkdir /data

Hänge das GlusterFS-Volume„testVolume“ mit dem unten stehenden Einhängebefehl in das Verzeichnis„/data“ ein.

sudo mount.glusterfs node1.home.lan:/testVolume /data

Überprüfe die Liste der gemounteten Festplatten auf deinem System mit dem Befehl df.

sudo df -h

Wenn du erfolgreich warst, solltest du sehen, dass das GlusterFS-Volume „testVolume“ in das Verzeichnis „/data“ eingehängt wurde.

Ausgabe:

glusterfs einhängen

Als Nächstes richtest du die automatische Einbindung des GlusterFS-Volumes über die Datei „/ect/fstab“ ein.

Öffne die Datei „/etc/fstab“ mit dem folgenden Befehl des Editors nano.

sudo nano /etc/fstab

Füge die folgenden Zeilen in die Datei ein. Damit wird das GlusterFS-Volumen„testVolume“ beim Booten automatisch gemountet.

node1.home.lan:/testVolume /data glusterfs defaults,_netdev 0 0

Speichere und beende die Datei, wenn du fertig bist.

Jetzt hast du die Client-Konfiguration für das Einhängen des GlusterFS-Volumes abgeschlossen und das automatische Einhängen des GlusterFS-Volumes über die Datei „/etc/fstab“ konfiguriert. Im nächsten Schritt überprüfst du die Replikation und Hochverfügbarkeit des GLusterFS-Clusters.

Replikation und Hochverfügbarkeit testen

Verschiebe auf dem Client-Rechner das Arbeitsverzeichnis nach „/data“ und erstelle mit dem folgenden Befehl neue Dateien. Dadurch werden neue Dateien„1-15.md“ erstellt.

cd /data
touch file{1..15}.md

Gib den Befehl ls ein, um die Liste der Dateien im aktuellen Verzeichnis zu erhalten.

ls

Ausgabe:

neue Dateien hinzufügen

Als nächstes wechselst du zum Terminal„node1“ und gehst in das Verzeichnis„/data/node1/brick0„. Gib dann den Befehl ls ein, um die Liste der Dateien und Verzeichnisse zu überprüfen.

cd /data/node1/brick0
ls

Du solltest sehen, dass die Dateien‚1-15.md‚ auf node1 verfügbar sind.

Ausgabe:

Daten repliziert node1

Wechsle zum Terminal„node2“ und gehe in das Verzeichnis„/data/node2/brick0„. Gib dann den Befehl ls ein, um die Liste der Dateien und Verzeichnisse zu überprüfen.

cd /data/node2/brick0
ls

Du solltest sehen, dass die Dateien‚1-15.md‚ auf node2 verfügbar sind.

Ausgabe:

Daten repliziert node2

Wechsle zum Terminal„node3“ und gehe in das Verzeichnis „/data/node3/brick0„. Gib dann den Befehl ls ein, um die Liste der Dateien und Verzeichnisse zu überprüfen.

cd /data/node3/brick0
ls

Du solltest sehen, dass die Dateien‚1-15.md‚ auf node3 verfügbar sind.

Ausgabe:

Daten repliziert node3

Damit sind die Daten, die du auf dem Client-Rechner erstellt hast, auf mehrere Server auf dem GlusterFS-Server repliziert.

Als Nächstes kannst du zur Hochverfügbarkeit von GLusterFS den’node1‚ ausschalten oder herunterfahren und überprüfen, ob der Client-Rechner noch mit dem GlusterFS-Cluster verbunden ist.

Gehe zum Terminal„node1“ und führe den folgenden Befehl aus, um den Server herunterzufahren.

sudo poweroff

Gehe dann zum Terminal„node2“ und führe den unten stehenden Befehl aus, um den Status des GLusterFS-Clusters zu überprüfen.

sudo gluster peer status

Du solltest eine Ausgabe wie diese erhalten – Der Status von node1 ist„Disconnected„.

test ha

Wechsle zum Client-Terminal und führe den folgenden Befehl aus, um sicherzustellen, dass du noch mit dem GlusterFS-Cluster verbunden bist.

cd /data
ls

Ausgabe:

test ha

Damit funktioniert die Hochverfügbarkeit des GlusterFS-Clusters.

Fazit

In diesem Lernprogramm hast du GlusterFS Cluster mit drei Debian 11 Servern installiert. Außerdem hast du eine neue Festplatte/Partition unter Linux mit fdisk konfiguriert und die automatische Einbindung der Linux-Festplatte/Partition mit der Datei /etc/fstab eingerichtet. Außerdem hast du gelernt, wie du ein repliziertes Volume auf GlusterFS erstellst und einen Debian/Ubuntu-basierten Client-Rechner einrichtest, um das GlusterFS-Volume zu mounten.

Jetzt kannst du deinen GlusterFS-Cluster durch Hinzufügen weiterer Festplatten und Server zu einem hochverfügbaren Netzwerk-Dateisystem ausbauen, auf das du über deine Netzwerke zugreifen kannst. Mehr über die Verwaltung von GlusterFS erfährst du in der offiziellen GlusterFS-Dokumentation.

Das könnte dich auch interessieren …