Version 1.0
Autor: Falko Timme <ft [at] falkotimme [dot] com>
Last edited 03/01/2010
Diese Anleitung zeigt wie man vier einzelne Archivserver auf denen CentOS läuft, kombiniert um einen großen Server für die Archivierung zu erhalten, die mittels GlusterFS dezentrale Archivierung erlaubt. Dem Client System (ebenfalls CentOS 5.4) wird es ermöglicht auf das Archiv zuzugreifen, als ob es ein lokales Dateisystem wäre.
GlusterFS ist ein gebündeltes Dateisystem, das auf mehrere Petabytes vergrößert werden kann. Es verbindet diverse Archivierungsbausteine über Infiniband RDMA oder TCP/IP Zusammenschlatung in ein großes, paralleles Netzwerk-Dateisystem. Die Archivierungsbausteine können aus jeglicher Hardware bestehen wie x86 Servers mit SATA-II RAID und Infiniband HBA.
Es sei zu vermerken, dass diese Art der Archivierung (dezentrale Archivierung) keine Zusätze für eine hohe Verfügbarkeit beinhaltet, wie es der Fall bei einer replizierten Archivierung ist.
Diese Anleitung kommt ohne Gewähr.
1 Vorbemerkung
In dieser Anleitung verwende ich fünf Systeme, vier Server und ein 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 das nicht durch DNS geschehen kann, solltest Du die /etc/hosts Datei editieren, so dass es folgende 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 anstatt Hostnamen zu verwenden. Wenn Du IP Adressen bevorzugst, kannst Du das Problem vernachlässigen ob die Hostnamen aufgelöst werden können oder nicht.)
2 Die GlusterFS Server einrichten
server1.example.com/server2.example.com/server3.example.com/server4.example.com:
GlusterFS ist nicht als Paket für CentOS verfügbar, daher müssen wir selbst eins erstellen. Zuerst installieren die Grundaustattung:
yum groupinstall ‘Development Tools’
yum groupinstall ‘Development Libraries’
yum install libibverbs-devel fuse-devel
Dann laden wir die aktuellste GlusterFS Version hier herunter: http://www.gluster.org/download.php und erstellen das Paket 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 sollte man in etwa Folgendes sehen:
[...]
GlusterFS configure summary
===========================
FUSE client : yes
Infiniband verbs : yes
epoll IO multiplex : yes
Berkeley-DB : yes
libglusterfsclient : yes
argp-standalone : no
[root@server1 glusterfs-2.0.9]#
make &&
make install ldconfig
Überprüfe die GlusterFS Version hiernach, es 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. <http://www.gluster.com>
GlusterFS comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of GlusterFS under the terms of the GNU General Public License.
[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
Nun erstellen wir die GlusterFS Konfigurationsdatei für den Server /etc/glusterfs/glusterfsd.vol , welche das Verzeichnis definiert, das exportiert werden soll (/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 option auth.addr.brick.allow 192.168.0.104 subvolumes brick end-volume |
Es ist übrigens möglich, Platzhalter für die IP Adressen zu verwenden, z.B. 192.168.* und dass man mehrere IP Adressen spezifizieren kann, indem man sie mit einem Komma, z.B. 192.168.0.104,192.168.0.105 trennt.
Hiernach erstellen wir folgenden Symlink…
ln -s /usr/local/sbin/glusterfsd /sbin/glusterfsd
… und dann die System-Startuplinks für den GlusterFS Server, um ihn hiernach zu starten:
chkconfig --levels 35 glusterfsd on
/etc/init.d/glusterfsd start
- Dezentrale Archivierung über vier Nodes mit GlusterFS auf CentOS 5.4 - Seite 1
- Dezentrale Archivierung über vier Nodes mit GlusterFS auf CentOS 5.4 - Seite 2


