DE202015009296U1 - System zum Laden virtueller Maschinen - Google Patents

System zum Laden virtueller Maschinen Download PDF

Info

Publication number
DE202015009296U1
DE202015009296U1 DE202015009296.9U DE202015009296U DE202015009296U1 DE 202015009296 U1 DE202015009296 U1 DE 202015009296U1 DE 202015009296 U DE202015009296 U DE 202015009296U DE 202015009296 U1 DE202015009296 U1 DE 202015009296U1
Authority
DE
Germany
Prior art keywords
virtual machine
image
operating system
differences
virtual
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.)
Active
Application number
DE202015009296.9U
Other languages
English (en)
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of DE202015009296U1 publication Critical patent/DE202015009296U1/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • 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/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • 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/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/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/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

System, das Folgendes umfasst: einen oder mehrere Prozessor(en); und einen Speicher, der Daten und Anweisungen speichert, wobei die Anweisungen durch den Prozessor ausführbar sind; worin die Daten ein erstes Image umfassen, die eine erste virtuelle Maschine mit einem ersten Betriebssystem darstellen, das den virtuellen Bootprozess zumindest begonnen hat; und worin die Anweisungen Folgendes umfassen: das Zugreifen auf eine Datei, die die Unterschiede zwischen dem ersten Image und einem zweiten Image einer zweiten virtuellen Maschine mit einem zweiten Betriebssystem angibt, das den virtuellen Bootprozess zumindest begonnen hat; und das Ändern des ersten Images entsprechend der Datei.

