DE112015007188T5 - Batch-Migration virtueller Maschinen während des aktiven Bertriebs - Google Patents

Batch-Migration virtueller Maschinen während des aktiven Bertriebs Download PDF

Info

Publication number
DE112015007188T5
DE112015007188T5 DE112015007188.1T DE112015007188T DE112015007188T5 DE 112015007188 T5 DE112015007188 T5 DE 112015007188T5 DE 112015007188 T DE112015007188 T DE 112015007188T DE 112015007188 T5 DE112015007188 T5 DE 112015007188T5
Authority
DE
Germany
Prior art keywords
virtual machines
virtual
virtual machine
groups
memory pages
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
DE112015007188.1T
Other languages
English (en)
Inventor
Yao Zu Dong
Yuyang Du
Mingqiu Sun
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.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE112015007188T5 publication Critical patent/DE112015007188T5/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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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
    • 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/45583Memory management, e.g. access or allocation
    • 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/45595Network integration; Enabling network access in virtual machine instances

Abstract

Eine Steuereinheit für das Migrieren virtueller Maschinen kann die Migration mehrerer virtueller Maschinen während des aktiven Betriebes von einem ersten physischen Host-System zu einem zweiten physischen Host-System ausführen. Die Steuereinheit für das Migrieren virtueller Maschinen kann eine Speicherseitenmanipulationsrate für jede von mehreren virtuellen Maschinen bestimmen. Die Steuereinheit für das Migrieren virtueller Maschinen kann zusätzlich virtuelle Maschinen identifizieren, die Speicherseiten gemeinsam nutzen und/oder auf verschiedene Speicherseiten abgebildet werden, die mindestens zum Teil identische Daten oder Informationen aufweisen. Die Steuereinheit für das Migrieren virtueller Maschinen kann virtuelle Maschinen gruppieren, die eine Gemeinsamkeit zwischen abgebildeten Speicherseiten aufzeigen. Die Steuereinheit für das Migrieren virtueller Maschinen kann eine prognostizierte Migrationszeit anhand der Manipulationsrate, der Gemeinsamkeit von Speicherseiten und der verfügbaren Bandbreite bestimmen. Die Steuereinheit für das Migrieren virtueller Maschinen ordnet und transferiert Gruppen virtueller Maschinen anhand der prognostizierten Migrationszeit.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Offenbarung betrifft die Migration virtueller Maschinen.
  • HINTERGRUND
  • Eine virtuelle Maschine („VM“) ist eine Emulation einer bestimmten Betriebsumgebung. Virtuelle Maschinen arbeiten auf der Basis der Computerarchitektur und Funktionen eines realen oder hypothetischen Computers, und die Implementierung kann spezialisierte Hardware, Software oder beides beinhalten. Virtuelle Maschinen können anhand des Grades klassifiziert werden, bis zu dem die Funktionalität der realen Zielmaschine innerhalb der virtuellen Maschine implementiert wurde. Virtuelle Systemmaschinen bilden einen kompletten Ersatz für die reale Zielmaschine und eine Funktionalitätsebene, die benötigt wird, um die Ausführung eines kompletten Betriebssystems zu unterstützen. Virtuelle Prozessmaschinen dienen dazu, eine einzelne Anwendung Bereitstellen einer abstrahierten und plattformunabhängigen Programmausführungsumgebung auszuführen.
  • Virtuelle Maschinen können lokal oder räumlich abgesetzt implementiert werden, zum Beispiel auf einer oder mehreren Host-Vorrichtungen, wie zum Beispiel ein oder mehrere räumlich abgesetzte Server-Systeme. Gelegentlich kann es erforderlich werden, einen Anzahl virtueller Maschinen von einer ersten räumlich abgesetzten Host-Vorrichtung zu einer zweiten räumlich abgesetzten Host-Vorrichtung zu migrieren. Eine Migration virtueller Maschinen während des aktiven Betriebes verlagert virtuelle Maschinen über physische Hosts hinweg, während die virtuelle Maschine weiter arbeitet. Virtuelle Maschinen können über physische Hosts hinweg migriert werden, um die Dienstverfügbarkeit zu verbessern, die Ressourcenauslastung zu erhöhen, die Verwaltung der physischen Hosts zu vereinfachen, eine Serverwartung auszuführen oder einen Lastausgleich über eine Anzahl physischer Hosts hinweg vorzunehmen. Die Migration virtueller Maschinen während des aktiven Betriebes ist eine Schlüsseltechnik in virtualisierten Datenzentren und in Cloud-basierten Betriebssystemen, wie zum Beispiel Openstack.
  • Mit zunehmender Hardware-Leistung steigt in zunehmendem Maße die Fähigkeit einer einzelnen Vorrichtung, eine große Anzahl am selben Ort befindlicher virtueller Maschinen zu unterstützen. Mit zunehmender Anzahl am selben Ort befindlicher virtueller Maschinen steigt auch die Wahrscheinlichkeit, dass die Anzahl gleichzeitig migrierter virtueller Maschinen zunimmt. In ähnlicher Weise steigt mit einer zunehmenden Anzahl virtueller Maschinen tendenziell auch die Wahrscheinlichkeit einer Überlappung zwischen Migrationen und/oder der Migration aller virtuellen Maschinen von einem ersten physischen Host zu einem zweiten physischen Host.
  • Alternativ können virtuelle Maschinen nacheinander oder nach einem bestimmten Plan individuell migriert werden. Jedoch lassen sich Vorteile realisieren, wenn mehrere virtuelle Maschinen als eine Gruppe migriert werden:
    • • Wenn die virtuellen Maschinen VM-Interkommunikationskanäle enthalten, so sollten die virtuellen Maschinen parallel migriert und am physischen Ziel-Host ihr Betrieb gleichzeitig wiederaufgenommen werden. Eine aufeinanderfolgende Migration solcher virtuellen Maschinen kann aufgrund der Unterbrechung der VM-Interkommunikationskanäle zu einem Ausfall führen, wenn die virtuellen Maschinen individuell zwischen physischen Hosts migriert werden.
    • • Virtuelle Maschinen, die sich alle zusammen auf einem gemeinsamen physischen Host befinden, können eine große Anzahl von Speicherseiten gemeinsam nutzen. Das individuelle Migrieren solcher virtuellen Maschinen kann zu einer Migration einer großen Anzahl doppelter Speicherseiten führen. Eine solche Duplizierung vergeudet sowohl Speicherkapazität im physischen Ziel-Host als auch Bandbreite im Netzwerk, die zum Migrieren der virtuellen Maschinen verwendet wird.
    • • Bei Container-VM-Fällen (wie zum Beispiel Intels Clear Container) kann sich eine riesige Anzahl virtueller Maschinen auf einem einzigen Host befinden. Bei einer solchen Implementierung nutzen die virtuellen Maschinen wahrscheinlich eine Anzahl von Speicherseiten gemeinsam und kommunizieren auch miteinander. Unter solchen Bedingungen ist eine Batch-Migration den virtuellen Maschinen vorteilhaft.
  • Die meisten bekannten Lösungen zum Migrieren virtueller Maschinen transferieren lediglich individuelle virtuelle Maschinen oder transferieren alle virtuellen Maschinen, die auf dem physischen Quellen-Host implementiert sind. Ein solches Migrationsregime ist suboptimal, da bei der Migration individueller virtueller Maschinen oder der Migration aller virtueller Maschinen die Chance verloren geht, die Daten, die zwischen dem physischen Quellen-Host und dem physischen Ziel-Host transferiert werden, signifikant zu reduzieren, indem Speicherseiten identifiziert werden, die zwischen virtuellen Maschinen entweder ganz oder teilweise gemeinsam genutzt werden oder doppelt vorhanden sind. Außerdem kann es bei solchen Lösungen aufgrund nichtkonvergierter manipulierter Speicherseiten in der Vor-Kopie-Phase zu einem Migrationsausfall kommen.
  • Figurenliste
  • Merkmale und Vorteile verschiedener Ausführungsformen des beanspruchten Gegenstandes werden im Verlauf der folgenden Detaillierten Beschreibung sowie aus dem Studium der Zeichnungen offenbar, in denen gleiche Bezugszahlen gleiche Teile bezeichnen und in denen Folgendes zu sehen ist:
    • 1 ist ein Schaubild eines Systems zum Migrieren virtueller Maschinen während des aktiven Betriebes gemäß mindestens einer Ausführungsform der vorliegenden Offenbarung;
    • 2A ist ein Schaubild eines veranschaulichenden Systems, in dem vier virtuelle Maschinen, die auf einem ersten physischen Host implementiert sind, eine gemeinsame Speicherseite, die am selben Speicherort in dem ersten physischen Host gespeichert ist, gemeinsam nutzen, gemäß mindestens einer Ausführungsform der vorliegenden Offenbarung;
    • 2B ist ein Schaubild eines veranschaulichenden Systems, in dem vier virtuelle Maschinen, die auf einem ersten physischen Host implementiert sind, Daten zu einer jeweiligen Speicherseite übermitteln, und in dem jede der Speicherseiten die gleichen oder ähnliche Daten hat, gemäß mindestens einer Ausführungsform der vorliegenden Offenbarung;
    • 3 ist ein Diagramm 300, das Daten enthält, die den Grad an Speicherseitengemeinsamkeit zwischen jedem Paar zu migrierender virtueller Maschinen anzeigen, gemäß mindestens einer Ausführungsform der vorliegenden Offenbarung;
    • 4 ist ein allgemein gehaltenes Flussdiagramm eines veranschaulichenden Verfahrens zum Migrieren virtueller Maschinen während des aktiven Betriebes gemäß mindestens einer Ausführungsform der vorliegenden Offenbarung;
    • 5 ist ein allgemein gehaltenes Flussdiagramm eines veranschaulichenden Verfahrens zum Migrieren von Gruppen virtueller Maschinen zwischen einem ersten physischen Host und einem zweiten physischen Host auf der Basis einer prognostizierten Migrationszeit der jeweiligen Gruppen virtueller Maschinen gemäß mindestens einer Ausführungsform der vorliegenden Offenbarung;
    • 6 ist ein allgemein gehaltenes Flussdiagramm eines anderen veranschaulichenden Verfahrens zum Migrieren virtueller Maschinen während des aktiven Betriebes gemäß mindestens einer Ausführungsform der vorliegenden Offenbarung; und
    • 7 ist ein Blockschaubild einer veranschaulichenden Steuereinheit für das Migrieren virtueller Maschinen gemäß mindestens einer Ausführungsform der vorliegenden Offenbarung.
  • Obgleich die folgende Detaillierte Beschreibung anhand veranschaulichender Ausführungsformen dargelegt wird, fallen dem Fachmann viele Alternativen, Modifizierungen und Variationen ein.
  • DETAILLIERTE BESCHREIBUNG
  • Ein Aspekt des Migrierens virtueller Maschinen zwischen physischen Hosts ist das Kopieren des sich verändernden Speichers der virtuellen Ziel-Maschine, während die virtuelle Maschine weiter arbeitet, vom Quellen-Host zum Zielort. Die Speicherseiten, die mit einer virtuellen Maschine verknüpft sind, machen einen beträchtlichen Teil der Datenübertragung aus, und die Netzwerkbandbreite, über die die Speicherseiten transferiert wird, kann die Fähigkeit einschränken oder auf sonstige Weise begrenzen, Speicherseiten zügig zwischen physischen Hosts zu transferieren. Um das Problem zu lösen, dass mit dem Migrieren einer großen Anzahl datenintensiver Speicherseiten zusammenhängt, kann eine Migration virtueller Maschinen während des aktiven Betriebes ausgeführt werden durch:
    • • Untersuchen der Speicherseiten, die logisch mit den zu migrierenden virtuellen Maschinen verknüpft sind und die in dem Speicher des physischen Quellen-Hosts gespeichert sind, um gemeinsam genutzte Speicherseiten zu identifizieren. Es wird dann nur eine einzige Instanz der gemeinsam genutzten Speicherseite transferiert.
    • • Um die Wahrscheinlichkeit zu erhöhen, dass gemeinsam genutzte oder teilweise identische Speicherseiten innerhalb des physischen Quellen-Hosts identifiziert werden, untersucht eine Steuereinheit für das Migrieren virtueller Maschinen während des aktiven Betriebes die Speicherseiten auf einer granularen Ebene, sieht sich Teilseiten auf einer granularen Ebene an und verwendet eine oder mehrere Datenfingerabdrucktechniken zum Beschleunigen der Identifizierung gemeinsam genutzter, teilweise identischer oder vollständig identischer Speicherseiten.
    • • Da jede virtuelle Maschine eine allgemein gleichbleibende Speicherseitenmanipulationsrate beibehält, erfasst die Steuereinheit für das Migrieren virtueller Maschinen während des aktiven Betriebes das Arbeitssatzmuster des beschreibbaren Speichers unter Verwendung eines Dirty-Log-Modus, um die Anzahl manipulierter Speicherseiten zu verfolgen. Die Steuereinheit für das Migrieren virtueller Maschinen während des aktiven Betriebes sagt dann dynamisch das Arbeitssatzmuster des Speichers bei einer gegebenen Netzwerkbandbreite voraus, einschließlich der Konvergenz und Dauer und Iteration, die für die Migration aufgewendet werden. Auf der Basis der prognostizierten Migrationszeit wählt die Steuereinheit für das Migrieren virtueller Maschinen während des aktiven Betriebes eine Gruppe virtueller Maschinen zur Migration bei einer gegebenen (oder zugewiesenen) Speicherbandbreite aus, um erfolgreich die Batch-Migration zu vollenden.
  • Es wird ein System zum Migrieren mehrerer virtueller Maschinen während des aktiven Betriebes von einem ersten physischen Host zu einem zweiten physischen Host bereitgestellt. Das System kann mindestens eine Netzwerkschnittstelle, die kommunikationsfähig mit dem ersten physischen Host und dem zweiten physischen Host gekoppelt ist, und mindestens einen Schaltkreis, der kommunikationsfähig mit der mindestens einen Netzwerkschnittstelle gekoppelt ist, enthalten. Das System kann des Weiteren mindestens eine Speichervorrichtung enthalten, die kommunikationsfähig mit dem mindestens einen Schaltkreis gekoppelt ist, wobei die mindestens eine Speichervorrichtung maschinenlesbare Instruktionen enthält, die, wenn sie ausgeführt werden, mindestens einen Abschnitt des Schaltkreises veranlassen, eine Steuereinheit für das Migrieren virtueller Maschinen bereitzustellen, wobei die Steuereinheit für das Migrieren virtueller Maschinen zu Folgendem dient: für jede virtuelle Maschine aus mehreren virtuellen Maschinen, die auf dem ersten physischen Host gehostet werden: Bestimmen eines Wertes, der die Speicherseitenmanipulationsrate angibt, die logisch mit der jeweiligen virtuellen Maschine verknüpft ist, selektives Gruppieren mindestens einiger der virtuellen Maschinen aus den mehreren virtuellen Maschinen, um eine Anzahl von Gruppen virtueller Maschinen bereitzustellen, wobei jede virtuelle Maschine in einer jeweiligen Gruppe virtueller Maschinen auf einen identischen Speicherseiteninhaltsabschnitt auf dem ersten physischen Host zugreift, und dynamisches Prognestizieren einer Dauer zum Migrieren der jeweiligen Gruppe virtueller Maschinen mindestens teilweise auf der Basis von Folgendem: einer einzelnen Migration des identischen Speicherseiteninhaltsabschnitts, auf den durch die virtuellen Maschinen in der jeweiligen Gruppe virtueller Maschinen zugegriffen wird; einer verfügbaren Bandbreite zum Migrieren der jeweiligen Gruppe virtueller Maschinen von dem ersten physischen Host zu dem zweiten physischen Host; und des Wertes, der die Speicherseitenmanipulationsrate angibt, die logisch mit jeder der virtuellen Maschinen verknüpft ist, die in der jeweiligen Gruppe virtueller Maschinen enthalten sind.
  • Es wird ein weiteres System zum Migrieren virtueller Maschinen während des aktiven Betriebes bereitgestellt. Das System kann mindestens einen Controller-Schaltkreis und mindestens eine Speichervorrichtung, die kommunikationsfähig mit dem mindestens einen Controller-Schaltkreis gekoppelt ist, enthalten, wobei die mindestens eine Speichervorrichtung maschinenausführbare Instruktionen enthält, die, wenn sie durch den mindestens einen Controller-Schaltkreis ausgeführt werden, den mindestens einen Controller-Schaltkreis veranlassen, eine Steuereinheit für das Migrieren virtueller Maschinen bereitzustellen. Die Steuereinheit für das Migrieren virtueller Maschinen kann eine Seitenmanipulationsrate für jede von mehreren virtuellen Maschinen bestimmen, die sich auf einem ersten Host-System befinden; selektives Gruppieren mindestens einiger der mehreren virtuellen Maschinen, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, wobei jede der Gruppen virtueller Maschinen virtuelle Maschinen enthält, die zuvor auf mindestens einen identischen Speicherseiteninhaltsabschnitt zugegriffen haben; und Bestimmen einer prognostizierten Migrationszeit zum Migrieren einer jeden der Anzahl von Gruppen virtueller Maschinen von dem ersten Host-System zu einem zweiten Host-System mindestens teilweise auf der Basis des mindestens einen identischen Speicherseiteninhaltsabschnitts, der Seitenmanipulationsrate für jede der virtuellen Maschinen, die in der jeweiligen Gruppe enthalten sind, und der verfügbaren Netzwerkbandbreite.
  • Es wird ein Verfahren zum Migrieren virtueller Maschinen während des aktiven Betriebes bereitgestellt. Das Verfahren kann, für jede virtuelle Maschine aus mehreren virtuellen Maschinen, enthalten: Bestimmen eines Wertes, der die Speicherseitenmanipulationsrate angibt, die logisch mit der jeweiligen virtuellen Maschine verknüpft ist, und selektives Gruppieren virtueller Maschinen aus den mehreren virtuellen Maschinen, um eine Anzahl von Gruppen virtueller Maschinen bereitzustellen, wobei jede virtuelle Maschine in einer jeweiligen Gruppe virtueller Maschinen auf einen identischen Speicherseiteninhaltsabschnitt zugreift. Das Verfahren kann des Weiteren, für jede Gruppe virtueller Maschinen, enthalten: dynamisches Prognestizieren einer Dauer zum Migrieren der jeweiligen Gruppe virtueller Maschinen mindestens teilweise auf der Basis von Folgendem: einer einzelnen Migration des identischen Speicherseiteninhaltsabschnitts, auf den durch die virtuellen Maschinen in der jeweiligen Gruppe virtueller Maschinen zugegriffen wird; einer verfügbaren Bandbreite zum Migrieren der jeweiligen Gruppe virtueller Maschinen; und des Wertes, der die Speicherseitenmanipulationsrate angibt, die logisch mit jeder der virtuellen Maschinen verknüpft ist, die in der jeweiligen Gruppe virtueller Maschinen enthalten sind.
  • Es wird ein weiteres Verfahren zum Migrieren virtueller Maschinen während des aktiven Betriebes bereitgestellt. Das Verfahren kann des Bestimmen, durch eine Steuereinheit für das Migrieren virtueller Maschinen, einer Seitenmanipulationsrate für jede von mehreren virtuellen Maschinen enthalten. Das Verfahren kann des Weiteren das selektive Gruppieren, durch die Steuereinheit für das Migrieren virtueller Maschinen, mindestens einiger der mehreren virtuellen Maschinen enthalten, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, wobei jede der Gruppen virtueller Maschinen virtuelle Maschinen enthält, die zuvor auf mindestens einen identischen Speicherseiteninhaltsabschnitt zugegriffen haben. Das Verfahren kann zusätzlich des Bestimmen, durch die Steuereinheit für das Migrieren virtueller Maschinen, einer prognostizierten Migrationszeit für jede der Anzahl von Gruppen virtueller Maschinen mindestens teilweise auf der Basis des mindestens einen identischen Speicherseiteninhaltsabschnitts, der Seitenmanipulationsrate für jede der virtuellen Maschinen, die in der jeweiligen Gruppe enthalten sind, und der verfügbaren Netzwerkbandbreite enthalten.
  • Es wird ein weiteres System zum Migrieren virtueller Maschinen während des aktiven Betriebes bereitgestellt. Das System kann, für jede virtuelle Maschine aus mehreren virtuellen Maschinen, ein Mittel zum Bestimmen eines Wertes enthalten, der die Speicherseitenmanipulationsrate angibt, die logisch mit der jeweiligen virtuellen Maschine verknüpft ist. Das System kann zusätzlich ein Mittel zum selektiven Gruppieren virtueller Maschinen aus den mehreren virtuellen Maschinen enthalten, um eine Anzahl von Gruppen virtueller Maschinen bereitzustellen, wobei jede virtuelle Maschine in einer jeweiligen Gruppe virtueller Maschinen auf einen identischen Speicherseiteninhaltsabschnitt zugreift. Das System kann zusätzlich, für jede Gruppe virtueller Maschinen, ein Mittel zum dynamischen Prognestizieren einer Dauer zum Migrieren der jeweiligen Gruppe virtueller Maschinen mindestens teilweise auf der Basis von Folgendem enthalten: einer einzelnen Migration des identischen Speicherseiteninhaltsabschnitts, auf den durch die virtuellen Maschinen in der jeweiligen Gruppe virtueller Maschinen zugegriffen wird; einer verfügbaren Bandbreite zum Migrieren der jeweiligen Gruppe virtueller Maschinen; und des Wertes, der die Speicherseitenmanipulationsrate angibt, die logisch mit jeder der virtuellen Maschinen verknüpft ist, die in der jeweiligen Gruppe virtueller Maschinen enthalten sind.
  • Es wird ein weiteres System zum Migrieren virtueller Maschinen während des aktiven Betriebes bereitgestellt. Das System kann ein Mittel zum Bestimmen einer Seitenmanipulationsrate für jede von mehreren virtuellen Maschinen, die auf einem ersten Host-System implementiert sind, enthalten. Das System kann des Weiteren ein Mittel zum selektiven Gruppieren mindestens einiger der mehreren virtuellen Maschinen enthalten, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, wobei jede der Gruppen virtueller Maschinen virtuelle Maschinen enthält, die zuvor auf mindestens einen identischen Speicherseiteninhaltsabschnitt zugegriffen haben. Das System kann zusätzlich ein Mittel zum Bestimmen einer prognostizierten Migrationszeit für jede der Anzahl von Gruppen virtueller Maschinen mindestens teilweise auf der Basis des mindestens einen identischen Speicherseiteninhaltsabschnitts, der Seitenmanipulationsrate für jede der virtuellen Maschinen, die in der jeweiligen Gruppe enthalten sind, und der verfügbaren Netzwerkbandbreite enthalten.
  • Im Sinne des vorliegenden Textes sollen die Begriffe „oben“ und „unten“ einen relativen und keinen absoluten Verweis auf einen Ort angeben. Wenn also ein Objekt, das so beschrieben wird, dass es einen „oberen Abschnitt“ und einen „unteren Abschnitt“ aufweist, umgedreht wird, so kann der „untere Abschnitt“ zur Oberseite des Objekts werden und der „obere Abschnitt“ kann zur Unterseite des Objekts werden. Solcher Konfigurationen gelten als im Schutzumfang dieser Offenbarung enthalten.
  • Im Sinne des vorliegenden Textes sollen die Begriffe „erster“, „zweiter“ und andere ähnliche Ordnungszahlen eine Anzahl ähnlicher oder identischer Objekte unterscheiden und keine bestimmte oder absolute Reihenfolge der Objekte bezeichnen. Dadurch können ein „erstes Objekt“ und ein „zweites Objekt“ in jeder beliebigen Reihenfolge erscheinen, einschließlich einer Reihenfolge, bei der das zweite Objekt in Raum oder Zeit vor dem ersten Objekt erscheint. Solcher Konfigurationen gelten als im Schutzumfang dieser Offenbarung enthalten.
  • 1 ist ein Schaubild eines Systems 100 zum Migrieren virtueller Maschinen während des aktiven Betriebes, in dem eine Steuereinheit 102 zum Migrieren virtueller Maschinen eine Anzahl virtueller Maschinen 120A-120n (zusammen „virtuelle Maschinen 120“) von einem ersten physischen Host 110 zu einem zweiten physischen Host 150, der kommunikativ über ein Netzwerk 160 gekoppelt ist, migriert 140, gemäß mindestens einer Ausführungsform der vorliegenden Offenbarung. Jede beliebige Anzahl virtueller Maschinen 120 können auf dem ersten physischen Host-System 110 implementiert werden. Zum Beispiel das erste physische Host-System 110 kann 10 oder mehr virtuelle Maschinen 120; 50 oder mehr virtuelle Maschinen 120; 100 oder mehr virtuelle Maschinen 120; 500 oder mehr virtuelle Maschinen 120; oder 1000 oder mehr virtuelle Maschinen 120 hosten. Jede der virtuellen Maschinen 120 können die gleichen oder unterschiedliche Betriebssysteme und/oder Anwendungen implementieren.
  • Das erste physische Host-System 110 kann eine oder mehrere Speichervorrichtungen enthalten, wie zum Beispiel einen Speicher 122. Einige oder alle der virtuellen Maschinen 120 können auf Speicherseiten 124A-124n, die in dem Speicher 122 gespeichert oder auf sonstige Weise verwahrt werden, abgebildet und/oder logisch mit diesen Speicherseiten (zusammen „Speicherseiten 124“) verknüpft werden. Jede der Speicherseiten 124 enthält Daten und/oder Informationen, die durch die virtuellen Maschinen 120 generiert und/oder verwendet werden, die auf die jeweilige Speicherseite 124 abgebildet werden. In Ausführungsformen kann eine einzelne virtuelle Maschine 120 auf jede beliebige Anzahl von Speicherseiten 124 abgebildet werden. Jede virtuelle Maschine 120 kann intermittierend, periodisch oder aperiodisch Daten und/oder Informationen auf den Speicherseiten 124, auf die die virtuelle Maschine 120 abgebildet wird, hinzufügen, ändern oder löschen. Die Rate, mit der eine bestimmte virtuelle Maschine 120 Informationen und/oder Daten, die auf einer Speicherseite 124 enthalten sind, hinzufügen, ändern oder löschen kann, kann als die „Seitenmanipulationsrate“ oder einfach die „Manipulationsrate“ der jeweiligen virtuellen Maschine 120 bezeichnet werden. Die virtuellen Maschinen 120 können ähnliche oder unterschiedliche Manipulationsraten haben.
  • In einigen Implementierungen kann eine Anzahl virtueller Maschinen 120 auf eine einzelne Speicherseite 124 abgebildet werden. In solchen Implementierungen kann die einzelne Speicherseite 124 als zwischen den oder durch die jeweiligen virtuellen Maschinen 120 „gemeinsam genutzt“ angesehen werden. In einigen Implementierungen können Abschnitte von Speicherseiten 124, die auf unterschiedliche virtuelle Maschinen 120 abgebildet, aber nicht gemeinsam durch sie genutzt werden, ähnliche oder identische Daten und/oder Informationen enthalten. In einigen Implementierungen können gesamte Speicherseiten 124, die auf unterschiedliche virtuelle Maschinen 120 abgebildet, aber nicht gemeinsam durch sie genutzt werden, ähnliche oder identische Informationen und/oder Daten enthalten. Dadurch können in einigen Implementierungen die Informationen und/oder Daten, die auf unterschiedlichen Speicherseiten 124 enthalten sind, ähnlich oder identisch sein, und folglich kann eine signifikante Menge redundanter Informationen und/oder Daten in dem Speicher 122 des ersten physischen Host-Systems 110 vorhanden sein. Die im vorliegenden Text beschriebenen Systeme und Verfahren sind vorteilhaft in der Lage, Speicherseiten 124 zu identifizieren, die auf mehrere virtuelle Maschinen 120 abgebildet und gemeinsam zwischen diesen genutzt werden, und Speicherseiten 124 zu identifizieren, die ähnliche oder identische Informationen und/oder Daten enthalten und auf unterschiedliche virtuelle Maschinen 120 abgebildet werden.
  • In Ausführungsformen kann ein Speicherkopiermanager 112 ganz oder teilweise in dem ersten physischen Host-System 110 angeordnet sein, wie in 1 gezeigt. In anderen Ausführungsformen kann der Speicherkopiermanager 112 ganz oder teilweise in der Steuereinheit 102 zum Migrieren virtueller Maschinen angeordnet sein. Ungeachtet des Ortes des Speicherkopiermanagers 112 ist der Speicherkopiermanager 112 kommunikationsfähig mit der Steuereinheit für virtuelle Maschinen 102 gekoppelt. Der Speicherkopiermanager 112 kann einige oder alle der Speicherseiten 124 abtasten oder auf sonstige Weise analysieren, um doppelte Speicherseiten 124 (d. h. unterschiedliche Speicherseiten 124, die die gleichen Informationen und/oder Daten enthalten), die auf unterschiedliche virtuelle Maschinen 120 abgebildet sind, zu identifizieren. Der Speicherkopiermanager 112 kann einige oder alle der Speicherseiten 124 abtasten oder auf sonstige Weise analysieren, um teilweise doppelte Speicherseiten 124 (d. h. unterschiedliche Speicherseiten 124, die mindestens einen Abschnitt der gleichen Informationen und/oder Daten enthalten), die auf unterschiedliche virtuelle Maschinen 120 abgebildet sind, zu identifizieren. In einigen Implementierungen kann der Speicherkopiermanager 112 mindestens einen Abschnitt der Speicherseiten 124, die auf eine Anzahl virtueller Maschinen 120 abgebildet sind, analysieren, um jene Speicherseiten 124 zu identifizieren, die ganz oder teilweise doppelte Informationen und/oder Daten enthalten.
  • In einigen Implementierungen kann der Speicherkopiermanager 112 Speicherseiten 124 auf einer zeitlichen Basis analysieren. Zum Beispiel kann der Speicherkopiermanager 112 Speicherseiten 124 auf einer regelmäßigen, einer unregelmäßigen oder einer periodischen Basis analysieren. In einigen Implementierungen kann der Speicherkopiermanager 112 Speicherseiten 124 ereignisabhängig analysieren. Zum Beispiel kann der Speicherkopiermanager 112 Speicherseiten 124 bei Empfang einer oder mehrerer Nachrichten oder Indikatoren einer bevorstehenden Migration einiger oder aller der virtuellen Maschinen 120 von dem ersten physischen Host 110 zu dem zweiten physischen Host 150 analysieren. In einigen Ausführungsformen können die Steuereinheit 102 zum Migrieren virtueller Maschinen die Nachricht oder den Indikator einer bevorstehenden Migration einiger oder aller virtuellen Maschinen 120 von dem ersten physischen Host 110 zu dem zweiten physischen Host 150 an den Speicherkopiermanager 112 übermitteln.
  • Der Speicherkopiermanager 112 kann jede beliebige derzeitige oder in der Zukunft entwickelte Analysetechnik verwenden, um Speicherseiten 124 zu identifizieren, die mindestens teilweise doppelte Informationen und/oder Daten enthalten. Zum Beispiel kann der Speicherkopiermanager 112 die Fingerabdrücke für einige oder alle der Speicherseiten 124 auf dem ersten physischen Host 110 generieren und vergleichen. Der Speicherkopiermanager kann eine solche Fingerabdruckprüfung unter Verwendung jeder beliebigen derzeitigen oder in der Zukunft entwickelten Fingerabdruckprüfungstechnik vornehmen, wie zum Beispiel des Rabin-Algorithmus, der jede Speicherseite 124 auf eine relativ kurze Datenkette reduziert, die für den auf der Speicherseite 124 enthaltenen Inhalt eindeutig ist. In Ausführungsformen kann der Speicherkopiermanager 112 die Fingerabdrücke für jede Speicherseite 124 vergleichen, um potenzielle Speicherseitenübereinstimmungen zu identifizieren. Um zu bestätigen, dass der Inhalt der potenziell übereinstimmenden Speicherseiten 124 identisch ist, kann der Speicherkopiermanager 112 die potenziell übereinstimmenden Speicherseiten 124 Byte-weise vergleichen, um zu bestätigen, dass die potenziell übereinstimmenden Speicherseiten 124 in der Tat identisch sind. In Ausführungsformen kann der Speicherkopiermanager 112 eine oder mehrere Hash-Funktionen verwenden, um identische Abschnitte von zwei oder mehr Speicherseiten 124 zu identifizieren.
  • Die Steuereinheit 102 zum Migrieren virtueller Maschinen kann eine eigenständige Steuereinheit sein oder kann als einen Abschnitt einer größeren Steuerungsvorrichtung implementiert werden. In Ausführungsformen kann die Steuereinheit 102 zum Migrieren virtueller Maschinen eine oder mehrere kommunikationsfähig gekoppelte Speichervorrichtungen enthalten. In einigen Implementierungen kann die Steuereinheit 102 zum Migrieren virtueller Maschinen einen oder mehrere Controller-Schaltkreise enthalten, die in der Lage sind, einen oder mehrere maschinenausführbare Instruktionssätze auszuführen. Der eine oder die mehreren maschinenausführbaren Instruktionssätze können ganz oder teilweise in einer oder mehreren kommunikationsfähig gekoppelten Speichervorrichtungen gespeichert oder auf sonstige Weise verwahrt werden. In einigen Implementierungen kann die Steuereinheit 102 zum Migrieren virtueller Maschinen ganz oder teilweise durch das erste physische Host-System 110 ausgeführt werden. In einigen Implementierungen kann die Steuereinheit 102 zum Migrieren virtueller Maschinen ganz oder teilweise durch das zweite physische Host-System 150 ausgeführt werden. In einigen Implementierungen kann die Steuereinheit 102 zum Migrieren virtueller Maschinen durch eine oder mehrere Vorrichtungen außerhalb des ersten physischen Host-Systems 110 und des zweiten physischen Host-Systems 150 ausgeführt werden.
  • Die Steuereinheit 102 zum Migrieren virtueller Maschinen steuert die Migration 140 der virtuellen Maschinen 120 von dem ersten physischen Host-System 110 zu dem zweiten physischen Host-System 150. In mindestens einigen Implementierungen kann das erste physische Host-System 110 mit dem zweiten physischen Host-System 150 festverdrahtet (zum Beispiel auf einem anderen Blade-Server in einem gemeinsamen Rack angeordnet) sein 160. In solchen Implementierungen kann die Migration 140 der virtuellen Maschinen 120 ganz oder teilweise über die Festverdrahtung 160 stattfinden. In einigen Implementierungen kann das erste physische Host-System 110 kommunikationsfähig mit dem zweiten physischen Host-System 150 über ein oder mehrere Netzwerke 162 gekoppelt sein. In solchen Implementierungen kann die Migration 140 der virtuellen Maschinen 120 über die Netzwerkverbindung 162 stattfinden.
  • Das erste physische Host-System 110 kann einen oder mehrere Netzwerkbandbreitenzuweiser 114 enthalten. Der Netzwerkbandbreitenzuweiser 114 kann verfügbare Netzwerkbandbreite teilen, dedizieren oder auf sonstige Weise der Migration virtueller Maschinen 140 zuweisen. Eine solche Bandbreitenzuweisung kann ganz oder teilweise auf Bandbreitenanforderungen anderer Prozesse basieren, die momentan auf dem ersten physischen Host-System 110 ausgeführt werden. In einigen Ausführungsformen können der Netzwerkbandbreitenzuweiser 114 die verfügbare Bandbreite für die Migration virtueller Maschinen 140 an die Steuereinheit 102 zum Migrieren virtueller Maschinen übermitteln.
  • 2A ist ein Schaubild eines veranschaulichenden Systems 200, in dem mehrere virtuelle Maschinen 120A-120D, die auf einem ersten physischen Host-System 110 ablaufen, auf eine gemeinsame Speicherseite 124 abgebildet werden (202A-202D), gemäß mindestens einer Ausführungsform der vorliegenden Offenbarung. In einigen Implementierungen können mehrere virtuelle Maschinen 120 auf eine einzelne, gemeinsam genutzte, Speicherseite 124* abgebildet werden. Die gemeinsam genutzte Speicherseite 124* kann in dem Speicher 122 des ersten physischen Host-Systems 110 gespeichert oder auf sonstige Weise verwahrt werden.
  • In Ausführungsformen kann der Speicherkopiermanager 112 die mehreren virtuellen Maschinen 120 als auf eine gemeinsame oder gemeinsam genutzte Speicherseite 124* abgebildet 202 identifizieren. In Ausführungsformen kann die Steuereinheit 102 zum Migrieren virtueller Maschinen die mehreren virtuellen Maschinen 120 als auf eine gemeinsame oder gemeinsam genutzte Speicherseite 124* abgebildet 202 identifizieren. In solchen Ausführungsformen können die Steuereinheit 102 zum Migrieren virtueller Maschinen die mehreren virtuellen Maschinen 120 selektiv zur Migration 140 zu dem zweiten physischen Host-System 150 mindestens teilweise auf der Basis der gemeinsamen oder gemeinsam genutzten Speicherseite 124* gruppieren 210. Durch selektives Gruppieren der mehreren virtuellen Maschinen 120 zur Migration ist die Steuereinheit 102 zum Migrieren virtueller Maschinen in der Lage, die Migration unter Verwendung lediglich einer einzigen Instanz der gemeinsam genutzten Speicherseite 124* zu vollenden. Im Gegensatz dazu würde, wenn die Steuereinheit 102 zum Migrieren virtueller Maschinen jede der mehreren virtuellen Maschinen 120 separat migrieren würde, die gemeinsam genutzte Speicherseite 124* einmal für jede der virtuellen Maschinen 120, die in den mehreren virtuellen Maschinen 120 enthalten sind, migriert werden. Somit werden durch Gruppieren der mehreren virtuellen Maschinen 120, die die gemeinsame Speicherseite 124* gemeinsam nutzen, Bandbreiten- und Migrationszeitanforderungen vorteilhaft reduziert.
  • 2B ist ein Schaubild eines veranschaulichenden Systems 200, in dem mehrere virtuelle Maschinen 120A-120D, die auf einem ersten physischen Host-System 110 ablaufen, auf unterschiedliche Speicherseiten 124A-124D abgebildet werden (202A-202D), wobei jedoch mindestens ein Abschnitt von jeder der Speicherseiten 124 gemeinsame Informationen oder Daten 220 enthält, gemäß mindestens einer Ausführungsform der vorliegenden Offenbarung. In einigen Implementierungen können mehrere virtuelle Maschinen 120 auf unterschiedliche Speicherseiten 124 abgebildet werden, wobei jedoch jede der unterschiedlichen Speicherseiten 124 identische Informationen oder Daten 220 enthalten kann. In einem solchen Fall können die Speicherseiten 124 in dem Speicher 122 des ersten physischen Host-Systems 110 gespeichert oder auf sonstige Weise verwahrt werden.
  • In Ausführungsformen kann der Speicherkopiermanager 112 die mehreren virtuellen Maschinen 120 als auf unterschiedliche Speicherseiten 124 abgebildet 202 identifizieren, von denen jede mindestens einen Abschnitt von gemeinsamen Informationen oder Daten 220 enthält. In Ausführungsformen kann einige oder alle der unterschiedlichen Speicherseiten 124 identische Informationen oder Daten enthalten. In Ausführungsformen kann der Speicherkopiermanager 112 einen Fingerabdruck für jede der unterschiedlichen Speicherseiten 124 generieren. Der Speicherkopiermanager 112 kann die Fingerabdrücke für jede der unterschiedlichen Speicherseiten 124 vergleichen, um potenziell übereinstimmende Speicherseiten 124 zu bestimmen, die identische Informationen oder Daten enthalten können. In Ausführungsformen kann der Speicherkopiermanager 112 potenziell übereinstimmende Speicherseiten 124 Byte-weise vergleichen, um zu bestimmen, ob die potenziell übereinstimmenden Speicherseiten 124 tatsächlich identisch sind.
  • In Ausführungsformen kann einige oder alle der unterschiedlichen Speicherseiten 124 gemeinsame oder identische Informationen oder Datensektionen, -passagen oder - abschnitte 220 enthalten. In Ausführungsformen kann der Speicherkopiermanager 112 die gemeinsamen Abschnitte 220 von jeder der unterschiedlichen Speicherseiten 124 unter Verwendung einer oder mehrerer Hash-Funktionen identifizieren.
  • In solchen Ausführungsformen können die Steuereinheit 102 zum Migrieren virtueller Maschinen die mehreren virtuellen Maschinen 120 zur Migration 140 zu dem zweiten physischen Host-System 150 mindestens teilweise auf der Basis der gemeinsamen oder gemeinsam genutzten Informationen oder Daten, die auf den unterschiedlichen Speicherseiten 124 enthalten sind, selektiv gruppieren 210. Durch selektives Gruppieren der mehreren virtuellen Maschinen 120 zur Migration ist die Steuereinheit 102 zum Migrieren virtueller Maschinen in der Lage, die Migration der gruppierten virtuellen Maschinen zu vollenden, indem die gemeinsamen Informationen oder Daten lediglich ein einziges Mal anstatt einmal für jede der virtuellen Maschinen 120, die in der Gruppe 210 enthalten sind, migriert werden. Somit werden durch Gruppieren der mehreren virtuellen Maschinen 120, die auf Speicherseiten 124 abgebildet werden, die gemeinsame oder identische Informationen oder Datenabschnitte 220 enthalten, Bandbreiten- und Migrationszeitanforderungen vorteilhaft reduziert.
  • 3 ist ein Diagramm 300, das Daten enthält, die den Grad an Speicherseitengemeinsamkeit 302 zwischen jedem Paar 210 virtueller Maschinen anzeigen, gemäß mindestens einer Ausführungsform der vorliegenden Offenbarung. In einigen Ausführungsformen bestimmt die Steuereinheit 102 zum Migrieren virtueller Maschinen den Grad, bis zu dem einzelne Speicherseiten 124 auf unterschiedliche virtuelle Maschinen 120 abgebildet (d. h. gemeinsam durch die genutzt) werden, und/oder den Grad, bis zu dem virtuelle Maschinen 120 auf unterschiedliche Speicherseiten 124 abgebildet werden, die identische oder gemeinsame Informationen oder Daten enthalten. In Ausführungsformen kann die Steuereinheit 102 zum Migrieren virtueller Maschinen eine Ausgabe generieren, wie zum Beispiel ein Diagramm 300 oder ein sonstiges Kurvendiagramm, das Daten enthält, die den Grad an Gemeinsamkeit zwischen jedem Paar virtueller Maschinen 120 auf der Basis der gemeinsam genutzten Speicherseiten 124 und Speicherseiten 124, die mindestens einen Abschnitt von identischen Informationen oder Daten aufweisen, die auf die jeweiligen virtuellen Maschinen 120 abgebildet werden, anzeigen. Das Diagramm 300 wird somit mit Werten 302 ausgefüllt, die den Grad anzeigen, bis zu dem ein bestimmtes Paar 210 virtueller Maschinen Speicherplatz innerhalb des Speichers 122 des ersten physischen Host-Systems 110 gemeinsam nutzt.
  • 4 ist ein allgemein gehaltenes Flussdiagramm eines veranschaulichenden Verfahrens zum Migrieren virtueller Maschinen während des aktiven Betriebes 400 gemäß mindestens einer Ausführungsform der vorliegenden Offenbarung. In dem Verfahren 400 reduziert die Steuereinheit 102 zum Migrieren virtueller Maschinen die Migrationszeit und Netzwerkbandbreite durch selektives Identifizieren und Gruppieren virtueller Maschinen, die einen hohen Grad an Speicherseitengemeinsamkeit aufweisen. Ein solches selektives Identifizieren und Gruppieren virtueller Maschinen reduziert die Bandbreite und Zeit, die zum Vollenden der Migration benötigt wird, indem die Übertragung redundanter Speicherseiten und/oder die Übertragung redundanter Speicherseiteninhalte zwischen dem physischen Quellen-Host und dem physischen Ziel-Host minimiert oder beseitigt wird. Durch Verfolgen der Seitenmanipulierungszeit der virtuellen Maschinen, die in jeder Gruppe virtueller Maschinen enthalten sind, ist die Steuereinheit 102 zum Migrieren virtueller Maschinen in der Lage, eine prognostizierte Migrationsdauer auf der Basis der Seitenmanipulationsrate, des Grades an Gemeinsamkeit zwischen Speicherseiten, die durch jede virtuelle Maschine abgebildet werden, und der Netzwerkbandbreite zu bestimmen. Das Verfahren 400 beginnt bei 402.
  • Bei 404 bestimmt die Steuereinheit 102 zum Migrieren virtueller Maschinen eine Seitenmanipulationsrate für jede der virtuellen Maschinen 120, die zur Migration von einem ersten physischen Host-System 110 zu einem zweiten physischen Host-System 150 eingeplant sind. Die Seitenmanipulationsrate ist die Rate, mit der eine virtuelle Maschine 120 Informationen oder Daten auf einer oder mehreren Speicherseiten 124, die auf die jeweilige virtuelle Maschine abgebildet werden, ändert, hinzufügt oder löscht. In Ausführungsformen kann die Seitenmanipulationsrate für eine bestimmte virtuelle Maschine 120 im zeitlichen Verlauf relativ stabil sein. Dadurch kann die Steuereinheit 102 zum Migrieren virtueller Maschinen eine historische Seitenmanipulationsrate für eine bestimmte virtuelle Maschine 120 über einen definierten Zeitraum, wie zum Beispiel stündlich, bestimmen. Diese Daten können dann verwendet werden, um die Manipulationsrate für jede virtuelle Maschine zu prognostizieren und die Netzwerkbandbreite zu bestimmen, die für die Übertragung der Speicherseiten 124, die auf die jeweilige virtuelle Maschine 120 abgebildet werden, benötigt wird.
  • In Ausführungsformen kann, um die Speicherarbeitssatz-Manipulationsrate zu verfolgen, der VM-Speicherlog-Manipulierungsmodus im Prozess der Migration virtueller Maschinen zum Verfolgen der manipulierten Speicherseiten während einer früheren Iteration der Migration virtueller Maschinen 140 verwendet werden. Der Log-Dirty-Modus stellt einen Schreibschutz für die Speicherseiten der virtuellen Maschinen ein und stellt eine Bitmap ein, um den manipulierten Status der Speicherseite zum Ausfallzeitpunkt anzuzeigen (zum Beispiel das Ausklinken der virtuellen Maschine bei der Systemvirtualisierung oder ein Seitenausfall in einer virtuellen Container-Maschine), wenn die virtuelle Maschine auf die Seite schreibt.
  • Bei 406 gruppiert die Steuereinheit 102 zum Migrieren virtueller Maschinen selektiv virtuelle Maschinen 120 zu einer Anzahl von Gruppen 210 virtueller Maschinen. Die Steuereinheit 102 zum Migrieren virtueller Maschinen kann die virtuellen Maschinen 120 mindestens teilweise auf der Basis des Vorhandenseins gemeinsam genutzter Speicherseiten 124 zwischen den einzelnen virtuellen Maschinen 120, die in der Gruppe 210 enthalten sind, gruppieren 210. Die Steuereinheit 102 zum Migrieren virtueller Maschinen kann die virtuellen Maschinen 120 mindestens teilweise auf der Basis jeder der einzelnen virtuellen Maschinen 120 gruppieren 210, die auf eine Anzahl von Speicherseiten 124 abgebildet werden, die mindestens einen Abschnitt des Inhalts, der in den Speicherseite 124 enthalten ist, mit anderen Speicherseiten 124, auf die andere virtuelle Maschinen 120, die in der jeweiligen Gruppe 210 enthalten sind, abgebildet werden, gemeinsam nutzen. Die Steuereinheit 102 zum Migrieren virtueller Maschinen gruppiert 210 virtuelle Maschinen 120 mindestens teilweise auf der Basis des Grades an Gemeinsamkeit des Speicherseiteninhalts, der durch die virtuellen Maschinen 120, die in der jeweiligen Gruppe enthalten sind, gemeinsam genutzt wird. Ein Erhöhen des Grades an Gemeinsamkeit von Speicherseiteninhalt zwischen in einer Gruppe 210 enthaltenen virtuellen Maschinen 120 reduziert die Menge an Daten, die migriert werden, wenn die virtuellen Maschinen 120 während des aktiven Betriebes migriert werden 140, wodurch vorteilhaft die Zeit und die Bandbreite reduziert werden, die zum Vollenden der Migration benötigt werden.
  • Bei 408 bestimmt die Steuereinheit 102 zum Migrieren virtueller Maschinen dynamisch eine prognostizierte Migrationszeit für jede bei 406 erstellte Gruppe virtueller Maschinen. Die prognostizierte Migrationszeit kann durch Faktoren beeinflusst werden wie zum Beispiel:
    1. 1. Die Seitenmanipulationsrate der virtuellen Maschinen 120, die in der Gruppe 210 enthalten sind (höhere Speicherseitenmanipulationsraten erhöhen tendenziell Migrationszeit und Bandbreite);
    2. 2. Der Grad an Gemeinsamkeit von Speicherseiten 124 zwischen den virtuellen Maschinen, die in der Gruppe 210 enthalten sind (eine größere Speicherseitengemeinsamkeit verringert tendenziell Migrationszeit und Bandbreite); und
    3. 3. Die verfügbare Netzwerkbandbreite zum Ausführen der Migration.
  • Auf der Basis der Manipulationsrate kann die Speichermanipulationsrate bei einer gegebenen Netzwerkübertragungsgeschwindigkeit prognostiziert werden. In Ausführungsformen kann die prognostizierte Migrationszeit für eine gegebene Speichermanipulationsrate bestimmt werden, indem zuerst der Betrag an Speicherseiten bestimmt wird, die zwischen einer ersten Zeit und einer zweiten Zeit manipuliert werden: M = t 1 t 2 D ( t ) d t
    Figure DE112015007188T5_0001
    wobei: M = manipulierter Speicher
    D(t) = Speichermanipulationsrate
  • Die erforderliche Zeit zur Übertragung des manipulierten Speichers bei einer gegebenen Netzwerkgeschwindigkeit ist: T = M s
    Figure DE112015007188T5_0002
    • wobei: T = erforderliche Zeit zum Migrieren
    • s = Netzwerkgeschwindigkeit
  • Die nächste Speicherkopier-Iteration hat folgenden manipulierten Speicher: M = 0 T D ( t ) d t
    Figure DE112015007188T5_0003
  • Das Verfahren 400 endet bei 410.
  • 5 ist ein allgemein gehaltenes Flussdiagramm eines veranschaulichenden Verfahrens 500 zum Migrieren von Gruppen 210 virtueller Maschinen zwischen einem ersten physischen Host-System 110 und einem zweiten physischen Host-System 150 auf der Basis einer prognostizierten Migrationszeit der jeweiligen Gruppen virtueller Maschinen gemäß mindestens einer Ausführungsform der vorliegenden Offenbarung. In mindestens einigen Implementierungen kann die Steuereinheit 102 zum Migrieren virtueller Maschinen die Migration von Gruppen virtueller Maschinen mindestens teilweise auf der Basis der prognostizierten oder geschätzten Zeit zum Vollenden der Migration auf der Basis einer Anzahl von Faktoren veranlassen, wie zum Beispiel jener, die im Detail mit Bezug auf 408 in 4 beschrieben sind. Das Verfahren 500 beginnt bei 502.
  • Bei 504 migriert die Steuereinheit 102 zum Migrieren virtueller Maschinen selektiv Gruppen 210 virtueller Maschinen mindestens teilweise auf der Basis der prognostizierten Migrationszeit, die für jede jeweilige Gruppe 210 virtueller Maschinen berechnet wurde. In einigen Implementierungen kann die Steuereinheit 102 zum Migrieren virtueller Maschinen Gruppen 210 virtueller Maschinen in einer aufsteigenden Reihenfolge auf der Basis der prognostizierten Migrationszeiten migrieren (d. h. von der kürzesten Migrationszeit zur längsten Migrationszeit).
  • In Ausführungsformen kann, nachdem die Steuereinheit 102 zum Migrieren virtueller Maschinen die erste Gruppe 210 virtueller Maschinen migriert hat, die Steuereinheit 102 zum Migrieren virtueller Maschinen erneut die verbliebenen virtuellen Maschinen 120 selektiv zu einer Anzahl von Gruppen 210 virtueller Maschinen gruppieren. Die Steuereinheit 102 zum Migrieren virtueller Maschinen kann die verbliebenen virtuellen Maschinen 120 mindestens teilweise auf der Basis des Vorhandenseins gemeinsam genutzter Speicherseiten 124 zwischen den einzelnen virtuellen Maschinen 120, die in der Gruppe 210 enthalten sind, gruppieren 210. Nach dem selektiven Gruppieren der verbliebenen virtuellen Maschinen 120 zu einer Anzahl von Gruppen 210 virtueller Maschinen kann die Steuereinheit 102 zum Migrieren virtueller Maschinen erneut dynamisch eine prognostizierte Migrationszeit für jede Gruppe 210 virtueller Maschinen bestimmen. Nach der dynamischen Bestimmung einer prognostizierten Migrationszeit für jede Gruppe 210 virtueller Maschinen kann die Steuereinheit 102 zum Migrieren virtueller Maschinen erneut eine Gruppe 210 virtueller Maschinen mindestens teilweise auf der Basis der prognostizierten Migrationszeit, die für jede jeweilige Gruppe 210 virtueller Maschinen berechnet wurde, selektiv migrieren. Die Steuereinheit 102 zum Migrieren virtueller Maschinen kann diesen Prozess des Gruppierens, des Prognostizierens einer Migrationszeit und des Migrierens iterativ ausführen, bis alle virtuellen Maschinen 120 von dem ersten physischen Host-System 110 zu dem zweiten physischen Host-System 120 migriert wurden. Das Verfahren 500 endet bei 506.
  • 6 ist ein allgemein gehaltenes Flussdiagramm eines veranschaulichenden Verfahrens 600 zum Migrieren virtueller Maschinen während des aktiven Betriebes gemäß mindestens einer Ausführungsform der vorliegenden Offenbarung. In dem Verfahren 600 verwendet die Steuereinheit 102 zum Migrieren virtueller Maschinen einen iterativen Prozess, in dem virtuelle Maschinen 120 mindestens teilweise auf der Basis gemeinsam genutzter Speicherseiten 124 und/oder des Abbildens auf identischen Inhalt auf unterschiedliche Speicherseiten 124 selektiv in Paare virtueller Maschinen aufgeteilt werden. Die Steuereinheit 102 zum Migrieren virtueller Maschinen bestimmt eine prognostizierte Migrationszeit für jedes der Paare virtueller Maschinen. Die Steuereinheit 102 zum Migrieren virtueller Maschinen bestimmt die prognostizierte Migrationszeit mindestens teilweise auf der Basis der Speicherseitenmanipulationsrate für jede der virtuellen Maschinen 120, die in dem jeweiligen Paar virtueller Maschinen enthalten sind, der Menge gemeinsam genutzter Speicherseiten und eines identischen Inhalts zwischen den virtuellen Maschinen 120, die in dem jeweiligen Paar enthalten sind, und der verfügbaren Netzwerkbandbreite. Die Steuereinheit 102 zum Migrieren virtueller Maschinen kann die Paare virtueller Maschinen auf der Basis der prognostizierten Migrationszeit ordnen und kann die Paare virtueller Maschinen, die die geringste prognostizierte Migrationszeit aufweisen, migrieren. Nach dem Migrieren des Paares virtueller Maschinen, das die geringste prognostizierte Migrationszeit aufweist, kann die Steuereinheit 102 zum Migrieren virtueller Maschinen die verbliebenen virtuellen Maschinen 120 erneut in neue Paare virtueller Maschinen aufteilen und den Migrationsprozess wiederholen. Das Verfahren 600 beginnt bei 602.
  • Bei 604 erfasst die Steuereinheit 102 zum Migrieren virtueller Maschinen die Speicherarbeitssatz-Manipulationsrate von jeder virtuellen Maschine 120 und bestimmt ein Speicherverhaltensmuster für jede jeweilige der virtuellen Maschinen 120. In Ausführungsformen kann die Steuereinheit 102 zum Migrieren virtueller Maschinen die historische Manipulationsrate einer jeden der virtuellen Maschinen verwenden, um die Netzwerkbandbreite und/oder die Migrationszeit zu prognostizieren, die benötigt wird, um Speicherseiten 124, die auf die jeweilige virtuelle Maschine 120 abgebildet wurden, von dem ersten physischen Host-System 110 zu dem zweiten physischen Host-System 150 zu migrieren.
  • Bei 606 initialisiert die Steuereinheit 102 zum Migrieren virtueller Maschinen Datenstrukturen, die dafür verwendet werden, Speicherseitendaten, Daten über Gruppen virtueller Maschinen, Netzwerkbandbreitendaten und ähnliche Daten zu speichern, die während der Batch-Migration virtueller Maschinen während des aktiven Betriebes verwendet werden.
  • Bei 608 gruppiert die Steuereinheit 102 zum Migrieren virtueller Maschinen selektiv virtuelle Maschinen 120 zu einer Anzahl von Paaren virtueller Maschinen, um die Speicherseitengemeinsamkeit zwischen jeder der virtuellen Maschinen 120 zu beurteilen. In Ausführungsformen kann die Steuereinheit 102 zum Migrieren virtueller Maschinen einen oder mehrere Werte generieren, die den Grad an Gemeinsamkeit von durch die virtuellen Maschinen 120 gemeinsam genutztem Speicherseiteninhalt anzeigen. In Ausführungsformen kann die Steuereinheit 102 zum Migrieren virtueller Maschinen eine oder mehrere Datenstrukturen generieren, wie zum Beispiel jene, die in 3 gezeigt sind, um die Speicherseitengemeinsamkeit zwischen verschiedenen virtuellen Maschinen 120 zu beurteilen.
  • Bei 610 gruppiert 210 die Steuereinheit 102 zum Migrieren virtueller Maschinen virtuelle Maschinen 120 zu Paaren virtueller Maschinen mindestens teilweise auf der Basis des Grades an Gemeinsamkeit von durch die virtuellen Maschinen 120 gemeinsam genutztem Speicherseiteninhalt. In Ausführungsformen kann die Steuereinheit 102 zum Migrieren virtueller Maschinen die Paare 210 virtueller Maschinen auf der Basis des bestimmten Grades an Gemeinsamkeit von durch die virtuellen Maschinen 120 gemeinsam genutztem Speicherseiteninhalt ordnen. Ein Erhöhen des Grades an Gemeinsamkeit von Speicherseiteninhalt zwischen virtuellen Maschinen 120, die in einem Paar 210 virtueller Maschinen enthalten sind, kann die Menge an Daten, die migriert werden, verringern, wenn die Paare virtueller Maschinen einer Batch-Migration während des aktiven Betriebes unterzogen werden 140, wodurch vorteilhaft die Zeit und die Bandbreite reduziert werden, die zum Vollenden der Migration benötigt werden.
  • Bei 612 erfasst die Steuereinheit 102 zum Migrieren virtueller Maschinen von dem Netzwerkbandbreitenzuweiser 114 Daten, die die gegebene Speicherbandbreite zwischen dem ersten physischen Host-System 110 und dem zweiten physischen Host-System 150 anzeigen. In Ausführungsformen kann die Steuereinheit 102 zum Migrieren virtueller Maschinen die Paare virtueller Maschinen 120 in der bei 610 bestimmten geordneten Liste iterieren, um ein Paar 210 virtueller Maschinen, die erfolgreich zusammen migriert werden können, auf der Basis der folgenden Kriterien auszuwählen:
    1. 1. Die Seitenmanipulationsrate der virtuellen Maschinen 120, die in dem Paar enthalten sind (höhere Speicherseitenmanipulationsraten erhöhen tendenziell Migrationszeit und Bandbreite);
    2. 2. Die Menge des insgesamt zu transferierenden Speichers. In Ausführungsformen kann die Menge des für ein Paar 210 virtueller Maschinen transferierten Speichers durch den Grad an Gemeinsamkeit von Speicherseiten 124 zwischen den virtuellen Maschinen 120, die in dem Paar 210 enthalten sind, beeinflusst werden (eine größere Speicherseitengemeinsamkeit verringert tendenziell Migrationszeit und Bandbreite); und
    3. 3. Opportunistische Batch-Migration virtueller Maschinen. Falls die Steuereinheit 102 zum Migrieren virtueller Maschinen bestimmt, dass die Arbeitslast der virtuellen Maschinen periodische Schwankungen in der Speichermanipulationsrate aufweist, kann die Steuereinheit 102 zum Migrieren virtueller Maschinen die Migration des Paares 210 virtueller Maschinen einplanen, wenn die Manipulationsrate sich einem Minimumwert nähert oder diesen erreicht.
  • Auf der Basis der Manipulationsrate kann die Steuereinheit 102 zum Migrieren virtueller Maschinen die prognostizierte Migrationszeit für jedes Paar virtueller Maschinen bei einer gegebenen Netzwerkübertragungsgeschwindigkeit Prognestizieren.
  • Bei 614 wählt die Steuereinheit 102 zum Migrieren virtueller Maschinen das Paar virtueller Maschinen aus, das die kürzeste prognostizierte Migrationszeit aufweist.
  • Bei 616 bestimmt die Steuereinheit 102 zum Migrieren virtueller Maschinen, ob Paare 210 virtueller Maschinen erfolgreich migriert werden können, mindestens teilweise auf der Basis der bei 612 ausgeführten Analyse. Falls die Steuereinheit 102 zum Migrieren virtueller Maschinen nicht in der Lage ist, ein Paar 210 virtueller Maschinen auszuwählen, das alle Kriterien erfüllt, so geht das Verfahren bei 618 weiter. Falls die Steuereinheit 102 zum Migrieren virtueller Maschinen in der Lage ist, ein Paar 210 virtueller Maschinen auszuwählen, das alle Kriterien erfüllt, so geht das Verfahren bei 620 weiter.
  • Bei 618 wählt die Steuereinheit 102 zum Migrieren virtueller Maschinen in Reaktion auf des Bestimmen, dass kein Paar 210 virtueller Maschinen erfolgreich migriert werden kann, die virtuelle Maschine 120 aus, die die geringste Menge an Speicherseitengemeinsamkeit zur Migration von der ersten physischen Host-Vorrichtung 110 zu der zweiten physischen Host-Vorrichtung 150 aufweist.
  • Bei 620 migriert die Steuereinheit 102 zum Migrieren virtueller Maschinen das Paar 210 virtueller Maschinen, das die kürzeste prognostizierte Migrationsdauer aufweist.
  • Bei 622 entfernt die Steuereinheit 102 zum Migrieren virtueller Maschinen in Reaktion auf die erfolgreiche Migration des Paares 210 virtueller Maschinen, das die kürzeste Migrationsdauer aufweist, das Paar virtueller Maschinen aus dem bei 608 generierten Datensatz.
  • Bei 624 bestimmt die Steuereinheit 102 zum Migrieren virtueller Maschinen, ob alle der virtuellen Maschinen 120 migriert wurden. Falls nicht alle virtuellen Maschinen 120 migriert wurden, so kehrt das Verfahren 600 zu 608 zurück. Falls alle virtuellen Maschinen 120 migriert wurden, endet das Verfahren 600 bei 626.
  • 7 und die folgende Besprechung geben eine kurze, allgemeine Beschreibung der Komponenten, die ein veranschaulichendes System 700 zur Batch-Migration virtueller Maschinen während des aktiven Betriebes bilden, das eine Steuereinheit 102 zum Migrieren virtueller Maschinen, ein erstes physisches Host-System 110 und ein zweites physisches Host-System 150 enthält, in dem die verschiedenen veranschaulichten Ausführungsformen implementiert werden können. Obgleich nicht erforderlich, wird ein Teil der Ausführungsformen im allgemeinen Kontext maschinenlesbarer oder computerausführbarer Instruktionssätze beschrieben, wie zum Beispiel Programmanwendungsmodule, Objekte oder Makros, die durch die Steuereinheit 102 zum Migrieren virtueller Maschinen ausgeführt werden. Der einschlägig bewanderte Fachmann erkennt, dass die veranschaulichten Ausführungsformen sowie weitere Ausführungsformen auch mit anderen Schaltkreis-basierten Vorrichtungskonfigurationen praktiziert werden können, einschließlich tragbarer elektronischer oder handgehaltener elektronischer Vorrichtungen, beispielsweise Smartphones, tragbare Computer, am Körper tragbare Computer, Mikroprozessorbasierte oder programmierbare Konsumelektronik, Personalcomputer („PCs“), Netzwerk-PCs, Minicomputer, Großrechner und dergleichen. Die Ausführungsformen können in verteilten Rechenumgebungen praktiziert werden, wobei Aufgaben oder Module durch räumlich abgesetzte Verarbeitungsvorrichtungen ausgeführt werden, die über ein Kommunikationsnetz verlinkt sind. In einer verteilten Rechenumgebung können sich Programmmodule sowohl in lokalen als auch in räumlich abgesetzten Speichervorrichtungen befinden.
  • Die Steuereinheit 102 zum Migrieren virtueller Maschinen kann die Form eines oder mehrerer Schaltkreise annehmen, einschließlich elektronischer und/oder Halbleiter-Komponenten, die teilweise oder vollständig in einem PC, einem Server oder einem sonstigen Rechnersystem angeordnet sind, die in der Lage sind, maschinenlesbare Instruktionen auszuführen. Die Steuereinheit 102 zum Migrieren virtueller Maschinen enthält einen oder mehrere Schaltkreise 712 und kann mitunter einen Kommunikationslink 716 enthalten, der verschiedene Systemkomponenten, einschließlich eines Systemspeichers 714, mit dem einen oder den mehreren Schaltkreisen 712 koppelt. Die Steuereinheit 102 zum Migrieren virtueller Maschinen wird im vorliegenden Text mitunter in der Einzahl erwähnt, aber dadurch sollen die Ausführungsformen nicht auf ein einzelnes System beschränkt werden, da in bestimmten Ausführungsformen mehr als eine Steuereinheit 102 zum Migrieren virtueller Maschinen oder andere vernetzte Schaltkreise oder Vorrichtungen involviert sein können.
  • Der Schaltkreis 712 kann jede beliebige Anzahl, jeden beliebigen Typ oder jede beliebige Kombination von Vorrichtungen enthalten. Mitunter kann der Schaltkreis 712 ganz oder teilweise in Form von Halbleiterbauelementen implementiert werden, wie zum Beispiel Dioden, Transistoren, Induktivitäten, Kondensatoren und Widerstände. Eine solche Implementierung kann beispielsweise einen beliebigen derzeitigen oder in der Zukunft entwickelten Ein- oder Mehrkernprozessor oder Mikroprozessor enthalten, wie zum Beispiel: einen oder mehrere Systems-on-Chip (SOCs); zentrale Verarbeitungseinheiten (CPUs); Digitalsignalprozessoren (DSPs); Grafikverarbeitungseinheiten (GPUs); anwendungsspezifische integrierte Schaltkreise (ASICs), feldprogrammierbare Gate-Arrays (FPGAs) und dergleichen. Sofern nicht anders beschrieben, sind der Aufbau und die Funktionsweise der verschiedenen in 7 gezeigten Blöcke von herkömmlichem Design. Infolge dessen brauchen solche Blöcke im vorliegenden Text nicht ausführlicher beschrieben zu werden, da der einschlägig bewanderte Fachmann sie versteht. Der Kommunikationslink 716, der mindestens einige der Komponenten der beispielhaften Steuereinheit 102 zum Migrieren virtueller Maschinen miteinander verbindet, kann beliebige bekannte Busstrukturen oder Architekturen verwenden.
  • Der Systemspeicher 714 kann Nurlesespeicher („ROM“) 718 und Direktzugriffsspeicher („RAM“) 720 enthalten. Ein Abschnitt des ROM 718 kann ein Basic Input/Output System („BIOS“) 722 enthalten. Das BIOS 722 kann die Steuereinheit 102 zum Migrieren virtueller Maschinen mit Grundfunktionen versehen, indem es beispielsweise die Steuereinheit veranlasst, die maschinenlesbaren Instruktionssätze zu laden, die den einen oder die mehreren Schaltkreise 712 veranlassen, die Steuereinheit 102 zum Migrieren virtueller Maschinen bereitzustellen und als solche zu funktionieren. Die Steuereinheit 102 zum Migrieren virtueller Maschinen kann eine oder mehrere kommunikationsfähig gekoppelte, nicht-transitorische Datenspeichervorrichtungen 732 enthalten. Die eine oder die mehreren Datenspeichervorrichtungen 732 können beliebige derzeitige oder in der Zukunft entwickelte nicht-transitorische Speichervorrichtungen enthalten. Zu nichteinschränkenden Beispielen solcher nicht-transitorischen Datenspeichervorrichtungen 732 können eine oder mehrere magnetische Speichervorrichtungen, eine oder mehrere optische Speichervorrichtungen, eine oder mehrere elektromagnetische Festkörper-Speichervorrichtungen, eine oder mehrere elektroresistive Speichervorrichtungen, eine oder mehrere molekulare Speichervorrichtungen, eine oder mehrere Quantenspeichervorrichtungen oder verschiedene Kombinationen davon gehören.
  • Die eine oder die mehreren Speichervorrichtungen 732 können Schnittstellen oder Steuereinheiten (nicht gezeigt) enthalten, die kommunikativ die jeweilige Speichervorrichtung oder das jeweilige System mit dem Kommunikationslink 716 koppeln, wie es dem Fachmann bekannt ist. Die eine oder die mehreren Speichervorrichtungen 732 können maschinenlesbare Instruktionssätze, Datenstrukturen, Programmmodule und andere Daten enthalten, die für die Steuereinheit 102 zum Migrieren virtueller Maschinen von Nutzen sind. In einigen Fällen können eine oder mehrere externe Speichervorrichtungen 728 kommunikationsfähig mit der Steuereinheit 102 zum Migrieren virtueller Maschinen gekoppelt sein, zum Beispiel über ein oder mehrere leitungsgebundene oder drahtlose Netzwerke.
  • Maschinenlesbare Instruktionssätze 738 und andere Instruktionssätze 740 können ganz oder teilweise in dem Systemspeicher 714 gespeichert werden. Solche Instruktionssätze können von einer oder mehreren Speichervorrichtungen 732 und/oder einer oder mehreren externen Speichervorrichtungen 728 transferiert werden und in dem Systemspeicher 714 ganz oder teilweise gespeichert werden, wenn sie durch die Steuereinheit 102 zum Migrieren virtueller Maschinen ausgeführt werden. Die maschinenlesbaren Instruktionssätze 738 können Logik enthalten, die in der Lage ist, die im vorliegenden Text beschriebenen Funktionen und Fähigkeiten für eine Migration virtueller Maschinen während des aktiven Betriebes bereitzustellen.
  • Zum Beispiel können ein oder mehrere maschinenlesbare Instruktionssätze 738 die Steuereinheit 102 zum Migrieren virtueller Maschinen veranlassen, Daten zu erfassen, die für die Speicherarbeitssatz-Manipulationsrate für jede einer Anzahl virtueller Maschinen 120, die auf einem ersten physischen Host-System 110 gehostet werden, repräsentativ sind. Ein oder mehrere maschinenlesbare Instruktionssätze 738 können die Steuereinheit 102 zum Migrieren virtueller Maschinen veranlassen, die erfassten Daten, die für die Speicherarbeitssatz-Manipulationsrate für jede einer Anzahl virtueller Maschinen 120 repräsentativ ist, zu analysieren, um eine Speichermanipulationsrate und/oder ein Speichermanipulationsratenmuster für jede der virtuellen Maschinen 120 zu bestimmen.
  • Ein oder mehrere maschinenlesbare Instruktionssätze 738 können die Steuereinheit 102 zum Migrieren virtueller Maschinen veranlassen, Daten oder Informationen zu generieren, die Speicherseiten 124 angeben, die durch mehrere virtuelle Maschinen 120 gemeinsam genutzt werden. Ein oder mehrere maschinenlesbare Instruktionssätze 738 können die Steuereinheit 102 zum Migrieren virtueller Maschinen veranlassen, mindestens eines von Daten oder Informationen zu generieren, die identische Abschnitte von Speicherseiten 124 angeben, die auf unterschiedliche virtuelle Maschinen 120 abgebildet sind. Ein oder mehrere maschinenlesbare Instruktionssätze 738 können die Steuereinheit 102 zum Migrieren virtueller Maschinen veranlassen, eine oder mehrere logische Strukturen zu generieren, wie zum Beispiel die in 3 gezeigte Tabelle, die eine Gemeinsamkeit von Speicherseiten 124 unter mehreren unterschiedlichen virtuellen Maschinen 120 angeben.
  • Ein oder mehrere maschinenlesbare Instruktionssätze 738 können die Steuereinheit 102 zum Migrieren virtueller Maschinen veranlassen, Daten zu erfassen, die für eine verfügbare Bandbreite für den Transfer mehrerer virtueller Maschinen 120 während des aktiven Betriebes von einem ersten physischen Host-System 110 zu einem zweiten physischen Host-System 150 repräsentativ sind. Ein oder mehrere maschinenlesbare Instruktionssätze 738 können die Steuereinheit 102 zum Migrieren virtueller Maschinen veranlassen, die Gruppen oder Paare 210 virtueller Maschinen zu iterieren, um die Gruppen oder Paare 210 virtueller Maschinen zur Migration auszuwählen.
  • Ein oder mehrere maschinenlesbare Instruktionssätze 738 können die Steuereinheit 102 zum Migrieren virtueller Maschinen veranlassen, Migrationszeiten für Gruppen oder Paare 210 virtueller Maschinen mindestens teilweise auf der Basis der Manipulationsrate für jede virtuelle Maschine 120, der Speicherseiten, die zwischen den virtuellen Maschinen 120 in einer Gruppe oder einem Paar 210 gemeinsam genutzt werden, und der verfügbaren Netzwerkbandbreite zu prognostizieren.
  • Nutzer der Steuereinheit 102 zum Migrieren virtueller Maschinen können der Steuereinheit 102 zum Migrieren virtueller Maschinen unter Verwendung einer oder mehrerer kommunikationsfähig gekoppelter physischer Eingabevorrichtungen 750, wie zum Beispiel einer oder mehrerer Texteingabevorrichtungen 751 (zum Beispiel eine Tastatur), einer oder mehrerer Zeigevorrichtungen 752 (zum Beispiel eine Maus, ein Trackball, ein Berührungsbildschirm) und/oder einer oder mehrerer Audioeingabevorrichtungen 753 Befehle (zum Beispiel Quittierungen, Auswahlen, Bestätigungen und Ähnliches) sowie Informationen (zum Beispiel Subjektidentifizierungsinformationen, Farbparameter) bereitstellen, eingeben oder auf sonstige Weise zuführen. Einige oder alle der physischen Eingabevorrichtungen 750 können physisch und kommunikationsfähig mit der Steuereinheit 102 zum Migrieren virtueller Maschinen gekoppelt sein. Zum Beispiel kann eine beispielhafte Steuereinheit 102 zum Migrieren virtueller Maschinen eine Berührungsbildschirm-Benutzerschnittstelle enthalten, die eine Anzahl physischer Eingabevorrichtungen 750 bereitstellt, wie zum Beispiel einen Berührungsbildschirm 751.
  • Nutzer der Steuereinheit 102 zum Migrieren virtueller Maschinen können eine Ausgabe über eine oder mehrere physische Ausgabevorrichtungen 754 generieren. In mindestens einigen Implementierungen können zu den physischen Ausgabevorrichtungen 754 beispielsweise eine oder mehrere Anzeigevorrichtungen 755, eine oder mehrere taktile Ausgabevorrichtungen 756, eine oder mehrere Audio-Ausgabevorrichtungen 757 oder beliebige Kombination davon gehören. Einige oder alle der physischen Eingabevorrichtungen 750 und einige oder alle der physischen Ausgabevorrichtungen 754 können kommunikationsfähig mit der Steuereinheit 102 zum Migrieren virtueller Maschinen über eine oder mehrere leitungsgebundene oder drahtlose Schnittstellen gekoppelt sein.
  • Der Einfachheit halber sind die Netzwerkschnittstelle 760, der eine oder die mehreren Schaltkreise 712, der Systemspeicher 714, die physischen Eingabevorrichtungen 750 und die physischen Ausgabevorrichtungen 754 so veranschaulicht, dass sie über den Kommunikationslink 716 kommunikativ miteinander gekoppelt sind, wodurch eine Konnektivität zwischen den oben beschriebenen Komponenten hergestellt wird. In alternativen Ausführungsformen können die oben beschriebenen Komponenten in einer anderen Weise als in 7 veranschaulicht kommunikativ gekoppelt sein. Zum Beispiel können eine oder mehrere der oben beschriebenen Komponenten über eine oder mehrere Zwischenkomponenten (nicht gezeigt) direkt mit anderen Komponenten gekoppelt sein oder miteinander gekoppelt sein. In einigen Ausführungsformen ist der Kommunikationslink 716 weggelassen, und die Komponenten sind unter Verwendung geeigneter leitungsgebundener oder drahtloser Verbindungen direkt miteinander gekoppelt.
  • Die erste physische Host-Vorrichtung 110 kann einen oder mehrere Schaltkreise 768A enthalten, die in der Lage sind, einen oder mehrere maschinenlesbare Instruktionssätze auszuführen. Mitunter können einige oder alle der maschinenlesbaren Instruktionssätze in einem Systemspeicher 769A innerhalb der ersten physischen Host-Vorrichtung 110 gespeichert oder auf sonstige Weise verwahrt werden. Der Systemspeicher 769A kann Nurlesespeicher (ROM) 770A, Direktzugriffsspeicher 772A oder Kombinationen davon enthalten. Das BIOS 771A der ersten physischen Host-Vorrichtung kann in mindestens einem Abschnitt des ROM 770A gespeichert oder verwahrt werden oder diesen auf sonstige Weise belegen.
  • Die erste physische Host-Vorrichtung 110 kann ebenfalls eine oder mehrere Speichervorrichtungen 773A enthalten. Mitunter können die eine oder die mehreren Speichervorrichtungen 773A beispielsweise eine Festkörper-Speichervorrichtung, eine Rotationsmedium-Speichervorrichtung, eine elektrostatische Speichervorrichtung, eine elektroresistive Speichervorrichtung oder Kombinationen davon enthalten, die ganz oder teilweise in der ersten physischen Host-Vorrichtung 110 angeordnet sind. Mitunter kann die erste physische Host-Vorrichtung 110 ein Cloud-basiertes Rack-montieres Servercomputersystem enthalten. Mitunter können die eine oder die mehreren Speichervorrichtungen 773A eine oder mehrere Arten von Wechselspeichermedien 774A enthalten, zum Beispiel ein oder mehrere während des aktiven Betriebes austauschbare Festplatten oder ähnliche Speichergeräte.
  • Die erste physische Host-Vorrichtung 110 kann ebenfalls eine oder mehrere Benutzerschnittstellen 775A enthalten. Die eine oder die mehreren Benutzerschnittstellen 775A können eine oder mehrere Benutzereingabevorrichtungen 776A enthalten. Zu beispielhaften Benutzereingabevorrichtungen 776A können ein oder mehrere Zeiger, eine oder mehrere Texteingabevorrichtungen, eine oder mehrere Audioeingabevorrichtungen, eine oder mehrere Berührungsbildschirm-Eingabevorrichtungen oder Kombinationen davon gehören. Die eine oder die mehreren Benutzerschnittstellen 775A können alternativ oder zusätzlich eine oder mehrere Benutzer-Ausgabevorrichtungen 777A enthalten. Zu beispielhaften Benutzer-Ausgabevorrichtungen 777A können eine oder mehrere visuelle Ausgabevorrichtungen, eine oder mehrere taktile Ausgabevorrichtungen, eine oder mehrere Audio-Ausgabevorrichtungen oder Kombinationen davon gehören.
  • Das erste physische Host-System 110 kann eine oder mehrere Netzwerkschnittstellen 778A enthalten. Die eine oder die mehreren Netzwerkschnittstellen 778A können jede beliebige derzeitige oder zukünftige leitungsgebundene Schnittstelle (zum Beispiel Backplane, Ethernet und Ähnliches) oder drahtlose Netzwerkschnittstelle (zum Beispiel WiFi, IEEE 802.11) enthalten. Die eine oder die mehreren Netzwerkschnittstellen 778A können gelegentlich das erste physische Host-System 110 kommunikationsfähig mit der Steuereinheit 102 zum Migrieren virtueller Maschinen koppeln.
  • Der eine oder die mehreren Schaltkreise 768A können einen oder mehrere Ein- oder Mehrkernprozessoren oder Mikroprozessoren enthalten, die dafür ausgelegt sind, einen oder mehrere maschinenlesbare Instruktionssätze auszuführen. Der eine oder die mehreren Schaltkreise 768A können einen oder mehrere Mikroprozessoren, Reduced Instruction Set Computer (RISCs), anwendungsspezifische integrierte Schaltkreise (ASICs), Digitalsignalprozessoren (DSPs), Systems-on-Chip (SoCs) oder Ähnliches enthalten.
  • Der Systemspeicher 769A kann ganz oder teilweise ein Basic Input/Output System (BIOS), eine Bootsequenz, Firmware, eine Hochfahrroutine oder Ähnliches speichern. Der Systemspeicher 769A kann ganz oder teilweise ein Betriebssystem für die Steuereinheit 102 zum Migrieren virtueller Maschinen (zum Beispiel iOS®, Android®, Windows® Phone, Windows® 10 und Ähnliches) speichern, das durch den einen oder die mehreren Schaltkreise 768A beim ersten Einschalten ausgeführt wird.
  • Die zweite physische Host-Vorrichtung 150 kann einen oder mehrere Schaltkreise 768B enthalten, die in der Lage sind, einen oder mehrere maschinenlesbare Instruktionssätze auszuführen. Mitunter können einige oder alle der maschinenlesbaren Instruktionssätze in einem Systemspeicher 769B innerhalb der zweiten physischen Host-Vorrichtung 150 gespeichert oder auf sonstige Weise verwahrt werden. Der Systemspeicher 769B kann Nurlesespeicher (ROM) 770B, Direktzugriffsspeicher 772B oder Kombinationen davon enthalten. Die zweite physische Host-Vorrichtung BIOS 771B kann in mindestens einem Abschnitt des ROM 770B gespeichert oder verwahrt werden oder diesen auf sonstige Weise belegen.
  • Die zweite physische Host-Vorrichtung 150 kann ebenfalls eine oder mehrere Speichervorrichtungen 773B enthalten. Mitunter können die eine oder die mehreren Speichervorrichtungen 773B beispielsweise eine Festkörper-Speichervorrichtung, eine Rotationsmedium-Speichervorrichtung, eine elektrostatische Speichervorrichtung, eine elektroresistive Speichervorrichtung oder Kombinationen davon enthalten, die ganz oder teilweise in der zweiten physischen Host-Vorrichtung 150 angeordnet sind. Mitunter kann die zweite physische Host-Vorrichtung 150 ein Cloud-basiertes Rack-montieres Servercomputersystem enthalten. Mitunter können die eine oder die mehreren Speichervorrichtungen 773B eine oder mehrere Arten von Wechselspeichermedien 774B enthalten, zum Beispiel eine oder mehrere während des aktiven Betriebes austauschbare Festplatten oder ähnliche Speichergeräte.
  • Die zweite physische Host-Vorrichtung 150 kann ebenfalls eine oder mehrere Benutzerschnittstellen 775B enthalten. Die eine oder die mehreren Benutzerschnittstellen 775B können eine oder mehrere Benutzereingabevorrichtungen 776B enthalten. Zu beispielhaften Benutzereingabevorrichtungen 776B können eine oder mehrere Zeiger, eine oder mehrere Texteingabevorrichtungen, eine oder mehrere Audioeingabevorrichtungen, eine oder mehrere Berührungsbildschirm-Eingabevorrichtungen oder Kombinationen davon gehören. Die eine oder die mehreren Benutzerschnittstellen 775B können alternativ oder zusätzlich eine oder mehrere Benutzer-Ausgabevorrichtungen 777B enthalten. Zu beispielhaften Benutzer-Ausgabevorrichtungen 777B können eine oder mehrere visuelle Ausgabevorrichtungen, eine oder mehrere taktile Ausgabevorrichtungen, eine oder mehrere Audio-Ausgabevorrichtungen oder Kombinationen davon gehören.
  • Die zweite physische Host-Vorrichtung 150 kann eine oder mehrere Netzwerkschnittstellen 778B enthalten. Die eine oder die mehreren Netzwerkschnittstellen 778B können jede beliebige derzeitige oder zukünftige leitungsgebundene Schnittstelle (zum Beispiel Backplane, Ethernet und Ähnliches) oder drahtlose Netzwerkschnittstelle (zum Beispiel WiFi, IEEE 802.11) enthalten. Die eine oder die mehreren Netzwerkschnittstellen 778B können gelegentlich die zweite physische Host-Vorrichtung 150 kommunikationsfähig mit der Steuereinheit 102 zum Migrieren virtueller Maschinen koppeln.
  • Der eine oder die mehreren Schaltkreise 768B können einen oder mehrere Ein- oder Mehrkernprozessoren oder Mikroprozessoren enthalten, die dafür ausgelegt sind, einen oder mehrere maschinenlesbare Instruktionssätze auszuführen. Der eine oder die mehreren Schaltkreise 768B können einen oder mehrere Mikroprozessoren, Reduced Instruction Set Computer (RISCs), anwendungsspezifische integrierte Schaltkreise (ASICs), Digitalsignalprozessoren (DSPs), Systems-on-Chip (SoCs) oder Ähnliches enthalten.
  • Der Systemspeicher 769B kann ganz oder teilweise ein Basic Input/Output System (BIOS), eine Bootsequenz, Firmware, eine Hochfahrroutine oder Ähnliches speichern. Der Systemspeicher 769B kann ganz oder teilweise das Betriebssystem für die Steuereinheit 102 zum Migrieren virtueller Maschinen (zum Beispiel iOS®, Android®, Windows® Phone, Windows® 10 und Ähnliches) speichern, das durch den einen oder die mehreren Schaltkreise 768B beim ersten Einschalten ausgeführt wird.
  • Die folgenden Beispiele gelten für weitere Ausführungsformen. Die folgenden Beispiele der vorliegenden Offenbarung können Subjektmaterial umfassen, wie zum Beispiel Vorrichtungen, Systeme und Verfahren, die die Migration mehrerer virtueller Maschinen 120 während des aktiven Betriebes von einem ersten physischen Host-System 110 zu einem zweiten physischen Host-System 150 unterstützen.
  • Gemäß Beispiel 1 wird ein System zum Migrieren mehrerer virtueller Maschinen während des aktiven Betriebes von einem ersten physischen Host zu einem zweiten physischen Host bereitgestellt. Das System kann mindestens eine Netzwerkschnittstelle, die kommunikationsfähig mit dem ersten physischen Host und dem zweiten physischen Host gekoppelt ist, und mindestens einen Schaltkreis, der kommunikationsfähig mit der mindestens einen Netzwerkschnittstelle gekoppelt ist, enthalten. Das System kann des Weiteren mindestens eine Speichervorrichtung enthalten, die kommunikationsfähig mit dem mindestens einen Schaltkreis gekoppelt ist, wobei die mindestens eine Speichervorrichtung maschinenlesbare Instruktionen enthält, die, wenn sie ausgeführt werden, mindestens einen Abschnitt des Schaltkreises veranlassen, eine Steuereinheit für das Migrieren virtueller Maschinen bereitzustellen, wobei die Steuereinheit für das Migrieren virtueller Maschinen zu Folgendem dient: für jede virtuelle Maschine aus mehreren virtuellen Maschinen, die auf dem ersten physischen Host gehostet werden: Bestimmen eines Wertes, der die Speicherseitenmanipulationsrate angibt, die logisch mit der jeweiligen virtuellen Maschine verknüpft ist, selektives Gruppieren mindestens einiger der virtuellen Maschinen aus den mehreren virtuellen Maschinen, um eine Anzahl von Gruppen virtueller Maschinen bereitzustellen, wobei jede virtuelle Maschine in einer jeweiligen Gruppe virtueller Maschinen auf einen identischen Speicherseiteninhaltsabschnitt auf dem ersten physischen Host zugreift, und dynamisches Prognestizieren einer Dauer zum Migrieren der jeweiligen Gruppe virtueller Maschinen mindestens teilweise auf der Basis von Folgendem: einer einzelnen Migration des identischen Speicherseiteninhaltsabschnitts, auf den durch die virtuellen Maschinen in der jeweiligen Gruppe virtueller Maschinen zugegriffen wird; einer verfügbaren Bandbreite zum Migrieren der jeweiligen Gruppe virtueller Maschinen von dem ersten physischen Host zu dem zweiten physischen Host; und des Wertes, der die Speicherseitenmanipulationsrate angibt, die logisch mit jeder der virtuellen Maschinen verknüpft ist, die in der jeweiligen Gruppe virtueller Maschinen enthalten sind.
  • Beispiel 2 kann Elemente von Beispiel 1 enthalten, wobei die maschinenlesbaren Instruktionen die Steuereinheit für das Migrieren virtueller Maschinen des Weiteren zu Folgendem veranlassen können: selektives Migrieren einer jeden der Anzahl von Gruppen virtueller Maschinen von dem ersten physischen Host zu dem zweiten physischen Host, wobei die Migration der Gruppe virtueller Maschinen in einer Reihenfolge mindestens teilweise auf der Basis der prognostizierten Dauer zum Migrieren der jeweiligen Gruppe virtueller Maschinen bei der verfügbaren Bandbreite ausgeführt wird.
  • Beispiel 3 kann Elemente von Beispiel 1 enthalten, wobei die maschinenlesbaren Instruktionen, welche die Steuereinheit für das Migrieren virtueller Maschinen veranlassen, einen Wert zu bestimmen, der die Speicherseitenmanipulationsrate angibt, die logisch mit der jeweiligen virtuellen Maschine verknüpft ist, die Steuereinheit für das Migrieren virtueller Maschinen zu Folgendem veranlassen können: Bestimmen eines Wertes, der die Speicherseitenmanipulationsrate für jede jeweilige virtuelle Maschine über ein definiertes historisches zeitliches Intervall angibt.
  • Beispiel 4 kann Elemente von Beispiel 3 enthalten, wobei die maschinenlesbaren Instruktionen, welche die Steuereinheit für das Migrieren virtueller Maschinen veranlassen, einen Wert zu bestimmen, der die Speicherseitenmanipulationsrate für jede jeweilige virtuelle Maschine über ein definiertes historisches zeitliches Intervall angibt, die Steuereinheit für das Migrieren virtueller Maschinen zu Folgendem veranlassen: Bestimmen eines historischen Wertes, der die Speicherseitenmanipulationsrate für jede jeweilige virtuelle Maschine über ein 60-minütiges Intervall angibt.
  • Beispiel 5 kann Elemente von Beispiel 1 enthalten, wobei die maschinenlesbaren Instruktionen, welche die Steuereinheit für das Migrieren virtueller Maschinen veranlassen, virtuelle Maschinen aus den mehreren virtuellen Maschinen selektiv zu gruppieren, die Steuereinheit für das Migrieren virtueller Maschinen veranlassen können, virtuelle Maschinen aus den mehreren virtuellen Maschinen selektiv zu paaren, um eine Anzahl von Paaren virtueller Maschinen bereitzustellen, wobei jede virtuelle Maschine in einem jeweiligen Paar virtueller Maschinen mindestens auf einen identischen Speicherseiteninhaltsabschnitt zugreift.
  • Beispiel 6 kann Elemente von Beispiel 1 enthalten, wobei die maschinenlesbaren Instruktionen, welche die Steuereinheit für das Migrieren virtueller Maschinen veranlassen, virtuelle Maschinen aus den mehreren virtuellen Maschinen selektiv zu gruppieren, die Steuereinheit für das Migrieren virtueller Maschinen zu Folgendem veranlassen können: selektives Gruppieren virtueller Maschinen dergestalt, dass jede virtuelle Maschine in einer jeweiligen Gruppe virtueller Maschinen mindestens auf eine gemeinsame Speicherseite zugreift.
  • Beispiel 7 kann Elemente von Beispiel 1 enthalten, wobei die maschinenlesbaren Instruktionen, welche die Steuereinheit für das Migrieren virtueller Maschinen veranlassen, virtuelle Maschinen aus den mehreren virtuellen Maschinen selektiv zu gruppieren, die Steuereinheit für das Migrieren virtueller Maschinen zu Folgendem veranlassen können: selektives Gruppieren mindestens einiger der virtuellen Maschinen dergestalt, dass jede virtuelle Maschine in einer jeweiligen Gruppe virtueller Maschinen mindestens auf eine von mehreren Speicherseiten zugreift, wobei jede der mehreren Speicherseiten mindestens teilweise einen identischen Inhalt enthält.
  • Beispiel 8 kann Elemente von Beispiel 7 enthalten, wobei die maschinenlesbaren Instruktionen, welche die Steuereinheit für das Migrieren virtueller Maschinen veranlassen, mindestens einige der virtuellen Maschinen dergestalt selektiv zu gruppieren, dass jede virtuelle Maschine in einer jeweiligen Gruppe virtueller Maschinen mindestens auf eine von mehreren Speicherseiten zugreift, wobei jede der mehreren Speicherseiten mindestens teilweise einen identischen Inhalt enthält, die Steuereinheit für das Migrieren virtueller Maschinen zu Folgendem veranlassen können: Bestimmen eines Hash-Wertes mindestens teilweise auf der Basis des Inhalts, der in mindestens einem Abschnitt von jeder der mehreren Speicherseiten enthalten ist; Detektieren der mindestens zwei Speicherseiten innerhalb der mehreren Speicherseiten, die ähnliche Hash-Werte haben; und Identifizieren des identischen Inhalts, der auf jeder der mindestens zwei Seiten für die detektierten mindestens zwei Speicherseiten innerhalb der mehreren Speicherseiten enthalten ist, die ähnliche Hash-Werte haben.
  • Beispiel 9 kann Elemente von Beispiel 1 enthalten, wobei die maschinenlesbaren Instruktionen, welche die Steuereinheit für das Migrieren virtueller Maschinen veranlassen, mindestens einige der virtuellen Maschinen aus den mehreren virtuellen Maschinen selektiv zu gruppieren, die Steuereinheit für das Migrieren virtueller Maschinen veranlassen können, mindestens einige der virtuellen Maschinen dergestalt selektiv zu gruppieren, dass jede virtuelle Maschine in einer jeweiligen Gruppe virtueller Maschinen mindestens auf eine von mehreren Speicherseiten zugreift, wobei jede der mehreren Speicherseiten mindestens teilweise einen identischen Inhalt enthält. Beispiel 10 kann Elemente von Beispiel 9 enthalten, wobei die maschinenlesbaren Instruktionen, welche die Steuereinheit für das Migrieren virtueller Maschinen veranlassen, mindestens einige der virtuellen Maschinen dergestalt selektiv zu gruppieren, dass jede virtuelle Maschine in einer jeweiligen Gruppe virtueller Maschinen mindestens auf eine von mehreren Speicherseiten zugreift, wobei jede der mehreren Speicherseiten mindestens teilweise einen identischen Inhalt enthält, die Steuereinheit für das Migrieren virtueller Maschinen zu Folgendem veranlassen können: Bestimmen eines Fingerabdruckwertes mindestens teilweise auf der Basis des Inhalts, der in mindestens einem Abschnitt von jeder der mehreren Speicherseiten enthalten ist; Vergleichen von Fingerabdruckwerten, um die mindestens zwei potenziell identischen Speicherseiten in den mehreren Speicherseiten zu identifizieren; Byte-weises Vergleichen jeder der mindestens zwei potenziell identischen Speicherseiten; und Identifizieren der mindestens zwei Speicherseiten, die einen identischen Inhalt innerhalb mehrerer Speicherseiten haben, mindestens teilweise auf der Basis des Byte-weisen Vergleichs.
  • Gemäß Beispiel 11 wird ein System zum Migrieren virtueller Maschinen während des aktiven Betriebes bereitgestellt. Das System kann mindestens einen Controller-Schaltkreis und mindestens eine Speichervorrichtung, die kommunikationsfähig mit dem mindestens einen Controller-Schaltkreis gekoppelt ist, enthalten, wobei die mindestens eine Speichervorrichtung maschinenausführbare Instruktionen enthält, die, wenn sie durch den mindestens einen Controller-Schaltkreis ausgeführt werden, den mindestens einen Controller-Schaltkreis veranlassen, eine Steuereinheit für das Migrieren virtueller Maschinen bereitzustellen. Die Steuereinheit für das Migrieren virtueller Maschinen kann: eine Seitenmanipulationsrate für jede von mehreren virtuellen Maschinen, die sich auf einem ersten Host-System befinden, bestimmen; mindestens einige der mehreren virtuellen Maschinen selektiv gruppieren, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, wobei jede der Gruppen virtueller Maschinen virtuelle Maschinen enthält, die zuvor auf mindestens einen identischen Speicherseiteninhaltsabschnitt zugegriffen haben; und eine prognostizierte Migrationszeit zum Migrieren einer jeden der Anzahl von Gruppen virtueller Maschinen von dem ersten Host-System zu einem zweiten Host-System mindestens teilweise auf der Basis des mindestens einen identischen Speicherseiteninhaltsabschnitts, der Seitenmanipulationsrate für jede der virtuellen Maschinen, die in der jeweiligen Gruppe enthalten sind, und der verfügbaren Netzwerkbandbreite bestimmen.
  • Beispiel 12 kann Elemente von Beispiel 11 enthalten, wobei die maschinenausführbaren Instruktionen die Steuereinheit für das Migrieren virtueller Maschinen des Weiteren veranlassen können, eine Migrationsreihenfolge für jede der Anzahl von Gruppen virtueller Maschinen durch die Steuereinheit für das Migrieren virtueller Maschinen zu bestimmen.
  • Beispiel 13 kann Elemente von Beispiel 12 enthalten, wobei die maschinenausführbaren Instruktionen, welche die Steuereinheit für das Migrieren virtueller Maschinen veranlassen, eine Migrationsreihenfolge für jede der Anzahl von Gruppen virtueller Maschinen zu bestimmen, die Steuereinheit für das Migrieren virtueller Maschinen des Weiteren veranlassen können, eine Migrationsreihenfolge für jede der Anzahl von Gruppen virtueller Maschinen mindestens teilweise auf der Basis der prognostizierten Migrationszeit für jede jeweilige der Anzahl von Gruppen virtueller Maschinen zu bestimmen.
  • Beispiel 14 kann Elemente von Beispiel 12 enthalten, wobei die maschinenausführbaren Instruktionen die Steuereinheit für das Migrieren virtueller Maschinen des Weiteren veranlassen können, jede der Anzahl von Gruppen virtueller Maschinen selektiv von dem ersten Host-System zu dem zweiten Host-System in einer Reihenfolge mindestens teilweise auf der Basis der prognostizierten Dauer zum Migrieren der jeweiligen Gruppe virtueller Maschinen bei der verfügbaren Bandbreite zu migrieren.
  • Beispiel 15 kann Elemente von Beispiel 11 enthalten, wobei die maschinenausführbaren Instruktionen, welche die Steuereinheit für das Migrieren virtueller Maschinen veranlassen, eine Seitenmanipulationsrate für jede der mehreren virtuellen Maschinen zu bestimmen, die Steuereinheit für das Migrieren virtueller Maschinen des Weiteren veranlassen können, eine Seitenmanipulationsrate für jede von virtuellen Maschinen auf der Basis der historischen Seitenmanipulierung durch jede jeweilige der virtuellen Maschinen über ein definiertes Zeitintervall zu bestimmen.
  • Beispiel 16 kann Elemente von Beispiel 11 enthalten, wobei die maschinenausführbaren Instruktionen, welche die Steuereinheit für das Migrieren virtueller Maschinen veranlassen, mindestens einige der mehreren virtuellen Maschinen selektiv zu gruppieren, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, die Steuereinheit für das Migrieren virtueller Maschinen des Weiteren veranlassen können, jede der mehreren virtuellen Maschinen selektiv zu einem aus einer Anzahl von Paaren virtueller Maschinen zu gruppieren, wobei jede virtuelle Maschine in einem jeweiligen Paar virtueller Maschinen mindestens auf einen identischen Speicherseiteninhaltsabschnitt zugreift.
  • Beispiel 17 kann Elemente eines der Beispiele 11 bis 16 enthalten, wobei die maschinenausführbaren Instruktionen, welche die Steuereinheit für das Migrieren virtueller Maschinen veranlassen, mindestens einige der mehreren virtuellen Maschinen selektiv zu gruppieren, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, die Steuereinheit für das Migrieren virtueller Maschinen des Weiteren veranlassen können, mindestens einige der mehreren virtuellen Maschinen selektiv zu gruppieren, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, wobei jede der Gruppen virtueller Maschinen virtuelle Maschinen enthält, die zuvor auf mindestens eine gemeinsame Speicherseite zugegriffen haben.
  • Beispiel 18 kann Elemente von einem der Beispiele 11 bis 16 enthalten, wobei die maschinenausführbaren Instruktionen, welche die Steuereinheit für das Migrieren virtueller Maschinen veranlassen, mindestens einige der mehreren virtuellen Maschinen selektiv zu gruppieren, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, die Steuereinheit für das Migrieren virtueller Maschinen des Weiteren veranlassen können, mindestens einige der mehreren virtuellen Maschinen selektiv zu gruppieren, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, wobei jede der Gruppen virtueller Maschinen virtuelle Maschinen enthält, die zuvor auf mindestens eine von mehreren Speicherseiten zugegriffen haben, wobei jede der mehreren Speicherseiten mindestens teilweise den identischen Speicherseiteninhaltsabschnitt enthält.
  • Beispiel 19 kann Elemente von Beispiel 18 enthalten, wobei die maschinenausführbaren Instruktionen, welche die Steuereinheit für das Migrieren virtueller Maschinen veranlassen, mindestens einige der mehreren virtuellen Maschinen selektiv zu gruppieren, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, die Steuereinheit für das Migrieren virtueller Maschinen des Weiteren zu Folgendem veranlassen können: Bestimmen eines Hash-Wertes mindestens teilweise auf der Basis des Inhalts, der in mindestens einem Abschnitt von jeder der mehreren Speicherseiten enthalten ist; Detektieren der mindestens zwei Speicherseiten innerhalb der mehreren Speicherseiten, die ähnliche Hash-Werte haben; und Identifizieren des identischen Inhalts, der auf jeder der mindestens zwei Seiten für die detektierten mindestens zwei Speicherseiten innerhalb der mehreren Speicherseiten enthalten ist, die ähnliche Hash-Werte haben.
  • Beispiel 20 kann Elemente von einem der Beispiele 11 bis 16 enthalten, wobei die maschinenausführbaren Instruktionen, welche die Steuereinheit für das Migrieren virtueller Maschinen veranlassen, mindestens einige der mehreren virtuellen Maschinen selektiv zu gruppieren, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, die Steuereinheit für das Migrieren virtueller Maschinen des Weiteren veranlassen können, mindestens einige der mehreren virtuellen Maschinen selektiv zu gruppieren, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, wobei jede der Gruppen virtueller Maschinen virtuelle Maschinen enthält, die zuvor auf mindestens eine von mehreren Speicherseiten zugegriffen haben, wobei jede der mehreren Speicherseiten einen identischen Speicherseiteninhalt aufweist.
  • Beispiel 21 kann Elemente von Beispiel 20 enthalten, wobei die maschinenausführbaren Instruktionen, welche die Steuereinheit für das Migrieren virtueller Maschinen veranlassen, mindestens einige der mehreren virtuellen Maschinen selektiv zu gruppieren, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, die Steuereinheit für das Migrieren virtueller Maschinen des Weiteren veranlassen können, einen Hash-Wert mindestens teilweise auf der Basis des Inhalts, der in mindestens einem Abschnitt von jeder der mehreren Speicherseiten enthalten ist, zu bestimmen; die mindestens zwei Speicherseiten innerhalb der mehreren Speicherseiten, die ähnliche Hash-Werte haben, zu detektieren; und den identischen Inhalt, der auf jeder der mindestens zwei Seiten für die detektierten mindestens zwei Speicherseiten innerhalb der mehreren Speicherseiten enthalten ist, die ähnliche Hash-Werte haben, zu identifizieren.
  • Gemäß Beispiel 22 wird ein Verfahren zum Migrieren virtueller Maschinen während des aktiven Betriebes bereitgestellt. Das Verfahren kann, für jede virtuelle Maschine aus mehreren virtuellen Maschinen, enthalten: Bestimmen eines Wertes, der die Speicherseitenmanipulationsrate angibt, die logisch mit der jeweiligen virtuellen Maschine verknüpft ist, und selektives Gruppieren virtueller Maschinen aus den mehreren virtuellen Maschinen, um eine Anzahl von Gruppen virtueller Maschinen bereitzustellen, wobei jede virtuelle Maschine in einer jeweiligen Gruppe virtueller Maschinen auf einen identischen Speicherseiteninhaltsabschnitt zugreift. Das Verfahren kann des Weiteren, für jede Gruppe virtueller Maschinen, enthalten: dynamisches Prognestizieren einer Dauer zum Migrieren der jeweiligen Gruppe virtueller Maschinen mindestens teilweise auf der Basis von Folgendem: einer einzelnen Migration des identischen Speicherseiteninhaltsabschnitts, auf den durch die virtuellen Maschinen in der jeweiligen Gruppe virtueller Maschinen zugegriffen wird; einer verfügbaren Bandbreite zum Migrieren der jeweiligen Gruppe virtueller Maschinen; und des Wertes, der die Speicherseitenmanipulationsrate angibt, die logisch mit jeder der virtuellen Maschinen verknüpft ist, die in der jeweiligen Gruppe virtueller Maschinen enthalten sind.
  • Beispiel 23 kann Elemente von Beispiel 22 enthalten, und das Verfahren kann zusätzlich das selektive Migrieren einer jeden der Anzahl von Gruppen virtueller Maschinen in einer Reihenfolge mindestens teilweise auf der Basis der prognostizierten Dauer zum Migrieren der jeweiligen Gruppe virtueller Maschinen bei der verfügbaren Bandbreite enthalten.
  • Beispiel 24 kann Elemente von Beispiel 22 enthalten, wobei das Bestimmen eines Wertes, der die Speicherseitenmanipulationsrate angibt, die logisch mit der jeweiligen virtuellen Maschine verknüpft ist, das Bestimmen eines Wertes enthalten kann, der die Speicherseitenmanipulationsrate für jede jeweilige virtuelle Maschine über ein definiertes historisches zeitliches Intervall angibt.
  • Beispiel 25 kann Elemente von Beispiel 24 enthalten, wobei das Bestimmen eines Wertes, der die Speicherseitenmanipulationsrate für jede jeweilige virtuelle Maschine über ein definiertes historisches zeitliches Intervall angibt, das Bestimmen eines historischen Wertes enthalten kann, der die Speicherseitenmanipulationsrate für jede jeweilige virtuelle Maschine über ein 60-minütiges Intervall angibt.
  • Beispiel 26 kann Elemente von Beispiel 22 enthalten, wobei das selektive Gruppieren virtueller Maschinen aus den mehreren virtuellen Maschinen, um eine Anzahl von Gruppen virtueller Maschinen bereitzustellen, wobei jede virtuelle Maschine in einer jeweiligen Gruppe virtueller Maschinen auf mindestens einen identischen Speicherseiteninhaltsabschnitt zugreift, das selektive Paaren virtueller Maschinen aus den mehreren virtuellen Maschinen enthalten kann, um eine Anzahl von Paaren virtueller Maschinen bereitzustellen, wobei jede virtuelle Maschine in einem jeweiligen Paar virtueller Maschinen auf mindestens einen identischen Speicherseiteninhaltsabschnitt zuzugreifen kann.
  • Beispiel 27 kann Elemente von Beispiel 22 enthalten, wobei das selektive Gruppieren virtueller Maschinen aus den mehreren virtuellen Maschinen, um eine Anzahl von Gruppen virtueller Maschinen bereitzustellen, wobei jede virtuelle Maschine in einer jeweiligen Gruppe virtueller Maschinen auf mindestens einen identischen Speicherseiteninhaltsabschnitt zugreift, das selektive Gruppieren virtueller Maschinen enthalten kann, dergestalt, dass jede virtuelle Maschine in einer jeweiligen Gruppe virtueller Maschinen mindestens auf eine gemeinsame Speicherseite zugreift.
  • Beispiel 28 kann Elemente von Beispiel 22 enthalten, wobei das selektive Gruppieren virtueller Maschinen aus den mehreren virtuellen Maschinen, um eine Anzahl von Gruppen virtueller Maschinen bereitzustellen, wobei jede virtuelle Maschine in einer jeweiligen Gruppe virtueller Maschinen auf mindestens einen identischen Speicherseiteninhaltsabschnitt zugreift, das selektive Gruppieren virtueller Maschinen enthalten kann, dergestalt, dass jede virtuelle Maschine in einer jeweiligen Gruppe virtueller Maschinen mindestens auf eine von mehreren Speicherseiten zugreift, die einen identischen Speicherseiteninhalt haben.
  • Beispiel 29 kann Elemente von Beispiel 28 enthalten, wobei das selektive Gruppieren virtueller Maschinen dergestalt, dass jede virtuelle Maschine in einer jeweiligen Gruppe virtueller Maschinen mindestens auf eine von mehreren Speicherseiten zugreift, die einen identischen Speicherseiteninhalt haben, enthalten kann: Bestimmen eines Hash-Wertes mindestens teilweise auf der Basis des Inhalts, der in mindestens einem Abschnitt von jeder der mehreren Speicherseiten enthalten ist; Detektieren der mindestens zwei Speicherseiten innerhalb der mehreren Speicherseiten, die ähnliche Hash-Werte haben; und Identifizieren des identischen Inhalts, der auf jeder der mindestens zwei Seiten für die detektierten mindestens zwei Speicherseiten innerhalb der mehreren Speicherseiten enthalten ist, die ähnliche Hash-Werte haben.
  • Beispiel 30 kann Elemente von Beispiel 22 enthalten, wobei das selektive Gruppieren virtueller Maschinen aus den mehreren virtuellen Maschinen, um eine Anzahl von Gruppen virtueller Maschinen bereitzustellen, wobei jede virtuelle Maschine in einer jeweiligen Gruppe virtueller Maschinen auf mindestens einen identischen Speicherseiteninhaltsabschnitt zugreift, das selektive Gruppieren virtueller Maschinen enthalten kann, dergestalt, dass jede virtuelle Maschine in einer jeweiligen Gruppe virtueller Maschinen mindestens auf eine von mehreren Speicherseiten zugreift, wobei jede der mehreren Speicherseiten mindestens teilweise einen identischen Inhalt enthalten kann.
  • Beispiel 31 kann Elemente von Beispiel 30 enthalten, wobei das selektive Gruppieren virtueller Maschinen dergestalt, dass jede virtuelle Maschine in einer jeweiligen Gruppe virtueller Maschinen mindestens auf eine von mehreren Speicherseiten zugreift, wobei jede der mehreren Speicherseiten mindestens teilweise einen identischen Inhalt enthält, enthalten kann: Bestimmen eines Fingerabdruckwertes mindestens teilweise auf der Basis des Inhalts, der in mindestens einem Abschnitt von jeder der mehreren Speicherseiten enthalten ist; Vergleichen von Fingerabdruckwerten, um die mindestens zwei potenziell identischen Speicherseiten in den mehreren Speicherseiten zu identifizieren; Byte-weises Vergleichen jeder der mindestens zwei potenziell identischen Speicherseiten; und Identifizieren der mindestens zwei Speicherseiten, die einen identischen Inhalt innerhalb mehrerer Speicherseiten haben, mindestens teilweise auf der Basis des Byte-weisen Vergleichs.
  • Gemäß Beispiel 32 wird ein Verfahren zum Migrieren virtueller Maschinen während des aktiven Betriebes bereitgestellt. Das Verfahren kann des Bestimmen, durch eine Steuereinheit für das Migrieren virtueller Maschinen, einer Seitenmanipulationsrate für jede von mehreren virtuellen Maschinen enthalten. Das Verfahren kann des Weiteren das selektive Gruppieren, durch die Steuereinheit für das Migrieren virtueller Maschinen, mindestens einiger der mehreren virtuellen Maschinen enthalten, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, wobei jede der Gruppen virtueller Maschinen virtuelle Maschinen enthält, die zuvor auf mindestens einen identischen Speicherseiteninhaltsabschnitt zugegriffen haben. Das Verfahren kann zusätzlich des Bestimmen, durch die Steuereinheit für das Migrieren virtueller Maschinen, einer prognostizierten Migrationszeit für jede der Anzahl von Gruppen virtueller Maschinen mindestens teilweise auf der Basis des mindestens einen identischen Speicherseiteninhaltsabschnitts, der Seitenmanipulationsrate für jede der virtuellen Maschinen, die in der jeweiligen Gruppe enthalten sind, und der verfügbaren Netzwerkbandbreite enthalten.
  • Beispiel 33 kann Elemente von Beispiel 32 enthalten, und das Verfahren kann zusätzlich des Bestimmen einer Migrationsreihenfolge für jede der Anzahl von Gruppen virtueller Maschinen durch die Steuereinheit für das Migrieren virtueller Maschinen enthalten.
  • Beispiel 34 kann Elemente von Beispiel 33 enthalten, wobei des Bestimmen einer Migrationsreihenfolge für jede der Anzahl von Gruppen virtueller Maschinen des Bestimmen, durch die Steuereinheit für das Migrieren virtueller Maschinen, einer Migrationsreihenfolge für jede der Anzahl von Gruppen virtueller Maschinen mindestens teilweise auf der Basis der prognostizierten Migrationszeit für jede jeweilige der Anzahl von Gruppen virtueller Maschinen enthalten kann.
  • Beispiel 35 kann Elemente von Beispiel 33 enthalten, wobei des Bestimmen einer Seitenmanipulationsrate für jede von mehreren virtuellen Maschinen des Bestimmen, durch die Steuereinheit für das Migrieren virtueller Maschinen, einer Seitenmanipulationsrate für jede der virtuellen Maschinen auf der Basis der historischen Seitenmanipulierung durch jede jeweilige der virtuellen Maschinen über ein definiertes Zeitintervall enthalten kann.
  • Beispiel 36 kann Elemente von Beispiel 32 enthalten, wobei das selektive Gruppieren mindestens einiger der mehreren virtuellen Maschinen, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, das selektive Gruppieren, durch die Steuereinheit für das Migrieren virtueller Maschinen, jeder der mehreren virtuellen Maschinen zu einem aus einer Anzahl von Paaren virtueller Maschinen enthalten kann, wobei jede virtuelle Maschine in einem jeweiligen Paar virtueller Maschinen mindestens auf einen identischen Speicherseiteninhaltsabschnitt zugreift.
  • Beispiel 37 kann Elemente von einem der Beispiele 32 bis 36 enthalten, wobei das selektive Gruppieren mindestens einiger der mehreren virtuellen Maschinen, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, das selektive Gruppieren, durch die Steuereinheit für das Migrieren virtueller Maschinen, mindestens einiger der mehreren virtuellen Maschinen enthalten kann, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, wobei jede der Gruppen virtueller Maschinen virtuelle Maschinen enthält, die zuvor auf mindestens eine gemeinsame Speicherseite zugegriffen haben.
  • Beispiel 38 kann Elemente von einem der Beispiele 32 bis 36 enthalten, wobei das selektive Gruppieren mindestens einiger der mehreren virtuellen Maschinen, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, das selektive Gruppieren, durch die Steuereinheit für das Migrieren virtueller Maschinen, mindestens einiger der mehreren virtuellen Maschinen enthalten kann, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, wobei jede der Gruppen virtueller Maschinen virtuelle Maschinen enthält, die zuvor auf mindestens eine von mehreren Speicherseiten zugegriffen haben, wobei jede der mehreren Speicherseiten mindestens teilweise den identischen Speicherseiteninhaltsabschnitt enthält.
  • Beispiel 39 kann Elemente von Beispiel 38 enthalten, wobei das selektive Gruppieren mindestens einiger der mehreren virtuellen Maschinen, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, enthalten kann: des Bestimmen eines Hash-Wertes mindestens teilweise auf der Basis des Inhalts, der in mindestens einem Abschnitt von jeder der mehreren Speicherseiten enthalten ist; Detektieren der mindestens zwei Speicherseiten innerhalb der mehreren Speicherseiten, die ähnliche Hash-Werte haben; und Identifizieren des identischen Inhalts, der auf jeder der mindestens zwei Seiten für die detektierten mindestens zwei Speicherseiten innerhalb der mehreren Speicherseiten enthalten ist, die ähnliche Hash-Werte haben.
  • Beispiel 40 kann Elemente von einem der Beispiele 32 bis 36 enthalten, wobei das selektive Gruppieren mindestens einiger der mehreren virtuellen Maschinen, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, das selektive Gruppieren, durch die Steuereinheit für das Migrieren virtueller Maschinen, mindestens einiger der mehreren virtuellen Maschinen enthalten kann, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, wobei jede der Gruppen virtueller Maschinen virtuelle Maschinen enthält, die zuvor auf mindestens eine von mehreren Speicherseiten zugegriffen haben, wobei jede der mehreren Speicherseiten einen identischen Speicherseiteninhalt aufweist.
  • Beispiel 41 kann Elemente von Beispiel 40 enthalten, wobei das selektive Gruppieren mindestens einiger der mehreren virtuellen Maschinen, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, enthalten kann: Bestimmen eines Hash-Wertes mindestens teilweise auf der Basis des Inhalts, der in mindestens einem Abschnitt von jeder der mehreren Speicherseiten enthalten ist; Detektieren der mindestens zwei Speicherseiten innerhalb der mehreren Speicherseiten, die ähnliche Hash-Werte haben; und Identifizieren des identischen Inhalts, der auf jeder der mindestens zwei Seiten für die detektierten mindestens zwei Speicherseiten innerhalb der mehreren Speicherseiten enthalten ist, die ähnliche Hash-Werte haben.
  • Gemäß Beispiel 42 wird ein System zum Migrieren virtueller Maschinen während des aktiven Betriebes bereitgestellt. Das System kann, für jede virtuelle Maschine aus mehreren virtuellen Maschinen, ein Mittel zum Bestimmen eines Wertes enthalten, der die Speicherseitenmanipulationsrate angibt, die logisch mit der jeweiligen virtuellen Maschine verknüpft ist. Das System kann zusätzlich ein Mittel zum selektiven Gruppieren virtueller Maschinen aus den mehreren virtuellen Maschinen enthalten, um eine Anzahl von Gruppen virtueller Maschinen bereitzustellen, wobei jede virtuelle Maschine in einer jeweiligen Gruppe virtueller Maschinen auf einen identischen Speicherseiteninhaltsabschnitt zugreift. Das System kann zusätzlich, für jede Gruppe virtueller Maschinen, ein Mittel zum dynamischen Prognestizieren einer Dauer zum Migrieren der jeweiligen Gruppe virtueller Maschinen mindestens teilweise auf der Basis von Folgendem enthalten: einer einzelnen Migration des identischen Speicherseiteninhaltsabschnitts, auf den durch die virtuellen Maschinen in der jeweiligen Gruppe virtueller Maschinen zugegriffen wird; einer verfügbaren Bandbreite zum Migrieren der jeweiligen Gruppe virtueller Maschinen; und des Wertes, der die Speicherseitenmanipulationsrate angibt, die logisch mit jeder der virtuellen Maschinen verknüpft ist, die in der jeweiligen Gruppe virtueller Maschinen enthalten sind.
  • Beispiel 43 kann Elemente von Beispiel 42 enthalten, und das System kann zusätzlich ein Mittel zum selektiven Migrieren einer jeden der Anzahl von Gruppen virtueller Maschinen in einer Reihenfolge mindestens teilweise auf der Basis der prognostizierten Dauer zum Migrieren der jeweiligen Gruppe virtueller Maschinen bei der verfügbaren Bandbreite enthalten.
  • Beispiel 44 kann Elemente von Beispiel 42 enthalten, wobei das Mittel zum Bestimmen eines Wertes, der die Speicherseitenmanipulationsrate angibt, die logisch mit der jeweiligen virtuellen Maschine verknüpft ist, ein Mittel zum Bestimmen eines Wertes enthalten kann, der die Speicherseitenmanipulationsrate für jede jeweilige virtuelle Maschine über ein definiertes historisches zeitliches Intervall angibt.
  • Beispiel 45 kann Elemente von Beispiel 44 enthalten, wobei das Mittel zum Bestimmen eines Wertes, der die Speicherseitenmanipulationsrate für jede jeweilige virtuelle Maschine über ein definiertes historisches zeitliches Intervall angibt, ein Mittel zum Bestimmen eines historischen Wertes enthalten kann, der die Speicherseitenmanipulationsrate für jede jeweilige virtuelle Maschine über ein 60-minütiges Intervall angibt.
  • Beispiel 46 kann Elemente von Beispiel 42 enthalten, wobei das Mittel zum selektiven Gruppieren virtueller Maschinen aus den mehreren virtuellen Maschinen ein Mittel zum selektiven Paaren virtueller Maschinen aus den mehreren virtuellen Maschinen enthalten kann, um eine Anzahl von Paaren virtueller Maschinen bereitzustellen, wobei jede virtuelle Maschine in einem jeweiligen Paar virtueller Maschinen mindestens auf einen identischen Speicherseiteninhaltsabschnitt zugreift.
  • Beispiel 47 kann Elemente von Beispiel 42 enthalten, wobei das Mittel zum selektiven Gruppieren virtueller Maschinen aus den mehreren virtuellen Maschinen ein Mittel zum selektiven Gruppieren virtueller Maschinen enthalten kann, dergestalt, dass jede virtuelle Maschine in einer jeweiligen Gruppe virtueller Maschinen mindestens auf eine gemeinsame Speicherseite zugreift.
  • Beispiel 48 kann Elemente von Beispiel 42 enthalten, wobei das Mittel zum selektiven Gruppieren virtueller Maschinen aus den mehreren virtuellen Maschinen ein Mittel zum selektiven Gruppieren virtueller Maschinen enthalten kann, dergestalt, dass jede virtuelle Maschine in einer jeweiligen Gruppe virtueller Maschinen mindestens auf eine von mehreren Speicherseiten zugreift, wobei jede der mehreren Speicherseiten mindestens teilweise einen identischen Inhalt enthält.
  • Beispiel 49 kann Elemente von Beispiel 48 enthalten, wobei das Mittel zum selektiven Gruppieren virtueller Maschinen dergestalt, dass jede virtuelle Maschine in einer jeweiligen Gruppe virtueller Maschinen mindestens auf eine von mehreren Speicherseiten zugreift, wobei jede der mehreren Speicherseiten mindestens teilweise einen identischen Inhalt enthält, enthalten kann: ein Mittel zum Bestimmen eines Hash-Wertes mindestens teilweise auf der Basis des Inhalts, der in mindestens einem Abschnitt von jeder der mehreren Speicherseiten enthalten ist; ein Mittel zum Detektieren der mindestens zwei Speicherseiten innerhalb der mehreren Speicherseiten, die ähnliche Hash-Werte haben; und ein Mittel zum Identifizieren des identischen Inhalts, der auf jeder der mindestens zwei Seiten für die detektierten mindestens zwei Speicherseiten innerhalb der mehreren Speicherseiten enthalten ist, die ähnliche Hash-Werte haben.
  • Beispiel 50 kann Elemente von Beispiel 48 enthalten, wobei das Mittel zum selektiven Gruppieren virtueller Maschinen aus den mehreren virtuellen Maschinen ein Mittel zum selektiven Gruppieren virtueller Maschinen enthalten kann, dergestalt, dass jede virtuelle Maschine in einer jeweiligen Gruppe virtueller Maschinen mindestens auf eine von mehreren Speicherseiten zugreift, die einen identischen Speicherseiteninhalt haben.
  • Beispiel 51 kann Elemente von Beispiel 50 enthalten, wobei das Mittel zum selektiven Gruppieren virtueller Maschinen dergestalt, dass jede virtuelle Maschine in einer jeweiligen Gruppe virtueller Maschinen mindestens auf eine von mehreren Speicherseiten zugreift, die einen identischen Speicherseiteninhalt haben, enthalten kann: ein Mittel zum Bestimmen eines Fingerabdruckwertes mindestens teilweise auf der Basis des Inhalts, der in mindestens einem Abschnitt von jeder der mehreren Speicherseiten enthalten ist; ein Mittel zum Vergleichen von Fingerabdruckwerten, um die mindestens zwei potenziell identischen Speicherseiten in den mehreren Speicherseiten zu identifizieren; ein Mittel zum Byte-weisen Vergleichen jeder der mindestens zwei potenziell identischen Speicherseiten; und ein Mittel zum Identifizieren der mindestens zwei Speicherseiten, die einen identischen Inhalt innerhalb mehrerer Speicherseiten haben, mindestens teilweise auf der Basis des Byte-weisen Vergleichs.
  • Gemäß Beispiel 52 wird ein System zum Migrieren virtueller Maschinen während des aktiven Betriebes bereitgestellt. Das System kann ein Mittel zum Bestimmen einer Seitenmanipulationsrate für jede von mehreren virtuellen Maschinen, die auf einem ersten Host-System implementiert sind, enthalten. Das System kann des Weiteren ein Mittel zum selektiven Gruppieren mindestens einiger der mehreren virtuellen Maschinen enthalten, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, wobei jede der Gruppen virtueller Maschinen virtuelle Maschinen enthält, die zuvor auf mindestens einen identischen Speicherseiteninhaltsabschnitt zugegriffen haben. Das System kann zusätzlich ein Mittel zum Bestimmen einer prognostizierten Migrationszeit für jede der Anzahl von Gruppen virtueller Maschinen mindestens teilweise auf der Basis des mindestens einen identischen Speicherseiteninhaltsabschnitts, der Seitenmanipulationsrate für jede der virtuellen Maschinen, die in der jeweiligen Gruppe enthalten sind, und der verfügbaren Netzwerkbandbreite enthalten.
  • Beispiel 53 kann Elemente von Beispiel 52 enthalten, und das System kann zusätzlich ein Mittel zum Bestimmen einer Migrationsreihenfolge für jede der Anzahl von Gruppen virtueller Maschinen durch die Steuereinheit für das Migrieren virtueller Maschinen enthalten.
  • Beispiel 54 kann Elemente von Beispiel 53 enthalten, wobei das Mittel zum Bestimmen einer Migrationsreihenfolge für jede der Anzahl von Gruppen virtueller Maschinen ein Mittel zum Bestimmen einer Migrationsreihenfolge für jede der Anzahl von Gruppen virtueller Maschinen mindestens teilweise auf der Basis der prognostizierten Migrationszeit für jede jeweilige der Anzahl von Gruppen virtueller Maschinen enthalten kann.
  • Beispiel 55 kann Elemente von Beispiel 53 enthalten, wobei das Mittel zum Bestimmen einer Seitenmanipulationsrate für jede der mehreren virtuellen Maschinen ein Mittel zum Bestimmen einer Seitenmanipulationsrate für jede von virtuellen Maschinen auf der Basis der historischen Seitenmanipulierung durch jede jeweilige der virtuellen Maschinen über ein definiertes Zeitintervall enthalten kann.
  • Beispiel 56 kann Elemente von Beispiel 52 enthalten, wobei das Mittel zum selektiven Gruppieren mindestens einiger der mehreren virtuellen Maschinen, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, ein Mittel zum selektiven Gruppieren jeder der mehreren virtuellen Maschinen zu einem aus einer Anzahl von Paaren virtueller Maschinen enthalten kann, wobei jede virtuelle Maschine in einem jeweiligen Paar virtueller Maschinen mindestens auf einen identischen Speicherseiteninhaltsabschnitt zugreift.
  • Beispiel 57 kann Elemente nach einem der Ansprüche 52 bis 56 enthalten, wobei das Mittel zum selektiven Gruppieren mindestens einiger der mehreren virtuellen Maschinen, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, ein Mittel zum selektiven Gruppieren, durch die Steuereinheit für das Migrieren virtueller Maschinen, mindestens einiger der mehreren virtuellen Maschinen enthalten kann, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, wobei jede der Gruppen virtueller Maschinen virtuelle Maschinen enthält, die zuvor auf mindestens eine gemeinsame Speicherseite zugegriffen haben.
  • Beispiel 58 kann Elemente nach einem der Ansprüche 52 bis 56 enthalten, wobei das Mittel zum selektiven Gruppieren mindestens einiger der mehreren virtuellen Maschinen, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, ein Mittel zum selektiven Gruppieren, durch die Steuereinheit für das Migrieren virtueller Maschinen, mindestens einiger der mehreren virtuellen Maschinen enthalten kann, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, wobei jede der Gruppen virtueller Maschinen virtuelle Maschinen enthält, die zuvor auf mindestens eine von mehreren Speicherseiten zugegriffen haben, wobei jede der mehreren Speicherseiten mindestens teilweise den identischen Speicherseiteninhaltsabschnitt enthält.
  • Beispiel 59 kann Elemente von Beispiel 58 enthalten, wobei das Mittel zum selektiven Gruppieren mindestens einiger der mehreren virtuellen Maschinen, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, enthalten kann: ein Mittel zum Bestimmen eines Hash-Wertes mindestens teilweise auf der Basis des Inhalts, der in mindestens einem Abschnitt von jeder der mehreren Speicherseiten enthalten ist; ein Mittel zum Detektieren der mindestens zwei Speicherseiten innerhalb der mehreren Speicherseiten, die ähnliche Hash-Werte haben; und ein Mittel zum Identifizieren des identischen Inhalts, der auf jeder der mindestens zwei Seiten für die detektierten mindestens zwei Speicherseiten innerhalb der mehreren Speicherseiten enthalten ist, die ähnliche Hash-Werte haben.
  • Beispiel 60 kann Elemente der Beispiele 52 bis 56 enthalten, wobei das Mittel zum selektiven Gruppieren mindestens einiger der mehreren virtuellen Maschinen, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, das selektive Gruppieren, durch die Steuereinheit für das Migrieren virtueller Maschinen, mindestens einiger der mehreren virtuellen Maschinen enthalten kann, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, wobei jede der Gruppen virtueller Maschinen virtuelle Maschinen enthält, die zuvor auf mindestens eine von mehreren Speicherseiten zugegriffen haben, wobei jede der mehreren Speicherseiten einen identischen Speicherseiteninhalt aufweist.
  • Beispiel 61 kann Elemente von Beispiel 60 enthalten, wobei das selektive Gruppieren mindestens einiger der mehreren virtuellen Maschinen, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, enthalten kann: ein Mittel zum Bestimmen eines Hash-Wertes mindestens teilweise auf der Basis des Inhalts, der in mindestens einem Abschnitt von jeder der mehreren Speicherseiten enthalten ist; ein Mittel zum Detektieren der mindestens zwei Speicherseiten innerhalb der mehreren Speicherseiten, die ähnliche Hash-Werte haben; und ein Mittel zum Identifizieren des identischen Inhalts, der auf jeder der mindestens zwei Seiten für die detektierten mindestens zwei Speicherseiten innerhalb der mehreren Speicherseiten enthalten ist, die ähnliche Hash-Werte haben.
  • Gemäß Beispiel 62 wird eine Speichervorrichtung bereitgestellt, die maschinenlesbare Instruktionen enthält, die, wenn sie durch einen Schaltkreis ausgeführt werden, den Schaltkreis veranlassen, eine Steuereinheit für das Migrieren virtueller Maschinen bereitzustellen. Die Steuereinheit für virtuelle Maschinen kann eine Seitenmanipulationsrate für jede von mehreren virtuellen Maschinen bestimmen, mindestens einige der mehreren virtuellen Maschinen selektiv gruppieren, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, wobei jede der Gruppen virtueller Maschinen virtuelle Maschinen enthält, die zuvor auf mindestens einen identischen Speicherseiteninhaltsabschnitt zugegriffen haben, und eine prognostizierte Migrationszeit für jede der Anzahl von Gruppen virtueller Maschinen mindestens teilweise auf der Basis des mindestens einen identischen Speicherseiteninhaltsabschnitts, der Seitenmanipulationsrate für jede der virtuellen Maschinen, die in der jeweiligen Gruppe enthalten sind, und der verfügbaren Netzwerkbandbreite bestimmen.
  • Beispiel 63 kann Elemente von Beispiel 62 enthalten, und kann zusätzlich maschinenlesbare Instruktionen enthalten, die, wenn sie durch die Steuereinheit für das Migrieren virtueller Maschinen ausgeführt werden, die Steuereinheit für das Migrieren virtueller Maschinen veranlassen können, eine Migrationsreihenfolge für jede der Anzahl von Gruppen virtueller Maschinen zu bestimmen.
  • Beispiel 64 kann Elemente von Beispiel 63 enthalten, wobei die maschinenlesbaren Instruktionen, welche die Steuereinheit für das Migrieren virtueller Maschinen veranlassen, eine Migrationsreihenfolge für jede der Anzahl von Gruppen virtueller Maschinen zu bestimmen, die Steuereinheit für das Migrieren virtueller Maschinen des Weiteren veranlassen können, eine Migrationsreihenfolge für jede der Anzahl von Gruppen virtueller Maschinen mindestens teilweise auf der Basis der prognostizierten Migrationszeit für jede jeweilige der Anzahl von Gruppen virtueller Maschinen zu bestimmen.
  • Beispiel 65 kann Elemente von Beispiel 63 enthalten, wobei die maschinenlesbaren Instruktionen, welche die Steuereinheit für das Migrieren virtueller Maschinen veranlassen, eine Seitenmanipulationsrate für jede von mehreren virtuellen Maschinen zu bestimmen, die Steuereinheit für das Migrieren virtueller Maschinen des Weiteren veranlassen können, eine Seitenmanipulationsrate für jede der virtuellen Maschinen auf der Basis der historischen Seitenmanipulierung durch jede jeweilige der virtuellen Maschinen über ein definiertes Zeitintervall zu bestimmen.
  • Beispiel 66 kann Elemente von Beispiel 62 enthalten, wobei die maschinenlesbaren Instruktionen, welche die Steuereinheit für das Migrieren virtueller Maschinen veranlassen, mindestens einige der mehreren virtuellen Maschinen selektiv gruppieren, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, die Steuereinheit für das Migrieren virtueller Maschinen des Weiteren veranlassen können, jede der mehreren virtuellen Maschinen selektiv zu einem aus einer Anzahl von Paaren virtueller Maschinen zu gruppieren, wobei jede virtuelle Maschine in einem jeweiligen Paar virtueller Maschinen mindestens auf einen identischen Speicherseiteninhaltsabschnitt zugreift.
  • Beispiel 67 kann Elemente von einem der Beispiele 62 bis 66 enthalten, wobei die maschinenlesbaren Instruktionen, welche die Steuereinheit für das Migrieren virtueller Maschinen veranlassen, mindestens einige der mehreren virtuellen Maschinen selektiv zu gruppieren, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, die Steuereinheit für das Migrieren virtueller Maschinen des Weiteren veranlassen können, mindestens einige der mehreren virtuellen Maschinen selektiv zu gruppieren, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, wobei jede der Gruppen virtueller Maschinen virtuelle Maschinen enthält, die zuvor auf mindestens eine gemeinsame Speicherseite zugegriffen haben.
  • Beispiel 68 kann Elemente nach einem der Ansprüche 62 bis 68 enthalten, wobei die maschinenlesbaren Instruktionen, welche die Steuereinheit für das Migrieren virtueller Maschinen veranlassen, mindestens einige der mehreren virtuellen Maschinen selektiv zu gruppieren, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, die Steuereinheit für das Migrieren virtueller Maschinen des Weiteren veranlassen können, mindestens einige der mehreren virtuellen Maschinen selektiv zu gruppieren, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, wobei jede der Gruppen virtueller Maschinen virtuelle Maschinen enthält, die zuvor auf mindestens eine von mehreren Speicherseiten zugegriffen haben, wobei jede der mehreren Speicherseiten mindestens teilweise den identischen Speicherseiteninhaltsabschnitt enthält.
  • Beispiel 69 kann Elemente von Beispiel 68 enthalten, wobei die maschinenlesbaren Instruktionen, welche die Steuereinheit für das Migrieren virtueller Maschinen veranlassen, mindestens einige der mehreren virtuellen Maschinen selektiv zu gruppieren, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, die Steuereinheit für das Migrieren virtueller Maschinen des Weiteren veranlassen können, einen Hash-Wert mindestens teilweise auf der Basis des Inhalts, der in mindestens einem Abschnitt von jeder der mehreren Speicherseiten enthalten ist, zu bestimmen, die mindestens zwei Speicherseiten innerhalb der mehreren Speicherseiten, die ähnliche Hash-Werte haben, zu detektieren, und den identischen Inhalt, der auf jeder der mindestens zwei Seiten für die detektierten mindestens zwei Speicherseiten innerhalb der mehreren Speicherseiten enthalten ist, die ähnliche Hash-Werte haben, zu identifizieren.
  • Beispiel 70 kann Elemente nach einem der Ansprüche 62 bis 66 enthalten, wobei die maschinenlesbaren Instruktionen, welche die Steuereinheit für das Migrieren virtueller Maschinen veranlassen, mindestens einige der mehreren virtuellen Maschinen selektiv zu gruppieren, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, die Steuereinheit für das Migrieren virtueller Maschinen des Weiteren veranlassen können, mindestens einige der mehreren virtuellen Maschinen selektiv zu gruppieren, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, wobei jede der Gruppen virtueller Maschinen virtuelle Maschinen enthält, die zuvor auf mindestens eine von mehreren Speicherseiten zugegriffen haben, wobei jede der mehreren Speicherseiten einen identischen Speicherseiteninhalt aufweist.
  • Beispiel 71 kann Elemente von Beispiel 70 enthalten, wobei die maschinenlesbaren Instruktionen, welche die Steuereinheit für das Migrieren virtueller Maschinen veranlassen, mindestens einige der mehreren virtuellen Maschinen selektiv zu gruppieren, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, die Steuereinheit für das Migrieren virtueller Maschinen des Weiteren veranlassen können, einen Hash-Wert mindestens teilweise auf der Basis des Inhalts, der in mindestens einem Abschnitt von jeder der mehreren Speicherseiten enthalten ist, zu bestimmen, die mindestens zwei Speicherseiten innerhalb der mehreren Speicherseiten, die ähnliche Hash-Werte haben, zu detektieren, und den identischen Inhalt, der auf jeder der mindestens zwei Seiten für die detektierten mindestens zwei Speicherseiten innerhalb der mehreren Speicherseiten enthalten ist, die ähnliche Hash-Werte haben, zu identifizieren.
  • Gemäß Beispiel 72 wird ein System für Migrieren mehrerer virtueller Maschinen von einem ersten Host-System zu einem zweiten Host-System bereitgestellt, wobei das System dafür ausgelegt ist, das Verfahren von einem der Beispiele 32 bis 41 auszuführen.
  • Gemäß Beispiel 73 wird ein Chipsatz bereitgestellt, der dafür ausgelegt ist, das Verfahren von einem der Beispiele 32 bis 41 auszuführen.
  • Gemäß Beispiel 74 werden ein maschinenlesbares Medium oder mehrere maschinenlesbare Medien bereitgestellt, die mehrerer Instruktionen umfassen, die, wenn sie auf einer Computervorrichtung ausgeführt werden, die Computervorrichtung veranlassen, das Verfahren nach einem der Beispiele 32 bis 41 auszuführen.
  • Gemäß Beispiel 75 wird eine Vorrichtung bereitgestellt, die für das Migrieren mehrerer virtueller Maschinen von einem ersten Host-System zu einem zweiten Host-System konfiguriert ist, wobei die Vorrichtung dafür ausgelegt ist, das Verfahren von einem der Beispiele 32 bis 41 auszuführen.
  • Die Begriffe und Ausdrücke, die im vorliegenden Text verwendet wurden, werden als Begriffe der Beschreibung und nicht der Einschränkung verwendet, und es besteht bei der Verwendung solcher Begriffe und Ausdrücke keine Absicht, Äquivalente der gezeigten und beschriebenen Merkmale (oder Abschnitte davon) auszuschließen, und wird darauf verwiesen, dass verschiedene Modifizierungen innerhalb des Schutzumfangs der Ansprüche möglich sind. Dementsprechend ist es beabsichtigt, dass die Ansprüche alle derartigen Äquivalente abdecken.

