-
1. Gebiet
der Erfindung
-
Die
vorliegende Erfindung betrifft allgemein das Gebiet von Datenverarbeitungsnetzwerken
und konkreter ein Netzwerk und ein Verfahren, das es einer hergestellten
Netzwerkverbindung gestattet, ihre Quelle oder ihr Ziel dynamisch
in Reaktion auf sich ändernde
Auslastungen, Fehlfunktionen oder andere Netzwerkeigenschaften zu
migrieren.
-
2. Hintergrund
der verwandten Technik
-
In
einem herkömmlichen
Datenverarbeitungsnetzwerk sind Client- und Serversysteme mit dem Netzwerk über einen
speziellen Adapter verbunden, üblicherweise
Netzwerkschnittstellenkarte (NIC) genannt. Historisch gesehen ist
eine Netzwerkverbindung zwischen einem beliebigen Client-Server-Paar
in dem Netzwerk wesentlich an die NICs der entsprechenden Einheiten
gebunden. Wenn die Hardwarekomponenten einer Verbindung nicht funktionieren
oder deren Bandbreite beschränkt
ist, gibt es keine Möglichkeit,
die Verbindungseigenschaften zu ändern,
um die Verbindung auf eine andere Hardwarekomponente „zu verschieben", die gegenwärtig besser
in der Lage ist, die Verbindung abzuwickeln. Stattdessen muss die
bestehende Verbindung beendet werden, und eine neue Verbindung muss
auf Kosten von potenziell erheblichem Netzwerk-Aufwand hergestellt
werden. Der Nachteil durch den Aufwand wiegt in Hochverfügbarkeits-Serverumgebungen,
in denen es ein Hauptziel ist, einer potenziell großen Anzahl
von Clients den höchsten
Grad an Reaktionsfähigkeit
bereitzustellen, besonders schwer. Es wäre daher wünschenswert, ein Netzwerkverfahren
und -system zu realisieren, das es Netzwerkverbindungen ermöglicht,
ihre Konfigurationen dynamisch in Reaktion auf Faktoren wie Netzwerkbelastung
oder Hardwareausfälle
zu definieren und zu ändern.
-
Huang,
J u.a., „An
open solution to fault-tolerant Ethernet: design, prototyping and
evaluation", Performance,
Computing and Communications Conference, 1999 IEEE International,
Seiten 461 bis 468, offenbart einen Knoten zur Verwendung in einer
fehlertoleranten Ethernetarchitektur, die eine Fehlererkennung zur
Erkennung eines Fehlers einer Netzwerkverbindung durch Aussenden
von „Ich-bin-aktiv"-Meldungen auf jeder
von zwei Netzwerkverbindungen umfasst. Wenn ein Knoten eine „Ich-bin-aktiv"-Meldung zwar auf
einer ersten der beiden Netzwerkverbindungen, aber nicht auf einer
zweiten der beiden Netzwerkverbindungen innerhalb einer vorbestimmten
Zeitspanne erkennt, zeigt der Knoten an, dass auf der zweiten Netzwerkverbindung
ein Fehler aufgetreten ist, und der gesamte Verkehr wird über die
erste Netzwerkverbindung geleitet. Die Leitweglenkung erfolgt durch
Anweisen eines NIC-Verteilers, nur die erste Netzwerkverbindung
zu verwenden.
-
Offenbarung
der Erfindung
-
Die
oben erkannten Probleme werden zu einem großen Teil von einem Datenverarbeitungsnetzwerk
und -system behandelt, indem es einer Netzwerkverbindung ermöglicht wird,
zwischen einer Vielzahl von verfügbaren
Servern und/oder Clients zu migrieren, um die Verbindung unter Verwendung
der leistungsfähigsten
verfügbaren
Gruppe von Ressourcen bereitzustellen. Üblicherweise geben Server und Clients
ihre entsprechende Unterstützung
dieser Verbindungsmigrationseigenschaft an, wenn die Verbindung
hergestellt wird. Ein Betriebssystem oder Anwendungsprogramm überwacht
bestehende Verbindungen auf Eigenschaften, einschließlich grundsätzlicher
Funktionalität
und Leistungsfähigkeit.
Wenn eine bestehende Verbindung als fehlerhaft oder mit niedriger
Leistungsfähigkeit
entdeckt wird und der Client und der Server, die dieser Verbindung
zugehören,
eine Verbindungsmigration unterstützen, stellt die Software fest,
ob es eine alternative und leistungsfähigere Verbindung gibt. Bei
Entdeckung einer solchen Verbindung werden die die Verbindung definierenden
Parameter geändert,
wodurch eine Migration der Verbindung auf die bevorzugte Hardware herbeigeführt wird.
In einem Ausführungsbeispiel,
in dem die Netzwerkverbindungen mit einem TCP-Protokoll (TCP = „Transmission
Control Protocol")
hergestellt werden, enthält
jede Verbindung ein Viertupel, das die Verbindung vollständig definiert,
nämlich
eine Quell-IP-Adresse, eine Quell-Anschlussnummer, eine Ziel-IP-Adresse
und eine Ziel-Anschlussnummer.
Durch Änderung
einer oder mehrerer der die Verbindung definierenden Viertupel wird
die Erfindung, wie in dem Datenverarbeitungssystem gemäß Anspruch
1, dem Verfahren zur Verwaltung einer Netzwerkverbindung gemäß Anspruch
8 und dem Computerprogramm gemäß Anspruch
14 beansprucht, so konfiguriert, dass sie die Verbindung auf eine
wirksamer funktionierende NIC oder ein wirksamer funktionierendes
System migriert.
-
Kurze Beschreibung der
Zeichnungen
-
Andere
Aufgaben und Vorteile der Erfindung ergeben sich nach der Lektüre der folgenden
ausführlichen
Beschreibung und nach Bezugnahme auf die beigefügten Zeichnungen, in denen:
-
1 ein
Blockschaltbild ausgewählter Komponenten
eines Datenverarbeitungsnetzwerks darstellt, das für die Umsetzung
eines Ausführungsbeispiels
der vorliegenden Erfindung geeignet ist;
-
2 ein
Blockschaltbild ausgewählter Hardwarekomponenten
eines Datenverarbeitungssystems, das zur Verwendung in dem Datenverarbeitungsnetzwerk
gemäß 1 geeignet
ist, darstellt;
-
3 eine Übersicht
ausgewählter
Komponenten des Datenverarbeitungssystems gemäß 2 darstellt;
-
4 eine
Prinzipdarstellung einer Netzwerkverbindung darstellt;
-
5 eine Übersichtsdarstellung
ausgewählter
Komponenten der Netzwerkverbindung gemäß 4 darstellt,
die die Verbindungsmigrationseigenschaften der vorliegenden Erfindung
hervorhebt; und
-
6 eine
Prinzipdarstellung verschiedener von der vorliegenden Erfindung
in Erwägung
gezogener Migrationsbeispiele darstellt.
-
Ausführliche Beschreibung der Erfindung
-
Unter
Bezugnahme auf die Zeichnungen stellt 1 ein Blockschaltbild
ausgewählter
Komponenten eines Datenverarbeitungsnetzwerks 100 dar, das
dafür geeignet
ist, ein Ausführungsbeispiel
der Erfindung umzusetzen. Fachleute der Netzwerkarchitektur werden
verstehen, dass diese bestimmte Umsetzung lediglich eine von vielen
möglichen
Konfigurationen darstellt. Dieses bestimmte Ausführungsbeispiel wird zumindest
teilweise auf Grund seiner Allgemeinheit veranschaulicht und da
es stellvertretend für
eine zunehmend große
Anzahl von Netzwerkrealisierungen steht. In dem dargestellten Ausführungsbeispiel
enthält
das Netzwerk 100 ein Client-System (Client) 102,
das mit einem Fernnetz 104 verbunden ist. Der Client 102 enthält üblicherweise ein
Client-Anwendungsprogramm wie zum Beispiel einen herkömmlichen
Web-Browser, der auf einer Client-Einheit ausgeführt wird.
-
Die
Client-Einheit kann einen Desktop- oder Laptop-Personalcomputer, einen Netzwerkcomputer oder
eine Netzwerk-Arbeitsstation
oder eine andere netzwerkfähige
Einheit wie zum Beispiel einen Minicomputer (PDA) oder ein internetfähiges Telefon
umfassen. Unter kurzer Bezugnahme auf 2. wird
ein Blockschaltbild ausgewählter
Hardwarekomponenten eines beispielhaften Client 102 dargestellt.
Der Client 102 enthält üblicherweise
einen oder mehrere Universal-Mikroprozessoren (CPUs) 201a bis 201n (allgemein
oder kollektiv CPU(s) 201), die mit einem Systemspeicher 204 über einen
Systembus 202 verbunden sind. Eine Brückeneinheit 206 verbindet
den Systembus 202 mit einem E/A-Bus 208. Der E/A-Bus entspricht üblicherweise
einer Industriestandard-Busspezifikation wie zum Beispiel der Lokalbus-Spezifikation
für das
Zusammenschalten peripherer Komponenten (Peripheral Components Interconnect
(PCI) Local Bus Specification) der PCI Special Interest Group (www.pcisig.org).
Eine oder mehrere Peripherie- oder E/A-Einheiten sind üblicherweise mit dem E/A-Bus 208 verbunden.
Das dargestellte Ausführungsbeispiel
veranschaulicht eine Netzwerkkarte (NIC 105) und einen
gewöhnlichen
E/A-Adapter 210, die mit dem E/A-Bus 208 verbunden
sind. NIC 105 verbindet die Ressourcen des Client 201 mit
einem Netzwerkmedium. In einer üblichen
Realisierung verbindet NIC 105 den Client 102 mit
einem Lokalnetz wie zum Beispiel einem Ethernet-Netzwerk. Kehren
wir zurück
zu 1, in der der Client 102 so dargestellt
ist, dass er durch ein eingreifendes Fernnetz (WAN) 104 mit
dem Servernetzwerk 101 fernverbunden ist. Andere Clients
(in 1. nicht dargestellt) können lokal mit dem Servernetzwerk
verbunden sein.
-
Das
Fernnetz 104 enthält üblicherweise
verschiedene Netzwerkeinheiten wie zum Beispiel Gateway-Computer,
Leitwegrechner, einen Netzwerkknoten und ein oder mehrere Lokalnetze
(LANs), die mit verschiedenen Medien, darunter möglicherweise Kupferdrahtleitungen,
Koaxialkabel, Lichtwellenleiterkabel und drahtlose Medien, verbunden
sind. Das Fernnetz 104 kann Teile des Internets darstellen
oder beinhalten.
-
In
dem dargestellten Ausführungsbeispiel
ist ein Servernetzwerk oder eine Gruppe von Servern 101 mit
dem Client 102 über
ein mit dem WAN 104 verbundenes Gateway 106 verbunden.
Die Server-Gruppe 101 ist üblicherweise als ein LAN ausgeführt, das
einen oder mehrere Server 110 (von denen vier gezeigt werden)
umfasst. Jeder Server 110 kann im Wesentlichen dieselben
Aufbaumerkmale wie das in 2 dargestellte
Client-System enthalten (d.h. einen oder mehrere Mikroprozessoren,
die mit einem gemeinsam benutzten Systemspeicher verbunden sind
und E/A-Adapter aufweisen, einschließlich einer NIC, die den Server
mit einem Lokalnetz verbindet). Die Server 110 können über ein
gemeinsam benutztes Medium, zum Beispiel in einer typischen Ethernet-
oder Token-Ring-Konfiguration,
vernetzt sein. Die Server 110 der Server-Gruppe 101 haben üblicherweise
Zugriff auf ein dauerhaftes (nichtflüchtiges) Speichermedium wie
zum Beispiel eine magnetische Festplatte. Außerdem kann jeder Server 110 seine
eigenen internen Platten und Plattenlaufwerkeinrichtungen enthalten.
In einer zunehmend verbreiteten Konfiguration werden dauerhafte
Speicher als vernetzte Einheit oder als eine Reihe von Einheiten bereitgestellt.
Ein vernetzter Speicher ist in 1 durch
Referenzzahl 114 gekennzeichnet und kann als eine oder
mehrere an das Netzwerk angeschlossene Speichereinheiten (NAS, „Network
Attached Storage"),
ein Netz aus Speicherlaufwerken (SAN, „Storage Area Network") oder eine Kombination
aus diesen ausgeführt
sein.
-
Aus
Sicht der Software verwenden die Clients 102 und die Server 110 üblicherweise
in 3 veranschaulichte Softwarekomponenten, darunter ein
oder mehrere Anwendungsprogramme 304, ein Betriebssystem 302 und
ein Netzwerkprotokoll 301. Zu den Anwendungsprogramme 304 können Datenbankanwendungen,
Web-Browser, Grafikdesignanwendungen, Tabellenkalkulationsprogramme,
Textverarbeitungsprogramme u.ä.
gehören.
Das Betriebssystem 302 ist ein allgemeiner Ausdruck für Softwarekomponenten,
die die Ressourcen des Systems verwalten. Das Netzwerkprotokoll 301 bezeichnet
eine Familie von Softwarekomponenten, die so konfiguriert sind,
dass sie den auf einer Vorrichtung ausgeführten Anwendungen eine Übertragung
von Informationen über
das Netzwerk ermöglichen.
Obwohl das Netzwerkprotokoll 301 in 3 als getrennt vom Betriebssystem
dargestellt ist, können
die Protokollkomponenten Komponenten des Betriebssystems umfassen.
-
Anwendungsprogramme
und Betriebssystemroutinen starten Prozesse, wenn sie ausgeführt werden.
Ein auf einer Servervorrichtung wie zum Beispiel der Servervorrichtung 110 ausgeführtes Programm überträgt üblicherweise
Daten an einen anfordernden Prozess, der auf einem Client ausgeführt wird,
als eine Folge von einem oder mehreren Netzwerkpaketen. Jedes Paket
enthält
Nutzinformationen, die einen Teil der angeforderten Daten sowie
je nach verwendetem Netzwerkprotokoll ein oder mehrere Kopfzeilenfelder
umfassen. In einem Ausführungsbeispiel,
in dem das WAN 104 beispielsweise das Internet darstellt,
sind zwischen dem Server 110 und dem Client 102 übertragene
Pakete üblicherweise
konform mit dem Transmission Control Protocol/Internet Protocol
(TCP/IP), wie in RFC 793 und RFC 791 der Internet
Engineering Task Force (www.ietf.org) festgelegt.
-
Um
die separaten Prozesse, die von einer TCP-fähigen Einheit oder einem TCP-fähigen System
abgewickelt werden können,
zu kennzeichnen, stellt das TCP eine eindeutige Adresse für jede Client-Server-Verbindung
bereit. Diese eindeutigen Adressen enthalten eine IP-Adresse und
eine Anschluss-Kennung. Die IP-Adresse
kennzeichnet einen physischen Ort oder ein physisches Ziel in dem Netzwerk,
zum Beispiel eine bestimmte NIC. Die Anschluss-Kennung wird benötigt, da
mehrere Prozesse dieselben Hardware-Ressourcen (d.h. dieselbe physische
Ressource) gemeinsam benutzen können. Die
Kombination aus IP-Adresse und Anschluss wird „Socket" genannt, der im gesamten Netzwerk einmalig
ist. Eine Verbindung wird von einem Socket-Paar vollständig angegeben,
wobei ein Socket üblicherweise
den Socket auf der Client-Seite und der andere Socket den Socket
auf der Server-Seite darstellt.
-
Unter
Bezugnahme nun auf 4 wird eine Prinzipdarstellung
einer Client-Server-Verbindung gezeigt. Die dargestellte Verbindung
stellt eine TCP-konforme Verbindung zwischen einem auf dem Server 110 ausgeführten Prozess 109a und
dem Prozess 109b, der auf dem Client 102 ausgeführt wird, dar.
Die Verbindung wird durch ein Socket-Paar definiert. Aus Sicht des
Server 110 wird der Quell-Socket aus der Kombination der
IP-Adresse der NIC 105 und der
Anschlussnummer, die dem Prozess 109a zugeordnet ist, bestimmt,
während
der Ziel-Socket aus der Kombination von IP-Adresse der NIC 107 und
der Anschlussnummer, die dem Prozess 109b auf Client 102 zugeordnet
ist, bestimmt wird. Aus Sicht des Client 102 sind die Quell-
und Ziel-Sockets umgekehrt, so dass NIC 107 und Prozess 109b den
Quell-Socket definieren, während
NIC 105 und Prozess 109a den Ziel-Socket definieren.
In einem herkömmlichen
Datenverarbeitungsnetzwerk ist die Definition der Verbindung statisch.
Die Quell- und Ziel-Sockets auf beiden Seiten der Verbindung sind
unveränderlich.
Die vorliegende Erfindung hebt diese Beschränkung auf, indem der Client
und der Server in die Lage versetzt werden, eine bestehende Definition
einer Verbindung gemeinschaftlich zu ändern, wenn dies vorteilhaft
ist. Die Funktionalität
der Verbindungsmigration wird vorzugsweise durch Ausweitung der
Eigenschaften des Netzwerkprotokolls erreicht. In diesem Ausführungsbeispiel
müssen
beide Teilnehmer einer Verbindung im Vorfeld darüber einig sein, dass sie eine
Verbindungsmigration unterstützen.
Wenn ein Teilnehmer die Ausweitung nicht unterstützt, deaktiviert der andere
Teilnehmer die Eigenschaft.
-
Teile
der Erfindung können
in Software ausgeführt
werden, die aus einer Folge von computerausführbaren Anweisungen, die auf
einem computerlesbaren Medium gespeichert sind, besteht. Bei Ausführung der
Anweisungen sind diese üblicherweise
in einem flüchtigen
Speichermedium wie zum Beispiel dem Systemspeicher (üblicherweise
bestehend aus DRAM) eines Client- oder Server-Systems oder einem internen oder externen
Cache-Speicher (üblicherweise
bestehend aus SRAM) gespeichert. Zu anderen Zeiten kann die Software
auf einem nichtflüchtigen
Medium, wie zum Beispiel einer Festplatte, einer Diskette, einer
CD-ROM, einer DVD, einer Flash-Speicherkarte oder einem anderen
elektrisch löschbaren
Medium, Magnetband u.ä.
gespeichert sein. Außerdem
können
Teile der Software über
verschiedene Komponenten des Netzwerks verteilt sein. Teile der
Software können
sich zum Beispiel auf einem Client-System befinden, während sich
andere Teile auf einem Server-System befinden.
-
Unter
Bezugnahme nun auf 5 werden ausgewählte Softwareelemente
gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung dargestellt. In dem dargestellten Ausführungsbeispiel
enthält
ein Server 110 ein Migrationsmodul 501, eine Ressourcen-Überwachungseinheit 503 und
eine Verbindungs-Überwachungseinheit 505.
Diese Komponenten sind neben dem Betriebssystem und den Netzwerkprotokollmodulen
des Servers vorhanden. Die Verbindungs-Überwachungseinheit 505 ist
verantwortlich für
die Überwachung
der Leistungsfähigkeit
einer oder mehrerer Netzwerkverbindungen, an denen der Server 110 teilnimmt.
Die Verbindungs-Überwachungseinheit 505 kann
als selbständiges
Anwendungsprogramm ausgeführt
sein oder als ein Betriebssystem- oder Netzwerkprotokoll-Hilfsprogramm
bereitgestellt werden. Üblicherweise
ist die Verbindungs- Überwachungseinheit 505 so
konfiguriert, dass sie eine oder mehrere Leistungskennwerte der
aktiven Netzwerkverbindungen des Servers misst. Zu den überwachten
Leistungskennwerte können
die grundsätzliche
Verbindungsfunktionalität
und die Datenübertragungsrate
der Verbindung gehören.
Die grundsätzliche
Funktionalität kann
durch Überwachung
der Anzahl oder Häufigkeit von
Zeitüberschreitungsvorfällen bestimmt
werden, wobei ein Zeitüberschreitungsvorfall
ein Paket darstellt, das aufgegeben, aber innerhalb einer vorgeschriebenen
Zeitdauer nicht bestätigt
wurde. Die Datenübertragungsrate
der Verbindung kann zum Beispiel durch Überwachung der verstrichenen
Zeit zwischen der Lieferung eines Pakets und dem Empfang einer Bestätigung für das Paket überwacht
werden. Mit Hilfe dieser Informationen und mit Hilfe der Informationen über die
Größe jedes
Pakets wird die Verbindungs-Überwachungseinheit 505 so
konfiguriert, dass die eine Ermittlung der „Geschwindigkeit" der Verbindung erzielt.
-
Das
Migrationsmodul 501 ist so konfiguriert, dass es mit dem
Verbindungsmonitor 505 zusammenwirkt, um festzustellen,
ob eine bestimmte Verbindung ein Kandidat zur Migration ist. In
einem Ausführungsbeispiel
meldet die Verbindungs-Überwachungseinheit 505 dem
Migrationsmodul jedes Mal, wenn ein überwachter Leistungskennwert
einer Verbindung nicht konform mit einem Standard oder einem Schwellwert
ist. Wenn beispielsweise die grundsätzliche Funktionalität einer überwachten
Verbindung als fehlerhaft festgestellt wird, wird die Verbindungs-Überwachungseinheit 505 so
konfiguriert, dass sie dem Migrationsmodul 501 die Verbindung meldet.
Die Leistungsstandards, die definieren, wann eine überwachte
Verbindung als Kandidat zur Migration gemeldet wird, können eine
Reihe von vorbestimmten und Standards umfassen.
-
Alternativ
hierzu können
die Leistungsstandards dynamisch auf Basis der jüngsten Vorgeschichte der Verbindung
ermittelt werden.
-
In
Reaktion darauf, dass die Verbindungs-Überwachungseinheit 505 meldet,
dass eine überwachte
Verbindung irgendeinen Leistungsstandard nicht mehr einhält, stellt
das Migrationsmodul 501 zunächst fest, ob der andere Teilnehmer
der Verbindung eine Verbindungsmigration unterstützt. Wenn eine Verbindung mit
einem Client oder einem Server hergestellt wird, der eine Verbindungsmigration
unterstützt,
richtet der Client oder der Server an den anderen Teilnehmer eine
Anfrage, um festzustellen, ob der andere Teilnehmer eine Migration
unterstützt.
Wenn beide Teilnehmer der Verbindung eine Migration unterstützen, wird
die Verbindung von beiden Teilnehmern entsprechend gekennzeichnet.
Ein Teilnehmer kann versuchen festzustellen, ob der andere Teilnehmer
eine Migration unterstützt,
indem er ein Sonderpaket sendet oder ein Sonderkopfzeilenfeld einfügt, wenn
die Verbindung hergestellt wird. Wenn ein Teilnehmer die Migrationseigenschaft
nicht unterstützt,
deaktiviert der andere Teilnehmer die Migrationseigenschaft.
-
Unter
der Annahme, dass beide Teilnehmer einer Verbindung die Migrationseigenschaft
unterstützen,
wird das Migrationsmodul 501 so konfiguriert, dass es versucht,
eine bestehende Verbindung in Reaktion auf ein Eingabeaufforderung
von der Verbindungs-Überwachungseinheit 505 zu
migrieren (modifizieren). In dem in 5 dargestellten
Ausführungsbeispiel
richtet das Migrationsmodul 501 an den Ressourcenmonitor 503 eine
Anfrage, um festzustellen, ob alternative Ressourcen zur Bereitstellung
einer Verbindung verfügbar
sind. Der Ressourcenmonitor 503 wird üblicherweise so konfiguriert, dass
er einen Bestand an zur Bereitstellung von Netzwerkverbindungen
verfügbaren
Ressourcen führt.
Nun Bezug nehmend auf 6 können jeder Server 110 und
jeder Client 102 mehrere Netzwerkkarten aufweisen. Der
Server 110 kann zum Beispiel aus einem pSeries 690 Server
der IBM Corporation bestehen, der bis zu 160 im Betrieb
an- und absteckbare PCI-Steckplätze
aufweist, die jeweils eine Netzwerkkarte unterstützen können. Auf ähnliche Weise können Hochverfügbarkeits-Client-Systeme
auch mehrere Netzwerkadapter aufweisen. Wenn ein Server oder Client
mehrere Netzwerkadapter enthält, können die
zusätzlichen
Adapter als alternative Ressourcen zur Bereitstellung einer bestimmten
Netzwerkverbindung zur Verfügung
stehen. Wenn das Migrationsmodul 501 versucht, eine Verbindung
zu migrieren, richtet es eine Anfrage an die Ressourcen-Überwachungseinheit 503 ab,
um eine Liste von verfügbaren
Ressourcen bereitgestellt zu bekommen.
-
In
einem Ausführungsbeispiel
kann die Ressourcen-Überwachungseinheit 503 einfach
die Liste mit allen verfügbaren
Ressourcen jedes Mal bereitstellen, wenn das Migrationsmodul 501 eine
Anforderung absendet. In einem anderen Ausführungsbeispiel kann die Ressourcen-Überwachungseinheit 503 die
verfügbaren
Ressourcen in Abhängigkeit
von verschiedenen Faktoren, z.B. der Kennung des Client, wahlweise
oder vorrangig anzeigen. Dieses Ausführungsbeispiel zieht das Setzen
von Prioritäten verfügbarer Ressourcen
in Betracht, um verschiedenen Clients unterschiedliche Dienstniveaus
bereitzustellen. Ein Dienstleistungsanbieter könnte anbieten, unterschiedlichen
Clients unterschiedliche Dienstklassen anzubieten. Die Ressourcen-Überwachungseinheit 503 kann
einem Client, der die höchste
Dienstklasse abonniert hat, Ressourcen zur Verfügung stellen, die einem Client,
der eine niedrigere Dienstklasse abonniert hat, nicht zur Verfügung gestellt
werden. Andere Kriterien zum Setzen von Prioritäten können ebenso verwendet werden,
um festzulegen, welche Ressourcen einem Client zur Verfügung stehen.
-
Der
in 5 dargestellte Client 102 ist so dargestellt,
dass er Softwarekomponenten, die im Wesentlichen den für den Server 110 angegebenen Komponenten
entsprechen, enthält.
Somit kann jeder Client 102 sein Migrationsmodul, seine
Verbindungs-Überwachungseinheit
und seine Ressourcen-Überwachungseinheit
enthalten. Auf diese Art kann die Leistungsfähigkeit der Verbindung auf
beiden Seiten der Verbindung überwacht
werden, und beide Seiten der Verbindung können eine Migration der Verbindung
zu anderen Ressourcen auslösen.
-
Wenn
eine Verbindungsmigration von einem der Verbindungsteilnehmer eingeleitet
wird, beginnt das Migrationsmodul 501 die Migration durch
vorübergehende
Einstellung der Übertragung
jeglicher neuer Pakete. Wenn alle ausstehenden Pakete (d.h. gelieferte,
aber nicht bestätigte
Pakete) entweder bestätigt
wurden oder eine Zeitüberschreitung
aufweisen, kann das Migrationsmodul 501 die Socket-Definition
entweder für
einen oder für
beide Verbindungsteilnehmer ändern.
Nach Änderung
der Socket-Definition(en) wird das die Verbindung definierende Viertupel
auf der Seite des Client und auf der Seite des Server entsprechend
geändert.
Somit wird, wenn eine bestimmte Verbindungsmigration bedingt, dass der
Client 102 seine Socket-Definition ändert, während der Socket für Server 110 gleich
bleibt, das Viertupel auf der Seite des Client anschließend modifiziert,
indem die Kombination aus Quell-IP-Adresse/Anschlussnummer geändert wird,
um die modifizierte Socket-Definition auf der Seite des Client widerzuspiegeln.
Der Server 110 würde
dann auch durch Änderung
seiner Kombination aus Ziel-IP-Adresse/Anschlussnummer sein Verbindungs-Viertupel
modifizieren.
-
Unter
erneuter Bezugnahme auf 6 wird eine Prinzipdarstellung
der von der vorliegenden Erfindung in Erwägung gezogenen Verbindungsmigration
dargestellt. In dieser Darstellung ist eine Reihe von Netzwerkverbindungen 601a bis 601c zwischen einer
Reihe von Clients 102a bis 102m und einer Reihe
von Servern 110a bis 110n eingerichtet. Jeder
Client 102 hat zumindest eine NIC 107 zur Verfügung, um
eine oder mehrere Netzwerkverbindungen bereitzustellen, während jeder
Server 110 zumindest eine NIC 105 aufweist. In 6 werden
drei Arten der Verbindungsmigration dargestellt. Die Verbindung 601a,
die eine serverinterne Migration darstellt, wird mit einer durchgezogenen
Linie gezeigt und ist zwischen einer ersten NIC 105 des
Server 110a verbunden, wobei die durchgezogene Linie die
ursprüngliche
Netzwerkverbindung darstellt. Nach der Verbindungsmigration besteht
die Verbindung 601a zwischen dem Client 102a und
einer zweiten NIC des Server 110a, wie mit der Strichlinie
gezeigt wird. Die Verbindung 601b stellt eine Migration
zwischen Servern dar, bei der die ursprüngliche Verbindung zwischen
dem Client 102b und einem ersten Server 110a auf
eine zweite Verbindung (durch die gestrichelte Linie gezeigt) zwischen
dem Server 102b und einem zweiten Server 110n migriert
wird. Diese Migration zwischen Servern kann zum Beispiel in einer wie
in 1 dargestellten Server-Gruppen-Umgebung ausgeführt sein, bei der die Server-Gruppe 101 mehrere
Server 110 enthält,
die alle mit einem gemeinsamen Verteiler 108 verbunden
sind. In dieser Umgebung können
die Migrationsmodule 501 und die Verbindungs-Überwachungseinheiten 505 auf
jeden Server 110 verteilt sein, während die Ressourcen-Überwachungseinheit 503 auf
dem Verteiler 108 installiert sein kann, wo die überall in
der Gruppe verfügbaren
Ressourcen zentral überwacht
werden können.
Die Verbindung 601c stellt eine Client-interne Verbindungsmigration
dar, bei der eine ursprünglich von
einer ersten NIC 107 auf Client 102m definierte Verbindung
auf eine zweite NIC auf dem Client migriert wird. Durch die Möglichkeit
einer Server-internen Migration, einer Migration zwischen Servern
und einer Client-internen Migration wird durch die vorliegende Erfindung
ein Höchstmaß an Flexibilität des Systems
erreicht.