GlusterFS – Distribute – Server und Volume Installation

System ist ein Debian Wheezy
Ziel ist es auf 2 Servern GlusterFS 3.4.0 3.6.1 zu installieren und ein Distributed Volume einzurichten.

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 –
# wget -O – http://download.gluster.org/pub/gluster/glusterfs/3.5/3.5.0/Debian/pubkey.gpg | apt-key add
# wget -O – http://download.gluster.org/pub/gluster/glusterfs/3.5/3.5.1/Debian/pubkey.gpg | apt-key add –
wget -O – http://download.gluster.org/pub/gluster/glusterfs/3.5/3.5.2/Debian/wheezy/pubkey.gpg | apt-key add –
wget -O – http://download.gluster.org/pub/gluster/glusterfs/3.6/3.6.1/Debian/wheezy/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
# echo deb http://download.gluster.org/pub/gluster/glusterfs/3.5/3.5.0/Debian/apt wheezy main > /etc/apt/sources.list.d/gluster.list
# echo deb http://download.gluster.org/pub/gluster/glusterfs/3.5/3.5.1/Debian/apt wheezy main > /etc/apt/sources.list.d/gluster.list
echo deb http://download.gluster.org/pub/gluster/glusterfs/3.5/3.5.2/Debian/wheezy/apt wheezy main > /etc/apt/sources.list.d/gluster.list
echo deb http://download.gluster.org/pub/gluster/glusterfs/3.6/3.6.1/Debian/wheezy/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-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 über einen 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 – Distributet Volume erstellen
Als nächstes möchte ich ein Distributet Volume erstellen. Dies ist eine Verteilung der Dateien auf alle im Pool befindlichen Server des Volume. Vorteil ist die Skalierbarkeit. Wenn ein Server ausfällt sind nur die Daten auf diesem Server betroffen. Die Sicherheit muss jedoch z.B. über ein Raid10 erstellt werden.

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 -> gluster volume create vol1  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: Distribute
Volume ID: a9652f88-8feb-49d8-9442-dfcb1a811639
Status: Started
Number of Bricks: 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: Distribute
Volume ID: a9652f88-8feb-49d8-9442-dfcb1a811639
Status: Started
Number of Bricks: 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

1 thought on “GlusterFS – Distribute – Server und Volume Installation

  1. Pingback: GlusterFS – Fehler bei add-brick – Host not in Peer Cluster | TASTE-OF-IT

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.