Claims (25)

  1. System zum Migrieren virtueller Maschinen während des aktiven Betriebes, das Folgendes umfasst: mindestens einen Controller-Schaltkreis; mindestens eine Speichervorrichtung, die kommunikationsfähig mit dem mindestens einen Controller-Schaltkreis gekoppelt ist, wobei die mindestens eine Speichervorrichtung maschinenausführbare Instruktionen enthält, die, wenn sie durch den mindestens einen Controller-Schaltkreis ausgeführt werden, den mindestens einen Controller-Schaltkreis veranlassen, eine Steuereinheit für das Migrieren virtueller Maschinen bereitzustellen, wobei die Steuereinheit für das Migrieren virtueller Maschinen zu Folgendem dient: Bestimmen einer Seitenmanipulationsrate für jede von mehreren virtuellen Maschinen, die sich auf einem ersten Host-System befinden; selektives Gruppieren mindestens einiger der mehreren virtuellen Maschinen, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, wobei jede der Gruppen virtueller Maschinen virtuelle Maschinen enthält, die zuvor auf mindestens einen identischen Speicherseiteninhaltsabschnitt zugegriffen haben; und Bestimmen einer prognostizierten Migrationszeit zum Migrieren einer jeden der Anzahl von Gruppen virtueller Maschinen von dem ersten Host-System zu einem zweiten Host-System mindestens teilweise auf der Basis des mindestens einen identischen Speicherseiteninhaltsabschnitts, der Seitenmanipulationsrate für jede der virtuellen Maschinen, die in der jeweiligen Gruppe enthalten sind, und der verfügbaren Netzwerkbandbreite.
  2. System zum Migrieren virtueller Maschinen während des aktiven Betriebes nach Anspruch 1, wobei die maschinenausführbaren Instruktionen die Steuereinheit für das Migrieren virtueller Maschinen des Weiteren zu Folgendem veranlassen: Bestimmen einer Migrationsreihenfolge für jede der Anzahl von Gruppen virtueller Maschinen durch die Steuereinheit für das Migrieren virtueller Maschinen.
  3. System zum Migrieren virtueller Maschinen während des aktiven Betriebes nach Anspruch 2, wobei die maschinenausführbaren Instruktionen, welche die Steuereinheit für das Migrieren virtueller Maschinen veranlassen, eine Migrationsreihenfolge für jede der Anzahl von Gruppen virtueller Maschinen zu bestimmen, die Steuereinheit für das Migrieren virtueller Maschinen des Weiteren zu Folgendem veranlassen: Bestimmen einer Migrationsreihenfolge für jede der Anzahl von Gruppen virtueller Maschinen mindestens teilweise auf der Basis der prognostizierten Migrationszeit für jede jeweilige der Anzahl von Gruppen virtueller Maschinen.
  4. System zum Migrieren virtueller Maschinen während des aktiven Betriebes nach Anspruch 2, wobei die maschinenausführbaren Instruktionen die Steuereinheit für das Migrieren virtueller Maschinen des Weiteren zu Folgendem veranlassen: selektives Migrieren einer jeden der Anzahl von Gruppen virtueller Maschinen von dem ersten Host-System zu dem zweiten Host-System in einer Reihenfolge mindestens teilweise auf der Basis der prognostizierten Dauer zum Migrieren der jeweiligen Gruppe virtueller Maschinen bei der verfügbaren Bandbreite.
  5. System zum Migrieren virtueller Maschinen während des aktiven Betriebes nach Anspruch 1, wobei die maschinenausführbaren Instruktionen, welche die Steuereinheit für das Migrieren virtueller Maschinen veranlassen, eine Seitenmanipulationsrate für jede von mehreren virtuellen Maschinen zu bestimmen, die Steuereinheit für das Migrieren virtueller Maschinen des Weiteren zu Folgendem veranlassen: Bestimmen einer Seitenmanipulationsrate für jede der virtuellen Maschinen auf der Basis der historischen Seitenmanipulierung durch jede jeweilige der virtuellen Maschinen über ein definiertes Zeitintervall.
  6. System zum Migrieren virtueller Maschinen während des aktiven Betriebes nach Anspruch 1, wobei die maschinenausführbaren Instruktionen, welche die Steuereinheit für das Migrieren virtueller Maschinen veranlassen, mindestens einige der mehreren virtuellen Maschinen selektiv zu gruppieren, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, die Steuereinheit für das Migrieren virtueller Maschinen des Weiteren zu Folgendem veranlassen: selektives Gruppieren jeder der mehreren virtuellen Maschinen zu einem aus einer Anzahl von Paaren virtueller Maschinen, wobei jede virtuelle Maschine in einem jeweiligen Paar virtueller Maschinen mindestens auf einen identischen Speicherseiteninhaltsabschnitt zugreift.
  7. System zum Migrieren virtueller Maschinen während des aktiven Betriebes nach einem der Ansprüche 1 bis 6, wobei die maschinenausführbaren Instruktionen, welche die Steuereinheit für das Migrieren virtueller Maschinen veranlassen, mindestens einige der mehreren virtuellen Maschinen selektiv zu gruppieren, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, die Steuereinheit für das Migrieren virtueller Maschinen des Weiteren zu Folgendem veranlassen: selektives Gruppieren mindestens einiger der mehreren virtuellen Maschinen, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, wobei jede der Gruppen virtueller Maschinen virtuelle Maschinen enthält, die zuvor auf mindestens eine gemeinsame Speicherseite zugegriffen haben.
  8. System zum Migrieren virtueller Maschinen während des aktiven Betriebes nach einem der Ansprüche 1 bis 6, wobei die maschinenausführbaren Instruktionen, welche die Steuereinheit für das Migrieren virtueller Maschinen veranlassen, mindestens einige der mehreren virtuellen Maschinen selektiv zu gruppieren, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, die Steuereinheit für das Migrieren virtueller Maschinen des Weiteren zu Folgendem veranlassen: selektives Gruppieren mindestens einiger der mehreren virtuellen Maschinen, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, wobei jede der Gruppen virtueller Maschinen virtuelle Maschinen enthält, die zuvor auf mindestens eine von mehreren Speicherseiten zugegriffen haben, wobei jede der mehreren Speicherseiten mindestens teilweise den identischen Speicherseiteninhaltsabschnitt enthält.
  9. System zum Migrieren virtueller Maschinen während des aktiven Betriebes nach Anspruch 8, wobei die maschinenausführbaren Instruktionen, welche die Steuereinheit für das Migrieren virtueller Maschinen veranlassen, mindestens einige der mehreren virtuellen Maschinen selektiv zu gruppieren, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, die Steuereinheit für das Migrieren virtueller Maschinen des Weiteren zu Folgendem veranlassen: Bestimmen eines Hash-Wertes mindestens teilweise auf der Basis des Inhalts, der in mindestens einem Abschnitt von jeder der mehreren Speicherseiten enthalten ist; Detektieren der mindestens zwei Speicherseiten innerhalb der mehreren Speicherseiten, die ähnliche Hash-Werte haben; und Identifizieren des identischen Inhalts, der auf jeder der mindestens zwei Seiten für die detektierten mindestens zwei Speicherseiten innerhalb der mehreren Speicherseiten enthalten ist, die ähnliche Hash-Werte haben.
  10. System zum Migrieren virtueller Maschinen während des aktiven Betriebes nach einem der Ansprüche 1 bis 6, wobei die maschinenausführbaren Instruktionen, welche die Steuereinheit für das Migrieren virtueller Maschinen veranlassen, mindestens einige der mehreren virtuellen Maschinen selektiv zu gruppieren, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, die Steuereinheit für das Migrieren virtueller Maschinen des Weiteren zu Folgendem veranlassen: selektives Gruppieren mindestens einiger der mehreren virtuellen Maschinen, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, wobei jede der Gruppen virtueller Maschinen virtuelle Maschinen enthält, die zuvor auf mindestens eine von mehreren Speicherseiten zugegriffen haben, wobei jede der mehreren Speicherseiten einen identischen Speicherseiteninhalt aufweist.
  11. System zum Migrieren virtueller Maschinen während des aktiven Betriebes nach Anspruch 10, wobei die maschinenausführbaren Instruktionen, welche die Steuereinheit für das Migrieren virtueller Maschinen veranlassen, mindestens einige der mehreren virtuellen Maschinen selektiv zu gruppieren, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, die Steuereinheit für das Migrieren virtueller Maschinen des Weiteren zu Folgendem veranlassen: Bestimmen eines Hash-Wertes mindestens teilweise auf der Basis des Inhalts, der in mindestens einem Abschnitt von jeder der mehreren Speicherseiten enthalten ist; Detektieren der mindestens zwei Speicherseiten innerhalb der mehreren Speicherseiten, die ähnliche Hash-Werte haben; und Identifizieren des identischen Inhalts, der auf jeder der mindestens zwei Seiten für die detektierten mindestens zwei Speicherseiten innerhalb der mehreren Speicherseiten enthalten ist, die ähnliche Hash-Werte haben.
  12. Verfahren zum Migrieren virtueller Maschinen während des aktiven Betriebes, das Folgendes umfasst: Bestimmen, durch eine Steuereinheit für das Migrieren virtueller Maschinen, einer Seitenmanipulationsrate für jede von mehreren virtuellen Maschinen; selektives Gruppieren, durch die Steuereinheit für das Migrieren virtueller Maschinen, mindestens einiger der mehreren virtuellen Maschinen, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, wobei jede der Gruppen virtueller Maschinen virtuelle Maschinen enthält, die zuvor auf mindestens einen identischen Speicherseiteninhaltsabschnitt zugegriffen haben; und Bestimmen, durch die Steuereinheit für das Migrieren virtueller Maschinen, einer prognostizierten Migrationszeit für jede der Anzahl von Gruppen virtueller Maschinen mindestens teilweise auf der Basis des mindestens einen identischen Speicherseiteninhaltsabschnitts, der Seitenmanipulationsrate für jede der virtuellen Maschinen, die in der jeweiligen Gruppe enthalten sind, und der verfügbaren Netzwerkbandbreite.
  13. Verfahren zum Migrieren virtueller Maschinen während des aktiven Betriebes nach Anspruch 12, das des Weiteren Folgendes umfasst: Bestimmen einer Migrationsreihenfolge für jede der Anzahl von Gruppen virtueller Maschinen durch die Steuereinheit für das Migrieren virtueller Maschinen.
  14. Verfahren zum Migrieren virtueller Maschinen während des aktiven Betriebes nach Anspruch 13, wobei das Bestimmen einer Migrationsreihenfolge für jede der Anzahl von Gruppen virtueller Maschinen Folgendes umfasst: das Bestimmen, durch die Steuereinheit für das Migrieren virtueller Maschinen, einer Migrationsreihenfolge für jede der Anzahl von Gruppen virtueller Maschinen mindestens teilweise auf der Basis der prognostizierten Migrationszeit für jede jeweilige der Anzahl von Gruppen virtueller Maschinen.
  15. Verfahren zum Migrieren virtueller Maschinen während des aktiven Betriebes nach Anspruch 13, wobei das Bestimmen einer Seitenmanipulationsrate für jede von mehreren virtuellen Maschinen Folgendes umfasst: das Bestimmen, durch die Steuereinheit für das Migrieren virtueller Maschinen, einer Seitenmanipulationsrate für jede der virtuellen Maschinen auf der Basis der historischen Seitenmanipulierung durch jede jeweilige der virtuellen Maschinen über ein definiertes Zeitintervall.
  16. Verfahren zum Migrieren virtueller Maschinen während des aktiven Betriebes nach Anspruch 12, wobei das selektive Gruppieren mindestens einiger der mehreren virtuellen Maschinen, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, Folgendes umfasst: das selektive Gruppieren, durch die Steuereinheit für das Migrieren virtueller Maschinen, jeder der mehreren virtuellen Maschinen zu einem aus einer Anzahl von Paaren virtueller Maschinen, wobei jede virtuelle Maschine in einem jeweiligen Paar virtueller Maschinen mindestens auf einen identischen Speicherseiteninhaltsabschnitt zugreift.
  17. Verfahren zum Migrieren virtueller Maschinen während des aktiven Betriebes nach einem der Ansprüche 12 bis 16, wobei das selektive Gruppieren mindestens einiger der mehreren virtuellen Maschinen, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, Folgendes umfasst: das selektive Gruppieren, durch die Steuereinheit für das Migrieren virtueller Maschinen, mindestens einiger der mehreren virtuellen Maschinen, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, wobei jede der Gruppen virtueller Maschinen virtuelle Maschinen enthält, die zuvor auf mindestens eine gemeinsame Speicherseite zugegriffen haben.
  18. Verfahren zum Migrieren virtueller Maschinen während des aktiven Betriebes nach einem der Ansprüche 12 bis 16, wobei das selektive Gruppieren mindestens einiger der mehreren virtuellen Maschinen, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, Folgendes umfasst: das selektive Gruppieren, durch die Steuereinheit für das Migrieren virtueller Maschinen, mindestens einiger der mehreren virtuellen Maschinen, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, wobei jede der Gruppen virtueller Maschinen virtuelle Maschinen enthält, die zuvor auf mindestens eine von mehreren Speicherseiten zugegriffen haben, wobei jede der mehreren Speicherseiten mindestens teilweise den identischen Speicherseiteninhaltsabschnitt enthält.
  19. Verfahren zum Migrieren virtueller Maschinen während des aktiven Betriebes nach Anspruch 18, wobei das selektive Gruppieren mindestens einiger der mehreren virtuellen Maschinen, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, Folgendes umfasst: Bestimmen eines Hash-Wertes mindestens teilweise auf der Basis des Inhalts, der in mindestens einem Abschnitt von jeder der mehreren Speicherseiten enthalten ist; Detektieren der mindestens zwei Speicherseiten innerhalb der mehreren Speicherseiten, die ähnliche Hash-Werte haben; und Identifizieren des identischen Inhalts, der auf jeder der mindestens zwei Seiten für die detektierten mindestens zwei Speicherseiten innerhalb der mehreren Speicherseiten enthalten ist, die ähnliche Hash-Werte haben.
  20. Verfahren zum Migrieren virtueller Maschinen während des aktiven Betriebes nach einem der Ansprüche 12 bis 16, wobei das selektive Gruppieren mindestens einiger der mehreren virtuellen Maschinen, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, Folgendes umfasst: das selektive Gruppieren, durch die Steuereinheit für das Migrieren virtueller Maschinen, mindestens einiger der mehreren virtuellen Maschinen, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, wobei jede der Gruppen virtueller Maschinen virtuelle Maschinen enthält, die zuvor auf mindestens eine von mehreren Speicherseiten zugegriffen haben, wobei jede der mehreren Speicherseiten einen identischen Speicherseiteninhalt aufweist.
  21. Verfahren zum Migrieren virtueller Maschinen während des aktiven Betriebes nach Anspruch 20, wobei das selektive Gruppieren mindestens einiger der mehreren virtuellen Maschinen, um eine Anzahl von Gruppen virtueller Maschinen zu bilden, Folgendes umfasst: Bestimmen eines Hash-Wertes mindestens teilweise auf der Basis des Inhalts, der in mindestens einem Abschnitt von jeder der mehreren Speicherseiten enthalten ist; Detektieren der mindestens zwei Speicherseiten innerhalb der mehreren Speicherseiten, die ähnliche Hash-Werte haben; und Identifizieren des identischen Inhalts, der auf jeder der mindestens zwei Seiten für die detektierten mindestens zwei Speicherseiten innerhalb der mehreren Speicherseiten enthalten ist, die ähnliche Hash-Werte haben.
  22. System zum Migrieren virtueller Maschinen während des aktiven Betriebes, das Folgendes umfasst: für jede virtuelle Maschine aus mehreren virtuellen Maschinen, ein Mittel zum Bestimmen eines Wertes, der die Speicherseitenmanipulationsrate angibt, die logisch mit der jeweiligen virtuellen Maschine verknüpft ist; ein Mittel zum selektiven Gruppieren virtueller Maschinen aus den mehreren virtuellen Maschinen, um eine Anzahl von Gruppen virtueller Maschinen bereitzustellen, wobei jede virtuelle Maschine in einer jeweiligen Gruppe virtueller Maschinen auf einen identischen Speicherseiteninhaltsabschnitt zugreift; für jede Gruppe virtueller Maschinen, ein Mittel zum dynamischen Prognestizieren einer Dauer zum Migrieren der jeweiligen Gruppe virtueller Maschinen mindestens teilweise auf der Basis von Folgendem: einer einzelnen Migration des identischen Speicherseiteninhaltsabschnitts, auf den durch die virtuellen Maschinen in der jeweiligen Gruppe virtueller Maschinen zugegriffen wird; einer verfügbaren Bandbreite zum Migrieren der jeweiligen Gruppe virtueller Maschinen; und des Wertes, der die Speicherseitenmanipulationsrate angibt, die logisch mit jeder der virtuellen Maschinen verknüpft ist, die in der jeweiligen Gruppe virtueller Maschinen enthalten sind.
  23. System zum Migrieren virtueller Maschinen während des aktiven Betriebes nach Anspruch 22, das des Weiteren Folgendes umfasst: ein Mittel zum selektiven Migrieren einer jeden der Anzahl von Gruppen virtueller Maschinen in einer Reihenfolge mindestens teilweise auf der Basis der prognostizierten Dauer zum Migrieren der jeweiligen Gruppe virtueller Maschinen bei der verfügbaren Bandbreite.
  24. Chipsatz, der dafür ausgelegt ist, das Verfahren nach einem der Ansprüche 12 bis 21 auszuführen.
  25. Maschinenlesbares Medium oder mehrere maschinenlesbare Medien, die mehrere Instruktionen umfassen, die, wenn sie auf einer Computervorrichtung ausgeführt werden, die Computervorrichtung veranlassen, das Verfahren nach einem der Ansprüche 12 bis 21 auszuführen.
