DE102010001985A1 - Vorrichtung zum Schalten des Betriebs einer virtuellen Maschine zwischen mehreren Computern, die der gleichen Computerplattform zugeordnet sind, und entsprechende Schaltverfahren - Google Patents

Vorrichtung zum Schalten des Betriebs einer virtuellen Maschine zwischen mehreren Computern, die der gleichen Computerplattform zugeordnet sind, und entsprechende Schaltverfahren Download PDF

Info

Publication number
DE102010001985A1
DE102010001985A1 DE102010001985A DE102010001985A DE102010001985A1 DE 102010001985 A1 DE102010001985 A1 DE 102010001985A1 DE 102010001985 A DE102010001985 A DE 102010001985A DE 102010001985 A DE102010001985 A DE 102010001985A DE 102010001985 A1 DE102010001985 A1 DE 102010001985A1
Authority
DE
Germany
Prior art keywords
computer
virtual machine
switching
hypervisor
state information
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.)
Withdrawn
Application number
DE102010001985A
Other languages
English (en)
Inventor
Hsiang-Tsung Kung
Teng-Chang Chang
Kuang-Ming Liujia Wang
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.)
Institute for Information Industry
Original Assignee
Institute for Information Industry
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 Institute for Information Industry filed Critical Institute for Information Industry
Publication of DE102010001985A1 publication Critical patent/DE102010001985A1/de
Withdrawn legal-status Critical Current

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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • 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/461Saving or restoring of program or task context
    • 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
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances

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)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)

Abstract

Durch die vorliegende Erfindung wird eine Vorrichtung zum Managen des Betriebs einer virtuellen Maschine auf einer Desktop- oder Laptop-Plattform bereitgestellt, wobei die Vorrichtung einen ersten Computer, einen zweiten Computer und einen gemeinsam genutzten Speicher aufweist. Der erste Computer weist einen ersten Schalt-Hypervisor auf, auf dem eine virtuelle Maschine läuft. Der zweite Computer weist einen zweiten Schalt-Hypervisor auf, wobei der zweite Schalt-Hypervisor mit dem ersten Schalt-Hypervisor kommuniziert. Der gemeinsam genutzte Speicher ist mit dem ersten und dem zweiten Computer verbunden, und der erste und der zweite Schalt-Hypervisor können auf den gemeinsam genutzten Speicher zugreifen, wobei der erste Schalt-Hypervisor Zustandinformation für die virtuelle Maschine in den gemeinsam genutzten Speicher speichert. Wenn der erste Schalt-Hypervisor eine Schaltmitteilung zum Schalten der virtuellen Maschine auf den zweiten Computer empfängt, unterbricht er den Betrieb der virtuellen Maschine, woraufhin der zweite Schalt-Hypervisor die gespeicherte Zustandinformation für die virtuelle Maschine vom gemeinsam genutzten Speicher abruft und den Betrieb der virtuellen Maschine gemäß der erhaltenen Zustandinformation für die virtuelle Maschine auf dem zweiten Computer fortsetzt.

Description

  • Hintergrund der Erfindung
  • Bereich der Erfindung
  • Die Erfindung betrifft allgemein das Management einer auf einer Desktop- oder Laptop-Plattform, die aus mehreren homogenen oder heterogenen Zentraleinheiten (CPUs) besteht, betriebenen virtuellen Maschine und insbesondere Vorrichtungen zum Managen des Schaltens einer laufenden virtuellen Maschine zwischen zwei oder mehr Computern, die der gleichen Computerplattform zugeordnet sind.
  • Beschreibung der verwandten Technik
  • Die Virtualisierung von Computersystemen hat sich in der jüngsten Zeit weit verbreitet. Virtualisierung bezeichnet eine neue Schicht, die Computerhardware von einem Betriebssystem (OS) und darauf laufenden Anwendungen abstrahiert. Virtualisierungstechniken ermöglichen es Computerhardware, die gleichzeitige Ausführung von mehr als einem Betriebssystem zu unterstützen. Außerdem werden Betriebssysteme und zugeordnete Anwendungen, die in als virtuelle Maschinen bezeichneten Containern gehalten werden, durch einen Hypervisor (oder sogenannten Virtual Machine Monitor (VMM)) gesteuert und zeitlich geplant. Der Hypervisor ist eine Computersoftware-/Computerhardwareplattform-Virtualisierungssoftware, die es mehreren virtuellen Maschinen ermöglicht, gleichzeitig auf einem Host- oder Wirtsrechner zu laufen. Der Hypervisor kann einen Satz virtueller Ressourcen bereitstellen, wie beispielsweise eine virtuelle CPU, einen Speicher und ein Ein-/Ausgabegerät für darauf laufende Anwendungen. Der Hypervisor kann Teile der physischen Hardwaregeräte oder alle physischen Hardwaregeräte des Hostrechners in eine virtuelle Maschine abbilden und in der virtuellen Maschine enthaltene virtuelle Geräte erzeugen. Der Hypervisor kann die virtualisierten Hardwaregeräte verwenden, um Dienste für die virtuelle Maschine und einen Schutz für mehrere darauf laufende virtuelle Maschinen bereitzustellen.
  • Die herkömmliche Virtualisierungstechnik ermöglicht den Betrieb von mehr als einer virtuellen Maschine mit einem virtuellen Betriebssystem (OS) und einem Satz virtueller Hardwaregeräte auf der gleichen Computerarchitektur. Beispielsweise kann unter Verwendung der herkömmlichen Virtualisierungstechnik ein einzelnes x86-basiertes Computersystem ein oder mehr ARM-basierte oder x86-basierte virtuelle Maschinen hosten. Es unterstützt allerdings keinen dynamischen Schaltvorgang für den Betrieb der gleichen virtuellen Maschine zwischen mehreren homogenen oder heterogenen CPUs, die ein einzelnes Computersystem bilden, z. B. einen Desktop oder Laptop. Es ergeben sich wichtige Vorteile, wenn die Möglichkeit geschaffen wird, diesen dynamischen Schaltvorgang zwischen CPUs zu unterstützen. Beispielsweise kann während einer Zeitdauer, in der eine CPU durch eine virtuelle Maschine nur in geringem Maße ausgelastet ist, die virtuelle Maschine auf eine andere CPU geschaltet werden, in der mehrere Workloads konsolidiert werden können. Dadurch wird ermöglicht, dass die ursprüngliche CPU auf einen Bereitschafts- oder Energiesparmodus eingestellt werden kann, um den Gesamtenergieverbrauch des Systems zu senken. Für eine Hybrid-Desktop- oder Laptop-Plattform mit heterogenen CPUs, z. B. x86- und ARM-CPUs, kann eine x86-basierte virtuelle Maschine im Allgemeinen die ARM-CPU nutzen, um den Energieverbrauch zu senken, wobei jedoch in Phasen, in denen es erforderlich ist, CPU-intensive (CPU-bound) x86-Anwendungen auszuführen (z. B. Multimedia-Codier-/Decodierprozesse), die virtuelle Maschine dynamisch geschaltet werden kann, so dass sie auf der x86-CPU betrieben wird.
  • Daher besteht ein Bedarf für neue Verfahren zum Managen einer virtuellen Maschine zwischen mehreren in einer einzelnen Plattform eingebetteten Computern.
  • Kurze Beschreibung der Erfindung
  • Es ist Aufgabe der Erfindung, ein verbessertes und effektives Verfahren zum Managen einer virtuellen Maschine zwischen mehreren in ein einzelnes System eingebetteten homogenen oder heterogenen Computern bereitzustellen.
  • Eine Ausführungsform einer Vorrichtung zum Managen einer laufenden virtuellem Maschine weist einen ersten Computer, einen zweiten Computer und einen gemeinsam genutzten Speicher auf. Der erste Computer weist einen ersten Schalt-Hypervisor auf, auf dem eine virtuelle Maschine läuft. Der zweite Computer weist einen zweiten Schalt-Hypervisor auf, wobei der zweite Schalt-Hypervisor mit dem ersten Schalt-Hypervisor kommuniziert. Der gemeinsam genutzte Speicher ist mit dem ersten und dem zweiten Computer verbunden, und der erste und der zweite Schalt-Hypervisor können auf den gemeinsam genutzten Speicher zugreifen, wobei der erste Schalt-Hypervisor Zustandinformation für die virtuelle Maschine in den gemeinsam genutzten Speicher speichert. Wenn eine Schaltinformation zum Schalten der virtuellen Maschine auf den zweiten Computer empfangen wird, unterbricht der erste Schalt-Hypervisor seinen Betrieb der virtuellen Maschine. Daraufhin ruft der zweite Schalt-Hypervisor die gespeicherte Zustandinformation für die virtuelle Maschine vom gemeinsam genutzten Speicher ab und setzt den Betrieb der virtuellen Maschine auf dem zweiten Computer gemäß der erhaltenen Zustandinformation für die virtuelle Maschine fort.
  • Gemäß einer Ausführungsform wird ein Schaltverfahren zum Schalten einer laufenden virtuellen Maschine zwischen Computern in einer Vorrichtung bereitgestellt, die mindestens einen ersten und einen zweiten Computer und einen dazwischen verbundenen gemeinsam genutzten Speicher aufweist, wobei der erste Computer einen ersten Schalt-Hypervisor aufweist, auf dem eine virtuelle Maschine läuft, und der zweite Computer einen mit dem ersten Schalt-Hypervisor kommunizierenden zweiten Schalt-Hypervisor aufweist. Das Verfahren weist die folgenden Schritte auf. Zunächst wird Zustandinformation für die laufende virtuelle Maschine durch den ersten Schalt-Hypervisor des ersten Computers in den gemeinsam genutzten Speicher gespeichert, wenn die virtuelle Maschine auf dem ersten Computer läuft. Dann wird eine Schaltmitteilung zum Schalten der virtuellen Maschine auf den zweiten Computer empfangen. Daraufhin wird die gespeicherte Zustandinformation für die virtuelle Maschine vom gemeinsam genutzten Speicher durch den zweiten Schalt-Hypervisor abgerufen, und der Betrieb der virtuellen Maschine wird gemäß der abgerufenen Zustandinformation für die virtuelle Maschine auf dem zweiten Computer fortgesetzt.
  • Schaltverfahren und -vorrichtungen können in der Form eines durch ein physisches Medium implementierten Programmcodes bereitgestellt werden. Wenn der Programmcode in eine Maschine geladen und darin ausgeführt wird, wird die Maschine zu einer Vorrichtung zum Implementieren des erfindungsgemäßen Verfahrens.
  • Kurze Beschreibung der Zeichnungen
  • Die Erfindung wird nachstehend unter Bezug auf die folgende ausführliche Beschreibung und die beigefügten Zeichnungen verdeutlicht; es zeigen:
  • 1 ein schematisches Diagramm zum Darstellen einer Ausführungsform einer erfindungsgemäßen Vorrichtung 100 zum Managen einer laufenden virtuellen Maschine;
  • 2 eine Ausführungsform eines erfindungsgemäßen gemeinsam genutzten Speichers;
  • 3 ein Ablaufdiagramm einer Ausführungsform eines Verfahrens zum Auswählen einer laufenden virtuellen Maschine in einer erfindungsgemäßen Vorrichtung; und
  • 4 ein Ablaufdiagramm einer Ausführungsform eines Schaltverfahrens zum Schalten einer laufenden virtuellen Maschine von einem ersten Computer auf einen zweiten Computer in einer erfindungsgemäßen Vorrichtung.
  • Ausführliche Beschreibung der Erfindung
  • Die folgende Beschreibung betrifft die gegenwärtig als beste erachtete Technik zum Implementieren der Erfindung. Die vorliegende Beschreibung dient zum Erläutern der allgemeinen Prinzipien der Erfindung und sollte nicht im einschränkenden Sinne verstanden werden. Der Schutzumfang der Erfindung ist durch die beigefügten Ansprüche definiert.
  • 1 zeigt ein schematisches Diagramm zum Darstellen einer Ausführungsform einer erfindungsgemäßen Vorrichtung 100 zum Managen einer laufenden virtuellen Maschine. Die Vorrichtung 100 weist mindestens zwei oder mehr Computer 110 und 120, einen gemeinsam genutzten Speicher 130 und eine Schnittstellenverbindung 140 auf. Eine virtuelle Maschine 150 ist zwischen den Computern 110 und 120 betreibbar. Jeder der Computer weist ferner eine Verarbeitungseinheit zum Steuern des Betriebs des Computers und einen Schalt-Hypervisor zum Managen des Betriebs einer virtuellen Maschine 150 auf. Die virtuelle Maschine 150, die durch den Schalt-Hypervisor des Computers 110 oder 120 erzeugt und gesteuert wird, kann eine virtuelle CPU (Zentraleinheit), einen Speicher und einen Satz virtueller Hardwaregeräte aufweisen. Beispielsweise kann der Computer 110, wie in 1 dargestellt ist, eine Verarbeitungseinheit 112 zum Steuern des Betriebs des Computers 110 und einen ersten Schalt-Hypervisor 114 zum Managen des Betriebs der virtuellen Maschine 150 aufweisen. Der Computer 120 kann eine Verarbeitungseinheit 122 und einen mit dem ersten Schalt-Hypervisor 114 kommunizierenden zweiten Schalt-Hypervisor 124 zum Managen des Betriebs einer virtuellen Maschine aufweisen. Der Computer 120 ist über die Schnittstellenverbindung 140 mit dem Computer 110 verbunden.
  • Die Computer 110 und 120 können Verarbeitungseinheiten des gleichen Typs oder verschiedener Typen und Hardwaregeräte aufweisen. In einer Ausführungsform können die Computer 110 und 120 beispielsweise Verarbeitungseinheiten des gleichen Verarbeitungseinheittyps aufweisen, z. B. eine CPU (Zentraleinheit) der Serie x86, auf denen das gleiche Betriebssystem (OS) läuft, z. B. ein Windows-basiertes Betriebssystem. In einer anderen Ausführungsform können die Computer 110 und 120 Verarbeitungseinheiten verschiedener Verarbeitungseinheittypen aufweisen, auf denen verschiedene Betriebssysteme laufen. Beispielsweise kann der Verarbeitungseinheittyp des Computers 110 eine CPU der Serie x86 sein, und der Verarbeitungseinheittyp des Computers 110 kann ein ARM-Prozessor sein. Außerdem kann der Betriebssystemtyp des Computers 110 ein Windows-basiertes Betriebssystem sein, während der Betriebssystemtyp des Computers 120 ein Linux-basiertes Betriebssystem sein kann.
  • Der gemeinsam genutzte Speicher 130 ist mit den Computern 110 und 120 verbunden, und die Computer 110 und 120 und damit auch der erste und der zweite Hypervisor 114 und 124 können auf den gemeinsam genutzten Speicher zugreifen. Der gemeinsam genutzte Speicher 130 kann den gesamten physikalischen Speicher, der durch die laufende virtuelle Maschine verwendet wird, oder einen Teil des physikalischen Speichers hosten. Es ist außerdem ersichtlich, dass der gemeinsam genutzte Speicher 130 durch Software (z. B. einen Dämon zum Bereitstellen einer gemeinsamen Ansicht für eine Zusammenstellung separater Speichersysteme) oder durch Hardware, z. B. einen beliebigen Typ einer global zugänglichen Speicherstruktur, implementierbar ist. Die Computer 110 und 120 können über eine Schnittstellenverbindung 140 mit dem gemeinsam genutzten Speicher 130 verbunden sein. Die Schnittstellenverbindung 140 ist mit dem Computer 110 und dem Computer 120 verbunden, um eine Kommunikation zwischen dem ersten Schalt-Hypervisor 114 und dem zweiten Schalt-Hypervisor 124 zu ermöglichen. Die Schnittstellenverbindung 140 kann beispielsweise durch einen beliebigen Bustyp implementiert werden, z. B. durch einen PCI-E-Bus.
  • Im Betrieb kann der erste Schalt-Hypervisor 114, der aktuell auf der virtuellen Maschine 150 läuft, kontinuierlich Zustandinformation für die virtuelle Maschine 150 in den gemeinsam genutzten Speicher 130 speichern. Die Zustandinformation für die virtuelle Maschine 150 kann beispielsweise mit CPU-Registern und Zuständen, Peripheriegerätzuständen und dem Speicherinhalt der virtuellen Maschine 150 im Computer 110 oder 120 in Beziehung stehende Information enthalten.
  • Die mit CPU-Registern und Zuständen, Peripheriegerätzuständen und dem Speicherinhalt der virtuellen Maschine 150 im Computer 110 oder 120 in Beziehung stehende Information kann in spezifischen Speicherpositionen des gemeinsam genutzten Speichers 130 gespeichert werden. Daher kann, wenn der Betrieb der virtuellen Maschine 150 auf den Computer 120 geschaltet wird, der Computer 120 die gespeicherte Information direkt von den spezifischen Speicherpositionen des gemeinsam genutzten Speichers 130 abrufen, um Zustandinformation für die virtuelle Maschine 150 zu erhalten.
  • 2 zeigt eine Ausführungsform eines erfindungsgemäßen gemeinsam genutzten Speichers 130. Wie in 2 als Beispiel dargestellt ist, stellen eine Speicheradresse X, eine Speicheradresse Y und eine Speicheradresse Z die Anfangsadressen für Speicherblöcke dar, die mit den CPU-Registern und Zuständen, den Peripheriegerätzuständen bzw. dem Speicherinhalt der virtuellen Maschine in Beziehung stehende Information enthalten, so dass der Computer 120 beispielsweise mit den CPU-Registern und Zuständen der virtuellen Maschine in Beziehung stehende Information von der Speicheradresse X des gemeinsam genutzten Speichers 130 abrufen kann.
  • Wenn ein Benutzer versucht, die laufende virtuelle Maschine vom Computer 110 auf den Computer 120 zu schalten, wird eine Schaltmitteilung zum Schalten der virtuellen Maschine 150 auf den Computer 120 getriggert und an den ersten Schalt-Hypervisor 114 übertragen. Wenn der erste Schalt-Hypervisor 114 die Schaltmitteilung empfängt, unterbricht er den Betrieb der virtuellen Maschine 150 und leitet die Schaltmitteilung über die Schnittstellenverbindung 140 an den zweiten Schalt-Hypervisor 124 weiter. Nachdem der zweite Schalt-Hypervisor 124 die Schaltmitteilung empfangen hat, ruft er die gespeicherte Zustandinformation für die virtuelle Maschine 150 vom gemeinsam genutzten Speicher 130 ab. Außerdem ist eine virtuelle Maschine derart konfiguriert, dass sie gemäß der vom gemeinsam genutzten Speicher 130 abgerufenen Zustandinformation für die virtuelle Maschine 150 auf dem Computer 120 läuft, um den Betrieb der virtuellen Maschine 150 auf dem Computer 120 fortzusetzen. Weil die mit den CPU-Registern und Zuständen, den Peripheriegerätzuständen bzw. dem Speicherinhalt der virtuellen Maschine im Computer 110 in Beziehung stehende Information in spezifischen Speicherpositionen des gemeinsam genutzten Speichers 130 gespeichert werden kann (wie beispielsweise in 2 dargestellt ist), kann der Computer 120 die gespeicherte Information direkt von den spezifischen Speicherpositionen des gemeinsam genutzten Speichers 130 abrufen, um die Zustandinformation für die virtuelle Maschine 150 zu erhalten.
  • 3 zeigt ein Ablaufdiagramm einer Ausführungsform eines Verfahrens zum Auswählen einer laufenden virtuellen Maschine in einer erfindungsgemäßen Vorrichtung. Wenn ein Benutzer die Vorrichtung 100 aktiviert, kann zunächst der Computer 110 automatisch aktiviert werden. Daher werden die Hardwarekonfigurationen des Computers 110 initialisiert, um die Hardware zu booten (Schritt S310), woraufhin sein Schalt-Hypervisor 114 initialisiert werden kann (Schritt S320). Nachdem der Schalt-Hypervisor 114 initialisiert worden ist, kann er eine virtuelle Maschine konfigurieren. Der erste Schalt-Hypervisor 114 kann außerdem gemäß einer in einem Speichermedium (z. B. einer Festplatte, einem Festwertspeicher (ROM) oder einem Flash-Speicher) gespeicherten Voreinstellung oder einer Benutzerauswahl eine virtuelle Maschine unter mehreren virtuellen Maschinen als laufende virtuelle Maschine des Computers 110 auswählen (Schritt S330). Nachdem die Konfiguration für die virtuelle Maschine 150 bestimmt worden ist, kann der Schalt-Hypervisor 114 die ausgewählte virtuelle Maschine booten, so dass sie als das Betriebssystem (OS) des Computers 110 dienen kann (Schritt S340). Es wird darauf hingewiesen, dass die Konfiguration für die virtuelle Maschine 150 eine CPU-Typ-Konfiguration und Peripheriegerätkonfigurationen für die virtuelle Maschine 150 aufweisen kann. Wenn die CPU-Typ-Konfiguration der virtuellen Maschine 150 nicht mit derjenigen des Computers 110 übereinstimmt (wenn beispielsweise die CPU-Typ-Konfiguration der virtuellen Maschine 150 einer ARM-basierten CPU-Architektur entspricht, während der Computer 110 eine Intel x86-basierte CPU-Architektur hat), muss die virtuelle Maschine 150 gegebenenfalls einen Satz virtueller Hardwaregeräte simulieren, die auf dem Computer 110 lauffähig sind. Die virtuelle Maschine 150 kann ferner einen Befehlsübersetzer oder einen Befehlsemulator zum Simulieren von Befehlssätzen des ersten Computers 110 verwenden, wenn die in der virtuellen Maschine verwendete Hardwarearchitektur sich von der im Computer 110 verwendeten Hardwarearchitektur unterscheidet, so dass das Betriebssystem und Benutzeranwendungen der virtuellen Maschine 150 auf dem hustenden Computer 110 betreibbar sind.
  • Nachdem die virtuelle Maschine 150 auf dem Computer 110 läuft, kann ein erfindungsgemäßes Schaltverfahren ausgeführt werden, um die laufende virtuelle Maschine von einem ersten Computer auf einen zweiten Computer zu schalten.
  • 4 zeigt ein Ablaufdiagramm einer Ausführungsform eines Schaltverfahrens zum Schalten einer laufenden virtuellen Maschine von einem ersten Computer auf einen zweiten Computer in einer erfindungsgemäßen Vorrichtung. Das Schaltverfahren kann auf die in 1 dargestellte Vorrichtung 100 angewendet werden. Zunächst schreibt in Schritt S410 unter der Voraussetzung, dass eine virtuelle Maschine aktuell auf dem ersten Computer (d. h. dem Computer 110) läuft, der erste Schalt-Hypervisor 114 die gesamte Zustandinformation für die virtuelle Maschine in den gemeinsam genutzten Speicher 130, immer wenn die virtuelle Maschine läuft. Die Zustandinformation für die virtuelle Maschine 150 kann beispielsweise Information enthalten, die mit CPU-Registern und Zuständen, Peripheriegerätzuständen und dem Speicherinhalt der virtuellen Maschine 150 im Computer 110 in Beziehung steht. Die Zustandinformation für die virtuelle Maschine 150 kann in spezifischen Speicherpositionen des gemeinsam genutzten Speichers 130 gespeichert werden. Anschließend wird in Schritt S420 bestimmt, ob eine Schaltmitteilung empfangen worden ist. Wenn dies nicht der Fall ist, wird Schritt S410 durch den ersten Schalt-Hypervisor 114 ununterbrochen ausgeführt, um die gesamte Zustandinformation für die virtuelle Maschine zu speichern. Wenn ein Benutzer versucht, den Betrieb der virtuellen Maschine auf den zweiten Computer (d. h. den Computer 120) zu schalten, kann der Benutzer eine Schaltmitteilung an den ersten Schalt-Hypervisor 114 ausgeben, wobei die Schaltmitteilung Information über die virtuelle Maschine, den Computer, auf den geschaltet werden soll, und Speicheradressen für die Zustandinformation für die virtuelle Maschine im gemeinsam genutzten Speicher 130 enthält. Nachdem der erste Schalt-Hypervisor 114 die Schaltmitteilung empfangen hat (Ja in Schritt S420), kann er in Schritt S430 mit dem zweiten Schalt-Hypervisor 124 kommunizieren, um den zweiten Schalt-Hypervisor 124 anzuweisen, eine neue virtuelle Maschineninstanz einzurichten und die Zustandinformation der aktuell laufenden virtuellen Maschine zu empfangen. Der erste Schalt-Hypervisor 114 kann alle Arbeitsvorgänge der virtuellen Maschine unterbrechen. Nachdem die neue virtuelle Maschineninstanz auf dem Ziel-Computer (d. h. dem Computer 120) bereit ist, weist der erste Schalt-Hypervisor 114 in Schritt S440 den zweiten Schalt-Hypervisor 124 an, die Speicheradressen der Zustandinformation für die virtuelle Maschine im gemeinsam genutzten Speicher 130 zu lesen und die Zustandinformation der vorangehend betriebenen virtuellen Maschine abzurufen, um die laufende virtuelle Maschine auf dem Ziel-Computer weiterzubetreiben.
  • In der vorliegenden Ausführungsform wird die Zustandinformation für die virtuelle Maschine kontinuierlich aktualisiert und im gemeinsam genutzten Speicher 130 gespeichert, anstatt zum Ziel-Computer kopiert zu werden, so dass der Ziel-Computer den Betrieb der virtuellen Maschine durch Lesen der Zustandinformation vom gemeinsam genutzten Speicher 130 an den spezifischen Speicherpositionen nach dem Empfang der Schaltmitteilung schnell fortsetzen kann.
  • In einigen Ausführungsformen können die Computer 110 und 120 Verarbeitungseinheiten verschiedener Verarbeitungseinheittypen und/oder mit verschiedenen Betriebssystemen aufweisen. Beispielsweise kann der Verarbeitungseinheittyp des Computers 110 eine CPU der x86-Serie sein, und der Verarbeitungseinheittyp des Computers 120 kann ein ARM-Prozessor sein. Außerdem kann der Betriebssystemtyp des Computers 110 ein Windows-basiertes Betriebssystem sein, während der Betriebssystemtyp des Computers 120 ein Linux-basiertes Betriebssystem sein kann. Da die tatsächlichen Hardware-Peripheriegeräte des Computers 110 mit denjenigen des Computers 120 nicht identisch sind, ist der Computer 120 möglicherweise nicht mit einem durch den Computer 110 verwendeten Hardwaregerät direkt kompatibel. Daher werden verschiedene Verfahren zum Lösen der vorstehend erwähnten Hardware-Inkompatibilitätsprobleme bereitgestellt.
  • In einer Ausführungsform wird beispielsweise vorausgesetzt, dass der Computer 110 ein anschließbares Gerät aufweist und der Computer 120 eine Anschlussschnittstelle zum Anschließen des anschließbaren Geräts aufweist. In diesem Fall kann das anschließbare Gerät, nachdem die Schaltmitteilung empfangen wurde, zunächst vom Computer 110 entfernt und dann über die Anschlussschnittstelle an den Computer 120 angeschlossen werden, so dass es durch den Computer 120 verwendbar ist. Beispielsweise kann das anschließbare Gerät ein USB-Gerät sein, das Plug-and-Play-Funktionen unterstützt, so dass die Anschlussschnittstelle in diesem Fall eine USB-Schnittstelle ist.
  • In einer anderen Ausführungsform kann, wenn ein durch den Computer 110 verwendetes spezifisches Hardwaregerät im Computer 120 nicht vorhanden ist, der zweite Schalt-Hypervisor 124 ferner ein Hardwaregerät mit ähnlichen Funktionen wie das spezifische Hardwaregerät als ein entsprechendes Hardwaregerät aus Hardwaregeräten des Computers 120 auswählen. Wenn beispielsweise der Computer 110 eine Maus verwendet, aber im Computer 120 keine Maus vorhanden ist, kann der zweite Schalt-Hypervisor 124 ein Hardwaregerät mit ähnlichen Funktionen wie eine Maus auswählen, z. B. ein Touch-Panel.
  • In einer anderen Ausführungsform kann, wenn das durch das Computer 110 verwendete spezifische Hardwaregerät im Computer 120 nicht vorhanden ist und kein entsprechendes Hardwaregerät verwendet werden kann, der zweite Schalt-Hypervisor 124 das spezifische Hardwaregerät durch Softwaremodule implementieren, oder der zweite Schalt-Hypervisor 124 kann mit dem ersten Schalt-Hypervisor 114 kommunizieren, um ein virtuelles Gerät einzurichten, das die Originaleinstellung des spezifischen Hardwaregeräts im Computer 110 verwendet, und dann das virtuelle Gerät über die Schnittstellenverbindung 140 zwischen den Computern 110 und 120 verwenden.
  • Es wird darauf hingewiesen, dass in den vorstehend beschriebenen Ausführungsformen zur Erläuterung nur zwei Computer verwendet werden, um den Betrieb der virtuellen Maschine zu schalten, die Erfindung ist jedoch nicht darauf beschränkt. D. h., mehr als zwei Computer können die Zustandinformation der laufenden virtuellen Maschine durch direkten Zugriff auf den gemeinsam genutzten Speicher gemeinsam verwenden und können dann das erfindungsgemäße Schaltverfahren anwenden, um die virtuelle Maschine auf verschiedene Computer zu schalten.
  • Zusammengefasst können durch die Vorrichtung und das Verfahren zum Schalten einer laufenden virtuellen Maschine zwischen Computern, insbesondere für das Management einer virtuellen Maschine, die auf einer Desktop- oder Laptopplattform läuft, die aus homogenen oder heterogenen CPUs besteht, mehrere virtuelle Maschineninstanzen gleichzeitig betrieben werden. Die virtuelle Maschine kann auf einer Vorrichtung mit dem gleichen CPU-System oder mit Hilfe eines Befehlsübersetzers auf einem Computersystem mit einem anderen CPU-System gehostet werden. Unter Verwendung des erfindungsgemäßen Schalt-Hypervisors können wesentliche Zustände (z. B. Zustände von CPU-Registern) einer virtuellen Maschine in einem gemeinsam genutzten Speicher gespeichert werden, auf den mehrere beteiligte Computer zugreifen können, so dass die Wartezeit bis zum Weiterbetreiben der virtuellen Maschine verkürzt wird. D. h., der Schalt-Hypervisor kann die Zustände der virtuellen Maschine über den gemeinsam genutzten Speicher übertragen, ohne dass sie von einem Computer zu einem anderen kopiert werden müssen, so dass die virtuelle Maschine dynamisch geschaltet werden kann, um sie auf homogenen oder heterogenen Computern zu betreiben, und zwischen Computern, die der gleichen Plattform zugeordnet sind, in Echtzeit oder nahezu in Echtzeit übertragen werden kann.
  • Erfindungsgemäße Vorrichtungen und Schaltverfahren oder bestimmte Aspekte oder Teile davon können in Form eines Programmcodes (d. h. durch ausführbare Befehle) implementiert werden, der auf einem physischen Medium gespeichert ist, z. B. auf einer Diskette, einer CD-ROM, einer Festplatte oder einem anderen maschinenlesbaren Speichermedium, wobei, wenn der Programmcode in eine Maschine, z. B. einen Computer, geladen und darin ausgeführt wird, die Maschine dadurch zu einer Vorrichtung zum Ausführen der Verfahren wird. Die Verfahren können auch in der Form eines Programmcodes implementiert sein, der über ein Übertragungsmedium, z. B. eine elektrische Verdrahtung oder Verkabelung, über optische Fasern, oder über ein andersartiges Übertragungsmedium übertragen wird, wobei, wenn der Programmcode durch eine Maschine, z. B. einen Computer, empfangen, geladen und ausgeführt wird, die Maschine zu einer Vorrichtung zum Ausführen der beschriebenen Verfahren wird. Wenn der Programmcode auf einem Allzweckprozessor oder General-Purpose-Prozessor ausgeführt wird, wird durch den Programmcode in Kombination mit dem Prozessor eine spezifische Vorrichtung bereitgestellt, die analog zu anwendungsspezifischen Logikschaltungen arbeitet.
  • Obwohl die Erfindung anhand eines Beispiels und unter Bezug auf eine bevorzugte Ausführungsform beschrieben worden ist, ist die Erfindung nicht darauf beschränkt. Für Fachleute ist ersichtlich, dass innerhalb des durch die beigefügten Patentansprüche definierten Schutzumfangs der vorliegenden Erfindung verschiedene Änderungen und Modifikationen vorgenommen und äquivalente Ausführungsformen realisiert werden können.

Claims (22)

  1. Vorrichtung zum Managen einer laufenden virtuellen Maschine, mit: einem ersten Computer mit einem ersten Schalt-Hypervisor, auf dem eine virtuelle Maschine läuft; einem zweiten Computer mit einem zweiten Schalt-Hypervisor, wobei der zweite Schalt-Hypervisor mit dem ersten Schalt-Hypervisor kommuniziert; und einem mit dem ersten und dem zweiten Computer verbundenen gemeinsam genutzten Speicher, auf den der erste und der zweite Schalt-Hypervisor zugreifen können; wobei der erste Schalt-Hypervisor Zustandsinformation für die virtuelle Maschine in dem gemeinsam genutzten Speicher speichert, und wobei der erste Schalt-Hypervisor, wenn er eine Schaltmitteilung zum Schalten der virtuellen Maschine auf den zweiten Computer empfängt, seinen Betrieb der virtuellen Maschine unterbricht, und wobei der zweite Schalt-Hypervisor die gespeicherte Zustandsinformation für die virtuelle Maschine vom gemeinsam genutzten Speicher abruft und den Betrieb der virtuellen Maschine gemäß der abgerufenen Zustandsinformation für die virtuelle Maschine auf dem zweiten Computer fortsetzt.
  2. Vorrichtung nach Anspruch 1, wobei der zweite Schalt-Hypervisor die Zustandsinformation für die virtuelle Maschine kontinuierlich in dem gemeinsam genutzten Speicher speichert, wenn die Zustandsinformation für die virtuelle Maschine aktualisiert wird.
  3. Vorrichtung nach Anspruch 1, wobei die Zustandsinformation für die virtuelle Maschine mindestens Information enthält, die mit CPU-Registern und Zuständen, Peripheriegerätzuständen und dem Speicherinhalt der virtuellen Maschine im ersten Computer oder im zweiten Computer in Beziehung steht.
  4. Vorrichtung nach Anspruch 3, wobei die mit CPU-Registern und Zuständen, Peripheriegerätzuständen und dem Speicherinhalt der virtuellen Maschine im ersten Computer in Beziehung stehende Information in spezifischen Speicherpositionen des gemeinsam genutzten Speichers gespeichert wird und der zweite Computer die gespeicherte Information davon abruft, um Zustandsinformation für die virtuelle Maschine zu erhalten.
  5. Vorrichtung nach Anspruch 1, ferner mit einer mit dem ersten Computer und dem zweiten Computer verbundenen Schnittstellenverbindung, über die eine Kommunikation zwischen dem ersten Schalt-Hypervisor und dem zweiten Schalt-Hypervisor ermöglicht wird.
  6. Computer nach Anspruch 5, wobei die Schnittstellenverbindung einen PCI-E-Bus aufweist.
  7. Vorrichtung nach Anspruch 1, wobei der erste Schalt-Hypervisor ferner gemäß einer vorgegebenen Einstellung oder einer Benutzerauswahl eine virtuelle Maschine unter mehreren vorgegebenen virtuellen Maschinen als laufende virtuelle Maschine des ersten Computers auswählt.
  8. Vorrichtung nach Anspruch 1, wobei die virtuelle Maschine ferner einen Befehlsübersetzer oder einen Befehlsemulator zum Simulieren von Befehlssätzen des ersten Computers aufweist, wenn die in der virtuellen Maschine verwendete Hardwarearchitektur sich von der im zweiten Computer verwendeten Hardwarearchitektur unterscheidet.
  9. Vorrichtung nach Anspruch 8, wobei der erste Computer ein ARM-basierter Computer und der zweite Computer ein x86-basierter Computer ist, oder umgekehrt.
  10. Vorrichtung nach Anspruch 9, wobei der erste Computer ferner ein anschließbares Gerät aufweist und der zweite Computer eine Anschlussschnittstelle aufweist, an die das anschließbare Gerät anschließbar ist, und wobei das anschließbare Gerät, nachdem die Schaltmitteilung empfangen wurde, vom ersten Computer entfernt und über die Anschlussschnittstelle am zweiten Computer angeschlossen wird, um dadurch verwendet zu werden.
  11. Vorrichtung nach Anspruch 9, wobei, wenn ein spezifisches Hardwaregerät im zweiten Computer nicht vorhanden ist, der zweite Schalt-Hypervisor ferner ein Hardwaregerät, das ähnliche Funktionen hat wie das spezifische Hardwaregerät, als ein entsprechendes Hardwaregerät auswählt oder das spezifische Hardwaregerät durch Softwaremodule implementiert.
  12. Vorrichtung nach Anspruch 9, wobei, wenn ein spezifisches Hardwaregerät im zweiten Computer nicht vorhanden ist, der zweite Schalt-Hypervisor ferner mit dem ersten Schalt-Hypervisor kommuniziert, um ein virtuelles Gerät einzurichten, das die Originaleinstellung des spezifischen Hardwaregeräts im ersten Computer über die Schnittstellenverbindung zwischen dem ersten und dem zweiten Computer verwendet.
  13. Vorrichtung nach Anspruch 1, wobei der erste und der zweite Computer heterogene CPUs aufweisen.
  14. Schaltverfahren zum Schalten einer laufenden virtuellen Maschine zwischen Computern in einer Vorrichtung, die mindestens einen ersten und einen zweiten und einen dazwischen verbundenen gemeinsam genutzten Speicher aufweist, wobei der erste Computer einen ersten Schalt-Hypervisor aufweist, auf dem eine virtuelle Maschine läuft, und der zweite Computer einen zweiten Schalt-Hypervisor aufweist, der mit dem ersten Schalt-Hypervisor kommuniziert, wobei das Verfahren die Schritte aufweist: Speichern von Zustandsinformation für die laufende virtuelle Maschine in den gemeinsam genutzten Speicher durch den ersten Schalt-Hypervisor des ersten Computers, wenn die virtuelle Maschine auf dem ersten Computer läuft; Empfangen einer Schaltmitteilung zum Schalten der virtuellen Maschine auf den zweiten Computer; Unterbrechen des Betriebs der virtuellen Maschine durch den ersten Schalt-Hypervisor; und Abrufen der gespeicherten Zustandsinformation für die virtuelle Maschine vom gemeinsam genutzten Speicher durch den zweiten Schalt-Hypervisor und Fortsetzen des Betriebs der virtuellen Maschine auf dem zweiten Computer gemäß der erhaltenen Zustandsinformation für die virtuelle Maschine.
  15. Verfahren nach Anspruch 14, ferner mit dem Schritt zum kontinuierlichen Speichern der Zustandsinformation der virtuellen Maschine in den gemeinsam genutzten Speicher, wenn die Zustandsinformation für die virtuelle Maschine aktualisiert wird.
  16. Verfahren nach Anspruch 14, wobei die Zustandsinformation für die virtuelle Maschine mindestens Information enthält, die mit CPU-Registern und Zuständen, Peripheriegerätzuständen und dem Speicherinhalt der virtuellen Maschine im ersten Computer oder im zweiten Computer in Beziehung steht.
  17. Verfahren nach Anspruch 16, wobei die mit den CPU-Registern und Zuständen, Peripheriegerätzuständen und dem Speicherinhalt der virtuellen Maschine im ersten Computer in Beziehung stehende Information in spezifischen Speicherpositionen des gemeinsam genutzten Speichers gespeichert wird und der zweite Computer die gespeicherte Information davon abruft, um Zustandsinformation für die virtuelle Maschine zu erhalten.
  18. Verfahren nach Anspruch 14, ferner mit dem Schritt zum Auswählen einer virtuellen Maschine unter mehreren vorgegebenen virtuellen Maschinen als die laufende virtuelle Maschine des ersten Computers durch den ersten Schalt-Hypervisor gemäß einer vorgegebenen Einstellung oder einer Benutzerauswahl.
  19. Verfahren nach Anspruch 14, wobei die virtuelle Maschine ferner einen Befehlsübersetzer oder einen Befehlsemulator zum Simulieren von Befehlssätzen des ersten Computers aufweist, wenn die in der virtuellen Maschine verwendete Hardwarearchitektur sich von der im zweiten Computer verwendeten Hardwarearchitektur unterscheidet.
  20. Verfahren nach Anspruch 14, wobei der erste Computer ein anschließbares Gerät aufweist und der zweite Computer eine Anschlussschnittstelle aufweist, an die das anschließbare Gerät angeschlossen werden kann, wobei nach dem Empfang der Schaltmitteilung das anschließbare Gerät vom ersten Computer entfernt und über die Anschlussschnittstelle am zweiten Computer angeschlossen wird, so dass es durch den zweiten Computer verwendbar ist.
  21. Verfahren nach Anspruch 14, wobei, wenn ein spezifisches Hardwaregerät im zweiten Computer nicht vorhanden ist, der zweite Schalt-Hypervisor ferner ein Hardwaregerät mit ähnlichen Funktionen wie das spezifische Hardwaregerät als entsprechendes Hardwaregerät auswählt oder das spezifische Hardwaregerät durch Softwaremodule implementiert.
  22. Verfahren nach Anspruch 14, wobei der erste und der zweite Computer heterogene CPUs aufweisen.
DE102010001985A 2009-11-09 2010-02-16 Vorrichtung zum Schalten des Betriebs einer virtuellen Maschine zwischen mehreren Computern, die der gleichen Computerplattform zugeordnet sind, und entsprechende Schaltverfahren Withdrawn DE102010001985A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/614,860 US20110113426A1 (en) 2009-11-09 2009-11-09 Apparatuses for switching the running of a virtual machine between multiple computer devices belonging to the same computer platform and the associated switching methods
US12/614,860 2009-11-09

Publications (1)

Publication Number Publication Date
DE102010001985A1 true DE102010001985A1 (de) 2011-05-19

Family

ID=42084232

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102010001985A Withdrawn DE102010001985A1 (de) 2009-11-09 2010-02-16 Vorrichtung zum Schalten des Betriebs einer virtuellen Maschine zwischen mehreren Computern, die der gleichen Computerplattform zugeordnet sind, und entsprechende Schaltverfahren

Country Status (6)

Country Link
US (1) US20110113426A1 (de)
JP (1) JP2011100431A (de)
CN (1) CN102053857A (de)
DE (1) DE102010001985A1 (de)
GB (1) GB2475357B (de)
TW (1) TW201117100A (de)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2491915A (en) 2011-06-08 2012-12-19 Inst Information Industry Super operating system for a heterogeneous computer system
WO2012173137A1 (ja) * 2011-06-13 2012-12-20 日本電気株式会社 情報処理システム、情報処理装置、ストレージ装置、およびプログラム
TWI451245B (zh) * 2011-09-14 2014-09-01 Inst Information Industry 虛擬機器監控方法、系統及儲存其之電腦可讀取紀錄媒體
US20130135816A1 (en) * 2011-11-17 2013-05-30 Futurewei Technologies, Inc. Method and Apparatus for Scalable Low Latency Solid State Drive Interface
US9767058B2 (en) * 2011-11-17 2017-09-19 Futurewei Technologies, Inc. Method and apparatus for scalable low latency solid state drive interface
US9372735B2 (en) 2012-01-09 2016-06-21 Microsoft Technology Licensing, Llc Auto-scaling of pool of virtual machines based on auto-scaling rules of user associated with the pool
US9170849B2 (en) * 2012-01-09 2015-10-27 Microsoft Technology Licensing, Llc Migration of task to different pool of resources based on task retry count during task lease
US8904008B2 (en) 2012-01-09 2014-12-02 Microsoft Corporation Assignment of resources in virtual machine pools
WO2013139000A1 (zh) * 2012-03-21 2013-09-26 广州市飞元信息科技有限公司 支持用户自定义的虚拟操作区域及其操作方法和系统架构
US9160815B2 (en) * 2012-06-28 2015-10-13 Intel Corporation Method and apparatus for virtual machine interoperability
TWI475489B (zh) * 2012-06-28 2015-03-01 Ind Tech Res Inst 複製虛擬機器的記憶體資料的方法、其電腦程式產品以及電腦系統
US9330013B2 (en) 2012-06-28 2016-05-03 Industrial Technology Research Institute Method of cloning data in a memory for a virtual machine, product of computer programs and computer system therewith
US9547515B2 (en) 2012-07-25 2017-01-17 Hewlett-Packard Development Company, L.P. Convert a gesture
GB2508433A (en) 2012-12-03 2014-06-04 Ibm Migration of processes in heterogeneous computing environments using emulating and compiling source code on target system
US10684875B2 (en) 2012-12-06 2020-06-16 At&T Intellectual Property I, L.P. Synchronization of a virtual machine across mobile devices
WO2015001615A1 (ja) 2013-07-02 2015-01-08 富士通株式会社 仮想マシン管理方法,仮想マシン管理装置,および仮想マシン管理プログラム
US9465834B2 (en) * 2013-10-11 2016-10-11 Vmware, Inc. Methods and apparatus to manage virtual machines
CN103729233A (zh) * 2013-12-20 2014-04-16 中电长城网际系统应用有限公司 一种多虚拟机管理方法和装置
US9411765B2 (en) 2013-12-20 2016-08-09 Qualcomm Incorporated Methods of using a peripheral component interconnect express (PCIE) device in a virtual environment
JP6198858B2 (ja) * 2014-02-17 2017-09-20 株式会社日立製作所 計算機、及び、ハイパバイザによる資源スケジューリング方法
TWI515599B (zh) * 2014-03-17 2016-01-01 Chunghwa Telecom Co Ltd Computer program products and methods for monitoring and defending security
CN104253860B (zh) * 2014-09-11 2017-08-08 武汉噢易云计算股份有限公司 一种基于共享存储消息队列的虚拟机高可用实现方法
US9606827B2 (en) 2015-03-24 2017-03-28 International Business Machines Corporation Sharing memory between guests by adapting a base address register to translate pointers to share a memory region upon requesting for functions of another guest
US9612860B2 (en) * 2015-03-24 2017-04-04 International Business Machines Corporation Sharing memory between guests by adapting a base address register to translate pointers to share a memory region upon requesting for functions of another guest
CN104750578A (zh) * 2015-04-13 2015-07-01 成都双奥阳科技有限公司 具有三种操作系统的访问控制设备
US10740131B2 (en) 2017-06-14 2020-08-11 Red Hat, Inc. Input-output based virtual CPU halt
US10972449B1 (en) * 2018-06-28 2021-04-06 Amazon Technologies, Inc. Communication with components of secure environment
CN108880898B (zh) * 2018-06-29 2020-09-08 新华三技术有限公司 主备容器系统切换方法及装置
CN111124536B (zh) * 2019-12-12 2024-03-22 诚迈科技(南京)股份有限公司 基于数据隔离的双系统的数据共享方法和装置、终端设备

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2511542B2 (ja) * 1989-11-30 1996-06-26 日本電気株式会社 情報処理システム
US7213246B1 (en) * 2002-03-28 2007-05-01 Veritas Operating Corporation Failing over a virtual machine
JP2003330737A (ja) * 2002-05-15 2003-11-21 Hitachi Ltd 計算機システム
US7484208B1 (en) * 2002-12-12 2009-01-27 Michael Nelson Virtual machine migration
JP3933587B2 (ja) * 2003-01-28 2007-06-20 株式会社東芝 計算機システム、計算機装置及びオペレーティングシステムの移送方法
JP2004258840A (ja) * 2003-02-25 2004-09-16 Hitachi Ltd 仮想化されたi/oデバイスをもつ計算機システム
US7203944B1 (en) * 2003-07-09 2007-04-10 Veritas Operating Corporation Migrating virtual machines among computer systems to balance load caused by virtual machines
US7257811B2 (en) * 2004-05-11 2007-08-14 International Business Machines Corporation System, method and program to migrate a virtual machine
US7383405B2 (en) * 2004-06-30 2008-06-03 Microsoft Corporation Systems and methods for voluntary migration of a virtual machine between hosts with common storage connectivity
US8015561B2 (en) * 2004-12-28 2011-09-06 Sap Ag System and method for managing memory of Java session objects
US7730486B2 (en) * 2005-02-28 2010-06-01 Hewlett-Packard Development Company, L.P. System and method for migrating virtual machines on cluster systems
US7680643B2 (en) * 2005-11-17 2010-03-16 International Business Machines Corporation Method for carrying multiple suspended runtime images
US7536541B2 (en) * 2006-03-07 2009-05-19 Novell Inc. Parallelizing multiple boot images with virtual machines
US8856781B2 (en) * 2006-09-14 2014-10-07 Intel Corporation Method and apparatus for supporting assignment of devices of virtual machines
US7624240B1 (en) * 2006-10-17 2009-11-24 Vmware, Inc. Separate swap files corresponding to different virtual machines in a host computer system
US7673113B2 (en) * 2006-12-29 2010-03-02 Intel Corporation Method for dynamic load balancing on partitioned systems
US7743389B2 (en) * 2007-11-06 2010-06-22 Vmware, Inc. Selecting between pass-through and emulation in a virtual machine environment
JPWO2009069385A1 (ja) * 2007-11-27 2011-04-07 日本電気株式会社 デバイス検出装置、デバイス検出方法及びプログラム
JP5028304B2 (ja) * 2008-03-11 2012-09-19 株式会社日立製作所 仮想計算機システム及びその制御方法
US8359593B2 (en) * 2008-04-21 2013-01-22 Vmware, Inc. Computer machine migration of file system images using a redo-log file
US7886183B2 (en) * 2008-08-07 2011-02-08 Symantec Operating Corporation Providing fault tolerant storage system to a cluster
US8352952B2 (en) * 2008-12-01 2013-01-08 Citrix Systems, Inc. Systems and methods for facilitating virtualization of a heterogeneous processor pool
US8146082B2 (en) * 2009-03-25 2012-03-27 Vmware, Inc. Migrating virtual machines configured with pass-through devices
US8150971B2 (en) * 2009-05-31 2012-04-03 Red Hat Israel, Ltd. Mechanism for migration of client-side virtual machine system resources
JP5035299B2 (ja) * 2009-06-15 2012-09-26 株式会社日立製作所 マルチコアプロセッサ制御方法、その計算機システム、及び管理計算機のプログラム

Also Published As

Publication number Publication date
GB2475357A (en) 2011-05-18
TW201117100A (en) 2011-05-16
GB201001550D0 (en) 2010-03-17
CN102053857A (zh) 2011-05-11
JP2011100431A (ja) 2011-05-19
GB2475357B (en) 2012-01-04
US20110113426A1 (en) 2011-05-12

Similar Documents

Publication Publication Date Title
DE102010001985A1 (de) Vorrichtung zum Schalten des Betriebs einer virtuellen Maschine zwischen mehreren Computern, die der gleichen Computerplattform zugeordnet sind, und entsprechende Schaltverfahren
DE102020127924A1 (de) Gemeinschaftlich verwendeter speicherraum unter vorrichtungen
DE112011100392B4 (de) Ressourcenaffinität durch dynamisches hinzufügen oder entfernen von warteschlangenpaaren für netzadapter mit software zur empfangsseitigen skalierung (rss)
DE112011102183B4 (de) Beschleuniger für die Migration virtueller Maschinen
DE112010003554B4 (de) Symmetrische Direktmigration von Virtuellen Maschinen
DE102020115453A1 (de) Automatisches Umschalten und Einsetzen von Software- oder Firmware-basierten USB-Verbindungsmanagern
DE102018004046A1 (de) Nichtflüchtiger Speicher-Express über Fabric (NVMeOF) unter Verwendung eines Volumenverwaltungsgeräts
DE69024753T2 (de) Tragbarer, Ressourcen teilender Datei-Server, der gemeinsame Routines benutzt
DE112012005209T5 (de) Brückenfunktion zwischen Virtual Machine Monitor und Bare-Metal-Bootvorgang
DE112012000693B4 (de) Ausführen einer Vielzahl von Instanzen einer Anwendung
DE102020133738A1 (de) Firmware-update-techniken
DE112011100323T5 (de) Architekturübergreifende Migration virtueller Maschinen
DE112013003745T5 (de) Techniken zur dynamischen Partitionierung von physikalischem Speicher
DE112011100094T5 (de) Verfahren und System zum Abstrahieren eines auf nichtfunktionalen Anforderungen beruhenden Einsatzes von virtuellen Maschinen
DE112011102822T5 (de) Leistungsoptimierte Interrupt-Abgabe
DE102010001339A1 (de) Verwalten von Anforderungen von Betriebssystemen, die in virtuellen Maschinen ablaufen
DE112012000635T5 (de) Dynamische Speicherverwaltung in einer virtualisierten Datenverarbeitungsumgebung
DE102013017509A1 (de) Effiziente Speichervirtualisierung in mehrsträngigen Verarbeitungseinheiten
DE102020110143A1 (de) Standortbasierte virtualisierungs-workload-platzierung
DE102019102883A1 (de) Technologien zum Bewegen von Arbeitslasten zwischen Hardwarewarteschlangenmanagern
DE102013208041A1 (de) Serverbasierte Grafikverarbeitungstechniken
DE112016004297T5 (de) Technologien für mehrstufige virtualisierung
DE112007001135T5 (de) Gemeinschaftliche Nutzung von Daten durch Partitionen in einem partitionierbaren System
DE102010002288A1 (de) Displaysystem zum gleichzeitigen Darstellen von Fenstern, die durch mehrere Fenstersysteme erzeugt werden, die der gleichen Computerplattform zugeordnet sind
DE112012004793T5 (de) Verfahren und System zum Erzeugen einer virtuellen Anwendung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20140902