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

installieren getrennt

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:

Partition erstellen

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

Repo hinzufügen

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

Repo aktualisieren

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.

glusterfs Server installieren

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.

start enable glusterd

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.

Cluster initialisieren

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.

Peer-Status

Auf Server2 solltest du den Server1 und den Server3 sehen.

Peer-Status Server2

Auf Server3 solltest du Server1 und Server2 sehen.

Peer-Status Server3

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.

Pool-Liste

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.

Startvolumen erstellen

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.

Bandinfo

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.

glusterfs client installieren

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.

glusterfs-Volumen einhängen

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

Test schreiben

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.

Replizierter Server1

Unten werden Daten auf Server2 repliziert

Replizierter Server2

Unten werden die Daten auf Server3 repliziert.

Replizierter Server3

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.

Das könnte dich auch interessieren …