Speicherlösungen · 2 min read · Jan 08, 2026
Hochverfügbarkeits-Speicher mit GlusterFS auf Debian Lenny - Automatische Dateireplikation über zwei Speicher-Server
Dieses Tutorial zeigt, wie man einen hochverfügbaren Speicher mit zwei Speicher-Servern (Debian Lenny) einrichtet, die GlusterFS verwenden. Jeder Speicher-Server wird ein Spiegel des anderen Speicher-Servers sein, und Dateien werden automatisch über beide Speicher-Server repliziert. Das Client-System (ebenfalls Debian Lenny) wird in der Lage sein, auf den Speicher zuzugreifen, als ob es sich um ein lokales Dateisystem handelt. GlusterFS ist ein clusterfähiges 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 bestehen, wie z.B. x86-64-Servern mit SATA-II-RAID und Infiniband HBA.
Ich gebe keine Garantie, dass dies für Sie 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)
Alle drei Systeme sollten in der Lage sein, die Hostnamen der anderen Systeme aufzulösen. Wenn dies nicht über DNS möglich ist, 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 |
(Sie können auch IP-Adressen anstelle von Hostnamen in der folgenden Einrichtung 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 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 ohne jegliche 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 ein paar 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.102 = 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 option auth.addr.brick.allow 192.168.0.102 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.102,192.168.0.103).
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.