Linuxbasierter Hochverfügbarkeitscluster für Webanwendungen am Beispiel des LMS ILIAS

Veröffentlicht von Philipp Hermanns am

In den vergangenen Jahren hat sich eine Vielzahl von Unternehmenssoftware etabliert, die serverbasiert über das Internet betrieben wird. E-Learning-Systeme, Groupware-Lösungen und Dokumenten-Management-Systeme sollen möglichst effizient einer großen Zahl von Mitarbeitern bereitgestellt werden. Je nach Bedeutung der Anwendung für die verwendende Institution ist dabei eine ständige Erreichbarkeit der Anwendung für eine reibungslose Arbeit notwendig.Cluster-Lösung für webbasierte Software

Am Beispiel des Learning Management System ILIAS soll nun eine Hochverfügbarkeits-Cluster-Lösung beschrieben werden, die auch auf andere Webanwendungen wie Content-Management-Systeme, Customer-Relationship-Management-Systeme o.ä. angewendet werden kann.

ILIAS ist ein Open Source Learning Management System, das auf Basis der LAMP-Architektur betrieben wird. In vielen Universitäten, mittelständischen Unternehmen, international agierenden Konzernen oder Weiterbildungsanbietern ist ILIAS hierbei das zentrale Element zur Planung, Steuerung, Durchführung und Kontrolle der Lernaktivitäten von Mitarbeitern, Studenten oder Kunden. Für den Lehrbetrieb an Universitäten hat E-Learning eine enorme Bedeutung, ebenso  wie die Verfügbarkeit eines CRM-Systems für eine 40 Mann große Vertriebsabteilung eines Unternehmens grundlegende Voraussetzung für effizientes Arbeiten sein kann.

Durch geschickte Nutzung moderner und innovativer Virtualisierungstechnologie kann die Databay AG Servercluster-Lösungen für die Hochverfügbarkeit solcher Anwendungen bereitstellen.

Der konkrete Aufbau einer solchen Cluster-Lösung sieht wie folgt aus: Zwei vollwertige Hardware-Server werden mit je zwei virtuellen Maschinen, bspw. realisiert mit XEN-Technologie oder KVM, bestückt. Beide Server werden auf Basis einer Linux-Distribution, bspw. Ubuntu LTS, betrieben. Der besondere Charme der von der Databay AG konzipierten Lösung liegt darin, dass nicht nur ein Server für den Fall eines Ausfalls des ersten Servers bereitsteht, sondern im Normalbetrieb die Rechenpower des zweiten Servers ebenfalls genutzt wird. In dieser Lösung werden also Performanz-Verbesserungen und  Hochverfügbarkeit kombiniert. Im Falle des Ausfalls eines Servers ist die Anwendung im Betrieb zwar etwas langsamer, so dass man gegebenenfalls nicht von strikter Hochverfügbarkeit bei Ausfall sprechen kann, jedoch wird so das bestmögliche Kosten-Nutzen-Verhältnis erzielt, da man den prinizipiell nur als Ersatz anzusehenden zweiten Server konsequent mitnutzt.

Das Bild verdeutlicht die Konstruktion:

Während auf der einen physikalischen Maschine (Server 1) der Webserver als virtuelle Maschine aktiv ist (VMo1 WWW active), ist auf der anderen physikalischen Maschine der Datenbankserver (VM02 MySQL active) aktiv. Diese arbeiten zunächst friedlich gemeinsam mit erhöhter Performanz gegenüber dem aktiven Betrieb von Web- und Datenbankserver auf einer einzigen physikalischen Maschine.

Beide Server kontrollieren dabei per Heartbeat ständig, ob der andere Server noch verfügbar ist. Wird über diesen Mechanismus festgestellt, dass der jeweils andere Server ausgefallen ist, so werden folgende Schritte ausgelöst. Der Hauptspeicher der auf dem laufenden Server aktiven Virtuellen Maschine wird reduziert. Dies kann gegebenenfalls einige Sekunden dauern. Dann wird auf dem ausgefallenen Server die eventuell noch laufende VM gestoppt (STONITH „Shoot the other node in the head“). Die bislang inaktive Virtuelle Maschine auf dem aktiven physikalischen Server wird dann gestartet, so dass die Anwendung unterbrechungsfrei weiterläuft.

Der hier vorgestellte 2-Node-Cluster kann auch zu einem x-Node-Cluster erweitert werden, so dass die Hochverfügbarkeit auch bei Clusterlösungen verwendet werden kann, die eher Performanz-Steigerung zum Ziel haben, wie bspw. der ILIAS-Cluster der Universität zu Köln, über den eine enorme Anzahl Studenten lernt.

Zusammenfassung  

  • Das E-Learning-System wird hochverfügbar bereitgestellt
  • ILIAS wird mit dem der verbesserten Performanz eines 2-Node-Clusters.

Bei Ausfall einer physikalischen Maschine wird ILIAS immer noch auf einem dedizierten Server betrieben, der bei entsprechender Hardware-Dimensionierung den Betrieb vollwertig übernimmt. Bei hoher Auslastung ist das Hosting des LMS dann zwar ggf. etwas langsamer, aber stabil. Dies scheint aber verschmerzbar, da es sich ja in dieser Betriebsphase um eine Art „Notstrom-Aggregat“, das möglichst schnell wieder in einen Cluster-Betrieb zu überführen ist.