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