DE112015007188.1T 2015-12-18 2015-12-18 Batch-Migration virtueller Maschinen während des aktiven Bertriebs Withdrawn DE112015007188T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/097863 WO2017101100A1 (en) 2015-12-18 2015-12-18 Virtual machine batch live migration

Publications (1)

Publication Number Publication Date
DE112015007188T5 true DE112015007188T5 (de) 2018-09-13

Family

ID=59055526

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112015007188.1T Withdrawn DE112015007188T5 (de) 2015-12-18 2015-12-18 Batch-Migration virtueller Maschinen während des aktiven Bertriebs

Country Status (6)

Country Link
US (1) US11074092B2 (de)
JP (1) JP6312779B2 (de)
CN (1) CN107015844B (de)
DE (1) DE112015007188T5 (de)
SG (1) SG10201609126TA (de)
WO (1) WO2017101100A1 (de)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9389901B2 (en) * 2014-09-09 2016-07-12 Vmware, Inc. Load balancing of cloned virtual machines
DE112015007188T5 (de) 2015-12-18 2018-09-13 Intel Corporation Batch-Migration virtueller Maschinen während des aktiven Bertriebs
US10545777B2 (en) * 2016-11-08 2020-01-28 International Business Machines Corporation Generating a virtual machines relocation protocol
CN107352078B (zh) * 2017-07-12 2022-10-28 浙江工业大学 半自动绒螯蟹包装机
US10445129B2 (en) * 2017-10-31 2019-10-15 Vmware, Inc. Virtual computing instance transfer path selection
CN107967168B (zh) * 2017-12-08 2021-11-12 中南大学 一种云数据中心里基于共享内存页面的虚拟机整合方法
CN108037980B (zh) * 2018-01-02 2023-03-14 腾讯科技(深圳)有限公司 控制执行虚拟机热迁移的方法、装置和可读存储介质
CN108153580A (zh) * 2018-01-05 2018-06-12 北京中实信息技术有限公司 一种超融合架构下的虚拟机内存热扩展的方法
US10613893B2 (en) * 2018-02-02 2020-04-07 Nutanix, Inc. System and method for reducing downtime during hypervisor conversion
US10606630B2 (en) 2018-02-02 2020-03-31 Nutanix, Inc. System and method for preserving entity identifiers
EP3752915B1 (de) 2018-02-14 2024-02-07 Google LLC System zur laufzeit-migration von virtuellen maschinen mit zugeordneten peripheriegeräten.
CN109388478A (zh) * 2018-11-01 2019-02-26 郑州云海信息技术有限公司 用于OpenStack环境中迁移虚拟机的方法和装置
US10698722B2 (en) * 2018-11-27 2020-06-30 Sap Se Virtual machine migration across cloud computing providers
CN110708154B (zh) * 2019-08-31 2022-05-10 苏州浪潮智能科技有限公司 一种虚拟机迁移方法、系统、终端及存储介质
US11169870B2 (en) * 2020-01-15 2021-11-09 Vmware, Inc. Managing the migration of virtual machines in the presence of uncorrectable memory errors
US11409619B2 (en) 2020-04-29 2022-08-09 The Research Foundation For The State University Of New York Recovering a virtual machine after failure of post-copy live migration
CN112363801B (zh) * 2020-11-10 2022-10-21 海光信息技术股份有限公司 虚拟机迁移方法、处理方法、系统、装置、芯片及介质
US20220214901A1 (en) * 2021-01-06 2022-07-07 Red Hat, Inc. Migration speed-up for multiple virtual machines
US11494076B2 (en) * 2021-01-19 2022-11-08 Dell Products L.P. Storage-usage-based host/storage mapping management system
US20220269522A1 (en) * 2021-02-25 2022-08-25 Red Hat, Inc. Memory over-commit support for live migration of virtual machines

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4894745B2 (ja) 2007-12-14 2012-03-14 富士通株式会社 仮想マシン移動制御方式
US8386612B2 (en) * 2009-02-10 2013-02-26 International Business Machines Corporation Optimizing migration policy during live virtual memory migration
JP5235751B2 (ja) 2009-03-30 2013-07-10 株式会社日立製作所 仮想計算機を有する物理計算機
US8689211B2 (en) * 2009-05-25 2014-04-01 International Business Machines Corporation Live migration of virtual machines in a computing environment
US8327060B2 (en) * 2009-11-30 2012-12-04 Red Hat Israel, Ltd. Mechanism for live migration of virtual machines with memory optimizations
US8533711B2 (en) * 2009-11-30 2013-09-10 Red Hat Israel, Ltd. Method and system for adjusting a selection algorithm for selecting a candidate host with a highest memory sharing history value with a target virtual machine from amongst a set of host machines that have a standard deviation of memory sharing history with the virtual machine below a threshold amount
US8244957B2 (en) * 2010-02-26 2012-08-14 Red Hat Israel, Ltd. Mechanism for dynamic placement of virtual machines during live migration based on memory
US9250863B1 (en) * 2010-12-28 2016-02-02 Amazon Technologies, Inc. Managing virtual machine migration
US8490091B2 (en) * 2011-03-28 2013-07-16 International Business Machines Corporation Virtual machine placement to improve memory utilization
US8943296B2 (en) * 2011-04-28 2015-01-27 Vmware, Inc. Virtual address mapping using rule based aliasing to achieve fine grained page translation
US9767039B2 (en) * 2011-07-18 2017-09-19 Vmware, Inc. Increasing granularity of dirty bit information in hardware assisted memory management systems
JP2013026943A (ja) 2011-07-25 2013-02-04 Sharp Corp 立体画像処理装置および立体画像処理方法
US8694644B2 (en) * 2011-09-29 2014-04-08 Nec Laboratories America, Inc. Network-aware coordination of virtual machine migrations in enterprise data centers and clouds
EP2804100B1 (de) * 2012-01-10 2020-04-29 Fujitsu Limited Programm, verfahren und vorrichtung zur verwaltung virtueller maschinen
US9384035B2 (en) * 2012-08-22 2016-07-05 Hitachi, Ltd. Virtual computer system, management computer, and virtual computer management method
US9172587B2 (en) * 2012-10-22 2015-10-27 International Business Machines Corporation Providing automated quality-of-service (‘QoS’) for virtual machine migration across a shared data center network
CN103049308B (zh) * 2012-11-30 2016-01-20 华为技术有限公司 实现虚拟机热迁移的方法、装置及系统
US9372726B2 (en) * 2013-01-09 2016-06-21 The Research Foundation For The State University Of New York Gang migration of virtual machines using cluster-wide deduplication
JP5876425B2 (ja) 2013-02-12 2016-03-02 日本電信電話株式会社 仮想マシンのライブマイグレーションスケジューリング方法及び仮想マシンシステム
US9417899B2 (en) * 2013-03-14 2016-08-16 International Business Machines Corporation Memory page de-duplication in a computer system that includes a plurality of virtual machines
US9081599B2 (en) * 2013-05-28 2015-07-14 Red Hat Israel, Ltd. Adjusting transfer rate of virtual machine state in virtual machine migration
US9454400B2 (en) * 2013-08-16 2016-09-27 Red Hat Israel, Ltd. Memory duplication by origin host in virtual machine live migration
US9459902B2 (en) * 2013-08-16 2016-10-04 Red Hat Israel, Ltd. Memory duplication by destination host in virtual machine live migration
US9317326B2 (en) * 2013-11-27 2016-04-19 Vmware, Inc. Consistent migration of a group of virtual machines using source and destination group messaging
JP6031462B2 (ja) 2014-02-12 2016-11-24 日本電信電話株式会社 仮想マシン配置装置及び方法及びプログラム
CN103885829A (zh) 2014-04-16 2014-06-25 中国科学院软件研究所 一种基于统计的虚拟机跨数据中心动态迁移优化方法
CN103955399B (zh) 2014-04-30 2017-06-20 华为技术有限公司 一种虚拟机迁移方法和装置及物理主机
US9558005B2 (en) * 2014-05-19 2017-01-31 Intel Corporation Reliable and deterministic live migration of virtual machines
US9342346B2 (en) * 2014-07-27 2016-05-17 Strato Scale Ltd. Live migration of virtual machines that use externalized memory pages
US9348655B1 (en) * 2014-11-18 2016-05-24 Red Hat Israel, Ltd. Migrating a VM in response to an access attempt by the VM to a shared memory page that has been migrated
US20180024854A1 (en) * 2015-03-27 2018-01-25 Intel Corporation Technologies for virtual machine migration
WO2016205978A1 (en) * 2015-06-26 2016-12-29 Intel Corporation Techniques for virtual machine migration
US9870248B2 (en) * 2015-08-13 2018-01-16 Red Hat Israel, Ltd. Page table based dirty page tracking
CN107924328B (zh) * 2015-09-25 2023-06-06 英特尔公司 选择虚拟机进行迁移的技术
DE112015007188T5 (de) 2015-12-18 2018-09-13 Intel Corporation Batch-Migration virtueller Maschinen während des aktiven Bertriebs

