High-Availability Storage mit GlusterFS auf Debian 8 Jessie


Vorwort


Ich habe vor Jahren ein eigense Content Management System für 4b42 geschrieben. Mitlerweise basieren fast alle meine Webseiten auf diesem CMS. Nun möchte ich aber Websiten auf mehreren Servern an verschiedenen Standorten bereiten, ohne alle Server manuell aktualiseren zu müssen, wenn sich etwas an dem CMS System ändert. Aus diesem Grund habe ich mich für GlusterFS entscheiden, ein wichter Vorteil von GlusterFS ist, dass das Dateisystem auf jedem Node eingebunden werden kann. Bei anderen Clusterlösungen (DRBD) ist es nur eine Frage der Zeit bis ein Split-Brain auftritt.

Voraussetzung


Mindestens zwei Linux Server

Vorbereitung


Für die Nodes des Clusters sollten DNS Namen verwendet werden. Diese können über die öffentlichen DNS Server erreichbar sein oder manuell in die hosts-Datei eingetragen werden:
nano /etc/hosts
127.0.0.1	localhost
10.48.42.1 node1.4b42.net
10.48.42.2 node2.4b42.net


Installation


apt-get install -y glusterfs-server
Die folgenden NEUEN Pakete werden installiert:
fuse glusterfs-client glusterfs-common glusterfs-server libaio1 libibverbs1 liblvm2app2.2 libpython2.7 librdmacm1


Konfiguration

Prüfen Sie, ob die Nodes untereinander erreichbar sind. Dies können Sie mit folgendem Befehl tun:
gluster peer probe node1.4b42.net
node1.4b42.net muss durch den entsprechenden Hostnamen ersetzt werden.
peer probe: success.


Prüfen Sie ob das Cluster verbunden ist:
gluster peer status
Number of Peers: 1

Hostname: node1.4b42.net
Uuid: 4b424b42-4b42-4b42-4b42-4b424b424b42
State: Peer in Cluster (Connected)


Erstellen Sie nun ein Verzeichnis auf beiden Nodes, in diesem Verzeichnis werden die Dateien später abgelegt:
mkdir -p /media/gfs/www


Nun können Sie ein neues Volume erstellen:
gluster volume create www replica 2 transport tcp sail.4b42.net:/media/gfs/www abap.4b42.net:/media/gfs/www
volume create: www: success: please start the volume to access data



gluster volume start www
volume start: www: success


mount -t glusterfs sail.4b42.net:/www /var/www