DE112010004784T5 - Effizientes Laden von Daten in den Speicher eines Rechnersystems - Google Patents

Effizientes Laden von Daten in den Speicher eines Rechnersystems Download PDF

Info

Publication number
DE112010004784T5
DE112010004784T5 DE112010004784T DE112010004784T DE112010004784T5 DE 112010004784 T5 DE112010004784 T5 DE 112010004784T5 DE 112010004784 T DE112010004784 T DE 112010004784T DE 112010004784 T DE112010004784 T DE 112010004784T DE 112010004784 T5 DE112010004784 T5 DE 112010004784T5
Authority
DE
Germany
Prior art keywords
data segment
data
computer
memory
loaded
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.)
Ceased
Application number
DE112010004784T
Other languages
English (en)
Inventor
Kalman Meth
Michael Factor
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112010004784T5 publication Critical patent/DE112010004784T5/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0667Virtualisation aspects at data level, e.g. file, record or object virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Ein Verfahren zum Installieren von einer oder mehreren virtuellen Maschinen auf einem Host-Rechnersystem wird bereitgestellt. Das Verfahren aufweist den Empfang von Abbildungsinformationen aus einem Datenspeichersystem. Die Abbildungsinformationen ordnen ein erstes in dem Datenspeichersystem gespeichertes Datensegment einer eindeutigen Kennung zu, um die Installation einer ersten virtuellen Maschine auf einem Host-Rechnersystem zu unterstützen. Sobald die Abbildungsinformationen empfangen wurden, werden sie zur Feststellung verwendet, ob in Verbindung mit der Installation der ersten virtuellen Maschine oder einer zweiten virtuellen Maschine auf dem Host-Rechnersystem Kopien des ersten Datensegments bereits in einen Speicher des Host-Rechnersystems geladen worden sind. Wenn noch keine Kopien des ersten Datensegments in den Rechnerspeicher geladen worden sind, wird das erste Datensegment aus dem Datenspeichersystem abgerufen, in den Rechnerspeicher geladen und verwendet, um die erste virtuelle Maschine auf dem Host-Rechnersystem zu installieren.

