raspberrypi cluster mit glusterfs - part 1

das projekt:
mit 4 raspberry pi ein glusterfs aufsetzen und das /home von meinem notebook syncen.

die hardware:
3x raspberry pi B
1x raspberry pi 2
4x usbstick mit je 32gb
4x sdcard (vorsicht bei der auswahl, raspi B ist waehlerisch)

picture alt

das image fuer die sdcard gibts hier.

dd if=2016-02-09-raspbian-jessie-lite.img of=/dev/mmcblk0 bs=2M   

das ganze 4x und danach, auch wieder 4x, mit gparted die ext4 partition vergroessern. koennte man auch spaeter noch mit dem tool raspi-config machen, aber wieso warten. jetzt habe ich gerade alle zur hand und spaeter muesste ich das einzeln machen.
je eine sdcard in einen raspi ;)

die meisten schritte ab hier beziehen sich auf einen login mit ssh. in meinem setup wird jedem raspi eine feste ip vom router zugeordnet und ich habe entsprechende eintraege in /etc/hosts um mich schnell auf jeden raspi einloggen zu koennen. genau das habe ich dann auch gemacht mit:

ssh pi@rpia   

das passwort bei raspbian ist raspberry.
erstmal paketquellen aktualisieren und ein upgrade machen:

apt-get update && apt-get dist-upgrade   

hier habe ich diesen schritt noch einzeln gemacht, spaeter wird das ansible erleichtern. ein obligatorischer reboot

sudo reboot 

nun koennen wir mit raspi-config verschiedene einstellungen aendern. unter anderem hab ich den hostname auf jedem raspi angepasst, die locales, timezone und den ram split auf 16mb gesetzt. raspi-config hat ein einfaches aber praktisches interface. die erklaerung spare ich mir hier.

nachdem man folgenden befehl ausgefuehrt hat, kann man sich ohne pw auf dem rpia einloggen. das ganze setzt wie oben schon erwaehnt voraus, dass die datei /etc/hosts entsprechend angepasst wurde. falls nicht muss anstatt rpia eine ipaddresse benutzt werden.

ssh-copy-id pi@rpia   

falls die die /etc/hosts jetzt noch immer nicht angepasst ist: jetzt ist der richtige zeitpunkt dafuer. ohne die anpassung wird die verwendung von ansible zur qual.

nano /etc/hosts

meine eintraege sehen so aus: 192.168.165.40 rpia
192.168.165.50 raspi2
192.168.165.60 rpib
192.168.165.70 rpic

nun noch kurz ansible installiert. nutzt einfach die paketverwaltung eurer wahl, bei mir wars dnf und apt. ansible muss nur auf dem rechner installiert sein, mit dem man den cluster spaeter verwalten will. auf den raspi muss das nicht drauf sein. bzw um alles was die raspis brauchen kuemmert sich ansible selbst.

jetzt noch die host-eintraege fuer ansible:

nano /etc/ansible/hosts

hier legen wir die "gruppe" fest. ich habe sie glusterfs genannt und tragen darunter die gleichen hosts wie in /etc/hosts ein:

[glusterfs]
rpia
rpib
rpic
raspi2

und nun gehts los. ansible auf seichtem niveau, aber besser als alles 4x zu tippen ;)
erstmal die notwendigen pakete installieren:

ansible glusterfs -m apt -a "name=glusterfs-server,xfsprogs,lsof,htop,munin-node" --user=pi --sudo

jetzt sind wir fast soweit um glusterfs zu konfigurieren, fehlen nur noch die usbsticks. das anlegen bzw. loeschen der vorhandenen partition habe ich wieder auf meinem notebook gemacht. erschien mir als der einfachste weg.

fdisk /dev/sdb 

fuer glusterfs wird xfx als dateisystem empfohlen, ob das auch bei einem raspi sinn macht, keine ahnung. auf dem desktop nutze ich das schon laenger.

mkfs.xfs -i size=512 /dev/sdb1

soweit erstmal die vorbereitungen. die naechsten schritte folgen im 2. teil.

kommentare, nachrichten usw. auf twitter unter @wiu_linu