Website-Suche

Aufbau eines Raspberry PI Clusters - Teil III: Simultane Knotenverwaltung


Hier ist unser dritter Artikel in der Serie Building a Raspberry Pi Cluster. Wir werden darüber sprechen, welche Software wir verwenden können, um alle Cluster-Knoten auf einmal auf Ihre Befehle reagieren zu lassen, so dass Sie installieren können, was Sie möchten, und dies nur einmal für alle Cluster-Knoten tun, anstatt sie einzeln als separate Einheiten zu konfigurieren. Eine solche Software erleichtert Ihre Arbeit erheblich und reduziert die Zeit, die für die Durchführung von Vorgängen benötigt wird. Es spielt keine Rolle, ob Sie vier, acht oder fünfzig Knoten haben, mit denen Sie arbeiten können, Sie können sie alle gleichzeitig dazu bringen, das Gleiche zu tun.

In diesem Tutorial lernen Sie:

  • Installieren und Konfigurieren von ClusterSSH
  • So installieren Sie Fabric und verwenden den Befehl fab
  • Zuweisen von Befehlen an Ihren Cluster

Hier ist ein Raspberry Pi-Cluster mit vier Knoten, auf den über ClusterSSH zugegriffen wird.

Aufbau der Raspberry Pi-Serie:

  • Aufbau eines Raspberry PI Clusters – Teil I: Hardware-Anschaffung und -Montage
  • Aufbau eines Raspberry PI Clusters – Teil II: Installation des Betriebssystems
  • Aufbau eines Raspberry PI Clusters – Teil III: Simultanes Knotenmanagement
  • Aufbau eines Raspberry PI Clusters – Teil IV: Überwachung

Verwendete Softwareanforderungen und Konventionen

KategorieAnforderungen, Konventionen oder verwendete Softwareversion
SystemRaspberian Linux
SoftwareClusterSSH (ClusterSSH)
AnderePrivilegierter Zugriff auf Ihr Linux-System als root oder über den Befehl sudo.

Präparat

Sie haben Ihren Cluster eingerichtet, Raspbian wird auf jedem Knoten installiert. Jetzt müssen Sie nur noch SSH in jeden von ihnen einbinden und den Hostnamen dieser Raspberry Pis ändern, beginnend mit dem am unteren Rand des Clusters und nach oben. Sie können den Hostnamen mit


sudo hostname rpi1

Starten Sie danach jeden Pi neu, damit die Änderungen auf der Eingabeaufforderungsebene wirksam werden, und fahren Sie mit dem nächsten Raspberry Pi fort. Belassen Sie den standardmäßigen pi-Benutzer auf jedem Knoten, und ändern Sie sein Kennwort in ein anderes, aber stellen Sie sicher, dass für jeden Knoten derselbe Benutzer und dasselbe Kennwort definiert sind.

Arbeiten Sie alle Knoten gleichzeitig mit ClusterSSH

Das Beste an einem Raspberry Pi-Cluster ist, dass er günstig herzustellen ist, schnell ist und nicht viele Ressourcen benötigt. Und sobald Sie es eingerichtet haben, wie in unseren vorherigen Artikeln beschrieben, können Sie die Software auf jedem Knoten installieren, als würden Sie einen einzelnen Computer verwenden. Die beste Software dafür ist ClusterSSH – eine SSH-Software, die auf Ihren Cluster-Knoten eingerichtet werden kann, sodass Sie auf alle gleichzeitig zugreifen und ihnen Befehle zur Ausführung geben können.

Stellen Sie sich einen Raspberry Pi-Cluster mit vier Knoten vor, jeder mit einem eigenen Terminalfenster. Und was auch immer Sie in ein Dialogfeld eingeben, wird in Echtzeit in jedem dieser Terminalfenster wiedergegeben. Das ist es, was ClusterSSH macht – es nimmt die Eingabe eines kleinen Fensters und wandelt sie in eine Eingabe um, die an alle Cluster-Knoten verteilt wird.

Um clusterssh einzurichten, öffnen Sie Ihre bevorzugte Linux-Distribution auf Ihrem Laptop und suchen in Ihren Repositories danach. Wenn Sie Ubuntu verwenden, erfolgt die Installation mit


sudo apt install clusterssh

Dadurch werden einige Dateien auf Ihrem System erstellt. Die erste, die Sie jedoch berücksichtigen sollten, ist Ihre /etc/hosts-Datei. Öffnen Sie es in einem Texteditor, und fügen Sie die vier Knoten des Clusters in dieser Datei hinzu, einen pro Zeile:


192.168.1.124	rpi4
192.168.1.126	rpi1
192.168.1.150	rpi3
192.168.1.252	rpi2

Der Cluster, den wir in diesem Tutorial verwenden, erhält seine IP-Adressen über DCHP von einem lokalen Router. Um zu überprüfen, welche IP-Adresse jeder Ihrer Raspberry Pi-Knoten hat, verwenden Sie ifconfig. Wir haben jedem dieser Knoten einen leicht zu merkenden Hostnamen zugewiesen: rpi1, rpi2, rpi3 und rpi4. Sobald Sie ihre IP-Adresse haben und die Datei /etc/hosts auf Ihrem Laptop oder PC geändert haben, ist es einfacher, auf jeden dieser Knoten zuzugreifen. Speichern Sie die Datei /etc/hosts, und schließen Sie sie.

Nun müssen Sie die Datei /etc/clusters öffnen, die clusterssh verwendet. Wenn diese Datei nach der Installation von clusterssh nicht vorhanden ist, können Sie sie selbst erstellen. Fügen Sie in der ersten Zeile der Datei Folgendes hinzu:


