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.
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.
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.
Infos
- GlusterFS: http://www.gluster.org
- Gparted: http://gparted.org
- Banana Pi: http://www.bananapi.org
- Cubieboard: http://cubieboard.org
- Apache: http://apache.org







