GlusterFS Tutorial · 2 min read · Feb 05, 2026

Striping über vier Speicher-Nodes mit GlusterFS auf CentOS 5.4

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 CentOS 5.4 ausführen) mit GlusterFS durchführt. Das Client-System (ebenfalls CentOS 5.4) 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 Netzwerkdateisystem. Speicherbausteine können aus beliebiger handelsüblicher Hardware bestehen, wie z.B. x86_64-Servern mit SATA-II-RAID und Infiniband HBA.

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 die folgenden Zeilen auf allen fünf Systemen enthält:

vi /etc/hosts

| [...] 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 [...] |

(Es ist auch möglich, IP-Adressen anstelle von Hostnamen in der folgenden Konfiguration 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/server3.example.com/server4.example.com:

GlusterFS ist nicht als Paket für CentOS 5.4 verfügbar, daher müssen wir es selbst kompilieren. Zuerst installieren wir die Voraussetzungen:

yum groupinstall 'Development Tools'
yum groupinstall 'Development Libraries'
yum install libibverbs-devel fuse-devel

Dann laden wir die neueste GlusterFS-Version von http://www.gluster.org/download.php herunter und bauen sie wie folgt:

cd /tmp  
wget http://ftp.gluster.com/pub/gluster/glusterfs/2.0/LATEST/glusterfs-2.0.9.tar.gz  
tar xvfz glusterfs-2.0.9.tar.gz  
cd glusterfs-2.0.9  
./configure

Am Ende des ./configure-Befehls sollten Sie etwas wie folgt sehen:

[...]  
GlusterFS configure summary  
===========================  
FUSE client        : ja  
Infiniband verbs   : ja  
epoll IO multiplex : ja  
Berkeley-DB        : ja  
libglusterfsclient : ja  
argp-standalone    : nein  
  
[root@server1 glusterfs-2.0.9]#
make && make install  
ldconfig

Überprüfen Sie danach die GlusterFS-Version (sollte 2.0.9 sein):

glusterfs --version
[root@server1 glusterfs-2.0.9]# glusterfs --version  
glusterfs 2.0.9 built on Mar 1 2010 15:34:50  
Repository revision: v2.0.9  
Copyright (c) 2006-2009 Gluster Inc.   
GlusterFS kommt ohne jegliche GARANTIE.  
Sie dürfen Kopien von GlusterFS unter den Bedingungen der GNU General Public License weiterverbreiten.  
[root@server1 glusterfs-2.0.9]#

Als nächstes erstellen wir einige Verzeichnisse:

mkdir /data/  
mkdir /data/export  
mkdir /data/export-ns  
mkdir /etc/glusterfs

Jetzt 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 den folgenden Symlink…

ln -s /usr/local/sbin/glusterfsd /sbin/glusterfsd

… und dann die Systemstartlinks für den GlusterFS-Server und starten ihn:

chkconfig --levels 35 glusterfsd on  
/etc/init.d/glusterfsd start
Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.