PARS-Mitteilungen 2007 - Parallel-Algorithmen, -Rechnerstrukturen ...
PARS-Mitteilungen 2007 - Parallel-Algorithmen, -Rechnerstrukturen ...
PARS-Mitteilungen 2007 - Parallel-Algorithmen, -Rechnerstrukturen ...
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