Eins der populärsten Projekte für den Raspberry Pi ist wohl der Aufbau eines Clusters – den der Pi ist klein und kostengünstig. Allerdings genügt das nicht um an die Leistungsfähigkeit und Möglichkeiten eines normalen Rechners heranzukommen. Trotzdem können Raspberry Pi’s in manchen kleineren Umgebungen zusammengeschaltet durchaus sind ergeben, wenn die Aufgaben nicht von einem bearbeitet werden können oder andere Anforderungen an die Geschwindigkeit bestehen, z. B. bei einem Webserver.
Vorbereitungen für das Cluster
Der Grundstein zum Aufbau des Cluster wird mit einem aktuellen Raspian Image gelegt – also SD-Karte flashen und Raspberry Pi updaten.
sudo apt-get update && apt-get upgrade -y
Auf jedem Raspberry Pi im Cluster setzen wir über raspi-config diese Optionen und starten die Raspberry’s anschließend neu:
- Memory split für die GPU auf 16MB (Erweiterte Optionen)
- CPU Taktfrequenz auf 800 MHz
- Erweitern des Dateisystems
Zum Schluss wird auf allen Raspberry Pi’s ein Apache Webserver installiert.
sudo apt-get install apache2
Aufbau eines Load-Balancers
Auf einem Raspberry Pi oder anderen System muss zusätzlich ein Load-Balancer eingerichtet werden, der die Anfragen an die Pi’s verteilt.
Dafür nutzen wir einfach den hauseigenen Loadbalancer von Apache und starten diesen:
sudo a2enmod proxy sudo a2enmod proxy_http sudo a2enmod proxy_balancer
Und danach selbst Apache neu starten:
service apache2 restart
Nun muss der Balancer um die Clustermitglieder (BalancerMember …) konfiguriert werden. Dafür wird die Datei /etc/apache2/sites-available/default (in <VirtualHost *:80>…</VirtualHost> Bereich) angepasst.
<Proxy balancer://rpicluster> BalancerMember http://192.168.178.27:80 BalancerMember http://192.168.178.74:80 AllowOverride None Order allow,deny allow from all ProxySet lbmethod=byrequests </Proxy> <Location /balancer-manager> SetHandler balancer-manager Order allow,deny allow from 192.168.178 </Location>
Über http://%loadbalancer%/balancer-manager kann das Balancer-Interface aufgerufen werden. Unter Worker URL sind alle im Cluster eingebundenen Pi’s aufgeführt. In Elected stehen die verteilten Aufrufe nach Round-Robin Verfahren. Abwechselnd werden beim Aufruf des Loadbalancers (http://%loadbalancer%/) die Inhalte der aufgeführten Raspberry Pi’s dargestellt.
Was brauche ich zum Aufbau eines Clusters?
Natürlich benötigen wir für ein Cluster mehr als einen Raspberry Pi. Mindestens zwei oder sogar mehr, da sich sonst die Anschaffung der anderen benötigten Hardware nicht lohen würde. Die folgende Liste veranschaulicht nochmal alle benötigte Hardware:
- Mindestens zwei Raspberry Pi’s + SD-Karte
- USB-Hub für die Stromversorgung (pro Ausgang 5V bei min. 700mA) + USB-Kabel
- Switch + Ethernetkabel
Den Raspberry Pi und weiteres Zubehör für dieses Projekt könntet Ihr bei de.farnell.com kaufen.