1.1 Infos zum Clustering von Anwendungsservern

Ein Cluster ist eine Gruppe von Anwendungsserverinstanzen, die gleichzeitig ausgeführt werden und wie ein Einzelsystem funktionieren, wodurch hohe Verfügbarkeit und Lastenausgleich ermöglicht werden. In einem Cluster können mehrere Serverinstanzen auf demselben Computer ausgeführt werden (auch als vertikaler Cluster bezeichnet), sich auf verschiedenen Computern befinden (auch als horizontaler Cluster bezeichnet) oder eine Kombination aus sowohl horizontalen als auch vertikalen Clustern bilden. Durch Clustering kann die Auslastung durch Clients auf verschiedene Knoten verteilt werden, anstatt von einem einzigen Anwendungsserver verarbeitet werden zu müssen.

In einer Clusterkonfiguration sind Anwendungsserverinstanzen Mitglieder des Clusters, auf denen allen identische Anwendungskomponenten bereitgestellt sein müssen. Anders als bei den konfigurierten Anwendungen, müssen aber Clustermitglieder keine weiteren Konfigurationsparameter gemeinsam haben. So können beispielsweise mehrere Serverinstanzen auf einem Computer einen Cluster bilden, wobei eine einzelne Instanz sich auf einem anderen Computer befindet, vorausgesetzt, dass sie alle dieselbe Version des Anwendungsservers ausführen.

Durch Clusterbildung können Sie mindestens einen der folgenden Vorteile erzielen. Die Implementierungsart der Cluster bestimmt die Vorteile, die erzielt werden können:

  • Failover

  • Lastenausgleich

  • Skalierbarkeit

1.1.1 Failover

Failover ermöglicht, dass mindestens eine Anwendungsserverinstanz als Sicherung für eine ausgefallene Anwendungsserverinstanz fungiert und die Verarbeitung der Aufgabe fortsetzt, wodurch ein anderer Anwendungsserver in die Lage versetzt wird, die Verarbeitung fortzusetzen. Fällt ein Anwendungsserver aber während einer Transaktion aus, stellt der Sicherungsanwendungsserver den Zustand der ausgefallenen Instanz nicht wieder her. Fällt ein Server beispielsweise aus, wenn der Benutzer Daten in ein Formular eingibt, müssen die Daten möglicherweise erneut eingegeben werden.

1.1.2 Lastenausgleich

Lastenausgleich ist eine Methode, die zum Verteilen von Arbeitslast auf eine Reihe von Systemen verwendet wird, damit kein einzelnes Gerät überlastet wird. Beginnt ein Server Überlastungserscheinungen zu zeigen, werden Anforderungen an einen anderen Server mit höheren Kapazitäten weitergeleitet.

1.1.2.1 Anwendungsserver-Lastenausgleich

Anwendungsserver-Lastenausgleich ist bei der Verwaltung der Auslastung zwischen Anwendungsservern nützlich. Anwendungsserver können so konfiguriert werden, dass sie eine gewichtete Round-Robin-Routingrichtlinie verwenden, die eine ausgeglichene Routingverteilung auf Grundlage des Satzes von Servergewichtungen sicherstellt, die den Mitgliedern eines Clusters zugewiesen wurden. Durch die Konfiguration aller Server in einem Cluster mit derselben Gewichtung wird eine Lastenverteilung erzeugt, bei der alle Server ungefähr die gleiche Anzahl von Anforderungen erhalten. Die stärkere Gewichtung einiger Server führt dazu, dass mehr Anforderungen an diese Server gesendet werden als an Server mit einer niedrigeren Gewichtung.

Bevorzugte Routingkonfigurationen können ebenso konfiguriert werden, um zum Beispiel sicherzustellen, dass nur Clustermitglieder auf diesem Knoten ausgewählt werden (unter Verwendung der Round-Robin-Gewichtungsmethode) und dass Clustermitglieder auf entfernten Knoten nur ausgewählt werden, wenn ein lokaler Server nicht verfügbar ist. Der Anwendungsserver-Lastenausgleich eignet sich am besten für den Ausgleich zwischen Stufen („Tiers“).

1.1.2.2 Webserver-Lastenausgleich

Webserver-Lastenausgleich eignet sich dazu, Anforderungen in Warteschlangen zu stellen bzw. einzuschränken. Beim HTTP-Server „Apache“ ist die gängigste Methode für den Lastenausgleich Round-Robin-DNS.

Round-Robin-DNS ist ein relativ einfaches Lastenausgleichsverfahren, bei dem ein DNS(Domain Name System)-Server eine Auflösung von Namen in Adressen bereitstellt und immer beteiligt ist, wenn ein Hostname in einer URL enthalten ist. Ein Round-Robin-DNS-Server kann einen einzelnen Hostnamen in mehrere IP-Adressen auflösen, sodass Anforderungen an eine einzelne URL (die einen Hostnamen enthält) tatsächlich auf verschiedene Webserver verweisen. Der Client fordert eine Namensauflösung für den Hostnamen an, erhält aber de facto unterschiedliche IP-Adressen, wodurch die Auslastung auf die Webserver verteilt wird. In einer einfachen Konfiguration durchläuft der Round-Robin-DNS-Server die Liste verfügbarer Server.

1.1.3 Skalierbarkeit und Verfügbarkeit

Skalierbarkeit in einem Cluster bedeutet, dass ein Administrator die Kapazität der Anwendung dynamisch erhöhen kann, um die Anforderungen zu erfüllen, ohne den Dienst zu unterbrechen oder negativ zu beeinflussen. Mithilfe von Clustern können Administratoren Knoten aus einem Cluster entfernen, um Komponenten wie zum Beispiel Arbeitsspeicher zu aktualisieren, oder dem Cluster Knoten hinzufügen, ohne den Cluster selbst außer Betrieb setzen zu müssen.