10.03.2015 Aufrufe

PARS-Mitteilungen 2007 - Parallel-Algorithmen, -Rechnerstrukturen ...

PARS-Mitteilungen 2007 - Parallel-Algorithmen, -Rechnerstrukturen ...

PARS-Mitteilungen 2007 - Parallel-Algorithmen, -Rechnerstrukturen ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Behandlung offener Netzwerkverbindungen bei Prozessmigration<br />

Andreas Bergmann<br />

Jörg Schneider<br />

Technische Universität Berlin<br />

Hans-Ulrich Heiß<br />

1 Einleitung<br />

Verschiedene Ansätze sind bekannt, um verteilte Rechner<br />

so zusammenzufassen, dass sie als ein Rechnerverbund<br />

agieren. Für lose gekoppelte parallele Anwendungen eignen<br />

sich besonders die sogenannten Networks of Workstations.<br />

In einem solchem Netzwerk stehen die Rechner<br />

nicht exklusiv für die Anwendung zur Verfügung und sind<br />

nur über ein einfaches Verbindungsnetzwerk verbunden.<br />

Ein solches Netzwerk kann nur effizient arbeiten, wenn<br />

die Rechenlast gleichmäßig und unter Berücksichtigung<br />

der sonstigen Nutzung verteilt wird. Eine gute Lastverteilung<br />

muss auf wechselnde Rechnerauslastungen reagieren<br />

und einzelne Komponenten einer parallelen Anwendung<br />

auf andere Rechner verschieben können. Das Verschieben<br />

einer laufenden Anwendung oder eines Anwendungsteils<br />

von einem Rechner auf einen anderen wird Prozessmigration<br />

genannt.<br />

Bei der Migration wird der aktuelle Zustand eines Prozesses<br />

gesichert, auf einen anderen Rechner übertragen<br />

und dort ab dem gesicherten Zustand wieder weiter ausgeführt.<br />

Falls der Zustand des Prozesses auch von seiner<br />

Umgebung abhängig ist, wie zum Beispiel von einer<br />

geöffneten Datei, kann er entweder nicht migriert werden<br />

oder die alte Umgebung muss auf dem neuen Rechner<br />

nachgestellt werden. Dazu wäre es nötig, die Umgebung<br />

ebenfalls zu kopieren. Das ist bei Dateien möglich, funktioniert<br />

aber bei Netzwerkverbindungen nicht.<br />

Wir stellen ein Verfahren vor, um eine geöffnete Netzwerkverbindung<br />

nach der Migration wiederherzustellen.<br />

Die Wiederherstellung läuft vollständig auf Benutzerebene<br />

und ist damit leicht in bestehende Netzwerke zu integrieren.<br />

Im Folgenden beschreiben wir kurz die bisher verwendeten<br />

Ansätze zur Migration von Prozessen und dem Umgang<br />

mit offenen Netzwerkverbindungen dabei. Danach<br />

stellen wir unser Verfahren und die Ergebnisse vor, die<br />

wir durch Experimente mit einer prototypischen Implementierung<br />

des Verfahren gewonnen haben.<br />

2 Bekannte Verfahren<br />

Die Umleitung bestehender Netzwerkverbindungen kann<br />

auf verschiedenen Ebenen des Netzwerkprotokolls umgesetzt<br />

werden. Auf einer niedrigen Protokollebene wäre<br />

die Umlenkung der Netzwerkdaten, zum Beispiel mit<br />

Hilfe einer Protokollerweiterung ähnlich der TCP Migrate<br />

Option[4] oder durch Änderung des Routings[1]<br />

denkbar. Die Umsetzung auf der höchsten Protokollebene<br />

wäre innerhalb der Programmlogik der Anwendung<br />

durchzuführen.<br />

Die übliche Herangehensweise bei der Prozessmigration<br />

liegt in der Mitte und soll am Beispiel zweier bekannten<br />

Cluster-Verwaltungssysteme vorgestellt werden.<br />

Beim MOSIX-Projekt[2] wird der Rechner, auf dem<br />

das Programm zuerst gestartet wurde, zum Heimatknoten.<br />

Auf dem Heimatknoten läuft ein Stellvertreter, welcher<br />

die Dateisystemzugriffe und Netzwerkkommunikation<br />

übernimmt. Nach der Migration eines Prozesses werden<br />

alle ein- und ausgehenden Pakete über den Stellvertreter<br />

weitergeleitet. Für die Anwendung ist diese Umleitung<br />

unsichtbar und eher als Ausnahme gedacht. Prozesse<br />

mit hohem Kommunikationsaufkommen werden deshalb<br />

auf ihren Heimatknoten zurückmigriert.<br />

Beim Condor-Framework[3] sind Migrationen von<br />

Netzwerkverbindungen zwar möglich, allerdings wird ein<br />

Prozess nicht migriert, solange eine Verbindung offen ist.<br />

Solange ein Prozess nur kurze Nachrichten an einen bekannten<br />

Partner schickt und dann die Verbindung beendet,<br />

kann er von Condor migriert werden.<br />

3 Automatisches Wiederverbinden<br />

nach der Prozessmigration<br />

Bei dem im Folgenden vorgeschlagenen Verfahren wird<br />

eine Netzwerkverbindung vor der Migration beendet und<br />

danach wieder direkt zwischen beiden Endpunkten aufgebaut.<br />

Damit weder die Anwendung noch das zugrundeliegende<br />

Betriebssystem dafür geändert werden muss, wird<br />

eine Zwischenschicht im Benutzerbereich hinzugefügt.<br />

Die Zwischenschicht wird als Bestandteil einer Anwendung<br />

mit ihr zusammen auf den neuen Rechner migriert.<br />

Allerdings erfährt sie genauso wenig wie die Anwendung<br />

vom Ziel der Migration. Deshalb ist es nicht möglich, vor<br />

der Migration mit der Gegenstelle die Adressen für eine<br />

Wiederherstellung der Verbindung auszuhandeln. Aus<br />

diesem Grund wird schon beim Verbindungsaufbau für jede<br />

Seite ein Port für das Wiederverbinden ausgehandelt.<br />

Nachdem einer der Partner migriert wurde, stellt er eine<br />

48

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!