Cluster / Loadbalancing Service
- ✓HA Proxy Loadbalancing
- ✓MySQL Galera Cluster
- ✓Elasticsearch Cluster
- ✓Ceph Cluster
Individuelle Cluster- und Loadbalancing-Lösungen
Seit der Gründung von IP-Projects bieten wir nicht nur standardisierte Lösungen aus dem Bereich Hosting an, sondern auch individuelle Cluster- und Loadbalancing Lösungen, die auf die Anforderungen unserer Kunden zugeschnitten werden. Wir führen dabei, gemeinsam mit Ihnen, eine Bedarfsanalyse durch und beraten Sie beim Aufbau einer individuellen Clusterumgebung für den Betrieb Ihrer Anwendung.
Für die meisten Projekte sind dabei folgende Themen besonders relevant:
Das optimale Cluster für jeden Anwendungsfall gibt es nicht. So individuell wie die Bedürfnisse jedes Menschen sind auch die Anforderungen an ein Cluster je nach Applikation höchst unterschiedlich. Nachfolgend möchten wir Ihnen Clustervarianten vorstellen, mit denen wir als Internetdienstleister in den letzten Jahren Wissen und Erfahrungen bei Kundenprojekten sammeln konnten.
Datenbankcluster
Klassische Datenbankcluster
Im Bereich Datenbankcluster gab es in den letzten Jahren zahlreiche Weiterentwicklungen. Ein klassischer Ansatz ist es, eine Trennung zwischen schreibenden- und lesenden Anfragen auf die Datenbank durchzuführen, da tendenziell mehr lesende Anfragen als schreibende Anfragen stattfinden. Ein gutes Beispiel für dieses Verhalten ist ein Onlineshop. Dort befinden sich mehr Besucher auf dem Shop, die sich die Produkte ansehen, als Bestellungen, die über den Onlineshop ausgeführt werden.
Es wurde daher ein MySQL Master - Master Cluster für schreibende Anfragen mit einer beliebigen Anzahl an Slave MySQL Servern für lesende Anfragen aufgebaut. Dieser Aufbau war allerdings erst ab einer bestimmten Anfragenmenge wirtschaftlich, da eine größere Anzahl an Datenbankcluster Knoten natürlich auch für höhere Kosten sorgt. Daher empfehlen wir diesen Ansatz keinem unserer Kunden, sondern bauen MySQL Cluster vorzugsweise mit Hilfe einer MySQL Galera Replikation.
MySQL Galera Datenbankcluster
Der Vorteil eines MySQL Galera Clusters im Gegesatz zu einem klassischen Master - Slave Clusteraufbau besteht darin, dass jeder der einzelnen MySQL Server schreibend- und lesend angesprochen werden kann. Es muss daher Anwendungsseitig keine Trennung mehr zwischen lesenden und schreibenden Anfragen erfolgen und jeder der Datenknoten verfügt über eine vollständige Datenbanktabelle.
Bei einem MySQL Galera Cluster empfehlen wir immer ein Loadbalancing, zum Beispiel mit HA-Proxy. Dabei können wir flexibel lesende- und schreibende Anfragen auf die Galera Cluster Knoten verteilen ohne, dass eine Lastverteilung durch die Kundenanwendung umgesetzt werden muss.
Wichtig ist beim Einsatz eines Galera Clusters, dass die Anwendung clusterfähig ist. Es gilt ein Deadlock-Verhalten zu verhindern, da sonst das Galeracluster aus dem Takt geraten kann. Daher sollten größere, schreibende Imports in viele kleinere Imports aufgeteilt werden, um längere Datenbank Locks zu verhindern.
Filecluster
Ein zentrales Datenstorage innerhalb einer Clusterumgebung ist dann sinnvoll, wenn Ihre Anwendung von einer zentralen Datenquelle Informationen benötigt, die auf allen Servern des Clusters den gleichen Datenstand aufweisen muss. 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 Webservern zur Verfügung stellt. Änderungen im Datenbestand werden so in Echtzeit an alle Serversysteme übermittelt.
Klassischer Filecluster Ansatz
Ein klassischer Ansatz, um die Herausforderung einer zentralen Datenhaltung redundant über zwei Server zu lösen ist DRBD (Distributed Replicated Block Device - Netzwerk Filesystem) als synchrones Datennetzwerk zwischen zwei Servern. Diesen Ansatz eines Datenclusters empfehlen wir allerdings keinem Kunden mehr. Das Problem bei zwei Servern ist immer ein sogenanntes Split-Brain-Verhalten. Wenn die Netzwerkverbindung zwischen den Servern unterbrochen wird, wissen beide Server nicht mehr, welcher der Server den aktuellen Datenstand bereitstellt. Man muss dann händisch eingreifen und eine Reparatur des DRBD Clusters durchführen, was dem Gedanken einer hochverfügbaren Lösung widerstrebt.
In den letzten Jahren haben wir daher alle DRBD basierten Cluster gegen eine objektorientierte Storage Lösung ersetzt, die mit einer ungeraden Anzahl an Datenknoten arbeitet, um einem Split-Brain Verhalten vorzubeugen.
Ceph File Cluster
Die Open-Source Software Defined Storage "Ceph" ermöglicht es, mehrere Storage Devices - Festplatten / SSDs - von verschiedenen Servern zu einer objektorientierten Storage zusammenzufassen. Je nach Verfügbarkeits- und Datenintegritätswunsch kann ein Ausfall eines einzelnen Datenknotenpunkts oder mehrere Datenknotenpunkte abgesichert werden.
Einer der größten Vorteile bei Ceph ist, dass die Ceph Storage bei kleinen Clusterinstallationen auf den Compute Nodes eines Clusters mitbetrieben werden kann und keine zusätzlichen Server erforderlich sind. Zudem gibt es bereits fertige Software Integrationen zum Beispiel in das Open-Source Tool Proxmox, welches bei uns häufig zum Einsatz kommt.
Wir setzen Ceph seit 5 Jahren sehr erfolgreich in unterschiedlichen Kundenprojekten ein und hatten bislang keinen Datenverlust selbst bei Clustern, bei denen zum selben Zeitpunkt mehrere Storage Devices ausgefallen sind. Lassen Sie sich gerne durch unsere Techniker im Zuge einer Angebotsfindung beraten!
Loadbalancing
Unter Loadbalancing bzw. Lastverteilung versteht man die Verteilung von großen Mengen an Anfragen auf mehrere parallel arbeitende Systeme. Ein Loadbalancer ist meist neben der Firewall einer der wichtigsten Eintrittspunkte in ein Cluster und bildet daher einen essentiellen Bestandteil des Clusters. Der Einsatz des Loadbalancings ist sinnvoll, wenn entweder die Anfragenmenge nicht mehr von einem 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 dem Loadbalancing entfernt.
In der Vergangenheit haben wir dabei auf Hardware und Software Loadbalancer namhafter Hersteller gesetzt, wurden hier aber oftmals sehr enttäuscht und haben daher die Open-Source Lösung HA-Proxy sehr erfolgreich getestet und bis heute im Einsatz.
HA-Proxy Loadbalancing
Bei HA-Proxy handelt es sich um eine Open-Source Loadbalancing Software die auf jedem gängigen Linux Betriebssystem installiert werden kann. 2017 haben wir diese erstmals in einem Kundenprojekt eingesetzt und waren von der Performance und dem Umfang der Administrationsmöglichkeiten begeistert. Neben Standard Loadbalancing Verfahren wie z.B. Round-Robin (einfache Verteilung der Anfragen an einen Pool von Servern) ist ebenfalls ein SSL-Offloading ohne weiteres möglich.
Um die Hochverfügbarkeit der Loadbalancer zu gewährleisten, setzen wir als Loadbalancing IPs auf Floating IPs innerhalb eines V-LANs. Daher empfehlen wir, virtuelle IP-Adressen die mit Hilfe des Services Heartbeat zwischen zwei Loadbalancern Aktiv-Passiv verteilt werden. Dabei ist es Grundvoraussetzung, dass beide Loadbalancer über einen identischen Konfigurationsstand verfügen so dass im Falle eines Failovers das Loadbalancing in derselben Konfiguration weiterhin funktioniert.
Netzwerk / Sicherheit
Um die Sicherheit des Clusters zu gewährleisten, dient als zentraler Eintrittspunkt eine Firewall Lösung. Die Firewalls werden bei uns immer im Aktiv-Passiv Betrieb hochverfügbar aufgebaut. Der Firewall-Stack regelt dabei, welcher Traffic vom Internet auf die Clusterumgebung bzw. welche Services im Cluster zugreifen dürfen und prüft diesen Traffic auf Netzwerkangriffe.
Eine Firewall ist bei jedem Clusteraufbau zwingend erforderlich, um im Netzwerk verfügbare Datenbank-, File- und Loadbalancingsysteme zu schützen. Diese liefert zudem einen VPN-Gateway für die Administrationszugriffe und ein externes Monitoring zur Überwachung der Serverlandschaft.
Sollten wir Ihr Interesse geweckt haben, lassen Sie sich gerne durch unsere Techniker kostenlos beraten.