Speicherlösungen · 4 min read · Jan 18, 2026
Hochverfügbare Speicherung mit GlusterFS 3.2.x auf Ubuntu 12.04 - Automatische Dateireplikation über zwei Speicherserver
Hochverfügbare Speicherung mit GlusterFS 3.2.x auf Ubuntu 12.04 - Automatische Dateireplikation (Mirror) über zwei Speicherserver
Version 1.0
Autor: Falko Timme
Folge mir auf Twitter
Dieses Tutorial zeigt, wie man eine hochverfügbare Speicherung mit zwei Speicherservern (Ubuntu 12.04) einrichtet, die GlusterFS verwenden. Jeder Speicherserver wird ein Spiegel des anderen Speicherservers sein, und Dateien werden automatisch über beide Speicherserver repliziert. Das Client-System (ebenfalls Ubuntu 12.04) wird in der Lage sein, auf den Speicher zuzugreifen, als ob es sich um ein lokales Dateisystem handelt. GlusterFS ist ein Cluster-Dateisystem, das in der Lage ist, auf mehrere Petabyte zu skalieren. Es aggregiert verschiedene Speicherbausteine über Infiniband RDMA oder TCP/IP-Verbindungen zu einem großen parallelen Netzwerkdateisystem. Speicherbausteine können aus beliebiger handelsüblicher Hardware bestehen, wie z.B. x86_64-Servern mit SATA-II-RAID und Infiniband HBA.
Ich gebe keine Garantie, dass dies bei Ihnen funktioniert!
1 Vorbemerkung
In diesem Tutorial verwende ich drei Systeme, zwei Server und einen Client:
- server1.example.com: IP-Adresse 192.168.0.100 (Server)
- server2.example.com: IP-Adresse 192.168.0.101 (Server)
- client1.example.com: IP-Adresse 192.168.0.102 (Client)
Da wir alle Schritte aus diesem Tutorial mit Root-Rechten ausführen werden, können wir entweder alle Befehle in diesem Tutorial mit dem String sudo voranstellen oder wir werden jetzt root, indem wir eingeben
sudo su
Alle drei Systeme sollten in der Lage sein, die Hostnamen der anderen Systeme aufzulösen. Wenn dies nicht über DNS erfolgen kann, sollten Sie die Datei /etc/hosts bearbeiten, sodass sie auf allen drei Systemen wie folgt aussieht:
vi /etc/hosts
| 127.0.0.1 localhost.localdomain localhost 192.168.0.100 server1.example.com server1 192.168.0.101 server2.example.com server2 192.168.0.102 client1.example.com client1 # Die folgenden Zeilen sind wünschenswert für IPv6-fähige Hosts ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts |
(Es ist auch möglich, IP-Adressen anstelle von Hostnamen in der folgenden Einrichtung zu verwenden. Wenn Sie IP-Adressen verwenden möchten, müssen Sie sich keine Gedanken darüber machen, ob die Hostnamen aufgelöst werden können oder nicht.)
2 Einrichtung der GlusterFS-Server
server1.example.com/server2.example.com:
GlusterFS ist als Paket für Ubuntu 12.04 verfügbar, daher können wir es wie folgt installieren:
apt-get install glusterfs-server
Der Befehl
glusterfsd --version
sollte jetzt die GlusterFS-Version anzeigen, die Sie gerade installiert haben (in diesem Fall 3.2.5):
root@server1:~# glusterfsd --version glusterfs 3.2.5 built on Jan 31 2012 07:39:58 Repository revision: git://git.gluster.com/glusterfs.git Copyright (c) 2006-2011 Gluster Inc.
Wenn Sie eine Firewall verwenden, stellen Sie sicher, dass die TCP-Ports 111, 24007, 24008, 24009-(24009 + Anzahl der Bausteine über alle Volumes) auf server1.example.com und server2.example.com geöffnet sind.
Als nächstes müssen wir server2.example.com zum vertrauenswürdigen Speicherpool hinzufügen (bitte beachten Sie, dass ich alle GlusterFS-Konfigurationsbefehle von server1.example.com ausführe, aber Sie können sie auch von server2.example.com ausführen, da die Konfiguration zwischen den GlusterFS-Knoten repliziert wird - stellen Sie nur sicher, dass Sie die richtigen Hostnamen oder IP-Adressen verwenden):
server1.example.com:
Führen Sie auf server1.example.com aus
gluster peer probe server2.example.com
root@server1:~# gluster peer probe server2.example.com Probe erfolgreich root@server1:~#
Der Status des vertrauenswürdigen Speicherpools sollte jetzt ähnlich wie folgt aussehen:
gluster peer status
root@server1:~# gluster peer status Anzahl der Peers: 1
Hostname: server2.example.com Uuid: 7cd93007-fccb-4fcb-8063-133e6ba81cd9 Status: Peer im Cluster (Verbunden) root@server1:~#
Als nächstes erstellen wir den Share mit dem Namen testvol mit zwei Replikaten (bitte beachten Sie, dass die Anzahl der Replikate der Anzahl der Server in diesem Fall entspricht, da wir ein Spiegeln einrichten möchten) auf server1.example.com und server2.example.com im Verzeichnis /data (dies wird erstellt, wenn es nicht existiert):
gluster volume create testvol replica 2 transport tcp server1.example.com:/data server2.example.com:/data
root@server1:~# gluster volume create testvol replica 2 transport tcp server1.example.com:/data server2.example.com:/data Erstellung des Volumens testvol war erfolgreich. Bitte starten Sie das Volumen, um auf Daten zuzugreifen. root@server1:~#
Starten Sie das Volumen:
gluster volume start testvol
Es ist möglich, dass der obige Befehl Ihnen mitteilt, dass die Aktion nicht erfolgreich war:
root@server1:~# gluster volume start testvol Starten des Volumens testvol war nicht erfolgreich root@server1:~#
In diesem Fall sollten Sie die Ausgabe von…
server1.example.com/server2.example.com:
netstat -tap | grep glusterfsd
auf beiden Servern überprüfen.
Wenn Sie eine Ausgabe wie diese erhalten…
root@server1:~# netstat -tap | grep glusterfsd tcp 0 0 *:24009 *:* LISTEN 1548/glusterfsd tcp 0 0 localhost.localdom:1019 localhost.localdo:24007 ESTABLISHED 1548/glusterfsd root@server1:~#
… ist alles in Ordnung, aber wenn Sie keine Ausgabe erhalten…
root@server2:~# netstat -tap | grep glusterfsd root@server2:~#
… starten Sie den GlusterFS-Daemon auf dem entsprechenden Server (server2.example.com in diesem Fall):
server2.example.com:
/etc/init.d/glusterfs-server restart
Überprüfen Sie dann erneut die Ausgabe von…
netstat -tap | grep glusterfsd
… auf diesem Server - es sollte jetzt so aussehen:
root@server2:~# netstat -tap | grep glusterfsd tcp 0 0 *:24010 *:* LISTEN 1458/glusterfsd tcp 0 0 localhost.localdom:1021 localhost.localdo:24007 ESTABLISHED 1458/glusterfsd root@server2:~#
Jetzt zurück zu server1.example.com:
server1.example.com:
Sie können den Status des Volumens mit dem Befehl
gluster volume info
root@server1:~# gluster volume info
Volume Name: testvol Typ: Replikat Status: Gestartet Anzahl der Bausteine: 2 Transporttyp: tcp Bausteine: Brick1: server1.example.com:/data Brick2: server2.example.com:/data root@server1:~#
Standardmäßig können alle Clients eine Verbindung zum Volumen herstellen. Wenn Sie nur client1.example.com (= 192.168.0.102) Zugriff gewähren möchten, führen Sie aus:
gluster volume set testvol auth.allow 192.168.0.102
Bitte beachten Sie, dass es möglich ist, Platzhalter für die IP-Adressen zu verwenden (wie 192.168.*) und dass Sie mehrere IP-Adressen durch Kommas getrennt angeben können (z.B. 192.168.0.102,192.168.0.103).
Die Volumeninformationen sollten jetzt den aktualisierten Status anzeigen:
gluster volume info
root@server1:~# gluster volume info
Volume Name: testvol Typ: Replikat Status: Gestartet Anzahl der Bausteine: 2 Transporttyp: tcp Bausteine: Brick1: server1.example.com:/data Brick2: server2.example.com:/data Optionen neu konfiguriert: auth.allow: 192.168.0.102 root@server1:~#
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.