raspberrypi cluster mit glusterfs - part 2

den ersten teil gibts hier

status: raspbian up-to-date, noetige software installiert, usbsticks vorbereitet.
dann beginnen wir mal mit glusterfs.
mit ansible kann man auf allen 4 raspi gleichzeitig einen ordner anlegen. mountpoint fuer die usbsticks.

ansible glusterfs -m shell -a "mkdir ~/glusterfs" -u pi

danach mounten wir die usbsticks

ansible glusterfs -m shell -a "sudo mount /dev/sda1 ~/glusterfs" -u pi 

kurz ueberpruefen ob auch alle 4 usbsticks gemountet sind

ansible glusterfs -m shell -a "df -h" -u pi   

mountpoint in die fstab eintragen

echo "/dev/sda1 /home/pi/glusterfs xfs defaults,noatime 0 1" >> /etc/fstab

berechtigungen vom ordner anpassen

ansible glusterfs -m shell -a "sudo chown pi:pi ~/glusterfs" -u pi    

einen extra ordner fuers volume erstellen

ansible glusterfs -m shell -a "mkdir ~/glusterfs/notebook" -u pi

hier mal wieder etwas ohne ansible. einfach auf einem der vier raspi einloggen und ein volume erstellen
welche arten von volumes es gibt seht hier

gluster volume create notebook replica 2 stripe 2 raspi2:/home/pi/glusterfs/notebook rpia:/home/pi/glusterfs/notebook rpib:/home/pi/glusterfs/notebook rpic:/home/pi/glusterfs/notebook

infos zum volume gibts mit

gluster volume info 

volume in betrieb nehmen

gluster volume start notebook

und nun koennen wir ueberpruefen ob alles laeuft

gluster volume status 

der output von gluster volume info und gluster volume status:

root@rpia:~# gluster volume info

Volume Name: notebook
Type: Striped-Replicate
Volume ID: b8f186da-bcfd-4673-ba6a-07e6cc40af38
Status: Started
Number of Bricks: 1 x 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: raspi2:/home/pi/glusterfs/notebook
Brick2: rpia:/home/pi/glusterfs/notebook
Brick3: rpib:/home/pi/glusterfs/notebook
Brick4: rpic:/home/pi/glusterfs/notebook
root@rpia:~# gluster volume status
Status of volume: notebook
Gluster process                     Port    Online  Pid
------------------------------------------------------------------------------
Brick raspi2:/home/pi/glusterfs/notebook        49153   Y   4209
Brick rpia:/home/pi/glusterfs/notebook          49153   Y   976
Brick rpib:/home/pi/glusterfs/notebook          49153   Y   4120
Brick rpic:/home/pi/glusterfs/notebook          49153   Y   2144
NFS Server on localhost                 N/A N   N/A
Self-heal Daemon on localhost               N/A Y   990
NFS Server on raspi2                    N/A N   N/A
Self-heal Daemon on raspi2              N/A Y   4228
NFS Server on rpib                  N/A N   N/A
Self-heal Daemon on rpib                N/A Y   4139
NFS Server on 192.168.165.70                N/A N   N/A
Self-heal Daemon on 192.168.165.70          N/A Y   2162

Task Status of Volume notebook
------------------------------------------------------------------------------
There are no active volume tasks

nun koennen wir das glusterfs auf einem client mounten, am einfachsten ist ein eintrag in /etc/fstab

192.168.165.50:/notebook /home/user/notebookglusterfs/ glusterfs default,_netdev 0 0 

zu testzwecken synce ich mein /home

rsync -av /home/user /home/user/notebookglusterfs --max-size=100M --min-size=1M --delete-after --exclude=.cache --exclude=Steam  --exclude=notebookglusterfs

glusterfs wartung und die beschreibung auf gluster.readthedocs.org

gluster volume heal notebook   

gluster volume heal notebook full    

gluster volume heal notebook info   

gluster volume heal notebook info healed   

gluster volume heal notebook info heal-failed    

zum schluss noch kurz als anmerkung. fuers monitoring benutze ich munin. die konfiguration ist beim ersten mal entwas verwirrend, aber trotzdem relativ einfach.

um munin plugins anzupassen einfach alles ueberfluessige in /etc/munin/plugins loeschen und danach munin-node-configure ausfuehren.
den munin-node neustarten: systemctl restart munin-node.service

kommentare, nachrichten usw. auf twitter unter @wiu_linu