-
Gebiet der Erfindung
-
Ausführungsformen der Erfindung betreffen allgemein die Informationstechnologie (IT) und insbesondere die Verwaltung von virtuellen Maschinen.
-
Allgemeiner Stand der Technik
-
Aufgrund der Fortschritte in der Virtualisierungstechnologie findet auf dem Gebiet des Enterprise Computing ein Technologieschub statt. Eine bedeutende Änderung dreht sich um die Mobilität von Software-Ressourcen. Ganze Softwarestapel in Form von virtuellen Maschinen können nun relativ bequem im laufenden Betrieb (d. h. ohne Ausfall- oder Stillstandzeit) oder offline (Sicherung und Wiederherstellung) an eine beliebige Stelle innerhalb desselben Rechenzentrums oder von einem Rechenzentrum in ein anderes Rechenzentrum bewegt werden. Dieses sich in der Entwicklung befindende Umfeld stellt Herausforderungen dar, wie zum Beispiel das gleichzeitige Vorhandensein von identischen oder überlappenden Adressen der Ebene 2 und der Ebene 3 innerhalb eines einzigen Netzwerks eines Rechenzentrums.
-
Die für die Konfiguration und die Installation von großen mehrschichtigen Anwendungen aufgewendeten IT-Kosten können für Unternehmen beträchtlich sein. Aufgrund von vielen verschiedenen Gründen sind beispielsweise mehrere Instanzen solcher Anwendungen erforderlich. In einem Unternehmen kann es mehrere Umgebungen (wie zum Beispiel Produktion, Bereitstellung und Prüfung, Entwicklung usw.) geben, die identische (oder verkleinerte) Instanzen dieser Anwendungen beherbergen müssen. Wenn Unternehmen wachsen und an verschiedenen geografischen Standorten Zukäufe getätigt werden, entstehen auch mehrere geografisch verteilte, aber untereinander verbundene Rechenzentren, die identische Anwendungen beherbergen müssen.
-
Bei beiden Szenarien könnten beträchtliche Kosten für die erneute Installation und die Neukonfiguration gespart werden, wenn dieselbe mehrschichtige Anwendungsinstanz (die mehrere virtuelle Maschinen aufweist) geklont oder repliziert werden könnte. Diese Praxis ist nicht weit verbreitet; da sich der Bereich der Internet-Protokoll-(IP-)Adressen für die ursprünglichen replizierten Instanzen möglicherweise komplett von dem neuen Netzwerk, in dem diese Replikas wiederhergestellt werden, unterscheidet. Auch können diese IP-Adressbereiche einander überlappen oder identisch sein. Aufgrund dessen müssen IP-Adressen für die wiederhergestellten Instanzen üblicherweise neu konfiguriert werden. Dieser Aufwand ist nicht unbedeutend, da diese IP-Adressen an verschiedenen Stellen (verschiedenen Betriebssystemen (OS), Middleware-Konfigurationsdateien usw.) in diesen virtuellen Maschinen eingebettet sind.
-
Ferner können unabhängig voneinander ausgelegte Rechenzentren überlappende Netzwerkadressbereiche haben und sind gegebenenfalls nicht als Teil eines einzelnen Kommunikationsnetzwerks untereinander verbunden. Auch muss ein Cloud-Anbieter seinen Kunden gestatten, ihre gesicherten Anwendungen in Form von virtuellen Maschinen (VMs) wiederherzustellen, ohne Änderung an seinem Netzwerk vorzunehmen. Diese verschiedenen Kunden-VMs können IP-Adressen haben, die nicht zu den IP-Adressen von den VMs anderer Kunden oder zu den IP-Adressen, die von dem Anbieter selbst verwendet werden, passen.
-
Folglich besteht ein Bedarf, das gleichzeitige Vorhandensein von Hostrechnern oder virtuellen Maschinen mit identischen Adressen zu ermöglichen.
-
Kurzdarstellung der Erfindung
-
In einer Erscheinungsform der vorliegenden Erfindung werden Verfahren bereitgestellt, die dazu dienen, das gleichzeitige Vorhandensein von Hostrechnern oder virtuellen Maschinen mit identischen Adressen zu ermöglichen. Ein beispielhaftes computerimplementiertes Verfahren, das dazu dient, das gleichzeitige Vorhandensein von mehreren Maschinen mit identischen Adressen in einem einzigen Netzwerk eines Rechenzentrums zu ermöglichen, kann die Schritte des Zuweisens einer eindeutigen Pseudokennung zu jeder Maschine in dem Netzwerk, welche zur Weiterleitung eines Pakets an eine Zielmaschine verwendet werden kann, des Ersetzens einer Medienzugriffssteuerungsadresse eines Senders in einer Anforderung eines Adressenauflösungsprotokolls durch eine Pseudokennung des Senders an einer Vermittlungsstelle (Switch) am Rand eines Netzwerks, des Abrufens einer Kennung eines privaten Netzwerks aus einer Abgleichungstabelle auf der Grundlage der Pseudokennung des Senders und des Zurücksendens einer Pseudokennung für die Zieladresse auf der Grundlage der Kennung des privaten Netzwerks und des Ersetzens der Pseudokennung der Zieladresse durch eine tatsächliche Kennung an einer Zielvermittlungsstelle am Rand eines Netzwerks, um das Paket an die Zielmaschine weiterzuleiten, beinhalten.
-
Eine weitere Erscheinungsform der Erfindung oder von Elementen der Erfindung kann in Form eines Herstellungsgegenstands realisiert werden, der rechnerlesbare Befehle physisch verkörpert, die, wenn sie ausgeführt werden, einen Rechner veranlassen, eine Vielzahl von Verfahrensschritten, die hier beschrieben werden, durchzuführen. Eine andere Erscheinungsform der Erfindung oder von Elementen der Erfindung kann in Form von einer Vorrichtung realisiert werden, die einen Speicher und mindestens einen Prozessor enthält, der mit dem Speicher verbunden und in der Lage ist, genannte Schritte des Verfahrens durchzuführen. Darüber hinaus kann eine weitere Erscheinungsform der Erfindung oder von Elementen der Erfindung in Form von Mitteln zur Durchführung der hier beschriebenen Verfahrensschritte oder von Elementen hiervon realisiert werden; wobei die Mittel (i) (ein) Hardware-Modul(e), (ii) (ein) Software-Modul(e) oder (iii) eine Kombination aus Hardware- und Software-Modulen beinhalten können; wobei beliebige von (i) bis (iii) die hier dargelegten ganz bestimmten Verfahren implementieren und die Software-Module in einem physisch greifbaren rechnerlesbaren Speichermedium (oder in mehreren solcher Medien) gespeichert sind.
-
Diese und andere Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung gehen aus der folgenden ausführlichen Beschreibung von anschaulichen Ausführungsformen der Erfindung hervor, die in Verbindung mit den beigefügten Zeichnungen gelesen werden soll.
-
Kurze Beschreibung der Zeichnungen
-
1 ist ein Blockschaltbild, das eine beispielhafte Ausführungsform gemäß einer Erscheinungsform der Erfindung zeigt;
-
2 ist ein Diagramm, das Code zum Erstellen einer mapping_table (Abgleichungstabelle) und einer ip_table (IP-Tabelle) an der Netzwerksteuereinheit (die auch als Identitäts-Steuereinheit bezeichnet wird) gemäß einer Ausführungsform der vorliegenden Erfindung zeigt;
-
3 ist ein Diagramm, das Code für die Regel 1 zum Umleiten von Anforderungen des Adressenauflösungsprotokolls (address resolution protocol (ARP)) gemäß einer Ausführungsform der Erfindung zeigt;
-
4 ist ein Diagramm, das Code für die Regel 2 zum Ersetzen der Pseudo-Medienzugriffssteuerung (pseudo media access control (PMAC)) durch eine tatsächliche Medienzugriffssteuerung (actual media access control (AMAC)) für ankommende Internet-Protokoll-(IP-)Pakete gemäß einer Ausführungsform der vorliegenden Erfindung zeigt;
-
5 ist ein Diagramm, das Code zum Auffinden der Ziel-PMAC aus Tabellen der Steuereinheit und zum Antworten auf eine Anforderung des Adressenauflösungsprotokolls (ARP) gemäß einer Ausführungsform der Erfindung zeigt;
-
6 ist ein Flussdiagramm, das die automatische Zuweisung von Kennungen eines privaten Netzwerks (private network identifier (PNID)) und das Erkennen von Duplikaten gemäß einer Ausführungsform der vorliegenden Erfindung zeigt;
-
7 ist ein Flussdiagramm, das Verfahren zeigt, die dazu dienen, das gleichzeitige Vorhandensein von mehreren Maschinen mit identischen Adressen in einem einzigen Netzwerk eines Rechenzentrums gemäß einer Ausführungsform der Erfindung zu ermöglichen; und
-
8 ist ein Systemdiagramm eines beispielhaften Rechnersystems, an dem mindestens eine Ausführungsform der Erfindung realisiert werden kann.
-
Ausführliche Beschreibung von Ausführungsformen
-
Wie hier beschrieben wird, beinhaltet eine Erscheinungsform der vorliegenden Erfindung ein Kommunikationsnetzwerk eines Rechenzentrums, das dazu dient, das gleichzeitige Vorhandensein von Hostrechnern oder virtuellen Maschinen (VMs) mit identischen Adressen (zum Beispiel Adressen der Ebene 2 und der Ebene 3) zu ermöglichen. In typischen Rechenzentren entsprechen Adressen der Ebene 2 Medienzugriffssteuerungs-(MAC-)Adressen, und Adressen der Ebene 3 entsprechen Internet-Protocol-(IP-)Adressen. Mindestens eine Ausführungsform der Erfindung schließt das Verwenden von Pseudoadressen, um jeden Hostrechner oder jede VM eindeutig zu kennzeichnen, sowie das Einsetzen von Verfahren zur Auflösung von Adressen und zum Erkennen von Duplikaten ein, um das gleichzeitige Vorhandensein von Hostrechnern und VMs mit identischen Adressen zu ermöglichen. Beispielsweise kann eine zentralisierte programmierbare Steuerebene (wie sie zum Beispiel von OpenFlow angeboten wird) vorteilhaft genutzt werden und das Konzept und die Implementierung des Schemas können in Mininet dargestellt werden.
-
Wie hier ausführlich dargelegt wird, beinhaltet eine Erscheinungsform der Erfindung das Unterstützen von identischen Adressen durch die Verwendung von Adressenauflösungsprotokollen (ARPs) zur eindeutigen Kennzeichnung von Hostrechnern, indem die Quellen-Medienzugriffssteuerung (MAC) in einer ARP-Anforderung durch eine eindeutige Kennung (Pseudo-MAC (PMAC) oder Pseudo-IP) ersetzt wird, die für die Leitwegwahl verwendet werden kann. Eine Ausführungsform der Erfindung beinhaltet auch das Erstellen und Verwalten einer Abgleichungstabelle an einer Netzwerksteuereinheit, die Pseudo-Kennungen mit den Kennungen eines privaten Netzwerks (PNIDs) abgleicht, zu dem ein bestimmter Hostrechner oder eine bestimmte VM gehört. Dadurch lassen sich mehrere private Netzwerke oder Überlagerungen innerhalb eines einzigen Netzwerks einfacher erzeugen, und jedes private Netzwerk enthält Maschinen oder Hostrechner mit eindeutigen Adressen. Überdies beinhaltet eine Erscheinungsform der Erfindung das Verwenden von Schemata zum Entdecken von Duplikaten, um Kennungen eines privaten Netzwerks automatisch zuzuweisen und um Duplikate in einem privaten Netzwerk zu erkennen.
-
Das Zuweisen einer Pseudo-MAC-Adresse zu jeder physischen Maschine (PM) oder VM kann wie folgt durchgeführt werden. Eine Open-Flow-Steuereinheit weist jeder PM oder VM eine 48-Bit-PMAC zu. Die Zwischenspeicherung der Zuordnungen von PMAC zu AMAC erfolgt ganz oben im Serverrack (top-of-rack (TOR)) für alle Hostrechner/VMs, die sich unterhalb dieses TOR befinden. Die Leitwegwahl findet auf der Grundlage der PMACs statt, und der Ziel-Top-of-Rack-(TOR-)/vswitch ersetzt PMAC durch AMAC, bevor er das Paket zustellt (Umschreiben des Kopfbereichs).
-
1 ist ein Blockschaltbild, das eine beispielhafte Ausführungsform gemäß einer Erscheinungsform der Erfindung zeigt. Auf dem Wege der Veranschaulichung zeigt 1 eine Abgleichungstabelle 102 einer Steuereinheit, eine Steuereinheit 104, ein POD (0) 106, ein POD (1) 108, eine Kernvermittlungsstelle (core switch) 110 und eine Kernvermittlungsstelle 112.
-
1 gibt einen Überblick über die Architektur von mindestens einer Erscheinungsform der Erfindung, die eine zentralisierte programmierbare Steuerebene (wie sie zum Beispiel von OpenFlow zur Verfügung gestellt wird) vorteilhaft nutzt. Die Architektur enthält eine Netzwerksteuereinheit, die mit allen Vermittlungsstellen verbunden ist. Die Netzwerksteuereinheit bildet die zentralisierte Steuerebene des Netzwerks und handhabt die meisten Entscheidungen in Bezug auf die Leitwegwahl und die Weiterleitung von Paketen (die Datenebene). Die Netzwerksteuereinheiten sind in der Lage, auf allen Vermittlungsstellen Regeln zu installieren, anhand derer ankommende Pakete geändert oder weitergeleitet werden können.
-
In einer Ausführungsform der Erfindung kann eine Identitäts-Netzwerksteuereinheit als Python-Anwendung implementiert werden, die auf einer NOX-OpenFlow-Steuereinheit ausgeführt wird. NOX ist eine ereignisgesteuerte Steuereinheit, und darauf laufende Anwendungen können sich für Rückrufe eintragen lassen, um über verschiedene Ereignisse benachrichtigt zu werden. Die Identitäts-Netzwerksteuereinheit trägt Rückrufe für drei Arten von Ereignissen ein: Ankunft eines Pakets (packet in), eine Vermittlungsstelle, die sich mit dem Netzwerk verbindet (datapath join) und eine Vermittlungsstelle, die sich vom Netzwerk trennt (datapath leave).
-
Mindestens eine Erscheinungsform der Erfindung beinhaltet auch das eindeutige Kennzeichnen eines Hostrechners oder einer VM. Zur eindeutigen Kennzeichnung eines jeden Hostrechners und einer jeden VM in dem Netzwerk kann eine Pseudo-MAC verwendet werden. Eine OpenFlow-Steuereinheit weist jedem Hostrechner oder jeder virtuellen Maschine eine 48-Bit-Pseudo-MAC (PMAC) der folgenden Form zu:
pod.position.port.vmid
pod (16 Bit) ist hierbei die Kennung eines POD, an der sich die TOR-Vermittlungsstelle befindet; position (8 Bit) kennzeichnet die Position der TOR-Vermittlungsstelle innerhalb des POD; port (8 Bit) ist die Anschlussnummer auf der TOR-Vermittlungsstelle, mit der der physische Hostrechner direkt verbunden ist; und vmid (16 Bit) ist die Kennung der VM auf einem bestimmten Hostrechner. Dieses PMAC-Format bettet die hierarchische Netzwerktopologie in die Pseudo-Kennung ein und wird für die gesamte Leitwegwahl verwendet.
-
Die Steuereinheit verwaltet eine Zuordnung der PMAC einer VM (oder eines Hostrechners) zu deren beziehungsweise dessen tatsächlicher MAC-Adresse (AMAC), deren/dessen IP-Adresse sowie der Kennung eines privaten Netzwerks (private network identifier (PNID)), zu der ein bestimmter Hostrechner oder eine bestimmte VM gehört. VMs oder Hostrechner in demselben privaten Netzwerk können frei kommunizieren, und eine Erscheinungsform der Erfindung stellt sicher, dass es in einem privaten Netzwerk keine doppelt vorhandenen Adressen gibt.
-
Externe Hostrechner (außerhalb des Rechenzentrums überall im Internet) können auch mit Hostrechnern in diesem privaten Netzwerk kommunizieren, indem sie einen Gateway-Dienst verwenden, der eine öffentlich bekannte, eindeutige IP-Adresse hat und so konfiguriert ist, dass er mit einem bestimmten privaten Netzwerk kommuniziert. Das Gateway kann einer der Hostrechner oder eine der VMs in dem privaten Netzwerk selbst sein, und ihm ist zusätzlich zu seiner ursprünglichen Adresse noch eine eindeutige öffentliche IP zugewiesen. Standardmäßig werden alle Hostrechner und VMs mit einer PNID von 0 versehen, die das ganze Netzwerk des Rechenzentrums darstellt. Nachfolgenden Hostrechnern mit doppelt vorhandenen Adressen werden PNIDs in aufsteigender Reihenfolge zugewiesen.
-
Darüber hinaus beinhaltet mindestens eine Ausführungsform der Erfindung das Aufzeichnen einer Anwendungs-ID zusätzlich zu einer PNID. Anwendungs-IDs kennzeichnen einen Satz von VMs oder physischen Maschinen (PMs), die gemeinsam repliziert (gesichert und wiederhergestellt) werden und eine einzige mehrschichtige Anwendung darstellen. Auch kann eine Anwendungs-ID verwendet werden, um VMs zu kennzeichnen, die als Sicherungen für andere VMs in anderen replizierten Clustern agieren können, welche dieselbe Komponente der mehrschichtigen Anwendung darstellen und im Falle eines Fehlers zur Funktionsübernahme (Failover) verwendet werden können. Es kann davon ausgegangen werden, dass die Komponenten entweder zustandslos sind oder nach der Replizierung synchron gehalten werden.
-
Eine Erscheinungsform der Erfindung kann auch das Hinzufügen von neuen Hostrechnern und das Zuweisen von Adressen beinhalten. PMACs können beim Systemstart statisch zugewiesen werden oder die Topologie kann mit Hilfe eines Protokolls, wie zum Beispiel des Label Distribution Protocol (LDP), erlernt werden. Da sich die gesamte Netzwerktopologie (die von Vermittlungsstellen des Netzwerks und deren Verbindung bestimmt wird) in Netzwerken von Rechenzentren von Unternehmen gegebenenfalls selten ändert, beinhaltet eine Ausführungsform der Erfindung das Verwenden von statischen Zuweisungen. Eine Zuordnung von entsprechenden PMACs für jeden Anschluss bei allen Vermittlungsstellen wird auf der Grundlage der bekannten Netzwerktopologie vorgenommen. Die letzten 16 Bit in der PMAC (die die Kennung der VM darstellt) werden verschiedenen VMs oder Hostrechnern auf der Grundlage ihrer bekannten tatsächlichen MAC-Adressen in aufsteigender Reihenfolge statisch zugewiesen. Die Zuordnung zwischen PMAC, AMAC, IP, PNID, switchID und der Anschlussnummer der Vermittlungsstelle (switch port number) wird statisch festgelegt und beim Systemstart von der Identitäts-Netzwerksteuereinheit aus einer Konfigurationsdatei gelesen. Der Python-Code für das Erstellen der Tabellen der Steuereinheit ist in 2 angegeben. Folglich ist 2 ein Diagramm, das den Code 202 zum Erstellen einer mapping_table (Abgleichungstabelle) und einer ip_table (IP-Tabelle) an der Netzwerksteuereinheit (die auch als Identitäts-Steuereinheit bezeichnet wird) gemäß einer Ausführungsform der vorliegenden Erfindung zeigt.
-
Wie hier ausführlich dargelegt wird, beinhaltet eine Erscheinungsform der Erfindung die ARP-Auflösung. Immer, wenn sich eine Netzwerk-Vermittlungsstelle mit dem Netzwerk verbindet, wird eine Identitäts-Netzwerksteuereinheit benachrichtigt. Die Identitäts-Netzwerksteuereinheit wiederum schlägt in ihrer Abgleichungstabelle nach, um die Liste mit allen Hostrechnern und VMs zu finden, die mit dieser Vermittlungsstelle verbunden sein sollen. Für jeden dieser Hostrechner beziehungsweise für jede dieser VMs erzeugt die Identitäts-Netzwerksteuereinheit dann zwei Regeln und installiert sie auf der Vermittlungsstelle:
- • Regel 1: Diese Regel leitet alle ARP-Anforderungen (einschließlich unaufgeforderter ARP-Anforderungen), die die Vermittlungsstelle an all ihren Eingangsanschlüssen von den angeschlossenen Hostrechnern oder VMs erhält, an die Steuereinheit um. Da sich die PMACs für alle Anschlüsse einer Vermittlungsstelle in der Abgleichungstabelle der Steuereinheit befinden, gibt die Steuereinheit in dieser Regel auch an, dass die Ethernet-(AMAC-)Quellenadresse des ARP-Pakets durch die Quellen-PMAC ersetzt werden muss. Der Python-Code für das Setzen dieser Regel ist in 3 angegeben.
- • Regel 2: Diese Regel ersetzt die Ziel-PMAC in einem IP-Paket durch die Ziel-AMAC bei allen ankommenden Paketen, so dass die Ziel-AMAC von dem Ziel-Hostrechner oder der Ziel-VM angenommen werden kann. Der Python-Code für das Setzen dieser Regel ist in 4 angegeben.
-
3 ist ein Diagramm, das Code 302 für die Regel 1 zum Umleiten von Anforderungen des Adressenauflösungsprotokolls (ARP) gemäß einer Ausführungsform der Erfindung zeigt. 4 ist ein Diagramm, das Code 402 für die Regel 2 zum Ersetzen einer PMAC durch eine AMAC für ankommende IP-Pakete gemäß einer Ausführungsform der vorliegenden Erfindung zeigt.
-
Neben der vorstehend ausführlich beschriebenen Regel 1 und Regel 2 können mehrere andere Regeln, die erforderlich sind, um ein Paket auf der Grundlage von PMACs weiterzuleiten, auf der Vermittlungsstelle installiert werden. Sobald diese Regeln auf den Vermittlungsstellen installiert sind, wird die Anforderung jedes Mal, wenn eine ARP-Rundsendeanforderung von einem Hostrechner oder einer VM erzeugt wird, von der Vermittlungsstelle an die Steuereinheit umgeleitet, nachdem die Quellen-AMAC im Ethernet-Kopfbereich durch die Quellen-PMAC ersetzt worden ist. Nach dem Empfang einer ARP-Anforderung prüft die Steuereinheit die PMAC der Quelle in dem Ethernet-Kopfbereich. Die Steuereinheit schlägt dann in ihrer Abgleichungstabelle nach, ruft die PNID ab, die der Quellen-PMAC aus ihrer Abgleichungstabelle entspricht, und wählt auf der Grundlage einer Kombination aus der Ziel-IP-Adresse und der Quellen-PNID die Ziel-PMAC. Dies löst das Problem des Ermittelns des richtigen Ziels bei Vorhandensein von doppelten IP-Adressen. Die Steuereinheit erzeugt dann eine ARP-Antwort mit der richtigen Ziel-PMAC. Das Code-Fragment für diese Schritte ist in 5 gezeigt. Folglich ist 5 ein Diagramm, das Code 502 zum Auffinden der Ziel-PMAC aus Tabellen der Steuereinheit und zum Antworten auf eine ARP-Anforderung gemäß einer Ausführungsform der Erfindung zeigt.
-
Anschauliches Beispiel: (in Verbindung mit Tabelle I – Abgleichungstabelle an der Steuereinheit) Tabelle I
VM | PMAC | AMAC | IP | PNID | Switch ID | Port |
VM1 | PMAC-1 | AMAC-1 | IP-1 | 0 | 2 | 1 |
VM2 | PMAC-2 | AMAC-2 | IP-2 | 0 | 2 | 2 |
VM3 | PMAC-3 | AMAC-3 | IP-3 | 0 | 2 | 3 |
VM1' | PMAC-4 | AMAC-1 | IP-1 | 1 | 5 | 1 |
VM2' | PMAC-5 | AMAC-2 | IP-2 | 1 | 5 | 2 |
VM3' | PMAC-6 | AMAC-3 | IP-3 | 1 | 5 | 3 |
-
Zum Zweck der Veranschaulichung betrachten wir ein Beispiel, in dem es drei VMs (VM1, VM2 und VM3) in dem Netzwerk gibt, wobei jede VM ihre eigenen eindeutigen IPs (IP-1, IP-2 und IP-3), eindeutigen PMACs (PMAC-1, PMAC-2, PMAC-3) beziehungsweise AMACs (AMAC-1, AMAC-2, AMAC-3) hat. Nehmen wir weiter an, dass diese drei VMs mit einer Vermittlungsstelle mit der Switch ID (Vermittlungsstellenkennung) = 2 verbunden und an den Anschlüssen (Ports) mit der Nummer 1, 2 beziehungsweise 3 angeschlossen sind. Diese VMs erhalten eine standardmäßige PNID von 0. Diese VMs können beispielsweise eine typische dreischichtige Anwendung mit einer Web-Schicht, einer Anwendungsschicht und einer Datenbank-(DB-)Schicht ausführen.
-
Nehmen wir an, dass jede dieser VMs kopiert wird, um eine weitere Instanz dieser mehrschichtigen Anwendung zu erzeugen. Diese drei replizierten VMs (VM1', VM2' und VM3') haben dieselben IP- und MAC-Adressen wie die ursprünglichen drei VMs. Sie haben jedoch ihre eigenen eindeutigen PMACs (PMAC-4, PMAC-5, PMAC-6). Nehmen wir überdies an, dass diese drei replizierten VMs mit einer Vermittlungsstelle mit der ID = 5 verbunden und an den Anschlüssen mit der Nummer 1, 2 beziehungsweise 3 angeschlossen sind. Die Steuereinheit hätte diesen replizierten VMs eine PNID von 1 zugewiesen. An diesem Punkt hat die Abgleichungstabelle an der Steuereinheit dasselbe Erscheinungsbild wie in Tabelle I (die Spalte 1 mit Namen von VMs wurde nur zum Zweck der Veranschaulichung hinzugefügt). Die ersten drei Zeilen stellen die Einträge für die ursprünglichen drei VMs dar, während die letzten drei Zeilen die Einträge für die replizierten VMs darstellen.
-
Wenn VM1' versucht, erstmalig ein Paket an VM2' zu senden, wird eine ARP-Anforderung (der Form ”wer hat IP-2”) erzeugt und der Vermittlungsstelle mit der ID = 5 zugestellt. Die Vermittlungsstelle leitet die ARP-Anforderung an die Steuereinheit um, nachdem sie die Quellenadresse im Ethernet-Kopfbereich (AMAC-1) durch die Quellen-PMAC (PMAC-4) (gemäß der vorstehenden Regel 1) ersetzt hat. Die Steuereinheit empfängt die ARP-Anforderung und prüft die Quellenadresse im Ethernet-Kopfbereich. Da die Quellenadresse PMAC-4 lautet, schlägt die Steuereinheit in der Abgleichungstabelle nach und stellt fest, dass die PNID den Wert 1 hat. Die Steuereinheit fragt ihre Abgleichungstabelle ab, um die PMAC-Adresse herauszufinden, die IP-2 und PNID = 1 entspricht. Da es sich bei PMAC-5 um die PMAC-Adresse handelt, die IP-2 und PNID = 1 entspricht, reagiert die Steuereinheit mit einer ARP-Antwort, die die Zieladresse in der ARP-Nutzlast als PMAC-5 angibt. VM1' erzeugt dann ein Paket mit PMAC-5 als Ethernet-Zieladresse. Die Regeln für die Leitwegwahl sorgen dafür, dass gewährleistet ist, dass das Paket die richtige Vermittlungsstelle (mit SwitchID = 5) erreicht. Die Vermittlungsstelle 5 empfängt das Paket und ersetzt die Ethernet-Zieladresse wieder durch AMAC-1 (gemäß der vorstehenden Regel 2) und gibt es an den richtigen Anschluss (Anschluss 2) aus.
-
Die Hostrechner oder die VMs, die identische AMACs haben, können nicht mit derselben Rand- oder TOR-Vermittlungsstelle verbunden werden (weil die Ausgaben der TOR-Vermittlungsstelle auf der Grundlage von AMAC erfolgen). Dies stellt für VMs, die nur eine doppelte IP-Adresse, aber eine eindeutige AMAC haben, kein Problem dar. Darüber hinaus kann eine Ausführungsform der Erfindung das Verwenden eines OpenFlow-fähigen vswitch in dem Hypervisor und das Installieren aller OpenFlow-Regeln in dem vswitch anstelle der TOR-Vermittlungsstelle beinhalten. Dadurch wird diese Einschränkung auf die Ebene des Hypervisors oder des Hostrechners übertragen (auf einem Hostrechner gibt es keine VMs mit doppelten AMACs). Dieses Verfahren kann jedoch nicht für nicht virtualisierte Hostrechner eingesetzt werden und erfordert, dass die Hostrechner einen OpenFlow-fähigen vswitch unterstützen.
-
Wie hier ebenfalls ausführlich dargelegt wird, beinhaltet eine Erscheinungsform der Erfindung die Handhabung von unaufgeforderten ARPs. Ein unaufgefordertes ARP ist eine ARP-Ankündigung, die von dem Betriebssystem auf einem Hostrechner zum Zeitpunkt des Urladens (Bootens) gesendet wird und die IP- und die MAC-Adresse des Senders enthält und zur Aktualisierung der von anderen Hostrechnern vorgenommenen Zuordnung einer Hardware-Adresse verwendet wird, wenn sich die IP-Adresse des Senders oder MAC-Adresse geändert hat. Eine Identitäts-Netzwerksteuereinheit handhabt unaufgeforderte ARPs aus beispielsweise den folgenden Gründen. Zum Beispiel muss die Steuereinheit gewährleisten, dass ein unaufgefordertes ARP nicht als Rundsendung an alle Hostrechner gesendet wird, da es aufgrund des Vorhandenseins von doppelten IP-Adressen viele ARP-Antworten erzeugen würde. Identitäts-Kommunikationsnetzwerke sollten das unaufgeforderte ARP im Rundsendeverfahren nur an Hostrechner senden, die sich in demselben privaten Netzwerk befinden, so dass die Hostrechner ihren ARP-Cachespeicher aktualisieren können. Dies gewährleistet, dass alle Hostrechner in einem privaten Netzwerk keine veralteten ARP-Einträge haben. Es hilft auch beim Erkennen von doppelten IP-Adressen in einem privaten Netzwerk.
-
Überdies kann ein unaufgefordertes ARP auch verwendet werden, um doppelte IP-Adressen zu erkennen, wenn solche Adressen erstmalig in dem Netzwerk erscheinen, indem PMACs und Kennungen eines privaten Netzwerks automatisch zugewiesen werden.
-
Unaufgeforderte ARPs (wie alle ARPs) werden an eine Identitäts-Netzwerksteuereinheit umgeleitet (gemäß der Regel 1), wobei die Quellen-AMAC durch die Quellen-PMAC im Kopfbereich des Ethernet-Pakets ersetzt wird. Die Identitäts-Netzwerksteuereinheit erkennt ein unaufgefordertes ARP wie folgt. Ein ARP-Paket wird als ein unaufgefordertes ARP erkannt, wenn:
- • das ARP-Paket eine Anforderung ist, wobei die Quellen-IP-Adresse gleich der Ziel-IP-Adresse ist und die Ziel-MAC auf 0 gesetzt ist.
- • das ARP-Paket eine Antwort ist, wobei sowohl die Quellen-IP-Adresse als auch die MAC-Adresse gleich der Ziel-IP-Adresse und der MAC-Adresse sind.
-
Man beachte, dass das Ethernet-Paket in beiden Fällen ein Rundsende-Paket ist (das heißt, die Ethernet-Zieladresse ist ff:ff:ff:ff:ff:ff).
-
Nachdem ein ARP-Paket als ein unaufgefordertes ARP-Paket erkannt worden ist, stellt die Steuereinheit das private Netzwerk fest, zu dem der Hostrechner oder die VM gehört, der beziehungsweise die das unaufgeforderte ARP sendet. Dies kann mit Hilfe der Quellen-PMAC im Ethernet-Kopfbereich des unaufgeforderten ARP-Pakets und mittels Nachschlagen in der Abgleichungstabelle erkannt werden.
-
Die Identitäts-Netzwerksteuereinheit erzeugt einen Satz von unaufgeforderten Einzeladressierungs-ARP-Nachrichten für alle Hostrechner oder VMs, die dasselbe private Netzwerk (PNID) gemeinsam benutzen. Während der Erzeugung dieser unaufgeforderten ARP-Nachrichten kann die Steuereinheit mehrere Regeln verwenden. Beispielsweise kann die Steuereinheit die Quellen-PMAC in dem Ethernet-Paket für eine Quellenadresse und die Ziel-PMAC in dem Ethernet-Paket für eine Zieladresse verwenden, so dass das Paket mit Hilfe von PMACs weitergeleitet werden kann.
-
Die Steuereinheit verwendet auch die Quellen-PMAC als die Quellen-MAC-Adresse in dem ARP-Paket (Nutzlast des Ethernet-Pakets), setzt die Ziel-MAC auf 0 und verwendet die Quellen-IP sowohl für die Quellen- als auch die Ziel-IP-Adresse. Dies trägt dazu bei, sicherzustellen, dass die empfangenden Hostrechner die Nachricht als unaufgeforderte ARP-Nachricht erkennen und ihren ARP-Cachespeicher mit der entsprechenden Quellen-PMAC und deren IP aktualisieren. Wenn die IP in dem privaten Netzwerk ein Duplikat ist, können die empfangenden Hostrechner dem Sender (demjenigen, der das unaufgeforderte ARP ursprünglich gesendet hat) mit einer ARP-Antwort antworten und dabei den Konflikt melden.
-
Eine Erscheinungsform der Erfindung kann überdies auch das automatische Erkennen von Duplikaten und die automatische Zuweisung von PNIDs beinhalten. Wie hier beschrieben wird, installiert die Identitäts-Steuereinheit eine Regel Regel 1' auf allen Rand-Vermittlungsstellen (TORs), die alle ARP-Anforderungen an die Steuereinheit umleiten (ohne die Quellen-MAC durch die Quellen-PMAC zu ersetzen (wie in der Regel 1 hier beschrieben wurde). Ein Flussdiagramm, das das Verfahren erklärt, ist in 6 gezeigt.
-
6 ist ein Flussdiagramm, das die automatische Zuweisung von PNIDs und das automatische Erkennen von Duplikaten gemäß einer Ausführungsform der vorliegenden Erfindung zeigt. Auf dem Wege der Veranschaulichung zeigt 6 eine Hostrechner-Komponente 602, eine Vermittlungsstellen-Komponente 608 und ein Steuereinheit-Modul 618. Eine Anwendung, die in Verbindung mit der Hostrechner-Komponente 602 ausgeführt wird, erzeugt im Schritt 604 ein unaufgefordertes ARP, und der Hostrechner sendet im Schritt 606 ein Paket mit AMAC.
-
Der Schritt 610, der in Verbindung mit der Vermittlungsstellen-Komponente 608 durchgeführt wird, beinhaltet das Empfangen von Paketen, und der Schritt 612 beinhaltet das Feststellen auf der Grundlage der AMAC, ob der Hostrechner bekannt ist. Wenn ja (das heißt, der Hostrechner ist bekannt), beinhaltet der Schritt 614 das Umschreiben des Kopfbereichs und das Ersetzen der Quellen-MAC-Adresse durch die PMAC (ether.src = PMAC). Wenn nicht (das heißt, der Hostrechner ist nicht bekannt), wird der Kopfbereich nicht geändert. In beiden Fällen beinhaltet der Schritt 616 das Umleiten des unaufgeforderten ARP an die Netzwerksteuereinheit.
-
Darüber hinaus empfängt das Steuereinheit-Modul 618 das ARP-Paket im Schritt 620. Der Schritt 622 beinhaltet das Entnehmen der Quellen-MAC-Adresse (ethernet.src) aus dem Kopfbereich des ARP-Pakets. Der Schritt 624 beinhaltet das Feststellen, ob sich die Quellen-MAC-Adresse in einer Abgleichungstabelle befindet (das heißt, mit PMACs indexiert ist). Wenn ja, wird der Hostrechner im Schritt 626 als vorhandener Hostrechner erkannt, da die MAC-Adresse im Kopfbereich des Pakets mit einer vorhandenen PMAC übereinstimmt (die zuvor zugewiesen werden musste, und die Vermittlungsstelle muss die Quellen-MAC im Schritt 614 durch die PMAC ersetzt haben). Wenn nicht, beinhaltet der Schritt 628 das Senden einer ARP-Rundsendenachricht zu Prüfzwecken (ARP probe broadcast). Ferner beinhaltet der Schritt 630 das Warten auf eine ARP-Antwort. Der Schritt 632 beinhaltet das Berechnen einer Kennung eines privaten Netzwerks (PNID), und der Schritt 634 beinhaltet das Erzeugen einer PMAC. Darüber hinaus beinhaltet der Schritt 636 das Installieren der Regel 1 (wie hier beschrieben wird); das heißt, der Umleitung einer ARP mit Umschreiben des Kopfbereichs auf der Vermittlungsstelle für diesen Hostrechner.
-
Wie in 6 ausführlich gezeigt ist, senden die Hostrechner/VMs zum Zeitpunkt des Urladens ein unaufgefordertes ARP (dies kann auch manuell erfolgen, wenn die VM aus einem mit einem Prüfpunkt versehenen Zustand wiederhergestellt wird), während neue Hostrechner oder VMs zum Netzwerk hinzugefügt werden. Das unaufgeforderte ARP ist eine Rundsendenachricht und wird aufgrund der vorinstallierten Regel Regel 1' an die Steuereinheit umgeleitet. Bei neuen Hostrechnern wird die Regel 1' verwendet, um alle ARP-Anforderungen an die Steuereinheit weiterzuleiten, ohne die Quellen-MAC-Adresse im Kopfbereich zu ersetzen. Regel 1 wird später für alte Hostrechner verwendet (nachdem ihnen eine PMAC zugewiesen worden ist) und sie beinhaltet das Ersetzen der Quellen-MAC-Adresse durch PMAC. Die Beschreibung hier betrifft neue Hostrechner (und die Regel 1' sollte angewendet werden). Nach dem Empfang eines unaufgeforderten ARP ruft die Steuereinheit die Quellenadresse aus dem Ethernet-Kopfbereich ab (bei der es sich um eine AMAC handelt) und prüft ihre Abgleichungstabelle (bei der es sich um eine Hash-Tabelle mit PMAC-Index handelt), wie in 5 angegeben ist. Bei neuen Hostrechnern wird die AMAC nicht in der Abgleichungstabelle gefunden und an dieser Stelle sendet die Steuereinheit ein Rundsende-ARP-Prüfsignal an alle Hostrechner, wobei sie die IP-Adresse und die AMAC-Adresse des Senders angibt, der das unaufgeforderte ARP gesendet hat.
-
Die Steuereinheit wartet für die Dauer eines vorher festgelegten Zeitintervalls (zum Beispiel zwei Minuten) auf Antworten. Wenn keine ARP-Antworten empfangen werden, geht die Steuereinheit davon aus, dass es keine Duplikate gibt, und weist dem neuen Hostrechner eine Kennung 0 eines privaten Netzwerks (PNID) zu. Wenn jedoch eine oder mehr ARP-Antworten empfangen werden, ruft die Steuereinheit die Ethernet-Quellenadresse (die gemäß der Regel 1 durch die Quellen-PMAC hätte ersetzt werden sollen) aus allen Antworten ab und erkennt die PNIDs, die allen PMACs entsprechen. Die Steuereinheit erzeugt dann eine eindeutige PNID (monoton aufsteigend) für den neuen Hostrechner.
-
Nachdem die PNID für einen neuen Hostrechner festgelegt worden ist, weist die Steuereinheit auf der Grundlage der Kennung (ID) der Vermittlungsstelle und der Nummer des Eingangsanschlusses der Vermittlungsstelle, an dem die unaufgeforderte ARP erzeugt worden ist, die entsprechende PMAC zu. Die Steuereinheit fügt diesen neuen Eintrag mit Angaben zu PMAC, AMAC, PNID, Vermittlungsstellen-ID und den Anschluss auch zu ihrer Abgleichungstabelle hinzu.
-
Bei Verwendung dieser zeitlichen Reihenfolge können Hostrechner oder VMs, die eine gesicherte/wiederhergestellte Anwendung aufweisen, nacheinander zu dem Netzwerk hinzugefügt werden und ihnen allen wird dieselbe PNID zugewiesen (wobei davon ausgegangen wird, dass alle von ihnen entweder über eine doppelte IP oder eine eindeutige IP verfügen).
-
Sobald die Steuereinheit einen neuen Eintrag zu ihrer Abgleichungstabelle hinzufügt (entweder für eine neue IP-Adresse oder eine für eine doppelte IP-Adresse), installiert sie die Regel 1 auf der Vermittlungsstelle für den neuen Hostrechner. Diese Regel leitet alle zukünftigen ARP-Anforderungen von diesem Hostrechner an die Steuereinheit um, nachdem der Kopfbereich entsprechend umgeschrieben worden ist (die Quellen-AMAC wird durch die Quellen-PMAC ersetzt). Wenn die Anzahl der Regeln auf einer Vermittlungsstelle nicht von Belang ist, kann diese Regel auf allen Rand-Vermittlungsstellen installiert werden. Dies hilft in Fällen, in denen ein vorhandener Hostrechner oder eine vorhandene VM von einer Vermittlungsstelle getrennt und zu einer anderen Vermittlungsstelle in demselben Netzwerk verbracht wird. Da die Regel AMAC durch PMAC im Ethernet-Kopfbereich eines unaufgeforderten ARP ersetzt, kann die Steuereinheit die PMAC in ihrer Abgleichungstabelle finden und führt keine Erkennung von Duplikaten durch.
-
7 ist ein Flussdiagramm, das Verfahren zeigt, die dazu dienen, das gleichzeitige Vorhandensein von mehreren Maschinen (zum Beispiel mehreren Hostrechnern und/oder mehreren virtuellen Maschinen) mit identischen Adressen in einem einzigen Netzwerk eines Rechenzentrums gemäß einer Ausführungsform der vorliegenden Erfindung zu ermöglichen. Der Schritt 702 beinhaltet das Zuweisen einer eindeutigen Pseudokennung zu jeder Maschine (zum Beispiel einem Hostrechner oder einer virtuellen Maschine) in dem Netzwerk, die zur Weiterleitung eines Pakets an eine Zielmaschine (Hostrechner oder virtuelle Maschine) verwendet werden kann.
-
Der Schritt 704 beinhaltet das Ersetzen einer Medienzugriffssteuerungsadresse eines Senders in einer Anforderung eines Adressenauflösungsprotokolls durch eine Pseudokennung des Senders an einer Vermittlungsstelle am Rand eines Netzwerks und das Umleiten der Anforderung an eine Netzwerksteuereinheit. Das Ersetzen einer Medienzugriffssteuerungsadresse eines Senders in einer Anforderung eines Adressenauflösungsprotokolls durch eine Pseudokennung des Senders kann das Ersetzen der Adresse durch Verwendung einer Top-of-Rack-(TOR)-Vermittlungsstelle oder durch Verwendung einer virtuellen Vermittlungsstelle beinhalten.
-
Der Schritt 706 beinhaltet das Abrufen einer Kennung eines privaten Netzwerks aus einer Abgleichungstabelle an der Steuereinheit auf der Grundlage der Pseudokennung des Senders und das Zurücksenden einer Pseudokennung für die Zieladresse auf der Grundlage der Kennung des privaten Netzwerks. Das Abrufen einer Kennung eines privaten Netzwerks aus einer Abgleichungstabelle auf der Grundlage der Pseudokennung des Senders kann das Abrufen der Kennung des privaten Netzwerks durch Verwendung einer Netzwerksteuereinheit beinhalten. Außerdem kann das Zurücksenden einer Pseudokennung für die Zieladresse kann das Zurücksenden einer Pseudokennung für die Zieladresse beinhalten, für die gerade eine Medienzugriffssteuerungsadresse angefordert wird.
-
Der Schritt 708 beinhaltet das Ersetzen der Pseudokennung der Zieladresse durch eine tatsächliche Kennung an einer Zielvermittlungsstelle am Rand eines Netzwerks, um das Paket an die Zielmaschine weiterzuleiten. In mindestens einer Ausführungsform der Erfindung erfolgt die Weiterleitung auf der Grundlage von Pseudokennungen. Darüber hinaus kann das Ersetzen der Pseudokennung der Zieladresse durch eine tatsächliche Kennung das Ersetzen der Kennung durch Verwendung einer Top-of-Rack-(TOR-)Zielvermittlungsstelle oder durch Verwendung einer virtuellen Vermittlungsstelle beinhalten.
-
Die in 7 gezeigten Verfahren können auch das Umleiten der Anforderung des Adressenauflösungsprotokolls an eine Netzwerksteuereinheit beinhalten.
-
Wie hier ebenfalls ausführlich beschrieben wird, kann in mindestens einer Ausführungsform der Erfindung das Zuweisen einer eindeutigen Pseudokennung zu jeder Maschine in dem Netzwerk das Zuweisen einer eindeutigen Pseudokennung zu jeder Maschine beinhalten, in welche entweder die Kennung eines Rechenzentrums, die Kennung eines POD, die Kennung einer Vermittlungsstelle, die Nummer eines Anschlusses, die Kennung einer virtuellen Maschine, die Kennung einer Replikation oder die Kennung einer Anwendung eingebettet ist. Eine Erscheinungsform der Erfindung kann darüber hinaus das Feststellen der Kennung einer Replik aus der Pseudokennung des Senders und das Zurücksenden einer Pseudokennung für die Zieladresse auf der Grundlage der Kennung der Replik beinhalten. Das Feststellen der Kennung einer Replik aus der Pseudokennung des Senders kann das Feststellen der Kennung der Replik über eine Steuereinheit beinhalten und das Zurücksenden einer Pseudokennung für die Zieladresse kann das Zurücksenden der Pseudokennung für die Zieladresse beinhalten, für die gerade eine Medienzugriffssteuerungsadresse angefordert wird. Ferner kann eine Erscheinungsform der Erfindung im Falle eines Fehlers oder Ausfalls das Verwenden der Kennung einer Anwendung in der Pseudokennung zum Abgleichen mit einer ähnlichen Anwendungskomponente in einem anderen replizierten Cluster und das Zurücksenden der Pseudokennung für die ähnliche Anwendungskomponente beinhalten, so dass Pakete statt an die fehlerhafte beziehungsweise ausgefallene Komponente an eine aktive Anwendungskomponente umgeleitet werden können.
-
Die in 7 gezeigten Verfahren können auch, wie hier beschrieben wird, das Bereitstellen eines Systems beinhalten, wobei das System bestimmte Software-Module enthält, wobei jedes der bestimmten Software-Module auf einem physisch greifbaren, rechnerlesbaren, beschreibbaren Speichermedium verkörpert ist. Alle Module (oder eine beliebige Teilgruppe der Module) können sich zum Beispiel auf demselben Medium befinden, oder jedes Modul kann sich auf einem anderen Medium befinden. Die Module können beliebige oder alle der in den Figuren gezeigten Komponenten beinhalten. In einer Erscheinungsform der Erfindung beinhalten die Module ein Steuereinheit-Modul, das zum Beispiel auf einem Hardware-Prozessor ausgeführt werden kann. Die Verfahrensschritte können dann mit Hilfe der bestimmten Software-Module des vorstehend beschriebenen Systems durchgeführt werden, welche auf einem Hardware-Prozessor ausgeführt werden. Überdies kann ein Rechnerprogrammprodukt ein physisch greifbares, rechnerlesbares, beschreibbares Speichermedium mit Code beinhalten, der so ausgelegt ist, dass er zur Durchführung von mindestens einem hier beschriebenen Verfahrensschritt, einschließlich der Bereitstellung des Systems mit den bestimmten Software-Modulen, ausgeführt wird.
-
Darüber hinaus können die in 7 gezeigten Verfahren mittels eines Rechnerprogrammprodukts realisiert werden, das von einem Rechner nutzbaren Programmcode enthalten kann, der in einem rechnerlesbaren Speichermedium in einem Datenverarbeitungssystem gespeichert ist, und wobei der von einem Rechner nutzbare Programmcode über ein Netzwerk von einem fernen Datenverarbeitungssystem heruntergeladen worden ist. In einer Erscheinungsform der Erfindung kann das Rechnerprogrammprodukt auch von einem Rechner nutzbaren Programmcode enthalten, der in einem rechnerlesbaren Speichermedium in einem Server-Datenverarbeitungssystem gespeichert ist, und wobei der von einem Rechner nutzbare Programmcode über ein Netzwerk auf ein fernes Datenverarbeitungssystem zur Verwendung in einem rechnerlesbaren Speichermedium mit dem fernen System heruntergeladen wird.
-
Wie der Fachmann verstehen wird, können Erscheinungsformen der vorliegenden Erfindung als System, Verfahren oder Rechnerprogrammprodukt realisiert werden. Folglich können Erscheinungsformen der vorliegenden Erfindung die Form einer ganz in Hardware realisierten Ausführungsform, einer ganz in Software realisierten Ausführungsform (einschließlich Firmware, residenter Software, Mikrocode usw.) oder einer Ausführungsform annehmen, die Software- und Hardware-Erscheinungsformen kombiniert, die hier alle allgemein als ”Schaltung”, ”Modul” oder ”System” bezeichnet werden können. Überdies können Erscheinungsformen der vorliegenden Erfindung die Form eines Rechnerprogrammprodukts annehmen, das auf einem rechnerlesbaren Datenträger verkörpert ist, auf dem rechnerlesbarer Programmcode verkörpert ist.
-
Eine Erscheinungsform der Erfindung oder von Elementen der Erfindung kann in Form von einer Vorrichtung realisiert werden, die einen Speicher und mindestens einen Prozessor enthält, der mit dem Speicher verbunden und in der Lage ist, beispielhafte Schritte des Verfahrens durchzuführen.
-
Ferner kann eine Erscheinungsform der vorliegenden Erfindung von Software Gebrauch machen, die auf einem Universalrechner oder einem Arbeitsplatzrechner ausgeführt wird. Bezug nehmend auf 8 könnte eine solche Realisierung zum Beispiel einen Prozessor 802, einen Speicher 804 und eine Eingabe-/Ausgabe-Schnittstelle verwenden, die zum Beispiel von einem Bildschirm 806 und einer Tastatur 808 gebildet wird. Der Begriff ”Prozessor” in der hier verwendeten Weise soll jede beliebige Verarbeitungseinheit, wie zum Beispiel eine Verarbeitungseinheit, die eine Zentraleinheit (central processing unit (CPU)) und/oder andere Formen von Verarbeitungsschaltungen enthält, beinhalten. Außerdem kann sich der Begriff ”Prozessor” auf mehr als einen einzelnen Prozessor beziehen. Der Begriff ””Speicher” soll einen Speicher beinhalten, der zu einem Prozessor oder einer CPU gehört, wie zum Beispiel einen Direktzugriffsspeicher (random access memory (RAM)), einen Nur-Lese-Speicher (read only memory (ROM)), eine feste Speichereinheit (zum Beispiel ein Festplattenlaufwerk), eine auswechselbare Speichereinheit (zum Beispiel eine Diskette), einen Flash-Speicher und dergleichen. Überdies soll die Bezeichnung ”Eingabe-/Ausgabe-Schnittstelle” in der hier verwendeten Weise zum Beispiel einen Mechanismus zur Eingabe von Daten in die Verarbeitungseinheit (zum Beispiel eine Maus) und einen Mechanismus zur Bereitstellung von Ergebnissen in Verbindung mit der Verarbeitungseinheit (zum Beispiel einen Drucker) beinhalten. Der Prozessor 802, der Speicher 804 und die Eingabe-/Ausgabe-Schnittstelle wie zum Beispiel der Bildschirm 806 und die Tastatur 808 können beispielsweise über den Bus 810 als Teil einer Datenverarbeitungseinheit 812 miteinander verbunden werden. Geeignete Verbindungen, zum Beispiel über den Bus 810, können auch einer Netzwerk-Schnittstelle 814 wie zum Beispiel einer Netzwerkkarte, die zum Bilden einer Schnittstelle zu einem Rechnernetzwerk zur Verfügung gestellt werden kann, und einer Datenträger-Schnittstelle 816 wie zum Beispiel einem Disketten- oder einem CD-ROM-Laufwerk, das zum Bilden einer Schnittstelle zu einem Datenträger 818 zur Verfügung gestellt werden kann, bereitgestellt werden.
-
Folglich kann Rechner-Software, die Befehle oder Code zur Durchführung der methodischen Vorgehensweisen der Erfindung, die hier beschrieben wird, enthält, in einer zugehörigen Speichereinheit (zum Beispiel einem ROM, einem Festspeicher oder einem auswechselbaren Speicher) gespeichert werden und, wenn sie zur Nutzung bereitsteht, teilweise oder ganz (beispielsweise in das RAM) geladen und von einer CPU ausgeführt werden. Eine solche Software könnte Firmware, residente Software, Mikrocode und dergleichen beinhalten, ist jedoch nicht darauf beschränkt.
-
Ein Datenverarbeitungssystem, das zur Speicherung und/oder Ausführung von Programmcode geeignet ist, enthält mindestens einen Prozessor 802, der über einen Systembus 810 direkt oder indirekt mit Speicherelementen 804 verbunden ist. Die Speicherelemente können einen lokalen Speicher, der während der tatsächlichen Ausführung des Programmcodes verwendet wird, einen Massenspeicher und Cachespeicher beinhalten, die eine zeitweilige Speicherung von mindestens einem Teil des Programmcodes ermöglichen, um die Häufigkeit zu verringern, mit der Code während der Ausführung aus dem Massenspeicher abgerufen werden muss.
-
Eingabe-/Ausgabe- oder E/A-Einheiten (einschließlich Tastaturen 808, Bildschirme 806, Zeigeeinheiten und dergleichen, jedoch nicht darauf beschränkt) können entweder direkt (wie zum Beispiel über den Bus 810) oder über zwischengeschaltete E/A-Steuereinheiten (die aus Gründen der Übersichtlichkeit weggelassen wurden) mit dem System verbunden werden.
-
Netzwerkadapter wie zum Beispiel die Netzwerk-Schnittstelle 814 können ebenfalls mit dem System verbunden werden, damit das Datenverarbeitungssystem mit anderen Datenverarbeitungssystemen oder fernen Druckern oder Speichereinheiten über zwischengeschaltete private oder öffentliche Netzwerke verbunden werden kann. Modems, ein Kabelmodem und Ethernet-Karten sind nur einige der aktuell verfügbaren Arten von Netzwerkadaptern.
-
In der hier verwendeten Weise, die Ansprüche eingeschlossen, beinhaltet ein ”Server” ein physisches Datenverarbeitungssystem (zum Beispiel das in 8 gezeigte System 812), das ein Server-Programm ausführt. Es versteht sich, dass ein solcher physischer Server einen Bildschirm und eine Tastatur beinhalten kann oder auch nicht beinhalten kann.
-
Wie erwähnt wurde, können Erscheinungsformen der vorliegenden Erfindung die Form eines Rechnerprogrammprodukts annehmen, das auf einem rechnerlesbaren Datenträger verkörpert ist, auf dem rechnerlesbarer Programmcode verkörpert ist. Auch kann jede beliebige Kombination aus einem oder mehreren rechnerlesbaren Datenträgern verwendet werden. Der rechnerlesbare Datenträger kann ein rechnerlesbarer Signaldatenträger oder ein rechnerlesbares Speichermedium sein. Ein rechnerlesbares Speichermedium kann zum Beispiel ein(e) elektronische(s), magnetische(s), optische(s), elektromagnetische(s), Infrarot- oder Halbleitersystem, -vorrichtung oder -einheit oder jede beliebige geeignete Kombination des Vorstehenden, ohne darauf beschränkt zu sein, sein. Zu konkreteren Beispielen (wobei die Liste keinen Anspruch auf Vollständigkeit erhebt) für das rechnerlesbare Speichermedium gehören etwa: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine portable Computer-Diskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compact-Disk-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder jede beliebige geeignete Kombination des Vorstehenden. Im Rahmen dieses Schriftstücks kann ein rechnerlesbares Speichermedium jedes physisch greifbare Medium sein, das ein Programm zur Verwendung durch ein Befehlsausführungssystem, eine Befehlsausführungsvorrichtung oder -einheit oder zur Verwendung in Verbindung mit einem Befehlsausführungssystem, einer Befehlsausführungsvorrichtung oder -einheit enthalten oder speichern kann.
-
Ein rechnerlesbarer Signaldatenträger kann ein übertragenes Datensignal mit einem darin verkörperten rechnerlesbaren Programmcode, beispielsweise in einem Basisband oder als Teil einer Trägerwelle, enthalten. Solch ein übertragenes Signal kann eine beliebige einer Vielzahl von Formen einschließlich elektromagnetischer, optischer Formen oder jede beliebige geeignete Kombination dieser Formen, ohne darauf beschränkt zu sein, annehmen. Bei einem rechnerlesbaren Signaldatenträger kann es sich um jeden beliebigen rechnerlesbaren Datenträger handeln, der kein rechnerlesbares Speichermedium ist und der ein Programm zur Verwendung durch oder zur Verwendung in Verbindung mit einem Befehlsausführungssystem, einer Befehlsausführungsvorrichtung oder -einheit übertragen, weiterleiten oder transportieren kann.
-
Auf einem rechnerlesbaren Datenträger enthaltener Programmcode kann mittels eines geeigneten Mediums einschließlich drahtloser Kabel, drahtgebundener Kabel, Lichtwellenleiterkabel, Hochfrequenz (HF) usw., ohne auf diese beschränkt zu sein, oder mittels jeder beliebigen geeigneten Kombination des Vorstehenden übertragen werden.
-
Rechner-Programmcode zur Durchführung von Operationen für Erscheinungsformen der vorliegenden Erfindung kann in jeder beliebigen Kombination aus mindestens einer Programmiersprache einschließlich einer objektorientierten Programmiersprache, wie beispielsweise Java, Smalltalk, C++ oder dergleichen, und herkömmlichen prozeduralen Programmiersprachen wie beispielsweise der Programmiersprache ”C” oder ähnlichen Programmiersprachen geschrieben sein. Die Ausführung des Programmcodes kann vollständig auf dem Rechner des Benutzers, teilweise auf dem Rechner des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Rechner des Benutzers und teilweise auf einem fernen Rechner oder vollständig auf dem fernen Rechner oder Server erfolgen. Im letzteren Szenario kann der ferne Rechner mit dem Rechner des Benutzers über jede beliebige Art eines Netzwerks einschließlich eines lokalen Netzwerks (LAN) oder eines Weitverkehrsnetzes (WAN) verbunden sein, oder die Verbindung kann zu einem externen Rechner (zum Beispiel über das Internet mittels eines Internet-Diensteanbieters) hergestellt werden.
-
Erscheinungsformen der vorliegenden Erfindung werden hier mit Bezug auf Darstellungen in Flussdiagrammen und/oder Blockschaltbilder beziehungsweise Blockdiagramme von Verfahren, Vorrichtungen (Systemen) und Rechnerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Darstellungen in den Flussdiagrammen und/oder der Blockschaltbilder sowie Kombinationen aus Blöcken in den Darstellungen der Flussdiagramme und/oder den Blockschaltbildern mittels Rechnerprogrammbefehlen realisiert werden können. Diese Rechnerprogrammbefehle können einem Prozessor eines Universalrechners, eines Rechners für spezielle Anwendungen oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine so zu erzeugen, dass die Befehle, die über den Prozessor des Rechners oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel zur Realisierung der Funktionen/Vorgänge erzeugen, die in dem Block oder den Blöcken der Flussdiagramme und/oder der Blockschaltbilder angegeben sind.
-
Diese Rechnerprogrammbefehle können auch auf einem rechnerlesbaren Datenträger gespeichert sein, der einen Rechner, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anweisen kann, auf eine bestimmte Art und Weise zu funktionieren, so dass die auf dem rechnerlesbaren Datenträger gespeicherten Befehle einen Herstellungsgegenstand erzeugen, der Befehle enthält, die die Funktion/den Vorgang realisieren, welche beziehungsweise welcher in dem Block oder den Blöcken der Flussdiagramme und/oder der Blockschaltbilder angegeben ist. Eine Erscheinungsform der Erfindung enthält folglich einen Herstellungsgegenstand, der rechnerlesbare Befehle physisch verkörpert, die, wenn sie ausgeführt werden, einen Rechner veranlassen, eine Vielzahl von Verfahrensschritten, die hier beschrieben, durchzuführen.
-
Die Rechnerprogrammbefehle können auch auf einen Rechner, eine andere programmierbare Datenverarbeitungsvorrichtung oder auf andere Einheiten geladen werden, um die Durchführung einer Reihe von Betriebsschritten auf dem Rechner, einer anderen programmierbaren Vorrichtung oder auf anderen Einheiten zu bewirken und dabei einen computerimplementierten Prozess so zu erzeugen, dass die Befehle, die auf dem Rechner oder einer anderen programmierbaren Vorrichtung ausgeführt werden, Prozesse zur Realisierung der Funktionen/Vorgänge ermöglichen, die in dem Block oder den Blöcken der Flussdiagramme und/oder der Blockschaltbilder angegeben sind.
-
Die Flussdiagramme und die Blockschaltbilder in den Figuren zeigen die Architektur, die Funktionalität und die Betriebsweise von möglichen Realisierungen von Systemen, Verfahren und Rechnerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In dieser Hinsicht kann jeder Block in den Flussdiagrammen oder den Blockschaltbildern ein Modul, eine Komponente, ein Segment oder einen Codeabschnitt darstellen, der/die/das mindestens einen ausführbaren Befehl zur Realisierung der angegebenen logischen Funktion(en) aufweist. Es sei auch angemerkt, dass die in dem Block angegebenen Funktionen in manchen alternativen Ausführungsarten nicht in der in den Figuren angegebenen Reihenfolge auftreten können. In Abhängigkeit von der mit ihnen verbundenen Funktionalität können beispielsweise zwei Blöcke, die als aufeinanderfolgende Blöcke dargestellt sind, tatsächlich weitgehend gleichzeitig ausgeführt werden, oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden. Man wird auch feststellen, dass jeder Block der Blockschaltbilder und/oder der Darstellung in den Flussdiagrammen sowie Kombinationen aus Blöcken in den Blockschaltbildern und/oder der Darstellung in den Flussdiagrammen von Systemen, die auf Hardware für spezielle Anwendungen beruhen und die angegebenen Funktionen oder Vorgänge durchführen, oder von Kombinationen aus Hardware für spezielle Anwendungen und Rechnerbefehlen realisiert werden können.
-
Es sei angemerkt, dass beliebige der hier beschriebenen Verfahren einen zusätzlichen Schritt des Bereitstellens eines Systems beinhalten können, das bestimmte Software-Module aufweist, die auf einem rechnerlesbaren Speichermedium verkörpert sind; die Module können zum Beispiel beliebige oder alle der hier ausführlich beschriebenen Komponenten beinhalten. Die Verfahrensschritte können dann mit Hilfe der bestimmten Software-Module und/oder Teilmodule des vorstehend beschriebenen Systems durchgeführt werden, welche auf einem Hardware-Prozessor 802 ausgeführt werden. Überdies kann ein Rechnerprogrammprodukt ein rechnerlesbares Speichermedium mit Code beinhalten, der so ausgelegt ist, dass er zur Ausführung von mindestens einem hier beschriebenen Verfahrensschritt, einschließlich der Bereitstellung des Systems mit den bestimmten Software-Modulen, realisiert ist.
-
In jedem Fall sollte es sich verstehen, dass die hier veranschaulichten Komponenten in verschiedenen Formen von Hardware, Software oder Kombinationen aus Hardware und Software realisiert werden können; zum Beispiel als eine oder mehrere anwendungsspezifische integrierte Schaltungen (ASICS), Funktionsschaltungen, als entsprechend programmierter digitaler Universalrechner mit zugehörigem Speicher und dergleichen. In Anbetracht der Lehren der hier aufgezeigten Erfindung ist ein Fachmann auf dem verwandten Gebiet der Technik in der Lage, auch andere Realisierungen der Komponenten der Erfindung in Betracht zu ziehen.
-
Die hier verwendete Terminologie dient lediglich dazu, bestimmte Ausführungsformen zu beschreiben und ist nicht als Einschränkung der Erfindung zu verstehen. Die Singular-Formen ”ein”, ”eine” und ”der”, ”die”, ”das” sollen in der hier verwendeten Weise auch die Plural-Formen einschließen, sofern der Kontext nicht eindeutig etwas anderes angibt. Des Weiteren versteht es sich, dass die Begriffe ”weist auf” und/oder ”aufweisend”, wenn sie in dieser Beschreibung verwendet werden, das Vorhandensein von angegebenen Merkmalen, ganzen Zahlen, Schritten, Operationen, Elementen und/oder Komponenten bezeichnen, das Vorhandensein oder das Hinzufügen von einem anderen/weiteren Merkmal, einer ganzen Zahl, einem Schritt, einer Operation, einem Element, einer Komponente und/oder einer Gruppe der Vorgenannten jedoch nicht ausschließen.
-
Die entsprechenden Strukturen, Materialien, Vorgänge und Äquivalente aller Mittel oder Schritt-plus-Funktion-Elemente in den nachstehenden Ansprüchen sollen jedwede Struktur, jedwedes Material oder jedweden Vorgang zur Ausführung der Funktion in Kombination mit anderen beanspruchten Elementen, die im Einzelnen beansprucht werden, beinhalten. Die Beschreibung der vorliegenden Erfindung erfolgte zum Zweck der Veranschaulichung und Erläuterung, erhebt jedoch keinen Anspruch auf Vollständigkeit und ist auch nicht als auf die Erfindung in der offengelegten Form beschränkt zu verstehen. Viele Ab- und Veränderungen sind für den Fachmann erkennbar, ohne vom Umfang und Wesen der Erfindung abzuweichen. Die Ausführungsform wurde gewählt und beschrieben, um die Grundgedanken der Erfindung und die praktische Anwendung bestmöglich zu erklären und um anderen Fachleuten das Verständnis der Erfindung hinsichtlich verschiedener Ausführungsformen mit verschiedenen Änderungen, wie sie für die entsprechende vorgesehene Verwendung geeignet sind, zu ermöglichen.
-
Mindestens eine Erscheinungsform der vorliegenden Erfindung kann eine vorteilhafte Wirkung haben, wie zum Beispiel, dass sie es ermöglicht, dass Hostrechner oder virtuelle Maschinen mit identischen Adressen der Ebene 2 und der Ebene 3 in einem einzigen Netzwerk eines Rechenzentrums gleichzeitig vorhanden sind und eine Ost-West-Kommunikation zwischen Gleichgestellten (peers), die zu demselben replizierten Cluster gehören, eine Ost-West-Kommunikation mit Gleichgestellten in dem Hostrechner-Netzwerk sowie eine Nord-Süd-Kommunikation mit externen Clients zulassen.
-
Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung erfolgten zum Zweck der Veranschaulichung, erheben jedoch keinen Anspruch auf Vollständigkeit und sind auch nicht als auf die offengelegten Ausführungsformen beschränkt zu verstehen. Viele Ab- und Veränderungen sind für den Fachmann erkennbar, ohne vom Umfang und Wesen der beschriebenen Ausführungsformen abzuweichen. Die hier verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder die technische Verbesserung gegenüber auf dem Markt angetroffener Technologien am besten zu erklären oder um anderen Fachleuten das Verständnis der hier offengelegten Ausführungsformen zu ermöglichen.