-
HINTERGRUND
-
Heute führen viele Unternehmen Anwendungen auf virtuellen Maschinen (VMs) aus. Die Mobilität von VMs, sowohl bei laufendem Betrieb als auch offline, kann enorme Flexibilität bieten und auch die Betriebskosten senken. Jedoch ist die Migration von VMs sowohl bei laufendem Betrieb als auch offline aufgrund der Schwierigkeiten, die mit einer teilnetzübergreifenden Migration bei laufendem Betrieb und offline verbunden sind, üblicherweise nach wie vor auf die Migration innerhalb eines lokalen Netzwerks beschränkt. Diese Schwierigkeiten haben ihren Ursprung hauptsächlich in der hierarchischen Adressierung, die von verschiedenen Routing-Protokollen der Schicht 3 verwendet wird. Für eine rechenzentrumübergreifende Mobilität von VMs setzen Virtualisierungsanbieter gewöhnlich voraus, dass die Netzwerk-Konfiguration des neuen Rechenzentrums, in das ein VM migriert, ähnlich der des alten Rechenzentrums sein muss. Dies schränkt eine weit verbreitete Nutzung der VM-Migration über Netzwerke von Rechenzentren hinweg erheblich ein.
-
Für eine Offline-Migration können einige Einschränkungen überwunden werden, indem IP-Adressen für die migrierten VMs neu konfiguriert werden. Doch ist selbst dieser Aufwand nicht unerheblich und zeitaufwendig, da diese IP-Adressen in verschiedenen Konfigurationsdateien in diesen VMs eingebettet sind.
-
Die Veröffentlichung „Portland: A Scalable Fault-Tolerant Layer 2 Data Center Network Fabric“ offenbart die folgenden Ethernet kompatiblen Protokollen für Routing, Weiterleitung und Adressenauflösung, die für Datencenter angepasst sind (MYSORE R.N. [u.a.]: Portland: A Scalable Fault-Tolerant Layer 2 Data Center Network Fabric. SIGCOMM '09, August 2009, S.39-50).
-
Die Veröffentlichung „Addressing the Scalability of Ethernet with MOOSE“ offenbart ein mehrstufiges nach Quelle angeordnetes skalierbares Ethernet und eine Switch Architektur, die funktionsmäßig in der Lage ist, am Platz eine MAC Adresse umzuschreiben, um einem Adressenraum eine Hierarchie ohne Neukonfiguration oder Modifikation von angeschlossenen Geräten aufzuerlegen (SCOTT M. [u.a.]: Addressing the Scalability of Ethernet with MOOSE. ITC '21, 2009, S.1-8).
-
Die
WO 2011/078861 A1 offenbare eine Computerplattform, die funktionsmäßig in der Lage ist, eine hardwareunterstützte Paketverarbeitung zu unterstützen, um Pakete in einer geordneten Sequenz effizient zu filtern und zu verlegen, und zwar über ein virtuelles Netzwerk von Inline-Appliances und virtuellen Maschinen über eine Netzwerkschnittstellenkarte und eine andere Plattform hardware.
-
Die
US 2011/0090911 A1 offenbart ein Verfahren zum Ermöglichen der Nutzung einer Ressource eines Datenzentrums als Erweiterung eines Kundennetzwerks eines Kunden, umfassend: an einem Weiterleitungselement das Empfangen eines Pakets, das für eine unter einer Edge-Domain des Datenzentrums gehostete, virtuelle Maschine bestimmt ist, wobei die Edge-Domain eine Vielzahl von VLANs für eine respektive Vielzahl von Kundennetzwerken unterstützt, wobei das Paket eine Kennung des Kundennetzwerks und eine MAC-Adresse der virtuellen Maschine umfasst; das Bestimmen einer VLAN-ID des VLAN für das Kundennetzwerk in der Edge-Domain unter Verwendung der Kennung des Kundennetzwerks und der MAC-Adresse der virtuellen Maschine, wobei das Bestimmen der VLAN-ID des VLAN für das Kundennetzwerk in der Edge-Domain umfasst: Bestimmen einer Kennung der Edge-Domain unter Verwendung der MAC-Adresse der virtuellen Maschine; und Bestimmen der VLAN-ID des VLAN für das Kundennetzwerk in der Edge-Domain unter Verwendung der Kennung des Kundennetzwerks und der Kennung der Edge-Domain; Aktualisieren des Pakets zur Aufnahme der VLAN-ID des VLAN für das Kundennetzwerk in der Edge-Domain; und Verbreiten des aktualisierten Pakets vom Weiterleitungselement zur virtuellen Maschine.
-
Die
US 2011/0090911 A1 offenbart ferner ein Weiterleitungselement zum Ermöglichen der Nutzung einer Ressource eines Datenzentrums als Erweiterung eines Kundennetzwerks eines Kunden, umfassend: Mittel, um an einem Weiterleitungselement ein Paket zu empfangen, das für eine unter einer Edge-Domain des Datenzentrums gehostete, virtuelle Maschine bestimmt ist, wobei die Edge-Domain eine Vielzahl von VLANs für eine respektive Vielzahl von Kundennetzwerken unterstützt, wobei das Paket eine Kennung des Kundennetzwerks und eine MAC-Adresse der virtuellen Maschine umfasst: Mittel für das das Bestimmen einer VLAN-ID des VLAN für das Kundennetzwerk in der Edge-Domain unter Verwendung der Kennung des Kundennetzwerks und der MAC-Adresse der virtuellen Maschine, wobei das Bestimmen der VLAN-ID des VLAN für das Kundennetzwerk in der Edge-Domain umfasst: Bestimmen einer Kennung der Edge-Domain unter Verwendung der MAC-Adresse der virtuellen Maschine; und Bestimmen der VLAN-ID des VLAN für das Kundennetzwerk in der Edge-Domain unter Verwendung der Kennung des Kundennetzwerks und der Kennung der Edge-Domain; Mittel für das Aktualisieren des Pakets zur Aufnahme der VLAN-ID des VLAN für das Kundennetzwerk in der Edge-Domain; und Mittel für das Verbreiten des aktualisierten Pakets vom Weiterleitungselement zur virtuellen Maschine.
-
Die
US 2011/0090911 A1 offenbart ferner ein Netzwerk zum Ermöglichen der Nutzung einer Ressource eines Datenzentrums als Erweiterung eines Kundennetzwerks eines Kunden, umfassend: Eine Vielzahl von Edge-Domains des Datenzentrums, wobei jede Edge-Domain mindestens einen physischen Server umfasst, der konfiguriert ist für das Hosten mindestens einer virtuellen Maschine für deren Nutzung durch mindestens einen Kunden, wobei jede Edge-Domain dafür konfiguriert ist, ein VLAN für jedes Kundennetzwerk zu unterstützen, wobei darin eine virtuelle Maschine zur Verfügung gestellt wird; eine Vielzahl der obig beschriebenen Weiterleitungselementen; und eine Kern-Domain des Datenzentrums, wobei die Kern-Domain eine Vielzahl von Switches umfasst, die konfiguriert sind für das Weiterleiten von Paketen zwischen den Weiterleitungselementen.
-
Die
US 2011/0075674 A1 offenbart ein Verfahren zum Integrieren von Ressourcen in ein privates Unternehmensnetzwerk, wobei das Verfahren umfasst: Einrichten eines logischen Kunden-Randrouters in einem Cloud-Datenzentrum in der Cloud-Topologie; Bereitstellen eines sich innerhalb des privaten Unternehmensnetzwerks befindlichen IP-Teilnetzwerks an einen virtuellen Stub, wobei der virtuelle Stub ein logisches Netzwerk in der Cloud-Topologie mit dem privaten Unternehmensnetzwerk zugeteilte Ressourcen, welches von Cloud-Ressourcen außerhalb des virtuellen Stubs isoliert sind, umfasst; Zuteilen einer IP-Adresse von dem IP-Teilnetzwerk an jede Ressource innerhalb des virtuellen Stubs; Bereitstellen eines virtuellen Routers an einem Anbieter-Randrouter in einer Dienstanbieterschnittstelle, um diesen über die Schnittstelle mit einem logischen Kunden-Randrouter eines privaten Unternehmensnetzwerks zu verbinden; Einzufügen, in einer virtuellen Routing- und Weiterleitungstabelle am Cloud-Datenzentrum, eines Routing-Eintrags für das IP-Teilnetzwerk; Verteilen des Routing-Eintrags an alle Kunden-Randrouter in dem privaten Unternehmensnetzwerk; und Hinzufügen eines Standardeintrags in einem Verzeichnisserver an dem Cloud-Datenzentrum, wobei der Standardeintrag alle Unternehmensadressen auf eine Standort-IP-Adresse und eine Cloud-IP-Adresse des logischen Kunden-Randrouters in dem Cloud-Datenzentrum abbildet.
-
Die
US 2011/0075674 A1 offenbart ferner ein System, welches Ressourcen in einer Cloud-Technologie in ein privates Unternehmensnetzwerk integriert, wobei das System umfasst: einen virtuellen Stub mit einem logischen Netzwerk in der Cloud-Topologie, umfassend Ressourcen, die einem privaten Unternehmensnetzwerk zugeordnet und von Cloud-Ressourcen außerhalb des virtuellen Stubs isoliert sind, wobei der virtuelle Stub umfasst: Eine Reihe von Servern, umfassend: eine virtuelle Maschine mit Ressourcen auf dem dem privaten Unternehmensnetzwerk zugeordneten Server, und einen Hypervisor, welcher die virtuelle Maschine, einen Datenzentrum-Verbindungsschalter, welcher betriebsbereit an mindestens die Reihe von Servern gekoppelt ist, und ein Cloud-Datenzentrum, welches an den Datenzentrum-Verbindungsschalter angeschlossen ist, wobei das Cloud-Datenzentrum den virtuellen Stub mit dem privaten Unternehmensnetzwerk verbindet; und ein Dienstanbieter-Netzwerk zum Verbinden des virtuellen Stubs mit dem privaten Unternehmensnetzwerk.
-
Die
US 2011/0317703 A1 offenbart eine Netzwerkkomponente, die einen Empfänger umfasst, der konfiguriert ist, um einen ausgehenden Frame von einem lokalen Host zu empfangen, eine Logikschaltung, die konfiguriert ist, um eine Zieladresse für eine Zieladresse im ausgehenden Frames zu einer Zieladresse für eine Zielposition des Zielhosts abzubilden und zu kapseln Wobei der ausgehende Rahmen die Zieladresse für den Zielort verwendet und einen Sender, der so konfiguriert ist, dass er einen vorverkapselten ausgehenden Frame von einem lokalen Switch empfängt und den vorverkapselten ausgehenden Frame an ein Gateway an einem Zielort sendet, wobei der Sender Frames, die von lokalen Switches empfangen werden, nicht einkapselt und einen eingehenden Frame von einem entfernten Gateway, das für lokale Hosts bestimmt ist, decapsuliert.
-
KURZDARSTELLUNG
-
Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren zur Migration einer virtuellen Maschine zwischen Rechenzentren zu schaffen, wobei die VM vor und nach der Migration für externe Kunden der Rechenzentren unter derselben internen IP-Adresse adressierbar ist und keine neue Konfigurierung von IP- und MAC-Adressräumen in den Rechenzentren notwendig ist. Die der Erfindung zugrunde liegenden Aufgaben werden jeweils mit den Merkmalen der unabhängigen Patentansprüche gelöst. Ausführungsformen der Erfindung sind Gegenstand der abhängigen Patentansprüche.
-
Zusammenfassend stellt ein Aspekt der Erfindung ein Verfahren bereit, das aufweist: Kennzeichnen einer virtuellen Maschine für die Migration von einem ersten Rechenzentrum in ein zweites Rechenzentrum, wobei die virtuelle Maschine eine echte Kennung enthält; Zuweisen einer Pseudokennung zu der virtuellen Maschine; Abbilden der Pseudokennung auf die echte Kennung an einer Steuereinheit des ersten Rechenzentrums; Ersetzen der echten Kennung in einem Datenpaket durch die Pseudokennung für eine Routing-Task; Aufrechterhalten des Datenaustauschs zwischen der Steuereinheit des ersten Rechenzentrums und einer Steuereinheit des zweiten Rechenzentrums und Synchronisieren der Steuereinheiten, um einen korrekten Standort der virtuellen Maschine zu aktualisieren; und Migrieren der virtuellen Maschine von dem ersten Rechenzentrum in das zweite Rechenzentrum.
-
Ein weiterer Aspekt der Erfindung stellt eine Vorrichtung bereit, die aufweist: mindestens einen Prozessor; und ein von einem Computer lesbares Speichermedium, das über damit realisierten, von einem Computer lesbaren Programmcode verfügt, der von dem mindestens einen Prozessor ausgeführt werden kann, wobei der von einem Computer lesbare Programmcode aufweist: von einem Computer lesbaren Programmcode, der so konfiguriert ist, dass er eine virtuelle Maschine für die Migration von einem ersten Rechenzentrum in ein zweites Rechenzentrum kennzeichnet, wobei die virtuelle Maschine eine echte Kennung enthält; von einem Computer lesbaren Programmcode, der so konfiguriert ist, dass er der virtuellen Maschine eine Pseudokennung zuweist; von einem Computer lesbaren Programmcode, der so konfiguriert ist, dass er die Pseudokennung an einer Steuereinheit des ersten Rechenzentrums auf die echte Kennung abbildet; von einem Computer lesbaren Programmcode, der so konfiguriert ist, dass er die echte Kennung in einem Datenpaket durch die Pseudokennung für eine Routing-Task ersetzt; von einem Computer lesbaren Programmcode, der so konfiguriert ist, dass er den Datenaustausch zwischen der Steuereinheit des ersten Rechenzentrums und einer Steuereinheit des zweiten Rechenzentrums aufrechterhält und die Steuereinheiten synchronisiert, um einen korrekten Standort der virtuellen Maschine zu aktualisieren; und von einem Computer lesbaren Programmcode, der so konfiguriert ist, dass er die virtuelle Maschine von dem ersten Rechenzentrum in das zweite Rechenzentrum migriert.
-
Ein zusätzlicher Aspekt der Erfindung stellt ein Computerprogrammprodukt bereit, das aufweist: ein von einem Computer lesbares Speichermedium, das über damit realisierten, von einem Computer lesbaren Programmcode verfügt, wobei der von einem Computer lesbare Programmcode aufweist: von einem Computer lesbaren Programmcode, der so konfiguriert ist, dass er eine virtuelle Maschine für die Migration von einem ersten Rechenzentrum in ein zweites Rechenzentrum kennzeichnet, wobei die virtuelle Maschine eine echte Kennung enthält; von einem Computer lesbaren Programmcode, der so konfiguriert ist, dass er der virtuellen Maschine eine Pseudokennung zuweist; von einem Computer lesbaren Programmcode, der so konfiguriert ist, dass er die Pseudokennung an einer Steuereinheit des ersten Rechenzentrums auf die echte Kennung abbildet; von einem Computer lesbaren Programmcode, der so konfiguriert ist, dass er die echte Kennung in einem Datenpaket durch die Pseudokennung für eine Routing-Task ersetzt; von einem Computer lesbaren Programmcode, der so konfiguriert ist, dass er den Datenaustausch zwischen der Steuereinheit des ersten Rechenzentrums und einer Steuereinheit des zweiten Rechenzentrums aufrechterhält und die Steuereinheiten synchronisiert, um einen korrekten Standort der virtuellen Maschine zu aktualisieren; und von einem Computer lesbaren Programmcode, der so konfiguriert ist, dass er die virtuelle Maschine von dem ersten Rechenzentrum in das zweite Rechenzentrum migriert.
-
Zum besseren Verständnis von beispielhaften Ausführungsformen der Erfindung, zusammen mit anderen und weiteren Merkmalen und Vorteilen der Erfindung, wird Bezug auf die folgende Beschreibung, in Verbindung mit den beiliegenden Zeichnungen betrachtet, genommen, und der Umfang der beanspruchten Ausführungsformen der Erfindung wird in den beigefügten Ansprüchen aufgezeigt.
-
Figurenliste
-
- 1 veranschaulicht schematisch eine Systemarchitektur.
- 2 zeigt einen Prozess allgemeiner auf, der dazu dient, die Migration von virtuellen Maschinen zu vereinfachen.
- 3 zeigt ein Computersystem.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Man wird ohne Weiteres verstehen, dass die Komponenten der Ausführungsformen der Erfindung, die hier allgemein beschrieben und in den Figuren veranschaulicht sind, neben den beschriebenen beispielhaften Ausführungsformen in einer großen Vielzahl von unterschiedlichen Konfigurationen angeordnet werden und ausgestaltet sein können. Folglich ist die folgende ausführlichere Beschreibung der Ausführungsformen der Erfindung, die in den Figuren dargestellt sind, nicht als Einschränkung des Umfangs der Ausführungsformen der Erfindung, wie beansprucht, zu verstehen, sondern hat für beispielhafte Ausführungsformen der Erfindung lediglich repräsentativen Charakter.
-
Der Verweis in dieser gesamten Beschreibung auf „eine einzelne Ausführungsform“, „eine einzige Ausführungsform“ oder „eine Ausführungsform“ (oder dergleichen) bedeutet, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft, die in Verbindung mit der Ausführungsform beschrieben wird, in mindestens einer einzigen Ausführungsform der Erfindung enthalten ist. Folglich beziehen sich Formulierungen wie „in einer einzelnen Ausführungsform“, „in einer einzigen Ausführungsform“ oder „in einer Ausführungsform“ oder dergleichen an verschiedenen Stellen in dieser gesamten Beschreibung nicht unbedingt auf dieselbe Ausführungsform.
-
Überdies können die beschriebenen Merkmale, Strukturen oder Eigenschaften auf jede geeignete Art und Weise in mindestens einer einzelnen Ausführungsform kombiniert werden. In der folgenden Beschreibung werden zahlreiche ganz bestimmte Einzelheiten aufgezeigt, um ein tiefgreifendes Verständnis von Ausführungsformen der Erfindung zu vermitteln. Der Fachmann erkennt jedoch, dass die verschiedenen Ausführungsformen der Erfindung ohne mindestens eine der ganz bestimmten Einzelheiten oder aber mit anderen Verfahren, Komponenten, Materialien und so weiter in die Praxis umgesetzt werden können. In anderen Fällen werden bekannte Strukturen, Materialien oder Operationen nicht ausführlich gezeigt oder beschrieben, um bei Aspekten der Erfindung keine Unklarheit aufkommen zu lassen.
-
Die Beschreibung wendet sich nun den Figuren zu. Die veranschaulichten Ausführungsformen der Erfindung lassen sich am besten durch Bezugnahme auf die Figuren verstehen. Die folgende Beschreibung hat lediglich Beispielcharakter und stellt einfach bestimmte ausgewählte Ausführungsformen der Erfindung dar, die hier beansprucht werden.
-
Es sei angemerkt, dass der Ablaufplan und die Blockschaubilder in den Figuren die Architektur, die Funktionalität und die Betriebsweise von möglichen Ausführungsarten von Systemen, Vorrichtungen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der Erfindung zeigen. In dieser Hinsicht kann jeder Block in dem Ablaufplan oder in den Blockschaubildern ein Modul, ein Segment oder einen Teil von Code darstellen, das beziehungsweise der mindestens eine ausführbare Instruktion zur Ausführung der angegebenen logischen Funktion(en) aufweist. Es sei auch angemerkt, dass die in dem Block angegebenen Funktionen in manchen alternativen Ausführungsarten mitunter in einer anderen als 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 Blockschaubilder und/oder der Darstellung in dem Ablaufplan sowie Kombinationen aus Blöcken in den Blockschaubildern und/oder der Darstellung in dem Ablaufplan von Systemen, die auf Spezial-Hardware beruhen und die angegebenen Funktionen oder Vorgänge durchführen, oder von Kombinationen aus Spezial-Hardware und Computer-Instruktionen ausgeführt werden können.
-
Die Offenbarung wendet sich nun 1 zu. Es dürfte als vorteilhaft erkannt werden, dass die hier grob veranschaulichten Prozesse, Anordnungen und Produkte auf oder gemäß praktisch jedem geeigneten Computersystem oder jeder Gruppe von Computersystemen durchgeführt beziehungsweise umgesetzt werden können, zu denen, um ein der Veranschaulichung dienendes und nicht als Einschränkung zu verstehendes Beispiel zu nennen, ein System oder ein Server wie beispielsweise das bei 12' in 2 gezeigte System beziehungsweise der bei 12' in 2 gezeigte Server gehören können. Gemäß einer beispielhaften Ausführungsform können die meisten, wenn nicht alle der Prozessschritte, Komponenten und Ausgaben, die mit Bezug auf 1 erörtert werden, mit Hilfe von einer Verarbeitungseinheit oder mit Hilfe von Verarbeitungseinheiten und Systemspeicher, wie beispielsweise der - beziehungsweise demjenigen, die bei 16' beziehungsweise 28' in 2 angegeben sind, durchgeführt oder verwendet werden, egal, ob auf einem Server-Computer, einem Client-Computer, einem Knoten-Computer in einem verteilten Netzwerk oder einer beliebigen Kombination daraus.
-
Gemäß mindestens einer einzelnen Ausführungsform der Erfindung wird hier allgemein eine Anordnung betrachtet, die dazu dient, ein Netzwerk-Fabric bereitzustellen, das eine schichtunabhängige und nahtlose Mobilität von VMs im laufenden Betrieb und offline über mehrere Rechenzentren hinweg ermöglicht. Dabei werden mehrere technische Herausforderungen angegangen und bewältigt, insbesondere bei der Konfrontation mit einem Problem in der Form, VMs ihre ursprüngliche Identität der Schicht 3 (d.h. ihre IP-Adresse) beibehalten zu lassen.
-
Es ist im Allgemeinen bekannt, dass VMs bei der Migration von einem Netzwerk in ein anderes ihre ursprünglichen Netzwerkadressen der Schicht 3 (d.h. die IP-Adressen) beibehalten sollten. Bei Migrationen im laufenden Betrieb ist die Beibehaltung der IP-Adresse bei der Sicherstellung wichtig, dass laufende TCP-Verbindungen (TCP = „transmission control protocol“ beziehungsweise „Übertragungssteuerungsprotokoll“) nicht getrennt werden und eine nahtlose Verbindung aufrechterhalten wird. Im Falle von Offline-Migrationen ist die Beibehaltung der IP-Adressen wichtig, da sich mehrschichtige Anwendungen unter Verwendung dieser IP-Adressen miteinander verbinden und ihre Verbindung bei einer Änderung der IP-Adressen getrennt würde. Eine manuelle oder automatische Neukonfiguration von IP-Adressen bei den migrierten VMs ist möglicherweise komplex und zeitaufwendig, da diese IP-Adressen in verschiedenen Konfigurationsdateien in diesen VMs eingebettet sind. Die Beibehaltung der ursprünglichen IP-Adressen stellt jedoch eine Herausforderung dar, da sich der Bereich der IP-Adressen bei den migrierten VMs von dem Bereich der IP-Adressen des Netzwerks des neuen Rechenzentrums, in das diese VMs gerade migriert werden, unterscheiden könnte (anderes Teilnetz oder andere Klasse). Dies stellt bei der Weiterleitung (Routing) von Paketen nach der Migration auf der Netzwerkschicht 3 ein Problem dar, da die Routing-Protokolle der Schicht 3 (wie zum Beispiel OSPF oder Operation Shortest Path First) eine hierarchische Adressierung verwenden, bei der Adressen auf der Grundlage der längsten Übereinstimmung der Präfixe (Teilnetzkennungen) verglichen werden. Eine Migration über eine Grenze der Schicht 3 hinweg durchbricht diese Hierarchie. Folglich können IP-Adressen nicht mehr für die Weiterleitung von Paketen verwendet werden, da sich jede IP-Adresse überall in den mehreren Rechenzentren befinden kann, und somit muss eine alternative Form der Adressierung für die Weiterleitung von Paketen auf der Schicht 3 verwendet werden.
-
Es ist überdies bekannt, dass die verschiedenen Firewalls der Schicht 3 in einem bestimmten Rechenzentrum den Verkehr von einer bestimmten VM blockieren können, wenn sie sich aus diesem Rechenzentrum herausbewegt. Um dies zu vermeiden, ist es wünschenswert, dass der Datenaustausch über Rechenzentren hinweg auf der Schicht 2 abgewickelt wird, ohne dass man die Rundsendeübertragungs-(Broadcast-) und Erkennungssemantik der Ebene 2 benötigt. Anders ausgedrückt, der rechenzentrumübergreifende Verkehr sollte auf der Schicht 2 in einer der Weiterleitung der Schicht 3 ähnlichen Art und Weise „weitergeleitet“ werden.
-
Es ist des Weiteren bekannt, dass Anforderungen des Adressenauflösungsprotokolls (address resolution protocol (ARP)) im Allgemeinen von den Hostcomputern entweder für das Ziel (wenn sich das Ziel in demselben Netzwerk befindet) oder für das Standard-Gateway oder den First-Hop-Router (wenn sich das Ziel in einem anderen Netzwerk befindet) erzeugt werden. (Die Begriffe „Hostcomputer“ und „VM“ oder „virtuelle Maschine“ können hier als austauschbare Begriffe betrachtet werden.) Die Bestimmung der Netzwerk-ID beruht jedoch auf der Teilnetzmaske und der aktuellen IP-Adresse einer VM. Wenn VMs über ein Teilnetz hinweg migriert werden, hat das Standard-Gateway oder der First-Hop-Router, mit dem eine VM verbunden ist, eine völlig andere IP-Adresse als diejenige, die in ihren Netzwerk-Konfigurationseinstellungen angegeben ist.
-
In Verbindung mit dem „Nord-Süd“-Verkehr oder einem Datenaustausch mit externen Clients ist überdies bekannt, dass Verkehr zu (oder von) einer migrierenden VM gegebenenfalls eine Grenze der Schicht 3 entweder in einem Rechenzentrum aufgrund des Vorhandenseins von mehreren Teilnetzen (und Routern) oder aufgrund von externen Clients, die direkt mit einer VM in dem Rechenzentrum Daten austauschen (was als Nord-Süd-Datenaustausch bezeichnet wird), passieren muss. Dies stellt aufgrund der hierarchischen Adressierung, die von Routing-Protokollen der Schicht 3 verwendet wird, wie vorstehend erwähnt wurde, ein Problem dar.
-
Außerdem ist bekannt, dass die Mobilität von virtuellen Maschinen im laufenden Betrieb im Allgemeinen voraussetzt, dass sich die physischen Quell- und Zielmaschinen in derselben Broadcast-Domäne der Schicht 2 befinden. Eine einzige Broadcast-Domäne ist erforderlich, so dass der Ziel-Hypervisor (oder der Virtual Machine Monitor), zu dem die VM migriert, den neuen Standort der VM über Gratuitous-ARP- (GARP-) oder Reverse-ARP-(RARP-)Nachrichten (VMware verwendet im Allgemeinen RARP-Nachrichten) bekanntgeben kann. Eine Grenze der Schicht 3 oder ein anderes Teilnetz teilt die Broadcast-Domäne auf (RARP- und GARP-Nachrichten bewegen sich nicht über Grenzen der Ebene 3 hinweg). Ein neuer Mechanismus, der den aktuellen Standort einer VM verwaltet und ihn nach der Migration regelmäßig aktualisiert, ist wünschenswert. Außerdem sollte der neue Mechanismus in der Lage sein, Anfragen über den Standort an sich selbst umzuleiten und den neuen Standort bei Bedarf allen Netzwerk-Elementen bekanntzugeben. Es ist erwünscht, dass der als Folge dieser Zustandsverwaltung erzeugte Broadcast-Verkehr minimal ist, da er zu einer Überlastung des Netzwerks führen kann.
-
1 zeigt schematisch eine Systemarchitektur gemäß mindestens einer einzelnen Ausführungsform der Erfindung. Gezeigt sind zwei Rechenzentren 102a, 102b, die mit dem Internet (100) Daten austauschen; zum Zweck einer weiteren Bezugnahme können diese auch mit RZ 0 beziehungsweise RZ 1 bezeichnet werden. Jedes Rechenzentrum 102a beziehungsweise 102b enthält eine Netzwerk-Steuereinheit 104a/104b, die über einen entsprechenden Hub 106a/106b mit allen Routern und Vermittlungsstellen (Switches) in dem Netzwerk des Rechenzentrums verbunden ist. Jede Netzwerk-Steuereinheit 104a/104b bildet die zentralisierte Steuerungsebene ihres Rechenzentrum-Netzwerks und ist in der Lage, Regeln auf allen Routern und Switches zu installieren, gemäß denen ankommende Pakete geändert oder weitergeleitet werden können. Ebenfalls gezeigt sind die Schichten 2 und 3 entsprechend dem Verständnis in dieser Beschreibung (die auch als L2 und L3 bezeichnet werden können). Jedes Rechenzentrum 102a beziehungsweise 102b enthält L3-Core-Router 108a/108b, L3-Zugriffsrouter 110a/110b und L2-Core-Switches 112a/112b. Jedes Rechenzentrum 102a/102b enthält auch zwei Pods 114a/116a beziehungsweise 114b/116b, die in jedem Rechenzentrum 102a/102b überdies als Pod 0 beziehungsweise Pod 1 bezeichnet werden können. Wie gezeigt ist, enthält jedes Pod 114a/114b und 116a/116b L2-Aggregate-Switches 118a/118b und ToR-(Top-of-Rack-)Switches 120a/120b. Jeder ToR-Switch 120a/120b kann mit einer „0“ oder „1“ gekennzeichnet werden. Die virtuellen Maschinen 122a/122b sind jedem ToR-Switch 120a/120b zugeordnet und können hier (zum Zweck der Bezugnahme) des Weiteren eine Kennzeichnung von 0 bis 15 tragen.
-
Gemäß mindestens einer einzelnen Ausführungsform der Erfindung wird jeder VM 122a/122b eine Pseudo-MAC („media access control address“ beziehungsweise „Medienzugriffssteuerungsadresse“) oder PMAC sowie eine Pseudo-IP-Adresse (PIP) zugewiesen. Sowohl die PMACs als auch die PIPs sind Standortkennungen, in denen die topologischen Netzwerkinformationen eingebettet sind. Während PIPs bei der Sicherstellung, dass der gesamte Verkehr an migrierte VMs über Grenzen der Schicht 3 hinweg nahtlos weitergeleitet werden kann, mitwirken, wirken PMACs bei der Sicherstellung mit, dass die rechenzentrumübergreifenden Verbindungen für Ost-West-Verkehr (d.h. Verkehr, der seinen Ursprung in einem Rechenzentrum hat und an ein anderes geleitet wird) auf der Schicht 2 aufrechterhalten werden können (um Probleme mit der Neukonfiguration von Firewalls zu vermeiden) und dass Verkehr auf der Schicht 2 auch unter Verwendung der längsten Präfix-Übereinstimmung von PMACs „weitergeleitet“ werden kann (was wiederum bei der Sicherstellung hilft, dass die Anzahl der Regeln, die auf jedem Switch der Schicht 2 erforderlich sind, klein gehalten wird).
-
Gemäß mindestens einer einzelnen Ausführungsform der Erfindung weist eine Steuereinheit 104a/104b einem jeden Hostcomputer oder einer jeden virtuellen Maschine 122a/122b eine 48-Bit-Pseudo-MAC (PMAC) der Form: dcid.pod.position.port.vmid zu, wobei „dcid“ (8 Bit) die Kennung des Rechenzentrums ist, „pod“ (16 Bit) ist eine Pod-Kennung, die sich auf das Pod (114a/114b oder 116a/116b) bezieht, an dem sich der ToR-Switch (120a/120b) befindet, „position“ (8 Bit) gibt die Position des ToR-Switch in dem Pod an, „port“ (8 Bit) ist die Nummer des Ports auf dem ToR-Switch, mit dem der physische Hostcomputer direkt verbunden ist, und „vmid“ (8 Bit) ist die Kennung der VM auf einem bestimmten Hostcomputer. 32-Bit-PIPs betten den Standort wie folgt ein: dcid.subnetid.hostid; wobei „dcid“ (8 Bit) die Kennung des Rechenzentrums ist und „subnetid“ und „hostid“ die verbleibenden 24 Bit unter Verwendung des Classless Internet Domain Routing (CIDR) nach Bedarf belegen können.
-
Gemäß mindestens einer einzelnen Ausführungsform der Erfindung werden Routern oder Gateways der Schicht 3 ebenfalls eine PMAC sowie PIPs für alle ihre Schnittstellen zugewiesen (Core-Routern 108a/108b, die direkt mit dem Internet verbunden sind, wird zusätzlich zu den PIPs eine externe IP zugewiesen). Diese PMACs und PIPs bleiben unverändert, während sich PMACs und PIPs, die Hostcomputern (oder VMs) zugewiesen werden, auf der Grundlage ihres aktuellen Standorts (und eventueller Migrationen) laufend ändern. In einem Rechenzentrum 102a/102b werden Pakete auf der Schicht 2 unter Verwendung von PMACs befördert, bis jedes Paket eine Grenze der Schicht 3 passieren muss, wobei es an dieser Stelle unter Verwendung von PIPs weitergeleitet wird und schließlich wieder unter Verwendung von PMACs an das Ziel zugestellt werden kann. Der größte Teil der Zuweisung von PMACs und PIPs findet während der ARP-Auflösung statt.
-
Gemäß mindestens einer einzelnen Ausführungsform der Erfindung werden ARP-Anforderungen sowie andere Pakete, die für andere Rechenzentren bestimmt sind (was von der PMAC angegeben wird), an bestimmte Kapselungs-Switches (auf der Schicht 2) weitergeleitet, welche das Paket im Tunnelungsverfahren an das Zielrechenzentrum (Ziel-RZ) übertragen, wo ein ähnlicher Kapselungs-Switch das Paket entkapselt und es auf der Grundlage der PMAC weiterleitet. Die Übertragung der Pakete im Tunnelungsverfahren auf der Schicht 2 ist bei der Sicherstellung hilfreich, dass die verschiedenen Firewalls der Schicht 3 an einem bestimmten Rechenzentrum 102a/102b keine Neukonfiguration erforderlich machen, um Verkehr von einer bestimmten VM zuzulassen.
-
Gemäß mindestens einer einzelnen Ausführungsform der Erfindung erhält die Steuereinheit 104a/104b, sobald sich ein Switch der Schicht 2 oder ein Router der Schicht 3 mit dem Netzwerk verbindet, eine Benachrichtigung und stellt wiederum fest, ob der Switch ein Eingangs-Switch (d.h. ein ToR) ist, und wenn ja, installiert sie eine Regel, um alle ARP-Anforderungen an die Steuereinheit 104a/104b umzuleiten. (Eine ARP-Anforderung kann z.B. die Form „Wer hat 10.0.0.1?“ haben.) Eine einzelne Regel, die auf dem Protokolltyp (0x806 für ARP) der Schicht 2 beruht, wird an allen Top-of-Rack-(TOR-)Switches 120a/102b installiert; diese kann als Regel R1 bezeichnet werden. Man beachte, dass ARP-Anforderungen von den Hostcomputern (oder VMs) entweder für das Ziel (wenn sich das Ziel in demselben Netzwerk befindet) oder für das Standard-Gateway oder den First-Hop-Router (wenn sich das Ziel in einem anderen Netzwerk befindet) erzeugt werden und die Bestimmung der Netzwerk-ID auf der konfigurierten Teilnetzmaske und der aktuellen IP-Adresse einer VM 122a/122b beruht. Bei denselben Teilnetz-ARP-Anfragen kann die Steuereinheit ohne Weiteres mit der entsprechenden PMAC antworten, da die Steuereinheit eine Abbildungstabelle verwaltet, die echte IPs und tatsächliche MACs (actual MACs (AMACs)) von allen Hostcomputern in ihrem Rechenzentrum auf ihre PIPs und PMACs abbildet. Die Steuereinheit kann diese Zuordnungen statisch aus einer Datei lesen oder sie mit Hilfe eines Protokolls wie zum Beispiel des Location Discovery Protocol (LDP) dynamisch lernen (siehe z.B. R. Mysore u.a., „PortLand: A Scalable Fault-Tolerant Layer 2 Data Center Network Fabric“ in ACM SIGCOMM, August 2009.). Einer Steuereinheit 104a/104b ist hier auch die Kennung (echte IP, PIP, AMAC und PMAC) für Steuereinheiten in anderen Rechenzentren bekannt Wenn eine Steuereinheit 104a/104b feststellt, dass bestimmte ARP-Anforderungen für einen Hostcomputer (oder eine VM) bestimmt sind, der beziehungsweise die nicht in ihrer Abbildungstabelle aufgeführt ist, sendet sie die ARP-Anforderungen im Rundsendeverfahren an alle anderen Steuereinheiten. Nur die Steuereinheit, die über den entsprechenden Eintrag für die echte IP in ihrer Abbildungstabelle verfügt, antwortet der ersten Steuereinheit mit der PMAC.
-
Gemäß mindestens einer einzelnen Ausführungsform der Erfindung speichert die ersten Steuereinheit (sei es 104a oder 104b) dann den PMAC-Eintrag in ihrer Tabelle (zusammen mit der IP und PIP) zwischen und kennzeichnet ihn auch als „NOMAC“ für AMAC, was anzeigt, dass dies ein Eintrag für eine VM ist, die sich in einem fernen Rechenzentrum befindet. Gleichzeitig installiert die ferne Steuereinheit auch eine Regel auf dem Ziel-ToR 120a/120b, mit dem das Ziel direkt verbunden ist, um die PMAC durch die tatsächliche MAC (AMAC) zu ersetzen (diese Regel kann als R2 bezeichnet werden). Da ein ToR 120a/120b üblicherweise nicht mit mehr als 40 Hostcomputern verbunden ist, ergibt dies höchstens 40 Regeln (eine für jeden Hostcomputer 122a/122b) an jedem ToR 120a/120b. Die Steuereinheit installiert auch eine Regel auf dem Eingangs-ToR (erster Zwischenschritt (Hop)) 120a/120b, um die echte IP durch eine Pseudo-IP (PIP) zu ersetzen, und auf dem Ausgangs-ToR 120a/120b (letzter Zwischenschritt), um die PIP durch die echte IP von allen direkt angeschlossenen Hostcomputern 122a/122b zu ersetzen (diese Regeln können als R3 beziehungsweise R4 bezeichnet werden). Dies könnte zur Erzeugung einer großen Anzahl von Regeln vom Typ R3 an jedem Eingangs-ToR 120a/120b führen, da ein Hostcomputer theoretisch mit jedem anderen Hostcomputer in dem Netzwerk in Dialogverkehr treten kann, und dies kann möglicherweise zu so vielen Regeln führen, wie es Hostcomputer oder VMs (122a/122b) in dem Netzwerk gibt. In der Praxis ist dies jedoch unwahrscheinlich, und es steht wahrscheinlich jederzeit genügend Zeit zur Verfügung, damit alte Regeln ablaufen und neue Regeln installiert werden können.
-
Gemäß mindestens einer einzelnen Ausführungsform der Erfindung antwortet eine Steuereinheit 102a/102b, wenn sie auf der Grundlage ihrer Host-Abbildungstabelle (oder indem sie die ARP-Anforderung im Rundsendeverfahren an Steuereinheiten in anderen Rechenzentren sendet) feststellt, dass die ARP-Anforderung für das Standard-Gateway (und nicht für einen Ziel-Hostcomputer) bestimmt ist, mit einer speziellen MAC-Adresse (z.B. „00:00:00:00:00:00“). Wenn das erste IP-Paket mit dieser speziellen MAC-Adresse an dem betreffenden ToR (120a/120b) ankommt, wird es als Nächstes wieder an die Steuereinheit 104a/104b umgeleitet (da für die spezielle MAC keine Regel installiert ist), und die Steuereinheit 104a/104b installiert eine Regel an dem ToR 120a/120b, um Pakete mit der speziellen MAC und der jeweiligen IP zu vergleichen und um die spezielle MAC durch die entsprechende Ziel-PMAC (für die jeweilige IP) sowie die echte IP durch die PIP zu ersetzen (diese Regel kann als R5 bezeichnet werden). Dadurch wird sichergestellt, dass nachfolgende Pakete an diese Zieladresse (die eine IP-Adresse eines anderen Teilnetzwerks hat) jetzt die richtige PMAC enthalten und Pakete in der Schicht 2 auf der Grundlage dieser PMAC befördert werden können.
-
Gemäß mindestens einer einzelnen Ausführungsform der Erfindung ist es, um ein der Veranschaulichung dienendes und nicht als Einschränkung zu verstehendes Beispiel zu nennen, gegebenenfalls möglich, dass ein Paket nicht an die Ziel-PMAC zugestellt werden kann, ohne einen Zugriffsrouter 110a/110b, d.h. eine Grenze der Schicht 3, zu passieren. Sobald der Zugriffsrouter 110a/110b ein Paket von einem Core-Switch 112a/112b der Schicht 2 empfängt, kann die Weiterleitung nun auf der Grundlage der in dem Paket enthaltenen PIP stattfinden. Wenn der Router 110a/110b feststellt, dass das Paket für ein externes Rechenzentrum bestimmt ist, bricht er die Weiterleitung auf der Schicht 3 ab und sendet das Paket direkt an den entsprechenden Kapselungs-Switch (auf der Grundlage von vorab installierten statischen Regeln, die auf PIPs oder PMACs beruhen). In diesem Fall kann praktisch jeder Core-Switch (112a/112b) der Schicht 2 die Funktion eines Kapselungs-Switch übernehmen und die Weiterleitung, die die Schicht 3 umgeht, ist in 1 mittels der gestrichelten Verbindungspfeile gezeigt.
-
Gemäß mindestens einer einzelnen Ausführungsform der Erfindung kann mit Bezug auf den Nord-Süd-Verkehr gesagt werden, dass der Datenaustausch mit echten IPs von externen Clients eindeutig und möglicherweise öffentlich sichtbar ist; externe Clients (außerhalb des Rechenzentrums) tauschen mit VMs 122a/122b unter Verwendung der echten IP Daten aus. Somit empfängt ein Core-Router 108a/108b hier das Paket mit der echten IP. Da auf dem Core-Router 108a/108b keine Regel installiert ist, leitet er es an die Steuereinheit 104a/104b um, um die PIP herauszufinden. Die Steuereinheit 104a/104b antwortet dann mit der korrekten PIP und PMAC (nachdem sie sie entweder in ihrer eigenen Zuordnung gefunden oder nachdem sie andere Steuereinheiten konsultiert hat) und installiert ebenfalls eine Regel, um die jeweilige echte IP durch PIP und AMAC durch PMAC zu ersetzen (diese Regel kann als R6 bezeichnet werden). Wenn er keine direkt angeschlossene Maschine ist, nimmt der Core-Router 108a/108b auf der Grundlage der PIP eine Weiterleitung an den geeigneten Zugriffsrouter 110a/110b in dem RZ 102a/102b oder an den Kapselungs-Switch vor (bei dem es sich um einen Core-Switch 112a/112b der Schicht 2 handeln kann, wie vorstehend erörtert wurde), wenn sich das Ziel in einem anderen RZ 102a/102b befindet. Wenn er eine direkt angeschlossene Maschine ist, geht die Weiterleitung dann auf der Grundlage der PMAC vonstatten.
-
Gemäß mindestens einer einzelnen Ausführungsform der Erfindung, gibt der Hypervisor (oder der Virtual Machine Monitor) auf dem Ziel-Hostcomputer, sobald eine VM 122a/122b zu einem Ziel-Hostcomputer migriert, den neuen Standort der VM bekannt, indem er eine Gratuitous-ARP-(GARB-) oder Reverse ARP-(RARP-)Nachricht im Rundsendeverfahren versendet. Diese RARP- oder GARP-Nachricht wird an die Steuereinheit 104a/104b umgeleitet (durch die Regel R1 für das Umleiten aller ARP-Nachrichten, die zuvor installiert worden ist). Nach dem Empfang einer RARP oder GARP führt die Steuereinheit 104a/104b wie folgt vier Schritte durch. Zuerst prüft sie, ob die migrierte Maschine innerhalb ihres eigenen Rechenzentrums 102a/102b migriert ist. Wenn es sich um eine rechenzentruminterne Migration handelt, schaltet sie zum nächsten Schritt, andernfalls sendet sie eine RARP/GARP-Rundsendenachricht an alle anderen Steuereinheiten, und die Steuereinheit 104a/104b, an der sich die VM 122a/122b früher befand, antwortet mit einer RARP-Antwort, welche die alte PMAC, AMAC und die echte IP enthält. Im nächsten Schritt weist die Steuereinheit 104a/104b der VM 122a/122b dann eine neue PMAC und eine PIP zu und fügt einen Eintrag mit der echten IP, der neuen PIP, der AMAC und der neuen PMAC in ihrer Abbildungstabelle hinzu. Wenn sie bereits über einen Eintrag für die IP verfügt, aktualisiert sie lediglich ihre Ersetzungs-NOMAC durch AMAC und die alte PMAC und die alte PIP durch die neue PMAC und die neue PIP. Folglich installiert die Steuereinheit 104a/104b neue Regeln (R2 und R4) auf dem direkt angeschlossenen ToR-Switch 120a/120b der VM 122a/122b, um die PMAC durch die AMAC und die PIP durch die echte IP für jedwede ankommenden Pakete zu ersetzen. Sie aktualisiert auch andere Regeln (vom Typ R3 oder R5) mit der aktualisierten PMAC und PIP. Schließlich sendet die Steuereinheit 104a/104b eine Steuereinheit-(Controller-)ARP-Aktualisierung (die als CARP-Aktualisierung bezeichnet werden kann) als eine RARP-Nachricht, die die alte PMAC, die neue PMAC, die echte IP und die neue PIP angibt, an alle anderen Steuereinheiten. Alle anderen Steuereinheiten löschen dann entweder Regeln (vom Typ R2 oder R4 in dem ursprünglichen RZ) oder aktualisieren bestehende Regeln (vom Typ R3 oder R5) mit der neuen PMAC und der neuen PIP. Jede Steuereinheit 104a/104b sendet auch eine GARP-Aktualisierung, um veraltete ARP-Abbildungen im Cachespeicher, über die Hostcomputer möglicherweise verfügen, zu aktualisieren.
-
2 zeigt einen Prozess, der dazu dient, die Migration von virtuellen Maschinen zu vereinfachen, gemäß mindestens einer einzelnen Ausführungsform der Erfindung allgemeiner auf. Es dürfte sich verstehen, dass ein Prozess wie der in 2 grob veranschaulichte Prozess auf praktisch jedem geeigneten Computersystem oder jeder Gruppe von Computersystemen durchgeführt werden kann, zu der, um ein der Veranschaulichung dienendes und nicht als Einschränkung zu verstehendes Beispiel zu nennen, ein System wie beispielsweise das bei 12' in 3 gezeigte System gehören kann. Gemäß einer beispielhaften Ausführungsform können die meisten, wenn nicht alle der Prozessschritte, die mit Bezug auf 2 erörtert wurden, mit Hilfe von einer Verarbeitungseinheit oder mit Hilfe von Verarbeitungseinheiten und Systemspeicher, wie beispielsweise derbeziehungsweise demjenigen, die bei 16' beziehungsweise 28' in 3 angegeben sind, durchgeführt werden.
-
Wie in 2 gezeigt ist, wird eine virtuelle Maschine für die Migration von einem ersten Rechenzentrum in ein zweites Rechenzentrum gekennzeichnet, wobei die virtuelle Maschine eine echte Kennung enthält (202). Eine Pseudokennung wird der virtuellen Maschine zugewiesen (204), und an einer Steuereinheit des ersten Rechenzentrums wird die Pseudokennung auf die echte Kennung abgebildet (206). Die echte Kennung wird in einem Datenpaket durch die Pseudokennung für eine Routing-Task ersetzt (208). Der Datenaustausch zwischen der Steuereinheit des ersten Rechenzentrums und einer Steuereinheit des zweiten Rechenzentrums wird aufrechterhalten, und die Steuereinheiten werden synchronisiert, um einen korrekten Standort der virtuellen Maschine zu aktualisieren (210). Die virtuelle Maschine wird von dem ersten Rechenzentrum in das zweite Rechenzentrum migriert (212).
-
Nun Bezug nehmend auf 3 ist eine schematische Darstellung eines Beispiels eines Cloud-Computing-Knotens gezeigt. Der Cloud-Computing-Knoten 10' stellt lediglich ein Beispiel für einen geeigneten Cloud-Computing-Knoten dar und ist nicht als Einschränkung des Nutzungsumfangs oder der Funktionalität von hier beschriebenen Ausführungsformen der Erfindung zu verstehen. Ungeachtet dessen kann der Cloud-Computing-Knoten 10' realisiert werden und/oder ist in der Lage, jedwede Funktionalität, die vorstehend beschrieben wurde, auszuführen. Gemäß Ausführungsformen der Erfindung ist der Datenverarbeitungsknoten 10' gegebenenfalls nicht unbedingt Teil eines Cloud-Netzwerks, sondern könnte stattdessen Teil einer anderen Art von verteiltem Netzwerk oder eines anderen Netzwerks sein oder er könnte einen eigenständigen Knoten darstellen. Zum Zweck der Erörterung und Veranschaulichung wird der Knoten 10' hier jedoch verschiedentlich als „Cloud-Computing-Knoten“ bezeichnet.
-
Im Cloud-Computing-Knoten 10' gibt es ein Computersystem/einen Server 12', das beziehungsweise der mit zahlreichen anderen Umgebungen oder Konfigurationen von Mehrzweck- oder Spezial-Datenverarbeitungssystemen betrieben werden kann. Zu Beispielen für bekannte Datenverarbeitungssysteme, - umgebungen und/oder -konfigurationen, die für die Verwendung mit dem Computersystem/Server 12' geeignet sein können, gehören, ohne auf diese beschränkt zu sein, Personal-Computer-Systeme, Server-Computersysteme, Thin-Clients, Thick-Clients, tragbare oder Laptop-Einheiten, Mehrprozessorsysteme, auf einem Mikroprozessor beruhende Systeme, Aufsatzgeräte (Set-Top-Boxen), programmierbare Unterhaltungselektronik, Netzwerk-PCs, Minicomputersysteme, Mainframe-Computersysteme und verteilte Cloud-Computing-Umgebungen, die beliebige der vorstehenden Systeme oder Einheiten enthalten, und dergleichen.
-
Das Computersystem/der Server 12' kann in dem allgemeinen Kontext von Instruktionen, die von einem Computersystem ausgeführt werden können, wie zum Beispiel Programmmodulen, die von einem Computersystem ausgeführt werden, beschrieben werden. Im Allgemeinen können Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen und so weiter enthalten, die bestimmte Aufgaben durchführen oder bestimmte abstrakte Datentypen realisieren. Das Computersystem/der Server 12' kann in verteilten Cloud-Computing-Umgebungen betrieben werden, in denen Aufgaben von fernen Verarbeitungseinheiten durchgeführt werden, die über ein Datenübertragungsnetzwerk miteinander verbunden sind. In einer verteilten Cloud-Computing-Umgebung können sich Programmmodule sowohl in Speichermedien, einschließlich Hauptspeicher-Einheiten, eines lokalen als auch eines fernen Computersystems befinden.
-
Wie in 3 gezeigt ist, ist das Computersystem/der Server 12' in dem Cloud-Computing-Knoten 10 in Form von einer Mehrzweck-Datenverarbeitungseinheit gezeigt. Zu den Komponenten des Computersystems/des Servers 12' können, ohne auf diese beschränkt zu sein, mindestens ein Prozessor oder mindestens eine Verarbeitungseinheit 16', ein Systemspeicher 28' und ein Bus 18' gehören, der verschiedene Systemkomponenten einschließlich des Systemspeichers 28' mit dem Prozessor 16' verbindet.
-
Der Bus 18' stellt mindestens eine Art von beliebigen mehreren Arten von Busstrukturen einschließlich eines Hauptspeicher-Busses oder einer Hauptspeicher-Steuereinheit, eines peripheren Busses, eines Accelerated Graphics Port und eines Prozessor- oder lokalen Busses, der eine beliebige einer Vielzahl von Busarchitekturen nutzt, dar. Als Beispiel, und nicht als Einschränkung, gehören zu solchen Architekturen der Bus „Industry Standard Architecture (ISA)“, der Bus „Micro Channel Architecture (MCA)“, der Bus „Enhanced ISA (EISA)“, der lokale Bus „Video Electronics Standards Association (VESA)“ und der Bus „Peripheral Component Interconnects (PCI)“.
-
Das Computersystem/der Server 12' enthält üblicherweise eine Vielzahl von Datenträgern, die von einem Computersystem gelesen werden können. Solche Datenträger können jedwede verfügbaren Datenträger sein, auf die von dem Computersystem/dem Server 12' zugegriffen werden kann, und zu ihnen gehören sowohl flüchtige als auch nicht flüchtige Datenträger, auswechselbare und nicht auswechselbare Datenträger.
-
Der Systemspeicher 28' kann von einem Computersystem lesbare Datenträger in Form von flüchtigem Hauptspeicher, wie beispielsweise einem Direktzugriffspeicher (RAM) 30' und/oder einem Cachespeicher 32', beinhalten. Das Computersystem/der Server 12' kann darüber hinaus weitere auswechselbare/nicht auswechselbare, flüchtige/nicht flüchtige Speichermedien eines Computersystems enthalten. Lediglich als Beispiel kann das Speichersystem 34' für Leseoperationen von und für Schreiboperationen auf einen nicht auswechselbaren, nicht flüchtigen Magnetdatenträger (nicht gezeigt und üblicherweise als „Festplattenlaufwerk“ bezeichnet) bereitgestellt werden. Obgleich nicht gezeigt, können ein Magnetplattenlaufwerk für Leseoperationen von und Schreiboperationen auf eine auswechselbare, nicht flüchtige Magnetplatte (z.B. eine „Diskette“) und ein optisches Plattenlaufwerk für Leseoperationen von oder Schreiboperationen auf eine auswechselbare, nicht flüchtige optische Platte, wie zum Beispiel ein CD-ROM, ein DVD-ROM, oder andere optische Datenträger bereitgestellt werden. In diesen Fällen kann jedes Plattenlaufwerk über mindestens eine Datenträger-Schnittstellen mit dem Bus 18' verbunden werden. Wie weiter gezeigt und nachstehend beschrieben wird, kann der Systemspeicher 28' mindestens ein Programmprodukt enthalten, das über einen Satz (z.B. mindestens einen Satz) von Programmmodulen verfügt, die so konfiguriert sind, dass sie die Funktionen von Ausführungsformen der Erfindung ausführen.
-
Das Programm/Dienstprogramm 40', das über einen Satz (mindestens einen Satz) von Programmmodulen 42' verfügt, kann als Beispiel, und nicht als Einschränkung, im Systemspeicher 28' abgelegt werden, ebenso ein Betriebssystem, mindestens ein Anwendungsprogramm, andere Programmmodule und Programmdaten. Das Betriebssystem, mindestens ein Anwendungsprogramm, andere Programmmodule und Programmdaten oder eine Kombination daraus können jeweils eine Ausführungsart einer Netzwerkumgebung beinhalten. Die Programmmodule 42' führen im Allgemeinen die Funktionen und/oder die methodischen Vorgehensweisen von Ausführungsformen der Erfindung, die hier beschrieben sind, aus.
-
Das Computersystem/der Server 12' kann auch mit mindestens einer externen Einheit 14' wie zum Beispiel einer Tastatur, einem Zeigegerät, einem Bildschirm 24' usw.; mit mindestens einer Einheit, die einem Benutzer den Dialogverkehr mit dem Computersystem/Server 12' ermöglicht; und/oder beliebigen Einheiten (z.B. Netzwerkkarte, Modem usw.), die dem Computersystem/Server 12' den Datenaustausch mit mindestens einer anderen Datenverarbeitungseinheit ermöglichen, Daten austauschen. Ein solcher Datenaustausch kann über E/A-Schnittstellen 22' stattfinden. Weiterhin kann das Computersystem/der Server 12' mit mindestens einem Netzwerk wie zum Beispiel einem lokalen Netzwerk (LAN), einem allgemeinen Weitverkehrsnetz (WAN) und/oder einem öffentlichen Netzwerk (z.B. dem Internet) über den Netzwerkadapter 20' Daten austauschen. Wie gezeigt ist, tauscht der Netzwerkadapter 20' mit den anderen Komponenten des Computersystems/Servers 12' über den Bus 18' Daten aus. Es sollte sich verstehen, dass auch andere Hardware- und/oder Software-Komponenten in Verbindung mit dem Computersystem/Server 12' verwendet werden könnten, obgleich diese nicht gezeigt sind. Zu Beispielen gehören, ohne auf diese beschränkt zu sein: Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Anordnungen von Festplattenlaufwerken, RAID-Systeme, Bandlaufwerke und Speichersysteme zur Datenarchivierung usw.
-
Es sei angemerkt, dass Aspekte der Erfindung als ein System, ein Verfahren oder ein Computerprogrammprodukt realisiert werden können. Folglich können Aspekte der Erfindung die Form einer ganz in Hardware realisierten Ausführung, einer ganz in Software realisierten Ausführung (einschließlich Firmware, residenter Software, Mikrocode usw.) oder einer Ausführung annehmen, die Software- und Hardware-Aspekte kombiniert, die hier alle allgemein als eine „Schaltung“, ein „Modul“ oder ein „System“ bezeichnet werden können. Überdies können Aspekte der Erfindung die Form eines Computerprogrammprodukts annehmen, das sich auf mindestens einem von einem Computer lesbaren Datenträger befindet, auf dem sich von einem Computer lesbarer Programmcode befindet.
-
Jede beliebige Kombination aus mindestens einem von einem Computer lesbaren Datenträger kann verwendet werden. Der von einem Computer lesbare Datenträger kann ein von einem Computer lesbarer Signaldatenträger oder ein von einem Computer lesbares Speichermedium sein. Ein von einem Computer lesbares Speichermedium kann zum Beispiel, ohne darauf beschränkt zu sein, ein(e) elektronische(s), magnetische(s), optische(s), elektromagnetische(s), Infrarot- oder Halbleitersystem, -vorrichtung oder -einheit oder jede beliebige geeignete Kombination des Vorstehenden sein. Zu konkreteren Beispielen (wobei die Liste keinen Anspruch auf Vollständigkeit erhebt) für das von einem Computer lesbare Speichermedium würden folgende gehören: eine elektrische Verbindung mit mindestens einer Leitung, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffspeicher (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. In Zusammenhang mit diesem Schriftstück kann ein von einem Computer lesbares Speichermedium jedes physisch greifbare Medium sein, das ein Programm zur Verwendung durch ein Instruktionsausführungssystem, eine Instruktionsausführungsvorrichtung oder - einheit oder zur Verwendung in Verbindung mit einem Instruktionsausführungssystem, einer Instruktionsausführungsvorrichtung oder - einheit enthalten oder speichern kann.
-
Ein von einem Computer lesbarer Signaldatenträger kann ein weitergeleitetes Datensignal mit darin enthaltenem, von einem Computer lesbarem Programmcode, beispielsweise im 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 von einem Computer lesbaren Signaldatenträger kann es sich um jeden beliebigen von einem Computer lesbaren Datenträger handeln, der kein von einem Computer lesbares Speichermedium ist und der ein Programm zur Verwendung durch ein Instruktionsausführungssystem, eine Instruktionsausführungsvorrichtung oder -einheit oder zur Verwendung in Verbindung mit einem Instruktionsausführungssystem, einer Instruktionsausführungsvorrichtung oder - einheit übertragen, weiterleiten oder transportieren kann.
-
Auf einem von einem Computer lesbaren Datenträger enthaltener Programmcode kann mittels eines geeigneten Mediums einschließlich eines drahtlosen Mediums, eines drahtgebundenen Mediums, eines Lichtwellenleiterkabels, mittels Hochfrequenz (HF) usw., ohne darauf beschränkt zu sein, oder mittels jeder beliebigen geeigneten Kombination des Vorstehenden übertragen werden.
-
Computer-Programmcode zur Durchführung von Operationen für Aspekte der 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 komplett auf dem Computer (der Computereinheit) des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder komplett auf dem fernen Computer oder Server erfolgen. Im letzteren Szenario kann der ferne Computer mit dem Computer des Benutzers über jede beliebige Art eines Netzwerks einschließlich eines lokalen Netzwerks (LAN) oder eines Weitverkehrsnetzes (WAN) verbunden werden oder die Verbindung kann zu einem externen Computer (zum Beispiel über das Internet mittels eines Internet-Dienstanbieters) hergestellt werden.
-
Aspekte der Erfindung werden hier mit Bezug auf Darstellungen in Ablaufplänen und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Darstellungen in den Ablaufplänen und/oder der Blockschaubilder sowie Kombinationen aus Blöcken in den Darstellungen der Ablaufpläne und/oder den Blockschaubildern mittels Instruktionen eines Computerprogramms realisiert werden können. Diese Instruktionen eines Computerprogramms können einem Prozessor eines Mehrzweckcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine so zu erzeugen, dass die Instruktionen, die über den Prozessor des Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel zur Ausführung der Funktionen/Vorgänge erzeugen, die in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben sind.
-
Diese Instruktionen eines Computerprogramms können auch auf einem von einem Computer lesbaren Datenträger gespeichert werden, der einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anweisen kann, auf eine bestimmte Art und Weise zu funktionieren, so dass die auf dem von einem Computer lesbaren Datenträger gespeicherten Instruktionen einen Herstellungsgegenstand erzeugen, der Instruktionen enthält, die die Funktion/den Vorgang ausführen, welche beziehungsweise welcher in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben ist.
-
Die Instruktionen des Computerprogramms können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder auf andere Einheiten geladen werden, um die Durchführung einer Reihe von Betriebsschritten auf dem Computer, einer anderen programmierbaren Vorrichtung oder auf anderen Einheiten zu bewirken, um einen von einem Computer ausgeführten Prozess so zu erzeugen, dass die Instruktionen, die auf dem Computer oder einer anderen programmierbaren Vorrichtung ausgeführt werden, Prozesse zur Ausführung der Funktionen/Vorgänge ermöglichen, die in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben sind.
-
Diese Offenbarung erfolgte zum Zweck der Veranschaulichung und der Beschreibung, erhebt jedoch keinen Anspruch auf Vollständigkeit und ist auch nicht als Einschränkung zu verstehen. Für den Fachmann sind viele Ab- und Veränderungen erkennbar. Die Ausführungsformen wurden gewählt und beschrieben, um Grundgedanken und die praktische Anwendung zu erklären und um anderen Fachleuten das Verständnis der Offenbarung bei verschiedenen Ausführungsformen mit verschiedenen Änderungen, wie sie für die jeweilige vorgesehene Verwendung geeignet sind, zu ermöglichen.
-
Obgleich hier der Veranschaulichung dienende Ausführungsformen der Erfindung mit Bezug auf die beiliegenden Zeichnungen beschrieben wurden, sollte es sich verstehen, dass die Ausführungsformen der Erfindung nicht auf diese präzisen Ausführungsformen beschränkt sind und dass verschiedene andere Ab- und Veränderungen von einem Fachmann daran vorgenommen werden können, ohne vom Umfang oder von der Wesensart der Offenbarung abzuweichen.