So installierst du einen GlusterFS-Cluster mit drei Knoten unter Debian 12
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 der folgenden Anleitung führe ich dich durch die Installation von GlusterFS auf Debian 12 Servern. Wir werden mit GlusterFS ein hochverfügbares und repliziertes Speichersystem mit mehreren Debian-Servern erstellen. Außerdem erfährst du, wie du GlusterFS auf einem Debian-Client-Rechner einbindest und die automatische Einbindung von GlusterFS-Volumes über die Datei /etc/fstab einrichtest.
Voraussetzungen
Bevor du mit dieser Anleitung fortfährst, solltest du sicherstellen, dass du über die folgenden Voraussetzungen verfügst:
- Mehrere Debian 12-Server – In diesem Beispiel werden 3 Debian-Server für die Erstellung des GlusterFS-Clusters verwendet.
- Einen Nicht-Root-Benutzer mit Administrator-Rechten.
- Einen Debian-Client-Rechner.
Partitionierung der Festplatte mit Parted
Bevor du loslegst, erstellst du auf jedem Server eine neue Partition, die für GlusterFS verwendet werden soll. In diesem Beispiel erstellst du eine Partition von der Festplatte /dev/sdb mit dem Parted Partitionsmanager.
Installiere parted mit dem folgenden apt-Befehl auf deinen Debian-Servern.
sudo apt install parted -y
Führe den folgenden parted-Befehl aus, um die Partitionierung der Festplatte /dev/sdb zu starten.
sudo parted /dev/sdb
Nachdem du den parted-Befehl ausgeführt hast, solltest du dich in der parted-Umgebung befinden.
Führe den folgenden Befehl aus, um eine neue Partitionstabelle für die Festplatte /dev/sdb nach msdos zu erstellen.
mklabel msdos
Führe nun den folgenden Befehl aus, um eine neue primäre Partition /dev/sdb1 mit dem Format ext4 und einer Größe von 5 GB zu erstellen.
mkpart primary ext4 1MB 5369MB
Sobald die Partition erstellt ist, gibst du quit ein, um Parted zu beenden.
Als Nächstes führst du den folgenden Befehl aus, um die Partition /dev/sdb1 mit ext4 zu formatieren.
sudo mkfs -t ext4 /dev/sdb1
Nachdem /dev/sdb1 formatiert wurde, wird die folgende Ausgabe angezeigt:
Führe nun den folgenden Befehl aus, um ein neues Ziel-Mount-Verzeichnis /gluster zu erstellen. Hänge dann die Partition /dev/sdb1 in das Verzeichnis /gluster ein.
mkdir -p /gluster sudo mount /dev/sdb1 /gluster
Zum Schluss erstellst du ein neues Verzeichnis /gluster/brick0, das als Datenverzeichnis für jeden GlusterFS-Server verwendet wird.
sudo mkdir -p /gluster/brick0
Installation von GlusterFS Server
Nachdem du die Festplatte auf jedem Server partitioniert hast, fügst du das GlusterFS-Repository hinzu und installierst das Paket glusterfs-server auf jedem Server.
Führe den folgenden Befehl aus, um den GPG-Schlüssel des GlusterFS-Repositorys hinzuzufügen.
curl https://download.gluster.org/pub/gluster/glusterfs/11/rsa.pub | gpg --dearmor > /usr/share/keyrings/glusterfs-archive-keyring.gpg
Führe dann den folgenden Befehl aus, um das GlusterFS-Repository zu deinen Debian-Servern 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
Nachdem du das GlusterFS-Repository und den GPG-Schlüssel hinzugefügt hast, führe den folgenden apt-Befehl aus, um deinen Debian-Paketindex zu aktualisieren und aufzufrischen.
sudo apt update
Führe dann den folgenden apt install-Befehl aus, um das Paket glusterfs-server zu installieren.
sudo apt install glusterfs-server
Gib y ein, um mit der Installation fortzufahren.
Sobald der glusterfs-server installiert ist, führe den folgenden systemctl-Befehl aus, um den glusterd-Dienst zu starten und zu aktivieren.
sudo systemctl start glusterd sudo systemctl enable glusterd
Überprüfe abschließend den glusterd-Dienst, um sicherzustellen, dass der Dienst läuft und aktiviert ist.
sudo systemctl status glusterd
Die folgende Ausgabe zeigt, dass der glusterd-Dienst läuft und aktiviert ist.
Initialisierung des GlusterFS-Clusters
Nachdem das Paket glusterfs-server installiert wurde, musst du im nächsten Schritt den GlusterFS-Cluster initialisieren. In diesem Beispiel initialisierst du den GLusterFS-Cluster von Server1 aus und fügst dann sowohl Server2 als auch Server3 zum Cluster hinzu.
Führe auf dem Terminal von Server1 den folgenden Gluster-Befehl aus, um den GlusterFS-Cluster mit den Mitgliedern von Server2 mit der IP-Adresse 192.168.10.21 und Server3 mit der IP-Adresse 192.168.10.22 zu initialisieren.
sudo gluster peer probe 192.168.10.21 sudo gluster peer probe 192.168.10.22
Wenn die Initialisierung erfolgreich ist, wird die Meldung„peer probe: success“ angezeigt.
Gehe nun zu Server2 oder Server3 und führe den unten stehenden Gluster-Befehl aus, um den Status des GlusterFS-Clusters zu überprüfen.
sudo gluster peer status
Wenn alles gut läuft, sind zwei Peers in deinem GlusterFS-Cluster verfügbar.
Auf Server2 solltest du den Server1 und den Server3 sehen.
Auf Server3 solltest du Server1 und Server2 sehen.
Schließlich kannst du die Liste der verfügbaren Peers auf deinem GlusterFS-Cluster auch mit dem folgenden Gluster-Befehl überprüfen.
sudo gluster pool list
Die folgende Ausgabe zeigt, dass der GlusterFS-Cluster drei verschiedene Server hat.
GlusterFS-Volumen erstellen
Zu diesem Zeitpunkt hast du den GlusterFS-Cluster initialisiert. Um den GlusterFS für Clients verfügbar zu machen, musst du das Volume auf deinem GlusterFS-Cluster erstellen.
Führe den folgenden Befehl aus, um ein neues Volume volume1 mit 3 Replikaten, server1, server2 und server3, zu erstellen.
sudo gluster volume create volume1 replica 3 192.168.10.20:/gluster/brick0 192.168.10.21:/gluster/brick0 192.168.10.22:/gluster/brick0
Sobald das Volume volume1 erstellt ist, starte es mit dem folgenden Gluster-Befehl.
sudo gluster volume start volume1
Die Ausgabe„volume start: volume1: success“ zeigt an, dass volume1 gestartet ist.
Führe nun den folgenden Befehl aus, um die Liste der verfügbaren Volumes in deinem GlusterFS-Cluster zu überprüfen.
sudo gluster volume info
Die folgende Ausgabe zeigt, dass volume1 mit dem Typ Replicate und 3 Servern, nämlich server1, server2 und server3, erstellt wurde.
Einhängen von GlusterFS-Volumes
Im folgenden Abschnitt wirst du das GlusterFS-Volumen volume1, das du erstellt hast, auf einem Debian-Client-Rechner mounten. Dazu musst du das GlusterFS-Repository hinzufügen und das Paket glusterfs-client auf deinem Debian-Client-Rechner installieren.
Lade den GPG-Schlüssel für das GLusterFS-Repository auf deinen Debian-Client-Rechner herunter.
curl https://download.gluster.org/pub/gluster/glusterfs/11/rsa.pub | gpg --dearmor > /usr/share/keyrings/glusterfs-archive-keyring.gpg
Füge das GLusterFS-Repository hinzu, indem du den folgenden Befehl auf deinem Client ausführst.
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
Aktualisiere nun dein Debian-Client-Repository und installiere das glusterfs-client-Paket mit dem folgenden apt-Befehl.
sudo apt update sudo apt install glusterfs-client
Gib y ein, um mit der Installation fortzufahren. Sobald der glusterfs-client installiert ist, kannst du das GlusterFS-Volume auf deinem Debian-Client-Rechner mounten.
Als Nächstes führst du den folgenden Befehl aus, um ein neues Ziel-Mount-Verzeichnis /mnt/data zu erstellen.
mkdir -p /mnt/data
Führe dann den folgenden Befehl aus, um das Volume1 in das Verzeichnis /mnt/data einzuhängen. Du kannst die IP-Adresse des GlusterFS-Servers mit server1, server2 oder server3 ändern.
sudo mount.glusterfs 192.168.10.20:/volume1 /mnt/data
Sobald volume1 eingehängt ist, überprüfe es mit dem folgenden Befehl.
sudo df -h
Wenn alles klappt, solltest du sehen, dass volume1 in das Verzeichnis /mnt/data eingehängt ist.
Jetzt, da das GlusterFS-Volume eingehängt ist, überprüfst du den Schreibzugriff auf das Ziel-Mount-Verzeichnis und die Datenreplikation vom Client-Rechner zu den Servern im GlusterFS-Cluster.
Als Nächstes wechselst du in das Verzeichnis /mnt/data und erstellst mit dem folgenden Befehl neue Dateien. Dadurch werden mehrere Dateien in diesem Verzeichnis erstellt und es wird sichergestellt, dass das Volume beschreibbar ist.
cd /mnt/data touch file{1..15}.md
Überprüfe die Liste der verfügbaren Dateien mit dem Befehl ls (siehe unten).
ls -ah
Wechsle nun zu den GlusterFS-Servern, Server1, Server2 oder Server3, und führe den unten stehenden ls-Befehl aus, um die Liste der verfügbaren Dateien zu überprüfen.
ls /gluster/brick0
Wenn die Replikation funktioniert, solltest du Dateien auf allen GlusterFS-Servern sehen, die vom Debian-Client-Rechner aus erstellt wurden.
Unten werden die Daten auf Server1 repliziert.
Unten werden Daten auf Server2 repliziert
Unten werden die Daten auf Server3 repliziert.
Auto-Mount GlusterFS Volume einrichten
Im folgenden Abschnitt erfährst du, wie du die automatische Einbindung des GlusterFS-Volumes über die Datei /etc/fstab einrichtest. So kannst du das GlusterFS-Volume beim Booten automatisch mounten.
Öffne die Datei /etc/fstab mit dem folgenden Befehl des Editors nano.
sudo nano /etc/fstab
Füge die folgende Konfiguration ein, um das Volume1 in das Zielverzeichnis /mnt/data einzuhängen.
192.168.10.20:/volume1 /mnt/data glusterfs defaults,_netdev 0 0
Speichere und beende die Datei, wenn du fertig bist.
Führe nun den folgenden Befehl aus, um den systemd manager neu zu laden und die Konfiguration der /etc/fstab zu überprüfen. Wenn keine Ausgabemeldung erscheint, bestätigt dies, dass du die /etc/fstab richtig konfiguriert hast.
sudo systemctl daemon-reload sudo mount -a
Fazit
Gute Arbeit! Du hast GlusterFS erfolgreich auf Debian 12-Servern installiert und einen GlusterFS-Cluster mit 3 Servern erstellt. Außerdem hast du ein GlusterFS-Volume auf dem Debian-Client-Rechner erstellt und gemountet. Außerdem hast du die automatische Einbindung des GlusterFS-Volumes in der Datei /etc/fstab konfiguriert.