@InProceedings{ Linuxtage2007, author = "Thomas Dreibholz", title = "{Hochverfügbarkeit mit Reliable Server Pooling}", booktitle = "{Proceedings of the Linuxtage in Essen}", numpages = "23", day = "10", month = nov, year = "2007", address = "Essen, Nordrhein-Westfalen/Germany", language = "german", keywords = "Reliable Server Pooling~(RSerPool), Hochverfügbarkeit, Redundanz, Überblick, Implementierung, RSPLIB", abstract = "{Mit der ständig wachsenden Verbreitung von Internetzugängen nimmt auch die Anzahl an verfügbarkeits-kritischen Diensten im Netz zu. Ausfälle von z.B. VoIP-Vermittlungsanlagen zur Weiterleitung von Notrufen oder e-Commerce-Anwendungen sind nicht akzeptabel. Zur Sicherstellung der Verfügbarkeit von Diensten bei Geräte- und Netzwerkausfällen müssen diese Komponenten redundant ausgelegt sein. Spezialisierte Redundanzlösungen – insbesondere z.B. für Web-Server – gibt es zwar viele, eine einheitliche, für viele Dienste nutzbare Lösung fehlte jedoch noch. Reliable Server Pooling, abgekürzt RSerPool, ist ein Rahmenwerk zur Bereitstellung hochverfügbarer Anwendungen durch redundante Server, es befindet sich zur Zeit in der Standardisierung durch die IETF RSerPool-Arbeitsgruppe. Im RSerPool-Konzept werden Server, welche den gleichen Dienst anbieten, zu einem Pool zusammengefaßt. Neben der Hauptaufgabe – der Verfügbarkeit von Diensten – ist insbesondere auch die Lastverteilung ein wichtiges Anwendungsgebiet von RSerPool. Im Rahmen eines Forschungsprojektes haben wir -- die Arbeitsgruppe Technik der Rechnernetze am Institut für Experimentelle Mathematik der Universität Duisburg-Essen -- im Jahre 2002 damit begonnen, einen plattformunabhängigen RSerPool-Prototypen als Open Source unter GPL-Lizenz zu entwickeln. Mittlerweile wird unser Projekt durch die Deutsche Forschungsgemeinschaft (DFG) gefördert. Unser System läuft zur Zeit unter Linux, FreeBSD, Darwin (MacOS X) und Solaris, wobei die Unterstützung für weitere Plattformen – insbesondere auch für Embedded-Systeme – geplant ist. Als einzige vollständige Implementierung des zukünftigen RSerPool-Standards sind wir Referenzimplementierung der IETF RSerPool-Arbeitsgruppe und wirken mit Tests und Forschungsarbeiten aktiv in der Standardisierung mit. In unserem Vortrag geben wir zunächst eine kurze Einführung zu RSerPool. Dabei wollen wir insbesondere auch die Merkmale verdeutlichen, die RSerPool von existierenden Lösungen – wie Linux Virtual Server (LVS) oder dem kommerziellen Cisco Distributed Director – unterscheiden. Außerdem wollen wir zeigen, welche speziellen Funktionalitäten RSerPool bietet um den Nutzen eines Serverpools sowohl für dessen Betreiber als auch für den Anwender zu optimieren: die Möglichkeit zur vollautomatischen Konfiguration von Komponenten und die Festlegung pool-spezifischer Serverauswahlregeln. Diese Funktionalitäten werden wir am Beispiel einer Anwendung von RSerPool für Real-Time Distributed Computing verdeutlichen. Im zweiten Teil unseres Vortrags werden wir auf unsere Open Source Implementierung rsplib eingehen. Neben dem Aufbau der einzelnen Komponenten werden wir insbesondere auch interessante Details der Implementierung vorstellen und beschreiben, wie wir auftretende Probleme erfolgreich lösen konnten. Insbesondere wollen wir dabei auch unsere gesammelten Erfahrungen beim Erstellen von auf unterschiedlichen Betriebssystemen (Linux, FreeBSD, MacOS X, Solaris) und Hardware (x86, x64, PPC) lauffähiger Software vorstellen. Im Anschluß daran zeigen wir, wie das RSerPool-API dazu genutzt werden kann, eigene Anwendungen hochverfügbar zu machen und die Möglichkeiten zur Lastverteilung im Pool verwendet werden können. Ein Schwerpunkt dieser Einführung wird dabei insbesondere die einfache und effiziente Realisierung des Failover-Mechanisms sein, d.h. des Verfahrens zur Wiederherstellung eines Sitzungszustandes auf einem neuen Server nach Ausfall des alten. Im Besonderen werden wir dabei zeigen, welche Fähigkeiten RSerPool und sein API mitbringen um dieses – teilweise recht komplexe Thema – in vielen Fällen übersichtlich und mit wenigen Zeilen Programmcode zu lösen: Hochverfügbarkeit für eigene Anwendungen muß nicht kompliziert sein! Zum Abschluß stellen wir noch unsere Beispielanwendung vor, ein System zum verteilten Berechnen von Fraktalgrafiken. Mit diesem System lassen sich die grundlegenden Eigenschaften von RSerPool – welche im Vortrag vorgestellt wurden – sehr anschaulich demonstrieren: die Verwaltung dynamischer Pools, Lastverteilung und Failover bei Serverausfall. Selbstverständlich werden wir unser Beispielsystem beim Vortrag auch in der Praxis demonstrieren, bei Vorhandensein eines Internetzugangs sogar mit einem Szenario aus weltweit verteilten Ressourcen.}", url = "https://www.wiwi.uni-due.de/fileadmin/fileupload/I-TDR/ReliableServer/Publications/Linuxtage2007.pdf", url.size = "7925544", url.md5 = "7882ef3b335f592778b19b6d3f3c0796", url.mime = "application/pdf", url.pagesize = "794 x 595 pts", url.checked = "2014-04-02 17:08:19 CEST" }