-
GEBIET DER ERFINDUNG
-
Die vorliegende Erfindung betrifft allgemein das Gebiet von virtuellen Maschinen und insbesondere die Migration von virtuellen Maschinen.
-
HINTERGRUND DER ERFINDUNG
-
Systemmigrationen von virtuellen Maschinen werden aus einer Vielfalt von Gründen durchgeführt, darunter das Bereitstellen eines Sicherungssystems während der Installation von Hardware-Erweiterungen und/oder Software-Aktualisierungen. Die virtuelle Maschine (darunter der Speicher, das System, Anwendungen usw.), die kopiert wird, nennt man virtuelle Quellmaschine, und die virtuelle Maschine, die als Ergebnis der Migration aufgebaut wird, nennt man virtuelle Zielmaschine.
-
Eine Art der Migration ist die Direktmigration, wobei eine virtuelle Maschine migriert wird, während sie läuft. Die Direktmigration von virtuellen Gastmaschinen (live virtual machine guest migration) wird häufig von Unternehmen mit betriebsnotwendigen Systemen (mission critical systems) gewünscht. Herkömmliche Migrationssysteme führen allgemein eine Direktmigration (bzw. einen ”Austausch”) zwischen zwei Gastsystemen wie folgt durch. Gastsystem A wird auf die physische Maschine von Gastsystem B migriert, und dann wird Gastsystem B auf die physische Maschine von Gastsystem A migriert. Dieser herkömmliche Migrationsprozess erfordert jedoch, dass mindestens eine der physischen Maschinen genügend Hardware-Ressourcen aufweist, um das zusätzliche virtuelle Gastsystem zu unterstützen. Anders ausgedrückt, wenn mindestens eine physische Maschine nicht genügend Hardware-Ressourcen zum Unterstützen des zusätzlichen virtuellen Gastsystems aufweist, kann der Migrationsprozess nicht durchgeführt werden. Ebenso kann mit herkömmlichen Direktmigrationsprozessen zu jeder Zeit lediglich eine virtuelle Maschine migriert werden.
-
BESCHREIBUNG DER ERFINDUNG
-
Eine Ausführungsform der vorliegenden Erfindung stellt ein Verfahren zur symmetrischen Direktmigration von virtuellen Maschinen bereit. Das auf einem Computer ausgeführte Verfahren umfasst das Erzeugen eines ersten Abbilds von am längsten ungenutzten Seiten (least recently used map) für eine Reihe von Speicherseiten einer ersten virtuellen Maschine. Das erste Abbild von am längsten ungenutzten Seiten beinhaltet Metadaten für jede der Speicherseiten der ersten virtuellen Maschine. Die Metadaten umfassen eine physische Adressposition für jede der Speicherseiten der ersten virtuellen Maschine. Eine erste der Speicherseiten der ersten virtuellen Maschine und die Metadaten für die erste Speicherseite der ersten virtuellen Maschine werden von der ersten virtuellen Maschine an eine zweite virtuelle Maschine gesendet, während die erste virtuelle Maschine ausgeführt wird. Eine erste Speicherseite der zweiten virtuellen Maschine und Metadaten für die erste Speicherseite der zweiten virtuellen Maschine werden an der ersten virtuellen Maschine von der zweiten virtuellen Maschine empfangen. Die Speicherseiten der ersten virtuellen Maschine werden beruhend darauf, wie unlängst jede der Speicherseiten der ersten virtuellen Maschine genutzt wurden, in der Reihenfolge von einer ersten Stelle des ersten Abbilds von am längsten ungenutzten Seiten bis zu einer letzten Stelle des ersten Abbilds von am längsten ungenutzten Seiten angeordnet.
-
Die Speicherseite, die am längsten nicht genutzt wurde, wird durch die erste Stelle des ersten Abbilds von am längsten ungenutzten Seiten angezeigt. Die zuletzt genutzte Speicherseite wird durch die letzte Stelle des ersten Abbilds von am längsten ungenutzten Seiten angezeigt. Die erste Speicherseite der ersten virtuellen Maschine befindet sich an der ersten Stelle des ersten Abbilds von am längsten ungenutzten Seiten. Die erste Speicherseite der zweiten virtuellen Maschine befindet sich an einer entsprechenden ersten Stelle eines zweiten Abbilds von am längsten ungenutzten Seiten für die Speicherseiten der zweiten virtuellen Maschine.
-
Eine andere Ausführungsform der vorliegenden Erfindung stellt ein Datenverarbeitungssystem zur symmetrischen Direktmigration von virtuellen Maschinen bereit. Das Datenverarbeitungssystem umfasst einen Prozessor und einen Speicher, der für den Datenaustausch mit dem Prozessor verbunden ist. Eine Migrationsverwaltungseinheit (migration manager) ist für den Datenaustausch mit dem Speicher und dem Prozessor verbunden. Die Migrationsverwaltungseinheit erzeugt ein erstes Abbild von am längsten ungenutzten Seiten für eine Reihe von Speicherseiten einer ersten virtuellen Maschine. Das erste Abbild von am längsten ungenutzten Seiten beinhaltet Metadaten für jede der Speicherseiten der ersten virtuellen Maschine. Die Metadaten umfassen eine physische Adressposition für jede der Speicherseiten der ersten virtuellen Maschine. Eine erste der Speicherseiten der ersten virtuellen Maschine und die Metadaten für die erste Speicherseite der ersten virtuellen Maschine werden von der ersten virtuellen Maschine an eine zweite virtuelle Maschine gesendet, während die erste virtuelle Maschine ausgeführt wird. Eine erste Speicherseite der zweiten virtuellen Maschine und Metadaten für die erste Speicherseite der zweiten virtuellen Maschine werden an der ersten virtuellen Maschine von der zweiten virtuellen Maschine empfangen. Die Speicherseiten der ersten virtuellen Maschine werden beruhend darauf, wie unlängst jede der Speicherseiten der ersten virtuellen Maschine genutzt wurde, in der Reihenfolge von einer ersten Stelle des ersten Abbilds von am längsten ungenutzten Seiten bis zu einer letzten Stelle des ersten Abbilds von am längsten ungenutzten Seiten angeordnet. Die Speicherseite, die am längsten nicht genutzt wurde, wird durch die erste Stelle des ersten Abbilds von am längsten ungenutzten Seiten angezeigt. Die zuletzt genutzte Speicherseite wird durch die letzte Stelle des ersten Abbilds von am längsten ungenutzten Seiten angezeigt. Die erste Speicherseite der ersten virtuellen Maschine befindet sich an der ersten Stelle des ersten Abbilds von am längsten ungenutzten Seiten. Die erste Speicherseite der zweiten virtuellen Maschine befindet sich an einer entsprechenden ersten Stelle eines zweiten Abbilds von am längsten ungenutzten Seiten für die Speicherseiten der zweiten virtuellen Maschine.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Die vorliegende Erfindung wird nun lediglich beispielhaft unter Bezugnahme auf deren bevorzugte Ausführungsformen beschrieben, wie in den folgenden Figuren dargestellt:
-
1 zeigt ein Blockschaltbild, das eine Betriebsumgebung gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht;
-
2 veranschaulicht die logische Schichtung der Hardware- und Software-Architektur für eine emulierte Betriebsumgebung gemäß einer Ausführungsform der vorliegenden Erfindung;
-
3 veranschaulicht ein virtualisiertes Datenverarbeitungssystem, in dem sich zwei oder mehr virtuelle Maschinen auf derselben physischen Hardware befinden, gemäß einer Ausführungsform der vorliegenden Erfindung;
-
4 zeigt ein LRU-Abbild (least recently used, am längsten ungenutzt) für eine virtuelle Maschine gemäß einer Ausführungsform der vorliegenden Erfindung;
-
5 bis 9 zeigen die symmetrische Direktmigration zweier virtueller Maschinen gemäß einer Ausführungsform der vorliegenden Erfindung;
-
10 und 11 zeigen Betriebsablaufpläne, die einen symmetrischen Direktmigrationsprozess gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulichen; und
-
12 zeigt ein Blockschaltbild, das ein Datenverarbeitungssystem gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht.
-
AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
-
Verschiedene Ausführungsformen der vorliegenden Erfindung werden nachfolgend ausführlich unter Bezugnahme auf die beigefügten Zeichnungen erörtert.
-
Wenn ein Gast-Computersystem auf einem Host-Computersystem emuliert wird, wird das Gast-Computersystem „virtuelle Maschine” genannt, da das Gast-Computersystem in dem Host-Computersystem als reine Softwaredarstellung des Betriebs einer oder mehrerer spezifischer Hardware-Architekturen existiert. Die Begriffe Emulator, virtuelle Maschine und Prozessor-Emulation werden manchmal austauschbar verwendet, um die Fähigkeit zum Imitieren bzw. Emulieren der Hardware-Architektur eines gesamten Computersystems anzugeben. Der Betrieb dieser Komponenten wird in der virtuellen Maschine emuliert, die auf der Host-Maschine läuft. Ein auf der Betriebssystem-Software und der Hardware-Architektur des Host-Computers ausgeführtes Emulator-Programm imitiert den Betrieb des gesamten Gast-Computersystems.
-
Das Emulator-Programm dient als Übergabeelement zwischen der Hardware-Architektur der Host-Maschine und den durch die in der emulierten Umgebung laufende Software übermittelten Anweisungen. Bei diesem Emulator-Programm kann es sich um ein Host-Betriebssystem (HOS, host operating system) handeln, bei dem es sich um ein direkt auf der physischen Computer-Hardware laufendes Betriebssystem handelt. Alternativ kann es sich bei der emulierten Umgebung auch um ein Überwachungselement für virtuelle Maschinen (VMM, virtual machine monitor) handeln, bei dem es sich um eine Software-Schicht handelt, die direkt über der Hardware läuft und sämtliche Ressourcen der Maschine virtualisiert, indem sie Schnittstellen zeigt, die identisch zu der durch den VMM virtualisierten Hardware sind (wodurch es dem VMM gelingt, unbemerkt von über ihm laufenden Betriebssystemschichten zu bleiben). Ein Host-Betriebssystem und ein VMM können nebeneinander auf derselben physischen Hardware laufen.
-
Einer der Hauptvorteile einer virtuellen Maschine (VM) im Vergleich zu einer physischen Maschine besteht in der Fähigkeit, schnell und kostengünstig mehrere Instanzen derselben virtuellen Maschine zu erstellen. Wenn die Umsetzung der virtuellen Maschine es zulässt, können mehrere virtuelle Maschinen gleichzeitig in einer einzelnen Host-Maschinen-(Host-Computersystem-)Umgebung existieren, und die Ressourcen der Host-Maschine können unter den verschiedenen virtuellen Maschinen aufgeteilt werden. Diese flexible Zuordnung von Ressourcen wird in Kombination mit der Fähigkeit, virtuelle Maschinen von einer Host-Maschine auf eine andere zu verschieben bzw. zu „migrieren”, noch nützlicher. Die Fähigkeit, eine virtuelle Maschine schnell und einfach von einer Host-Maschine auf eine andere zu migrieren, ist zum Beispiel für „Lastausgleichs-” („load balancing”) Systeme, zum Durchführen von Hardware-Erweiterungen oder Software-Aktualisierungen oder zur Bewältigung einer Notfallwiederherstellung von Nutzen.
-
1 zeigt eine Betriebsumgebung gemäß einer Ausführungsform der vorliegenden Erfindung. Wie gezeigt beinhaltet die Betriebsumgebung 100 mehrere Datenverarbeitungssysteme, die für den Datenaustausch mit einem oder mehreren Netzwerken 106 verbunden sind (der Einfachheit halber werden lediglich zwei Systeme gezeigt). Bei einem ersten der Datenverarbeitungssysteme 102 handelt es sich um ein Quell-Host-System, das über das Netzwerk 106 für den Datenaustausch mit einem zweiten der Datenverarbeitungssysteme 104 verbunden ist, bei dem es sich um ein Ziel-Host-System handelt. Bei dem Netzwerk 106 kann es sich um jede beliebige Art von drahtgebundenem und/oder drahtlosem Datenübertragungsnetzwerk handeln. Bei dem Netzwerk 106 kann es sich zum Beispiel um ein Intranet, ein Extranet oder ein Verbundnetzwerk wie das Internet oder eine Kombination daraus handeln. Das Netzwerk 106 kann drahtlose, drahtgebundene und/oder Lichtwellenleiter-Verbindungen beinhalten.
-
Das Quell-Host-System 102 wird „Quell-Host-System” („source host”) genannt, da es eine oder mehrere virtuelle Maschinen 112 bereitstellt, und das Ziel-Host-System 104 wird „Ziel-Host-System” („target host”) genannt, da es sich dabei um das System handelt, auf das die virtuelle Maschine 112 auf dem Quell-Host-System 102 zu migrieren ist. Das Ziel-Host-System 104 kann auch Quell-Host-System für seine eigene virtuelle Maschine 122 genannt werden, und das Quell-Host-System 102 kann auch Ziel-Host-System für diese virtuelle Maschine 122 genannt werden, da in dieser Ausführungsform die virtuelle Maschine 122 auf dem Quell-Host-System 104 zu migrieren ist. Deshalb kann jedes der Datenverarbeitungssysteme ein Quell-Host-System in Bezug auf ein anderes System und ein Ziel-Host-System in Bezug auf ein anderes System sein. In der folgenden Beschreibung werden die Begriffe „erstes Datenverarbeitungssystem” und „zweites Datenverarbeitungssystem” verwendet, um sowohl auf ein Quell-Host-System in Bezug auf sich selbst als auch ein Ziel-Host-System in Bezug auf ein anderes System zu verweisen.
-
Das Quell-Host-System 102 kann als jede beliebige Art von Datenverarbeitungssystem funktionieren. In dieser Ausführungsform handelt es sich bei dem Quell-Host-System 102 um eine Hochgeschwindigkeits-Verarbeitungseinheit, die mindestens eine Verarbeitungsschaltung (z. B. eine CPU) umfasst, die in der Lage ist, Anweisungen zu lesen und auszuführen, und die zahlreiche Interaktionsanforderungen von Anwendungen und/oder Prozessen innerhalb des Systems 102 und/oder von Benutzersystemen wie einer gemeinsam genutzten physischen Ressource bearbeitet. In dieser Ausführungsform, in der Benutzer mit dem Quell-Host-System 102 Daten austauschen, können die Benutzer über die Benutzersysteme verschiedene Aufgaben auf dem Quell-Host-System 102 einleiten, z. B. das Entwickeln und Ausführen von Systemprüfungen, das Ausführen von Anwendungsprogrammen und das Einleiten einer Systemmigration. Während in 1 lediglich ein einzelnes Quell-Host-System 102 gezeigt ist, können leicht mehrere Host-Systeme realisiert werden, die über eine Direktverbindung oder über ein oder mehrere Netzwerke miteinander Daten austauschen. Mehrere Host-Systeme können zum Beispiel durch eine verteilte Netzwerkarchitektur miteinander verbunden sein. Das einzelne Quell-Host-System 102 kann auch eine Gruppe (cluster) von Host-Systemen darstellen, die gemeinsam Prozesse durchführen.
-
In dieser Ausführungsform greift das Quell-Host-System 102 auf Daten in einer Quell-Datenspeichereinheit 108 zu und speichert diese dort. Die Quell-Datenspeichereinheit 108 bezieht sich auf jede beliebige Art von Speicher und kann ein Sekundärspeicherelement (z. B. ein Festplattenlaufwerk, ein Band oder ein Speicherteilsystem) enthalten, das sich innerhalb oder außerhalb des Quell-Host-Systems 102 befindet. Datenarten, die in der Quell-Datenspeichereinheit 108 gespeichert werden können, beinhalten einen in einer oder mehreren virtuellen Quellmaschinen 112 (z. B. virtuellen Gastsystemen) enthaltenen Quellspeicher 110 sowie Migrationsdaten 111 (z. B. Datenstrukturen). In dieser Ausführungsform enthalten die Inhalte des Quellspeichers 110 die Speicherseiten 114.
-
Das System 102 dieser Ausführungsform enthält ebenfalls ein Abbild von am längsten ungenutzten Seiten (LRU-Abbild) 115, das während der Migration der Speicherseiten 114 eine Migrationsverwaltungseinheit 118 verwendet. Die Migrationspakete 117 werden in dieser Ausführungsform wahlweise zum Speichern von Informationen über physische Adresspositionen für jede der Speicherseiten 114 verwendet. Die Migrationspakete 117 werden während der Migration gemeinsam mit einer entsprechenden Speicherseite 114 an ein Zielsystem 104 gesendet. In dieser Ausführungsform sind in der Datenspeichereinheit 108 auch Konfigurationsdaten über eine virtuelle Quellmaschine und/oder Quell-Speicherzugriffsdaten gespeichert. Bei der in 1 gezeigten Quell-Datenspeichereinheit 108 handelt es sich um eine beispielhafte Einheit, die der Einfachheit und einer leichten Erklärung halber veranschaulicht ist. In dieser bzw. weiteren Ausführungsformen kann es mehrere Quell-Datenspeichereinheiten 108 geben, die von dem Quell-Host-System 102 genutzt werden.
-
In dieser Ausführungsform führt das Quell-Host-System 102 verschiedene Anwendungen aus, darunter einen Quell-Hypervisor 116 und eine oder mehrere virtuelle Maschinen 112. Der Begriff „Hypervisor” bezieht sich auf eine maschinennahe (low-level) Anwendung, die das Ausführen einer oder mehrere virtueller Maschinen unterstützt. Der Quell-Hypervisor 116 verwaltet den Zugriff auf Ressourcen des Quell-Host-Systems 102 und dient als Überwachungselement für virtuelle Maschinen, um die gleichzeitige Ausführung der virtuellen Maschinen zu unterstützen. Jede virtuelle Maschine kann spezifische Gastbetriebssysteme und mehrere Benutzersitzungen zum Ausführen von auf die Gastbetriebssysteme abzielend geschriebener Software unterstützen. Eine virtuelle Maschine kann zum Beispiel eine Instanz des Betriebssystems Linux® unterstützen, während eine zweite virtuelle Maschine eine Instanz des Betriebssystems z/OS® ausführt. Durch die virtuellen Maschinen können auch andere Gastbetriebssysteme von dem Quell-Hypervisor 116 unterstützt werden.
-
In dieser Ausführungsform enthält der Quell-Hypervisor 116 eine Migrationsverwaltungseinheit 118, die verschiedene Migrationsschritte durchführt, um den Quellspeicher 128 von der virtuellen Quellmaschine 112 in den Zielspeicher 120 auf einer virtuellen Zielmaschine 122 (z. B. ein virtuelles Gastsystem) zu migrieren. In dieser beispielhaften Ausführungsform verwaltet der Quell-Hypervisor 116 die Steuerung der Ausführung von virtuellen Maschinen auf dem Quell-Host-System 102 durch einen Steuerbus 124 für virtuelle Maschinen. Jeder Steuerbus 124 für virtuelle Maschinen kann einen Austausch von maschinennahen Steuerungsdaten wie Unterbrechungen, Einheitentreiberbefehle, Einheitentreiberdaten und ähnliches bearbeiten.
-
1 zeigt auch ein anderes Datenverarbeitungssystem 104, bei dem es sich um ein Ziel-Host-System für ein anderes System wie das Quell-Host-System 102 handelt. Das Ziel-Host-System 104 ist über das Netzwerk 106 für den Datenaustausch mit dem Quell-Host-System 102 verbunden. Das Ziel-Host-System 104 kann als jede beliebige Art von Datenverarbeitungssystem funktionieren. In dieser Ausführungsform handelt es sich bei dem Ziel-Host-System 104 um eine Hochgeschwindigkeits-Verarbeitungseinheit, die mindestens eine Verarbeitungsschaltung (z. B. eine CPU) umfasst, die in der Lage ist, Anweisungen zu lesen und auszuführen, und die zahlreiche Interaktionsanforderungen von Anwendungen und/oder Prozessen innerhalb des Systems 104 und/oder von Benutzersystemen wie einer gemeinsam genutzten physischen Ressource bearbeitet.
-
In dieser Ausführungsform, in der Benutzer mit dem Ziel-Host-System 104 Daten austauschen, können die Benutzer über die Benutzersysteme verschiedene Aufgaben auf dem Ziel-Host-System 104 einleiten, z. B. das Entwickeln und Ausführen von Systemprüfungen, das Ausführen von Anwendungsprogrammen und das Einleiten einer Systemmigration. Während in 1 lediglich ein einzelnes Ziel-Host-System 104 gezeigt ist, können leicht mehrere Host-Systeme realisiert werden, die über eine Direktverbindung oder über eine oder mehrere Netzwerke miteinander Daten austauschen. Mehrere Host-Systeme können zum Beispiel durch eine verteilte Netzwerkarchitektur miteinander verbunden sein. Das einzelne Ziel-Host-System 104 kann auch eine Gruppe (cluster) von Host-Systemen darstellen, die gemeinsam Prozesse durchführen.
-
In dieser Ausführungsform greift das Ziel-Host-System 104 auf Daten in einer Quell-Datenspeicher-Einheit 126 zu und speichert diese dort. Die Ziel-Datenspeichereinheit 126 bezieht sich auf jede beliebige Art von Speicher und kann ein Sekundärspeicherelement (z. B. ein Festplattenlaufwerk, ein Band oder ein Speicherteilsystem) enthalten, das sich innerhalb oder außerhalb des Ziel-Host-Systems 104 befindet. Datenarten, die in der Ziel-Datenspeichereinheit 126 gespeichert werden können, beinhalten einen in einer oder mehreren virtuellen Zielmaschinen 122 enthaltenen Zielspeicher 120 sowie Migrationsdaten 121 (z. B. Datenstrukturen). In dieser Ausführungsform enthalten die Inhalte des Zielspeichers 120 die Speicherseiten 128.
-
Das System 104 dieser Ausführungsform enthält ebenfalls ein Abbild von am längsten ungenutzten Seiten (LRU-Abbild) 129, das während der Migration der Speicherseiten 128 eine Migrationsverwaltungseinheit 132 verwendet. Die Migrationspakete 131 werden in dieser Ausführungsform wahlweise zum Speichern von Informationen über physische Adresspositionen für jede der Speicherseiten 128 verwendet. Die Migrationspakete 131 werden während der Migration gemeinsam mit einer entsprechenden Speicherseite 128 an ein Zielsystem 102 gesendet. In dieser Ausführungsform sind in der Datenspeichereinheit 126 auch Konfigurationsdaten über eine virtuelle Zielmaschine und/oder Ziel-Speicherzugriffsdaten gespeichert. Bei der in 1 gezeigten Ziel-Datenspeichereinheit 126 handelt es sich um eine beispielhafte Einheit, die der Einfachheit und einer leichten Erklärung halber veranschaulicht ist. In dieser bzw. weiteren Ausführungsformen kann es mehrere Ziel-Datenspeichereinheiten 126 geben, die von dem Ziel-Host-System 104 genutzt werden.
-
In dieser Ausführungsform führt das Ziel-Host-System 104 verschiedene Anwendungen aus, darunter einen Ziel-Hypervisor 130 und eine oder mehrere virtuelle Maschinen 122. Der Ziel-Hypervisor 130 verwaltet den Zugriff auf Ressourcen des Ziel-Host-Systems 104 und dient als Überwachungselement für virtuelle Maschinen, um die gleichzeitige Ausführung der virtuellen Maschinen zu unterstützen. Jede virtuelle Maschine kann spezifische Gastbetriebssysteme und mehrere Benutzersitzungen zum Ausführen von auf die Gastbetriebssysteme abzielend geschriebener Software unterstützen. Eine virtuelle Maschine kann zum Beispiel eine Instanz des Betriebssystems Linux® unterstützen, während eine zweite virtuelle Maschine eine Instanz des Betriebssystems z/OS® ausführt. Durch die virtuellen Maschinen können auch andere Gastbetriebssysteme von dem Ziel-Hypervisor 130 unterstützt werden.
-
In dieser Ausführungsform enthält der Ziel-Hypervisor 130 eine Migrationsverwaltungseinheit 132, die verschiedene Migrationsschritte durchführt, um den Zielspeicher 120 von der virtuellen Zielmaschine 122 in den Quellspeicher 110 auf einer virtuellen Quellmaschine 112 zu migrieren. Der Ziel-Hypervisor 130 verwaltet die Steuerung der Ausführung von virtuellen Maschinen 122 auf dem Ziel-Host-System 104 durch einen Steuerbus 134 für virtuelle Maschinen. Jeder Steuerbus 134 für virtuelle Maschinen kann einen Austausch von maschinennahen Steuerungsdaten wie Unterbrechungen, Einheitentreiberbefehle, Einheitentreiberdaten und ähnliches bearbeiten.
-
Aus konzeptioneller Sicht umfassen die Datenverarbeitungssysteme allgemein eine oder mehrere Software-Schichten, die auf einer Hardware-Grundschicht laufen. Diese Schichtung kann aus Abstraktionsgründen vorgenommen werden. Durch Festlegen der Schnittstelle für eine bestimmte Software-Schicht kann diese Schicht durch andere Schichten über ihr unterschiedlich umgesetzt werden. In einem gut durchdachten Computersystem kennt jede Schicht nur die Schicht unmittelbar unter sich (und ist nur von dieser abhängig). Dies ermöglicht das Ersetzen einer Schicht bzw. eines „Stapels” (mehrerer aneinander grenzender Schichten) ohne negative Auswirkung auf die Schichten über dieser Schicht bzw. diesem Stapel. Software-Anwendungen (obere Schichten) hängen zum Beispiel üblicherweise von niedrigeren Ebenen des Betriebssystems (niedrigeren Schichten) ab, um Dateien auf irgendeine Art nichtflüchtigen Speichers zu schreiben, und diese Anwendungen müssen nicht den Unterschied zwischen dem Schreiben von Daten auf eine Floppy-Disk, ein Festplattenlaufwerk oder einen Netzwerkordner kennen. Wenn diese untere Schicht durch neue Betriebssystemkomponenten zum Schreiben von Dateien ersetzt wird, bleibt das ohne Auswirkungen auf den Betrieb der Software-Anwendungen in der oberen Schicht.
-
Die Flexibilität geschichteter Software erlaubt es einer virtuellen Maschine (VM), eine virtuelle Hardware-Schicht zu bieten, bei der es sich tatsächlich um eine andere Software-Schicht handelt. Auf diese Weise kann eine VM die Illusion für die Software-Schichten über ihr erzeugen, dass diese Software-Schichten auf ihren eigenen privaten Computersystemen laufen, und somit können VMs es mehreren „Gastsystemen” gestatten, gleichzeitig auf einem einzelnen „Host-System” zu laufen.
-
Bei 2 handelt es sich um ein Schaubild, das die logische Schichtung der Hardware- und Software-Architektur für eine emulierte Betriebsumgebung in einem Datenverarbeitungssystem gemäß einer Ausführungsform der vorliegenden Erfindung darstellt. Ein Emulations-Programm 202 läuft auf einem Host-Betriebssystem 203 und/oder einer Hardware-Architektur 204. Das Emulations-Programm 202 emuliert eine Gast-Hardware-Architektur 206 und ein Gastbetriebssystem 208. Eine oder mehrere Software-Anwendungen 210 laufen wiederum auf dem Gastbetriebssystem 208. Auf Grund des Betriebs des Emulations-Programms 202 kann die Software-Anwendung 210 in der emulierten Betriebsumgebung aus 2 auf dem die emulierte Umgebung umfassenden Datenverarbeitungssystem laufen, obwohl die Software-Anwendung 210 so entworfen ist, dass sie auf einem Betriebssystem läuft, das allgemein inkompatibel mit dem Host-Betriebssystem und der Hardware-Architektur 204 ist.
-
3 veranschaulicht ein virtualisiertes Datenverarbeitungssystem 300 gemäß einer Ausführungsform der vorliegenden Erfindung. Das virtualisierte Datenverarbeitungssystem aus 3 umfasst eine Host-Betriebssystem-Software-Schicht (Host-OS) 302, die direkt über der physischen Computer-Hardware 304 läuft. Das Host-OS 302 virtualisiert sämtliche Ressourcen der Maschine durch das Zeigen von Schnittstellen, die identisch zu der Hardware sind, die das Host-OS virtualisiert (wodurch es dem Host-OS gelingt, unbemerkt von über ihm laufenden Betriebssystemschichten zu bleiben).
-
Über dem Host-OS 302 gibt es zwei Umsetzungen virtueller Maschinen (VMs): VM A 306, bei der es sich in dieser beispielhaften Ausführungsform um einen virtualisierten Intel 386-Prozessor handelt, und VM B 308, bei der es sich in dieser beispielhaften Ausführungsform um eine virtualisierte Version eines Prozessors aus der Motorola 680X0-Familie handelt. Über der VM 306 und 308 gibt es das Gastbetriebssystem (Gast-OS) A 310 bzw. Gast-OS B 312. Über dem Gast-OS A 310 laufen zwei Anwendungen: Anwendung A1 314 und Anwendung A2 316. Über dem Gast-OS B 312 befindet sich die Anwendung B1 318. Bei VM A 306 und VM B 308 handelt es sich um virtualisierte Computer-Hardware-Entsprechungen, die als Software-Konstruktionen existieren und auf Grund des Vorhandenseins spezialisierten Software-Codes möglich gemacht werden, der dem Gast-OS A 310 und dem Gast-OS B 312 nicht nur VM A 306 bzw. VM B 308 zeigt sondern auch sämtliche Software-Schritte durchführt, die notwendig sind, damit Gast-OS A 310 und Gast-OS B 312 mit der echten physischen Computer-Hardware 304 indirekt Daten austauschen können. Diese vollständige Funktionalität kann auch Überwachungselement für virtuelle Maschinen (VMM) genannt werden, wobei das VMM in Ausführungsformen wie der beispielhaften aus 3 einen Teil des Host-Betriebssystems 302 umfasst.
-
In anderen Ausführungsformen kann es sich bei dem VMM um eine Anwendung handeln, die über dem Host-Betriebssystem 302 läuft und lediglich durch das Host-Betriebssystem 302 Daten mit der Computer-Hardware austauscht. In wiederum anderen Ausführungsformen umfasst das VMM ein teilweise unabhängiges Software-System, das auf einigen Ebenen über das Host-Betriebssystem 302 indirekt mit der Computer-Hardware 304 Daten austauscht, aber auf anderen Ebenen direkt mit der Computer-Hardware 304 Daten austauscht (ähnlich der Art, in der das Host-Betriebssystem direkt mit der Computer-Hardware Daten austauscht). Und in noch weiteren Ausführungsformen kann das VMM ein vollständig unabhängiges Software-System umfassen, das auf allen Ebenen direkt mit der Computer-Hardware 304 Daten austauscht (ähnlich der Art, in der das Host-Betriebssystem direkt mit der Computer-Hardware Daten austauscht), ohne das Host-Betriebssystem 302 zu verwenden (obwohl es noch immer mit dem Host-Betriebssystem 302 insofern Daten austauscht, als es die Verwendung der Computer-Hardware 304 koordiniert und Konflikte und ähnliches vermeidet).
-
Es wird davon ausgegangen, dass alle dieser Abwandlungen zur Umsetzung des VMM alternative Ausführungsformen zum Durchführen der verschiedenen hierin beschriebenen Prozesse bilden, und die vorliegende Erfindung ist durch diese alternativen Ausführungsformen nicht auf eine bestimmte VMM-Konfiguration beschränkt. Außerdem sollte jeglicher Bezug auf den Datenaustausch zwischen den Anwendungen 314, 316 und 318 über VM A 306 und/oder VM B 308 (voraussichtlich in einem Hardware-Emulations-Szenario) tatsächlich als Datenaustausch zwischen den Anwendungen 314, 316 und 318 und einem VMM angesehen werden. Gleichermaßen sollte jeder Bezug auf den Datenaustausch zwischen den Anwendungen VM A 306 und/oder VM B 308 mit dem Host-Betriebssystem 302 und/oder der Computer-Hardware 304 (voraussichtlich zur direkten oder indirekten Ausführung von Computeranweisungen auf der Computer-Hardware 102) tatsächlich als Datenaustausch zwischen dem VMM und dem Host-Betriebssystem 302 bzw. der Computer-Hardware 304 angesehen werden, wie jeweils zutreffend.
-
Das virtualisierte Datenverarbeitungssystem 300 kann optional wie in 3 gezeigt über ein Netzwerk 106 für den Datenaustausch mit einem anderen virtualisierten Datenverarbeitungssystem 301 verbunden sein. Die gestrichelte Linie 303 um das zweite virtualisierte Datenverarbeitungssystem 301 zeigt an, dass es sich hierbei um eine andere Ausführungsform der vorliegenden Erfindung handelt. Das zweite virtualisierte Datenverarbeitungssystem 301 umfasst gleichartige Komponenten wie das oben erörterte erste virtualisierte Datenverarbeitungssystem 300.
-
In Ausführungsformen der vorliegenden Erfindung wird eine Direktmigration von virtuellen Maschinen (virtuellen Gastsystemen) zwischen einer oder mehreren virtuellen Maschinen 112 auf einem ersten Datenverarbeitungssystem 102 und einem oder mehreren virtuellen Maschinen 122 auf mindestens einem zweiten Datenverarbeitungssystem 104 durchgeführt. Bei diesem Direktmigrationsprozess handelt es sich um einen symmetrischen Direktmigrationsprozess, der die virtuelle Maschine 112 auf dem ersten Datenverarbeitungssystem 102 auf das zweite Datenverarbeitungssystem 104 migriert und die virtuelle Maschine 122 auf dem zweiten Datenverarbeitungssystem 104 auf das erste Datenverarbeitungssystem 102 migriert. In der Ausführungsform in 3, in der zwei virtualisierte Datenverarbeitungssysteme 300 und 301 miteinander verbunden sind, kann eine symmetrische Migration von virtuellen Maschinen über physische Host-Systeme hinweg und nicht nur innerhalb eines Host-Systems geschehen, wenngleich das auch möglich ist. OS A 210 kann zum Beispiel mit einem beliebigen aus OS B 312, OS M 320 bzw. OS N 322 ausgetauscht werden. Das Austauschen eines Betriebssystems wie OS B 312 innerhalb desselben Host-Systems ist unter anderem nützlich für das Aktualisieren und Mischen von virtuellen Maschinen. Das Migrieren über mehrere physische Host-Systeme hinweg ist unter anderem für Austauschszenarien für fehlerhafte Maschinen nützlich. Es sei auch bemerkt, dass es sich bei jedem der Betriebssysteme 310, 312, 320 und 322 um einen anderen Hypervisor mit deren unterstützten Gastsystemen handeln kann.
-
Die symmetrische Direktmigration der vorliegenden Erfindung ist vorteilhaft, da sie selbst dann durchgeführt werden kann, wenn die physischen Maschinen der virtuellen Gastsysteme nicht genügend Ressourcen zum Unterstützen ihrer eigenen Gastsysteme und der neu migrierten Gastsysteme aufweisen. Dieser symmetrische Direktmigrationsprozess kann ebenfalls in Situationen verwendet werden, in denen Mehrfachvergabe (overcommit) keine Option ist. Speicherseiten werden zur im Wesentlichen gleichen Zeit von einem System in eine Zwischendarstellung auf einem anderen System migriert und umgekehrt. Unter Verwendung dieser Zwischendarstellung wird die ursprüngliche Darstellung der virtuellen Maschine auf dem neuen System erst kurz vor Aktivierung der migrierten virtuellen Maschine auf dem neuen System wiederhergestellt. Die Kombination der Verwendung eines logischen LRU-Abbilds zum Steuern der Seiten, die ausgetauscht werden (im Gegensatz zu der herkömmlicherweise verwendeten physischen Adressanordnung) ermöglicht einen bedarfsweisen Seitenabruf (demand paging), wenn eine vorherige Übertragung rückgängig gemacht werden muss. Das Kennzeichnen von Speicherseiten mit Metadaten gestattet es, „Fehler” in einer früheren Seitenauswahl unter Anwendung eines nicht offensichtlichen Austauschs (non-obvious swap) rückgängig zu machen. Für das letztendliche Neustarten eines Gastsystems kann eine Sortierroutine verwendet werden, um die LRU-Darstellung in die ursprüngliche physische Darstellung zurückzuverwandeln.
-
In Ausführungsformen der vorliegenden Erfindung pflegt jede Migrationsverwaltungseinheit ein Abbild von am längsten ungenutzten Seiten (LRU-Abbild) der von der entsprechenden virtuellen Maschine verwendeten Speicherseiten. Zum Umsetzen eines LRU-Abbilds kann jeder beliebige Mechanismus angewendet werden, z. B. das Pflegen eines Stapels von zugeordneten Seitenzahlen. Wenn auf eine Seite verwiesen wird, wird die entsprechende Seitenzahl der Seite an die oberste Stelle des Stapels verschoben. Wenn eine Seite ausgetauscht wird, wird die entsprechende Seitenzahl der Seite von dem Stapel entfernt. Das Verwenden des LRU-Abbilds stellt sicher, dass die Speicherseiten, deren baldige Wiederverwendung am unwahrscheinlichsten ist, vor denjenigen migriert werden, deren baldige Wiederverwendung wahrscheinlicher ist. Dies ermöglicht es, dass die Migration stattfindet, ohne den Betrieb der virtuellen Maschinen zu stören, und macht den Migrationsprozess für den Benutzer transparent. Anders ausgedrückt, die Arbeitsschritte der virtuellen Maschine werden während des Migrationsprozesses nicht angehalten. Weitere Ausführungsformen der vorliegenden Erfindung verwenden an Stelle eines LRU-Abbilds ein anderes Mittel.
-
Neben dem Erstellen des LRU-Abbilds der Speicherseiten überwacht die Migrationsverwaltungseinheit ebenfalls die physische Adresse der Speicherseiten. In einer Ausführungsform zum Beispiel pflegt die Migrationsverwaltungseinheit für jede Speicherseite unter Verwendung eines oder mehrerer verfügbarer Bits innerhalb der Speicherseite die physische Relativadresse der Seite (physical page Offset) des ursprünglichen Host-Systems in der Speicherseite selbst. Anders ausgedrückt, die Migrationsverwaltungseinheit bettet die physische Adresse der Speicherseite in diese selbst ein. In einer alternativen Ausführungsform pflegt die Migrationsverwaltungseinheit die physische Adresse einer Speicherseite an einer Stelle, die sich außerhalb der Speicherseite befindet. Die Migrationsverwaltungseinheit kann zum Beispiel diese physischen Adressdaten in einem Protokoll pflegen, das sich außerhalb der Speicherseite befindet. Immer dann, wenn eine Speicherseite von einem physischen System auf ein anderes physisches System ausgetauscht wird, sendet die Migrationsverwaltungseinheit ein Paket, das die physische Adresse der ausgetauschten Speicherseite gemeinsam mit der Speicherseite enthält.
-
4 zeigt ein beispielhaftes LRU-Abbild für eine virtuelle Maschine in einem Datenverarbeitungssystem gemäß einer Ausführungsform der vorliegenden Erfindung. Insbesondere zeigt 4 ein LRU-Abbild 402 für die Speicherseiten 406 der virtuellen Maschine A (z. B. Gastsystem A) 112 auf dem ersten Datenverarbeitungssystem 102 und ein LRU-Abbild 404 für die Speicherseiten 408 der virtuellen Maschine B (z. B. Gastsystem B) 122 auf dem zweiten Datenverarbeitungssystem. Die Speicherseiten 406 bzw. 408 sind so angeordnet, dass die am längsten ungenutzte an oberster Stelle des Abbilds und die zuletzt genutzte an unterster Stelle des Abbilds steht. In dieser Ausführungsform enthält der Eintrag für jede Speicherseite 406 bzw. 408 die Metadaten 410 bzw. 412, welche die physische Relativadresse dieser Speicherseite innerhalb deren ursprünglichem Host-System enthalten. Wie oben erörtert, handelt es sich hierbei lediglich um eine beispielhafte Ausführungsform, und die physischen Adressdaten der Speicherseite können in weiteren Ausführungsformen außerhalb der Speicherseite selbst gespeichert werden. Diese Daten könnten zum Beispiel in einem Hardware-Register gespeichert werden.
-
In dieser Ausführungsform tauschen die Migrationsverwaltungseinheiten 118 und 132 des ersten und des zweiten Systems 102 bzw. 104 Daten miteinander aus, um festzustellen, wann die Arbeitsschritte der symmetrischen Direktmigration durchgeführt werden sollen. Wenn ein System zum Beispiel einen Lastausgleich durchführen muss, tauschen die Migrationsverwaltungseinheiten 118 und 132 Daten miteinander aus, um die Arbeitsschritte der symmetrischen Direktmigration einzuleiten. Wenn beide Systeme 102 und 104 gleichzeitig eine Seitenanforderung senden, können verschiedene Regeln/Richtlinien umgesetzt werden, um zu bestimmen, welches System die erste Speicherseite austauscht.
-
Wenn ein Arbeitsschritt der symmetrischen Direktmigration durchzuführen ist, ruft jede Migrationsverwaltungseinheit 118 bzw. 132 die von der virtuellen Maschine auf dem anderen System benötigten Hardware-Ressourcen ab. Anders ausgedrückt, jede Migrationsverwaltungseinheit 118 bzw. 132 stellt die Größe der virtuellen Maschine fest, die auf das System dieser Migrationsverwaltungseinheit zu migrieren ist. Dies geschieht, da die Speicherseiten bei der symmetrischen Direktmigration symmetrisch ausgetauscht werden. Wenn eine virtuelle Maschine weniger Speicherseiten als die andere aufweist, haben die zusätzlichen Speicherseiten in der größeren virtuellen Maschine folglich keine entsprechende Speicherseite in der kleineren virtuellen Maschine zum Austauschen. Deshalb füllt bei unterschiedlich großen virtuellen Maschinen 112 bzw. 122 die Migrationsverwaltungseinheit, welche die kleinere virtuelle Maschine verwaltet, in dieser Ausführungsform die kleinere virtuelle Maschine größentechnisch so auf, dass sie im Wesentlichen mit der Größe der größeren virtuellen Maschine übereinstimmt. Die Migrationsverwaltungseinheit der kleineren virtuellen Maschine kann zum Beispiel zu der kleineren virtuellen Maschine einen hohen Speicherbereich (highmem) logisch hinzufügen. Ebenso muss jede Migrationsverwaltungseinheit eine Seite freien Speichers reservieren, um das Austauschen und Sortieren von Seiten durchzuführen. Alternativ kann der zusätzliche Platz als Hardware-Funktions-Register (hardware feature register) umgesetzt werden. In einer derartigen Ausführungsform wird das Hardware-Funktions-Register für das Austauschen und Sortieren der Seiten verwendet, wodurch der Bedarf für eine freie Seite beseitigt wird. Das die physische Adresse der Seiten umfassende Paket wird noch immer an das Ziel-Host-System gesendet.
-
5 bis 9 zeigen eine beispielhafte symmetrische Direktmigration von virtuellen Maschinen gemäß einer Ausführungsform der vorliegenden Erfindung. 5 zeigt ein logisches Abbild 502 für eine virtuelle Maschine 112 auf dem ersten Datenverarbeitungssystem 102 und ein logisches Abbild 504 für eine virtuelle Maschine 122 auf dem zweiten Datenverarbeitungssystem 104. Während die virtuellen Maschinen 112 bzw. 122 in dem Beispiel aus den 5 bis 9 dieselbe Anzahl von Speicherseiten aufweisen, würde, wenn eine der virtuellen Maschinen bezüglich Speicherseiten kleiner wäre, die kleinere virtuelle Maschine in dieser Ausführungsform größentechnisch aufgefüllt werden, damit sie im Wesentlichen mit der Größe der größeren virtuellen Maschine übereinstimmt.
-
Wie in 5 gezeigt weist die virtuelle Maschine 112 eine erste Speicherseite 506 mit eingebetteten Metadaten 508 auf, welche die physische Relativadresse der Speicherseite 506 auf deren ursprünglichem/Quellsystem 102 anzeigen. Die virtuelle Maschine 112 weist auch eine zweite Speicherseite 510 mit eingebetteten Metadaten 512 auf, welche die physische Relativadresse der Speicherseite 510 auf deren ursprünglichem/Quellsystem 102 anzeigen. Eine dritte Speicherseite 514 weist eingebettete Metadaten 516 auf, welche die physische Relativadresse der Speicherseite 516 auf deren ursprünglichem/Quellsystem 102 anzeigen. Eine vierte Speicherseite 518 weist eingebettete Metadaten 520 auf, welche die physische Relativadresse der Speicherseite 518 auf deren ursprünglichem/Quellsystem 102 anzeigen. Die virtuelle Maschine 112 weist auch eine fünfte Speicherseite 520 mit eingebetteten Metadaten 522 auf, welche die physische Relativadresse der Speicherseite 520 auf deren ursprünglichem/Quellsystem 102 anzeigen.
-
Die virtuelle Maschine 122 weist eine erste Speicherseite 526 mit eingebetteten Metadaten 528 auf, welche die physische Relativadresse der Speicherseite 526 auf deren ursprünglichem/Quellsystem 104 anzeigen. Die virtuelle Maschine 122 weist auch eine zweite Speicherseite 530 mit eingebetteten Metadaten 532 auf, welche die physische Relativadresse der Speicherseite 520 auf deren ursprünglichem/Quellsystem 104 anzeigen. Eine dritte Speicherseite 534 weist eingebettete Metadaten 536 auf, welche die physische Relativadresse der Speicherseite 534 auf deren ursprünglichem/Quellsystem 104 anzeigen. Eine vierte Speicherseite 538 weist eingebettete Metadaten 540 auf, welche die physische Relativadresse der Speicherseite 538 auf deren ursprünglichem/Quellsystem 104 anzeigen. Die virtuelle Maschine 122 weist auch eine fünfte Speicherseite 542 mit eingebetteten Metadaten 544 auf, welche die physische Relativadresse der Speicherseite 542 auf deren ursprünglichem/Quellsystem 104 anzeigen.
-
Wenn der symmetrische Direktmigrationsprozess anfängt, kopiert jede Migrationsverwaltungseinheit 118 bzw. 132 die seitenweise ausgelagerten (paged out) Speicherseiten in ihrem Datenspeicher 108 bzw. 126 in den Datenspeicher des anderen Systems. Die Migrationsverwaltungseinheit 118 auf dem ersten Datenverarbeitungssystem 102 kopiert zum Beispiel ihre Seitenadressierungs-Datensätze (paging data sets) in den Datenspeicher 126 des zweiten Datenverarbeitungssystems 104, und die Migrationsverwaltungseinheit 132 auf dem zweiten Datenverarbeitungssystem 104 kopiert ihre Seitenadressierungs-Datensätze in den Datenspeicher 108 des ersten Datenverarbeitungssystems 102. Die Speicherseiten 506, 510, 514, 518 und 522 der virtuellen Maschine A 112 und die Speicherseiten 526, 530, 534, 538 und 542 der virtuellen Maschine B 122 werden symmetrisch von oben nach unten in den LRU-Abbildern 502 und 504 der virtuellen Maschine 112 bzw. 122 ausgetauscht.
-
6 zeigt, dass in dieser Ausführungsform zunächst ein symmetrischer Austausch der ersten Speicherseiten 506 und 526 in den LRU-Abbildern 502 bzw. 504 der virtuellen Maschinen 112 bzw. 122 stattfindet. Wie gezeigt befindet sich die erste Speicherseite 506 der virtuellen Maschine A 112 nun an derselben Position des LRU-Abbilds 504 der virtuellen Maschine B, wo sich die erste Speicherseite 526 der virtuellen Maschine B 122 befand. Die erste Speicherseite 526 der virtuellen Maschine B 122 befindet sich nun an derselben Position des LRU-Abbilds 502 der virtuellen Maschine A, wo sich die erste Speicherseite 506 der virtuellen Maschine A 112 befand. Dieser symmetrische Austausch wird in dieser Ausführungsform verfolgt, indem die LRU-Hinweisadressen 602 bzw. 604 für die virtuellen Maschinen nach Beendigung eines Austauschs simultan vorgerückt werden. In dieser Ausführungsform wird auf jedem System zusätzlicher Platz für diese Hinweisadressen 602 bzw. 604 zugewiesen, wobei das nicht erforderlich ist. Alternativ kann der zusätzliche Platz als Hardware-Funktions-Register (hardware feature register) umgesetzt werden.
-
7 zeigt, dass zusätzliche symmetrische Austauschschritte durchgeführt wurden. Wie gezeigt befindet sich die zweite Speicherseite 510 der virtuellen Maschine A 122 nun an derselben Position des LRU-Abbilds 504 der virtuellen Maschine B, wo sich die zweite Speicherseite 530 der virtuellen Maschine B 122 befand. Die zweite Speicherseite 530 der virtuellen Maschine B 122 befindet sich nun an derselben Position des LRU-Abbilds 502 der virtuellen Maschine A, wo sich die zweite Speicherseite 510 der virtuellen Maschine A 112 befand. Ferner befindet sich die dritte Speicherseite 514 der virtuellen Maschine A 122 nun an derselben Position des LRU-Abbilds 504 der virtuellen Maschine B, wo sich die dritte Speicherseite 534 der virtuellen Maschine B 122 befand. Die dritte Speicherseite 534 der virtuellen Maschine B 122 befindet sich nun an derselben Position des LRU-Abbilds 502 der virtuellen Maschine A, wo sich die dritte Speicherseite 514 der virtuellen Maschine A 112 befand. Dieser Prozess wird so lange fortgeführt, bis sämtliche Speicherseiten symmetrisch ausgetauscht wurden.
-
Sollte eine der virtuellen Maschinen an einem beliebigen Punkt während der symmetrischen Direktmigration eine ihrer eigenen Seiten benötigen, die bereits ausgetauscht wurde (d. h., die Seite wurde bereits wie durch die sich logisch über der Hinweisadresse in dem entsprechenden LRU-Abbild befindliche Seite angezeigt an das andere System gesendet), kann diese virtuelle Maschine diese fehlende Seite von dem anderen System anfordern. Bei Auftreten dieser Anforderung muss die angeforderte Seite zurück zu dem ursprünglichen Host-System getauscht werden. 8 zeigt ein Beispiel, in dem die virtuelle Maschine B ihre Speicherseite 514 mit Relativadresse „2” von dem zweiten System 104 zurück benötigt. Diese zurückgetauschte Seite kann nicht einfach irgendwo innerhalb des Datenspeichers 108 des ursprünglichen Host-Systems 102 platziert werden, da dies zu einer falschen Sortierung am Ende der Austauschphase führen könnte. Deshalb kehrt die Migrationsverwaltungseinheit in dieser Ausführungsform einen vorherigen symmetrischen Seitenaustausch um, indem die angeforderte Seite, die zurückgetauscht wird, in dem LRU-Abbild auf der Seite des Anforderers ganz unten platziert wird. Die symmetrisch zugeordnete Seite, die von den Anforderern an die ursprüngliche Seite zurückgetauscht wird, wird an der Stelle platziert, zu der die Hinweisadresse vorgerückt wurde. Das Austauschen kann normal fortgeführt werden, da die Symmetrie des LRU-Abbilds nicht durcheinander gebracht wurde.
-
Außerdem können auch Mechanismen zum Verlangsamen eines Gastsystems und Packen des Registerzustands realisiert werden. In einigen Ausführungsformen werden ein oder mehrere Mechanismen zum Verlangsamen eines Gastsystems verwendet, wenn der gewünschte Fortschritt nicht erzielt wird. Wenn ein Gastsystem mit voller Geschwindigkeit läuft, kann es während eines bestimmten Zeitabschnitts zum Beispiel auf 1000 Seiten verweisen. Es ist wahrscheinlich, dass einige dieser 1000 Seiten bereits an das Zielsystem gesendet wurden. Wenn das Quellsystem diese Seiten nun zurückerhalten und diese Seiten zu einem späteren Zeitpunkt, zu dem das Gastsystem mit diesen Seiten fertig ist, wieder aussenden muss, verlangsamt das den Migrationsprozess drastisch. Wenn das Gastsystem langsamer läuft, kann es in demselben Zeitabschnitt lediglich auf 100 Seiten anstatt auf 1000 Seiten verweisen, und das Quellsystem muss nicht so viele Seiten von dem Zielsystem zurückerhalten. Ein einfaches Schema zum Verlangsamen des Gastsystems besteht in der Herabsetzung dessen Priorität (wenn das Host-System eine auf Prioritäten beruhende CPU-Ablaufplanung anwendet). Mit einer niedrigeren Priorität erhält das Gastsystem weniger CPU-Zyklen und läuft somit langsamer. Nachdem die meisten der Seiten auf das Zielsystem übertragen wurden, werden auch die Inhalte der Register übertragen, da der Systemstatus für dieses Gastsystem auf dem Zielsystem identisch zu dem ursprünglichen Status auf dem Quellsystem sein sollte. Das Gastsystem wird für die Übertragung des Registerzustands (und jeglicher restlicher Seiten) in den Ruhezustand versetzt.
-
8 zeigt, dass die von der virtuellen Maschine A 112 zurückgeforderte Speicherseite 514 in diesem Beispiel ganz unten in dem LRU-Abbild 502 für die virtuelle Maschine A 112 platziert wird. Die Speicherseite 534 der virtuellen Maschine B 122, die der zurückgetauschten Speicherseite 514 symmetrisch zugeordnet war, wird ebenfalls zurück auf das ursprüngliche System 104 an eine Position in dem LRU-Abbild 504 getauscht, zu der die Hinweisadresse vorgerückt wurde. Da die zurückgetauschte Speicherseite 514 ganz unten in ihrem ursprünglichen LRU-Abbild 502 platziert wird und die entsprechende symmetrisch zugeordnete Speicherseite 534 zurück zu ihrem ursprünglichen Host-System 104 getauscht wurde, werden die Speicherseiten 518 bzw. 522 an der Stelle und unter der Stelle, auf welche die Hinweisadresse 602 bei Anforderung des Zurücktauschens der Seite deutet, wie in 8 gezeigt in dem LRU-Abbild 502 um eine Position nach oben verschoben.
-
Sobald der symmetrische Direktmigrationsprozess beendet ist (d. h., alle der Speicherseiten 506, 510, 514, 518 und 522 der virtuellen Maschine A 112 wurden auf das zweite Datenverarbeitungssystem 104 migriert und alle der Speicherseiten 526, 530, 534, 538 und 542 der virtuellen Maschine B wurden auf das erste Datenverarbeitungssystem 102 migriert), sortieren die Migrationsverwaltungseinheiten 118 bzw. 132 vor Aktivierung der Gastsysteme auf dem System wie in 9 gezeigt die Speicherseiten nach ihren physischen Adressen, die in den Seiten eingebettet bzw. in einem separaten Paket während des Austauschprozesses enthalten sind. Anders ausgedrückt, jede Migrationsverwaltungseinheit 118 bzw. 132 sortiert die Speicherseiten nach ihren ursprünglichen physischen Metadaten und richtet die Speicherseiten nach diesen physischen Adressen aus.
-
10 und 11 zeigen Betriebsablaufpläne, die einen Prozess für die symmetrische Migration zweier oder mehrerer virtueller Maschinen gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulichen. Die Betriebsabläufe der 10 und 11 können während des Migrationsprozesses auf beiden Datenverarbeitungssystemen gleichzeitig durchgeführt werden. Der Betriebsablauf in 10 beginnt mit Schritt 1002 und führt direkt zu Schritt 1004. Die Migrationsverwaltungseinheit bettet in Schritt 1004 Positionsdaten über die physische Adresse jeder Speicherseite in die Speicherseiten selbst ein. Alternativ kann die Migrationsverwaltungseinheit diese Informationen außerhalb der Speicherseiten speichern und ein getrenntes Paket senden, das diese Adressdaten während der Migration zusammen mit den Speicherseiten umfasst.
-
Die Migrationsverwaltungseinheit pflegt in Schritt 1006 ein LRU-Abbild für die Speicherseiten. Die Migrationsverwaltungseinheit stellt in Schritt 1008 fest, ob ein symmetrischer Direktmigrationsprozess eingeleitet wurde. Wenn das Ergebnis dieser Feststellung negativ ist, stellt die Migrationsverwaltungseinheit wiederum fest, ob ein symmetrischer Direktmigrationsprozess eingeleitet wurde. Wenn das Ergebnis dieser Feststellung positiv ist, stellt die Migrationsverwaltungseinheit in Schritt 1010 fest, ob die andere virtuelle Maschine (d. h. die virtuelle Maschine, die auf das System hinüber zu migrieren ist) gleich groß ist wie die von dem System bereitgestellte virtuelle Maschine.
-
Wenn das Ergebnis dieser Feststellung positiv ist, fährt die Steuerung mit Schritt 1018 fort. Wenn das Ergebnis dieser Feststellung negativ ist, ermittelt die Migrationsverwaltungseinheit in Schritt 1012, ob die andere virtuelle Maschine größer ist als die bereitgestellte virtuelle Maschine. Wenn das Ergebnis dieser Feststellung negativ ist, ermittelt die Migrationsverwaltungseinheit in Schritt 1014, ob die andere Migrationsverwaltungseinheit die Größe der anderen virtuellen Maschine angepasst hat. Wenn das Ergebnis dieser Feststellung positiv ist, fährt die Steuerung mit Schritt 1016 fort. Wenn das Ergebnis der Feststellung in Schritt 1012 positiv ist, füllt die Migrationsverwaltungseinheit in Schritt 1016 die bereitgestellte virtuelle Maschine größentechnisch auf, damit sie im Wesentlichen mit der Größe der anderen virtuellen Maschine übereinstimmt.
-
Die Migrationsverwaltungseinheit tauscht in Schritt 1018 jede Speicherseite in dem LRU-Abbild beginnend von oben in dem Abbild symmetrisch mit einer symmetrisch zugeordneten Position in dem anderen System aus. Die Migrationsverwaltungseinheit empfängt ebenso symmetrisch eine entsprechende Speicherseite von dem anderen System und platziert diese erhaltene Speicherseite an der Stelle der Speicherseite, die symmetrisch in dem System ausgetauscht wurde. Die Migrationsverwaltungseinheit rückt in Schritt 1020 nach dem Austausch die Hinweisadresse in dem LRU-Abbild vor. Die Steuerung fährt dann mit Schritt 1102 in 11 fort.
-
Die Migrationsverwaltungseinheit stellt in Schritt 1102 fest, ob das Host-System die Rückgabe einer ausgetauschten Seite benötigt. Wenn das Ergebnis dieser Feststellung positiv ist, fordert die Migrationsverwaltungseinheit in Schritt 1104 die Seite von dem Zielsystem zurück. Die Migrationsverwaltungseinheit empfängt in Schritt 1106 die angeforderte Seite und platziert die empfangene Seite ganz unten in dem LRU-Abbild. Die Steuerung fährt dann mit Schritt 1110 fort.
-
Wenn das Ergebnis der Feststellung in Schritt 1102 negativ ist, stellt die Migrationsverwaltungseinheit in Schritt 1110 fest, ob das Zielsystem die Rückgabe einer ausgetauschten Seite benötigt. Wenn das Ergebnis dieser Feststellung positiv ist, sendet die Migrationsverwaltungseinheit in Schritt 1112 die benötigte Seite zurück an das Zielsystem. Die Migrationsverwaltungseinheit erhält in Schritt 1114 eine entsprechende Speicherseite von dem Zielsystem zurück, die der an das Zielsystem zurückgesendeten Speicherseite symmetrisch zugeordnet war. Die Steuerung fährt dann mit Schritt 1116 fort.
-
Wenn das Ergebnis der Feststellung in Schritt 1110 negativ ist, stellt die Migrationsverwaltungseinheit in Schritt 1116 fest, ob sämtliche Speicherseiten symmetrisch ausgetauscht wurden. Wenn das Ergebnis dieser Feststellung negativ ist, fährt die Steuerung mit Schritt 1018 in 10 fort. Wenn das Ergebnis dieser Bestimmung positiv ist (d. h., die virtuellen Maschinen wurden symmetrisch ausgetauscht), analysiert die Migrationsverwaltungseinheit in Schritt 1118 jede symmetrisch ausgetauschte Speicherseite bzw. ein mit jeder Speicherseite erhaltenes externes Paket, um die jeder Speicherseite zugehörige physische Adresse zu bestimmen. Die Migrationsverwaltungseinheit richtet in Schritt 1120 jede der von dem Zielsystem empfangenen Speicherseiten auf der Grundlage deren physischer Adressdaten aus. Die Migrationsverwaltungseinheit aktiviert in Schritt 1122 die migrierte virtuelle Maschine. Der Steuerungsablauf endet dann in Schritt 1124.
-
12 zeigt ein Blockschaltbild, das ein Datenverarbeitungssystem gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht. Bei dem Datenverarbeitungssystem 1200 kann es sich zum Beispiel um jedes beliebige der Datenverarbeitungssysteme aus 1 handeln und es kann die oben in Bezug auf diese Systeme beschriebenen Komponenten enthalten. Das Datenverarbeitungssystem 1200 beruht auf einem entsprechend konfigurierten Verarbeitungssystem, das so eingerichtet ist, dass es eine oder mehrere Ausführungsformen der vorliegenden Erfindung umsetzen kann. Jedes entsprechend konfigurierte Verarbeitungssystem kann gleichermaßen durch Ausführungsformen der vorliegenden Erfindung als das Datenverarbeitungssystem 1200 verwendet werden.
-
Das Datenverarbeitungssystem 1200 enthält einen Computer 1202. Der Computer 1202 weist einen oder mehrere mit einem Hauptspeicher 1206 verbundene Prozessoren 1204, eine Massenspeicher-Schnittstelle 1208 und eine Netzwerkadapter-Hardware 1210 auf. Ein Systembus 1212 verbindet diese Systemkomponenten miteinander. Die Massenspeicher-Schnittstelle 1208 wird zum Verbinden der Massenspeichereinheiten wie der Datenspeichereinheit 1214 mit dem Datenverarbeitungssystem 1200 verwendet. Eine spezifische Art der Datenspeichereinheit ist ein optisches Laufwerk wie ein CD/DVD-Laufwerk, das zum Speichern von Daten und zum Lesen von Daten von einem durch einen Computer lesbaren Medium bzw. einem Speicherprodukt wie einer CD bzw. DVD 1216 (aber nicht darauf beschränkt) verwendet werden kann. Eine andere Art der Datenspeichereinheit ist eine Datenspeichereinheit, die so konfiguriert ist, dass sie zum Beispiel NTFS-artige Dateisystem-Arbeitsschritte unterstützt.
-
Der Hauptspeicher 1206 umfasst in dieser Ausführungsform die virtuellen Maschinen 112 bzw. 122, die Hypervisoren 116 bzw. 130, die Migrationsverwaltungseinheiten 118 bzw. 132, die Datenspeicher 108 und 126, die Speicherseiten 114 bzw. 128 (sowie Migrationsdaten) und die LRU-Abbilder 115 bzw. 129 (sowie Migrationspakete). Obwohl die Komponenten des Hauptspeichers 1206 als sich gleichzeitig in dem Hauptspeicher 1206 befindlich veranschaulicht sind, müssen sich diese nicht immer oder gar zur selben Zeit zur Gänze in dem Hauptspeicher 1206 befinden. In dieser Ausführungsform wendet das Datenverarbeitungssystem 1200 herkömmliche virtuelle Adressierungsmechanismen an, damit sich Programme so verhalten können, als ob sie Zugriff auf eine große, einzelne Speichereinheit (Computersystemspeicher genannt) und nicht Zugriff auf mehrere kleinere Speichereinheiten wie den Hauptspeicher 1206 und die Datenspeichereinheit 1216 hätten. Der Begriff ”Computersystemspeicher” wird hierin verwendet, um allgemein auf den gesamten virtuellen Speicher des Datenverarbeitungssystems 1200 zu verweisen.
-
Obwohl für den Computer 1202 lediglich eine CPU 1204 dargestellt ist, können Computersysteme mit mehreren CPUs gleichermaßen wirksam genutzt werden. Weitere Ausführungsformen der vorliegenden Erfindung beinhalten Schnittstellen, die jeweils separate, voll programmierte Mikroprozessoren enthalten, die dazu verwendet werden, der CPU 404 Verarbeitungslast abzunehmen. Ein in dem Hauptspeicher enthaltenes Betriebssystem ist ein geeignetes mehrprogrammfähiges (multitasking) Betriebssystem wie die Betriebssysteme Linux, UNIX, Windows XP bzw. Windows Server. Weitere Ausführungsformen der vorliegenden Erfindung sind in der Lage, jedes beliebige andere geeignete Betriebssystem zu verwenden. Einige Ausführungsformen der vorliegenden Erfindung wenden Architekturen wie einen objektorientierten Framework-Mechanismus an, die das Ausführen von Anweisungen der Komponenten eines Betriebssystems auf jedem beliebigen Prozessor zulassen, der sich in dem Datenverarbeitungssystem 1200 befindet. Die Netzwerkadapter-Hardware 1210 wird zum Bereitstellen einer Schnittstelle zu einem oder mehreren Netzwerken 106 verwendet. Weitere Ausführungsformen der vorliegenden Erfindung können so eingerichtet werden, dass sie mit jeder beliebigen Datenaustauschverbindung funktionieren, darunter gegenwärtige analoge und/oder digitale Techniken oder ein zukünftiger Vernetzungsmechanismus.
-
Obwohl die beispielhaften Ausführungsformen der vorliegenden Erfindung in Zusammenhang mit einem voll funktionsfähigen Computersystem beschrieben wurden, wird der Fachmann verstehen, dass Ausführungsformen als Programmprodukt über CD, DVD, CD-ROM bzw. andere Formen von beschreibbaren Medien wie das durch einen Computer lesbare Medium bzw. Speicherprodukt 1216 aus 12 vertrieben werden können.
-
Obwohl das veranschaulicht und beschrieben wurde, was derzeit als die bevorzugten Ausführungsformen der vorliegenden Erfindung angesehen wird, wird ein Fachmann verstehen, dass verschiedene andere Abwandlungen vorgenommen werden können und Entsprechungen ersetzt werden können, ohne von dem wahren Umfang der vorliegenden Erfindung abzuweichen. Außerdem können viele Abwandlungen vorgenommen werden, um eine bestimmte Situation an die Lehren der vorliegenden Erfindung anzupassen, ohne von dem hierin beschriebenen zentralen erfindungsgemäßen Konzept abzuweichen. Des Weiteren muss eine Ausführungsform der vorliegenden Erfindung nicht alle der oben beschriebenen Merkmale beinhalten. Deshalb ist es beabsichtigt, dass die vorliegende Erfindung nicht auf die bestimmten beschriebenen Ausführungsformen beschränkt ist, sondern dass die Erfindung sämtliche Ausführungsformen beinhaltet, die in den Umfang der beigefügten Ansprüche fallen.