Dezentrale Archivierung über vier Nodes mit GlusterFS auf CentOS 5.4

Version 1.0

Autor: Falko Timme

Folge mir auf Twitter!


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

0 Kommentar(e)

Zum Posten von Kommentaren bitte