So installierst du GlusterFS unter Rocky Linux
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, das GlusterFS-Volumen zu verbinden und zu mounten.
GlusterFS ist ein modernes Dateisystem, das Petabytes an Daten bewältigen kann. Außerdem ist es einfach zu installieren und zu warten und kann leicht skaliert werden.
In diesem Lernprogramm lernst du, wie du GlusterFS auf zwei Rocky Linux-Systemen installierst und das Clustering zwischen zwei Servern einrichtest. Außerdem erfährst du, wie du ein GlusterFS-Volume auf dem Client-Rechner einhängst.
Voraussetzung
- Zwei Rocky Linux Server mit einer zusätzlichen Festplatte auf jedem Server.
- Ein Root-Passwort ist auf beiden Servern eingerichtet
Einrichten von FQDN und /etc/hosts
Bevor du beginnst, musst du auf jedem Server den FQDN und die Datei /etc/hosts einrichten.
Im Folgenden findest du den detaillierten Server, den wir für die Erstellung des GlusterFS-Clusters verwenden werden:
- server1.localdomain.lan mit der IP-Adresse 192.168.10.15
- server2.localdomain.lan mit der IP-Adresse 192. 168.10.20
Um den FQDN auf jedem Server einzurichten, führe den folgenden Befehl hostnamectl aus.
Auf Server1 führst du den folgenden Befehl hostnamectl aus.
sudo hostnamectl set-hostname server1.localdomain.lan
Und auf Server2 führst du den folgenden Befehl aus.
sudo hostnamectl set-hostname server2.localdomain.lan
Als nächstes bearbeitest du die Konfiguration /etc/hosts mit dem Editor nano.
sudo nano /etc/hosts
Füge die folgende Konfiguration ein.
192.168.10.15 server1.localdomain.lan 192.168.10.20 server2.localdomain.lan
Speichere die Datei, indem du Strg+X drückst und zur Bestätigung Y eingibst.
Teste nun die Verbindung zwischen Server1 und Server2 mit dem unten stehenden Ping-Befehl.
ping -c3 server1.localdomain.lan ping -c3 server2.localdomain.lan
Jeder lokale Domainname wird in die richtige IP-Adresse des Servers aufgelöst.
Einrichten der Partition
Für den Einsatz von GlusterFS wird empfohlen, verschiedene Festplattenspeicher zu verwenden, insbesondere für die Produktionsumgebung.
Für dieses Lernprogramm haben sowohl Server1 als auch Server2 eine sekundäre Festplatte /dev/vdb1 mit einer Größe von 5 GB.
Bearbeite nun die /etc/fstab-Konfiguration mit dem nano-Editor, um deine Festplatte hinzuzufügen.
sudo nano /etc/fstab
Für Server1 wird die Platte /dev/vda1 in das Verzeichnis /data/vol1 eingehängt.
/dev/vda1 /data/vol1 ext4 default 0 0
Für Server2 wird die Festplatte /dev/vda1 in das Verzeichnis /data/vol2 eingehängt.
/dev/vda1 /data/vol2 ext4 default 0 0
Als Nächstes mountest du die Festplatte /dev/vda1 mit dem unten stehenden Befehl.
sudo mount -a
Wenn keine Fehlermeldung angezeigt wird, überprüfe die Liste der gemounteten Festplatten auf jedem System, indem du den Befehl df wie folgt ausführst.
sudo df -h
Du solltest sehen, dass die Festplatte /dev/vda1 in das Verzeichnis /data eingebunden ist.
Bevor du mit der Installation und Konfiguration des GlusterFS-Clusters beginnst, führe den folgenden Befehl aus, um das Verzeichnis brick0 innerhalb des Verzeichnisses /data zu erstellen.
Auf Server1 führst du den unten stehenden Befehl aus.
sudo mkdir -p /data/vol1/brick0
Für Server2 führst du den unten stehenden Befehl aus.
sudo mkdir -p /data/vol2/brick0
Hinzufügen des GlusterFS-Repositorys für Rocky Linux
Nachdem du die Festplatte erfolgreich eingerichtet hast, installierst du nun die GlusterFS-Pakete auf deinen Rocky Linux-Servern.
Das aktuelle Rocky Linux stellt noch keine GlusterFS-Serverpakete bereit, aber du kannst die CentOS-Release-GlusterFS-Pakete verwenden.
Füge das GlusterFS-Repository mit folgendem Befehl zu deinem Rocky Linux-System hinzu.
sudo dnf install centos-release-gluster9
Gib y ein, um die Installation zu bestätigen und drücke ENTER, um fortzufahren.
Als nächstes gehst du in das Verzeichnis /etc/yum.repos.d/ und bearbeitest die Repository-Konfioguration CentOS-Gluster-9.repo mit dem Editor nano.
cd /etc/yum.repos.d/ sudo nano CentOS-Gluster-9.repo
Ändere die baseurl Zeile mit dem Rocky Linux Repository und kommentiere die mirrorlist Zeile wie folgt
# CentOS-Gluster-9.repo # # Please see http://wiki.centos.org/SpecialInterestGroup/Storage for more # information
[centos-gluster9]
name=CentOS-$releasever – Gluster 9
#mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=$releasever&repo=storage-gluster-9
baseurl=https://dl.rockylinux.org/vault/centos/8.5.2111/storage/x86_64/gluster-9/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Storage
[centos-gluster9-test]
name=CentOS-$releasever – Gluster 9 Testing
baseurl=http://buildlogs.centos.org/centos/$releasever/storage/$basearch/gluster-9/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Storage
Speichere die Datei mit Strg+X und Y zur Bestätigung.
Überprüfe nun das verfügbare Repository auf deinem Rocky Linux System mit dem folgenden Befehl.
sudo dnf repolist
Du wirst das CentOS Release Repository für GlusterFS 9 sehen.
Installation von GlusterFS Server
Installiere nun die GlusterFS Pakete auf dem Rocky Linux System mit dem folgenden dnf Befehl.
sudo dnf install glusterfs glusterfs-libs glusterfs-server
Gib Y ein, um die Installation zu bestätigen und drücke ENTER, um fortzufahren.
Nachdem die Installation abgeschlossen ist, starte den glusterfsd-Dienst und füge ihn mit dem folgenden Befehl zum Systemstart hinzu.
sudo systemctl enable glusterfsd.service sudo systemctl start glusterfsd.service
Überprüfe nun den Status des glusterfsd-Dienstes mit dem folgenden Befehl.
sudo systemctl status glusterfsd.service
Du wirst sehen, dass der glusterfsd-Dienst mit dem Status exited aktiv ist, was bedeutet, dass er zwar läuft, aber der systemd-Manager keinen Daemon zur Überwachung findet.
Port mit Firewalld öffnen
Bevor du mit der Konfiguration des GlusterFS-Clusters beginnen kannst, musst du den Port für den GlusterFS-Dienst öffnen.
Auf RHEL Linux-basierten Betriebssystemen ist die Standard-Firewall-Anwendung firewalld, die das Kommandozeilen-Tool firewall-cmd zur Verwaltung der Firewall bereitstellt.
Füge den Dienst glusterfs zu deiner Firewalld-Konfiguration hinzu und lade die Firewalld mit dem unten stehenden Befehl neu.
sudo firewall-cmd --add-service=glusterfs --permanent sudo firewall-cmd --reload
Überprüfe danach die Liste der Dienste auf der Firewalld mit dem folgenden Befehl.
sudo firewall-cmd --list-services
Du wirst sehen, dass der glusterfs-Dienst zur Firewalld hinzugefügt wurde.
Initialisierung des GlusterFS-Clusters
Der nächste Schritt ist die Initialisierung und Einrichtung des GlusterFS-Clusters auf den Rocky Linux-Systemen.
Zunächst initialisierst du den GlusterFS-Cluster mit dem folgenden Befehl. Dieser Befehl muss auf dem Server1 ausgeführt werden und kann nur einmal ausgeführt werden.
Mit diesem Befehl fügst du server2.localdomain.lan zum GlusterFS-Peer auf Server1 hinzu. Außerdem wird Server2 automatisch initialisiert, nachdem der folgende Befehl ausgeführt wurde.
sudo gluster peer probe server2.localdomain.lan
Jetzt solltest du die Meldung „peer probe: success“sehen .
Als nächstes überprüfst du den Peer-Status auf Server1 mit dem folgenden Befehl.
sudo gluster peer status
Du solltest sehen, dass es nur einen Peer auf Server1 gibt.
Führe auch den folgenden Befehl auf Server2 aus, um die verfügbaren Peers auf Server2 zu überprüfen.
sudo gluster peer status
Du solltest sehen, dass es nur einen Peer auf Server2 gibt.
GlusterFS-Volumen erstellen
Nachdem du den GlusterFS-Cluster erfolgreich initialisiert hast, erstellst du ein neues GlusterFS-Volume, das von den Client-Rechnern genutzt werden soll.
In diesem Lernprogramm erstellst du ein neues Volume mit dem Namen myvolume und dem Typ Replikat von 2 Festplatten von Server1 und Server2.
sudo gluster volume create myvolume replica 2 server1.localdomain.lan:/data/vol1/brick0 server2.localdomain.com:/data/vol2/brick0
Bestätige nun mit y und drücke ENTER, um das GlusterFS-Volume zu erstellen.
Wenn der Vorgang erfolgreich war, siehst du eine Ausgabe wie im folgenden Screenshot.
Als nächstes startest du das Glusterfs-Volume myvolume mit dem folgenden Befehl.
sudo gluster volume start myvolume
Du siehst die Meldung „volume start: myvolume: success“, was bedeutet, dass das myvolume gestartet ist.
Führe nun den folgenden Befehl aus, um den Status des GlusterFS-Volumes zu überprüfen.
sudo gluster volume status
Unten siehst du, dass der Status von myvolume online ist und von den Clients genutzt werden kann.
Optional kannst du den Status des GlusterFS-Volumes auch mit dem folgenden Befehl überprüfen.
sudo gluster volume info
Du siehst, dass das Volume myvolume mit dem Typ replicate und dem Status gestartet ist. Das myvolume basiert auf der Festplatte auf Server1 und Server2.
Einhängen des GlusterFS-Volumes auf dem Client-Rechner
Jetzt hast du das GlusterFS-Volume myvolume erstellt. Als Nächstes erfährst du, wie du den Client-Rechner einrichtest und das GlusterFS-Volume mountest.
In diesem Lernprogramm verwenden wir den Client-Rechner mit dem Namen client.
Bearbeite die Konfiguration /etc/hosts auf deinem Client-Rechner mit dem Editor nano.
sudo nano /etc/hosts
Füge die folgende Konfiguration ein.
192.168.10.15 server1.localdomain.lan 192.168.10.20 server2.localdomain.lan
Speichere die Datei mit Strg+X und gib zur Bestätigung Y ein.
Um die Verbindung zwischen dem Client-Rechner und dem GlusterFS-Server zu überprüfen, führe den folgenden Ping-Befehl aus.
ping -c3 server1.localdomain.lan
Du wirst sehen, dass der Client-Befehl sich mit dem GlusterFS-Server verbinden kann.
Als Nächstes installierst du das GlusterFS-Clientpaket aus dem AppStream Rocky Linux Repository mit dem folgenden Befehl.
sudo dnf install glusterfs-client
Gib y ein, um die Installation zu bestätigen und drücke ENTER, um fortzufahren.
Nachdem die Installation abgeschlossen ist, erstelle ein neues Mount-Verzeichnis /data mit dem folgenden Befehl.
sudo mkdir /data
Hänge das GlusterFS-Volume myvolume mit dem unten stehenden Mount-Befehl in das /data-Verzeichnis ein.
sudo mount.glusterfs server1.localdomain.lan:/myvolume /data
Wenn keine Fehlermeldung angezeigt wird, wurde das GlusterFS-Volume erfolgreich in den Client-Rechner eingebunden.
Führe den folgenden Befehl aus, um das GlusterFS-Volume zu überprüfen.
df -h
Du wirst sehen, dass das GlusterFS-Volumen myvolume erfolgreich in das Verzeichnis /data auf dem Client-Rechner eingehängt wurde.
Testen des Schreibzugriffs und der Hochverfügbarkeit
Wechsle auf dem Client-Rechner in das Verzeichnis /data und erstelle mit dem folgenden Befehl eine neue Datei.
Mit diesem Befehl erstellst du 5 Dateien im /data-Verzeichnis.
cd /data touch file{1..5}.md
Gehe nun zu Server1 und überprüfe das Verzeichnis /data/vol1/brick0 mit dem folgenden Befehl.
ls /data/vol1/brick0
Du solltest sehen, dass die Datei auf Server1 verfügbar ist.
Als nächstes schaltest du Server1 mit folgendem Befehl aus oder fährst ihn herunter.
sudo shutdown -r now
Wechsle wieder zu Server2 und überprüfe den Status von GlusterFS auf Server2 mit dem folgenden Befehl.
sudo gluster peer status
Du wirst sehen, dass der Status von Peer Server1 “ disconnected“ ist.
Überprüfe die verfügbaren Dateien im Verzeichnis /data/vol2/brick0 von Server2.
ls /data/vol2/brick0
Du wirst sehen, dass alle Dateien vom Client auch auf Server2 verfügbar sind, was bedeutet, dass die Daten vom Peer-Server repliziert wurden.
Wenn du jetzt zum Client-Rechner zurückkehrst, siehst du, dass der Status der Verbindung zum GlusterFS-Server immer noch aktiv ist und läuft, auch wenn Server1 ausgefallen ist. Das bedeutet, dass die Hochverfügbarkeit von GlusterFS erfolgreich ist.
Fazit
Herzlichen Glückwunsch! Du hast nun erfolgreich den GlusterFS Clusterspeicher auf Rocky Linux Systemen installiert und konfiguriert. Außerdem hast du gelernt, wie du ein GlusterFS-Volume einrichtest und das GlusterFS-Volume auf dem Client-Rechner einhängst.