Also Published As

Publication number Publication date
CN107015844B (zh) 2021-08-31
US20180329737A1 (en) 2018-11-15
WO2017101100A1 (en) 2017-06-22
CN107015844A (zh) 2017-08-04
JP2017117440A (ja) 2017-06-29
SG10201609126TA (en) 2017-07-28
US11074092B2 (en) 2021-07-27
JP6312779B2 (ja) 2018-04-18

Similar Documents

Publication Publication Date Title
DE112015007188T5 (de) Batch-Migration virtueller Maschinen während des aktiven Bertriebs
DE112019000841T5 (de) Handhaben von E/A-Operationen in einem cloudbasierten Speichersystem
DE102019106669A1 (de) Verfahren und anordnungen zum verwalten von speicher in kaskadierten neuronalen netzen
DE112004003080B4 (de) Verwendung mehrerer Monitore virtueller Maschinen zur Abwicklung privilegierter Ereignisse
WO2018099299A1 (zh) 一种图数据处理的方法、装置及系统
DE112012004747B4 (de) Verborgenes automatisiertes Spiegeln von Daten für native Schnittstellen in verteilten virtuellen Maschinen
DE112017004808T5 (de) Dynamische zuteilung virtueller cpu-kerne
DE102020104637A1 (de) Techniken zur effizienten partitionierung von speicher
DE102016105589A1 (de) Anwenden von Firmware-Updates in einem System mit Null-Stillstandszeit durch wahlweise Abschalten und Einschalten von Hardware unter Verwenden einer Hypervisor-Schicht
DE112016005571T5 (de) Aufrufergeschützte stapelrücksprungadresse in einer hardware-verwalteten stapelarchitektur
DE102018115670A1 (de) Technologien für die Ausführung von nicht vertrauenswürdigem Code mit Prozessor-Sandbox-Unterstützung
DE112011100323T5 (de) Architekturübergreifende Migration virtueller Maschinen
DE102012215918A1 (de) Spiegeln virtueller Maschinen von einem primären auf einen sekundären Host
CN108549583A (zh) 大数据处理方法、装置、服务器及可读存储介质
DE112017006367T5 (de) Aufgabenmanagement mit dynamischer Laufzeit
DE112014002754T5 (de) Effiziente Aufgabenplanung unter Verwendung eines Sperrmechanismus
DE102019109357A1 (de) Selektive ausführung von cache-linien-ausräumoperationen
DE112004001652B4 (de) Vektorieren eines Interrupt oder einer Ausnahme bei Wiederaufnahme des Betriebes einer virtuellen Maschine
DE102010044529A1 (de) Autonome Subsystem-Architektur
DE112020003929T5 (de) Verwaltung von metadaten von virtuellen speichern
DE102018126146A1 (de) Maschinenlernbasierte feststellung von programmcodeeigenschaften
DE202017007430U1 (de) Erkennen von Bussperrbedingungen und Vermeiden von Bussperren
DE102022124530A1 (de) Speicherpoolmanagement
DE112019005392T5 (de) Steigern von datenleistung durch transferieren von daten zwischen speicherebenen unter verwendung von arbeitslastmerkmalen
DE102021127254A1 (de) Inhaltssensitives Auswählen von Knoten zum Erstellen von Containern

Legal Events

Date Code Title Description
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee