GlusterFS – Replicated – Server und Volume Installation

System ist ein Debian Wheezy
Ziel ist es auf 2 Servern GlusterFS 3.4.0 zu installieren und ein Replica Volume zu erstellen.

1. Installtion – GlusterFS – GPG Key hinzufügen
# wget -O – http://download.gluster.org/pub/gluster/glusterfs/3.4/3.4.0/Debian/pubkey.gpg | apt-key add –

GlusterFS – in der Sourcelist eintragen, da in Wheezy nur die 3. 2.7-3 enthalten ist
# echo deb http://download.gluster.org/pub/gluster/glusterfs/3.4/3.4.0/Debian/apt wheezy main > /etc/apt/sources.list.d/gluster.list

1.1. Installation – Updaten der Paketquellen
# aptitude update && aptitude safe-upgrade

1.2 Installation – GlusterFS – Server Installation:
# aptitude install glusterfs-common glusterfs-server

2. Vorbereitungen – GlusterFS – Export /Daten Verzeichnis erstellen
Dieser enthält die Daten und stellt das Brick für das Volume auf dem Server da. Hier wird üblicherweise eine eingebundene Festplatte aus dem /mnt/disk1 etc. verwendet.
# mkdir -p /glusterfs/data

2.1. Vorbereitungen- GlusterFS – hosts anpassen
Am besten werden die statischen IP-Adressen in die /etc/hosts eingetragen, eine Reservierung in einem funktionierendem DNS geht natürlich auch
# mcedit /etc/hosts
192.168.0.11 glusternode1
192.168.0.12 glusternode2

3. Konfiguration – GlusterFS – Trusted Storage Pool erstellen
Bevor wir Volumes erstellen können, muss ein Pool der vertrauenswürdigen Server erstellt werden, die auch später zum Volume gehören.

//ausgeführt von glusternode1
# gluster peer probe glusternode2

# ausgeführt von glusternode2
# gluster peer probe glusternode1

3.1. Konfiguration – GlusterFS – Trusted Storage Pool überprüfen
//ausgeführt von glusternode1
#gluster peer status
Number of Peers: 1

Hostname: glusternode2
Port: 24007
Uuid: 26ae02c1-5d95-4b4b-a29d-d645f57d441f
State: Peer in Cluster (Connected)

Hier können wir genau sehen, dass der andere Node zum Pool gehört. Selbes kann von glusternode2 ausgeführt werden.

3.2. Konfiguration – GlusterFS – Server aus Trusted Storage Pool entfernen
Solltest du dich vertippt haben oder ein Server aus den Pool entfernt werden kann folgendes ausgeführt werden:
# gluster peer detach glusternode2
# gluster peer status
peer status: No peers present

3.3. Konfiguration – GlusterFS – Replicated Volume erstellen
Als nächstes möchte ich ein Replicated Volume erstellen. Dies ist eine Verteilung der Dateien auf alle im Pool befindlichen Server / Bricks des Volume.  Dabei wird die einzelne Datei auf alle Bricks verteilt. Vorteil ist die Sicherheit, da die Datei auf z.B. 2 Bricks liegt. Nachteil ist der verbrauchte Speicherplatz.

Grundbefehl -> gluster volume create <NEW-VOLNAME> [stripe <COUNT>] [replica <COUNT>] [transport <tcp|rdma|tcp,rdma>] <NEW-BRICK>
Dieser wird NUR auf einem der Server ausgeführt, die anderen werden dann entpsrechend automatisch informiert und konfiguriert.

Erklärung
gluster volume create = Befehl zum erstellen eines Volume
new-volname = der Name des Volume, der frei aber nur einmalig vergeben wird
stripe <count> = erstellt ein Striped-Vol mit der Anzahl count Server oder
replica <count> = erstellt ein Replicated-Vol mit der Anzahl count Server
transport = gibt die Verbindung unter den Server an, z.B. tcp, rdma – wird nichts angegeben ist tcp Default
new-brick = ist das Storage das auf dem Server für dieses Vol zur Verfügung gestellt wird – z.B. ein Mountpoint

also z.B. -> gluster volume create vol1  replica 2 transport tcp glusternode1:/mnt/vol1 glusternode2:/mnt/vol2

oder wie in diesem Beispiel-> gluster volume create vol1  replica 2 glusternode1:/glusterfs/data glusternode2:/glusterfs/data
Ergebnis: volume create: vol1: success: please start the volume to access data

