DE112010003554T5 - Symmetrische Direktmigration von Virtuellen Maschinen - Google Patents

Symmetrische Direktmigration von Virtuellen Maschinen Download PDF

Info

Publication number
DE112010003554T5
DE112010003554T5 DE112010003554T DE112010003554T DE112010003554T5 DE 112010003554 T5 DE112010003554 T5 DE 112010003554T5 DE 112010003554 T DE112010003554 T DE 112010003554T DE 112010003554 T DE112010003554 T DE 112010003554T DE 112010003554 T5 DE112010003554 T5 DE 112010003554T5
Authority
DE
Germany
Prior art keywords
virtual machine
pages
memory
memory page
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE112010003554T
Other languages
English (en)
Other versions
DE112010003554B4 (de
Inventor
Sarah Sheppard
Eli Dow
Jessie Yu
Marie Laser
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112010003554T5 publication Critical patent/DE112010003554T5/de
Application granted granted Critical
Publication of DE112010003554B4 publication Critical patent/DE112010003554B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Für eine Reihe von Speicherseiten einer ersten virtuellen Maschine wird ein erstes Abbild von am längsten ungenutzten Seiten erzeugt. Das erste Abbild von am längsten ungenutzten Seiten enthält Metadaten, die Positionsdaten über die physische Adresse der Speicherseiten umfassen. Eine erste der Speicherseiten der ersten virtuellen Maschine und die Metadaten für die erste Speicherseite werden von der ersten virtuellen Maschine an eine zweite virtuelle Maschine gesendet, während die erste virtuelle Maschine ausgeführt wird. Eine erste Speicherseite und dieser zugehörige Metadaten 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.

Description

  • 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.

Claims (27)

  1. Verfahren zur symmetrischen Direktmigration von virtuellen Maschinen, wobei das Verfahren die folgenden Schritte umfasst: Erzeugen eines ersten Abbilds von am längsten ungenutzten Seiten für eine Reihe von Speicherseiten einer ersten virtuellen Maschine, wobei das erste Abbild von am längsten ungenutzten Seiten Metadaten für jede der Speicherseiten der ersten virtuellen Maschine umfasst und die Metadaten eine physische Adressposition für jede der Speicherseiten der ersten virtuellen Maschine umfassen; Senden einer ersten der Speicherseiten der ersten virtuellen Maschine und der Metadaten für die erste Speicherseite der ersten virtuellen Maschine von der ersten virtuellen Maschine an eine zweite virtuelle Maschine, während die erste virtuelle Maschine ausgeführt wird; und Empfangen einer ersten Speicherseite der zweiten virtuellen Maschine und Empfangen von Metadaten für die erste Speicherseite der zweiten virtuellen Maschine an der ersten virtuellen Maschine von der zweiten virtuellen Maschine, wobei die Speicherseiten der ersten virtuellen Maschine 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 werden, wobei die am längsten ungenutzte Speicherseite durch die erste Stelle des ersten Abbilds von am längsten ungenutzten Seiten angezeigt wird und die zuletzt genutzte Speicherseite durch die letzte Stelle des ersten Abbilds von am längsten ungenutzten Seiten angezeigt wird, und sich die erste Speicherseite der ersten virtuellen Maschine an der ersten Stelle des ersten Abbilds von am längsten ungenutzten Seiten befindet und sich die erste Speicherseite der zweiten virtuellen Maschine an einer entsprechenden ersten Stelle eines zweiten Abbilds von am längsten ungenutzten Seiten für die Speicherseiten der zweiten virtuellen Maschine befindet.
  2. Verfahren nach Anspruch 1, das ferner den Schritt des Wiederholens der Schritte des Sendens und Empfangens für jede der anderen Speicherseiten der ersten bzw. zweiten virtuellen Maschine auf der Grundlage der Reihenfolge der Speicherseiten in den Abbildern von am längsten ungenutzten Seiten der ersten bzw. zweiten virtuellen Maschine umfasst.
  3. Verfahren nach Anspruch 2, das ferner die folgenden Schritte umfasst: nachdem alle der Speicherseiten von der ersten virtuellen Maschine an die zweite virtuelle Maschine gesendet und alle der Speicherseiten der zweiten virtuellen Maschine an der ersten virtuellen Maschine empfangen wurden, Sortieren der von der zweiten virtuellen Maschine empfangenen Speicherseiten auf der Grundlage der physischen Adresspositionen in den mit den Speicherseiten der zweiten virtuellen Maschine empfangenen Metadaten.
  4. Verfahren nach Anspruch 3, das ferner den folgenden Schritt umfasst: nach dem Schritt des Sortierens Aktivieren einer virtuellen Maschine, die jede der von der zweiten virtuellen Maschine empfangenen Speicherseiten nutzt.
  5. Verfahren nach Anspruch 1, das ferner den folgenden Schritt umfasst: vor dem Schritt des Sendens logisches Vergrößern der Reihe von Speicherseiten der ersten virtuellen Maschine, wenn die Reihe von Speicherseiten der ersten virtuellen Maschine kleiner als eine Reihe der Speicherseiten der zweiten virtuellen Maschine ist, damit sie im Wesentlichen mit der Reihe von Speicherseiten der zweiten virtuellen Maschine übereinstimmt.
  6. Verfahren nach Anspruch 1, bei dem der Schritt des Sendens das Einbetten der Metadaten für die erste Speicherseite der ersten virtuellen Maschine in die erste Speicherseite der ersten virtuellen Maschine umfasst.
  7. Verfahren nach Anspruch 1, bei dem der Schritt des Sendens Folgendes umfasst: Erstellen eines Pakets, das getrennt von der ersten Speicherseite der ersten virtuellen Maschine ist, wobei das Paket die Metadaten für die erste Speicherseite der ersten virtuellen Maschine umfasst; und Senden des Pakets von der ersten virtuellen Maschine an eine zweite virtuelle Maschine.
  8. Verfahren nach Anspruch 1, das ferner die folgenden Schritte umfasst: nach dem Schritt des Sendens Anfordern der ersten Speicherseite der ersten virtuellen Maschine von der zweiten virtuellen Maschine; Empfangen der ersten Speicherseite der ersten virtuellen Maschine von der zweiten virtuellen Maschine; und Platzieren der ersten Speicherseite der ersten virtuellen Maschine an einer letzten Stelle des ersten Abbilds von am längsten ungenutzten Seiten.
  9. Verfahren nach Anspruch 1, das ferner Folgendes umfasst: nach dem Schritt des Empfangens Empfangen einer Anforderung von der zweiten virtuellen Maschine über die erste Speicherseite der zweiten virtuellen Maschine; Senden der ersten Speicherseite der zweiten virtuellen Maschine an die zweite virtuelle Maschine; und Empfangen der Speicherseite der ersten virtuellen Maschine, die sich an der entsprechenden Stelle des zweiten Abbilds von am längsten ungenutzten Seiten der zweiten virtuellen Maschine befand, von der zweiten virtuellen Maschine.
  10. Datenverarbeitungssystem zur symmetrischen Direktmigration von virtuellen Maschinen zur Verwendung mit einem Prozessor; und einem Speicher, der für den Datenaustausch mit dem Prozessor verbunden werden kann; wobei das Datenverarbeitungssystem Folgendes umfasst: eine für den Datenaustausch mit dem Prozessor und dem Speicher verbindbare Migrationsverwaltungseinheit, wobei die Migrationsverwaltungseinheit: ein erstes Abbild von am längsten ungenutzten Seiten für eine Reihe von Speicherseiten einer ersten virtuellen Maschine erzeugt, wobei das erste Abbild von am längsten ungenutzten Seiten Metadaten für jede der Speicherseiten der ersten virtuellen Maschine umfasst und die Metadaten eine physische Adressposition für jede der Speicherseiten der ersten virtuellen Maschine umfassen; eine erste der Speicherseiten der ersten virtuellen Maschine und die Metadaten für die erste Speicherseite der ersten virtuellen Maschine von der ersten virtuellen Maschine an eine zweite virtuelle Maschine sendet, während die erste virtuelle Maschine ausgeführt wird; und eine erste Speicherseite der zweiten virtuellen Maschine und Metadaten für die erste Speicherseite der zweiten virtuellen Maschine an der ersten virtuellen Maschine von der zweiten virtuellen Maschine empfängt, wobei die Speicherseiten der ersten virtuellen Maschine 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 werden, wobei die am längsten ungenutzte Speicherseite durch die erste Stelle des ersten Abbilds von am längsten ungenutzten Seiten angezeigt wird und die zuletzt genutzte Speicherseite durch die letzte Stelle des ersten Abbilds von am längsten ungenutzten Seiten angezeigt wird, und sich die erste Speicherseite der ersten virtuellen Maschine an der ersten Stelle des ersten Abbilds von am längsten ungenutzten Seiten befindet und sich die erste Speicherseite der zweiten virtuellen Maschine an einer entsprechenden ersten Stelle eines zweiten Abbilds von am längsten ungenutzten Seiten für die Speicherseiten der zweiten virtuellen Maschine befindet.
  11. Datenverarbeitungssystem nach Anspruch 10, bei dem die Migrationsverwaltungseinheit das Senden und Empfangen für jede der anderen Speicherseiten der ersten bzw. zweiten virtuellen Maschine auf der Grundlage der Reihenfolge der Speicherseiten in den Abbildern von am längsten ungenutzten Seiten der ersten bzw. zweiten virtuellen Maschine wiederholt.
  12. Datenverarbeitungssystem nach Anspruch 11, bei dem die Migrationsverwaltungseinheit, nachdem alle der Speicherseiten der ersten virtuellen Maschine an die zweite virtuelle Maschine gesendet und alle der Speicherseiten der zweiten virtuellen Maschine an der ersten virtuellen Maschine empfangen wurden, die von der zweiten virtuellen Maschine empfangenen Speicherseiten auf der Grundlage der physischen Adresspositionen in den mit den Speicherseiten der zweiten virtuellen Maschine empfangenen Metadaten sortiert.
  13. Datenverarbeitungssystem nach Anspruch 12, bei dem die Migrationsverwaltungseinheit nach dem Schritt des Sortierens eine virtuelle Maschine aktiviert, die jede der von der zweiten virtuellen Maschine empfangenen Speicherseiten nutzt.
  14. Datenverarbeitungssystem nach Anspruch 10, bei dem die Migrationsverwaltungseinheit vor dem Senden, die Reihe von Speicherseiten der ersten virtuellen Maschine logisch vergrößert, wenn die Reihe von Speicherseiten der ersten virtuellen Maschine kleiner als eine Reihe der Speicherseiten der zweiten virtuellen Maschine ist, damit sie im Wesentlichen mit der Reihe von Speicherseiten der zweiten virtuellen Maschine übereinstimmt.
  15. Datenverarbeitungssystem nach Anspruch 10, bei dem die Migrationsverwaltungseinheit die erste der Speicherseiten durch Einbetten der Metadaten für die erste Speicherseite der ersten virtuellen Maschine in die erste Speicherseite der ersten virtuellen Maschine sendet.
  16. Datenverarbeitungssystem nach Anspruch 10, bei dem die Migrationsverwaltungseinheit ein Paket erstellt, das getrennt von der ersten Speicherseite der ersten virtuellen Maschine ist, wobei das Paket die Metadaten für die erste Speicherseite der ersten virtuellen Maschine umfasst; und das Paket von der ersten virtuellen Maschine an eine zweite virtuelle Maschine sendet.
  17. Datenverarbeitungssystem nach Anspruch 10, bei dem die Migrationsverwaltungseinheit: nach dem Schritt des Sendens die erste Speicherseite der ersten virtuellen Maschine von der zweiten virtuellen Maschine anfordert; die erste Speicherseite der ersten virtuellen Maschine von der zweiten virtuellen Maschine empfängt; und die erste Speicherseite der ersten virtuellen Maschine an einer letzten Stelle des ersten Abbilds von am längsten ungenutzten Seiten platziert.
  18. Datenverarbeitungssystem nach Anspruch 10, bei dem die Migrationsverwaltungseinheit: nach dem Schritt des Empfangens eine Anforderung von der zweiten virtuellen Maschine über die erste Speicherseite der zweiten virtuellen Maschine empfängt; die erste Speicherseite der zweiten virtuellen Maschine an die zweite virtuelle Maschine sendet; und die Speicherseite der ersten virtuellen Maschine, die sich an der entsprechenden Stelle des zweiten Abbilds von am längsten ungenutzten Seiten der zweiten virtuellen Maschine befand, von der zweiten virtuellen Maschine empfängt.
  19. Computerprogrammprodukt zur symmetrischen Direktmigration von virtuellen Maschinen, wobei das Computerprogrammprodukt Folgendes umfasst: ein durch einen Computer lesbares Speichermedium, auf dem ein durch einen Computer lesbarer Programmcode enthalten ist, wobei der durch einen Computer lesbare Programmcode so konfiguriert ist, dass er: ein erstes Abbild von am längsten ungenutzten Seiten für eine Reihe von Speicherseiten einer ersten virtuellen Maschine erzeugt, wobei das erste Abbild von am längsten ungenutzten Seiten Metadaten für jede der Speicherseiten der ersten virtuellen Maschine umfasst und die Metadaten eine physische Adressposition für jede der Speicherseiten der ersten virtuellen Maschine umfassen; eine erste der Speicherseiten der ersten virtuellen Maschine und die Metadaten für die erste Speicherseite der ersten virtuellen Maschine von der ersten virtuellen Maschine an eine zweite virtuelle Maschine sendet, während die erste virtuelle Maschine ausgeführt wird; und eine erste Speicherseite der zweiten virtuellen Maschine und Metadaten für die erste Speicherseite der zweiten virtuellen Maschine an der ersten virtuellen Maschine von der zweiten virtuellen Maschine empfängt, wobei die Speicherseiten der ersten virtuellen Maschine 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 werden, wobei die am längsten ungenutzte Speicherseite durch die erste Stelle des ersten Abbilds von am längsten ungenutzten Seiten angezeigt wird und die zuletzt genutzte Speicherseite durch die letzte Stelle des ersten Abbilds von am längsten ungenutzten Seiten angezeigt wird, und sich die erste Speicherseite der ersten virtuellen Maschine an der ersten Stelle des ersten Abbilds von am längsten ungenutzten Seiten befindet und sich die erste Speicherseite der zweiten virtuellen Maschine an einer entsprechenden ersten Stelle eines zweiten Abbilds von am längsten ungenutzten Seiten für die Speicherseiten der zweiten virtuellen Maschine befindet.
  20. Computerprogrammprodukt nach Anspruch 19, wobei der durch einen Computer lesbare Programmcode darüber hinaus so konfiguriert ist, dass er: die Schritte des Sendens und Empfangens für jede der anderen Speicherseiten der ersten bzw. zweiten virtuellen Maschine auf der Grundlage der Reihenfolge der Speicherseiten in den Abbildern von am längsten ungenutzten Seiten der ersten bzw. zweiten virtuellen Maschine wiederholt.
  21. Computerprogrammprodukt nach Anspruch 20, wobei der durch einen Computer lesbare Programmcode darüber hinaus so konfiguriert ist, dass er: nachdem alle der Speicherseiten der ersten virtuellen Maschine an die zweite virtuelle Maschine gesendet und alle der Speicherseiten der zweiten virtuellen Maschine an der ersten virtuellen Maschine empfangen wurden, die von der zweiten virtuellen Maschine empfangenen Speicherseiten auf der Grundlage der physischen Adresspositionen in den mit den Speicherseiten der zweiten virtuellen Maschine empfangenen Metadaten sortiert.
  22. Computerprogrammprodukt nach Anspruch 21, wobei der durch einen Computer lesbare Programmcode darüber hinaus so konfiguriert ist, dass er: nach dem Schritt des Sortierens, eine virtuelle Maschine aktiviert, die jede der von der zweiten virtuellen Maschine empfangenen Speicherseiten nutzt.
  23. Computerprogrammprodukt nach Anspruch 19, wobei der durch einen Computer lesbare Programmcode darüber hinaus so konfiguriert ist, dass er: vor dem Schritt des Sendens die Reihe von Speicherseiten der ersten virtuellen Maschine logisch vergrößert, wenn die Reihe von Speicherseiten der ersten virtuellen Maschine kleiner als eine Reihe der Speicherseiten der zweiten virtuellen Maschine ist, damit sie im Wesentlichen mit der Reihe von Speicherseiten der zweiten virtuellen Maschine übereinstimmt.
  24. Computerprogrammprodukt nach Anspruch 19, wobei das Computerprogrammprodukt die erste der Speicherseiten durch Einbetten der Metadaten für die erste Speicherseite der ersten virtuellen Maschine in die erste Speicherseite der ersten virtuellen Maschine sendet.
  25. Computerprogrammprodukt nach Anspruch 19, wobei das Computerprogrammprodukt: ein Paket erstellt, das getrennt von der ersten Speicherseite der ersten virtuellen Maschine ist, wobei das Paket die Metadaten für die erste Speicherseite der ersten virtuellen Maschine umfasst; und das Paket von der ersten virtuellen Maschine an eine zweite virtuelle Maschine sendet.
  26. Computerprogrammprodukt nach Anspruch 19, wobei der durch einen Computer lesbare Programmcode darüber hinaus so konfiguriert ist, dass er: nach dem Senden die erste Speicherseite der ersten virtuellen Maschine von der zweiten virtuellen Maschine anfordert; die erste Speicherseite der ersten virtuellen Maschine von der zweiten virtuellen Maschine empfängt; und die erste Speicherseite der ersten virtuellen Maschine an einer letzten Stelle des ersten Abbilds von am längsten ungenutzten Seiten platziert.
  27. Computerprogrammprodukt nach Anspruch 19, wobei der durch einen Computer lesbare Programmcode darüber hinaus so konfiguriert ist, dass er: nach dem Schritt des Empfangens eine Anforderung von der zweiten virtuellen Maschine über die erste Speicherseite der zweiten virtuellen Maschine empfängt; die erste Speicherseite der zweiten virtuellen Maschine an die zweite virtuelle Maschine sendet; und die Speicherseite der ersten virtuellen Maschine, die sich an der entsprechenden Stelle des zweiten Abbilds von am längsten ungenutzten Seiten der zweiten virtuellen Maschine befand, von der zweiten virtuellen Maschine empfängt.
DE112010003554.7T 2009-11-16 2010-10-14 Symmetrische Direktmigration von Virtuellen Maschinen Active DE112010003554B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/619,137 US8370560B2 (en) 2009-11-16 2009-11-16 Symmetric live migration of virtual machines
US12/619,137 2009-11-16
PCT/EP2010/065433 WO2011057874A2 (en) 2009-11-16 2010-10-14 Symmetric live migration of virtual machines

Publications (2)

Publication Number Publication Date
DE112010003554T5 true DE112010003554T5 (de) 2012-08-23
DE112010003554B4 DE112010003554B4 (de) 2016-12-15

Family

ID=43992137

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112010003554.7T Active DE112010003554B4 (de) 2009-11-16 2010-10-14 Symmetrische Direktmigration von Virtuellen Maschinen

Country Status (6)

Country Link
US (2) US8370560B2 (de)
JP (1) JP5619173B2 (de)
CN (1) CN102597958B (de)
DE (1) DE112010003554B4 (de)
GB (1) GB2485730B (de)
WO (1) WO2011057874A2 (de)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2375334A4 (de) * 2009-01-06 2013-10-02 Mitsubishi Electric Corp Verwaltungssystem, verwaltungsverfahren und entsprechendes programm
US8832683B2 (en) * 2009-11-30 2014-09-09 Red Hat Israel, Ltd. Using memory-related metrics of host machine for triggering load balancing that migrate virtual machine
US8589921B2 (en) * 2009-11-30 2013-11-19 Red Hat Israel, Ltd. Method and system for target host optimization based on resource sharing in a load balancing host and virtual machine adjustable selection algorithm
US20120005675A1 (en) * 2010-01-22 2012-01-05 Brutesoft, Inc. Applying peer-to-peer networking protocols to virtual machine (vm) image management
US20110270945A1 (en) * 2010-04-30 2011-11-03 Hitachi, Ltd. Computer system and control method for the same
US8826292B2 (en) * 2010-08-06 2014-09-02 Red Hat Israel, Ltd. Migrating virtual machines based on level of resource sharing and expected load per resource on candidate target host machines
US8677004B2 (en) * 2010-09-10 2014-03-18 International Business Machines Corporation Migration of logical partitions between two devices
US9183028B1 (en) 2010-09-30 2015-11-10 Amazon Technologies, Inc. Managing virtual computing nodes
US9384029B1 (en) 2010-09-30 2016-07-05 Amazon Technologies, Inc. Managing virtual computing nodes
US9104458B1 (en) 2010-09-30 2015-08-11 Amazon Technologies, Inc. Managing virtual computing nodes using isolation and migration techniques
US8555278B2 (en) * 2011-05-02 2013-10-08 Symantec Corporation Method and system for migrating a selected set of virtual machines between volumes
US8533714B2 (en) 2011-05-03 2013-09-10 International Business Machines Corporation Dynamic virtual machine domain configuration and virtual machine relocation management
EP2774035B1 (de) * 2011-10-31 2016-08-03 Fraunhofer Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und verfahren zur übertragung von ereignismelderverfahren
US20130166504A1 (en) * 2011-12-27 2013-06-27 RiverMeadow Software, Inc. Systems and methods for virtual machine migration
US9311122B2 (en) 2012-03-26 2016-04-12 Oracle International Corporation System and method for providing a scalable signaling mechanism for virtual machine migration in a middleware machine environment
US9432304B2 (en) * 2012-03-26 2016-08-30 Oracle International Corporation System and method for supporting live migration of virtual machines based on an extended host channel adaptor (HCA) model
US8930747B2 (en) 2012-03-30 2015-01-06 Sungard Availability Services, Lp Private cloud replication and recovery
CN103812823B (zh) 2012-11-07 2017-10-10 华为技术有限公司 虚拟机热迁移时配置信息迁移的方法、设备及系统
CN103049308B (zh) 2012-11-30 2016-01-20 华为技术有限公司 实现虚拟机热迁移的方法、装置及系统
DE102013021997A1 (de) * 2013-03-14 2014-09-18 Nvidia Corporation Verschieben von Seiten unterschiedlicher Grösse zwischen heterogenen Prozessoren
US9990221B2 (en) 2013-03-15 2018-06-05 Oracle International Corporation System and method for providing an infiniband SR-IOV vSwitch architecture for a high performance cloud computing environment
CN104050008B (zh) 2013-03-15 2018-01-23 中兴通讯股份有限公司 一种内存超分配管理系统及方法
JP2014191752A (ja) * 2013-03-28 2014-10-06 Fujitsu Ltd マイグレーション処理プログラム,マイグレーション方法及びクラウドシステム
US9854036B2 (en) * 2013-09-30 2017-12-26 Huawei Technologies Co., Ltd. Method for migrating memory data of virtual machine, and related apparatus and cluster system
US9348654B2 (en) 2013-11-19 2016-05-24 International Business Machines Corporation Management of virtual machine migration in an operating environment
US20160034289A1 (en) * 2013-12-16 2016-02-04 Hitachi, Ltd. Computer system and processing method of the same
US9823842B2 (en) 2014-05-12 2017-11-21 The Research Foundation For The State University Of New York Gang migration of virtual machines using cluster-wide deduplication
US9361145B1 (en) 2014-06-27 2016-06-07 Amazon Technologies, Inc. Virtual machine state replication using DMA write records
JP6365085B2 (ja) * 2014-08-04 2018-08-01 富士通株式会社 データ移行方法及びデータ移行装置
US9542100B2 (en) * 2014-09-02 2017-01-10 International Business Machines Corporation Management of memory pages
US9723009B2 (en) 2014-09-09 2017-08-01 Oracle International Corporation System and method for providing for secure network communication in a multi-tenant environment
WO2016070302A1 (zh) 2014-11-03 2016-05-12 华为技术有限公司 虚拟网络功能实例的迁移方法、装置和系统
WO2016074166A1 (en) * 2014-11-12 2016-05-19 Intel Corporation Live migration of virtual machines from/to host computers with graphics virtualization
DE102015015196A1 (de) * 2014-12-16 2016-06-16 Canon Kabushiki Kaisha Verwaltungssystem und Steuerungsverfahren für Verwaltungssystem
US9146769B1 (en) 2015-04-02 2015-09-29 Shiva Shankar Systems and methods for copying a source machine to a target virtual machine
US9727366B2 (en) * 2015-04-23 2017-08-08 International Business Machines Corporation Machine learning for virtual machine migration plan generation
US9836327B1 (en) * 2015-06-12 2017-12-05 Amazon Technologies, Inc. Network-based storage access control for migrating live storage clients
US9946564B2 (en) 2015-06-23 2018-04-17 International Business Machines Corporation Adjusting virtual machine migration plans based on alert conditions related to future migrations
US10129331B2 (en) * 2015-06-25 2018-11-13 Vmware, Inc. Load balancing using a client swapping operation
US9996377B2 (en) 2015-06-30 2018-06-12 International Business Machines Corporation Virtual machine migration via a mobile device
JP2017049772A (ja) * 2015-09-01 2017-03-09 富士通株式会社 移動制御プログラム、移動制御装置及び移動制御方法
US9552233B1 (en) 2015-09-10 2017-01-24 Red Hat Israel, Ltd. Virtual machine migration using free page hinting
US9880870B1 (en) 2015-09-24 2018-01-30 Amazon Technologies, Inc. Live migration of virtual machines using packet duplication
US10768959B2 (en) * 2015-11-24 2020-09-08 Red Hat Israel, Ltd. Virtual machine migration using memory page hints
US9934157B2 (en) * 2015-11-25 2018-04-03 Red Hat Israel, Ltd. Post-copy VM migration speedup using free page hinting
US9529620B1 (en) * 2015-12-17 2016-12-27 International Business Machines Corporation Transparent virtual machine offloading in a heterogeneous processor
US10169065B1 (en) 2016-06-29 2019-01-01 Altera Corporation Live migration of hardware accelerated applications
US10031834B2 (en) 2016-08-31 2018-07-24 Microsoft Technology Licensing, Llc Cache-based tracing for time travel debugging and analysis
US10489273B2 (en) 2016-10-20 2019-11-26 Microsoft Technology Licensing, Llc Reuse of a related thread's cache while recording a trace file of code execution
US10318332B2 (en) 2017-04-01 2019-06-11 Microsoft Technology Licensing, Llc Virtual machine execution tracing
EP3625927A4 (de) * 2017-07-12 2020-12-09 Hewlett-Packard Development Company, L.P. Migration von speichervorrichtungen
CN109240803A (zh) * 2018-09-25 2019-01-18 郑州云海信息技术有限公司 一种虚拟机迁移方法、装置、服务器及存储介质
US11307985B2 (en) 2018-09-28 2022-04-19 Intel Corporation Method and apparatus to use dram as a cache for slow byte-addressible memory for efficient cloud applications
CN109828829B (zh) * 2019-01-22 2022-10-18 重庆邮电大学 一种基于灾难预警时间的虚拟机快速撤离方法
US11520612B2 (en) * 2019-11-13 2022-12-06 International Business Machines Corporation Virtual machine migration detection by a hosted operating system
US11436043B2 (en) 2019-11-13 2022-09-06 International Business Machines Corporation Operating system code patching during live migration
US11656982B2 (en) * 2021-01-15 2023-05-23 Nutanix, Inc. Just-in-time virtual per-VM swap space
US11799971B2 (en) 2022-02-17 2023-10-24 Bank Of America Corporation Systems and methods for session migration between devices

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05128006A (ja) * 1991-02-12 1993-05-25 Fuji Xerox Co Ltd 仮想計算機システム
US7146524B2 (en) * 2001-08-03 2006-12-05 Isilon Systems, Inc. Systems and methods for providing a distributed file system incorporating a virtual hot spare
US7313793B2 (en) * 2002-07-11 2007-12-25 Microsoft Corporation Method for forking or migrating a virtual machine
US7484208B1 (en) * 2002-12-12 2009-01-27 Michael Nelson Virtual machine migration
US7257811B2 (en) * 2004-05-11 2007-08-14 International Business Machines Corporation System, method and program to migrate a virtual machine
US8554981B2 (en) * 2007-02-02 2013-10-08 Vmware, Inc. High availability virtual machine cluster
JP5246388B2 (ja) * 2007-03-08 2013-07-24 日本電気株式会社 仮想装置構成システム、及びその方法
US8019962B2 (en) * 2007-04-16 2011-09-13 International Business Machines Corporation System and method for tracking the memory state of a migrating logical partition
US7904692B2 (en) * 2007-11-01 2011-03-08 Shrijeet Mukherjee Iommu with translation request management and methods for managing translation requests
US20090007099A1 (en) * 2007-06-27 2009-01-01 Cummings Gregory D Migrating a virtual machine coupled to a physical device
US8239646B2 (en) * 2007-07-31 2012-08-07 Vmware, Inc. Online virtual machine disk migration
US7962703B1 (en) * 2007-08-08 2011-06-14 Symantec Corporation Techniques for improving dirty page logging
US20090132804A1 (en) 2007-11-21 2009-05-21 Prabir Paul Secured live software migration
JP5382449B2 (ja) * 2007-11-26 2014-01-08 日本電気株式会社 仮想計算機移行システム、仮想計算機移行方法および仮想計算機移行プログラム
US20090204718A1 (en) 2008-02-08 2009-08-13 Lawton Kevin P Using memory equivalency across compute clouds for accelerated virtual memory migration and memory de-duplication
US8200771B2 (en) * 2008-10-10 2012-06-12 International Business Machines Corporation Workload migration using on demand remote paging

Also Published As

Publication number Publication date
US20130060988A1 (en) 2013-03-07
CN102597958B (zh) 2014-12-24
GB2485730B (en) 2012-08-08
WO2011057874A3 (en) 2011-07-21
US20110119427A1 (en) 2011-05-19
DE112010003554B4 (de) 2016-12-15
GB201203919D0 (en) 2012-04-18
JP2013511079A (ja) 2013-03-28
US8370560B2 (en) 2013-02-05
GB2485730A (en) 2012-05-23
CN102597958A (zh) 2012-07-18
WO2011057874A2 (en) 2011-05-19
US8635396B2 (en) 2014-01-21
JP5619173B2 (ja) 2014-11-05

Similar Documents

Publication Publication Date Title
DE112010003554B4 (de) Symmetrische Direktmigration von Virtuellen Maschinen
DE112011103829B4 (de) Verfahren und System zum Erzeugen einer virtuellen Maschine auf der Grundlage von Vorlagen
DE112012000693B4 (de) Ausführen einer Vielzahl von Instanzen einer Anwendung
DE10393920B4 (de) Verfahren und Systeme zur Steuerung virtueller Maschinen
DE69022716T2 (de) Mehrrechnersystem mit verteilten gemeinsamen Betriebsmitteln und dynamischer und selektiver Vervielfältigung globaler Daten und Verfahren dafür.
DE112011103026B4 (de) Bedarfsgesteuertes Streaming von Abbildern virtueller Maschinen
DE112012002241T5 (de) Migration eines transparenten Dateisystems zu einem neuen physischen Speicherort
DE102004038649B4 (de) Dauerspeichervorrichtung für Sicherungsprozess-Prüfpunktzustände
DE60221019T2 (de) Verwaltung von serverbetriebsmitteln für hostanwendungen
DE3751645T2 (de) Anteilige Nutzung von Kopie-beim-Schreiben-Segmenten in einer Datenverarbeitungsanlage mit virtuellen Maschinen und virtuellem Speicher
DE69024753T2 (de) Tragbarer, Ressourcen teilender Datei-Server, der gemeinsame Routines benutzt
DE112012004893B4 (de) Implementieren eines Software-Abbildes auf mehreren Zielen unter Verwendung einer Datenstromtechnik
DE102010001339A1 (de) Verwalten von Anforderungen von Betriebssystemen, die in virtuellen Maschinen ablaufen
DE112011100323T5 (de) Architekturübergreifende Migration virtueller Maschinen
DE3786069T2 (de) Virtueller Programmablauf auf einem Mehrfachverarbeitungssystem.
DE102010001985A1 (de) Vorrichtung zum Schalten des Betriebs einer virtuellen Maschine zwischen mehreren Computern, die der gleichen Computerplattform zugeordnet sind, und entsprechende Schaltverfahren
DE112011100094T5 (de) Verfahren und System zum Abstrahieren eines auf nichtfunktionalen Anforderungen beruhenden Einsatzes von virtuellen Maschinen
DE112012005209T5 (de) Brückenfunktion zwischen Virtual Machine Monitor und Bare-Metal-Bootvorgang
DE102016105589A1 (de) Anwenden von Firmware-Updates in einem System mit Null-Stillstandszeit durch wahlweise Abschalten und Einschalten von Hardware unter Verwenden einer Hypervisor-Schicht
DE102007025397A1 (de) System mit mehreren Prozessoren und Verfahren zu seinem Betrieb
DE112017001027T5 (de) Seitenfehlerbehebung
DE102006006250A1 (de) System und Verfahren für zentralisierte Software-Verwaltung in virtuellen Maschinen
DE112014006156T5 (de) Datenmigrationsverfahren eines Speichersystems
DE112018006769T5 (de) Erweiterte zwischenspeicherzuweisung basierend auf virtuellen knotenressourcen
DE102016203808A1 (de) Verringern der Bevorrechtigung virtueller Maschinen in einer virtualisierten Umgebung

Legal Events

Date Code Title Description
R163 Identified publications notified
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0009500000

Ipc: G06F0012120000

Effective date: 20120830

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final