Erzeugung von verteilten Sicherungspunkten in heterogenen Umgebungen

Student:Stefan Gabriel
Title:Erzeugung von verteilten Sicherungspunkten in heterogenen Umgebungen
Type:diploma thesis
Advisors:Klemm, M.; Veldema, R.; Philippsen, M.
State:submitted on October 24, 2006
Prerequisits:

Rechnerbündel ("Cluster") bestehen aus einer Vielzahl kleiner Teilsysteme, die über ein (meist) sehr schnelles Netzwerk aneinander gekoppelt sind. Mit steigender Anzahl von Knoten steigt jedoch leider auch die Häufigkeit, mit der mit Ausfällen von Knoten gerechnet werden muss. In vielen großen Systemen unterschreitet die MTBF (Mean Time Between Failure) so die durchschnittliche Laufzeit von parallelen Applikationen.

Im Falle eines Ausfalls sind alle (Teil-)Ergebnisse, die bereits bereits von der Applikation errechnet wurden, verloren. Als Lösung des Problems bietet es sich an, den Zustand der Applikation regelmäßig zu sichern (Sicherungspunkt, "Checkpoint") und in Falle eines Ausfalls am letzten gesicherten Zustand wiederaufzusetzen ("Restart").

In der Regel besteht ein Rechnerbündel aus einer Art von Architektur, also bspw. aus Maschinen des Typs IA32. Für ein solches System bestehen bereits zahlreiche Ansätze und Bibliotheken, wie eine (parallele) Applikation gesichert und wiederaufgesetzt werden kann. Es existieren jedoch auch Rechnerbündel, die aus einem Architekturmix bestehen, z.B. einer Mischung aus Knoten der IA32- und EM64T-Architektur.

Am Lehrstuhl wurde im Rahmen der Untersuchungen zur Migration von Aktivitätsträgern ("Threads") bereits ein Verfahren zur Erzeugung von plattformunabhängigen Sicherungspunkten einzelner Aktivitätsträger entwickelt. Mit diesem Verfahren ist es bspw. möglich, einen Aktivitätsträger auf einem IA32-Knoten zu sichern und auf einem IA64-Knoten wiederaufzusetzen. Das Sichern einer gesamten (parallelen) Applikation ist hierbei noch nicht möglich.

Im Rahmen einer Studienarbeit im Jackal-Projekt wurden die zur Sicherung einer (verteilt) parallelen Applikation benötigten Algorithmen entwickelt. Die vorhandenen Algorithmen nutzen zur Erzeugung der Sicherungspunkte jedoch eine plattformabhängige Bibliothek basierend auf Kern-Modulen.

Topic:

Ziel der Arbeit ist die Vereinigung der Algorithmen zur Erzeugung verteilter Sicherungspunkte und des Verfahrens zur plattformunabhängigen Sicherung einzelner Threads im Jackal-Projekt. Hierzu ist es nötig, das bereits entwickelte plattformunabhängige Verfahren so zu erweitern, dass es zur Sicherung von mehreren Prozessen genutzt werden kann.

Das plattformunabhängige Sichern einzelner Aktivitätsträger basiert auf einer übersetzergestützten Analyse von Programmstellen, an denen eine Zustandssicherung erfolgen kann bzw. soll. Der Übersetzer erzeugt für diese Stellen zusätzlichen Code, der es erlaubt, den Zustand an dieser Programmstelle zu sichern. Für eine Zusammenführung mit der verteilten Zustandssicherung kann dieses Verfahren nicht mehr genutzt werden, da die Benachrichtigung zur Zustandssicherung jederzeit (und damit an jeder beliebigen Stelle im Programm) eintreffen kann. Somit wird ein Verfahren benötigt, das es erlaubt ohne exakte Kenntnis der genauen Programmstellen dennoch eine plattformunabhängige Zustandssicherung durchzuführen.

Das so gefundene Verfahren muss anschließend erweitert werden, so dass eine Applikation vollständig gesichert werden kann. Hierzu müssen die einzelnen Aktivitätsträger der Applikation der Reihe nach auf ein persistentes Medium gesichert werden. Das Verfahren wird abschließend durch das Zusammenführen mit dem verteilten Sicherungsverfahren vervollständigt.

Meilensteine

  • Erweiterung des plattformunabhängigen Sicherungsverfahrens
  • Sicherung einer parallelen Applikation bestehend aus einem Prozess
  • Sicherung einer verteilten, parallelen Applikation
  • Messung der Leistungsfähigkeit des neuen Verfahrens
  • Interpretation der Messergebnisse und Optimierungen
  • Ausarbeitung
watermark seal