-
HINTERGRUND
-
Die vorliegende Offenbarung betrifft das Migrieren einer virtuellen Maschine, die zustandsbehaftete Auslagerungsdatenpakete erzeugt, von einem ersten System auf ein zweites System. Insbesondere betrifft die vorliegende Offenbarung das Herauslösen von Hardwarezustandsdaten aus einem Quell-Netzwerkadapter und das Kopieren der herausgelösten Hardwarezustandsdaten auf ein Zielsystem während der Migration.
-
Moderne Netzwerkadapter für den Datenaustausch unterstützen „zustandsbehaftete” Formate für die Übertragung von Auslagerungsdaten, bei denen die Netzwerkadapter bestimmte Verarbeitungsaufgaben durchführen, um die Verarbeitungslast eines Host-Systems zu verringern. Zu typischen Auslagerungsformaten gehören Remote Direct Memory Access (RDMA), Internet Wide RDMA Protocol (iWARP), Infiniband (IB) und TCP Offload Engine (TOE). Zur Unterstützung der zustandsbehafteten Auslagerungsformate beschränken die Netzwerkadapter den „Zustand” einer beliebigen vorgegebenen Verbindung einer virtuellen Maschine auf den Kontext der Instanz des Netzwerkadapters, die der virtuellen Maschine entspricht. Zu zustandsbehafteten Auslagerungsinformationen, die diesen Kontext wiedergeben, gehören Hardwarezustandsdaten, die Hardwareeigenschaften auf der Grundlage virtueller Maschinen beschreiben, wie zum Beispiel Informationen, die Verbindungen, Registern, Speicherregistrierungen, und Strukturen entsprechen, die zur Kommunikation mit der virtuellen Maschine verwendet werden (Warteschlangenpaare, Abschlusswarteschlangen), und verschiedene andere Datenstrukturen wie zum Beispiel Adressauflösungsprotokoll-Tabellen (ARP-Tabellen) (ARP = Address Resolution Protocol).
-
KURZDARSTELLUNG
-
Gemäß einer Ausführungsform der vorliegenden Offenbarung wird ein Ansatz bereitgestellt, bei dem ein Migrationsagent eine Nachricht empfängt, um eine virtuelle Maschine von einem ersten System auf ein zweites System zu migrieren. Das erste System löst in einem systemeigenen Format gespeicherte Hardwarezustandsdaten aus einem Speicherbereich heraus, der sich auf dem Netzwerkadapter des ersten Systems befindet. Die Hardwarezustandsdaten werden vom Netzwerkadapter des ersten Systems genutzt, um Datenpakete zu verarbeiten, die von der virtuellen Maschine erzeugt wurden. Als Nächstes wird die virtuelle Maschine auf das zweite System migriert, wozu das Kopieren der herausgelösten Hardwarezustandsdaten vom ersten System auf das zweite System gehört. Daraufhin konfiguriert das zweite System einen entsprechenden zweiten Netzwerkadapter, indem die kopierten Hardwarezustandsdaten auf einen Speicher geschrieben werden, der sich auf dem zweiten Netzwerkadapter befindet.
-
Das Vorstehende ist eine Zusammenfassung und enthält daher notwendigerweise Vereinfachungen, Verallgemeinerungen und Auslassungen in Bezug auf Details; infolgedessen wird für den Fachmann klar sein, dass die Zusammenfassung lediglich zur Veranschaulichung dient und in keiner Weise eine Einschränkung darstellt. Weitere Aspekte, erfindungsgemäße Merkmale und Vorteile der vorliegenden Offenbarung, die ausschließlich in den Ansprüchen definiert sind, werden anhand der folgenden ausführlichen Beschreibung klar, die keinen einschränkenden Charakter trägt.
-
KURZBESCHREIBUNG DER VERSCHIEDENEN ANSICHTEN IN DEN ZEICHNUNGEN
-
Die vorliegende Offenbarung wird leichter verständlich, und die zahlreichen Aufgaben, Merkmale und Vorteile der Erfindung werden dem Fachmann durch Bezugnahme auf die beigefügten Zeichnungen deutlich, wobei:
-
1 ein beispielhaftes Schema ist, das einen Migrationsagenten zeigt, der eine logische Partition, zu der eine virtuelle Maschine und systemeigene Zustandsdaten der Netzwerkadapterhardware gehören, von einem Quellsystem auf ein Zielsystem migriert;
-
2 ein beispielhaftes Schema ist, das eine grafische Darstellung des Ermittelns eines geeigneten Zielsystems zeigt;
-
3 eine beispielhafte Kandidatentabelle ist, die Tabelleneinträge mit Host-Eigenschaften und entsprechenden Netzwerkadaptereigenschaften aufweist;
-
4 ein beispielhafter Ablaufplan ist, der die Schritte zeigt, die beim Ermitteln eines Zielsystems und Migrieren einer virtuellen Maschine auf das Zielsystem unternommen werden;
-
5 ein beispielhafter Ablaufplan ist, der die Schritte zeigt, die beim Ermitteln eines geeigneten Zielsystems unternommen werden, das einen kompatiblen Host und einen im Vergleich zu einem Quellsystem gleichwertigen Netzwerkadapter aufweist;
-
6 ein beispielhafter Ablaufplan ist, der die Schritte zeigt, die in einem Host-System unternommen werden, das eine virtuelle Maschine zur Migration vorbereitet;
-
7 ein beispielhafter Ablaufplan ist, der die Schritte zeigt, die beim Migrieren einer logischen Partition von einem Quellsystem auf ein Zielsystem unternommen werden;
-
8 ein beispielhaftes Schema ist, das einen Netzwerkadapter zeigt, der Hardwarezustandsdaten von Modulen überwacht und speichert, die auf einer virtuellen Maschine ausgeführt werden;
-
9 ein beispielhaftes Schema ist, das die Migration von Hardwarezustandsdaten von einem Quell-Netzwerkadapter auf einen Ziel-Netzwerkadapter zeigt;
-
10 ein beispielhaftes Schema ist, das einen verteilten Richtliniendienst zeigt, der auf einen Speicherbereich mit Kandidatentabellen zugreift, um ein geeignetes Zielsystem zu erkennen;
-
11 ein beispielhaftes Schema ist, das virtuelle Netzwerkabstraktionen zeigt, die einem physischen Netzwerkraum überlagert sind;
-
12 ein beispielhaftes Blockschema eines Datenverarbeitungssystems ist, in dem die hierin beschriebenen Verfahren realisiert sein können; und
-
13 eine Erweiterung der in 12 gezeigten Informationsverarbeitungssystem-Umgebung bereitstellt, um zu veranschaulichen, dass die hierin beschriebenen Verfahren auf einer großen Vielfalt von Informationsverarbeitungssystemen durchgeführt werden können, die in einer vernetzten Umgebung arbeiten.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Die hierin verwendete Terminologie dient ausschließlich zur Beschreibung bestimmter Ausführungsformen und ist nicht als Einschränkung der Offenbarung gedacht. In dem hier verwendeten Sinne schließen die Einzahlformen „ein/eine” und „der/die/das” auch die Pluralformen ein, sofern im Kontext nicht ausdrücklich etwas anderes angegeben ist. Es versteht sich des Weiteren, dass die Begriffe „weist auf bzw. „aufweisen/aufweisend” bei Verwendung in dieser Beschreibung das Vorhandensein angegebener Merkmale, Ganzzahlen, Schritte, Operationen, Elemente und/oder Komponenten bezeichnen, jedoch das Vorhandensein oder die Hinzufügung eines bzw. einer oder mehrerer anderer Merkmale, Ganzzahlen, Schritte, Operationen, Elemente, Komponenten und/oder Gruppen davon nicht ausschließen.
-
Die entsprechenden Strukturen, Materialien, Aktionen und Äquivalente aller Mittel bzw. Schritt-plus-Funktion-Elemente (Steg plus Function Elements) in den folgenden Ansprüchen sollen alle Strukturen, Materialien oder Aktionen zur Ausführung der Funktion in Verbindung mit anderen ausdrücklich beanspruchten Elementen mit einschließen. Die Beschreibung der vorliegenden Offenbarung soll der Veranschaulichung und Beschreibung dienen, ist jedoch nicht vollständig oder auf die Offenbarung in der offenbarten Form beschränkt. Für den Fachmann sind viele Modifikationen und Variationen denkbar, ohne dass diese eine Abweichung vom Schutzbereich und Gedanken der Offenbarung darstellen würden. Die Ausführungsform wurde ausgewählt und beschrieben, um die Grundgedanken und die praktische Anwendung der Offenbarung auf bestmögliche Weise zu erklären und anderen Fachleuten das Verständnis der Offenbarung für verschiedene Ausführungsformen mit verschiedenen Abänderungen für die betreffende betrachtete Verwendung zu ermöglichen.
-
Dem Fachmann wird klar sein, dass Aspekte der vorliegenden Offenbarung als System, Verfahren oder Computerprogrammprodukt verkörpert sein können. Dementsprechend können Aspekte der vorliegenden Offenbarung die Form einer vollständig in Hardware realisierten Ausführungsform, einer vollständig in Software realisierten Ausführungsform (einschließlich Firmware, residenter Software, Mikrocode usw.) oder einer Ausführungsform annehmen, in der Software- und Hardwareaspekte kombiniert sind, die im vorliegenden Dokument allgemein als „Schaltung”, „Modul” oder „System” bezeichnet werden. Ferner können Aspekte der vorliegenden Offenbarung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien verkörpert ist, auf denen computerlesbarer Programmcode verkörpert ist.
-
Es können beliebige Kombinationen eines oder mehrerer computerlesbarer Medien verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Zu computerlesbaren Speichermedien können beispielsweise, ohne darauf beschränkt zu sein, ein elektronisches, magnetisches, optisches oder elektromagnetisches System bzw. ein Infrarot- oder Halbleitersystem bzw. eine derartige Vorrichtung oder Einheit oder eine beliebige geeignete Kombination des Vorstehenden gehören. Zu den genaueren Beispielen (unvollständige Liste) computerlesbarer Speichermedien zählen unter anderem folgende: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, 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 Nur-Lese-Speicher in Form einer Compact Disc (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder eine beliebige geeignete Kombination des Vorstehenden. Im Kontext dieses Dokuments kann ein computerlesbares Speichermedium jedes beliebige vergegenständlichte Medium sein, das ein Programm enthalten oder speichern kann, das von oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung genutzt werden kann.
-
Ein computerlesbares Signalmedium kann unter anderem ein im Basisband oder als Teil einer Trägerwelle übertragenes Datensignal mit darin verkörpertem computerlesbarem Programmcode aufweisen. Ein derartiges übertragenes Signal kann eine beliebige Vielfalt von Formen annehmen, einschließlich, ohne darauf beschränkt zu sein, einer elektromagnetischen oder optischen Form oder einer beliebigen geeigneten Kombination davon. Ein computerlesbares Signalmedium kann ein beliebiges computerlesbares Medium sein, bei dem es sich nicht um ein computerlesbares Speichermedium handelt und das ein Programm übertragen, senden oder transportieren kann, das von oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung genutzt werden kann.
-
Auf einem computerlesbaren Medium verkörperter Programmcode kann unter Verwendung jedes beliebigen geeigneten Mediums, einschließlich, ohne darauf beschränkt zu sein, drahtloser, drahtgebundener Medien, Lichtwellenleitern, HF usw. oder unter Verwendung einer beliebigen geeigneten Kombination des Vorstehenden übertragen werden.
-
Computerprogrammcode zum Ausführen von Operationen bei Aspekten der vorliegenden Offenbarung kann in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen, darunter in einer objektorientierten Programmiersprache wie Java, Smalltalk, C++ oder dergleichen und in herkömmlichen prozeduralen Programmiersprachen wie „C” oder ähnlichen Programmiersprachen geschrieben sein. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. Beim letztgenannten Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über eine beliebige Art von Netzwerk verbunden sein, unter anderem über ein lokales Netzwerk (LAN) oder über ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (beispielsweise über das Internet unter Nutzung eines Internet-Dienstanbieters (Internet Service Provider)).
-
Nachstehend sind Aspekte der vorliegenden Offenbarung unter Bezugnahme auf Ablaufpläne und/oder Blockschemata von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Offenbarung beschrieben. Es versteht sich, dass jeder Block der Ablaufpläne und/oder der Blockschemata und Kombinationen von Blöcken in den Ablaufplänen und/oder Blockschemata durch Computerprogrammanweisungen realisiert werden kann bzw. können. Diese Computerprogrammanweisungen können einem Prozessor eines Mehrzweckcomputers, eines Spezialcomputers oder anderen programmierbaren Datenverarbeitungsvorrichtungen bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Anweisungen, die über den Prozessor des Computers oder anderer programmierbarer Datenverarbeitungsvorrichtungen ausgeführt werden, Mittel zum Realisieren der in einem Block bzw. in den Blöcken des Ablaufplans und/oder des Blockschemas angegebenen Funktionen/Aktionen schaffen.
-
Diese Computerprogrammanweisungen können ebenfalls in einem computerlesbaren Medium gespeichert sein, das einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, sodass die im computerlesbaren Medium gespeicherten Anweisungen ein Erzeugnis schaffen, das die Anweisungen aufweist, die die in einem Block bzw. in den Blöcken des Ablaufplans und/oder des Blockschemas angegebene Funktion/Aktion realisieren.
-
Die Computerprogrammanweisungen können auch in einen Computer, in andere programmierbare Datenverarbeitungsvorrichtungen oder in andere Einheiten geladen werden, um zu bewirken, dass auf dem Computer, auf anderen programmierbaren Vorrichtungen oder anderen Einheiten eine Reihe von Arbeitsschritten ausgeführt wird, um einen mittels Computer realisierten Prozess zu schaffen, sodass die Anweisungen, die auf dem Computer oder auf anderen programmierbaren Vorrichtungen ausgeführt werden, Prozesse zur Realisierung der in einem Block bzw. in den Blöcken des Ablaufplans und/oder des Blockschemas angegebenen Funktionen/Aktionen bereitstellen.
-
Die nachstehende ausführliche Beschreibung folgt im Allgemeinen dem oben aufgeführten Überblick über die Offenbarung und erläutert und erweitert je nach Notwendigkeit die Definitionen der verschiedenen Aspekte und Ausführungsformen der Beschreibung.
-
Die vorliegende Offenbarung beschreibt ein Verfahren zum Migrieren einer virtuellen Maschine von einem Quellsystem auf ein Zielsystem. Zur Migration gehören das Herauslösen von Hardwarezustandsdaten aus einem Quell-Netzwerkadapter, der der virtuellen Maschine entspricht, und das Kopieren der Hardwarezustandsdaten auf einen Ziel-Netzwerkadapter, den das Zielsystem aufweist. Daher hat ein Systemadministrator die Möglichkeit, bei Bedarf wie zum Beispiel wegen der Lösung von Sicherheitsproblemen oder Problemen mit der Netzwerkbandbreite die virtuelle Maschine auf das Zielsystem zu migrieren.
-
1 ist ein beispielhaftes Schema, das einen Migrationsagenten zeigt, der eine virtuelle Maschine, zu der systemeigene Zustandsdaten der Netzwerkadapterhardware gehören, von einem Quellsystem auf ein Zielsystem migriert. Die Überlagerungsnetzwerkumgebung 100 überlagert ein physisches Netzwerk und nutzt logische Richtlinien, um über virtuelle Netzwerke Daten zwischen virtuellen Maschinen zu übertragen. Daher sind die virtuellen Netzwerke von Einschränkungen der physischen Topologie eines physischen Netzwerks unabhängig (weitere Einzelheiten hierzu siehe 11 und den entsprechenden Text).
-
Die Überlagerungsnetzwerk-Umgebung 100 weist das Quellsystem 105 auf. Das Quellsystem 105 weist den Host 110 und den Quell-Netzwerkadapter 150 auf. Der Host 110 weist den Hypervisor 145 auf, der die virtuelle Maschine 135 und den Einheitentreiber 140 bereitstellt. Die virtuelle Maschine 135 nutzt den Einheitentreiber 140, um zustandsbehaftete Auslagerungsdatenpakete an den Quell-Netzwerkadapter 150 zu senden. Zum Beispiel können die zustandsbehafteten Auslagerungsdatenpakete einem zustandsbehafteten Auslagerungsformat wie beispielsweise Remote Direct Memory Access (RDMA), Internet Wide RDMA Protocol (iWARP), Infiniband (IB) und TCP Offload Engine (TOE) folgen.
-
Daraufhin verarbeitet der Quell-Netzwerkadapter 150 die Datenpakete unter Nutzung der Hardwarezustandsdaten 152 und überträgt die Datenpakete über die Überlagerungsnetzwerk-Umgebung 100 zur virtuellen Zielmaschine. Die Hardwarezustandsdaten 152 weisen zustandsbehaftete Informationen auf, die den Kontext des Quell-Netzwerkadapters 150 wiedergeben, zum Beispiel Daten, die Verbindungen und Strukturen betreffen, die zur Kommunikation mit der virtuellen Maschine 135 verwendet werden (z. B. Warteschlangenpaare, Abschlusswarteschlangen usw.), und sie können auch Registerinformationen, Speicherregistrierungen und verschiedene andere Datenstrukturen (z. B. ARP-Tabellen, laufende Nummern, Informationen über Übertragungswiederholungen usw.) aufweisen.
-
Bei einer Ausführungsform weisen die Hardwarezustandsdaten 152 Verbindungszustandsdaten der Schicht 4 (des OSI-Modells) (OSI = Open Systems Interconnect) auf, die es dem Quell-Netzwerkadapter 150 ermöglichen, Bestätigungen für Übertragungswiederholungen und Pakete durchzuführen, wodurch der Host 110 von der Durchführung derartiger untergeordneter Aufgaben entlastet wird. Zum Beispiel stellt iWARP eine RDMA-Funktion über eine normale Ethernet-Struktur bereit, die Anwendungspuffer nutzt, die auf einem unterlagerten Ethernet-Adapter zugeordnet sind. Wenn die Kommunikation ausgelöst wird, wird eine Verbindung mit dem Netzwerkadapter hergestellt, der eine TCP-Verbindung auslöst. Sobald diese aktiv ist, werden Daten in den Ausgangspuffern der Anwendung durch den Netzwerkadapter als TCP-Segmente eingebettet, während Datenpakete aufgebaut werden.
-
Ein Systemadministrator möchte unter Umständen die virtuelle Maschine 135 vom Quellsystem 105 auf ein anderes System migrieren, zum Beispiel zu Sicherheitszwecken oder zum Zweck der Verwaltung der Netzwerkbandbreite. Daher kann der Systemadministrator einen Migrationsbefehl an den Migrationsagenten 160 (im verteilten Richtliniendienst 165 enthalten) senden, der für das Ermitteln eines geeigneten Zielsystems zuständig ist, das einen kompatiblen Host und einen gleichwertigen Netzwerkadapter aufweist, der die Überlagerungsnetzwerk-Umgebung 100 unterstützt. Bei einer Ausführungsform ist ein kompatibler Host ein Host, der Systemanforderungen einer virtuellen Maschine, die gerade migriert wird, wie zum Beispiel CPU-Anforderungen, Speicheranforderungen Bandbreitenanforderungen usw., erfüllt. Bei einer Ausführungsform ist ein gleichwertiger Netzwerkadapter ein Netzwerkadapter, der derselben Lieferantenkennung und derselben Revisionskennung wie der Quell-Netzwerkadapter 150 entspricht.
-
Der Migrationsagent 160 durchläuft eine Reihe von Ermittlungsschritten, um das Zielsystem 115 als geeignetes Zielsystem zu erkennen. Bei einer Ausführungsform nutzt der Migrationsagent 160 eine Kandidatentabelle, die Host-Eigenschaften und Netzwerkadaptereigenschaften aufweist, für die das geeignetes Zielsystem erkannt werden soll (weitere Einzelheiten siehe die 3, 5 und den entsprechenden Text). Bei dieser Ausführungsform stellt der Migrationsagent 160 fest, dass der Host 120 die Systemanforderungen der virtuellen Maschine 135 erfüllt und der Ziel-Netzwerkadapter 190 mit dem Quell-Netzwerkadapter 150 gleichwertig ist (z. B. eine übereinstimmende Einheitenkennung, Firmwareversion und andere entsprechende Adapterattribute aufweist).
-
Um die virtuelle Maschine 135 zu migrieren, müssen die Hardwarezustandsdaten 152 ebenfalls migriert werden. Die Hardwarezustandsdaten 152 sind jedoch für den Einheitentreiber 140 und die virtuelle Maschine 135 teilweise oder gar nicht transparent. Daher weist der Migrationsagent 160 den Quell-Netzwerkadapter 150 (über den Einheitentreiber 140, Hypervisor 145 oder einen anderen steuernden Agenten) darauf hin, die Hardwarezustandsdaten 152 herauszulösen. Der Quell-Netzwerkadapter 150 legt die E/A-Aktivität und Speicheraktivität still, um während des Herauslösungsprozesses Änderungen oder eine Beschädigung des Zustands zu vermeiden, und kopiert die Hardwarezustandsdaten 152 über den Einheitentreiber 140 an einer vorgegebenen Speicherblock-Anfangsadresse in den gemeinsam genutzten Speicher 142. Die Speicherblock-Anfangsadresse kann als Teil ihrer Initialisierung ausgehandelt oder dem Quell-Netzwerkadapter 150 im Herauslösungsbefehl als Parameter bereitgestellt werden.
-
Der Migrationsagent 160 sendet eine Migrationsanforderung an das Quellsystem 105 und an das Zielsystem 115, um die virtuelle Maschine 135 zu migrieren. Daraufhin richten die Hypervisoren 145 und 185 eine Verbindung ein, um die virtuelle Maschine 135 (weist den gemeinsam genutzten Speicher 142 auf) in einem Datenstrom auf den Host 120 zu übertragen, wodurch die virtuelle Maschine 175 und der gemeinsam genutzte Speicher 182 entstehen. Außerdem ordnet der Hypervisor 185 den Einheitentreiber 180 der logischen Partition 170 zu und sendet einen Zustandseinfügebefehl an den Ziel-Netzwerkadapter 190. Der Zustandseinfügebefehl weist den Ziel-Netzwerkadapter 190 an, die Hardwarezustandsdaten vom gemeinsam genutzten Speicher 182 an der Speicherblock-Anfangsadresse abzurufen und die Hardwarezustandsdaten 192 auf den Netzwerkadapter 190 zu laden. Infolgedessen behalten die Hardwarezustandsdaten 152 ihre systemeigene Form bei, wenn sie im Ziel-Netzwerkadapter 190 gespeichert werden, sodass keine Adressumsetzungsschritte notwendig sind.
-
Bei einer Ausführungsform führt der Ziel-Netzwerkadapter 190 eine Prüfsumme durch, um die Hardwarezustandsdaten zu validieren. Bei einer weiteren Ausführungsform kann der Ziel-Netzwerkadapter 190 eine Kopfzeile (Header) oder einzelne Merker nutzen, um auf effiziente Weise den Kontext festzulegen. Bei einer noch weiteren Ausführungsform kann der Migrationsagent 160, wenn der Quell-Netzwerkadapter 150 während der Migration aktiv bleibt, eine oder mehrere Transaktionen zwischen dem Quell-Netzwerkadapter 150 und dem Ziel-Netzwerkadapter 190 erleichtern, um die Gleichwertigkeit ihrer Zustände zu überprüfen.
-
2 ist ein beispielhaftes Schema, das eine grafische Darstellung des Ermittelns eines geeigneten Zielsystems zeigt. Bei einer Ausführungsform wählt der Migrationsagent 160 auf der Grundlage verfügbarer Hosts, kompatibler Hosts und gleichwertiger Netzwerkadapter iterativ ein geeignetes Zielsystem aus. Bei einer weiteren Ausführungsform verwendete der Migrationsagent 160 eine Kandidatentabelle wie zum Beispiel die in 3 gezeigte Tabelle aus, um derartige Iterationsschritte durchzuführen.
-
Der Migrationsagent erkennt verfügbare Hosts 220, die die Überlagerungsnetzwerk-Umgebung 100 aufweist. Zu den verfügbaren Hosts 220 gehören die Hosts 250 bis 290, die jeweils verschiedene Netzwerkadapter nutzen. Das Beispiel in 2 zeigt, dass der Migrationsagent feststellt, dass die Hosts 250 bis 268 die Host-Anforderungen der virtuellen Maschine, die gerade migriert wird (z. B. nicht genügend Speicher- oder Bandbreitenverfügbarkeit), nicht erfüllen. Daher erkennt der Migrationsagent die Hosts 272 bis 290 als „kompatible” Hosts 230, die die Host-Anforderungen der virtuellen Maschine erfüllen oder übererfüllen, die gerade migriert wird.
-
Als Nächstes analysiert der Migrationsagent die Netzwerkadapter 274, 285 und 295, die den kompatiblen Hosts 230 entsprechen, um einen Netzwerkadapter zu erkennen, der mit dem Netzwerkadapter gleichwertig ist, der von der virtuellen Maschine genutzt wird, die gerade migriert wird. Bei einer Ausführungsform ist ein gleichwertiger Netzwerkadapter ein Netzwerkadapter, der sowohl hinsichtlich der Einheitenkennung als auch der Lieferantenkennung mit dem Netzwerkadapter der virtuellen Maschine übereinstimmt, die gerade migriert wird. Das in 2 gezeigte Beispiel zeigt, dass der Netzwerkadapter 295 mit dem Netzwerkadapter der virtuellen Maschine gleichwertig ist, die gerade migriert wird. Daher sendet der Migrationsagent eine Nachricht an die Hypervisoren des Quell- und Zielsystems, um eine Verbindung einzurichten und die virtuelle Maschine vom Quellsystem auf das Zielsystem zu migrieren.
-
3 ist eine beispielhafte Kandidatentabelle, die Tabelleneinträge mit Host-Eigenschaften und entsprechenden Netzwerkadaptereigenschaften aufweist. Ein Migrationsagent (als Teil des verteilten Richtliniendienstes) verwaltet die Kandidatentabelle 300, um Host-Anforderungen und Netzwerkadapteranforderungen für virtuelle Maschinen zu überwachen, die Übertragungen von zustandsbehafteten Auslagerungsdaten ausführen. Bei einer Ausführungsform kann ein lokaler Server für verteilte Richtlinien eine Kandidatentabelle 300 verwalten, die Tabelleneinträge auf der Ebene eines lokalen virtuellen Netzwerks aufweisen würde. Bei einer weiteren Ausführungsform kann ein Stamm-Server für verteilte Richtlinien eine Kandidatentabelle 300 verwalten, die Tabelleneinträge auf der Ebene einer globalen Überlagerungsnetzwerk-Umgebung aufweisen würde (weitere Einzelheiten siehe 10 und den entsprechenden Text).
-
Die Kandidatentabelle 300 weist eine Liste von Tabelleneinträgen auf, die Host-Namen (Spalte 310) und Host-Eigenschaften (Spalte 320) aufweisen. Beispielsweise kann ein Host-System einer virtuellen Maschine einen bestimmten Betrag an Verarbeitungsleistung, Speicher und Bandbreite bereitstellen. Bei einer Ausführungsform kann die Spalte 320 minimale, nominelle und/oder maximale Host-Eigenschaften aufweisen.
-
Die Tabelleneinträge weisen außerdem Netzwerkadapterinformationen zu Netzwerkadaptern auf, die von entsprechenden Host-Systemen genutzt werden. Die Spalte 330 weist Netzwerkadapterkennungen auf, und die Spalte 340 weist Netzwerkadaptereigenschaften auf. Die Netzwerkadaptereigenschaften kennzeichnen bei einer Ausführungsform die Lieferantenkennung und die Einheitenkennung des Netzwerkadapters. Daher kann der Migrationsagent einen gleichwertigen (übereinstimmenden) Netzwerkadapter ermitteln, um Hardwarezustandsdaten in ihrem systemeigenen Format auf einen sich unterscheidenden Netzwerkadapter zu migrieren.
-
4 ist ein beispielhafter Ablaufplan, der die Schritte zeigt, die beim Ermitteln eines Zielsystems und Migrieren einer virtuellen Maschine von einem Quellsystem auf das Zielsystem unternommen werden. Die Migrationsagentenverarbeitung beginnt bei 400, wonach der Migrationsagent eine Anforderung von einem Administrator 415 empfängt, eine virtuelle Maschine zu migrieren, die auf einem Quellsystem ausgeführt wird (Schritt 410). Die virtuelle Maschine überträgt zustandsbehaftete Auslagerungsdatenpakete (z. B. RDMA), die einen Netzwerkadapter durchqueren, der Hardwarezustandsdaten nutzt, um die Datenpakete zu verarbeiten.
-
Bei Schritt 420 erkennt der Migrationsagent einen Quell-Netzwerkadapter, den die Datenpakete der virtuellen Maschine durchqueren (der z. B. in der Anforderung enthalten ist oder über eine Kandidatentabelle erkannt wurde). Es wird eine Ermittlung dahingehend durchgeführt, ob der Hardwarezustand des Netzwerkadapters verlagerbar ist (der Adapter unterstützt z. B. die Herauslösung, Entscheidung 430). Wenn der Hardwarezustand des Netzwerkadapters nicht verlagerbar ist, verzweigt die Entscheidung 430 zum „Nein”-Zweig, wonach der Migrationsagent bei Schritt 435 einen Fehler an den Administrator 415 zurückgibt und bei Schritt 438 endet.
-
Andererseits verzweigt die Entscheidung 430 zum „Ja”-Zweig, wenn der Hardwarezustand des Netzwerkadapters verlagerbar ist, wonach der Migrationsagent eine Reihe von Schritten durchläuft, um ein geeignetes Zielsystem zu erkennen, dessen Netzwerkadapter den vom Quell-Netzwerkadapter genutzten Hardwarezustand unterstützt (vordefinierter Prozessblock 440, weitere Einzelheiten siehe 5 und den entsprechenden Text).
-
Bei Schritt 450 gibt der Migrationsagent einen Herauslösungsbefehl an den Quell-Netzwerkadapter aus (z. B. über seinen Einheitentreiber oder Hypervisor), um die E/A-Aktivität und Speicheraktivität stillzusetzen und die Hardwarezustandsdaten an eine gemeinsam genutzte Speicherstelle zu kopieren (weitere Einzelzeiten siehe 6 und den entsprechenden Text).
-
Daraufhin sendet das Quellsystem 105 einen Hinweis an den Migrationsagenten (bei Schritt 570 empfangen), dass die Hardwarezustandsdaten in den gemeinsam genutzten Speicher kopiert worden sind. Der Migrationsagent sendet eine Migrationsanforderung an das Quellsystem und an das Zielsystem, um eine Verbindung herzustellen und die virtuelle Maschine (weist die Hardwarezustandsdaten auf) vom Quellsystem 105 auf das Zielsystem 115 zu migrieren (vordefinierter Prozessblock 480, weitere Einzelheiten siehe 7 und den entsprechenden Text). Sobald die Migration abgeschlossen ist, konfiguriert der Hypervisor des Zielsystems 115 seinen Ziel-Netzwerkadapter entsprechend den migrierten Hardwarezustandsdaten. Die virtuelle Maschine nimmt bei 490 den Betrieb auf dem Zielsystem 115 wieder auf, und die Verarbeitung durch den Migrationsagenten endet bei 495.
-
5 ist ein beispielhafter Ablaufplan, der die Schritte zeigt, die in einem Migrationsagenten beim Ermitteln eines geeigneten Zielsystems unternommen werden, das einen kompatiblen Host und einen gleichwertigen Netzwerkadapter aufweist. Bei einer Ausführungsform ist ein gleichwertiger Netzwerkadapter ein Adapter, der die Hardwarezustandsdaten des Quell-Netzwerkadapters in ihrem systemeigenen Hardwareformat nutzen kann (z. B. sind keine Adressumsetzungen erforderlich).
-
Die Zielermittlungsverarbeitung beginnt bei 500, wonach der Migrationsagent (im verteilten Richtliniendienst enthalten) bei Schritt 520 Systemanforderungen erkennt, die einer virtuellen Maschine entsprechen, die gerade migriert wird. Beispielsweise können zu den Systemanforderungen der virtuellen Maschine die Verarbeitungsgeschwindigkeit, Speicheranforderungen, Anforderungen an die Netzwerkbandbreite usw. gehören. Bei Schritt 530 greift der Migrationsagent auf die Kandidatentabelle 525 zu und erkennt kompatible Host-Systeme, die die Anforderungen an das Host-System erfüllen. Bei einer Ausführungsform ist ein Host-System kompatibel, wenn es die Systemanforderungen der virtuellen Maschine erfüllt oder übererfüllt. Beispielsweise erfordert eine virtuelle Maschine unter Umständen 4 GB Systemspeicher, und ein Host-System ist unter Umständen in der Lage, der virtuellen Maschine 6 GB Systemspeicher bereitzustellen.
-
Bei Schritt 540 erkennt der Migrationsagent die in der Kandidatentabelle 525 enthaltenen systemeigenen Hardwareeigenschaften des Quell-Netzwerkadapters. Bei einer Ausführungsform gehören zu den systemeigenen Hardwareeigenschaften des Quell-Netzwerkadapters die Einheitenkennung, Firmwareversion und andere entsprechende Adaptereigenschaften. Als Nächstes erkennt der Migrationsagent einen oder mehrere durch die kompatiblen Host-Systeme genutzte Netzwerkadapter (ab Schritt 530), die mit den systemeigenen Hardwareeigenschaften des Quell-Netzwerkadapters gleichwertig sind (Schritt 550).
-
Daraufhin wählt der Migrationsagent bei Schritt 560 einen oder mehrere der gleichwertigen Netzwerkadapter aus. Bei einer Ausführungsform sendet der Migrationsagent eine Nachricht an den Netzwerkadministrator und ermöglicht dem Netzwerkadministrator, einen der gleichwertigen Netzwerkadapter auszuwählen. Die Verarbeitung kehrt bei 580 zurück.
-
6 ist ein beispielhafter Ablaufplan, der die Schritte zeigt, die in einem Host-System unternommen werden, das eine virtuelle Maschine zur Migration vorbereitet. Die Quellsystemverarbeitung beginnt bei 600, wonach das Quellsystem vom Migrationsagenten 160 einen Zustandsherauslösungsbefehl empfängt, um eine bestimmte virtuelle Maschine zu migrieren, die auf dem Quell-Host-System ausgeführt wird (Schritt 610). Bei Schritt 620 setzt das Quellsystem (z. B. über einen Einheitentreiber oder Hypervisor) die E/A-Aktivität und Speicheraktivität auf dem Quell-Netzwerkadapter 150 still, um während der Migration der virtuellen Maschine Änderungen oder eine Beschädigung des Zustands zu vermeiden.
-
Bei Schritt 630 weist das Quellsystem den Quell-Netzwerkadapter 150 an, Hardwarezustandsdaten herauszulösen, die zu der virtuellen Maschine gehören, die gerade migriert wird, und bei Schritt 640 kopiert das Quellsystem die Hardwarezustandsdaten in den gemeinsam genutzten Speicher 142, bei dem es sich um Systemspeicher und einen Teil der virtuellen Maschine handelt, die auf das Zielsystem migriert wird. Das Quellsystem informiert bei Schritt 650 den Migrationsagenten 160, dass die virtuelle Maschine zur Migration bereit ist, und die Quellsystemverarbeitung endet bei 660.
-
7 ist ein beispielhafter Ablaufplan, der die Schritte zeigt, die beim Migrieren einer virtuellen Maschine von einem Quellsystem auf ein Zielsystem unternommen werden. Die Quellsystemverarbeitung beginnt bei 700, wonach das Quellsystem vom Migrationsagenten 160 eine Anforderung zur Migration des Quellsystems auf das Zielsystem empfängt. Die Zielsystemverarbeitung beginnt, woraufhin das Zielsystem bei 755 eine entsprechende Anforderung empfängt.
-
Bei Schritt 710 stellt der Hypervisor des Quellsystems eine Verbindung mit dem Hypervisor des Zielsystems her und fordert das Zielsystem auf, Ressourcen für die virtuelle Maschine zu reservieren, die gerade migriert wird. Bei einer Ausführungsform weist die Anforderung Konfigurationsparameter entfernt angeordneter Adapter auf, die eine Speicherblock-Anfangsadresse im gemeinsam genutzten Speicher der virtuellen Maschine angeben, an der Hardwarezustandsdaten gespeichert sind (Schritt 710).
-
Der Hypervisor des Zielsystems ordnet bei Schritt 760 Platz für die virtuelle Maschine zu. Bei den Schritten 710 und 765 migrieren die Hypervisoren die virtuelle Maschine vom Quellsystem auf das Zielsystem, und bei einer Ausführungsform überprüft das Zielsystem die Migration, zum Beispiel durch eine Prüfsummenberechnung. Daraufhin ordnet der Hypervisor des Zielsystems bei Schritt 770 der migrierten logischen Partition einen Einheitentreiber zu, sodass die virtuelle Maschine mit dem Ziel-Netzwerkadapter kommunizieren kann.
-
Bei Schritt 775 sendet der Hypervisor des Zielsystems einen „Zustandseinfüge”-Befehl an den Ziel-Netzwerkadapter, der den Ziel-Netzwerkadapter anweist, die Hardwarezustandsdaten an der Speicherblock-Anfangsadresse aus den gemeinsam genutzten Speicher abzurufen und den Ziel-Netzwerkadapter entsprechend zu konfigurieren. Bei einer Ausführungsform sind die Speicherblock-Anfangsadressen in der durch den Hypervisor des Quellsystems gesendeten Ressourcenanforderung enthalten (oben erörterter Schritt 710). Bei einer weiteren Ausführungsform sendet der Quell-Hypervisor eine separate Nachricht an den Ziel-Hypervisor, die die Speicherblock-Anfangsadresse enthält. Sobald die Konfiguration abgeschlossen ist, sendet der Ziel-Hypervisor bei Schritt 789 eine Migrationsbestätigung an den Quell-Hypervisor, und die Ziel-Hypervisor-Verarbeitung endet bei 790.
-
Der Quell-Hypervisor empfängt bei Schritt 720 die Bestätigung für die erfolgreiche Migration und gibt bei Schritt 730 die Ressourcen (virtuelle Maschine, Einheitentreiber, gemeinsam genutzter Speicher usw.) auf dem Quellsystem frei. Die Quell-Hypervisor-Verarbeitung endet bei 735.
-
8 ist ein beispielhaftes Schema, das einen Netzwerkadapter zeigt, der Hardwarezustandsdaten von Modulen überwacht und speichert, die auf einer virtuellen Maschine ausgeführt werden. Die virtuelle Maschine 135 nutzt die Module 800 bis 850, um zustandsbehaftete Auslagerungsdatenpakete über den Quell-Netzwerkadapter 150 an andere virtuelle Maschinen zu senden bzw. von diesen zu empfangen. Jedes der Module 800 bis 850 weist einen „Zustand” auf dem Quell-Netzwerkadapter 150 auf, der in den Hardwarezustandsdaten 152 gespeichert ist. Bei einer Ausführungsform gehört zu den Hardwarezustandsdaten 152 eine Gruppierung von Informationen, die einen Zustand einer Verbindung/eines Datagramms wiedergeben. Beispielsweise kann Folgendes zu den Hardwarezustandsdaten 152 gehören:
- • Gruppierung von Ressourcen der Schutzdomäne
- • Statistiken der Einheiten der Schutzdomäne
- • Index der Produzenten der Sendewarteschlangen-Hardware des Warteschlangenpaares
- • Index der Konsumenten der Sendewarteschlangen-Software des Warteschlangenpaares
- • Index der Produzenten der Empfangswarteschlangen-Hardware des Warteschlangenpaares
- • Index der Konsumenten der Empfangswarteschlangen-Software des Warteschlangenpaares
- • zugehörige Speicherbereiche
- • zugehörige Adress-Handles
- • Index der Produzenten der Abschlusswarteschlangen-Hardware
- • Index der Konsumenten der Abschlusswarteschlangen-Software
- • Statistiken der Einheiten der Abschlusswarteschlange
- • Zuweisungen zwischen virtuellen und logischen Adressen/Busadressen
-
Wenn die virtuelle Maschine 135 auf ein Zielsystem migriert wird, werden die Hardwarezustandsdaten 152 in einen gemeinsam genutzten Speicherbereich kopiert und zusammen mit der virtuellen Maschine 135 auf das Zielsystem migriert. Daraufhin konfiguriert das Zielsystem seinen Ziel-Netzwerkadapter entsprechend den migrierten Hardwarezustandsdaten 152. Bei einer Ausführungsform kann der Quell-Netzwerkadapter 150 tausende von Hardwarezustandsdaten 152 verwalten, die jeweils einer anderen virtuellen Maschine entsprechen. Bei dieser Ausführungsform werden nur Hardwarezustandsdaten 152 auf das Zielsystem kopiert, die einer virtuellen Maschine entsprechen, die gerade migriert wird.
-
9 ist ein beispielhaftes Schema, das die Migration von Hardwarezustandsdaten von einem Quell-Netzwerkadapter auf einen Ziel-Netzwerkadapter zeigt. Der Quell-Netzwerkadapter 150 nutzt die Hardwarezustandsdaten 152, um zustandsbehaftete Auslagerungsdateipakete von einer virtuellen Quellmaschine an eine virtuelle Zielmaschine zu senden. Während der Migration auf den Ziel-Netzwerkadapter 190 werden die Hardwarezustandsdaten 152 an der Speicherblock-Anfangsadresse 800 in den gemeinsam genutzten Speicher 142 kopiert. Daraufhin werden, wenn die virtuelle Maschine 135 als virtuelle Maschine 175 auf ein Zielsystem kopiert wird, die Hardwarezustandsdaten 152 in ihrem systemeigenen Hardwareformat kopiert und bleiben nach wie vor an der Speicherblock-Anfangsadresse 800 im gemeinsam genutzten Speicher 182 gespeichert. Daraufhin werden aufgrund der Tatsache, dass der Ziel-Netzwerkadapter 190 mit dem Quell-Netzwerkadapter 150 gleichwertig ist, die Hardwarezustandsdaten 152 in ihrem systemeigenen Hardwareformat auf den Ziel-Netzwerkadapter 190 kopiert.
-
Aufgrund der Tatsache, dass der Ziel-Netzwerkadapter 190 mit dem Quell-Netzwerkadapter 150 gleichwertig ist, nutzt der Ziel-Netzwerkadapter 190 Hardwarezustandsdaten in ihrem systemeigenen Format, sodass Adressumsetzungen nicht erforderlich sind.
-
10 ist ein beispielhaftes Schema, das einen verteilten Richtliniendienst zeigt, der auf einen Speicherbereich mit Kandidatentabellen zugreift, um ein geeignetes Zielsystem zu erkennen. Der Migrationsagent 160 weist eine Schnittstelle zum lokalen Netzwerk-Richtlinienserver auf, um ein geeignetes Zielsystem zu erkennen. Bei einer Ausführungsform verwaltet der lokale Netzwerk-Richtlinienserver 1000 Richtlinien und Umsetzungen physikalischer Pfade, die zum Überlagerungsnetzwerk des Quellsystems (z. B. die Überlagerungsnetzwerk-Umgebung 100) gehören. Bei einer weiteren Ausführungsform sind Richtlinienserver für unterschiedliche Überlagerungsnetzwerke benachbart und unterscheiden Richtlinienanforderungen von unterschiedlichen Migrationsagenten anhand ihrer entsprechenden Überlagerungsnetzwerk-Kennung.
-
Der verteilte Richtliniendienst 165 ist hierarchisch strukturiert, und wenn der lokale Netzwerk-Richtlinienserver 1000 kein geeignetes Zielsystem finden kann, fragt der lokale Netzwerk-Richtlinienserver 1000 den Stamm-Richtlinienserver 1010 ab, um nach einem geeigneten Zielsystem zu suchen. Daraufhin greift der Stamm-Richtlinienserver 1010 auf den Kandidatentabellenspeicher 1015 zu und sendet eine Kennung eines geeigneten Zielsystems an den lokalen Netzwerk-Richtlinienserver 1000, der sie an den Migrationsagenten 160 sendet. Bei einer Ausführungsform kann der Stamm-Richtlinienserver 1010 dem lokalen Netzwerk-Richtlinienserver 1000 eine Nachricht senden, um den lokalen Netzwerk-Richtlinienserver 1030 nach einem geeigneten Zielsystem abzufragen, das andere Host-Systeme verwaltet als die, die der lokale Netzwerk-Richtlinienserver 1000 verwaltet.
-
11 ist ein beispielhaftes Schema, das virtuelle Netzwerkabstraktionen zeigt, die einem physischen Netzwerkraum überlagert sind. Die virtuellen Netzwerke 1100 sind Teil einer Überlagerungsnetzwerk-Umgebung und weisen Richtlinien (z. B. die Richtlinien 1103 bis 1113) auf, die eine virtuelle Ende-zu-Ende-Verbindung zwischen virtuellen Maschinen (z. B. zwischen den virtuellen Maschinen 1102 bis 1110) bereitstellen. Jedes der virtuellen Netzwerke 110 entspricht einer eindeutigen virtuellen Kennung, die den gleichzeitigen Betrieb mehrerer virtueller Netzwerke über dem physischen Raum 1120 ermöglicht. Wie sich der Fachmann vorstellen kann, können einige der virtuellen Netzwerke 1100 einen Teil der virtuellen Maschinen 1102 bis 1110 aufweisen, während andere virtuelle Netzwerke 1100 andere virtuelle Maschinen und andere Richtlinien als die in 11 gezeigten aufweisen können.
-
Wenn eine virtuelle „Quell”-Maschine Daten an eine virtuelle „Ziel”-Maschine sendet, beschreibt eine den zwei virtuellen Maschinen entsprechende Richtlinie einen logischen Pfad, auf dem die Daten übertragen werden (z. B. über eine Firewall, über einen Beschleuniger usw.). Anders ausgedrückt definieren die Richtlinien 1103 bis 1113, wie unterschiedliche virtuelle Maschinen Daten untereinander (oder mit externen Netzwerken) austauschen. Zum Beispiel kann eine Richtlinie Anforderungen an die Dienstqualität (Quality of Service, QoS) definieren; den Zugriff auf Steuerelemente, die zu bestimmten virtuellen Maschinen gehören; oder eine Gruppe virtueller oder physischer Einrichtungen (Geräte), die beim Senden oder Empfangen von Daten zu durchqueren sind. Darüber hinaus können einige Einheiten Beschleuniger wie zum Beispiel Komprimierung, IP Security (IPSec), SSL oder Sicherheitseinrichtungen wie zum Beispiel eine Firewall oder ein Warnsystem gegen Angriffe von außen aufweisen. Zudem kann eine Richtlinie so gestaltet sein, dass sie den Datenaustausch zwischen der virtuellen Quellmaschine und der virtuellen Zielmaschine nicht zulässt.
-
Die virtuellen Netzwerke 1100 sind dem physischen Raum 1120 logisch überlagert, der physische Einheiten 1135 bis 1188 aufweist (Hosts, Switches und Router. Obwohl sich die Art, in der eine Richtlinie im System durchgesetzt wird, auf den physischen Raum 1120 auswirkt und von diesem abhängt, sind virtuelle Netzwerke 1100 mehr von logischen Beschreibungen in den Richtlinien abhängig. Daher können mehrere virtuelle Netzwerke 1100 einem physischen Raum 1120 überlagert sein. Wie zu erkennen ist, ist der physische Raum 1120 in das Teilnetz X 1125 und das Teilnetz Y 1130 unterteilt. Die Teilnetze sind über die Router 1135 und 1140 verbunden. Die virtuellen Netzwerke 1100 sind von Einschränkungen des physischen Raums 1120 (z. B. Einschränkungen der Ebene 12 innerhalb eines Teilnetzes) unabhängig. Daher kann ein virtuelles Netzwerk physische Einheiten aufweisen, die sowohl zum Teilnetz X 1125 als auch zum Teilnetz Y 1130 gehören.
-
Bei einer Ausführungsform unterstützen Abstraktionen virtueller Netzwerke die Adressunabhängigkeit zwischen unterschiedlichen virtuellen Netzwerken 1100. Zum Beispiel können zwei unterschiedliche virtuelle Maschinen, die in zwei unterschiedlichen virtuellen Netzwerken betrieben werden, dieselbe IP-Adresse aufweisen. Um ein weiteres Beispiel zu nennen, unterstützen Abstraktionen virtueller Netzwerke das Bereitstellen virtueller Maschinen, die zu denselben virtuellen Netzwerken gehören, auf unterschiedlichen Hosts, die sich in unterschiedlichen physischen Teilnetzen befinden (dies gilt auch für Switches und/oder Router zwischen den physischen Einheiten). Bei einer weiteren Ausführungsform können virtuelle Maschinen, die zu unterschiedlichen virtuellen Netzwerken gehören, auf demselben physischen Host gehostet sein. Bei noch einer weiteren Ausführungsform unterstützen die Abstraktionen virtueller Netzwerke die Migration virtueller Maschinen an beliebiger Stelle innerhalb des Datenverarbeitungszentrums, ohne die Netzwerkadresse der virtuellen Maschine zu ändern und ihre Netzwerkverbindung zu verlieren.
-
Weitere Einzelheiten zu dieser Architektur siehe die Anmeldung „Virtual Switch Data Control in a Distributed Overlay Network”, Seriennummer 13/204 211, eingereicht am 5. August 2011, die durch Bezugnahme hierin eingeschlossen ist.
-
12 veranschaulicht das Informationsverarbeitungssystem 1200, bei dem es sich um ein vereinfachtes Beispiel eines Computersystems handelt, das die hierin beschriebenen Datenverarbeitungsoperationen durchführen kann. Das Informationsverarbeitungssystem 1200 weist einen oder mehrere Prozessoren 1210 auf, die mit dem Prozessorschnittstellenbus 1212 verbunden sind. Der Prozessorschnittstellenbus 1212 verbindet die Prozessoren 1210 mit der Northbridge 1215, die auch als Memory Controller Hub (MCH) bezeichnet wird. Die Northbridge 1215 ist mit dem Systemspeicher 1220 verbunden und stellt dem Prozessor bzw. den Prozessoren 1210 den Zugriff auf den Systemspeicher bereit. Eine Grafiksteuereinheit 1225 ist ebenfalls mit der Northbridge 1215 verbunden. Bei einer Ausführungsform verbindet der PCI-Express-Bus 1218 die Northbridge 1215 mit der Grafiksteuereinheit 1225. Die Grafiksteuereinheit 1225 ist mit der Anzeigeeinheit 1230 verbunden, zum Beispiel mit einem Computerbildschirm.
-
Die Northbridge 1215 und die Southbridge 1235 sind über den Bus 1219 miteinander verbunden. Bei einer Ausführungsform ist der Bus ein DMI-Bus (DMI = Direct Media Interface), der Daten mit hoher Geschwindigkeit in beiden Richtungen zwischen der Northbridge 1215 und der Southbridge 1235 überträgt. Bei einer weiteren Ausführungsform verbindet ein PCI-Bus (PCI = Peripheral Component Interconnect) die Northbridge und die Southbridge miteinander. Die Southbridge 1235, die auch als I/O Controller Hub (ICH) bezeichnet wird, ist ein Chipsatz, der im Allgemeinen Funktionen realisiert, die mit geringerer Geschwindigkeit als die von der Northbridge bereitgestellten Funktionen ablaufen. Die Southbridge 1235 stellt normalerweise verschiedene Busse zum Anschluss verschiedener Komponenten bereit. Zu diesen Bussen gehören zum Beispiel der PCI- und der PCI-Express-Bus, ein ISA-Bus, ein System Management Bus (SMBus bzw. SMB) und/oder ein LPC-Bus (LPC = Low Pin Count). Der LPC-Bus dient oft zum Anschluss von Einheiten mit geringer Bandbreite, zum Beispiel von Urlader-ROM 1296 und „älteren” E/A-Einheiten (mithilfe eines „Super-I/O”-Chips). Zu den „älteren” E/A-Einheiten (1298) können zum Beispiel serielle und parallele Anschlüsse, Tastatur, Maus und/oder eine Diskettenlaufwerk-Steuereinheit gehören. Der LPC-Bus verbindet außerdem die Southbridge 1235 mit dem Trusted Platform Module (TPM) 1295. Zu weiteren Komponenten, die die Southbridge 1235 oft aufweist, gehören eine DMA-Steuereinheit (DMA = Direct Memory Access), eine PIC-Steuereinheit (PIC = Programmable Interrupt Controller) und eine Speichereinheit-Steuereinheit, die die Southbridge 1235 über den Bus 1284 mit der nichtflüchtigen Speichereinheit 1285 verbindet, zum Beispiel mit einem Festplattenlaufwerk.
-
Die ExpressCard 1255 ist ein Steckplatz, über den Einheiten während des laufenden Betriebs an das Informationsverarbeitungssystem angeschlossen und von diesem getrennt werden können. Die ExpressCard 1255 unterstützt sowohl PCI-Express- als auch USB-Verbindungen, da sie sowohl über den Universal Serial Bus (USB) als auch über den PCI-Express-Bus an die Southbridge 1235 angeschlossen werden kann. Zur Southbridge 1235 gehört eine USB-Steuereinheit 1240, die USB-Verbindungen für die am USB angeschlossenen Einheiten bereitstellt. Zu diesen Einheiten gehören die Webcam (Kamera) 1250, der Infrarot-Empfänger (IR-Empfänger) 1248, die Tastatur und das Trackpad 1244 und die Bluetooth-Einheit 1246, die drahtlose Wireless Personal Area Networks (PANs) bereitstellt. Die USB-Steuereinheit 1240 stellt ebenfalls USB-Verbindungen für verschiedene andere über USB angeschlossene Einheiten 1242 bereit, zum Beispiel für eine Maus, für die nichtflüchtige Wechselspeichereinheit 1245, für Modems, Netzwerkkarten, ISDN-Steckverbinder, Fax, Drucker, USB-Hubs und viele andere über USB angeschlossene Einheiten. Obwohl die nichtflüchtige Wechselspeichereinheit 1245 als eine über USB angeschlossene Einheit dargestellt ist, könnte sie auch mithilfe anderer Schnittstellen angeschlossen sein, zum Beispiel mithilfe einer Firewire-Schnittstelle usw.
-
Die drahtlose LAN-Einheit (LAN = Wireless Local Area Network) 1275 ist mit der Southbridge 1235 über den PCI- oder PCI-Express-Bus 1272 verbunden. Die LAN-Einheit 1275 funktioniert normalerweise auf der Grundlage einer der Normen gemäß IEEE 802.11, in denen die Verfahren zur Modulation über die Luftschnittstelle geregelt sind, wobei bei all diesen Verfahren dasselbe Protokoll zum drahtlosen Datenaustausch zwischen dem Informationsverarbeitungssystem 1200 und einem anderen Computersystem oder einer anderen Einheit verwendet wird. Die optische Speichereinheit 1290 ist über den SATA-Bus (SATA = Serial ATA) 1288 mit der Southbridge 1235 verbunden. Serial-ATA-Adapter und -Einheiten tauschen Daten über eine schnelle serielle Verbindung miteinander aus. Der Serial-ATA-Bus verbindet außerdem die Southbridge 1235 mit anderen Formen von Speichereinheiten, zum Beispiel mit Festplattenlaufwerken. Die Audio-Schaltung 1260, zum Beispiel eine Soundkarte, ist über den Bus 1258 mit der Southbridge 1235 verbunden. Die Audio-Schaltung 1260 stellt außerdem Funktionalitäten wie zum Beispiel einen Anschluss 1262 für den Audio-Leitungseingang (Line-in) und optische digitale Audiosignale, eine Ausgangsbuchse 1264 für optische digitale Ausgangssignale und Kopfhörer, interne Lautsprecher 1266 und ein internes Mikrofon 1268 bereit. Die Ethernet-Steuereinheit 1270 ist mit der Southbridge 1235 über einen Bus verbunden, zum Beispiel über den PCI- oder den PCI-Express-Bus. Die Ethernet-Steuereinheit 1270 verbindet das Informationsverarbeitungssystem 1200 mit einem Computernetzwerk wie zum Beispiel mit einem Local Area Network (LAN), dem Internet und mit anderen öffentlichen und privaten Computernetzwerken.
-
Obwohl 12 ein Informationsverarbeitungssystem zeigt, kann ein Informationsverarbeitungssystem viele Formen annehmen. Beispielsweise kann ein Informationsverarbeitungssystem die Form eines Desktops, Servers, transportablen Computers, Laptops, Notebooks oder eines Computers oder Datenverarbeitungssystems mit einem anderen Formfaktor annehmen. Darüber hinaus kann ein Informationssystem andere Formfaktoren annehmen, zum Beispiel den eines Personal Digital Assistant (PDA), einer Spieleeinheit, eines Geldautomaten (ATM), einer transportablen Telefoneinheit, einer Kommunikationseinheit oder den Formfaktor anderer Einheiten, die einen Prozessor und einen Speicher enthalten.
-
Das zur Bereitstellung von Sicherheitsfunktionen in der 12 gezeigte und hierin beschriebene Trusted Platform Module (TPM 1295) ist lediglich ein Beispiel eines Hardware-Sicherheitsmoduls (HSM). Daher weist das hierin beschriebene und beanspruchte TPM alle Arten von HSM auf, darunter und ohne Beschränkung auf die Aufzählung, Hardware-Sicherheitseinheiten, die der Norm der Trusted Computing Groups (TCG) mit dem Titel „Trusted Platform Module (TPM) Specification Version 1.2” entsprechen. Das TPM ist ein Hardware-Sicherheitsteilsystem, das in eine beliebige Anzahl von Informationsverarbeitungssystemen eingebunden werden kann, zum Beispiel in die in 13 dargestellten Informationsverarbeitungssysteme.
-
13 stellt eine Erweiterung der in 12 gezeigten Informationsverarbeitungssystem-Umgebung bereit, um zu veranschaulichen, dass die hierin beschriebenen Verfahren auf einer großen Vielfalt von Informationsverarbeitungssystemen durchgeführt werden können, die in einer vernetzten Umgebung arbeiten. Die Arten von Informationssystemen reichen von kleinen Handeinheiten, zum Beispiel dem Handcomputer/Mobiltelefon 1310, bis hin zu Großrechnersystemen wie zum Beispiel dem Großrechner 1370. Zu Beispielen für den Handcomputer 1310 zählen Personal Digital Assistants (PDAs), persönliche Unterhaltungseinheiten wie zum Beispiel MP3-Player, transportable Fernsehgeräte und Compact-Disc-Player. Weitere Beispiele für Informationsverarbeitungssysteme sind mit einem Stift bedienbare Computer oder der Tablet-Computer 1320, der Laptop- oder Notebook-Computer 1330, die Workstation 1340, das Personal-Computer-System 1350 und der Server 1360. Andere Arten von Informationsverarbeitungssystemen, die in 13 nicht im Einzelnen gezeigt sind, sind durch das Informationsverarbeitungssystem 1380 wiedergegeben. Wie gezeigt können die verschiedenen Informationsverarbeitungssysteme mithilfe des Computernetzwerks 1300 miteinander vernetzt sein. Zu den Arten von Computernetzwerken, die zur Verbindung der verschiedenen Informationsverarbeitungssysteme verwendet werden können, gehören Local Area Networks (LANs), Wireless Local Area Networks (WLANs), das Internet, das öffentliche Telefon-Festnetz (Public Switched Telephone Network, PSTN), andere drahtlose Netzwerke und alle anderen Netzwerktopologien, die zur Verbindung der Informationsverarbeitungssysteme untereinander verwendet werden können. Viele der Informationsverarbeitungssysteme enthalten nichtflüchtige Datenspeicher wie zum Beispiel Festplattenlaufwerke und/oder einen nichtflüchtigen Speicher. Bei einigen der in 13 gezeigten Informationsverarbeitungssysteme sind separate nichtflüchtige Datenspeicher abgebildet (der Server 1360 nutzt den nichtflüchtigen Datenspeicher 1365, der Großrechner 1370 nutzt den nichtflüchtigen Datenspeicher 1375, und das Informationsverarbeitungssystem 1380 nutzt den nichtflüchtigen Datenspeicher 1385). Bei dem nichtflüchtigen Datenspeicher kann es sich um eine Komponente handeln, die sich außerhalb der verschiedenen Informationsverarbeitungssysteme befinden oder in eines der Informationsverarbeitungssysteme integriert sein kann. Darüber hinaus kann die nichtflüchtige Wechselspeichereinheit 1245 mithilfe mehrerer Methoden von zwei oder mehr Informationsverarbeitungssystemen gemeinsam genutzt werden, zum Beispiel durch Verbinden der nichtflüchtigen Wechselspeichereinheit 1245 mit einem USB-Anschluss oder mit einem anderen Steckverbinder des Informationsverarbeitungssystems.
-
Obwohl bestimmte Ausführungsformen der vorliegenden Offenbarung dargestellt und beschrieben wurden, wird für den Fachmann offensichtlich sein, dass auf der Grundlage der Erläuterungen im vorliegenden Dokument Änderungen und Modifikationen vorgenommen werden können, ohne von der vorliegenden Offenbarung und ihren weiter gefassten Aspekten abzuweichen. Daher schließen die beigefügten Ansprüche in ihren Schutzbereich alle derartigen Änderungen und Modifikationen als innerhalb des eigentlichen Ideengehalts und Schutzbereiches der vorliegenden Offenbarung liegend ein. Des Weiteren versteht es sich, dass die Offenbarung ausschließlich in den beigefügten Ansprüchen definiert ist. Für den Fachmann wird klar sein, dass, wenn für ein aufgeführtes Anspruchselement eine bestimmte Zahl vorgesehen ist, diese Zahl ausdrücklich im Anspruch erwähnt wird, bei Fehlen einer derartigen Nennung jedoch keine Einschränkung vorliegt. In den folgenden beigefügten Ansprüchen dient die Verwendung einleitender Formulierungen wie z. B. „mindestens ein/eine” und „ein/eine oder mehrere” zur Einleitung von Anspruchselementen und zur Erleichterung des Verständnisses und ist nicht als Einschränkung zu betrachten. Die Verwendung derartiger Formulierungen ist jedoch nicht so auszulegen, dass die Einleitung eines Anspruchselements durch den unbestimmten Artikel „ein/eine” einen bestimmten Anspruch, der ein derartig eingeleitetes Anspruchselement enthält, im Vergleich zu Offenbarungen einschränkt, die nur ein derartiges Element enthalten, selbst wenn derselbe Anspruch die einleitenden Formulierungen „ein/eine oder mehrere” oder „mindestens ein/eine” und unbestimmte Artikel wie „ein” oder „eine” enthält; dasselbe gilt für die Verwendung von bestimmten Artikeln in den Ansprüchen.