GlusterFS Tutorial · 4 min read · Feb 04, 2026

Erstellen eines NFS-ähnlichen Standalone-Speicherservers mit GlusterFS auf Fedora 13

Dieses Tutorial zeigt, wie man einen Standalone-Speicherserver auf Fedora 13 einrichtet. Anstelle von NFS werde ich hier GlusterFS verwenden. Das Client-System kann auf den Speicher zugreifen, 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 wie x86_64-Servern mit SATA-II-RAID und Infiniband HBA bestehen.

Ich gebe keine Garantie, dass dies für Sie funktioniert!

1 Vorbemerkung

In diesem Tutorial verwende ich zwei Systeme, einen Server und einen Client:

  • server1.example.com: IP-Adresse 192.168.0.100 (Server)
  • client1.example.com: IP-Adresse 192.168.0.101 (Client)

Beide Systeme sollten in der Lage sein, den Hostnamen des anderen Systems aufzulösen. Wenn dies nicht über DNS erfolgen kann, sollten Sie die Datei /etc/hosts bearbeiten, sodass sie auf beiden Systemen die folgenden zwei Zeilen enthält:

vi /etc/hosts

| [...] 192.168.0.100 server1.example.com server1 192.168.0.101 client1.example.com client1 [...] |

(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 des GlusterFS-Servers

server1.example.com:

Der GlusterFS-Server ist als Paket für Fedora 13 verfügbar, daher können wir ihn wie folgt installieren:

yum install glusterfs-server

Der Befehl

glusterfs --version

sollte jetzt die GlusterFS-Version anzeigen, die Sie gerade installiert haben (in diesem Fall 2.0.9):

[root@server1 ~]# glusterfs --version  
glusterfs 2.0.9 built on Apr 11 2010 20:39:55  
Repository revision: v2.0.9  
Copyright (c) 2006-2009 Gluster Inc.   
GlusterFS kommt ohne jegliche Gewährleistung.  
Sie dürfen Kopien von GlusterFS unter den Bedingungen der GNU General Public License weiterverbreiten.  
[root@server1 ~]#

Als nächstes erstellen wir ein paar Verzeichnisse:

mkdir /data/  
mkdir /data/export  
mkdir /data/export-ns

Jetzt erstellen wir die GlusterFS-Serverkonfigurationsdatei /etc/glusterfs/glusterfsd.vol (wir machen zuerst eine Sicherung der ursprünglichen /etc/glusterfs/glusterfsd.vol-Datei), die definiert, welches Verzeichnis exportiert wird (/data/export) und welcher Client sich verbinden darf (192.168.0.101 = client1.example.com):

cp /etc/glusterfs/glusterfsd.vol /etc/glusterfs/glusterfsd.vol_orig  
cat /dev/null > /etc/glusterfs/glusterfsd.vol  
vi /etc/glusterfs/glusterfsd.vol

| volume posix type storage/posix option directory /data/export end-volume volume locks type features/locks option mandatory-locks on 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.101 # Bearbeiten und Liste der erlaubten Clients hier durch Komma getrennte IP-Adressen(namen) hinzufügen 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.101,192.168.0.102).

Anschließend erstellen wir die Systemstartlinks für den GlusterFS-Server und starten ihn:

chkconfig --levels 35 glusterfsd on  
/etc/init.d/glusterfsd start

3 Einrichtung des GlusterFS-Clients

client1.example.com:

Es gibt ein GlusterFS-Client-RPM-Paket für Fedora 13, aber das Problem damit ist, dass Sie Fehler wie df: /mnt/glusterfs': Software caused connection abort oder df:/mnt/glusterfs’: Transport endpoint is not connected erhalten, wenn Sie versuchen, auf den GlusterFS-Share zuzugreifen. Deshalb bauen wir den GlusterFS-Client aus den Quellen, um diese Probleme zu vermeiden.

Bevor wir den GlusterFS-Client bauen, installieren wir seine Voraussetzungen:

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

Dann laden wir die GlusterFS 2.0.9-Quellen herunter (bitte beachten Sie, dass dies die gleiche Version ist, die auf dem Server installiert ist!) und bauen GlusterFS 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 sehen wie:

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

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

glusterfs --version
[root@client1 glusterfs-2.0.9]# glusterfs --version  
glusterfs 2.0.9 built on Sep 27 2010 19:20:46  
Repository revision: v2.0.9  
Copyright (c) 2006-2009 Gluster Inc.   
GlusterFS kommt ohne jegliche Gewährleistung.  
Sie dürfen Kopien von GlusterFS unter den Bedingungen der GNU General Public License weiterverbreiten.  
[root@client1 glusterfs-2.0.9]#

Dann erstellen wir die folgenden zwei Verzeichnisse:

mkdir /mnt/glusterfs  
mkdir /etc/glusterfs

Als nächstes erstellen wir die Datei /etc/glusterfs/glusterfs.vol:

vi /etc/glusterfs/glusterfs.vol

| volume remote type protocol/client option transport-type tcp option remote-host server1.example.com # kann IP oder Hostname sein option remote-subvolume brick end-volume volume writebehind type performance/write-behind option window-size 4MB subvolumes remote end-volume volume cache type performance/io-cache option cache-size 512MB subvolumes writebehind end-volume |

Stellen Sie sicher, dass Sie den richtigen Server-Hostnamen oder die IP-Adresse in der Zeile option remote-host verwenden!

Das war’s! Jetzt können wir das GlusterFS-Dateisystem mit einem der folgenden beiden Befehle in /mnt/glusterfs einhängen:

glusterfs -f /etc/glusterfs/glusterfs.vol /mnt/glusterfs

oder

mount -t glusterfs /etc/glusterfs/glusterfs.vol /mnt/glusterfs

Sie sollten jetzt den neuen Share in den Ausgaben von…

mount
[root@client1 glusterfs-2.0.9]# mount  
/dev/mapper/vg_client1-lv_root on / type ext4 (rw)  
proc on /proc type proc (rw)  
sysfs on /sys type sysfs (rw)  
devpts on /dev/pts type devpts (rw,gid=5,mode=620)  
tmpfs on /dev/shm type tmpfs (rw)  
/dev/sda1 on /boot type ext4 (rw)  
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)  
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)  
/etc/glusterfs/glusterfs.vol on /mnt/glusterfs type fuse.glusterfs (rw,allow_other,default_permissions,max_read=131072)  
[root@client1 glusterfs-2.0.9]#

… und…

df -h
[root@client1 glusterfs-2.0.9]# df -h  
Dateisystem            Größe  Benutzt Verfügbar Ben% Eingehängt in  
/dev/mapper/vg_client1-lv_root  
                       29G  2.6G   25G  10% /  
tmpfs                 185M     0  185M   0% /dev/shm  
/dev/sda1             194M   23M  161M  13% /boot  
/etc/glusterfs/glusterfs.vol  
                       29G  2.7G   25G  10% /mnt/glusterfs  
[root@client1 glusterfs-2.0.9]#

Anstatt den GlusterFS-Share manuell auf dem Client zu mounten, könnten Sie /etc/fstab ändern, sodass der Share automatisch beim Booten des Clients gemountet wird.

Öffnen Sie /etc/fstab und fügen Sie die folgende Zeile hinzu:

vi /etc/fstab

| [...] /etc/glusterfs/glusterfs.vol /mnt/glusterfs glusterfs defaults 0 0 |

Um zu testen, ob Ihre modifizierte /etc/fstab funktioniert, starten Sie den Client neu:

reboot

Nach dem Neustart sollten Sie den Share in den Ausgaben von…

df -h

… und…

mount

4 Links

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.