Cluster/Loadbalancing

Individuelle Clusterlösungen

Das optimale Cluster für jeden Anwendungsfall gibt es nicht. Genauso individuell wie jeder Mensch sind auch die Anforderungen an ein Cluster je nach Applikation höchst unterschiedlich. Eine datenbankbasierte Anwendung benötigt beispielweise in der Regel keine zentrale Datenstorage, sondern lediglich ein Datenbankcluster.
Gemeinsam möchten wir daher mit Ihnen eine für Ihre Applikation passende Infrastruktur planen und realisieren.
Die nachfolgenden Informationen können Sie für diesen Planungsprozess heranziehen.

Zentrale Datenstorage im Cluster

Ein zentrales Datenstorage im Cluster macht dann Sinn, wenn Ihre Anwendung Daten aktiv auf die Festplatte schreibt. Dies können bei einem Onlineshop beispielsweise Produktbilder oder das Webseiten Layout sein. Damit alle Serversysteme im Cluster auf diese Daten zugreifen können, empfehlen wir bei mehr als 2 Serversystemen ein zentrales Storage, welches mit Hilfe eines Netzwerk Filesystems die Daten den einzelnen Servern zur Verfügung stellt. Änderungen im Datenbestand werden so in Echtzeit an alle Serversysteme übermittelt.
Wenn lediglich zwei Serversysteme im Cluster den gleichen Datenbestand aufweisen, kann man auf ein zentrales Datenstorage verzichten und ein DRBD (Distributed Replicated Block Device - Netzwerk Filesystem) Datennetzwerk zwischen den beiden Servern aufbauen. Dies ist im Wesentlichen davon abhängig, wie flexibel das Cluster erweiterbar sein soll.

Datenbankcluster

Benötigt Ihre Anwendung eine zentrale Datenbank, in die wesentliche Informationen abgespeichert werden sollen, empfiehlt sich der Einsatz eines Datenbankclusters. Je nach Anforderungen können hier verschiedene Clustervarianten Sinn machen. Bei einem MySQL Cluster gibt es beispielweise eine Master-Master Replikation. Dies ist vergleichbar mit einem RAID 1 oder einem DRBD. Hier werden meist 2 MySQL Serversysteme im Aktiv-Aktiv Modus betrieben was bedeutet, dass Änderungen in Echtzeit zwischen beiden MySQL Servern kommuniziert werden. In einem großen Datenbankcluster gibt es neben den Master Datenbankservern noch beliebig viele Slave Datenbankserver. In der Anwendung wird dann zwischen lesenden- und schreibenden Anfragen unterschieden. Die lesenden Anfragen (welche meist deutlich mehr sind als schreibende Anfragen) werden auf die verschiedenen Slave Datenbankserver verteilt und die schreibenden Anfragen ausschließlich auf die Master Datenbankserver. Die gängigen Programmiersprachen (PHP/Java) verfügen bereits über entsprechende Klassen, die einen solchen Clusterbetrieb ermöglichen. Mit dieser Vorgehensweise erreicht man eine bessere Verteilung der Systemauslastung auf verschiedene Serversysteme. Zur Steuerung der Lastverteilung eigenen sich am besten Loadbalancer.

Loadbalancing im allgemeinen

Unter Loadbalancing bzw. Lastverteilung versteht man die Verteilung von großen Mengen von Anfragen auf mehrere parallel arbeitende Systeme. Ein Loadbalancer ist meist neben der Firewall einer der wichtigsten Eintrittspunkte ein Cluster und bildet daher einen essentiellen Bestandteil des Clusters. Der Einsatz des Loadbalancings macht dann Sinn, wenn entweder die Anfragenmenge nicht mehr von einen Serversystem bewältigt werden kann oder wenn das Cluster flexibel erweiterbar sein soll. Ebenfalls ist ein Loadbalancer beim Aufbau eines hochverfügbaren Rechenclusters unabdingbar, da dieser, neben der Funktion des Loadbalancings, auch die Verfügbarkeit der Systeme prüft und diese im Fall eines Ausfalls automatisch aus den Loadbalancing entfernt.

Loadbalancing Verfahren

Beim Loadbalancing gibt es unterschiedliche Vorgehensweisen. Man unterschiedet hier zwischen der Lastverteilung nach Systemauslastung und der Lastverteilung nach "Round-Robin" - daher das einfache Verteilen der Anfragen, ohne Berücksichtigung der tatsächlichen Systemauslastung. Je nach Anwendungsfall können die unterschiedlichen Verfahren Vor- und Nachteile bringen und dies nicht nur beim Faktor Kosten.

Loadbalancing Hardware

Den Loadbalancing Einsatz können wir für Sie, je nach Kosten- und Leistungsaufwand, mit einem Hardware Loadbalancer der Firma Barracuda oder mit einem Software Loadbalancer (wie z.B. NGINX) realisieren. Bei kleinen Clustern könnte das Loadbalancing auch durch eine Hardware-Firewall Instanz umgesetzt werden. Dies ist allerdings von der Anfragenmenge abhängig.

Treten Sie mit uns in Kontakt und lassen Sie sich von unseren Spezialisten beraten.