Description

  • Technisches Gebiet
  • Der offengelegte Erfindungsgegenstand betrifft allgemein Rechnersysteme und insbesondere das effiziente Laden von Daten in den Speicher eines Rechnersystems, das eine Vielzahl von virtuellen Maschinen beherbergt.
  • Hintergrund
  • In einer Virtualisierungsumgebung kann die Software eines Hostrechners (d. h. eines Hypervisors), die auf einer oder mehreren Software- oder Hardware-Infrastrukturen (d. h. einer Host-Maschine) ausgeführt wird, die Host-Maschine für ein oder mehrere Gast-Softwareprogramme nachbilden oder virtualisieren. Anders ausgedrückt, ein Hypervisor kann eine oder mehrere virtuelle Maschinen (VMs) realisieren.
  • Der Hypervisor realisiert die VMs, indem er Daten, die zur Realisierung der VMs (d. h. Abbilder der VMs) verwendet werden, aus einem Datenspeichersystem in einen Speicher der Host-Maschine lädt. Wenn die Abbilder von demselben Abbild (d. h. einem Original-Abbild) abgeleitet werden, können den Abbildern eine beträchtliche Menge an Daten gemein sein. Bei vorhandenen Ausführungsarten ruft der Hypervisor jedes der Abbilder ab und lädt sie unabhängig voneinander in einen getrennten Bereich des Rechnerspeichers, ohne die den mehreren VM-Abbildern gemeinsamen Daten festzustellen. Folglich verschwendet der Hypervisor Ressourcen (z. B. Verarbeitungsleistung, Speicherplatz, Speicher- und Netzwerkbandbreite), indem er die gemeinsamen Daten wiederholt abruft und lädt.
  • Die veröffentlichte US-Patentanmeldung 20090182928 legt ein Verfahren und ein System zum Erfassen der Bewegung einer VM mit Hilfe einer Kennung offen. Die veröffentlichte US-Patentanmeldung US20080263296 legt ein Verfahren und ein System zur Feststellung, ob ein Informationsblock bereits in einer Speichereinheit gespeichert ist, offen. Die US-Patentschrift 7500048 legt ein Verfahren und ein System zur Feststellung offen, ob es zwischen einer ersten in Frage kommenden Speicherseite und einer zweiten in Frage kommenden Speicherseite einen übereinstimmenden Hash-Wert gibt. Die US-Patentschrift 7356665 legt ein Verfahren und ein System zur Aufrechterhaltung einer umgekehrten Abbildungsstruktur offen, die Maschinenspeicherblöcke in dem Verarbeitungssystem auf physische Speicherblöcke abbildet, die in einer jeden virtuellen Maschine verwendet werden. Die US-Patentschrift 7246200 legt ein Verfahren zur Prüfung offen, ob ein Abbild, das zu einer virtuellen Maschine gehört, in einem Speicher auf der Grundlage von Abbildungsinformationen gespeichert wird.
  • Keines dieser Schriftstücke nach dem Stand der Technik geht das Problem der Ressourcenverschwendung aufgrund der Notwendigkeit, gemeinsame Daten wiederholt abzurufen und zu laden, an.
  • Kurzdarstellung
  • Zum Zweck der Kurzdarstellung wurden hier bestimmte Aspekte, Vorteile und neuartige Merkmale beschrieben. Es versteht sich, dass nicht alle diese Vorteile gemäß einer bestimmten Ausführungsform erzielt werden können. Der offengelegte Erfindungsgegenstand kann in einer Art und Weise realisiert oder ausgeführt werden, die einen Vorteil oder eine Gruppe von Vorteilen erzielt oder optimiert, ohne alle Vorteile, die in diesem Schriftstück möglicherweise gelehrt oder zu erkennen gegeben werden, zu erzielen.
  • Gemäß einer Ausführungsform wird ein Verfahren zur Inbetriebnahme von einer oder mehreren virtuellen Maschinen auf einem Host-Rechnersystem bereitgestellt. Das Verfahren umfasst den Empfang von Abbildungsinformationen aus einem Datenspeichersystem. Die Abbildungsinformationen ordnen ein erstes in dem Datenspeichersystem gespeichertes Datensegment (data chunk) einer eindeutigen Kennung zu, um die Inbetriebnahme bzw. Installation bzw. ein Laden einer ersten virtuellen Maschine auf einem Host-Rechnersystem zu unterstützen. Sobald die Abbildungsinformationen empfangen wurden, werden sie zur Feststellung verwendet, ob in Verbindung mit der Inbetriebnahme der ersten virtuellen Maschine oder einer zweiten virtuellen Maschine auf dem Host-Rechnersystem Kopien des ersten Datensegments bereits in einen Speicher des Host-Rechnersystems geladen worden sind. Wenn noch keine Kopien des ersten Datensegments in den Rechnerspeicher geladen worden sind, wird das erste Datensegment aus dem Datenspeichersystem abgerufen, in den Rechnerspeicher geladen und verwendet, um die erste virtuelle Maschine auf dem Host-Rechnersystem in Betrieb zu nehmen.
  • Gemäß einer oder mehrerer Ausführungsformen wird ein System, das eine oder mehrere Logikeinheiten umfasst, bereitgestellt. Die eine oder die mehreren Logikeinheiten sind so konfiguriert, dass sie die Funktionen und Operationen in Verbindung mit den vorstehend offengelegten Verfahren ausführen. In noch einer weiteren Ausführungsform wird ein Rechnerprogrammprodukt, das ein rechnerlesbares Speichermedium umfasst, welches über ein rechnerlesbares Programm verfügt, bereitgestellt. Wenn das rechnerlesbare Programm auf einem Rechner ausgeführt wird, veranlasst es den Rechner, die Funktionen und Operationen in Verbindung mit den vorstehend offengelegten Verfahren auszuführen.
  • Eine oder mehrere der vorstehend offengelegten Ausführungsformen werden nachstehend zusätzlich zu bestimmten Alternativen ausführlicher dargelegt, wobei Bezug auf die beigefügten Figuren genommen wird. Der offengelegte Erfindungsgegenstand ist jedoch nicht auf eine bestimmte offengelegte Ausführungsform beschränkt.
  • Kurze Beschreibung der Zeichnungen
  • Bevorzugte Ausführungsformen der vorliegenden Erfindung werden nun lediglich anhand eines Beispiels und mit Bezug auf die folgenden Zeichnungen beschrieben, bei denen:
  • 1 eine beispielhafte Virtualisierungsumgebung gemäß einer oder mehrerer Ausführungsformen veranschaulicht;
  • die 2A und 2B Flussdiagramme eines Verfahrens sind, um ein oder mehrere VM-Abbilder gemäß einer Ausführungsform abzurufen und in den Rechnerspeicher zu laden;
  • die 3 und 4 Blockschaltbilder von Hardware- und Software-Umgebungen sind, in denen ein System der vorliegenden Erfindung gemäß einer oder mehrerer Ausführungsformen betrieben werden kann.
  • Gemäß einer oder mehrerer Ausführungsformen stellen Merkmale, Elemente und Aspekte, auf die in verschiedenen Figuren mit denselben Bezugszahlen Bezug genommen wird, gleiche, gleichwertige oder ähnliche Merkmale, Elemente oder Aspekte dar.
  • Ausführliche Beschreibung von beispielhaften Ausführungsformen
  • Im Folgenden werden zahlreiche spezielle Einzelheiten aufgezeigt, um verschiedene Ausführungsformen eingehend zu beschreiben. Bestimmte Ausführungsformen können ohne diese speziellen Einzelheiten oder mit Abweichungen im Detail in die Praxis umgesetzt werden. In manchen Fällen werden bestimmte Merkmale weniger ausführlich beschrieben, um andere Aspekte nicht zu verdecken. Der mit jedem der Elemente oder Merkmale einhergehende Detaillierungsgrad sollte nicht so ausgelegt werden, dass damit die Neuartigkeit oder die Bedeutung von einem Merkmal über die anderen gestellt werden soll.
  • Bezug nehmend auf 1 umfasst eine beispielhafte Virtualisierungsumgebung 100 gemäß einer oder mehrerer Ausführungsformen ein Datenspeichersystem 110 und eine Host-Maschine 120. Das Datenspeichersystem 110 enthält eine oder mehrere Speichereinheiten 112, um Daten zu speichern, und eine Speichersteuereinheit 114, um Daten zu verwalten. Die Host-Maschine 120 enthält einen Rechnerspeicher 122, um Daten zu speichern, eine Rechnerspeicher-Steuereinheit 124, um Daten zu verwalten, und einen Hypervisor 126, um eine oder mehrere VMs 130 zu realisieren.
  • Bezug nehmend auf die 1, 2A und 2B können Daten, die zur Realisierung der VMs 130 (d. h. VM-Abbilder) verwendet werden, gemäß einer Ausführungsform aus den Speichereinheiten 112 abgerufen und in den Rechnerspeicher 122 geladen werden. Die Speichersteuereinheit 114 hat die VM-Abbilder gemäß einem Speicherschema, das Kopieren-beim-Schreiben-(Copy-on-Write-), Deduplizierungs- oder andere speicherplatzsparende Speichermechanismen verwendet, um zu verhindern oder ganz auszuschließen, dass mehrere Kopien von gemeinsam benutzten Daten in dem Datenspeichersystem 110 gespeichert werden, in den Speichereinheiten 112 gespeichert (P200). Es ist erwähnenswert, dass die VM-Abbilder eine beträchtliche Datenmenge gemeinsam haben können, wenn die VM-Abbilder von einem Original-Abbild abgeleitet werden. In einer Ausführungsart kann ein VM-Abbild zum Beispiel von einem Original-Abbild abgeleitet werden, indem eine speicherplatzsparende Zeitpunkt-(Point-in-time-)Kopie (z. B. eine Momentaufnahme) des Original-Abbilds erzeugt und die Kopie anschließend geändert wird.
  • Jedem Datensegment, das in dem Datenspeichersystem 110 gespeichert wird, kann auf vorteilhafte Weise eine eindeutige Kennung zugeordnet werden (P210).
  • Ein Datensegment bezieht sich auf einen Datenblock, eine Datenerweiterung oder eine andere Gruppierung von Daten. In Abhängigkeit von der gegebenen Art der Ausführung kann eine eindeutige Kennung, die einem Datensegment zugeordnet wird, entsprechend dem Speicherort, entsprechend dem Inhalt des Datensegments oder entsprechend einem anderen Mechanismus zur Erzeugung einer solchen Kennung erzeugt werden. Bei manchen Ausführungsarten kann Kopien eines Datensegments, die an demselben Speicherort gespeichert sind oder denselben Inhalt haben, somit dieselbe eindeutige Kennung zugeordnet werden.
  • In einer beispielhaften Ausführungsform können, wenn das Kopieren-beim-Schreiben-Verfahren angewendet wird, um eine Zeitpunkt-Kopie eines Datensegments zu speichern, eine oder mehrere Kopien des Datensegments in Abhängigkeit davon, ob das Datensegment nach einem bestimmten Zeitpunkt geändert worden ist, in einem ersten oder in einem zweiten Speicherbereich gespeichert werden. Bei einem solchen Speicherschema kann eine eindeutige Kennung für eine nicht geänderte Kopie des Datensegments zum Beispiel eine Kennung für den ersten Speicherbereich und den Speicherort der Kopie in dem ersten Speicherbereich enthalten. Eine eindeutige Kennung für eine geänderte Kopie des Datensegments kann beispielsweise eine Kennung für einen zweiten Speicherbereich und den Speicherort der Kopie in dem zweiten Speicherbereich umfassen.
  • Bei anderen Speicherschemata kann eine eindeutige Kennung für ein Datensegment beispielsweise die physische Adresse des Datensegments umfassen. Alternativ kann eine eindeutige Kennung für ein Datensegment zum Beispiel einen Hash-Wert oder einen anderen Wert umfassen, der von dem Inhalt des Datensegments erzeugt wurde.
  • Nach wie vor Bezug nehmend auf die 1, 2A und 2B versorgt die Speichersteuereinheit 114 den Hypervisor 126 mit Informationen (z. B. Abbildungsinformationen), wobei jedem Datensegment der VM-Abbilder eine eindeutige Kennung zugeordnet wird (P220). In Abhängigkeit von der gegebenen Art der Ausführung können solche Abbildungsinformationen von dem Hypervisor 126 beschafft werden, indem der Hypervisor 126 entweder eine ausdrückliche Anforderung an die Speichersteuereinheit 114 für diese Informationen sendet oder indem die Abbildungsinformationen im Huckepack-Verfahren auf anderen Datenverkehr, der von der Speichersteuereinheit 114 an den Hypervisor 126 fließt, aufgesattelt werden oder indem ein beliebiges anderes zur Verfügung stehendes Mittel verwendet wird, das der Beschaffung solcher Informationen dient. Es versteht sich, dass der offengelegte Erfindungsgegenstand nicht auf eine bestimmte Ausführungsart beschränkt ist.
  • Für jedes Datensegment eines VM-Abbilds, das aus dem Datenspeichersystem 110 abgerufen und in den Rechnerspeicher 122 geladen werden soll, verwendet der Hypervisor 126 die zu dem Datensegment gehörende eindeutige Kennung, um festzustellen, ob als Teil der Installation eines ersten VM-Abbilds (d. h. des aktuellen VM-Abbilds) oder eines zweiten VM-Abbilds (d. h. eines vorherigen installierten VM-Abbilds) eine Kopie des Datensegments bereits abgerufen und in den Rechnerspeicher 122 geladen worden ist (P230). Wenn eine Kopie des Datensegments bereits abgerufen und in den Rechnerspeicher 122 geladen worden ist, wird keine zweite Kopie desselben Datensegments abgerufen und in den Rechnerspeicher 122 geladen, um das erste VM-Abbild zu installieren. Stattdessen verhält es sich so, dass das erste VM-Abbild die Kopie des Datensegments mitbenutzt, die bereits in den Rechnerspeicher 122 geladen worden ist (P240). Alternativ ersucht der Hypervisor 126 die Rechnerspeicher-Steuereinheit 124, einen Kopiervorgang des Datensegments von Rechnerspeicher zu Rechnerspeicher durchzuführen, statt das Datensegment nochmals aus dem Datenspeichersystem 110 abzurufen.
  • Wenn keine vorherige Kopie des Datensegments abgerufen und in den Rechnerspeicher 122 geladen worden ist, ruft der Hypervisor 126 das Datensegment aus dem Datenspeichersystem 110 ab und stellt das Datensegment der Rechnerspeicher-Steuereinheit 124 zur Verfügung (P250). Nach dem Empfang des Datensegments lädt die Rechnerspeicher-Steuereinheit 124 das Datensegment in den Rechnerspeicher 122, wobei sie ein speicherplatzsparendes Speicherschema verwendet, das verhindert oder ganz ausschließt, dass mehrere Kopien der gemeinsam benutzten Daten in dem Rechnerspeicher 122 gespeichert werden (P260). Sobald das Datensegment in den Rechnerspeicher 122 geladen worden ist, aktualisiert der Hypervisor 126 eine Datenstruktur (z. B. eine Tabelle, eine Matrix, eine Bitmap usw.), um anzuzeigen, dass das Datensegment in den Rechnerspeicher 122 geladen worden ist (P270).
  • Bei bestimmten Ausführungsarten kann eine VM aufgrund einer Änderung des Zustands der VM geändert werden. Wenn dies der Fall ist, kann ein Datensegment für eine erste VM, das von der ersten VM und von der zweiten VM gemeinsam benutzt wird, geändert werden, nachdem es in den Rechnerspeicher 122 geladen worden ist. Bei solchen Ausführungsarten kann der Hypervisor 124 die eindeutige Kennung, die zu dem in den Rechnerspeicher 122 geladenen Datensegment gehört, aktualisieren, um beispielsweise einen Zeitstempel oder eine Versionsnummer aufzunehmen, um das Datensegment dahingehend zu unterscheiden, dass es zu der ersten VM und nicht zu der zweiten VM gehört. In diesem Szenario wird, wenn die zweite VM bereits installiert worden ist, eine Kopie des Datensegments vor der Änderung reserviert und in Verbindung mit der zweiten VM geladen. Alternativ kann der Hypervisor 120 untersagen, dass das Datensegment geändert wird, während es noch in Verwendung ist.
  • Die vorstehend genannten Prozesse verhindern, dass Kopien derselben Daten, die in verschiedenen Speicherbereichen eines Datenspeichersystems gespeichert sind, mehr als einmal aus dem Datenspeicher abgerufen und in den Rechnerspeicher geladen werden. Folglich werden Daten abgerufen und in den Rechnerspeicher geladen, ohne Verarbeitungsleistung (z. B. Eingabe-/Ausgabe-(E/A-)Operationen), Speicherplatz oder Speicher- und Netzwerkbandbreite zu verschwenden. Auch können die vorstehend genannten Prozesse auf jede beliebige Art von Daten angewendet werden, die aus einer Gruppe von Speicherbereichen in den Speicher einer beliebigen Art von Rechnersystem geladen werden können. Daher sollte der Umfang des beanspruchten Erfindungsgegenstands nicht dahingehend ausgelegt werden, dass er auf das Laden von VM-Abbildern in den Speicher eines Rechnersystems, das VMs beherbergt, beschränkt ist.
  • In anderen Ausführungsformen kann der offengelegte Erfindungsgegenstand als eine sowohl aus Hardware- als auch aus Software-Elementen bestehende Kombination oder alternativ entweder ganz in Form von Hardware oder aber ganz in Form von Software realisiert werden. Hier offengelegte Rechnersysteme und Programm-Software können darüber hinaus eine gesteuerte Datenverarbeitungsumgebung umfassen, die in Form von Hardware-Komponenten oder Logik-Code dargestellt werden kann, welcher ausgeführt wird, um Verfahren und Prozesse durchzuführen, die die hier beabsichtigten Ergebnisse erzielen. Die Verfahren und Prozesse setzen die Universalmaschine in eine Maschine, die einem ganz bestimmten Zweck dient, um, wenn die Verfahren und Prozesse von einem Universalrechnersystem oder einer Universalmaschine durchgeführt werden.
  • Bezug nehmend auf die 3 und 4 kann eine Rechnersystemumgebung gemäß einer beispielhaften Ausführungsform aus einer Hardware-Umgebung 1110 und einer Software-Umgebung 1120 bestehen. Die Hardware-Umgebung 1110 kann Logikeinheiten, Schaltungen oder andere Maschinen und Geräte umfassen, die eine Ausführungsumgebung für die Komponenten der Software-Umgebung 1120 zur Verfügung stellen. Die Software-Umgebung 1120 wiederum kann die Ausführungsbefehle, einschließlich der zugrunde liegenden Betriebseinstellungen und Konfigurationen, für die verschiedenen Komponenten der Hardware-Umgebung 1110 bereitstellen.
  • Bezug nehmend auf 3 können die Anwendungs-Software und der Logik-Code, die hier offengelegt werden, in Form von rechnerlesbarem Code realisiert werden, der über ein oder mehrere Rechnersysteme ausgeführt wird, welche von der beispielhaften Hardware-Umgebung 1110 dargestellt werden. Wie gezeigt ist, kann die Hardware-Umgebung 1110 einen Prozessor 1101 umfassen, der über einen Systembus 1100 mit einem oder mehreren Speicherelementen verbunden ist. Die Speicherelemente können beispielsweise den lokalen Rechnerspeicher 1102, die Speichermedien 1106, den Cachespeicher 1104 oder andere von einem Rechner nutzbare oder lesbare Datenträger umfassen. Im Rahmen dieser Offenbarung kann ein von einem Rechner nutzbares oder lesbares Speichermedium jeden beliebigen beschreibbaren Gegenstand einschließen, der verwendet werden kann, um Programmcode aufzunehmen, zu speichern, zu übertragen, weiterzugeben oder zu transportieren.
  • Ein rechnerlesbares Speichermedium kann ein(e) elektronische(s), magnetische(s), optische(s), elektromagnetische(s), Infrarot- oder Halbspeicher-Medium, -System, -Vorrichtung oder -Einheit sein. Das rechnerlesbare Speichermedium kann auch ohne Einschränkung insoweit in einem Weitergabe-Medium realisiert werden, als eine solche Realisierung als ein gesetzlich festgelegter Patent-Gegenstand erachtet wird. Zu Beispielen für rechnerlesbare Speichermedien können gegebenenfalls ein Halbleiterspeicher oder Festkörperspeicher, ein Magnetband, eine auswechselbare Rechnerdiskette, ein Direktzugriffspeicher (RAM), ein Nur-Lese-Speicher (ROM), eine magnetische Festplatte, eine optische Platte oder eine Trägerwelle gehören. Zu aktuellen Beispielen für optische Platten gehören ein Compact-Disk-Nur-Lese-Speicher (CD-ROM), ein Compact-Disk-Schreib-/Lese-Speicher (CD-R/W), eine digitale Videoplatte (DVD), eine hochauflösende Videoplatte (HD-DVD) oder eine Blue-rayTM-Platte.
  • In einer Ausführungsform lädt der Prozessor 1101 ausführbaren Code aus den Speichermedien 1106 in den lokalen Rechnerspeicher 1102. Der Cachespeicher 1104 optimiert die Verarbeitungszeit, indem er einen temporären Speicher bereitstellt, der dazu beiträgt, die Häufigkeit zu verringern, mit der Code zur Ausführung geladen wird. Eine oder mehrere Benutzerschnittstellen-Einheiten 1105 (z. B. Tastatur, Zeigegerät usw.) und ein Bildschirm 1107 können entweder direkt oder beispielsweise über eine zwischengeschaltete E/A-Steuereinheit 1103 mit den anderen Elementen in der Hardware-Umgebung 1110 verbunden werden. Eine Datenübertragungs-Schnittstelleneinheit 1108, wie zum Beispiel ein Netzwerk-Adapter, kann bereitgestellt werden, um der Hardware-Umgebung 1110 zu ermöglichen, Daten mit lokalen oder fernen Rechnersystemen, Druckern und Speichereinheiten über zwischengeschaltete private oder öffentliche Netzwerke (z. B. das Internet) auszutauschen. Drahtgebundene oder drahtlose Modems und Ethernet-Karten sind ein paar der als Beispiel dienenden Arten von Netzwerkadaptern.
  • Es sei erwähnt, dass die Hardware-Umgebung 1110 bei bestimmten Ausführungsarten einen Teil oder alle der vorstehenden Komponenten gegebenenfalls nicht enthält oder aber zusätzliche Komponenten umfassen kann, um ergänzende Funktionen oder ergänzenden Nutzen bereitzustellen. In Abhängigkeit von der vorgesehenen Verwendung und Konfiguration kann es sich bei der Hardware-Umgebung 1110 um einen Tischrechner oder einen Laptop-Rechner oder eine andere Rechnereinheit handeln, die optional in einem eingebetteten System wie zum Beispiel einem Aufsatzgerät (Set-Top-Box), einem persönlichen digitalen Assistenten (PDA), einem persönlichen Medienwiedergabegerät, einer mobilen Kommunikationseinheit (z. B. einem schnurlosen Telefon) oder anderen ähnlichen Hardware-Plattformen enthalten ist, die über Informationsverarbeitungs- oder Datenspeicherfähigkeiten verfügen.
  • In manchen Ausführungsformen dient die Datenübertragungs-Schnittstelle 1108 als Datenübertragungsanschluss, um ein Mittel zum Austausch von Daten mit einem oder mehreren Rechnersystemen bereitzustellen, indem digitale, elektrische, elektromagnetische oder optische Signale gesendet und empfangen werden, die analoge oder digitale Datenströme übertragen, welche verschiedene Arten von Informationen einschließlich Programmcode darstellen. Der Datenaustausch kann mittels eines lokalen oder eines fernen Netzwerks oder alternativ mittels Übertragung durch die Luft oder ein anderes Medium einschließlich der Weitergabe über eine Trägerwelle, ohne darauf beschränkt zu sein, stattfinden.
  • Die offengelegten Software-Elemente, die auf den veranschaulichten Hardware-Elementen ausgeführt werden, werden hier gemäß logischen oder funktionalen Beziehungen, deren Art beispielhaft ist, angegeben. Es sei jedoch angemerkt, dass die jeweiligen Verfahren, die mittels der beispielhaften Software-Elemente durchgeführt werden, beispielsweise auch mittels konfigurierter und programmierter Prozessoren, anwendungsspezifischer integrierter Schaltungen (application specific integrated circuits (ASICs)), kundenprogrammierbarer Universalschaltkreise (field programmable gate arrays (FPGAs)) sowie Digitalsignalprozessoren (DSPs) in den Hardware-Elementen codiert sein können.
  • Bezug nehmend auf 4 kann die Software-Umgebung 1120 im Allgemeinen in zwei Klassen unterteilt werden, welche die System-Software 1121 und die Anwendungs-Software 1122 umfassen, die auf einer oder mehreren Hardware-Umgebungen 1110 ausgeführt werden. In einer Ausführungsform können die hier offengelegten Verfahren und Prozesse als System-Software 1121, Anwendungs-Software 1122 oder als eine Kombination daraus realisiert werden. Die System-Software 1121 kann Steuerprogramme wie zum Beispiel ein Betriebssystem (operating system (OS)) oder ein Informationsverwaltungssystem umfassen, die einem oder mehreren Prozessoren 1101 (z. B. Mikrocontroller) in der Hardware-Umgebung 1110 Anweisungen dahingehend erteilen, wie Funktionen auszuführen oder Daten zu verarbeiten sind. Die Anwendungs-Software 1122 kann Programmcode, Datenstrukturen, Firmware, residente Software, Mikrocode oder eine beliebige andere Form von Informationen oder Routinen, ohne darauf beschränkt zu sein, umfassen, die von einem Prozessor 1101 gelesen, ausgewertet oder ausgeführt werden können.
  • Anders ausgedrückt, die Anwendungs-Software 1122 kann als Programmcode realisiert werden, der in ein Rechnerprogrammprodukt in Form von einem von einem Rechner nutzbaren oder lesbaren Speichermedium eingebettet ist, welches Programmcode zur Verwendung durch einen Rechner oder ein beliebiges Befehlsausführungssystem oder in Verbindung mit einem Rechner oder einem beliebigen Befehlsausführungssystem bereitstellt. Überdies kann die Anwendungs-Software 1122 ein oder mehrere Rechnerprogramme umfassen, die auf System-Software 1121 aufsetzend ausgeführt werden, nachdem sie aus dem Speichermedium 1106 in den lokalen Rechnerspeicher 1102 geladen worden sind. In einer Client-Server-Architektur kann die Anwendungs-Software 1122 Client-Software und Server-Software umfassen. In einer Ausführungsform kann die Client-Software zum Beispiel auf einem Client-Rechnersystem ausgeführt werden, das sich von einem Server-Rechnersystem, auf dem Server-Software ausgeführt wird, unterscheidet und von diesem getrennt werden kann.
  • Die Software-Umgebung 1120 kann auch Browser-Software 1126 umfassen, um auf Daten zuzugreifen, die über lokale oder ferne Rechnernetzwerke zur Verfügung stehen. Ferner kann die Software-Umgebung 1120 eine Benutzerschnittstelle 1124 (z. B. eine grafische Benutzeroberfläche (graphical user interface (GUI)) umfassen, um Benutzerbefehle und Daten zu empfangen. Es sei nochmals erwähnt, dass die vorstehend beschriebenen Hardware- und Software-Architekturen und -Umgebungen zu Beispielzwecken angegeben wurden. Als solches können eine oder mehrere Ausführungsformen über jede beliebige Art einer Systemarchitektur, Funktions- oder Logikplattform oder Verarbeitungsumgebung realisiert werden.
  • Es sollte auch klar sein, dass der Logik-Code, die Programme, die Module, die Prozesse, die Verfahren und die Reihenfolge, in der die jeweiligen Prozesse eines jeden Verfahrens durchgeführt werden, lediglich Beispielcharakter haben. In Abhängigkeit von der Ausführungsart können die Prozesse und jedwede zugrunde liegenden Unterprozesse und Verfahren in einer beliebigen Reihenfolge oder aber gleichzeitig durchgeführt werden, sofern in der vorliegenden Offenbarung nichts anderes angegeben ist. Außerdem bezieht sich die Definition von Logik-Code im Rahmen dieser Offenbarung, sofern nichts anderes ausdrücklich angegeben ist, weder auf irgendeine bestimmte Programmiersprache noch ist sie auf irgendeine bestimmte Programmiersprache beschränkt, und sie kann ein oder mehrere Module umfassen, die auf einem oder mehreren Prozessoren in verteilten und nicht verteilten Einfach- und Mehrfachverarbeitungsumgebungen ausgeführt werden können.
  • Für den Fachmann versteht es sich, dass eine Software-Ausführung Firmware, residente Software, Mikrocode usw. enthalten kann. Bestimmte Komponenten, die Software oder Hardware enthalten oder Software- und Hardware-Aspekte vereinen, können hier allgemein als eine ”Schaltung”, ein ”Modul” oder ein ”System” bezeichnet werden. Überdies kann der offengelegte Erfindungsgegenstand als ein Rechnerprogrammprodukt realisiert werden, das in einem oder mehreren rechnerlesbaren Speichermedien enthalten ist, auf denen sich von einem Rechner lesbarer Programmcode befindet. Jede beliebige Kombination aus einem oder mehreren rechnerlesbaren Speichermedien kann verwendet werden. Das rechnerlesbare Speichermedium kann ein rechnerlesbarer Signaldatenträger oder ein rechnerlesbares Speichermedium sein. Ein rechnerlesbares Speichermedium kann zum Beispiel, ohne auf diese beschränkt zu sein, ein(e) elektronische(s), magnetische(s), optische(s), elektromagnetische(s), Infrarot- oder Halbleitersystem, -vorrichtung, -einheit oder eine beliebige geeignete Kombination des Vorstehenden sein.
  • In Zusammenhang mit diesem Schriftstück kann ein rechnerlesbares Speichermedium jedes physisch greifbare Medium sein, das ein Programm zur Verwendung durch ein Befehlsausführungssystem, eine Befehlsausführungsvorrichtung oder -einheit oder zur Verwendung in Verbindung mit einem Befehlsausführungssystem, einer Befehlsausführungsvorrichtung oder -einheit enthalten oder speichern kann. Ein rechnerlesbarer Signaldatenträger kann ein übertragenes Datensignal mit einem darin enthaltenen rechnerlesbaren Programmcode, beispielsweise in einem Basisband oder als Teil einer Trägerwelle, enthalten. Solch ein übertragenes Signal kann eine beliebige einer Vielzahl von Formen einschließlich elektromagnetischer, optischer Formen oder jede beliebige geeignete Kombination dieser Formen, ohne auf diese beschränkt zu sein, annehmen. Bei einem rechnerlesbaren Signaldatenträger kann es sich um jeden beliebigen rechnerlesbaren Signaldatenträger handeln, der kein rechnerlesbares Speichermedium ist und der ein Programm zur Verwendung durch ein Befehlsausführungssystem, eine Befehlsausführungsvorrichtung oder -einheit oder zur Verwendung in Verbindung mit einem Befehlsausführungssystem, einer Befehlsausführungsvorrichtung oder -einheit übertragen, weiterleiten oder transportieren kann.
  • Auf einem rechnerlesbaren Speichermedium enthaltener Programmcode kann mittels eines beliebigen geeigneten Mediums einschließlich drahtloser Übertragungsmittel, drahtgebundener Übertragungsmittel, Lichtwellenleiterkabel, Hochfrequenz (HF) usw., ohne auf diese beschränkt zu sein, oder mittels jeder beliebigen geeigneten Kombination des Vorstehenden übertragen werden. Rechnerprogrammcode zur Durchführung der offengelegten Operationen kann in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen einschließlich einer objektorientierten Programmiersprache wie beispielsweise Java, Smalltalk, C++ oder dergleichen, sowie in herkömmlichen prozeduralen Programmiersprachen wie beispielsweise der Programmiersprache ”C” oder in ähnlichen Programmiersprachen geschrieben sein.
  • Die Ausführung des Programmcodes kann komplett auf dem Rechner eines Benutzers, teilweise auf dem Rechner des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Rechner des Benutzers und teilweise auf einem fernen Rechner oder komplett auf dem fernen Rechner oder Server erfolgen. Im letzteren Szenario kann der ferne Rechner mit dem Rechner des Benutzers über jede beliebige Art eines Netzwerks einschließlich eines lokalen Netzwerks (LAN) oder eines Weitverkehrsnetzes (WAN) verbunden werden oder die Verbindung kann zu einem externen Rechner (zum Beispiel über das Internet mittels eines Internet-Diensteanbieters) hergestellt werden.
  • Bestimmte Erscheinungsformen werden mit Bezug auf Darstellungen in Flussdiagrammen und/oder mit Bezug auf Blockschaltbilder von Verfahren, Vorrichtungen (Systemen) und Rechnerprogrammprodukten gemäß Ausführungsformen offengelegt. Es versteht sich, dass jeder Block der Darstellungen in den Flussdiagrammen und/oder der Blockschaltbilder sowie Kombinationen aus Blöcken in den Darstellungen der Flussdiagramme und/oder den Blockschaltbildern mittels Rechnerprogrammbefehlen realisiert werden können. Diese Rechnerprogrammbefehle können einem Prozessor eines Universalrechners, eines Rechners für spezielle Anwendungen oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die Befehle, die über den Prozessor des Rechners oder einer anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel zur Ausführung der Funktionen/Vorgänge erzeugen, die in dem Flussdiagramm und/oder dem Block oder den Blöcken des Blockschaltbilds angegeben sind.
  • Diese Rechnerprogrammbefehle können auch in einem rechnerlesbaren Speichermedium gespeichert werden, das einen Rechner, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anweisen kann, auf eine bestimmte Art und Weise zu funktionieren, so dass die in dem rechnerlesbaren Speichermedium gespeicherten Befehle einen Herstellungsgegenstand erzeugen, der Befehle enthält, die die Funktion/den Vorgang ausführen, welche beziehungsweise welcher in dem Flussdiagramm und/oder dem Block oder den Blöcken des Blockschaltbilds angegeben ist.
  • Die Rechnerprogrammbefehle können auch auf einen Rechner, eine andere programmierbare Datenverarbeitungsvorrichtung oder auf andere Einheiten geladen werden, um die Ausführung einer Reihe von Betriebsschritten auf dem Rechner, einer anderen programmierbaren Vorrichtung oder auf anderen Einheiten zu bewirken, um einen von einem Rechner ausgeführten Prozess zu erzeugen, so dass die Befehle, die auf dem Rechner oder einer anderen programmierbaren Vorrichtung ausgeführt werden, Prozesse zur Ausführung der Funktionen/Vorgänge ermöglichen, die in dem Flussdiagramm und/oder dem Block oder den Blöcken des Blockschaltbilds angegeben sind.
  • Das Flussdiagramm und die Blockschaltbilder in den Figuren veranschaulichen die Architektur, die Funktionalität und die Betriebsweise von möglichen Ausführungsarten von Systemen, Verfahren und Rechnerprogrammprodukten gemäß verschiedenen Ausführungsformen. In dieser Hinsicht kann jeder Block in dem Flussdiagramm oder den Blockschaltbildern ein Modul, ein Segment oder einen Code-Teil darstellen, das beziehungsweise der einen oder mehrere ausführbare Befehle zur Ausführung der angegebenen logischen Funktion(en) umfasst. Es sei auch angemerkt, dass die in dem Block angegebenen Funktionen in manchen alternativen Ausführungsarten in einer anderen als in der in den Figuren angegebenen Reihenfolge auftreten können.
  • In Abhängigkeit von der mit ihnen verbundenen Funktionalität können beispielsweise zwei Blöcke, die als aufeinanderfolgende Blöcke dargestellt sind, tatsächlich weitgehend gleichzeitig ausgeführt werden oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden. Man wird auch feststellen, dass jeder Block der Blockschaltbilder und/oder der Darstellung in den Flussdiagrammen sowie Kombinationen aus Blöcken in den Blockschaltbildern und/oder der Darstellung in den Flussdiagrammen von auf Hardware basierenden Systemen für spezielle Anwendungen, welche die angegebenen Funktionen oder Vorgänge durchführen, oder von Kombinationen aus Hardware für spezielle Anwendungen und Rechnerbefehlen ausgeführt werden können.
  • Der offengelegte Erfindungsgegenstand wurde hier mit Bezug auf ein oder mehrere Merkmale oder Ausführungsformen beschrieben. Der Fachmann erkennt und versteht, dass trotz der hier vorgenommenen ausführlichen Beschreibung der beispielhaften Ausführungsformen Ab- und Veränderungen an den Ausführungsformen vorgenommen werden können, ohne den allgemein vorgesehenen Umfang zu beschränken oder von dem allgemein vorgesehenen Umfang abzuweichen. Diese und verschiedene andere Anpassungen und Kombinationen der hier angegebenen Ausführungsformen fallen unter den offengelegten Erfindungsgegenstand, der in den Ansprüchen und deren vollständigem Satz von Entsprechungen beschrieben ist.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 7500048 [0004]
    • US 7356665 [0004]
    • US 7246200 [0004]

Claims (23)

  1. Verfahren zur Inbetriebnahme von einer oder mehreren virtuellen Maschinen auf einem Host-Rechnersystem, wobei das Verfahren Folgendes aufweist: Empfangen von Abbildungsinformationen aus einem Datenspeichersystem, wobei die Abbildungsinformationen einem ersten in dem Datenspeichersystem gespeicherten Datensegment eine eindeutige Kennung zuordnen, um die Inbetriebnahme einer ersten virtuellen Maschine auf einem Host-Rechnersystem zu unterstützen; Verwenden der Abbildungsinformationen, um festzustellen, ob in Verbindung mit der Inbetriebnahme der ersten virtuellen Maschine oder einer zweiten virtuellen Maschine auf dem Host-Rechnersystem Kopien des ersten Datensegments bereits in einen Speicher des Host-Rechnersystems geladen wurden; und als Reaktion auf die Feststellung, dass noch keine Kopien des ersten Datensegments in den Rechnerspeicher geladen worden sind: Abrufen des ersten Datensegments aus dem Datenspeichersystem; Laden des ersten Datensegments in den Rechnerspeicher; und Verwenden des ersten Datensegments, um die erste virtuelle Maschine auf dem Host-Rechnersystem in Betrieb zu nehmen.
  2. Verfahren nach Anspruch 1, das darüber hinaus aufweist, als Reaktion auf die Feststellung, dass mindestens die erste Kopie des ersten Datensegments bereits in den Rechnerspeicher geladen wurde, eine erste Kopie des ersten Datensegments zu verwenden, die bereits in den Rechnerspeicher geladen wurde, um die erste virtuelle Maschine auf dem Host-Rechnersystem in Betrieb zu nehmen.
  3. Verfahren nach Anspruch 1, das darüber hinaus aufweist, als Reaktion auf die Feststellung, dass mindestens die erste Kopie des ersten Datensegments bereits in den Rechnerspeicher geladen wurde, eine zweite Kopie des ersten Datensegments zu verwenden, die aus einer ersten Kopie des ersten Datensegments erzeugt wird, welche bereits in den Rechnerspeicher geladen worden ist.
  4. Verfahren nach Anspruch 1, wobei das erste Datensegment gemäß einem speicherplatzsparenden Speicherschema in dem Datenspeichersystem gespeichert wird.
  5. Verfahren nach Anspruch 1, wobei das erste Datensegment gemäß einem speicherplatzsparenden Schema in dem Rechnerspeicher gespeichert wird.
  6. Verfahren nach Anspruch 1, wobei die eindeutige Kennung, die dem ersten Datensegment zugeordnet wird, auf der Grundlage eines Speicherortes des ersten Datensegments erzeugt wird.
  7. Verfahren nach Anspruch 6, wobei die eindeutige Kennung, die dem ersten Datensegment zugeordnet wird, eine Kennung für einen ersten Speicherbereich in dem Datenspeichersystem und einen Speicherort des ersten Datensegments in dem ersten Speicherbereich aufweist, wenn das erste Datensegment nach einem bestimmten Zeitpunkt nicht geändert wird.
  8. Verfahren nach Anspruch 6, wobei die eindeutige Kennung, die dem ersten Datensegment zugeordnet wird, eine Kennung für einen zweiten Speicherbereich in dem Datenspeichersystem und einen Platz des ersten Datensegments in dem zweiten Speicherbereich aufweist, wenn das erste Datensegment nach einem bestimmten Zeitpunkt geändert wird.
  9. Verfahren nach Anspruch 1, wobei die eindeutige Kennung, die dem ersten Datensegment zugeordnet wird, eine physische Adresse des ersten Datensegments aufweist.
  10. Verfahren nach Anspruch 1, wobei die eindeutige Kennung auf der Grundlage von Inhalten des ersten Datensegments erzeugt wird.
  11. Verfahren nach Anspruch 10, wobei die eindeutige Kennung einen Hash-Wert aufweist, der aus dem Inhalt des ersten Datensegments erzeugt wird.
  12. Verfahren nach Anspruch 1, wobei das erste Datensegment in dem Datenspeichersystem mittels Kopieren-beim-Schreiben gespeichert und von der ersten virtuellen Maschine und der zweiten virtuellen Maschine gemeinsam verwendet wird.
  13. Verfahren nach Anspruch 12, wobei eine Kopie des ersten Datensegments erzeugt wird, bevor das erste Datensegment in dem Datenspeichersystem geändert wird, so dass die nicht geänderte Kopie des ersten Datensegments zur Verfügung steht, um die zweite virtuelle Maschine in Betrieb zu nehmen.
  14. Verfahren nach Anspruch 13, wobei die eindeutige Kennung, die dem ersten Datensegment zugeordnet wird, in dem Datenspeichersystem als Reaktion darauf, dass das erste Datensegment in dem Datenspeichersystem geändert wird, aktualisiert wird.
  15. Verfahren nach Anspruch 1, wobei das erste Datensegment in dem Rechnerspeicher mittels Kopieren-beim-Schreiben gespeichert und von der ersten virtuellen Maschine und der zweiten virtuellen Maschine gemeinsam verwendet wird.
  16. Verfahren nach Anspruch 15, wobei eine Kopie des ersten Datensegments in dem Rechnerspeicher erzeugt wird, bevor das erste Datensegment in dem Rechnerspeicher geändert wird, so dass die nicht geänderte Kopie des ersten Datensegments zur Verfügung steht, um die zweite virtuelle Maschine zu installieren.
  17. Verfahren nach Anspruch 16, wobei die eindeutige Kennung, die dem ersten Datensegment zugeordnet wird, in dem Rechnerspeicher als Reaktion darauf, dass das erste Datensegment in dem Rechnerspeicher geändert wird, aktualisiert wird.
  18. Verfahren, um einen Satz von Daten in einen Speicher eines Rechnersystems zu laden, wobei das Verfahren Folgendes aufweist: Empfangen von Abbildungsinformationen aus einem Datenspeichersystem, wobei die Abbildungsinformationen einem ersten in dem Datenspeichersystem gespeicherten Datensegment eine eindeutige Kennung zuordnen, um das Laden eines ersten Satzes von Daten, die das erste Datensegment umfassen, in einen Speicher eines Rechnersystems zu unterstützen; Verwenden der Abbildungsinformationen, um festzustellen, ob in Verbindung mit dem Laden eines zweiten Satzes von Daten aus dem Datenspeichersystem in den Rechnerspeicher eine Kopie des ersten Datensegments bereits in den Rechnerspeicher geladen wurde; als Reaktion auf die Feststellung, dass keine Kopien des ersten Datensegments in den Rechnerspeicher geladen worden sind, Abrufen des ersten Datensegments aus dem Datenspeichersystem; und als Reaktion auf die Feststellung, dass keine Kopien des ersten Datensegments in den Rechnerspeicher geladen worden sind, Laden des ersten Datensegments in den Rechnerspeicher.
  19. Verfahren nach Anspruch 18, das darüber hinaus aufweist, als Reaktion auf die Feststellung, dass mindestens die erste Kopie des ersten Datensegments bereits in den Rechnerspeicher geladen worden ist, eine erste Kopie des ersten Datensegments zu verwenden, die bereits in den Rechnerspeicher geladen worden ist.
  20. System, um einen Satz von Daten in einen Speicher eines Rechnersystems zu laden, wobei das System Folgendes aufweist: eine Logikeinheit zum Empfangen von Abbildungsinformationen aus einem Datenspeichersystem, wobei die Abbildungsinformationen einem ersten in dem Datenspeichersystem gespeicherten Datensegment eine eindeutige Kennung zuordnen, um das Laden eines ersten Satzes von Daten, die das erste Datensegment umfassen, in einen Speicher eines Rechnersystems zu unterstützen; eine Logikeinheit zur Verwendung der Abbildungsinformationen zur Feststellung, ob in Verbindung mit dem Laden eines zweiten Satzes von Daten aus dem Datenspeichersystem in den Rechnerspeicher eine Kopie des ersten Datensegments bereits in den Rechnerspeicher geladen wurde; eine Logikeinheit zum Abrufen des erste Datensegment aus dem Datenspeichersystem, in Reaktion auf die Feststellung, dass keine Kopien des ersten Datensegments in den Rechnerspeicher geladen worden sind; und eine Logikeinheit zum Laden des ersten Datensegments in den Rechnerspeicher, in Reaktion auf die Feststellung, dass keine Kopien des ersten Datensegments in den Rechnerspeicher geladen wurden.
  21. System nach Anspruch 20, das des Weiteren eine Logikeinheit zur Verwendung einer ersten Kopie des ersten Datensegments, die bereits in den Rechnerspeicher geladen worden ist, aufweist, in Reaktion auf die Feststellung, dass mindestens die erste Kopie des ersten Datensegments bereits in den Rechnerspeicher geladen wurde.
  22. Rechnerprogrammprodukt, das ein rechnerlesbares Speichermedium mit einem rechnerlesbaren Programm aufweist, wobei das rechnerlesbare Programm, wenn es auf einem Rechner ausgeführt wird, bewirkt, dass der Rechner Folgendes durchführt: Empfangen von Abbildungsinformationen aus einem Datenspeichersystem, wobei die Abbildungsinformationen einem ersten in dem Datenspeichersystem gespeicherten Datensegment eine eindeutige Kennung zuordnen, um das Laden eines ersten Satzes von Daten, die das erste Datensegment aufweisen, in einen Speicher des Rechners zu unterstützen; Verwenden der Abbildungsinformationen, um festzustellen, ob in Verbindung mit dem Laden eines zweiten Satzes von Daten aus dem Datenspeichersystem in den Rechnerspeicher eine Kopie des ersten Datensegments bereits in den Rechnerspeicher geladen wurde; Abrufen des ersten Datensegments aus dem Datenspeichersystem in Reaktion auf die Feststellung, dass keine Kopien des ersten Datensegments in den Rechnerspeicher geladen wurden; und Laden des ersten Datensegments in den Rechnerspeicher in Reaktion auf die Feststellung, dass keine Kopien des ersten Datensegments in den Rechnerspeicher geladen wurden.
  23. Rechnerprogrammprodukt nach Anspruch 22, wobei das rechnerlesbare Programm, wenn es auf einem Rechner ausgeführt wird, als Reaktion auf die Feststellung, dass mindestens die erste Kopie des ersten Datensegments bereits in den Rechnerspeicher geladen wurde, des Weiteren bewirkt, dass der Rechner eine erste Kopie des ersten Datensegments, die bereits in den Rechnerspeicher geladen wurde, verwendet.
DE112010004784T 2009-12-13 2010-12-06 Effizientes Laden von Daten in den Speicher eines Rechnersystems Ceased DE112010004784T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/636,743 US8489799B2 (en) 2009-12-13 2009-12-13 Efficient loading of data into memory of a computing system
US12/636,743 2009-12-13
PCT/EP2010/069002 WO2011069977A2 (en) 2009-12-13 2010-12-06 Efficient loading of data into memory of a computing system

Publications (1)

Publication Number Publication Date
DE112010004784T5 true DE112010004784T5 (de) 2012-11-08

Family

ID=43648316

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112010004784T Ceased DE112010004784T5 (de) 2009-12-13 2010-12-06 Effizientes Laden von Daten in den Speicher eines Rechnersystems

Country Status (7)

Country Link
US (2) US8489799B2 (de)
JP (1) JP5689475B2 (de)
CN (1) CN102652308B (de)
DE (1) DE112010004784T5 (de)
GB (1) GB2488639B (de)
TW (1) TWI439939B (de)
WO (1) WO2011069977A2 (de)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8560825B2 (en) * 2010-06-30 2013-10-15 International Business Machines Corporation Streaming virtual machine boot services over a network
US9038066B2 (en) * 2010-12-22 2015-05-19 Vmware, Inc. In-place snapshots of a virtual disk configured with sparse extent
US8549518B1 (en) 2011-08-10 2013-10-01 Nutanix, Inc. Method and system for implementing a maintenanece service for managing I/O and storage for virtualization environment
US9652265B1 (en) 2011-08-10 2017-05-16 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment with multiple hypervisor types
US9747287B1 (en) 2011-08-10 2017-08-29 Nutanix, Inc. Method and system for managing metadata for a virtualization environment
US9009106B1 (en) 2011-08-10 2015-04-14 Nutanix, Inc. Method and system for implementing writable snapshots in a virtualized storage environment
US8601473B1 (en) 2011-08-10 2013-12-03 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US8850130B1 (en) 2011-08-10 2014-09-30 Nutanix, Inc. Metadata for managing I/O and storage for a virtualization
US8863124B1 (en) 2011-08-10 2014-10-14 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US9805197B2 (en) * 2012-06-11 2017-10-31 Ent. Services Development Corporation Lp Secure host operating system running a virtual guest operating system
JP6111148B2 (ja) * 2012-06-22 2017-04-05 株式会社半導体エネルギー研究所 情報処理装置
US8806489B2 (en) * 2012-07-05 2014-08-12 International Business Machines Corporation Virtual machine image distribution network
US9772866B1 (en) 2012-07-17 2017-09-26 Nutanix, Inc. Architecture for implementing a virtualization environment and appliance
CN102880515A (zh) * 2012-09-07 2013-01-16 浪潮电子信息产业股份有限公司 一种云海os中虚拟机快速部署方法
US9021478B1 (en) * 2012-09-27 2015-04-28 Emc Corporation Provisioning virtual machines from template by splitting and building index for locating content portions via content-centric network
US8756237B2 (en) * 2012-10-12 2014-06-17 Architecture Technology Corporation Scalable distributed processing of RDF data
US9069677B2 (en) 2013-04-29 2015-06-30 International Business Machines Corporation Input/output de-duplication based on variable-size chunks
US8937562B1 (en) * 2013-07-29 2015-01-20 Sap Se Shared data de-duplication method and system
US9396586B2 (en) * 2014-03-14 2016-07-19 Matterport, Inc. Processing and/or transmitting 3D data
US9940377B1 (en) * 2014-09-16 2018-04-10 Amazon Technologies, Inc. Instant copies of storage volumes
US10417010B2 (en) * 2014-12-01 2019-09-17 Hewlett-Packard Development Company, L.P. Disk sector based remote storage booting
US9785552B2 (en) * 2015-01-14 2017-10-10 Kabushiki Kaisha Toshiba Computer system including virtual memory or cache
US10466927B2 (en) * 2016-02-17 2019-11-05 Honeywell International Inc. Replication of memory image for efficient simultaneous uses
US10467103B1 (en) 2016-03-25 2019-11-05 Nutanix, Inc. Efficient change block training
WO2017184168A1 (en) 2016-04-22 2017-10-26 Hewlett Packard Enterprise Development Lp Configuration of a memory controller for copy-on-write with a resource controller
US20190378016A1 (en) * 2018-06-07 2019-12-12 International Business Machines Corporation Distributed computing architecture for large model deep learning
US11061709B2 (en) 2018-08-21 2021-07-13 International Business Machines Corporation Storage management for deployment of virtual machine

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7246200B1 (en) 2003-11-12 2007-07-17 Veritas Operating Corporation Provisioning and snapshotting using copy on read/write and transient virtual machine technology
US7356665B2 (en) 2003-12-17 2008-04-08 International Business Machines Corporation Method and system for machine memory power and availability management in a processing system supporting multiple virtual machines
US7500048B1 (en) 2005-12-15 2009-03-03 Vmware, Inc. Transparent page sharing on commodity operating systems

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001134444A (ja) * 1999-11-04 2001-05-18 Victor Co Of Japan Ltd コンピュータシステムにおけるデータ処理装置
US6760828B1 (en) * 2000-06-27 2004-07-06 Emc Corporation Method and apparatus for using logical volume identifiers for tracking or identifying logical volume stored in the storage system
US6789156B1 (en) * 2001-05-22 2004-09-07 Vmware, Inc. Content-based, transparent sharing of memory units
US6915397B2 (en) * 2001-06-01 2005-07-05 Hewlett-Packard Development Company, L.P. System and method for generating point in time storage copy
US7360034B1 (en) * 2001-12-28 2008-04-15 Network Appliance, Inc. Architecture for creating and maintaining virtual filers on a filer
US20040254964A1 (en) * 2003-06-12 2004-12-16 Shoji Kodama Data replication with rollback
US20060174074A1 (en) * 2005-02-03 2006-08-03 International Business Machines Corporation Point-in-time copy operation
US7496613B2 (en) * 2006-01-09 2009-02-24 International Business Machines Corporation Sharing files among different virtual machine images
JP2008077144A (ja) * 2006-09-19 2008-04-03 Ricoh Co Ltd 仮想化システム、メモリ管理方法及び制御プログラム
JP4952308B2 (ja) * 2007-03-09 2012-06-13 日本電気株式会社 メモリ共有システム、方法、及び、プログラム
US7900003B2 (en) * 2007-04-20 2011-03-01 International Business Machines Corporation System, method and computer program product for storing an information block
US8458694B2 (en) * 2007-04-30 2013-06-04 International Business Machines Corporation Hypervisor with cloning-awareness notifications
US8315984B2 (en) * 2007-05-22 2012-11-20 Netapp, Inc. System and method for on-the-fly elimination of redundant data
US8949827B2 (en) * 2007-06-22 2015-02-03 Red Hat, Inc. Tracking a virtual machine
WO2009066611A1 (ja) * 2007-11-20 2009-05-28 Nec Corporation 仮想マシン向けデータ格納システム、データ格納方法およびデータ格納用プログラム
US8135918B1 (en) * 2007-12-31 2012-03-13 Emc Corporation Data de-duplication for iSCSI
US20090204718A1 (en) * 2008-02-08 2009-08-13 Lawton Kevin P Using memory equivalency across compute clouds for accelerated virtual memory migration and memory de-duplication
US8099571B1 (en) * 2008-08-06 2012-01-17 Netapp, Inc. Logical block replication with deduplication
CN101414277B (zh) * 2008-11-06 2010-06-09 清华大学 一种基于虚拟机的按需增量恢复容灾系统及方法
JP5235751B2 (ja) * 2009-03-30 2013-07-10 株式会社日立製作所 仮想計算機を有する物理計算機

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7246200B1 (en) 2003-11-12 2007-07-17 Veritas Operating Corporation Provisioning and snapshotting using copy on read/write and transient virtual machine technology
US7356665B2 (en) 2003-12-17 2008-04-08 International Business Machines Corporation Method and system for machine memory power and availability management in a processing system supporting multiple virtual machines
US7500048B1 (en) 2005-12-15 2009-03-03 Vmware, Inc. Transparent page sharing on commodity operating systems

Also Published As

Publication number Publication date
US8738884B2 (en) 2014-05-27
JP5689475B2 (ja) 2015-03-25
US20130246723A1 (en) 2013-09-19
TW201135595A (en) 2011-10-16
GB201202745D0 (en) 2012-04-04
WO2011069977A2 (en) 2011-06-16
GB2488639A (en) 2012-09-05
US20110145534A1 (en) 2011-06-16
JP2013513841A (ja) 2013-04-22
GB2488639B (en) 2015-07-22
WO2011069977A3 (en) 2011-08-11
TWI439939B (zh) 2014-06-01
CN102652308A (zh) 2012-08-29
CN102652308B (zh) 2014-12-03
US8489799B2 (en) 2013-07-16

Similar Documents

Publication Publication Date Title
DE112010004784T5 (de) Effizientes Laden von Daten in den Speicher eines Rechnersystems
DE112012004747B4 (de) Verborgenes automatisiertes Spiegeln von Daten für native Schnittstellen in verteilten virtuellen Maschinen
DE112012000693B4 (de) Ausführen einer Vielzahl von Instanzen einer Anwendung
DE112011102183B4 (de) Beschleuniger für die Migration virtueller Maschinen
DE112012000635T5 (de) Dynamische Speicherverwaltung in einer virtualisierten Datenverarbeitungsumgebung
DE112012004893B4 (de) Implementieren eines Software-Abbildes auf mehreren Zielen unter Verwendung einer Datenstromtechnik
DE112011100094T5 (de) Verfahren und System zum Abstrahieren eines auf nichtfunktionalen Anforderungen beruhenden Einsatzes von virtuellen Maschinen
DE112013000656T5 (de) System und Verfahren zum Verringern der Speichernutzung durch optimales Platzieren von virtuellen Maschinen in einem virtualisierten Rechenzentrum
DE112011103829T5 (de) Verfahren und System zum Erzeugen einer virtuellen Maschine auf der Grundlage von Vorlagen
DE112018006769B4 (de) Erweiterte zwischenspeicherzuweisung basierend auf virtuellen knotenressourcen
DE112010004160T5 (de) Portieren virtueller Abbilder zwischen Plattformen
DE202012013432U1 (de) Speichern von Daten auf Speicherknoten
DE112010004931T5 (de) Mehrphasige Wiederherstellung von Dateisystemen mit SelektiverBedarfsweiser Verfügbarkeit von Daten(
DE112011100323T5 (de) Architekturübergreifende Migration virtueller Maschinen
DE112011103845B4 (de) Verwalten einer verschachtelten virtualisierten Umgebung
DE112013000369T5 (de) Verwaltung von Threads innerhalb einer Datenverarbeitungsumgebung
DE112012005209T5 (de) Brückenfunktion zwischen Virtual Machine Monitor und Bare-Metal-Bootvorgang
DE102012217315A1 (de) Verwenden von nativen Routinen an Stelle von emulierten Routinen in einer emulierten Anwendung
DE112013003873T5 (de) Verfahren und Vorrichtung zum Patchen
DE112020003929T5 (de) Verwaltung von metadaten von virtuellen speichern
DE112012004793T5 (de) Verfahren und System zum Erzeugen einer virtuellen Anwendung
DE102022105725A1 (de) Verfahren und einrichtungen zur durchführung von gewichtungs- und aktivierungskomprimierung und -dekomprimierung
DE112014000340T5 (de) Vorablesezugriff auf Daten für einen Chip mit einem übergeordneten Kern und einem Scout-Kern
DE112018000900T5 (de) Verarbeiten eines Befehls zum Freigeben von Speicherplatz in einem Computersystem
DE102016007400A1 (de) Techniken zum Evaluieren von Anwendungen durch die Verwendung einer Hilfsanwendung

Legal Events

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

Free format text: PREVIOUS MAIN CLASS: G06F0009455000

Ipc: G06F0009445000

R016 Response to examination communication
R082 Change of representative

Representative=s name: LIFETECH IP SPIES DANNER & PARTNER PATENTANWAE, DE

R082 Change of representative

Representative=s name: LIFETECH IP SPIES DANNER & PARTNER PATENTANWAE, DE

R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final
R003 Refusal decision now final

Effective date: 20150303