Nun können wir im eigentlichen Konfiguratinsverzeichnis unter “vols” folgendes beobachten:
# ls /var/lib/glusterd/vols/vol1/
bricks/
cksum
info
node_state.info
rbstate
trusted-vol1-fuse.vol
vol1-fuse.vol
vol1.glusternode1.glusterfs-data.vol
vol1.glusternode2.glusterfs-data.vol

4. Starten – GlusterFS – Volume vol1 starten
# gluster volume start vol1
volume start: vol1: success

4.1. Starten – GlusterFS – Prüfen des Volume vol1
Nun schauen wir nach ob das Volume gestartet wurde und ob die Einstellungen, Distribute mit 2 Bricks über TCP stimmen:
# gluster volume info

Volume Name: vol1
Type: Replicate
Volume ID: 35401f0a-8032-485a-8ec1-305f5477c7ea
Status: Started
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: glusternode1:/glusterfs/data
Brick2: glusternode2:/glusterfs/data

5. Sicherheit – GlusterFS – Zugriff steuern
Damit nur bestimmte Clients und Server kommunizieren dürfen, oder aber ganze Netze erlaubt sind kann folgendes ausgeführt werden:

Nur einzelne Server erlauben
# gluster volume set vol1 auth.allow 192.168.0.10, 192.168.0.11, 192.168.0.12, 192.168.0.13, 192.168.0.14
volume set: success

Ein ganzes Netz von 192.168.0.1-192.168.0.254 erlauben
# gluster volume set vol1 auth.allow 192.168.0.*
volume set: success

5.1 Sicherheit – GlusterFS Zugriff prüfen
Wer darf eigentlich auf die Server und somit auf die Volumes zugreifen?
gluster volume info

Volume Name: vol1
Type: Replicate
Volume ID: 35401f0a-8032-485a-8ec1-305f5477c7ea
Status: Started
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: glusternode1:/glusterfs/data
Brick2: glusternode2:/glusterfs/data
Options Reconfigured:
auth.allow: 192.168.0.*
Wie an der letzten Zeile zu sehen alle Server von 192.168.0.1-192.168.0.254.

6. Informationen – GlusterFS – Konfigurationsdateien
Diese liegen alle im Verzeichnis:
# ls /var/lib/glusterd/
geo-replication  glustershd  hooks  options  vols
glusterd.info    groups      nfs    peers

6.1. Informationen – Befehl –  glusterfsd –version
glusterfs 3.4.0 built on Jul 19 2013 03:56:38
Repository revision: git://git.gluster.com/glusterfs.git
Copyright (c) 2006-2013 Red Hat, Inc. <http://www.redhat.com/>
GlusterFS comes with ABSOLUTELY NO WARRANTY.
It is licensed to you under your choice of the GNU Lesser
General Public License, version 3 or any later version (LGPLv3
or later), or the GNU General Public License, version 2 (GPLv2),
in all cases as published by the Free Software Foundation.

Links
http://gluster.org/community/documentation/index.php/Arch/A_Newbie%27s_Guide_to_Gluster_Internals
http://gluster.org/community/documentation/index.php/Translators_options
http://joejulian.name/blog/should-i-use-stripe-on-glusterfs/

Randnotizen

GlusterFS – Volume erstellen Defaultwerte
Hier der Inhalt der glusterd.vol Datei nach der Installation vorhanden ist:

cat /etc/glusterfs/glusterd.vol
1 volume management
2    type mgmt/glusterd
3    option working-directory /var/lib/glusterd
4    option transport-type socket,rdma
5    option transport.socket.keepalive-time 10
6    option transport.socket.keepalive-interval 2
7    option transport.socket.read-fail-log off
8 end-volume

Erklärung
Zeile 1 – mit “volume” wird dem Parser der Datei der Beginn der Konfiguration angezeigt – management ist der Name des Volume der einmalig sein muss
Zeile 2 – gibt dem Parser an welcher Translator verwendet werden soll (weitere: cluster/distributet, cluster/replicate, protocol/client, cluster/unify, scheduler/alu, performance/write-behind, performance/io-cache) – und somit den Pfad zu den Objektdateien die geladen werden müssen
Zeile 8 – zeigt dem Parser auf, dass hier das Ende der Konfiguration ereicht ist

GlusterFS – Volume erstellen die geänderte Datei
mcedit /etc/glusterfs/glusterd.vol

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.