Description

  • Unter Schutz gestellt werden und Gegenstand des Gebrauchsmusters sind dabei, entsprechend den Vorschriften des Gebrauchsmustergesetzes, lediglich Vorrichtungen wie in den beigefügten Schutzansprüchen definiert, jedoch keine Verfahren. Soweit nachfolgend in der Beschreibung gegebenenfalls auf Verfahren Bezug genommen wird, dienen diese Bezugnahmen lediglich der beispielhaften Erläuterung der in den beigefügten Schutzansprüchen unter Schutz gestellten Vorrichtung oder Vorrichtungen.
  • HINTERGRUND
  • Ein Computer kann als virtuelle Maschine fungieren. Der Computer kann z. B. die Konfiguration eines Computers emulieren, der sich von der Konfiguration des Servers unterscheidet. Ein Host-Server mit Linux als Betriebssystem kann z. B. ein Programm ausführen, das einen Server emuliert, der ein Windows-Betriebssystem und Windowskompatible Anwendungen bootet und ausführt. Derselbe Server kann nachfolgend oder gleichzeitig ein Programm ausführen, das einen persönlichen Computer emuliert, der MAC-OS und MAC-OS-kompatible Anwendungen bootet und ausführt.
  • Die identische virtuelle Maschine kann auf mehreren Hostrechnern oder zu unterschiedlichen Zeiten verwendet werden. In dieser Hinsicht kann die virtuelle Maschine in den Speicher des Hostrechners geladen und gebootet werden und eine Momentaufnahme des Speichers kann für den zukünftigen Gebrauch auf demselben oder auf anderen Rechnern abgespeichert werden. Wenn eine virtuelle Maschine mit den gleichen Eigenschaften benötigt wird, kann das Image direkt in den Hostrechner geladen werden, z. B. von einem Plattenspeicher, anstatt die Maschine vollständig neu zu booten.
  • KURZE ZUSAMMENFASSUNG
  • In einem Aspekt wird eine Methode bereitgestellt, bei der eine erste und eine zweite virtuelle Maschine in einen ersten bzw. einen zweiten Computerspeicher geladen und ein erstes bzw. ein zweites Image der virtuellen Maschinen abgespeichert wird. Ein Satz Unterschiede zwischen dem ersten und dem zweiten Image kann dann ermittelt werden. Das erste Image kann dann in den Speicher eines dritten Computers geladen und die Werte des dritten Speichers entsprechend dem Satz Unterschiede verändert werden.
  • In einem weiteren Aspekt wird ein System bereitgestellt, das einen oder mehrere Prozessoren und einen Speicher beinhaltet, in dem Daten und Anweisungen gespeichert sind und wo die Anweisungen vom Prozessor ausgeführt werden können. Die Daten können ein erstes Image beinhalten, das für eine erste virtuelle Maschine mit einem ersten Betriebssystem steht, das zumindest virtuell zu booten begonnen hat. Die Anweisungen können den Zugriff auf eine Datei beinhalten, die die Unterschiede zwischen dem ersten Image und einem zweiten Image angeben, wobei das zweite Image eine zweite virtuelle Maschine mit einem zweiten Betriebssystem darstellt, das zumindest virtuell zu booten begonnen hat. Das erste Image kann dann entsprechend der Datei verändert werden.
  • In noch einem weiteren Aspekt wird ein System bereitgestellt, das einen oder mehrere Prozessoren und Speicher beinhaltet, in denen Anweisungen gespeichert sind, die vom Prozessor ausgeführt werden können, wobei zu diesen Anweisungen gehören: die Erstellung der ersten, zweiten und dritten virtuellen Maschine und das Speichern des ersten, zweiten bzw. dritten Images der virtuellen Maschinen auf der Basis der mit den virtuellen Maschinen verbundenen Speicherwerte; Vergleich des ersten Images und des zweiten Images zur Erzeugung des ersten Satzes Unterschiede zwischen diesen beiden Images; Vergleich des zweiten Images und des dritten Images zur Erzeugung eines zweiten Satzes Unterschiede zwischen diesen beiden Images; Erstellung einer Kopie der ersten virtuellen Maschine auf der Basis des ersten Images und abspeichern der Kopie im Speicher; Veränderung der Kopie der ersten virtuellen Maschine entsprechend dem ersten Satz Unterschiede und Veränderung der veränderten Kopie der ersten virtuellen Maschine entsprechend dem zweiten Satz Unterschiede.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Funktionsschaltbild eines Systems entsprechend einem Aspekt des Systems und des Verfahrens.
  • 2 ist ein Funktionsschaltbild von Vergleichen zwischen Image-Disks und virtuellen Images.
  • 3 ist ein Diagramm eines Prozesses zur Umwandlung einer ersten virtuellen Maschine in eine zweite virtuelle Maschine.
  • 4 ist ein Diagramm eines Prozesses zur Umwandlung einer ersten virtuellen Maschine in eine dritte virtuelle Maschine.
  • 5 ist ein Fließdiagramm eines Prozesses entsprechend einem Aspekt des dargestellten Systems.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Übersicht
  • In bestimmten Aspekten bezieht sich die Technologie auf den Austausch einer ersten virtuellen Maschine gegen eine zweite virtuellen Maschine im selben Speicher auf der Basis der Unterschiede zwischen den Maschinen. Zum Beispiel kann eine erste virtuelle Maschine gebootet und ein Image der ersten virtuellen Maschine erstellt werden, bevor oder nachdem die in Betrieb befindliche virtuelle Maschine vollständig gebootet wurde. Ein zweite virtuelle Maschine kann ebenfalls gebootet und ein zweites Image in ähnlicher Weise erstellt werden. Die so erstellten Images können verglichen und ihre Unterschiede zum späteren Gebrauch abgespeichert werden. Zum Beispiel kann die erste virtuelle Maschine in den Hauptspeicher (RAM) geladen und in Erwartung einer Anforderung zum Zugriff auf die erste virtuelle Maschine zum Gebrauch bereit gemacht werden. Geht stattdessen eine solche Anforderung zum Zugriff auf die zweite virtuelle Maschine ein, können die Unterschiede zwischen dem ersten und zweiten Image abgerufen und auf das Image der ersten virtuellen Maschine angewendet werden, die sich gegenwärtig im Speicher befindet. Die zweite virtuelle Maschine kann dann einsatzbereit sein, ohne dass die zweite virtuelle Maschine gebootet oder das Image der gesamten zweiten virtuellen Maschine in den Speicher geladen werden muss.
  • Beispielsysteme
  • 1 stellt ein mögliches System 100 dar, in dem die hierin offengelegten Aspekte implementiert werden können. In diesem Beispiel kann System 100 Computergeräte 110 und 120 beinhalten. Der Rechner 110 kann einen oder mehrere Prozessoren 112, den Speicher 114 und sonstige Bauteile enthalten, die typischerweise in Mehrzweckrechnern vorhanden sind. Obwohl 1 den Prozessor 112 und den Speicher 114 funktional als Block 110 darstellt, können das System und die hierin beschriebenen Verfahren mehrere Prozessoren, Speicher und Geräte enthalten, die im selben physischen Gehäuse enthalten sein können oder auch nicht. Zum Beispiel können verschiedene Verfahren, die nachstehend als eine einzige Komponente (z. B. Prozessor 112) umfassend beschrieben werden, mehrere Komponenten (z. B. mehrere Prozessoren in einer lastverteilenden Serverfarm) umfassen. In gleicher Weise können verschiedene Verfahren, die nachstehend als verschiedene Komponenten (z. B. Vorrichtung 110 und Vorrichtung 120) umfassend beschrieben werden, eine einzige Komponente umfassen (z. B. anstelle von Vorrichtung 120, die eine nachstehend beschriebene Bestimmung durchführt, kann Vorrichtung 120 die relevanten Daten zur Verarbeitung an Vorrichtung 110 senden und die Ergebnisse der Bestimmung zur weiteren Verarbeitung oder Anzeige empfangen).
  • Speicher 114 von Computergerät 110 kann Informationen speichern, die von Prozessor 112 abgerufen werden können, einschließlich der Anweisungen 116, die durch den Prozessor 112 ausgeführt werden können. Der Speicher 114 kann zudem Daten beinhalten, die von dem Prozessor 112 abgerufen, bearbeitet oder gespeichert werden können. Der Speicher 114 und die sonstigen hierin beschriebenen Speicher können jede Art von Speicher sein, der für den jeweiligen Prozessor zugängliche Informationen speichern kann, z. B. ein Festplattenlaufwerk, ein Solid-State-Laufwerk, eine Speicherkarte, RAM 119, DVD, beschreibbarer Speicher oder nur lesbarer Speicher. Darüber hinaus kann der Speicher ein verteiltes Speichersystem beinhalten, wobei Daten, wie die Daten 150, auf mehreren verschiedenen Speichervorrichtungen gespeichert werden, die sich physisch an demselben oder an unterschiedlichen geografischen Standorten befinden können. Darüber hinaus kann eine Datei aus Daten bestehen, die gemeinsam oder in Teilen aus einem Speicher an einen anderen Speicher übertragen werden. Eine Datei kann z. B. aus einer Sammlung von Dateien oder aus einer gesamten oder einem Teil einer Datenbank stehen.
  • Die Anweisungen 116 können ein beliebiger Satz von Anweisungen sein, die durch den Prozessor 112 oder ein sonstiges Computergerät auszuführen sind. Insofern können die hierin verwendeten Begriffe „Anweisungen”, „Schritte” und „Programme” austauschbar verwendet werden. Die Anweisungen können in Object Code Format zur sofortigen Verarbeitung durch den Prozessor oder in einer anderen Computergerätesprache gespeichert werden, die Skripte oder Sammlungen von unabhängigen Quellcode-Modulen beinhaltet, die auf Anforderung interpretiert oder vorab kompiliert werden. Funktionen, Verfahren und Routinen der Anweisungen werden unten ausführlicher erklärt. Der Prozessor 112 kann jeder herkömmliche Prozessor sein, wie eine im Handel erhältliche CPU. Alternativ kann der Prozessor eine dedizierte Komponente wie ein ASIC oder ein anderer hardwarebasierter Prozessor sein.
  • Die Daten können gemäß den Anweisungen 116 durch das Computergerät 110 abgerufen, gespeichert oder verändert werden. So können beispielsweise, obwohl der hierin beschriebene Gegenstand nicht durch eine beliebige bestimmte Datenstruktur beschränkt ist, die Daten in Computerregistern, in einer relationalen Datenbank als Tabelle, die viele verschiedene Felder und Datensätze aufweist oder XML-Dokumenten gespeichert werden. Die Daten können außerdem in einem beliebigen computergerätlesbaren Format wie, aber nicht beschränkt auf, Binärwerten, ASCII oder Unicode formatiert sein. Des Weiteren können die Daten beliebige Informationen umfassen, die ausreichend sind, um die relevanten Informationen zu identifizieren, wie Zahlen, beschreibenden Text, proprietäre Codes, Zeiger, Referenzen auf Daten, die in anderen Speichern wie anderen Netzwerkstandorten gespeichert sind oder Informationen, die von einer Funktion verwendet werden, um die relevanten Daten zu berechnen, umfassen.
  • Das Computergerät 110 kann sich an einem Knoten eines Netzwerks 160 befinden und entweder direkt oder indirekt mit anderen Knoten des Netzwerks 160 kommunizieren können. Obwohl nur einige Computergeräte in 1 dargestellt sind, kann ein typisches System eine große Anzahl verbundener Computergeräte beinhalten, wobei sich jedes unterschiedliche Computergerät an einem unterschiedlichen Knoten des Netzwerks 160 befindet. Das Netzwerk 160 und dazwischenliegende Knoten, die hierin beschrieben sind, können unter Verwendung verschiedener Protokolle und Systeme vernetzt sein, sodass das Netzwerk Teil des Internets, Word Wide Web, spezifischer Intranets, Langstreckennetze oder lokaler Netzwerke sein kann. Das Netzwerk kann Standardkommunikationsprotokolle, wie Ethernet, WLAN und HTTP, Protokolle, die proprietär für ein oder mehrere Unternehmen sind und verschiedene Kombinationen der vorstehenden nutzen. Als ein Beispiel kann Computergerät 110 ein Webserver sein, der imstande ist, mit Computergeräte 120 über das Netzwerk 160 zu kommunizieren. Das Computergerät 120 kann ein Client-Computergerät sein und Server 110 kann Informationen unter Verwendung eines Netzwerks 160 anzeigen und einem Benutzer 125 von Vorrichtung 120 über ein Display 122 Informationen bereitstellen. Obwohl bestimmte Vorteile erzielt werden, wenn Informationen wie oben beschrieben übertragen oder empfangen werden, sind andere Aspekte des hierin beschriebenen Gegenstands nicht auf eine bestimmte Art der Übertragung von Informationen beschränkt.
  • Das Computergerät 120 kann ähnlich dem Server 110 mit einem Prozessor, Speicher und Anweisungen wie oben beschrieben konfiguriert sein. Das Computergerät 120 kann ein persönliches Computergerät sein, das zur Verwendung durch einen Benutzer vorgesehen ist und das alle Bauteile beinhalten kann, die üblicherweise in Verbindung mit einem persönlichen Computergerät verwendet werden, z. B. eine zentrale Verarbeitungseinheit (CPU), einen Speicher, der Daten und Anweisungen speichert, eine Anzeige wie Anzeige 122 (z. B. einen Monitor mit einem Bildschirm, einem berührungsempfindlichen Bildschirm, einem Projektor, einem Fernseher oder einem anderen Gerät, das zur Anzeige von Informationen betrieben werden kann), sowie einem Eingabegerät 124 (z. B. einer Maus, einer Tastatur, einem Berührungsbildschirm, einem Mikrofon usw.). Das Computergerät 120 kann außerdem ein mobiles Computergerät enthalten, das Daten drahtlos über ein Netzwerk wie das Internet mit einem Server austauschen kann. Nur beispielhaft kann Computergerät 120 ein Mobiltelefon oder eine Vorrichtung wie ein funkfähiger PDA, ein Tablet-PC, ein tragbares Computergerät oder ein Netbook sein, die in der Lage sind, Informationen über das Internet abzurufen. Die Vorrichtung kann konfiguriert sein, mit einem Betriebssystem wie Googles Betriebssystem Android, Microsoft Windows oder Apple iOS zu funktionieren. Computergeräte gemäß den hierin beschriebenen Systemen und Verfahren können andere Vorrichtungen beinhalten, die imstande sind, Instruktionen zu verarbeiten und Daten an und von Menschen und/oder anderen Computer, einschließlich Netzwerkcomputern, denen eine lokale Speichermöglichkeit fehlt und Set-Top-Boxen für Fernseher, zu übertragen. Beispielverfahren
  • Im Folgenden werden Operationen entsprechend vielfältigen Aspekten der Erfindung beschrieben. Es sollte sich verstehen, dass die folgenden Operationen nicht in der nachstehend beschriebenen genauen Reihenfolge durchgeführt werden müssen. Vielmehr können verschiedene Schritte in beliebiger Reihenfolge oder auch gleichzeitig gehandhabt werden.
  • Eine erste virtuelle Maschine kann durch virtuelles Booten eines Betriebssystems, z. B. eines Betriebssystems, das sich vom Betriebssystem der virtuellen Maschine unterscheidet, in den Speicher des Hostrechners geladen werden. Nur als Beispiel und wie in 1 gezeigt, kann der Prozessor 112 auf einem Linux-Server 110 auf den externen Speicher 150 zugreifen und das Image-Disk A 152 auslesen, wobei das Image-Disk A Daten vom gleichen Typ enthält, wie sie ein physisches Gerät von einem Festplattenlaufwerk auslesen würde, um ein Betriebssystem zu booten. Das Image-Disk A kann z. B. die gleichen Daten enthalten, wie sie auf der Festplatte eines persönlichen Computers gespeichert sind, der beim Hochfahren Windows 7 booten soll. Zu den Anweisungen 116 kann ein Hypervisor gehören, der ein virtuelles Festplattenlaufwerk (VHD) 186 erstellt, das anfänglich im Wesentlichen den Daten entspricht, die im Image-Disk A enthalten sind. Der Hypervisor kann dann virtuell ein Betriebssystem booten (z. B. das Betriebssystem A 184), indem er Dateien vom VHD ausführt und die daraus resultierenden Daten und Prozesse des Betriebssystems 184 im Host-RAM 119 speichert. Wie bereits weiter oben angemerkt, ist das System nicht auf einen einzigen Speichertyp beschränkt. Obwohl VHD 186 in 1 so veranschaulicht wird, dass sie in den Host-RAM geladen wird, können entweder alle oder ein Teil der in der VHD enthaltenen Daten außerhalb des Host-RAMs gespeichert werden, z. B. auf einem physischen Festplattenlaufwerk des Servers 110.
  • Unter gewissen Umständen können eine oder mehrere Anwendungen automatisch zusammen mit dem Betriebssystem geladen werden. Die virtuelle Maschine kann z. B. einen Computer emulieren, auf dem Windows 7 und SQL Server laufen. In diesem Beispiel können auch Anwendungen „A” 182 in das RAM 119 von VHD 186 geladen werden.
  • Nachdem die virtuelle Maschine vollständig oder teilweise erstellt wurde, kann der Prozessor eine Kopie der Teile des physischen Speichers des Hosts erstellen, die Teile der virtuellen Maschine speichern. Zum Beispiel kann, nachdem das virtuelle Betriebssystem A virtuell gebootet und Anwendungen A geladen und ausgeführt wurden, der Prozessor 112 eine Momentaufnahme der Werte machen, die unter den Adressen des Host-RAM 119 gespeichert sind, die von den VHD 186, dem virtuellen Betriebssystem A und den Anwendungen A belegt werden. Obwohl im Rest dieser Darstellung davon ausgegangen wird, dass das Image der virtuellen Maschine in diesem Stadium erzeugt wird, kann das Image einer virtuellen Maschine auch zu anderen Zeitpunkten erstellt werden, z. B., und nur als Beispiel, nachdem das virtuelle Betriebssystem den Bootprozess begonnen hat, jedoch bevor das virtuelle Betriebssystem vollständig gebootet hat, nachdem das virtuelle Betriebssystem gebootet wurde und bevor die Anwendungen geladen wurden; nachdem die Anwendungen geladen wurden, jedoch vor Beginn der Ausführung der Anwendungen, sowie sonstige Stadien, bei denen die virtuelle Maschine mit einiger Wahrscheinlichkeit in einen Zustand versetzt wird, der zukünftige Ladezeiten verringert und der die Präferenzen des Benutzers wiedergibt. Darüber hinaus können u. U. nicht alle der in den Speicher geladenen Komponenten der virtuellen Maschine in dem Image enthalten sein. Das Image der virtuellen Maschine kann z. B. VHD 186 ausschließen.
  • Die Kopie des Images der virtuellen Maschine kann zum späteren Abrufen gespeichert werden. Das Image 156 der virtuellen Maschine, das ein Image der virtuellen Maschine A („VM-A”) 180 ist, kann z. B. in dem externen Speicher 150 zum späteren Zugriff durch den Server 110 gespeichert werden.
  • Sobald das Image der ersten virtuellen Maschine gespeichert wurde, kann der Prozess für eine weitere virtuelle Maschine wiederholt werden. Der Prozessor 112 kann z. B. den Server 110 veranlassen, auf den externen Speicher 150 zuzugreifen und das Image-Disk B 154 zu laden. Das Image-Disk B kann Daten vom selben Typ enthalten, wie sie ein physisches Gerät von einem Festplattenlaufwerk laden würde, um ein Betriebssystem zu booten, wie z. B. das Betriebssystem B. Beispielsweise könnte das Betriebssystem B Windows 8 sein und die virtuelle Maschine B („VM-B”) könnte auf diesem Betriebssystem eine Kopie von Visual Studio laufen lassen. Das Image von VMB kann erstellt und als Image 158 im Speicher 150 gespeichert werden.
  • Unterschiede zwischen den beiden Images der virtuellen Maschine lassen sich dann ermitteln. In vielen Fällen wird es zwischen den Images der virtuellen Maschinen weniger Unterschiede geben als zwischen den Image-Disks, aus denen sie erstellt wurden. Solange die Dateien z. B. auffindbar sind, können die verschiedenen Dateien eines Betriebssystems und der Anwendungen physisch an beliebiger Stelle auf einem Plattenlaufwerk gespeichert sein, und somit auch an beliebiger Stelle des Disk-Images. Darüber hinaus kann, selbst wenn zwei verschiedene zu emulierende physische Maschinen dasselbe Betriebssystem haben, jede Maschine über unterschiedliche Anwendungskonfigurationen und Einstellungen verfügen, in denen die Gliederung ihrer Plattenlaufwerke sich erheblich unterscheidet. Andererseits können viele Betriebssysteme, wenn sie während des Bootprozesses einmal in den Speicher geladen wurden, hinsichtlich der Speicherzuordnung relativ konsistent sein. Zum Beispiel können die Betriebssysteme unabhängig von dem Ort, an dem die Dateien auf der Platte gespeichert sind, und unabhängig von der genauen physischen Maschine, auf der das OS läuft, trotzdem den Kernel an einen weitgehend festen Ort laden, die gleichen Gerätetreiber in der gleichen Reihenfolge initialisieren und in der Anwendungsschicht Speicher in der gleichen Weise zuweisen.
  • 2 stellt ein Diagramm der möglichen Unterschiede zwischen den Image-Disks und dem Image der oben beschriebenen virtuellen Maschinen dar. Bei den Image-Disks A und B 201–02 kann davon ausgegangen werden, dass sie eine Reihe von Sektoren einschließen, die Datensequenzen unter bestimmten Adressen enthalten. Die Länge der Boxen mit der Bezeichnung „dd” in der Darstellung 203 gibt das Ausmaß der Unterschiede zwischen den jeweiligen Sektoren der beiden Image-Disks wieder. Auch wenn sich die Betriebssysteme auf den beiden Disks z. B. stärker unterscheiden mögen, kann der Ort, an dem die jeweiligen Informationen im ersten Sektor von Image-Disk A und im ersten Sektor von Image-Disk B gespeichert sind, relativ groß sein, wie durch die relative Länge des Blocks ddl dargestellt wird. (Der Größenvergleich soll lediglich der Veranschaulichung dienen.)
  • Die von den Image-Disks gebooteten Images der virtuellen Maschinen A und B mögen sich voneinander weniger unterscheiden als die Image-Disks. Ähneln sich z. B. Betriebssystem A und Betriebssystem B der Images der virtuellen Maschinen 204–05, kann die Speicherzuordnung im RAM typischerweise sehr ähnlich sein, mit dem Ergebnis relativ geringer Unterschiede, wie im vmdl in Schaubild 206 dargestellt. Wenn jedes Betriebssystem in der Folge die gleiche Anwendung al lädt, beginnend an derselben Adresse im RAM, kann der Unterschied zwischen den Images der Anwendungen sogar noch geringer ausfallen. Wenn jedes Betriebssystem dann eine andere Anwendung in den Speicher lädt, z. B. Anwendung a2 und Anwendung a3, können die Unterschiede vmd3 zwar vergleichsweise groß ausfallen, insgesamt wird es aber relativ wenige Unterschiede zwischen den Images der virtuellen Maschinen im Vergleich zu den Image-Disks geben.
  • Ein Satz Unterschiede, die zwischen den beiden Images der virtuellen Maschinen ermittelt werden, können zum späteren Gebrauch gespeichert werden usw. Beispielsweise kann ein binärer Diff-Algorithmus, z. B. bsdiff oder Googles Courgette, dafür verwendet werden, eine Datei zu erzeugen, in der die unterschiedlichen Adressen angegeben werden, in denen sich die beiden Images der virtuellen Maschinen unterscheiden, wenn sie im RAM des Host-Gerätes gespeichert werden. Die Differenzdatei kann die Werte von entweder einer oder aus beiden Images der virtuellen Maschinen an diesen Adressen angeben. Zur Veranschaulichung werde die Differenzdatei 159 betrachtet, in der nur diejenigen Adressen gespeichert sind, an denen sich das Image der virtuellen Maschine A 156 und das Image der virtuellen Maschine B 158 unterscheiden, sowie der Wert des Images der virtuellen Maschine B an dieser Adresse.
  • Die Differenzdatei kann dazu verwendet werden, die eine virtuelle Maschine gegen die andere auszutauschen. Zum Beispiel kann VM-A eine relativ beliebte Konfiguration aus Betriebssystem und Anwendung darstellen und somit vom VMA-Image 156 vorsorglich in das RAM 119 geladen werden, falls ein Endnutzer eine virtuelle Maschine mit dieser Konfiguration anfordert.
  • Das System kann in der Folge eine Anforderung erhalten, eine andere virtuelle Maschine zu laden als die gegenwärtig in das Host-Gerät geladene. Zum Beispiel kann der Nutzer 125 eine Anfrage an den Server 110 senden, um auf eine virtuelle Maschine mit der Konfiguration von VM-B zuzugreifen. Als Reaktion auf eine solche Anforderung kann der Prozessor 112 beim externen Speicher 150 anfragen, ob dieser eine Differenzdatei zur Umwandlung der gegenwärtig geladenen virtuellen Maschine (VM-A) in die neuerdings angeforderte virtuelle Maschine (VM-B) enthält. Falls nicht, kann der Server 110 eine vollständige Momentaufnahme laden, von der aus die neuerdings angeforderte virtuelle Maschine gebootet wird, oder ggf. das Image einer bereits gebooteten virtuellen Maschine.
  • In dem Beispiel in 1 ermittelt der Server eine Differenzdatei, die zum Austausch der gegenwärtig gespeicherten virtuellen Maschine gegen die neuerdings angeforderte virtuelle Maschine verwendet werden kann, z. B. VM Differenzdatei 159. Daher kann der Server 110, anstatt das gesamte Image der virtuellen Maschine B 158 neu zu laden, die Differenzdatei 159 laden und die in der Datei enthaltenen Informationen dazu verwenden, nur diejenigen Teile des Speichers 119 zu ändern, die für die Konvertierung des Images der virtuellen Maschine A in das Image der virtuellen Maschine B erforderlich sind.
  • Nachdem die Änderungen erfolgt sind, ist die neuerdings angeforderte virtuelle Maschine ggf. einsatzbereit für den Benutzer 125. Der Benutzer 125 kann z. B. die Eingabe 124 und die Anzeige 122 des monetären Computergerätes 120 verwenden, um über das Netzwerk 160 mit der virtuellen Maschine B zu kommunizieren.
  • Das System kann mehrere Differenzdateien enthalten, die verschiedene Paare von Konversionen virtueller Maschinen darstellen. Das System kann z. B., wie im oberen Diagramm in 3 gezeigt und weiter oben erklärt, eine Differenzdatei 159 für die Konvertierung von VM-A 310 in VM-B 330 speichern. Das System kann auch eine zweite Differenzdatei 340 zur Konvertierung der im Speicher gespeicherten virtuellen Maschine von VM-B 330 in VM-A 310 speichern. Weitere Differenzdateien können zur Konvertierung anderer virtueller Maschinen ebenfalls gespeichert werden, z. B. von VM-A in eine dritte virtuelle Maschine, die sich von VM-B unterscheidet, oder zur Konvertierung von einer damit nicht zusammenhängenden vierten virtuellen Maschine in eine damit in keiner Beziehung stehenden fünfte virtuelle Maschine.
  • In manchen Aspekten kann das System eine virtuelle Maschine durch eine andere ersetzen, indem zuerst eine virtuelle Maschine geladen wird, die weder die gegenwärtig geladene virtuelle Maschine noch die zuletzt angeforderte virtuelle Maschine ist. Zum Beispiel kann das System, wie in 4 gezeigt, zwei Differenzdateien enthalten: die Datei 159, die die zu ändernden Speicherwerte darstellt, um den Speicher von VM-A 310 in VM-B 330 umzuwandeln, und die Datei 420, die die zu ändernden Speicherwerte darstellt, um VM-B durch die virtuelle Maschine C („VM-C”) 440 zu ersetzen. In dieser Hinsicht kann das System, wenn es eine Anfrage empfangt, die auf dem Server 110 gehostete virtuelle Maschine von VM-A in VM-C ändern, und wenn das System erkennt, dass es über keine Differenzdatei zwischen VM-A und VM-C verfügt, bestimmen, ob es irgendwelche anderen Differenzdateien vergleichen kann, um die Konversion durchzuführen. Das System kann z. B. überprüfen, ob es zwei oder mehr Differenzdateien gibt, die nacheinander angewendet werden können, um das gewünschte Image zu erhalten. In dieser Hinsicht kann das System nach der Ermittlung der Dateien 320 und 420 zunächst VM-A in den Speicher laden, die Differenzdatei 320 anwenden, um eine Kopie von VM-B zu erhalten, und dann die Differenzdatei 420 anwenden, um eine Kopie von VMC zu erhalten. Dieser Aspekt kann besonders vorteilhaft sein, wenn verschiedene Versionen desselben Betriebssystems geladen werden, z. B. das Durchprobieren früherer Versionen eines Betriebssystems durch Anwendung der entsprechenden Differenzdatei zwischen jeder Version, bis die gewünschte Version in den Speicher geladen ist.
  • In einem weiteren Aspekt kann das System automatisch Dateien ermitteln und erzeugen, in denen die Unterschiede zwischen Images virtueller Maschinen gespeichert sind. Beispielsweise kann das System 100 hunderte verschiedener Images virtueller Maschinen speichern. Das System 100 kann die beliebtesten Images ermitteln, indem es die Häufigkeit verfolgt, mit der diese angefordert werden. Das System kann dann automatisch Differenzdateien erzeugen, indem es eine bestimmte Anzahl Paare der beliebtesten Images virtueller Maschinen auswählt. Das System kann des Weiteren die beliebtesten Übergängen zwischen Images virtueller Maschinen verfolgen. Das System kann z. B. für jedes gegebene Image einer virtuellen Maschine eine Differenzdatei zwischen diesem Image und demjenigen Image erstellen, das nach dem jeweiligen Image mit der größten Wahrscheinlichkeit geladen wird.
  • Wie oben angemerkt, läuft auf der ersten und zweiten virtuellen Maschine nicht dasselbe Betriebssystem. VM-A kann z. B. einen persönlichen Computer emulieren, auf dem Windows 8 läuft, der von einem einzelnen Benutzer genutzt werden soll, und VM-B kann einen Linux-Internetserver emulieren.
  • Obwohl der größte Teil der obigen Beschreibung die meisten Prozesse so beschreibt, dass sie auf demselben Host-Server 110 laufen, kann der Prozess mithilfe verschiedener Speicher auf unterschiedlichen Computergeräten ablaufen. VM-A kann z. B. an einem Netzwerkknoten 160 erstellt und gespeichert und das resultierende Image der virtuellen Maschine an einem zweiten Knoten gespeichert werden; VM-B kann an einem dritten Knoten erstellt und gespeichert und das resultierende Image der virtuellen Maschine an einem vierten Knoten gespeichert werden; der Vergleich der Images kann an einem fünften Knoten erfolgen und an einem sechsten Knoten gespeichert werden usw.
  • 5 ist ein Fließdiagramm einiger der oben beschriebenen Prozesse. Am Block 501 wird die erste virtuelle Maschine (VM-A) gebootet. Am Block 502 wartet das System darauf, bis VM-A bereit ist und, sobald sie bereit und am Block 503 ist, wird ein Image von VM-A gespeichert. Am Block 503 wird die erste virtuelle Maschine B (VM-B) gebootet. Am Block 504 wartet das System darauf, dass VM-B bereit ist und, sobald sie bereit und am Block 506 ist, wird ein Image von VM-B gespeichert. An den Blöcken 507–08 werden die Unterschiede zwischen dem Image von VM-A und dem Image von VM-B ermittelt und gespeichert. Am Block 509 wird das Image von VM-A geladen. Eine Anforderung für VM-B geht ein (Block 510) und die Differenzdatei zwischen den Images von VM-A und VM-B wird ermittelt (Block 511). Am Block 512 werden die in der Differenzdatei ermittelten Unterschiede auf das im Speicher befindliche Image von VM-A angewendet, und am Block 514 erhält der Anforderer Zugriff auf VM-B, die sich jetzt anstelle von VM-A im Speicher befindet. Die Anforderung kann von einem Endnutzer oder von einem weiteren Gerät stammen, der/das die von VM-B bereitgestellten Dienste benötigt.
  • Da diese und weitere Variationen und Kombinationen der vorstehend erörterten Merkmale zur Anwendung kommen können, ohne sich von der Erfindung laut Definition in den Ansprüchen zu entfernen, ist die vorstehende Beschreibung der Ausführungsformen als Veranschaulichung aufzufassen und nicht zur Einschränkung der durch die Ansprüche definierten Erfindung. Es versteht sich darüber hinaus, dass die Bereitstellung von Beispielen der Erfindung (sowie auch Teilsätze, die mit Begriffen wie „wie etwa”, „z.°B.”, „einschließlich” und dergleichen formuliert werden) nicht als Einschränkung der Erfindung auf diese Beispiele zu verstehen ist; vielmehr sollen diese Beispiele lediglich dazu dienen, einige der vielen möglichen Aspekte zu veranschaulichen.

Claims (14)

  1. System, das Folgendes umfasst: einen oder mehrere Prozessor(en); und einen Speicher, der Daten und Anweisungen speichert, wobei die Anweisungen durch den Prozessor ausführbar sind; worin die Daten ein erstes Image umfassen, die eine erste virtuelle Maschine mit einem ersten Betriebssystem darstellen, das den virtuellen Bootprozess zumindest begonnen hat; und worin die Anweisungen Folgendes umfassen: das Zugreifen auf eine Datei, die die Unterschiede zwischen dem ersten Image und einem zweiten Image einer zweiten virtuellen Maschine mit einem zweiten Betriebssystem angibt, das den virtuellen Bootprozess zumindest begonnen hat; und das Ändern des ersten Images entsprechend der Datei.
  2. System nach Anspruch 1, worin die Anweisungen des Weiteren das Empfangen einer Anfrage beinhalten, nach der der Speicher eine zweite virtuelle Maschine speichern und als Reaktion darauf das Image der ersten virtuellen Maschine ändern soll.
  3. System nach Anspruch 1, worin die Anweisungen ferner Folgendes umfassen: das Empfangen einer Anfrage, nach der das System Zugriff auf eine dritte virtuelle Maschine gewähren soll, wobei die Anforderung empfangen wird, bevor das erste Image verändert wird; das Zugreifen auf eine zweite Datei, die die Unterschiede zwischen dem zweiten Image und einen dritten Image einer dritten virtuellen Maschine mit einem dritten Betriebssystem angibt; und nach dem Ändern des ersten Images das Ändern des zweiten Images entsprechend der zweiten Datei.
  4. System nach Anspruch 1, worin das erste Image die erste virtuelle Maschine mit dem ersten Betriebssystem darstellt, das vollständig gebootet ist und eine Anwendung geladen hat.
  5. System nach Anspruch 1, worin das erste Betriebssystem und das zweite Betriebssystem dasselbe Betriebssystem sind und worin das erste Image das Image einer Anwendung ist, die das zweite Image nicht enthält.
  6. System nach Anspruch 1, worin das erste Betriebssystem und das zweite Betriebssystem unterschiedliche Versionen desselben Betriebssystems sind.
  7. System nach Anspruch 3, worin das Anfordern über ein Netzwerk von einem Endbenutzer empfangen wird und die Anweisungen des Weiteren die Erlaubnis an den Endbenutzer beinhalten, die zweite virtuelle Maschine zu benutzen.
  8. System, das Folgendes umfasst: einen oder mehrere Prozessor(en); und Speicher, der Anweisungen speichert, wobei die Anweisungen durch den Prozessor ausführbar sind; worin die Anweisungen Folgendes umfassen: das Erstellen einer ersten virtuellen Maschine und das Speichern eines ersten Images der ersten virtuellen Maschine auf Basis der mit der ersten virtuellen Maschine verbundenen Speicherwerte; das Erstellen einer zweiten virtuellen Maschine und das Speichern eines zweiten Images der zweiten virtuellen Maschine auf Basis der mit der zweiten virtuellen Maschine verbundenen Speicherwerte; das Erstellen einer dritten virtuelle Maschine und das Speichern eines dritten Images der dritten virtuellen Maschine auf Basis der mit der dritten virtuellen Maschine verbundenen Speicherwerte; das Vergleichen des ersten Images und des zweiten Images zur Erstellung des ersten Satzes Unterschiede zwischen den Images; das Vergleichen des zweiten Images und des dritten Images zur Erstellung eines zweiten Satzes Unterschiede zwischen den Images; Erstellung einer Kopie der ersten virtuellen Maschine auf der Basis des ersten Images und abspeichern der Kopie im Speicher; das Ändern der Kopie der ersten virtuellen Maschine entsprechend dem ersten Satz Unterschiede; und das Ändern der geänderten Kopie der ersten virtuellen Maschine entsprechend dem zweiten Satz Unterschiede.
  9. System nach Anspruch 8, worin das Erstellen einer virtuellen Maschine das Booten eines virtuellen Betriebssystems umfasst.
  10. System nach Anspruch 8, worin das Speichern des ersten Images des Weiteren das Speichern des ersten Images umfasst, bevor das Betriebssystem der ersten virtuellen Maschine vollständig gebootet hat.
  11. System nach Anspruch 8, worin die Anweisungen des Weiteren das Empfangen einer Aufforderung zum Erkennen der dritten virtuellen Maschine und das Erkennen des ersten und zweiten Satzes Unterschiede auf Basis der Erkennung der dritten virtuellen Maschine in der Aufforderung umfassen.
  12. System nach Anspruch 11, worin das Erkennen des ersten und zweiten Satzes von Unterschieden auf Basis des Erkennens der dritten virtuellen Maschine das Ermitteln umfasst, ob der Prozessor Zugriff auf einen Satz Unterschiede zwischen dem ersten Image und dem dritten Image hat, ohne Rücksicht auf den zweiten Satz Unterschiede.
  13. System nach Anspruch 8, worin die Anweisungen des Weiteren das Erkennen der ersten, zweiten und dritten zu erstellenden virtuellen Maschine auf Basis der Häufigkeit umfassen, mit der jede der virtuellen Maschinen angefordert wird.
  14. System nach Anspruch 8, worin die Anweisungen des Weiteren das Erkennen der ersten, zweiten und dritten virtuellen Maschine zum Erstellen auf Basis der Häufigkeit umfassen, mit der eine virtuelle Maschine nach der anderen geladen wurde.
DE202015009296.9U 2014-07-24 2015-06-29 System zum Laden virtueller Maschinen Active DE202015009296U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/339,952 2014-07-24
US14/339,952 US9639340B2 (en) 2014-07-24 2014-07-24 System and method of loading virtual machines

Publications (1)

Publication Number Publication Date
DE202015009296U1 true DE202015009296U1 (de) 2017-01-26

Family

ID=55163520

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202015009296.9U Active DE202015009296U1 (de) 2014-07-24 2015-06-29 System zum Laden virtueller Maschinen

Country Status (5)

Country Link
US (1) US9639340B2 (de)
EP (1) EP3137998B1 (de)
CN (1) CN106462442B (de)
DE (1) DE202015009296U1 (de)
WO (1) WO2016014217A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160125059A1 (en) 2014-11-04 2016-05-05 Rubrik, Inc. Hybrid cloud data management system
CN107577518B (zh) * 2017-09-14 2021-05-04 郑州云海信息技术有限公司 一种虚拟机部署方法及装置
US11334438B2 (en) 2017-10-10 2022-05-17 Rubrik, Inc. Incremental file system backup using a pseudo-virtual disk
US11372729B2 (en) 2017-11-29 2022-06-28 Rubrik, Inc. In-place cloud instance restore
US10795688B2 (en) * 2018-07-23 2020-10-06 Datto, Inc. System and method for performing an image-based update
US11307888B2 (en) * 2020-02-26 2022-04-19 Red Hat, Inc. Managing host hardware configuration for virtual machine migration

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8209680B1 (en) * 2003-04-11 2012-06-26 Vmware, Inc. System and method for disk imaging on diverse computers
US20070094659A1 (en) * 2005-07-18 2007-04-26 Dell Products L.P. System and method for recovering from a failure of a virtual machine
US7496613B2 (en) 2006-01-09 2009-02-24 International Business Machines Corporation Sharing files among different virtual machine images
EP1962192A1 (de) 2007-02-21 2008-08-27 Deutsche Telekom AG Verfahren und System zur transparenten Migration des Speichers einer virtuellen Maschine
JP2010522370A (ja) * 2007-03-20 2010-07-01 サンギュ イ 移動型仮想マシンイメージ
US8365167B2 (en) * 2008-04-15 2013-01-29 International Business Machines Corporation Provisioning storage-optimized virtual machines within a virtual desktop environment
WO2009143124A1 (en) * 2008-05-20 2009-11-26 Citrix Systems, Inc. Methods and systems for patching multiple disk images derived from a common base disk image
US8135930B1 (en) 2008-07-14 2012-03-13 Vizioncore, Inc. Replication systems and methods for a virtual computing environment
US8099391B1 (en) * 2009-03-17 2012-01-17 Symantec Corporation Incremental and differential backups of virtual machine files
US20110131330A1 (en) * 2009-12-02 2011-06-02 International Business Machines Corporation Collocating desktop virtual machines to proximity of the user
US20110252208A1 (en) * 2010-04-12 2011-10-13 Microsoft Corporation Express-full backup of a cluster shared virtual machine
US8595722B2 (en) * 2010-10-14 2013-11-26 International Business Machines Corporation Preprovisioning virtual machines based on request frequency and current network configuration
JP5681465B2 (ja) * 2010-12-02 2015-03-11 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 情報処理システム、情報処理装置、準備方法、プログラムおよび記録媒体
US8959511B2 (en) * 2010-12-14 2015-02-17 Microsoft Corporation Template virtual machines
US9038066B2 (en) * 2010-12-22 2015-05-19 Vmware, Inc. In-place snapshots of a virtual disk configured with sparse extent
US9311328B2 (en) * 2011-04-22 2016-04-12 Veritas Us Ip Holdings Llc Reference volume for initial synchronization of a replicated volume group
US9785523B2 (en) 2011-06-20 2017-10-10 Microsoft Technology Licensing, Llc Managing replicated virtual storage at recovery sites
US9104331B2 (en) 2012-09-28 2015-08-11 Emc Corporation System and method for incremental virtual machine backup using storage system functionality
US9164790B2 (en) * 2012-06-07 2015-10-20 Red Hat Israel, Ltd. Live virtual machine template creation
US9015530B2 (en) 2012-06-26 2015-04-21 Phani Chiruvolu Reliably testing virtual machine failover using differencing disks
US8983961B2 (en) * 2012-11-29 2015-03-17 International Business Machines Corporation High availability for cloud servers
US9058299B2 (en) 2013-01-08 2015-06-16 Red Hat Israel, Ltd. Efficient copying between storage devices

Also Published As

Publication number Publication date
US9639340B2 (en) 2017-05-02
US20160026485A1 (en) 2016-01-28
EP3137998A4 (de) 2017-12-27
WO2016014217A1 (en) 2016-01-28
WO2016014217A8 (en) 2016-12-01
EP3137998A1 (de) 2017-03-08
EP3137998B1 (de) 2023-10-25
CN106462442B (zh) 2020-04-10
CN106462442A (zh) 2017-02-22

Similar Documents

Publication Publication Date Title
DE202015009296U1 (de) System zum Laden virtueller Maschinen
DE112018000193B4 (de) Daten sequenziell in Zonen in einem verstreuten Speichernetzwerk speichern
DE112011104356B4 (de) Aktualisieren von Software-Images auf der Grundlage von Streaming-Technik
DE112012000693B4 (de) Ausführen einer Vielzahl von Instanzen einer Anwendung
DE60313108T2 (de) Verfahren und System zur Steuerung auf PXE basierender Bootentscheidungen von einem Netzwerkstrategieverzeichnis
DE112012000635T5 (de) Dynamische Speicherverwaltung in einer virtualisierten Datenverarbeitungsumgebung
DE102009023953A1 (de) Verfahren zum Booten eines zustandslosen Client
DE202015009875U1 (de) Transparente Entdeckung eines semistrukturierten Datenschemas
DE112018006769B4 (de) Erweiterte zwischenspeicherzuweisung basierend auf virtuellen knotenressourcen
DE102012218269B4 (de) Schnittstelle zur Verwaltung von Datenverschiebung in einem Speichersystem mit thin provisioning
DE202013012495U1 (de) Metadatenbasierte virtual Maschine-Konfiguration
DE102013215009A1 (de) Verfahren und System zur Optimierung der Datenübertragung
DE112010004931T5 (de) Mehrphasige Wiederherstellung von Dateisystemen mit SelektiverBedarfsweiser Verfügbarkeit von Daten(
DE202014010938U1 (de) Omega-Namen: Namenserzeugung und -ableitung
DE102017104073B4 (de) Verallgemeinertes Verifikationsverfahren für Schreiboperationen
DE112011102243T5 (de) Konfigurieren eines Computersystems für die Installation von Softwarepaketen
DE102012220201A1 (de) Verfahren und System zur Bildimplementierung in einer Cloud-Umgebung
DE112012004247T5 (de) Passives Überwachen virtueller Systeme unter Verwendung einer erweiterbaren Indexierung
DE102021125179A1 (de) Erzeugen und bereitstellen von containerabbildern
DE102012218699A1 (de) Passives überwachen virtueller systeme mittels agentenlosem offline-indexieren
DE112014000340T5 (de) Vorablesezugriff auf Daten für einen Chip mit einem übergeordneten Kern und einem Scout-Kern
DE112020003929T5 (de) Verwaltung von metadaten von virtuellen speichern
DE112018002955T5 (de) Kognitive datei- und objektverwaltung für verteilte speicherumgebungen
DE102021125630A1 (de) Datensynchronisation in einem datenanalysesystem
DE102012221261A1 (de) Verfahren zum Zwischenspeichern und System zum Ausführen des Verfahrens zum Zwischenspeichern zum Betreiben eines mindestens einen Host-Computer aufweisenden Computerserversystems

Legal Events

Date Code Title Description
R207 Utility model specification
R081 Change of applicant/patentee

Owner name: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUN, US

Free format text: FORMER OWNER: GOOGLE INC., MOUNTAIN VIEW, CALIF., US

R082 Change of representative

Representative=s name: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE

R150 Utility model maintained after payment of first maintenance fee after three years
R151 Utility model maintained after payment of second maintenance fee after six years
R152 Utility model maintained after payment of third maintenance fee after eight years