Ich habe mich in den letzten Tagen intensivst mit diversen Clusterlösungen für hohe Verfügbarkeit und gleichzeitiger Last-Verteilung auseinandergesetzt und einige Ansätze erarbeitet, welche so in meiner Testumgebung funktioniert hatten.
Doch zunächst: Was ist überhaupt ein Cluster? Laut Definition von Wikipedia :
Ein Computercluster, meist einfach Cluster (von dt. Kluster “was dicht und dick zusammensitzet”), bezeichnet eine Anzahl von vernetzten Computern, die von außen in vielen Fällen als ein Computer gesehen werden können. In der Regel sind die einzelnen Elemente eines Clusters untereinander über ein schnelles Netzwerk verbunden. Ziel des “Clustering” besteht meistens in der Erhöhung der Rechengeschwindigkeit oder der Verfügbarkeit gegenüber einem einzelnen Computer. Die in einem Cluster befindlichen Computer (auch Knoten oder Server) werden auch oft als Serverfarm bezeichnet.
Ich habe hierbei alle Techniken “Hochverfügbarkeitscluster” sowie “Load-Balancing Cluster” in einem vereinen wollen. Meine Ausgangslage ist hierbei COTS -Hardware (d.h. normale Server ohne spezielle Ausrichtung auf Clusterbetrieb), kostenlose Software für den Betrieb und wenig Kosten für Aufbau und Betrieb. Ich setze mal wieder auf das Betriebsystem Debian 3.1. Es sollen 2 Anwendungen geclustert werden: Apache als Webserver sowie MySQL als Datenbank. Als eine Ergänzung möchte ich dann noch einen NFS-Server clustern und somit hochverfügbar machen.
Ich werde mit sogenannten “Shared All” Clusterlösungen arbeiten. Hierbei greifen alle Applikationen auf ein gemeinsames Storage zu, bzw verfügen über die gleichen Daten. Zusätzlich zur besseren Performance wird hierdurch eine bessere Ausfallsicherheit ermöglicht, da die Aufgaben eines Knotens bei dessen Ausfall schnell durch einen anderen / weiteren ersetzt werden kann. Ein weiterer Punkt ist also auch die schon angesprochene Skalierbarkeit, da man schnell durch einsetzen weiterer Knoten (Server) eine Last auf weitere “Schultern” verteilen kann.
In den folgenden Tagen werde ich diverse Tutorials veröffentlichen, welche diese Themen behandeln.