Experimente zu Clustering und Lastverteilung mit dem RasPi

Apache aufsetzen

Bevor Sie mit der Installation des Webservers weitermachen, gilt es erst einmal, auf dem Root-Dateisystem etwas Platz zu schaffen. Mit dem Kommando aus der ersten Zeile von Listing 12 entfernen Sie Software, die Sie für den aktuellen Einsatz nicht benötigen.

Listing 12

 

$ sudo apt-get remove x11-common midori lxde python3 python3-minimal
$ sudo apt-get autoremove
$ sudo apt-get clean

Die Kommandos aus den beiden anderen Zeilen entfernen dann nicht mehr benötigte Abhängigkeiten sowie temporäre Dateien. Diese drei Schritte wiederholen Sie auf allen vier Rechnern. Die Aktion schuf im Test auf jedem System etwa 1,2 GByte Platz. Abbildung 2 zeigt, wie der Aufbau im Anschluss aussieht.

Abbildung 2: So sollen alle Teile am Ende zusammenhängen.

Dazu mounten Sie auf jedem Knoten des Clusters das Volume volpi. Mit dem Kommando sudo mkdir /mnt/www in einem Terminal legen Sie auf allen vier Knoten einen Einhängepunkt für das Volume volpi an. Mit dem folgenden Befehl mounten Sie dann das exportierte Dateisystem volpi ins jeweils lokale Dateisystem, wobei Sie diesen Schritt für die Rechner cluster02, cluster03 und cluster04 analog wiederholen:

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

Listing 13 zeigt die korrespondierenden Einträge für die Datei /etc/fstab, mit denen Sie das entfernte Dateisystem dauerhaft einhängen.

Listing 13

 

cluster01:/volpi /mnt/www glusterfs defaults,_netdev 0 0
cluster02:/volpi /mnt/www glusterfs defaults,_netdev 0 0
cluster03:/volpi /mnt/www glusterfs defaults,_netdev 0 0
cluster04:/volpi /mnt/www glusterfs defaults,_netdev 0 0

Nun geht es an die Installation des Webservers, die Sie auf allen vier Rechnern mittels sudo apt-get install apache2 in einem Terminal erledigen. Danach passen Sie auf allen Knoten die Variable DocumentRoot an. Listing 14 zeigt, welche Stellen Sie dazu ändern – konkret die Zeile 3 sowie die Zeilen 8 bis 13.

Listing 14

 

<VirtualHost *:80>
  ServerAdmin webmaster@localhost
  DocumentRoot /mnt/www
  <Directory />
    Options FollowSymLinks
    AllowOverride None
  </Directory>
  <Directory /mnt/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
  </Directory>
[...]
</VirtualHost>

Dann starten Sie den Webserver mit /etc/init.d/apache2 restart neu, damit er die Änderung übernimmt. Jetzt kommt ein kleiner Kunstgriff zum Zug, um die verteilten Webserver über eine URL ins Internet zu bringen: Dazu ermöglichen Sie als Erstes den Zugriff auf die einzelnen Knoten durch die Firewall. Abbildung 3 zeigt, wie die entsprechende Konfiguration auf dem Router im Test aussieht.

Abbildung 3: Auf dem Router leiten Sie die entsprechenden Ports nach außen weiter.

Zum Einsatz kommt ein günstiger Root-Server für unter 5 Euro pro Monat, der einen Apache-Proxy im Web bereitstellt und auf die vier Knoten des Clusters weiterleitet. Hier passen Sie ebenfalls die Datei /etc/hosts so an, dass Sie die bereits vergebenen Namen verwenden dürfen. Dann installieren Sie Apache und laden die entsprechenden Module (Listing 15). Anschließend erstellen Sie einfach einen virtuellen Host, der die Proxy-Konfiguration aus Listing 16 erhält. Zum Verteilen der Last benötigen Sie nicht einmal einen Eintrag für DocumentRoot.

Listing 15

 

$ sudo apt-get install apache2
$ sudo a2enmod proxy_balancer
$ sudo a2enmod proxy
$ sudo a2enmod proxy_http

Listing 16

 

<VirtualHost *:80>
  ServerName host.de
  ServerAlias www.host.de
  <Proxy balancer://mycluster>
    BalancerMember http://cluster01:8081
    BalancerMember http://cluster02:8082
    BalancerMember http://cluster03:8083
    BalancerMember http://cluster04:8480
  </Proxy>
  ProxyPass /test balancer://mycluster
  ErrorLog /var/log/apache2/host.de.error.log
  LogLevel warn
  CustomLog /var/log/apache2/host.de.access.log combined
</VirtualHost>

In der Variable BalancerMember dürfen Sie auch DynDNS-Einträge angeben. In der jetzigen Konfiguration verteilt der Server die Last reihum ("Round Robin"). Fällt ein Knoten aus, holt sich der Webserver die Seite einfach vom nächsten Rechner aus der Liste. Das Proxy-Modul des Apache kann bei Bedarf noch erheblich mehr – auf der Homepage finden sich alle Informationen, die Sie brauchen, um komplexere Umgebungen aufzubauen [5].

Fazit

Mit einer Handvoll Raspberry Pis kann man nicht nur einen funktionierenden Cluster aufbauen, sondern sogar via Internet verteilen. Von der Performance dürfen Sie freilich keine Wunder erwarten; für ernsthafte Anwendungen mit vielen Benutzern fallen die Ressourcen der RasPis zu knapp aus. Nichtsdestotrotz ist es ein spannendes Experiment, einen solchen Cluster aufzubauen und damit zu arbeiten. 

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.