Experimente zu Clustering und Lastverteilung mit dem RasPi

Himbeeren verbinden

Nach dem Einrichten der Server-Software gilt es, den Cluster aufzubauen. Alle nun folgenden Eingaben erledigen Sie auf cluster01 – Sie müssen sie nicht auf allen Knoten ausführen. Bevor Sie aber das eigentliche Volume aufbauen, sollten Sie testen, ob sich die Rechner im Cluster untereinander erreichen. Das erledigen Sie mit dem Tool Gluster (Listing 6).

Listing 6

 

# gluster peer probe cluster01
peer probe: success: on localhost not needed
# gluster peer probe cluster02
peer probe: success
# gluster peer probe cluster03
peer probe: success

Jetzt legen Sie mit dem Befehl aus Listing 7 das Volume volpi an. Alle Dateien, die Sie jetzt in volpi speichern, legt der Cluster auf allen Knoten ab. Mit replica 2 würden sie nur auf zwei von drei Knoten gespeichert, was vermutlich für die meisten Anwendungen ausreicht.

Listing 7

 

# gluster volume create volpi replica 3 transport tcp cluster01:/export/brick cluster02:/export/brick cluster03:/export/brick
volume create: volpi: success: please start the volume to access data

Um auf das neu erstellte Volume zuzugreifen, starten Sie es nun (Listing 8, erstes Kommando). Jetzt sollten Sie noch einen Blick auf das Volume werfen, um zu wissen, ob es ihm gut geht (zweites und drittes Kommando). Um das Volume zu verwenden, binden Sie es einfach von einem Client aus mit dem folgenden Befehl ein:

$ sudo mount -t glusterfs cluster01:/volpi /mnt/gluster/

Achten Sie darauf, dass auf jedem Knoten exakt dieselbe Version von GlusterFS installiert ist. Es besteht nun die Möglichkeit, auf dem gemounteten Dateisystem zu arbeiten wie auf jedem anderen Laufwerk. Damit ist der erste Teil des Experiments abgeschlossen.

Listing 8

 

# gluster volume start volpi
volume start: volpi: success
# gluster volume status volpi
Status of volume: volpi
Gluster process                         Port    Online  Pid
-----------------------------------------------------------
Brick cluster01:/export/brick           49152   Y       7324
Brick cluster02:/export/brick           49152   Y       2738
Brick cluster03:/export/brick           49152   Y       6496
NFS Server on localhost                 2049    Y       7336
Self-heal Daemon on localhost           N/A     Y       7340
NFS Server on cluster02                 2049    Y       2750
Self-heal Daemon on cluster02           N/A     Y       2754
NFS Server on cluster03                 2049    Y       6508
Self-heal Daemon on cluster03           N/A     Y       6512
There are no active volume tasks
# gluster volume info volpi
Volume Name: volpi
Type: Replicate
Volume ID: b66888e7-903c-4a93-93c4-3c953cf9bb2e
Status: Started
Number of Bricks: 1 x 3 = 3
Transport-type: tcp
Bricks:
Brick1: cluster01:/export/brick
Brick2: cluster02:/export/brick
Brick3: cluster03:/export/brick

Geo-Replikation

Das Cluster-Filesystem benötigt auf jeden Fall eine extrem schnelle Netzwerkverbindung zwischen den einzelnen Knoten, um diese untereinander synchron zu halten. Ein normaler DSL-Anschluss mit seinen eher bescheidenen Upload-Raten eignet sich für einen über das Internet verteilten Cluster eigentlich nicht.

Allerdings gibt es eine Alternative, um Daten wenigstens in eine Richtung synchron zu halten: die Geo-Replikation. Sie ermöglicht, einen kompletten Cluster zu kopieren und die Kopie synchron zu halten. Das Verfahren eignet sich für ein Backup oder einen Umzug der Server.

Um eine solche Replikation einzurichten, erzeugen Sie auf dem Master ein SSH-Schlüsselpaar und übertragen den Public Key auf den Zielrechner. Verwenden Sie dabei kein Passwort, indem Sie bei den entsprechenden Abfragen (Listing 9, Zeile 5 und 6) die Eingabetaste betätigen. Anschließend testen Sie die Verbindung mit den folgenden Kommandos:

$ ssh root@cluster04 -i /var/lib/glusterd/geo-replication/secret.pem

Anschließend beginnen Sie damit, den lokalen Cluster zu replizieren. Dabei sollte SSH kein Passwort abfragen – anderenfalls haben Sie etwas falsch konfiguriert.

Listing 9

 

$ ssh-keygen -f /var/lib/glusterd/geo-replication/secret.pem
Generating public/private rsa key pair.
/var/lib/glusterd/geo-replication/secret.pem already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /var/lib/glusterd/geo-replication/secret.pem.
Your public key has been saved in /var/lib/glusterd/geo-replication/secret.pem.pub.
The key fingerprint is:
51:1b:67:4a:cf:56:04:7b:19:e1:89:ac:26:01:b4:c2 root@cluster01
The key's randomart image is:
+--[ RSA 2048]----+
|     .o   + +o=. |
|   .   o o X = + |
|    E . o o B =  |
|     .   o o .   |
|        S o      |
|         o       |
|                 |
|                 |
|                 |
+-----------------+
$ ssh-copy-id -i /var/lib/glusterd/geo-replication/secret.pem.pub root@cluster04
root@cluster04's password:
Now try logging into the machine, with "ssh 'root@cluster04'", and check in:
  ~/.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.

Die Geo-Replikation darf als Ziel ein Dateisystem oder wieder ein Volume verwenden. Um die Kopie auf cluster04 später zu mounten, erstellen Sie ein lokales Volume auf dem Rechner. Der Einfachheit halber heißt es im Test ebenfalls volpi (Listing 10, Zeile 1 bis 4). Anschließend starten Sie die Replikation (Zeile 5 und 6). Ob alles glatt lief, prüfen Sie mit dem entsprechenden Befehl (Zeile 7 bis 10). Ein ls auf cluster04 bestätigt den Erfolg (Listing 11).

Listing 10

 

# gluster volume create volpi transport tcp cluster04:/export/brick
volume create: volpi: success: please start the volume to access data
# gluster volume start volpi
volume start: volpi: success
# gluster volume geo-replication volpi cluster04:volpi start
Starting geo-replication session between volpi & cluster04:/export/brick has been successful
# gluster volume geo-replication volpi cluster04:volpi status
NOD        MASTER   SLAVE             STATUS
----------------------------------------------------
cluster01  volpi    cluster04:volpi   OK

Listing 11

 

# ls /export/brick -la
total 16
drwxr-xr-x 3 root root      4096 Oct  7 12:23 .
drwxr-xr-x 4 root root      4096 Oct  7 11:50 ..
drwxr-xr-x 4 root root      4096 Oct  7 12:22 clients
-rw-r--r-- 1 root root 104857600 Oct  7 08:37 test

An dieser Stelle sei auf die Dokumentation von GlusterFS verwiesen. Es ist ein sehr mächtiges Werkzeug, mit dem Sie Hochverfügbarkeit von Dateisystemen selbst in komplexen Umgebungen herstellen. Allerdings lohnt sich die Überlegung, schnellere Banana Pis [3] oder Cubieboards [4] statt der RasPis einzusetzen.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 7 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Raspberry Pi Geek kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Aktuelle Ausgabe

10/2019
Raspberry Pi 4B

Diese Ausgabe als PDF kaufen

Preis € 9,99
(inkl. 19% MwSt.)

Stellenmarkt

Neuigkeiten

  • Sonnige Zeiten

    UV-Strahlung ist für das menschliche Auge unsichtbar, was sie umso gefährlicher macht. Die Höhe der tatsächlichen Belastung verrät Ihnen das Selbstbauprojekt UV-Sensor.

  • Gut verpackt

    Für das Ansteuern kleiner Displays gibt es keine Programme von der Stange. Mit Python und einer Pygame-Bibliothek erstellen Sie trotzdem im Handumdrehen Anwendungen.

  • Macro-Mini-Micro-Bit

    Was dem Raspberry Pi für die Computerwelt gelungen ist, versucht der BBC Micro:bit für Mikrocontroller zu wiederholen. Das für Schüler entwickelte Kit hilft beim Einstieg in die hardwarenahe Programmierung.

  • Vorhang auf

    Mit dem modernen Video-Codec HEVC (H.265) erstellte Filme spielen bisherige RasPi-Modelle oft nur ruckelnd ab. Wir testen, ob der neue Raspberry Pi 4B das besser kann.

  • Überraschung!

    Eine optimierte Architektur und mehr RAM beschleunigen den RasPi 4B deutlich. Wir prüfen, wie gut sich der Neuling als Desktop-Rechner schlägt.

  • Durchgestartet

    Ein Stresstest zeigt, wie sich der neue Raspberry Pi 4 Modell B gegenüber den älteren Modellen abhebt.

  • Vierte Generation

    Eine schnellere CPU, USB 3.0 und Gigabit-Ethernet sind nur die Highlights des Raspberry Pi 4B: Das Board bringt viele weitere Neuerungen mit.

  • Tiefenmesser

    Um die Pumpe in einem Brunnenschacht möglichst genau zu positionieren, brauchen Sie dessen Tiefe. Die ermitteln Sie mithilfe eines präzisen Messgeräts aus einem Luftdrucksensor und einem Mikrocontroller.

  • Faktencheck

    Das via DVB-T2 ausgestrahlte Digital-TV liefert Bilder in HD-Qualität. Der dabei eingesetzte H.265-Standard überfordert allerdings kleine Mini-Rechner wie den Raspberry Pi – oder geht es doch?

  • Zugriff von außen

    React Native erlaubt es, Apps mit wenigen Zeilen Code zu programmieren. Mit einem entsprechenden Server sprechen Sie so den RasPi vom Smartphone aus an.