GlusterFS Tutorial · 2 min read · Feb 04, 2026
Striping über vier Speicher-Nodes mit GlusterFS auf Debian Lenny
Dieses Tutorial zeigt, wie man Datenstriping (Segmentierung von logisch aufeinanderfolgender Daten, wie z.B. einer einzelnen Datei, sodass Segmente mehreren physischen Geräten im Round-Robin-Verfahren zugewiesen und somit gleichzeitig geschrieben werden können) über vier einzelne Speicher-Server (die Debian Lenny ausführen) mit GlusterFS durchführt. Das Client-System (ebenfalls Debian Lenny) wird in der Lage sein, auf den Speicher zuzugreifen, als wäre es ein lokales Dateisystem. GlusterFS ist ein Cluster-Dateisystem, das auf mehrere Petabyte skalierbar ist. Es aggregiert verschiedene Speicherbausteine über Infiniband RDMA oder TCP/IP-Verbindungen zu einem großen parallelen Netzwerk-Dateisystem. Speicherbausteine können aus beliebiger handelsüblicher Hardware wie x86-64-Servern mit SATA-II-RAID und Infiniband HBA bestehen.
Bitte beachten Sie, dass diese Art von Speicher keine Hochverfügbarkeits-/Fehlertoleranzfunktionen bietet, wie es bei repliziertem Speicher der Fall wäre.
Ich gebe keine Garantie, dass dies bei Ihnen funktioniert!
1 Vorbemerkung
In diesem Tutorial verwende ich fünf Systeme, vier Server und einen Client:
- server1.example.com: IP-Adresse 192.168.0.100 (Server)
- server2.example.com: IP-Adresse 192.168.0.101 (Server)
- server3.example.com: IP-Adresse 192.168.0.102 (Server)
- server4.example.com: IP-Adresse 192.168.0.103 (Server)
- client1.example.com: IP-Adresse 192.168.0.104 (Client)
Alle fünf 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 fünf 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 server3.example.com server3 192.168.0.103 server4.example.com server4 192.168.0.104 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 es vorziehen, IP-Adressen zu verwenden, 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/server3.example.com/server4.example.com:
GlusterFS ist als Debian-Paket für Debian Lenny nicht verfügbar, daher müssen wir es selbst kompilieren. Zuerst installieren wir die Voraussetzungen:
aptitude install sshfs build-essential flex bison byacc libdb4.6 libdb4.6-devDann laden wir die neueste GlusterFS-Version von http://www.gluster.org/download.php herunter und kompilieren sie wie folgt:
cd /tmp
wget http://ftp.gluster.com/pub/gluster/glusterfs/2.0/LATEST/glusterfs-2.0.1.tar.gz
tar xvfz glusterfs-2.0.1.tar.gz
cd glusterfs-2.0.1
./configure --prefix=/usr > /dev/nullserver1:/tmp/glusterfs-2.0.1# ./configure --prefix=/usr > /dev/null
GlusterFS configure summary
===========================
FUSE client : nein
Infiniband verbs : nein
epoll IO multiplex : ja
Berkeley-DB : ja
libglusterfsclient : ja
mod_glusterfs : nein ()
argp-standalone : nein
server1:/tmp/glusterfs-2.0.1#make && make install
ldconfigDer Befehl
glusterfs --versionsollte jetzt die GlusterFS-Version anzeigen, die Sie gerade kompiliert haben (in diesem Fall 2.0.1):
server1:/tmp/glusterfs-2.0.1# glusterfs --version
glusterfs 2.0.1 built on May 29 2009 17:23:10
Repository revision: 5c1d9108c1529a1155963cb1911f8870a674ab5b
Copyright (c) 2006-2009 Z RESEARCH Inc.
GlusterFS kommt mit ABSOLUT NULL GARANTIE.
Sie dürfen Kopien von GlusterFS unter den Bedingungen der GNU General Public License weiterverbreiten.
server1:/tmp/glusterfs-2.0.1# Als nächstes erstellen wir einige Verzeichnisse:
mkdir /data/
mkdir /data/export
mkdir /data/export-ns
mkdir /etc/glusterfsJetzt erstellen wir die GlusterFS-Serverkonfigurationsdatei /etc/glusterfs/glusterfsd.vol, die definiert, welches Verzeichnis exportiert wird ( /data/export) und welcher Client sich verbinden darf ( 192.168.0.104 = client1.example.com):
vi /etc/glusterfs/glusterfsd.vol| volume posix type storage/posix option directory /data/export end-volume volume locks type features/locks subvolumes posix end-volume volume brick type performance/io-threads option thread-count 8 subvolumes locks end-volume volume server type protocol/server option transport-type tcp/server option auth.addr.brick.allow 192.168.0.104 subvolumes brick end-volume |
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.104,192.168.0.105).
Anschließend erstellen wir die Systemstartlinks für das glusterfsd-Init-Skript…
update-rc.d glusterfsd defaults… und starten glusterfsd:
/etc/init.d/glusterfsd startErhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.