picluster pi@rpi1 pi@rpi2 pi@rpi3 pi@rpi4

und speichern Sie die Datei. Dadurch wird clusterssh mitgeteilt, dass ein Cluster mit dem Namen picluster definiert ist und dass er über vier Knoten mit demselben Benutzer verfügt: pi. Es gibt noch eine andere Datei, die Sie kennen sollten – die Konfigurationsdatei, die sich in ~/.clusterssh/ befindet. Es heißt einfach config und enthält Konfigurationsoptionen für die Terminalfenster, die Sie zur Steuerung des Clusters verwenden werden. Wenn Sie z. B. die Schriftart des Terminals in Terminus ändern möchten, fügen Sie die Zeile


terminal_font=terminus-iso8859-9-16

in die Datei einfügen. Sie können einen SSH-Benutzer, den die Software beim Start aufruft, einmal in jedem Terminalfenster vordefinieren, also fügen Sie auch die


user=pi

Zeile zu ~/.clusterssh/config.

Sobald Sie die Konfigurationsdatei so eingerichtet haben, wie Sie es möchten, können Sie alle Cluster-Knoten verbinden, so dass die Raspberry Pis alle booten, etwa 30 Sekunden warten, bis sie das Ende des Bootvorgangs erreicht haben, und dann clusterssh auf Ihrem Laptop mit starten.


cssh picluster

Es sollten sich vier Terminal-Fenster gleichzeitig öffnen, in denen Sie nach dem Login-Passwort eines Benutzers namens pi gefragt werden. Es gibt ein kleines Fenster mit einem Dialogfeld, in das Sie alle Ihre Befehle eingeben können, und Sie sollten das Passwort in dieses Feld eingeben und die Eingabetaste drücken. Alle Knoten melden Sie auf einmal an, und von diesem Zeitpunkt an können Sie alles auf dem Cluster gleichzeitig installieren, alle Knoten mit einem einzigen Befehl aktualisieren, Konfigurationsdateien bearbeiten und im Grunde alles einmal tun, anstatt dieselben Schritte viermal hintereinander zu wiederholen.

Arbeiten Sie alle Knoten gleichzeitig mit Fabric

Es kann sein, dass Sie dem Raspberry Pi-Cluster einen Befehl geben möchten und nicht vier separate Terminal-Fenster verwenden möchten. Wenn Sie vorhaben, Ihren Cluster auf – sagen wir – 8 oder 12 Knoten zu erweitern, wäre es unangenehm, mit so vielen Bildschirmen auf Ihrem Desktop umzugehen. Es gibt also eine Alternative zu clusterssh und es ist ein kleines Python-Skript.

Stellen Sie sicher, dass Sie Python auf dem Laptop oder PC installiert haben, mit dem Sie über SSH auf die Clusterknoten zugreifen, und verwenden Sie pip, um das Fabric-Python-Paket zu installieren:


sudo pip install fabric

Erstellen Sie nun eine fabfile.py Datei in Ihrem Home-Verzeichnis mit


touch fabfile.py

und machen Sie es ausführbar:


chmod +x fabfile.py

Bearbeiten Sie nun diese Datei und fügen Sie das folgende Skript hinzu:

from fabric.api import *
env.hosts = [
#RPi1
'pi@192.168.1.126',
#RPi2
'pi@192.168.1.252',
#RPi3
'pi@192.168.1.124',
#RPi4
'pi@192.168.1.150',
]
the downside is you have to use a plaintext password
env.password = 'YOUR_PI_PASSWORD'
launch the command to all the cluster nodes
@parallel
def cmd(command):
sudo(command)

Ersetzen Sie die oben genannten IP-Adressen durch die IP-Adressen, die Ihren Clusterknoten zugewiesen sind, und ändern Sie YOUR_PI_PASSWORD in das Kennwort, das dem pi-Benutzer auf jedem Knoten zugewiesen ist. Speichern Sie die fabfile.py Datei, die Sie gerade geändert haben. Geben Sie nun


fab cmd:"ls -la"

, um eine Verzeichnisliste aller Dateien im Home-Verzeichnis jedes Cluster-Knotens anzuzeigen – alle im selben Terminalfenster. Der Befehl fab cmd:"" nimmt jeden Befehl, den Sie zwischen diese Anführungszeichen setzen, und führt ihn auf jedem Clusterknoten aus, sodass Sie im Terminalfenster, in das Sie ihn eingegeben haben, eine ausführliche Ausgabe erhalten. Dies ist nützlich, wenn Sie lange Vorgänge ausführen, z. B. das Kompilieren oder Aktualisieren Ihres Systems, da Sie die Zeilen scrollen sehen können und immer wissen, welcher Clusterknoten sich zu welchem Zeitpunkt in welchem Teil des Prozesses befindet.

Schlussfolgerung

So können Sie jeden Ihrer Cluster-Knoten mit der gewünschten Software einrichten. Sie können den Cluster verwenden, um Anwendungen massenhaft zu kompilieren, Daten zu analysieren und R-Pakete zu installieren – und das alles, ohne denselben Befehl wiederholen zu müssen. Sie können den gesamten Cluster entweder mit clusterssh oder den oben beschriebenen fabfile.py steuern. Im nächsten Teil der Serie werfen wir einen Blick darauf, wie Sie Informationen aus Ihrem Cluster herausholen und wie Sie alle Knoten und deren Ressourcen überwachen.

Verwandte Artikel: