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 PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 32
- 230000002093 peripheral effect Effects 0.000 claims description 11
- 230000006870 function Effects 0.000 claims description 3
- 238000004891 communication Methods 0.000 claims description 2
- 238000012545 processing Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 206010011224 Cough Diseases 0.000 description 1
- 238000009429 electrical wiring Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, 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 Vorrichtung100 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 Vorrichtung100 zum Managen einer laufenden virtuellen Maschine. Die Vorrichtung100 weist mindestens zwei oder mehr Computer110 und120 , einen gemeinsam genutzten Speicher130 und eine Schnittstellenverbindung140 auf. Eine virtuelle Maschine150 ist zwischen den Computern110 und120 betreibbar. Jeder der Computer weist ferner eine Verarbeitungseinheit zum Steuern des Betriebs des Computers und einen Schalt-Hypervisor zum Managen des Betriebs einer virtuellen Maschine150 auf. Die virtuelle Maschine150 , die durch den Schalt-Hypervisor des Computers110 oder120 erzeugt und gesteuert wird, kann eine virtuelle CPU (Zentraleinheit), einen Speicher und einen Satz virtueller Hardwaregeräte aufweisen. Beispielsweise kann der Computer110 , wie in1 dargestellt ist, eine Verarbeitungseinheit112 zum Steuern des Betriebs des Computers110 und einen ersten Schalt-Hypervisor114 zum Managen des Betriebs der virtuellen Maschine150 aufweisen. Der Computer120 kann eine Verarbeitungseinheit122 und einen mit dem ersten Schalt-Hypervisor114 kommunizierenden zweiten Schalt-Hypervisor124 zum Managen des Betriebs einer virtuellen Maschine aufweisen. Der Computer120 ist über die Schnittstellenverbindung140 mit dem Computer110 verbunden. - Die Computer
110 und120 können Verarbeitungseinheiten des gleichen Typs oder verschiedener Typen und Hardwaregeräte aufweisen. In einer Ausführungsform können die Computer110 und120 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 Computer110 und120 Verarbeitungseinheiten verschiedener Verarbeitungseinheittypen aufweisen, auf denen verschiedene Betriebssysteme laufen. Beispielsweise kann der Verarbeitungseinheittyp des Computers110 eine CPU der Serie x86 sein, und der Verarbeitungseinheittyp des Computers110 kann ein ARM-Prozessor sein. Außerdem kann der Betriebssystemtyp des Computers110 ein Windows-basiertes Betriebssystem sein, während der Betriebssystemtyp des Computers120 ein Linux-basiertes Betriebssystem sein kann. - Der gemeinsam genutzte Speicher
130 ist mit den Computern110 und120 verbunden, und die Computer110 und120 und damit auch der erste und der zweite Hypervisor114 und124 können auf den gemeinsam genutzten Speicher zugreifen. Der gemeinsam genutzte Speicher130 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 Speicher130 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 Computer110 und120 können über eine Schnittstellenverbindung140 mit dem gemeinsam genutzten Speicher130 verbunden sein. Die Schnittstellenverbindung140 ist mit dem Computer110 und dem Computer120 verbunden, um eine Kommunikation zwischen dem ersten Schalt-Hypervisor114 und dem zweiten Schalt-Hypervisor124 zu ermöglichen. Die Schnittstellenverbindung140 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 Maschine150 läuft, kontinuierlich Zustandinformation für die virtuelle Maschine150 in den gemeinsam genutzten Speicher130 speichern. Die Zustandinformation für die virtuelle Maschine150 kann beispielsweise mit CPU-Registern und Zuständen, Peripheriegerätzuständen und dem Speicherinhalt der virtuellen Maschine150 im Computer110 oder120 in Beziehung stehende Information enthalten. - Die mit CPU-Registern und Zuständen, Peripheriegerätzuständen und dem Speicherinhalt der virtuellen Maschine
150 im Computer110 oder120 in Beziehung stehende Information kann in spezifischen Speicherpositionen des gemeinsam genutzten Speichers130 gespeichert werden. Daher kann, wenn der Betrieb der virtuellen Maschine150 auf den Computer120 geschaltet wird, der Computer120 die gespeicherte Information direkt von den spezifischen Speicherpositionen des gemeinsam genutzten Speichers130 abrufen, um Zustandinformation für die virtuelle Maschine150 zu erhalten. -
2 zeigt eine Ausführungsform eines erfindungsgemäßen gemeinsam genutzten Speichers130 . Wie in2 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 Computer120 beispielsweise mit den CPU-Registern und Zuständen der virtuellen Maschine in Beziehung stehende Information von der Speicheradresse X des gemeinsam genutzten Speichers130 abrufen kann. - Wenn ein Benutzer versucht, die laufende virtuelle Maschine vom Computer
110 auf den Computer120 zu schalten, wird eine Schaltmitteilung zum Schalten der virtuellen Maschine150 auf den Computer120 getriggert und an den ersten Schalt-Hypervisor114 übertragen. Wenn der erste Schalt-Hypervisor114 die Schaltmitteilung empfängt, unterbricht er den Betrieb der virtuellen Maschine150 und leitet die Schaltmitteilung über die Schnittstellenverbindung140 an den zweiten Schalt-Hypervisor124 weiter. Nachdem der zweite Schalt-Hypervisor124 die Schaltmitteilung empfangen hat, ruft er die gespeicherte Zustandinformation für die virtuelle Maschine150 vom gemeinsam genutzten Speicher130 ab. Außerdem ist eine virtuelle Maschine derart konfiguriert, dass sie gemäß der vom gemeinsam genutzten Speicher130 abgerufenen Zustandinformation für die virtuelle Maschine150 auf dem Computer120 läuft, um den Betrieb der virtuellen Maschine150 auf dem Computer120 fortzusetzen. Weil die mit den CPU-Registern und Zuständen, den Peripheriegerätzuständen bzw. dem Speicherinhalt der virtuellen Maschine im Computer110 in Beziehung stehende Information in spezifischen Speicherpositionen des gemeinsam genutzten Speichers130 gespeichert werden kann (wie beispielsweise in2 dargestellt ist), kann der Computer120 die gespeicherte Information direkt von den spezifischen Speicherpositionen des gemeinsam genutzten Speichers130 abrufen, um die Zustandinformation für die virtuelle Maschine150 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 Vorrichtung100 aktiviert, kann zunächst der Computer110 automatisch aktiviert werden. Daher werden die Hardwarekonfigurationen des Computers110 initialisiert, um die Hardware zu booten (Schritt S310), woraufhin sein Schalt-Hypervisor114 initialisiert werden kann (Schritt S320). Nachdem der Schalt-Hypervisor114 initialisiert worden ist, kann er eine virtuelle Maschine konfigurieren. Der erste Schalt-Hypervisor114 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 Computers110 auswählen (Schritt S330). Nachdem die Konfiguration für die virtuelle Maschine150 bestimmt worden ist, kann der Schalt-Hypervisor114 die ausgewählte virtuelle Maschine booten, so dass sie als das Betriebssystem (OS) des Computers110 dienen kann (Schritt S340). Es wird darauf hingewiesen, dass die Konfiguration für die virtuelle Maschine150 eine CPU-Typ-Konfiguration und Peripheriegerätkonfigurationen für die virtuelle Maschine150 aufweisen kann. Wenn die CPU-Typ-Konfiguration der virtuellen Maschine150 nicht mit derjenigen des Computers110 übereinstimmt (wenn beispielsweise die CPU-Typ-Konfiguration der virtuellen Maschine150 einer ARM-basierten CPU-Architektur entspricht, während der Computer110 eine Intel x86-basierte CPU-Architektur hat), muss die virtuelle Maschine150 gegebenenfalls einen Satz virtueller Hardwaregeräte simulieren, die auf dem Computer110 lauffähig sind. Die virtuelle Maschine150 kann ferner einen Befehlsübersetzer oder einen Befehlsemulator zum Simulieren von Befehlssätzen des ersten Computers110 verwenden, wenn die in der virtuellen Maschine verwendete Hardwarearchitektur sich von der im Computer110 verwendeten Hardwarearchitektur unterscheidet, so dass das Betriebssystem und Benutzeranwendungen der virtuellen Maschine150 auf dem hustenden Computer110 betreibbar sind. - Nachdem die virtuelle Maschine
150 auf dem Computer110 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 in1 dargestellte Vorrichtung100 angewendet werden. Zunächst schreibt in Schritt S410 unter der Voraussetzung, dass eine virtuelle Maschine aktuell auf dem ersten Computer (d. h. dem Computer110 ) läuft, der erste Schalt-Hypervisor114 die gesamte Zustandinformation für die virtuelle Maschine in den gemeinsam genutzten Speicher130 , immer wenn die virtuelle Maschine läuft. Die Zustandinformation für die virtuelle Maschine150 kann beispielsweise Information enthalten, die mit CPU-Registern und Zuständen, Peripheriegerätzuständen und dem Speicherinhalt der virtuellen Maschine150 im Computer110 in Beziehung steht. Die Zustandinformation für die virtuelle Maschine150 kann in spezifischen Speicherpositionen des gemeinsam genutzten Speichers130 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-Hypervisor114 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 Computer120 ) zu schalten, kann der Benutzer eine Schaltmitteilung an den ersten Schalt-Hypervisor114 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 Speicher130 enthält. Nachdem der erste Schalt-Hypervisor114 die Schaltmitteilung empfangen hat (Ja in Schritt S420), kann er in Schritt S430 mit dem zweiten Schalt-Hypervisor124 kommunizieren, um den zweiten Schalt-Hypervisor124 anzuweisen, eine neue virtuelle Maschineninstanz einzurichten und die Zustandinformation der aktuell laufenden virtuellen Maschine zu empfangen. Der erste Schalt-Hypervisor114 kann alle Arbeitsvorgänge der virtuellen Maschine unterbrechen. Nachdem die neue virtuelle Maschineninstanz auf dem Ziel-Computer (d. h. dem Computer120 ) bereit ist, weist der erste Schalt-Hypervisor114 in Schritt S440 den zweiten Schalt-Hypervisor124 an, die Speicheradressen der Zustandinformation für die virtuelle Maschine im gemeinsam genutzten Speicher130 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 Speicher130 an den spezifischen Speicherpositionen nach dem Empfang der Schaltmitteilung schnell fortsetzen kann. - In einigen Ausführungsformen können die Computer
110 und120 Verarbeitungseinheiten verschiedener Verarbeitungseinheittypen und/oder mit verschiedenen Betriebssystemen aufweisen. Beispielsweise kann der Verarbeitungseinheittyp des Computers110 eine CPU der x86-Serie sein, und der Verarbeitungseinheittyp des Computers120 kann ein ARM-Prozessor sein. Außerdem kann der Betriebssystemtyp des Computers110 ein Windows-basiertes Betriebssystem sein, während der Betriebssystemtyp des Computers120 ein Linux-basiertes Betriebssystem sein kann. Da die tatsächlichen Hardware-Peripheriegeräte des Computers110 mit denjenigen des Computers120 nicht identisch sind, ist der Computer120 möglicherweise nicht mit einem durch den Computer110 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 Computer120 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 Computer110 entfernt und dann über die Anschlussschnittstelle an den Computer120 angeschlossen werden, so dass es durch den Computer120 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 Computer120 nicht vorhanden ist, der zweite Schalt-Hypervisor124 ferner ein Hardwaregerät mit ähnlichen Funktionen wie das spezifische Hardwaregerät als ein entsprechendes Hardwaregerät aus Hardwaregeräten des Computers120 auswählen. Wenn beispielsweise der Computer110 eine Maus verwendet, aber im Computer120 keine Maus vorhanden ist, kann der zweite Schalt-Hypervisor124 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 Computer120 nicht vorhanden ist und kein entsprechendes Hardwaregerät verwendet werden kann, der zweite Schalt-Hypervisor124 das spezifische Hardwaregerät durch Softwaremodule implementieren, oder der zweite Schalt-Hypervisor124 kann mit dem ersten Schalt-Hypervisor114 kommunizieren, um ein virtuelles Gerät einzurichten, das die Originaleinstellung des spezifischen Hardwaregeräts im Computer110 verwendet, und dann das virtuelle Gerät über die Schnittstellenverbindung140 zwischen den Computern110 und120 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)
- 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.
- 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.
- 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.
- 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.
- 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.
- Computer nach Anspruch 5, wobei die Schnittstellenverbindung einen PCI-E-Bus aufweist.
- 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.
- 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.
- Vorrichtung nach Anspruch 8, wobei der erste Computer ein ARM-basierter Computer und der zweite Computer ein x86-basierter Computer ist, oder umgekehrt.
- 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.
- 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.
- 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.
- Vorrichtung nach Anspruch 1, wobei der erste und der zweite Computer heterogene CPUs aufweisen.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Verfahren nach Anspruch 14, wobei der erste und der zweite Computer heterogene CPUs aufweisen.
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)
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)
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 | 株式会社日立製作所 | マルチコアプロセッサ制御方法、その計算機システム、及び管理計算機のプログラム |
-
2009
- 2009-11-09 US US12/614,860 patent/US20110113426A1/en not_active Abandoned
- 2009-12-04 JP JP2009276432A patent/JP2011100431A/ja active Pending
- 2009-12-15 TW TW098142835A patent/TW201117100A/zh unknown
- 2009-12-17 CN CN200910260939.0A patent/CN102053857A/zh active Pending
-
2010
- 2010-01-29 GB GB1001550.1A patent/GB2475357B/en not_active Expired - Fee Related
- 2010-02-16 DE DE102010001985A patent/DE102010001985A1/de not_active Withdrawn
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 |