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

04/2019
TV & Multimedia

Diese Ausgabe als PDF kaufen

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

Stellenmarkt

Neuigkeiten

  • Finger weg

    Ein Temperatursensor verrät, ob Sie einen Gegenstand gefahrlos berühren dürfen. Beim Messen brauchen Sie dabei noch nicht einmal Kontakt zum Objekt.

  • Aus einer Hand

    Um einen Mikrocontroller zu programmieren, genügt ein Raspberry Pi. Wir zeigen, was Sie dazu noch benötigen.

  • Im Gleichtakt

    Synchronisierte Live-Loops und selbst erstellte Funktionen helfen dabei, Sonic Pi wie ein Live-Instrument zu spielen.

  • Mach mal

    Das Ftduino-Modul schlägt die Brücke zu Fischertechnik und ermöglicht es unter anderem, einen Drei-Achsen-Roboter anzusteuern.

  • Eleganter Diener

    Jeden Morgen dieselben Handgriffe, um zu sehen, ob die S-Bahn fährt und wie das Wetter wird? Ein cleverer Infoscreen auf RasPi-Basis automatisiert den Vorgang.

  • Bienenflüsterer

    Bienenzüchter, die ihre Völker besser kennenlernen möchten, müssen die fleißigen Insekten nicht pausenlos stören. Mit einem Raspberry Pi und verschiedenen Sensoren überwachen sie Temperatur, Luftfeuchtigkeit und bald auch das Gewicht des Bienenstocks.

  • Beerige Musik

    Für echten Hi-Fi-Sound braucht es mehr als einen kleinen Bluetooth-Brüllwürfel. Mit Volumio und einem Raspberry Pi rüsten Sie Ihre klassische Hi-Fi-Anlage mit smarten Funktionen auf.

  • Ton ab!

    Auf den ersten Blick erscheint der RasPi zu schwachbrüstig für den Betrieb leistungshungriger DAW-Software. Doch der Schein trügt.

  • Himbeer-TV

    Der DVB TV µHAT rüstet den Raspberry Pi mit einem DVB-T/T2-Tuner auf. Die deutsche TV-Landschaft schränkt dessen Möglichkeiten allerdings ein.

  • Git à la RasPi

    Mit wenigen Handgriffen zum Git-Hoster: Die dezentrale Arbeitsweise von Git erleichtert in Kombination mit der Netzwerkfähigkeit des RasPi das Verwalten von Quellcode.