DE102012220201A1 - Verfahren und System zur Bildimplementierung in einer Cloud-Umgebung - Google Patents

Verfahren und System zur Bildimplementierung in einer Cloud-Umgebung Download PDF

Info

Publication number
DE102012220201A1
DE102012220201A1 DE102012220201A DE102012220201A DE102012220201A1 DE 102012220201 A1 DE102012220201 A1 DE 102012220201A1 DE 102012220201 A DE102012220201 A DE 102012220201A DE 102012220201 A DE102012220201 A DE 102012220201A DE 102012220201 A1 DE102012220201 A1 DE 102012220201A1
Authority
DE
Germany
Prior art keywords
data
image
images
commonality
blocks
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.)
Granted
Application number
DE102012220201A
Other languages
English (en)
Other versions
DE102012220201B4 (de
Inventor
Dirk Bolte
Thomas Pohl
Martin Troester
Herwig Elfering
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 DE102012220201A1 publication Critical patent/DE102012220201A1/de
Application granted granted Critical
Publication of DE102012220201B4 publication Critical patent/DE102012220201B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • 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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Television Signal Processing For Recording (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Processing Or Creating Images (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zur Bildimplementierung in einer Cloud-Umgebung (110), aufweisend wenigstens zwei Hosts (100a–100g), die mit wenigstens einer Platte (22) verbunden sind, wenigstens eine virtuelle Maschine (10), die durch Implementieren der Bilder (24a–24c) zu der Platte (22) geschaffen wird. Das Verfahren ist dadurch gekennzeichnet, dass ein Host (100a–100g) zum Implementieren eines zusätzlichen Bildes gemäß einem Implementierungsfaktor ausgewählt wird, der eine Gemeinsamkeits-Beziehung zwischen einem oder mehreren vorhandenen Basisbildern (26a–26c) in der Cloud-Umgebung (110) und dem zusätzlichen Bild darstellt.

Description

  • GEBIET DER ERFINDUNG
  • Die Erfindung betrifft ein Verfahren und ein System zur Bildimplementierung in einer Cloud-Umgebung, die wenigstens zwei Rosts aufweist, und insbesondere die Auswahl von Rosts für die Bildimplementierung während der Herstellung neuer virtueller Maschinen.
  • BESCHREIBUNG DES STANDES DER TECHNIK
  • Während der Herstellung einer virtuellen Maschine (VM) auf einem Host innerhalb einer Cloud-Umgebung besteht für gewöhnlich die Herausforderung, die entsprechende Bilddatei auf sehr schnelle Weise zu implementieren.
  • Virtuelle Maschinen sind auch als virtuelle Rosts oder Server bekannt. Rosts sind Computersysteme, die wenigstens eine CPU aufweisen; sie können auch eine lokale Platte aufweisen, dies muss jedoch nicht unbedingt sein. Sie können mit einem Netzwerk verbunden sein, wo sie über eine E/A-Infrastruktur ein gemeinsam genutztes Dateisystem auf wenigstens einer Netzwerkplatte nutzen können.
  • Typische Cloud-Angebote liefern einen Satz an vordefinierten Konfigurationen. Diese Konfigurationen sind innerhalb eines bestimmten Dateibildes einer virtuellen Platte zugeordnet. Das Erstellen eines solchen Bildes basierend auf einer vordefinierten Installation erfordert entweder das Ausführen einer vollständigen Installationsprozedur oder das Kopieren und spezielle Anpassen eines vorhandenen Bildes.
  • Ein weiterer Ansatz, dies zu erreichen, besteht in der Verwendung der so genannten Snapshot- oder Backing-File-Funktion, die für einige Bilddateiformate verfügbar ist: ein gemeinsames Basisbild wird schreibgeschützt („read-only”, RO) verwendet. Es wird ein neues Bild erstellt, das auf das Basisbild verweist. Nun wird jede Schreiboperation auf das neue Bild durchgeführt, während das Basisbild unverändert bleibt. Mit diesem Ansatz wird die Erstellungszeit von 10 Minuten bis auf einige wenige Sekunden verringert. Ein weiterer Vorteil dieses Ansatzes ist die reduzierte Platten- und Cache-Speicher-Verwendung, wenn viele Operationen an dem Basisbild an genau derselben Datei durchgeführt werden.
  • Um Funktionsübernahmen und Unabhängigkeit von Bildern von ihrem Host zu ermöglichen, werden gemeinsam genutzte Dateisysteme in Multi-Server-Umgebungen verwendet. Solch ein System führt keine sehr gute Skalierung durch, wenn z. B. ein einzelner Host parallel zehn virtuelle Maschinen betreiben kann, resultieren allein zehn Hosts einer solchen Konfiguration in einhundert virtuellen Maschinen, die zur selben Zeit auf dasselbe gemeinsam genutzte Dateisystem zugreifen. Das Zugriffsmuster von einhundert virtuellen Maschinen, die parallel laufen, entspricht wahlfreiem Zugriff (random access), wodurch reguläre Non-Flash-Platten veranlasst werden, die ganze Zeit über vor und zurück zu suchen.
  • Dementsprechend muss die Konfiguration die E/A-Operationen so weit wie möglich reduzieren, um dort wo möglich Zugriffe auf die Platte zu verhindern. Obgleich Flash-Einheiten der Auswirkung der Suchzeit nicht so deutlich gegenüberstehen wie herkömmliche Festplatten, ist es immer noch wünschenswert, wann immer möglich Zugriffe auf die Platte zu verhindern, so beispielsweise um die Lebensdauer des Flash-Chips zu verlängern. Eine einfache Lösung für dieses Problem ist die Verwendung größerer Cache-Speicher und die Konsolidierung der Schreiboperationen.
  • Die von einem Betriebssystem (OS) benutzte Heuristik, welche Daten in einem Cache-Speicher gehalten werden sollen, hängt von vielen Faktoren ab. Dennoch kann eine falsche Verwendung einer virtuellen Maschine, was zu aufwändigen Eingabe-/Ausgabeoperationen führt, möglicherweise die Umgebung zerstören, da Cache-Speicher möglicherweise für andere Tasks verwendet werden.
  • Für eine Umgebung mit einem oder mehreren Basisbildern ist es wünschenswert, so viele Daten wie möglich in einem Cache-Speicher zu halten, oder sogar speziell festzulegen, welche Daten im Cache-Speicher zu halten sind.
  • Findet der Betrieb in einer Umgebung statt, in der einem Kunden mehrere Bilder bereitgestellt werden, tritt ein weiteres Problem auf. Obgleich diese Bilder sehr ähnlich sind und nur in einem kleinen Subset von Dateien innerhalb des Plattenbildes variieren, werden die Bilder von dem Server-Betriebssystem (OS) immer noch als unterschiedliche Dateien angesehen.
  • Ansätze des Standes der Technik zum Minimieren der Datenduplikation im Speicher unter Verwendung von Hashes weisen keine gute Skalierung auf und funktionieren nur in Speichern kleiner Größe, da der Such-Arbeitsaufwand mit zunehmender Cache-Größe massiv ansteigt. Durch das Bereitstellen von Cache-Speicher-Größen von mehreren Gigabytes verlieren diese Ansätze ihren Nutzen.
  • Es existieren verschiedene Mechanismen des Standes der Technik zum Begrenzen der Menge an Daten in einem Cache-Speicher im Allgemeinen, ebenso wie zum Suchen und Entfernen von Duplikationen im Besonderen. Die gemäß dem Stand der Technik bekannten Lösungen verwenden entweder Cache-Speicher mit einer Heuristik, die nicht konfiguriert werden kann, oder sie kopieren einfach jeden Datenblock/jede Datei, auf die zugegriffen wird.
  • US2011/0148895 A1 beschreibt das Starten der Bild- und Klon-Schnappschüsse, die einen vorab gefüllten Cache-Speicher aufweisen. Mit diesem Ansatz werden die Cache-Speicher-Seiten reduziert. US2011/0148895 A1 offenbart Cache-Speicherung durch Bestimmen von Datenblöcken, die in einem Cache-Speicher gespeichert werden sollen, ausgehend von der Gültigkeit und Leistung eines Cache-Speicher-Eintrags. Ein Cache-Speicher-Bild, das nur Cache-Speicher-Einträge mit gültigen Zeitdauern von wenigstens einem konfigurierten Implementierungsdatum für ein Bild einer virtuellen Maschine umfasst, wird über einen Anwendungsserver für das Bild der virtuellen Maschine erstellt. Das Bild der virtuellen Maschine wird wenigstens zu einem anderen Anwendungsserver als eine virtuelle Maschine implementiert, wobei das Cache-Speicher-Bild lediglich die Cache-Speicher-Einträge mit den gültigen Zeitdauern von wenigstens dem konfigurierten Implementierungsdatum für das Bild der virtuellen Maschine umfasst.
  • Die Entscheidung darüber, wie und wo eine VM in einer Cloud-Umgebung implementiert werden soll, kann ausgehend von verschiedenen Faktoren getroffen werden. Für gewöhnlich werden Host-Kapazität und -Fähigkeiten ebenso wie VM-Anforderungen berücksichtigt. Läuft eine hohe Zahl von VMs auf demselben Host, sollte die E/A-Leistung ebenfalls berücksichtigt werden, da diese zu einem zunehmend begrenzenden Faktor wird.
  • Liegt eine Umgebung mit mehreren VMs vor, die parallel auf demselben Host laufen, resultieren einzelne Lese-/Schreiboperationen in einem Muster mit wahlfreiem Zugriff auf dem Platten-Teilsystem des Virtualisierungs-Host. Je nach Belastung einer jeden virtuellen Maschine kann diese eine schwerwiegende Auswirkung auf die E/A-Leistung sämtlicher VMs haben, die auf dieselben Platten zugreifen. Vor allem dann, wenn massive Schreiboperationen die zugrunde liegenden Cache-Speicher leeren („flush”), wird jede Leseoperation, die zur Gewährleistung eines normalen Betriebslevels innerhalb einer VM erforderlich ist, blockiert, was eine massive Auswirkung für den Benutzer der VMs hat. In großen Konfigurationen, bei denen eine Speichernetzwerk-(SAN)-Infrastruktur verwendet wird, um eine leichte und schnelle Implementierung von VMs auf allen angeschlossenen Rosts zu ermöglichen, ist der Grad der Auswirkung eines solchen Verhaltens sogar noch schwerer, da es VMs beeinträchtigt, die auf allen angeschlossenen Rosts laufen.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Es ist eine Aufgabe der Erfindung, ein Verfahren zur Bildimplementierung in einer Cloud-Umgebung bereitzustellen, die wenigstens zwei Rosts umfasst, insbesondere zur Auswahl der Rosts für die Bildimplementierung während der Herstellung neuer virtueller Maschinen.
  • Eine weitere Aufgabe besteht in dem Bereitstellen eines Systems zur Bildimplementierung in einer Cloud-Umgebung, die wenigstens zwei Rosts aufweist.
  • Die Aufgaben werden durch die Leistungsmerkmale der unabhängigen Ansprüche erfüllt. Die anderen Ansprüche, die Beschreibung und die Zeichnungen offenbaren vorteilhafte Ausführungsformen der Erfindung.
  • Gemäß einem ersten Aspekt der Erfindung wird ein Verfahren zur Bildimplementierung in einer Cloud-Umgebung vorgeschlagen, die wenigstens zwei Rosts aufweist, die mit wenigstens einer Platte verbunden sind und wenigstens einer virtuellen Maschine, die durch Implementieren von Bildern auf die Platte geschaffen wird. Ein Host für das Implementieren eines zusätzlichen Bildes wird gemäß einem Implementierungsfaktor ausgewählt, der eine gemeinsame Beziehung zwischen einem oder mehreren vorhandenen Basisbildern in der Cloud-Umgebung und dem zusätzlichen Bild darstellt.
  • Das beschriebene Verfahren und System zur Bildimplementierung in einer Cloud-Umgebung kann in einem Netzwerksystem umgesetzt werden, das mit einem lokalen Netz (LAN) verbunden ist und/oder dieses umfasst, es kann ebenso gut in einem Speichernetzwerk-(SAN)System umgesetzt werden.
  • Das Verfahren der Erfindung basiert auf gemeinsamen Beziehungen zwischen ähnlichen Bildern, die möglicherweise identische Datenblöcke aufweisen. Ein Datenblock ist als Mindesteinheit für den Lese-/Schreibzugriff auf einer Festplatte zu verstehen, beispielsweise in Mengen von 512 Bytes. Festplatten werden für gewöhnlich in logische Datenblöcke unterteilt. Datenblöcke sind eindeutig adressierbare Einheiten auf Festplatten.
  • Eine virtuelle Maschine ist eine komplett isolierte Guest-Betriebssystem-(G_OS)Installation innerhalb eines normalen Host-Betriebssystems, und es handelt sich dabei um eine Software-Implementierung einer Maschine, d. h. eines Computers, die Programme wie eine physische Maschine ausführt. Moderne virtuelle Maschinen werden entweder mit Softwareemulation oder Hardware-Virtualisierung, in den meisten Fällen mit beiden zusammen, implementiert. Virtuelle Maschinen werden in zwei große Kategorien unterteilt, basierend auf ihrer Verwendung und dem Grad an Korrespondenz zu jeglicher realen Maschine. Eine virtuelle Systemmaschine liefert eine komplette Systemplattform, die die Ausführung eines kompletten Betriebssystems (OS) unterstützt. Im Gegensatz dazu ist eine virtuelle Prozessmaschine ausgelegt, um ein einzelnes Programm auszuführen, was bedeutet, dass sie einen einzelnen Prozess unterstützt. Eine wesentliche Eigenschaft einer virtuellen Maschine besteht darin, dass die innen ablaufende Software auf die Ressourcen und Abstraktionen begrenzt ist, die von der virtuellen Maschine bereitgestellt werden.
  • Bei der Datenverarbeitung ist ein virtueller Maschinenmanager (VMM), auch Hypervisor genannt, eine von vielen Virtualisierungstechniken, mit der eine Vielzahl von Betriebssystemen, Guests genannt, gleichzeitig auf einem Computer ausgeführt werden können. Er wird deshalb so bezeichnet, weil er konzeptionell betrachtet eine Ebene höher als ein Supervisory-Programm angeordnet ist. Der VMM präsentiert den Guest-Betriebssystemen eine virtuelle Betriebsplattform und verwaltet die Ausführung der Guest-Betriebssysteme. Eine Vielzahl von Instanzen einer Reihe verschiedener Betriebssysteme kann gemeinsam die virtualisierten Hardware-Ressourcen nutzen. Hypervisor sind auf Host-Hardware installiert, deren einzige Aufgabe darin besteht, Guest-Betriebssysteme auszuführen. Nicht-Hypervisor-Virtualisierungssysteme werden für ähnliche Aufgaben auf dedizierter Host-Hardware verwendet, jedoch auch gewöhnlich auf Desktop-, tragbaren und sogar Handheld-Computern. Der VMM liefert die Mittel zur gleichzeitigen Verwendung von Cloud-Einrichtungen. VMM ist ein Programm auf einem Host-System, mit dem Computer eine Vielzahl von Ausführungsumgebungen unterstützen können, die identisch oder ähnlich sein können oder unterschiedliche Hardware-Konfigurationen besitzen. Aus der Perspektive eines Benutzers handelt es sich bei dem System um einen eigenständigen Computer, der von anderen Benutzern isoliert ist. In der Realität wird jeder Benutzer von derselben Maschine bedient. Eine virtuelle Maschine ist ein Betriebssystem (BS), das von einem zugrunde liegenden Steuerungsprogramm verwaltet wird, mit dem es wie eine Vielzahl von Betriebssystemen erscheinen kann. Bei der Cloud-Datenverarbeitung können Benutzer mit dem VMM Aspekte des Prozesses wie beispielsweise Datenzugriff, Datenspeicherung, Verschlüsselung, Adressierung, Topologie und Arbeitslastbewegung überwachen und auf diese Weise verwalten.
  • Günstigerweise können mehrere Mechanismen für die Deduplizierung oder das Zusammenlegen von Datenblöcken in einem Cache-Speicher als eine Möglichkeit zum Optimieren der Leistung eines Cloud-Umgebungssystems verwendet werden, was bedeutet, dass identische Datenblöcke, selbst wenn sich diese an unterschiedlichen Dateipositionen befinden, nur einmal in dem Speicher gespeichert werden. Insbesondere im Hinblick auf Cloud-Umgebungen können Datenblöcke konsolidiert werden, obgleich sie sich in unterschiedlichen Dateien befinden, wobei der positive Effekt der Verwendung derselben Basisbilder für VMs, die auf demselben Host laufen, auf andere Szenarien ausgeweitet werden kann, um z. B. für unterschiedliche Softwareinstallationen zwischen Nur-Lese-Basisbildern leicht zu unterscheiden. VMs können geklont werden und beginnen dementsprechend mit demselben Inhalt, ändern sich jedoch im Verlauf der Zeit.
  • Die Effektivität der Deduplizierungsmechanismen hängt von der Ähnlichkeit zwischen VM-Bildern ab, die auf dem Host implementiert sind. Es wird ein Implementierungsprozess beschrieben, der gewollt die Bildähnlichkeit von auf demselben Host ausgeführten Bildern erhöht. Basierend auf der Bildgemeinsamkeit kann ein Implementierungsfaktor berechnet werden, und dieser Faktor kann für das Bestimmen verwendet werden, auf welchem Host eine neue VM implementiert werden soll.
  • Ein Vorteil der Einbeziehung dieses Implementierungsfaktors besteht darin, dass ähnliche Bilder vorzugsweise auf denselben Hosts gespeichert werden, wodurch die Menge an E/A-Operationen für grundlegende Aufgaben massiv reduziert wird. Insbesondere wenn ein gemeinsam genutztes Dateisystem verwendet wird, hat dies einen positiven Effekt auf die Gesamtleistung der Cloud. Dennoch sind die Effekte auch dann positiv, wenn der Betrieb mit einer lokalen Festplatte durchgeführt wird. Mit einer verbesserten E/A-Leistung kann der Benutzer flüssiger mit der Umgebung arbeiten. Insbesondere für Standardaufgaben wie Booting, Browsing und Starten von vorab installierter Software verbessert sich die Reaktionsfähigkeit des Systems, was zu einer höheren Kundenzufriedenheit führt.
  • In einer Ausführungsform der Erfindung kann der Implementierungsfaktor von einer vordefinierten Gemeinsamkeits-Matrix hergeleitet werden, wobei ein oder mehrere Gemeinsamkeits-Werte zwischen allen vorhandenen Basisbildern auf allen laufenden Rosts und dem zusätzlichen Bild definiert werden. Vorteilhafterweise können der eine oder die mehreren Gemeinsamkeits-Werte vor der Ausführung des Erstellungsprozesses für das virtuelle Bild berechnet werden, so dass der zeitliche Aufwand während dem Implementierungsprozess reduziert wird.
  • In einer weiteren Ausführungsform kann der Implementierungsfaktor von einer erzeugten Gemeinsamkeits-Matrix hergeleitet werden, wobei ein oder mehrere Gemeinsamkeits-Werte zwischen allen vorhandenen Basisbildern auf allen laufenden Rosts und dem zusätzlichen Bild definiert werden. Vorteilhafterweise kann der Implementierungsprozess auf flexible Weise je nach den tatsächlichen Basisbildern angepasst werden.
  • Günstigerweise können der eine oder die mehreren Gemeinsamkeits-Werte der Gemeinsamkeits-Matrix für jede Kombination aus Basisbildpaaren zwischen den vorhandenen Basisbildern in der Cloud-Umgebung und dem zusätzlichen Bild berechnet werden. Auf diese Weise können alle möglichen Gemeinsamkeits-Beziehungen berücksichtigt werden.
  • Um den Aufwand für die Berechnung der Gemeinsamkeits-Werte zu reduzieren, können der eine oder die mehreren Gemeinsamkeits-Werte anhand von Informationen über den Inhalt der Datenblöcke von Basisbildern hergeleitet werden, die in dem Speicher gehalten werden sollen. Insbesondere werden der eine oder die mehreren Gemeinsamkeits-Werte mit Profilierungsinformationen der Datenblöcke der Basisbilder gewichtet. Zweckmäßigerweise können die Datenblockzugriffsraten der einzelnen Datenblöcke der unterschiedlichen Basisbilder als Gewichtungsinformationen verwendet werden, die für das Berechnen der Gemeinsamkeits-Werte als eine Eingabe für die Gemeinsamkeits-Matrix genutzt werden.
  • Dennoch ist diese Realisierung von Basisbildern, die aus Benutzerbildern mit einer einzelnen Ebene von Basisbildern hergeleitet werden, nur eine Möglichkeit des Herstellens virtueller Maschinen; andere Ausführungsformen berücksichtigen je nach spezieller Verwendung der Cloud-Umgebung möglicherweise Konfigurationen mit mehr als einer Ebene von Basisbildern.
  • Für eine Cloud-Umgebung mit mehreren Ebenen von Basisbildern kann der Implementierungsfaktor vorteilhafterweise aus Informationen von allen Basisbildern und Anwendungsbasisbildern hergeleitet werden, die zur Bild-Implementierung verwendet werden. Zweckmäßigerweise können mehr mögliche Gemeinsamkeits-Beziehungen, die in dem System vorhanden sind, zum Optimieren des Implementierungsverhaltens der Cloud-Umgebung berücksichtigt werden.
  • Eine vorteilhafte Ausführungsform der Erfindung basiert auf der Nutzung von Ähnlichkeit von Bildern und der Anpassung mit Profilierungsdaten für jeden Datenblock des Dateiinhaltes, womit ein Host gefunden wird, der aus einer E/A-Perspektive am besten geeignet ist. In dieser Hinsicht kann ein Vorteil aus dem Bereitstellen einer maskierenden Cache-Speicher-Ebene zwischen der einen und/oder den mehreren virtuellen Maschinen und dem virtuellen Maschinenmanager gezogen werden, wobei die maskierende Cache-Speicher-Ebene wenigstens einen separaten Eintrag für jeden in einem Cache-Speicher speicherbaren Datenblock des Dateisystems, auf das Bezug genommen werden soll, umfasst.
  • Profilierungsinformationen in Bezug auf einen oder mehrere in einem Cache-Speicher speicherbaren Datenblock oder Datenblöcke werden erfasst und in der maskierenden Cache-Speicher-Ebene gespeichert. Die maskierende Cache-Speicher-Ebene ist gemäß den Profilierungsinformationen konfiguriert, oder es wird eine Konfiguration für die maskierende Cache-Speicher-Ebene bereitgestellt. Diese Informationen können für die Entscheidung, wo ein Bild für eine neue virtuelle Maschine zu implementieren ist, verwendet werden. Insbesondere kann der Aufwand für das Konsolidieren von Datenblöcken in dem Speicher oder dem Dateisystem signifikant reduziert werden.
  • Günstigerweise stellt diese Ausführungsform einen Cache-Speicherungsmechanismus für einen speziell anpassbaren Cache-Speicher bereit. Der verbesserte Cache-Speicherungsmechanismus, der die maskierende Cache-Speicher-Ebene umfasst, ermöglicht das „Festmachen” bestimmter im Cache-Speicher speicherbarer Datenblöcke in dem Cache-Speicher, beispielsweise basierend auf den Profilierungsinformationen, die zum Konfigurieren der maskierenden Cache-Speicher-Ebene oder einer vordefinierten Konfiguration zusammengestellt werden, womit die Gesamtleistung des Systems durch Verringerung der Plattenzugriffszeiten und E/A-Bandbreite aufgrund einer Reduzierung von Platteninteraktionen verbessert wird. Eine zusätzliche Kombination mit Dateityp-Anwesenheitsanzeige gewährleistet zusätzliche Flexibilität, wodurch die Leistung für Dateien erhöht wird, die vorher nicht explizit profiliert wurden. Durch Nutzung der Fähigkeit, Dateien zu interpretieren, um ihre Cache-Speicherung zu optimieren, werden darüber hinaus Möglichkeiten zum Optimieren des Zusammenlegens von Daten bereitgestellt, was sich als einfacher und schneller Weg zum Navigieren zu Daten erweist, die möglicherweise einander entsprechen.
  • Da unterschiedliche Cloud-Konfigurationen eine wichtige Rolle spielen können, kann die maskierende Cache-Speicher-Ebene vorteilhafterweise als ein Speicher-Dateisystem implementiert sein, das als ein Dateisystem oder ein Unterverzeichnis eines Dateisystems über dem eigentlichen Dateisystem konfiguriert ist, um sämtliche möglichen Systemaspekte der verwendeten Cloud-Umgebung abzudecken. Der virtuelle Maschinenmanager kann mit dieser maskierenden Cache-Speicher-Ebene interagieren, um Profilierungsinformationen zu erlangen (pull) und Benutzungsinformationen einzustellen (push). Die maskierende Cache-Speicher-Ebene kann entweder mit einer vordefinierten Konfiguration, umfassend eine Regel oder einen Regelsatz zum Entscheiden, ob in Cache-Speichern speicherbare Datenblöcke zu halten sind oder nicht, bereitgestellt werden, oder sie kann mit einer erzeugten Konfiguration bereitgestellt werden, die von den Profilierungsinformationen, z. B. von Profilierungsinformationen von Dateien hergeleitet ist. Ein Regelsatz kann entweder festlegen, welche in Cache-Speichern speicherbaren Datenblöcke im Speicher zu speichern sind oder welche Informationen basierend auf dem Dateityp im Speicher zu halten sind.
  • Vorteilhafterweise kann die Konfiguration der maskierenden Cache-Speicher-Ebene durch Herleiten der wenigstens einen Regel aus den Profilierungsinformationen erzeugt werden, wenigstens einen der folgenden Schritte umfassend: (a) Es werden Informationen über Zugriffsmuster des einen oder der mehreren in Cache-Speichern speicherbaren Datenblockes oder Datenblöcke des Dateisystems, auf das Bezug genommen werden soll, bereitgestellt; (b) Ein Zähler zum Profilieren der Datenblock-Zugriffsraten wird bereitgestellt; (c) Informationen über den Inhalt des einen oder der mehreren in Cache-Speichern speicherbaren Datenblockes oder Datenblöcke zum Profilieren der Datenblock-Zugriffsraten wird hergeleitet; (d) Informationen über den Dateityp einer Datei, auf die in dem Dateisystem Bezug genommen werden soll, werden hergeleitet; (e) Es werden Pfadinformationen, die für einen oder mehrere in Cache-Speichern speicherbaren Datenblöcke gemäß dem Dateityp verfügbar sind, dem der eine oder die mehreren in Cache-Speichern speicherbaren Datenblöcke angehören, verwendet.
  • Da die Bildimplementierung für unterschiedliche Szenarien der Cloud-Verwendung umgesetzt werden kann, stellt der in Cache-Speichern speicherbare Datenblock vorteilhafterweise wenigstens einen eines Dateisystembildes, einer Datenbank, eines Bildes dar. Dementsprechend kann die Gesamtleistung einer Cloud-Umgebung optimiert werden.
  • Ein ganz besonderer Vorteil besteht darin, dass durch die Verwendung der Profilierung und Cache-Konsolidierung eine Cloud-Umgebung eine enorme Leistungsverbesserung erfährt, wenn ähnliche Bilder auf demselben Host platziert werden, da das verwendete Verfahren in einem reduzierten E/A-Arbeitsaufwand der Cloud-Umgebung resultiert. Das Verfahren des Verwendens von Gemeinsamkeits-Abbildungen (maps) resultiert in einer Leistungsverbesserung, selbst wenn das verwendete Basisbild nicht dasselbe ist. Durch Ausnutzung der Ähnlichkeit von Bildern und der Anpassung mit Profilierungsdaten für jeden in einem Cache-Speicher speicherbaren Datenblock des Dateiinhaltes ist es möglich, einen aus einer Perspektive der E/A-Cache-Speicherung am besten geeigneten Host zu finden. Der Effekt der E/A-Cache-Speicherung ist sehr hoch. Da auf dieselben ausführbaren Dateien, Dateien und Verzeichnisse zugegriffen werden muss, wenn das Dateisystem gebootet, durchsucht oder eine vorab installierte Software gestartet wird, hat jeder Bilddatenblock, der bereits in dem Speicher gespeichert ist, einen positiven Effekt. Mit einem Nur-Lese-Ansatz für das Basisbild ändert sich über die Laufzeit eines Bildes nur ein kleines Subset an Dateien. Hier ergibt sich also aus der Cache-Speicherung gemeinsamer Daten ein großer Vorteil.
  • Gemäß einem weiteren Aspekt der Erfindung wird ein Datenverarbeitungsprogramm für die Ausführung in einem Datenverarbeitungssystem vorgeschlagen, das Softwarecodeabschnitte zum Durchführen des Verfahrens zur Bildimplementierung in einer Cloud-Umgebung aufweist, die wenigstens zwei Rosts aufweist, insbesondere zur Auswahl von Rosts für die Bildimplementierung während der Herstellung neuer virtueller Maschinen, wenn das Programm auf einem Computer ausgeführt wird, wobei die Schritte zum Auswählen eines Rosts zum Implementieren eines zusätzlichen Bildes gemäß einem Implementierungsfaktor ausgeführt werden, der eine Gemeinsamkeits-Beziehung zwischen einem oder mehreren vorhandenen Basisbildern in der Cloud-Umgebung und dem zusätzlichen Bild darstellt.
  • Gemäß einem weiteren Aspekt der Erfindung wird ein Computerprogrammprodukt vorgeschlagen, das auf einem von einem Computer nutzbaren Medium gespeichert ist, das ein computerlesbares Programm zum Veranlassen eines Computers zum Durchführen der folgenden Schritte aufweist, wenn das Programm in einer Cloud-Umgebung ausgeführt wird. Insbesondere weisen die Schritte Auswählen eines Rosts zum Implementieren eines zusätzlichen Bildes gemäß einem Implementierungsfaktor, Darstellen einer Gemeinsamkeits-Beziehung zwischen einem oder mehreren vorhandenen Basisbildern in der Cloud-Umgebung und dem zusätzlichen Bild auf.
  • Ein weiterer Aspekt der Erfindung ist ein Datenverarbeitungssystem zur Ausführung eines Datenverarbeitungsprogramms, das Softwarecodeabschnitte zum Durchführen des Verfahrens zur Bildimplementierung in einer Cloud-Umgebung aufweist, die wenigstens zwei Rosts aufweist, insbesondere zur Auswahl von Rosts für die Bildimplementierung während der Herstellung neuer virtueller Maschinen, das bei seiner Ausführung auf einem Computer das Verfahren der Erfindung durchführt.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die vorliegende Erfindung zusammen mit den vorstehend erwähnten und weiteren Aufgaben und Vorteilen kann am besten anhand der folgenden ausführlichen Beschreibung der Ausführungsformen verstanden werden, die nicht im einschränkenden Sinne gelten, wobei in den Zeichnungen:
  • 1 ein Beispiel einer Cloud-Umgebung darstellt, die eine Reihe verschiedener Rosts aufweist, die mit einem Plattensystem verbunden sind, wobei auf jedem Host mehrere virtuelle Maschinen laufen und die entsprechenden Benutzerbilder und die einzelnen Basisbilder auf der Platte gemäß dem Stand der Technik vorhanden sind;
  • 2 ein Konzept einer Berechnung eines Gemeinsamkeits-Wertes einer einzelnen Ebene für zwei Basisbilder darstellt;
  • 3 ein Konzept einer Berechnung eines Gemeinsamkeits-Wertes einer einzelnen Ebene für zwei Basisbilder darstellt, bei dem Datenblockgewichtungen als Profilierungsinformationen berücksichtigt werden;
  • 4 ein Konzept des Herleitens einer Gemeinsamkeits-Matrix für normalisierte Gemeinsamkeits-Werte für Paare aus Basisbildern ebenso wie eine Gemeinsamkeits-Matrix zwischen Basisbildern und Rosts darstellt, die in einem Implementierungsfaktor resultieren;
  • 5 ein Beispiel des Berechnens normalisierter Gemeinsamkeits-Werte für Cloud-Umgebungen mit einer Vielzahl von Bildebenen darstellt;
  • 6 eine beispielhafte Ausführungsform einer Cloud-Umgebung gemäß der Erfindung darstellt, die eine maskierende Cache-Speicher-Ebene zwischen virtuellen Maschinen und einem Dateisystem der Platte, jeweils einen Dateisystem-Cache-Speicher und einen virtuellen Maschinenmanager aufzeigt.
  • AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • In den Zeichnungen werden gleiche Elemente mit gleichen Referenznummern bezeichnet. Die Zeichnungen sind lediglich schematische Darstellungen und beabsichtigen nicht, spezielle Parameter der Erfindung näher darzustellen. Darüber hinaus beabsichtigen die Zeichnungen, lediglich typische Ausführungsformen der Erfindung darzustellen und sollten demzufolge nicht als den Umfang der Erfindung einschränkend erachtet werden.
  • In 1 ist ein Beispiel einer Cloud-Umgebung 110 dargestellt, aufweisend mehrere virtuelle Maschinen 10, die auf demselben Host einer Reihe verschiedener Rosts 100a...100g laufen, die allesamt über ein Eingabe-/Ausgabe(E/A-)System 20 mit einem gemeinsamen Plattensystem 22 verbunden sind. Das Plattensystem 22, weist z. B. ein gemeinsam genutztes Dateisystem der Cloud-Umgebung 110 auf. Darüber hinaus ist in 1 die Trennung zwischen Nur-Lese-(RO)Basisbildern 26a...26c (in der Figur auch als Basisbild 1, Basisbild 2 und Basisbild 3 bezeichnet) und einer Reihe verschiedener Lese-/Schreib-(RW)Benutzerbildern 24a...24c dargestellt. Die Basisbilder 26a...26c können ähnlich, jedoch nicht identisch sein, so kann z. B. für unterschiedliche Typen desselben Betriebssystems (OS) das Basis-OS dasselbe sein, jedoch können zusätzliche Pakete des OS voneinander unterschiedlich sein. Für den Fall von SW-Entwicklung kann eine hohe Gemeinsamkeit mit dem vorhergehenden Bild jedoch nicht mit dem Basisbild vorliegen.
  • Gemäß dem Verfahren der Erfindung zur Bildimplementierung in der Cloud-Umgebung 110 wird wenigstens eine zusätzliche virtuelle Maschine 10 durch Implementieren wenigstens eines zusätzlichen Bildes zu dem Dateisystem der Platte 22 hergestellt. Der Host 100a100g zum Implementieren dieses zusätzlichen Bildes wird gemäß einem Implementierungsfaktor ausgewählt, der eine Gemeinsamkeits-Beziehung zwischen einem oder mehreren vorhandenen Basisbildern 26a26c in der Cloud-Umgebung 110 und dem zusätzlichen Bild darstellt.
  • Die Leistung der Cloud-Umgebung 110 wird durch die Verwendung von Profilierung und Cache-Konsolidierung, wenn ähnliche Bilder auf demselben Host platziert werden, enorm verbessert, da die angewendeten Mechanismen zu einem verringerten E/A-Arbeitsaufwand führen. Durch die Verwendung einer Anzeige dahingehend, wie ähnlich Bilder sind und einer entsprechenden Anpassung davon mit Profilierungsdaten für jeden in einem Cache-Speicher speicherbaren Datenblock des Dateiinhaltes, kann der beste geeignete Host aus der Perspektive einer E/A-Cachespeicherung gefunden werden. Der Effekt der E/A-Cachespeicherung ist sehr hoch. Da auf dieselben ausführbaren Dateien, Dateien und Verzeichnisse zugegriffen werden muss, wenn das Dateisystem gebootet, durchsucht (Browsing) oder eine vorab installierte Software gestartet wird, hat jeder Bilddatenblock, der bereits in dem Speicher gespeichert ist, einen positiven Einfluss. Mit einem Nur-Lese-Ansatz für das Basisbild ändert sich über die Laufzeit eines Bildes nur ein kleines Subset an Dateien. Hier ergibt sich also ein großer Vorteil aus der Cache-Speicherung gemeinsamer Daten.
  • Zum Bestimmen des Implementierungsfaktors kann die Gemeinsamkeits-Beziehung von zwei Bildern als Bruchzahl von allen Datenblöcken in beiden Bildern bestimmt werden. Die Berechnung dieses Gemeinsamkeits-Wertes kann Vorteile aus den zugrunde liegenden Techniken ziehen, die eine Cache-Speicher-Zusammenlegung auf dem Host umsetzt, d. h. es wird die Entscheidung getroffen, ob Datenblöcke identisch sind und dementsprechend nur einmal in dem Speicher gespeichert werden können. Idealerweise wird der Gemeinsamkeits-Wert an die zugrunde liegende Technik angepasst. Zu Berechnungszwecken sollte der resultierende Faktor einen numerischen Wert zwischen 0 (= keine gemeinsamen Datenblöcke) und 1 (= alle Datenblöcke sind gemeinsam) darstellen. Dieser Wert beschreibt den Vorteil, der durch das Zusammenlegungsverfahren erzielt wird, wenn diese zwei Bilder auf demselben Host laufen.
  • 2 zeigt ein Beispiel für die Bestimmung eines Gemeinsamkeits-Wertes für zwei Basisbilder 26a und 26b auf Grundlage des Vergleichens des Dateninhaltes für alle in Cache-Speichern speicherbaren Datenblöcke 58 der Basisbilder 26a und 26b. Es ist ersichtlich, dass für das dargestellte Beispiel die zwei in Cache-Speichern speicherbaren Datenblöcke im Hinblick auf den Inhalt der in Cache-Speichern speicherbaren Datenblöcke 58 für die zwei Basisbilder 26a und 26b identisch sind.
  • Durch Anwendung der folgenden Formeln (die ebenfalls in 2 dargestellt sind) zum Berechnen der Gemeinsamkeits-Werte, wird ein Gemeinsamkeits-Wert von 0,66 für die zwei Basisbilder 26a und 26b berechnet, wie dies in der Figur dargestellt ist.
  • Ein erster Gemeinsamkeits-Wert, in der Formel als GemeinsamkeitsBruchzahlBasisbild1 bezeichnet, wird für das Basisbild 26a berechnet (in der Formel als Basisbild 1 bezeichnet), durch Summieren der Datenblöcke in Basisbild 1, die identischen Inhalt besitzen, geteilt durch die Summe aller Datenblöcke von Basisbild 1:
    Figure 00160001
  • Ein zweiter Gemeinsamkeits-Wert, in der Formel als GemeinsamkeitsBruchzahlBasisbild2, bezeichnet, wird für das Basisbild 26b berechnet (in der Formel als Basisbild 2 bezeichnet), durch Summieren der Datenblöcke in Basisbild 2, die identischen Inhalt besitzen, geteilt durch die Summe aller Datenblöcke von Basisbild 2:
    Figure 00170001
  • Ein Gemeinsamkeits-Wert als ein Ergebnis für die Gemeinsamkeits-Beziehung der Basisbilder 1 und 2, in der Formel als GemeinsamkeitsBruchzahlBasisbild1^Basisbild2, bezeichnet, der den normalisierten Wert der Gesamtsumme der gemeinsamen Datenblöcke in dem Basisbild 1 und Basisbild 2 darstellt, wird folgendermaßen berechnet
    Figure 00170002
  • Sind die Summen der gemeinsamen Datenblöcke der Basisbilder 1 (Basisbild 26a) und Basisbild 2 (Basisbild 26b) gleich,
    Figure 00170003
    resultiert dies in einem Gemeinsamkeits-Wert GemeinsamkeitsBruchzahlBasisbild1^Basisbild2 von
    Figure 00170004
  • Werden die in der Figur dargestellten Werte angewandt, beträgt das Ergebnis für den Gemeinsamkeits-Wert z. B. 2 × 2 / 3 + 3 = 2 / 3
  • In 3 wird das Beispiel von 2 unter Verwendung zusätzlicher Profilierungsinformationen für den Vergleich der einzelnen Datenblöcke 58 der unterschiedlichen Basisbilder 26a und 26b erweitert. Für das dargestellte Beispiel wird die Datenblockzugriffsrate zum Wichten der Datenblöcke 58 zum Bestimmen geeigneter Gemeinsamkeits-Werte verwendet. Ein einfaches Profilieren, nämlich bloßes Zählen der Lesezugriffe auf einen Datenblock ermöglicht die Hinzufügung dessen als eine Gewichtung. In diesem Fall muss bei der Implementierung darauf geachtet werden, dass die Gewichtung von Datenblöcken für ein gesamtes Bild normalisiert wird, um negative Auswirkungen, die durch unterschiedliche Zeitdauern der Profilierungsläufe verursacht werden, zu reduzieren, mit denen die Gewichtungen von Datenblöcken erzeugt werden. 3 zeigt eine Berechnung, wenn der Lesezugriffs-Zähler als Gewichtung verwendet wird. Anstelle des Erstellens der Summe aus gehaltenen Datenblöcken wird eine Summe aus Datenblockgewichtungen unter Verwendung der Gewichtung aller Datenblöcke in dem Bild berechnet und normalisiert. Wie dies in dem dargestellten Beispiel ersichtlich ist, hat in dem Basisbild 26a (in der Formel als Basisbild 1 bezeichnet) Datenblock 1 eine Zugriffszählung von 10, Datenblock 4 hat 20, Datenblock 5 hat 40, wohingegen in Basisbild 26b (in der Formel als Basisbild 2 bezeichnet) Datenblock 1 eine Zugriffszählung von 12, Datenblock 3 18 und Datenblock 5 33 hat. Diese Datenblöcke haben denselben jeweiligen Inhalt zwischen den zwei Basisbildern 1 und 2, obgleich ihre Positionen in dem Basisbild 1 oder 2 nicht unbedingt dieselbe sein muss.
  • Durch Verwendung der folgenden Formeln (ebenfalls in 3 dargestellt) zum Bestimmen des entsprechenden Gemeinsamkeits-Wertes ergibt sich nun ein numerischer Wert von 0,45 für die zwei Basisbilder 1 und 2 des dargestellten Beispiels.
  • Ein gewichteter Gemeinsamkeits-Wert, als gewichteteGemeinsamkeitsBruchzahlBasisbild1 bezeichnet, wird durch Summieren der Datenblockzugriffsraten gemeinsamer Datenblöcke von Basisbild 1 und Teilen der Summe durch die Summe der Datenblockzugriffsraten aller Datenblöcke von Basisbild 1, die gehalten werden müssen, berechnet.
  • Figure 00180001
  • Ein gewichteter Gemeinsamkeits-Wert, als gewichteteGemeinsamkeitsBruchzahlBasisbild2 bezeichnet, wird durch Summieren der Datenblockzugriffsraten gemeinsamer Datenblöcke von Basisbild 2 und Teilen der Summe durch die Summe der Datenblockzugriffsraten aller Datenblöcke von Basisbild 2, die gehalten werden müssen, berechnet.
  • Figure 00190001
  • Ein gewichteter Gemeinsamkeits-Wert als Ergebnis für die Gemeinsamkeits-Beziehung der Basisbilder 1 und 2, bezeichnet als gewichteteGemeinsamkeitsBruchzahlBasisbild1^Basisbild2, wird durch Summieren der Datenblockzugriffsraten gemeinsamer Datenblöcke von Basisbild 1 und 2 und Teilen der Summe durch die Summe der Datenblockzugriffsraten aller Datenblöcke von Basisbild 1 und 2, die gehalten werden müssen, berechnet.
  • Figure 00190002
  • Werden die in der Figur dargestellten Werte angewendet, beträgt das Ergebnis für den gewichteten Gemeinsamkeits-Wert
    Figure 00190003
  • 4 zeigt ein Konzept des Erzeugens einer Gemeinsamkeits-Matrix aus normalisierten Gemeinsamkeits-Werten für Paare aus Basisbildern ebenso wie einer Gemeinsamkeits-Matrix zwischen Hosts und Bildern in Abhängigkeit von verschiedenen Basisbildern, wodurch ein Implementierungsfaktor als Ergebnis für die Entscheidung darüber, auf welchen Host ein neues Bild implementiert wird, herbeigeführt wird.
  • Unabhängig davon, welcher Mechanismus zum Zusammenlegen der Datenblöcke oder welches Verfahren für die Berechnung der Gemeinsamkeits-Werte der Datenblöcke 40 verwendet wird, stellt der resultierende Implementierungsfaktor die Gemeinsamkeit zweier Bilder dar und kann demzufolge zur späteren Berechnung verwendet werden.
  • Um basierend auf diesem Implementierungsfaktor den besten Host für eine VM-Implementierung zu finden, kann eine Matrix erstellt werden, die die Gemeinsamkeits-Werte 40 eines jeden Paares aus Basisbildern zeigt. Tabelle T1, die in 4 dargestellt ist, ist ein Beispiel für eine Gemeinsamkeits-Matrix von 4 Basisbildern.
  • Bei der VM-Implementierung werden Gemeinsamkeits-Werte 40, die in der Gemeinsamkeits-Matrix T1 gespeichert sind, verwendet, um den besten Host zu finden. Dementsprechend wird das neue VM-Bild oder sein Basisbild mit den anderen Bildern/Basisbildern auf allen Hosts innerhalb der Cloud-Umgebung verglichen.
  • Die resultierenden Gemeinsamkeits-Werte 40 können normalisiert werden, um Unabhängigkeit von der Anzahl von VMs zu gewährleisten, die auf einem Host laufen. Die Gemeinsamkeits-Werte können auch in jedem anderen beliebigen Algorithmus zur VM-Implementierung verwendet werden.
  • Zum Berechnen des Implementierungsfaktors kann eine andere Matrix verwendet werden, die zeigt, welche Bilder in jeweiliger Abhängigkeit von welchen Basisbildern auf welchem Host laufen. Werden Basisbilder verwendet, können die Basisbilder für jeden VM basierend auf dieser Matrix oder bereits verfügbar in dieser Matrix abgerufen werden, da vordefinierte Gemeinsamkeits-Werte verwendet werden. Für jeden Host kann ein normalisierter Gemeinsamkeits-Wert berechnet werden. Des Weiteren kann für jeden Host der Gemeinsamkeits-Wert des aktuellen Bildes mit. jedem beliebigen Bild, das auf diesem Host läuft, summiert werden und durch die Anzahl von VMs dividiert werden, die auf diesem Host laufen, wie dies durch die folgende Formel definiert wird (auch in der Figur dargestellt).
  • Figure 00210001
  • Die Formel berechnet die Summe aller Gemeinsamkeits-Werte zwischen unterschiedlichen Basisbildern, die über allen Bildern abhängig davon summiert werden, dass jene Basisbilder auf einem speziellen Host laufen, und teilt diesen Wert durch die Summe aller Bilder, die auf diesem Host laufen. Der resultierende normalisierte Gemeinsamkeits-Wert, der als der vorstehend beschriebene Implementierungsfaktor bezeichnet wird, definiert den besten Host aus einer Perspektive des Zusammenlegens von Cache-Speichern und kann in weiteren Algorithmen verwendet werden, um den besten Host für eine Implementierung zu finden. Da dieser Wert normalisiert wird, entspricht seine Skalierung dem Gemeinsamkeits-Wert 40: ein Implementierungsfaktor von 0 zeigt keine Gemeinsamkeit an, während ein Implementierungsfaktor von 1 vollständige Gemeinsamkeit anzeigt. Um die Berechnung dieses Wertes zu zeigen, kann die Gemeinsamkeits-Matrix von Tabelle 1 als Beispiel verwendet werden. In Tabelle T3 wird ein Beispiel einer Matrix für die Host-Verwendung dargestellt. Für jeden Host sind die Menge von Bildern und die verwendeten Basisbilder, die von jedem auf einem Host laufenden Bild verwendet werden, ersichtlich. So kann für Host 1 gesehen werden, dass 4 Bilder auf diesem Host laufen, zwei verwenden Basisbild 1, eins verwendet Basisbild 2, eins verwendet Basisbild 3. Als Beispiel in Tabelle T3 wird der normalisierte Wert, d. h. der Implementierungsfaktor, für jeden Host für Basisbild 1 berechnet. In dem dargestellten Beispiel kommt ein höchster Implementierungsfaktor von 0,7925 für Host 1 zustande. In diesem Beispiel wäre aus der Perspektive eines Zusammenlegens von Cache-Speichern Host 1 der beste für eine Implementierung einer neuen VM basierend auf Basisbild 1.
  • Unabhängig davon ist es in einer weiteren Ausführungsform der Erfindung möglich, dass der Implementierungsfaktor aus einer vordefinierten Gemeinsamkeits-Matrix T1 hergeleitet wird, wobei ein oder mehrere Gemeinsamkeits-Werte 40 zwischen allen vorhandenen Basisbildern 26a26c auf allen laufenden Hosts 100a100g und dem zusätzlichen Bild definiert werden. Auf diese Weise kann nur eine Vorab-Information über das Verhalten der Cloud-Umgebung 110 und der Implementierung der Bilder in der Cloud-Umgebung 110 verwendet werden, und auf diese Weise kann der Berechnungsaufwand in dem ausführenden System für die Implementierung von Bildern reduziert werden.
  • 5 zeigt ein Beispiel des Berechnens von Implementierungsfaktoren für Cloud-Umgebungen mit einer Vielzahl von Bildebenen. In diesem Fall wird die Berechnung eines normalisierten Gemeinsamkeits-Wertes unter Verwendung eines jeden Basisbildes 26a, 27a und des Anwendungsbasisbildes 27b sämtlicher möglichen Basisbildebenen durchgeführt, die von den entsprechenden Benutzerbildern 24a und 24b verwendet werden. Darüber hinaus wird der resultierende Gemeinsamkeits-Wert durch die vollständige Anzahl von Basisbildern in diesem Host geteilt. Zur Berechnung des Implementierungsfaktors gemäß dem erwähnten Algorithmus kann die folgende Formel verwendet werden (ebenfalls in der Figur dargestellt).
  • Figure 00220001
  • Zusätzlich zu der Berechnung von 4 deckt das Summieren der Gemeinsamkeits-Werte zuerst eine Summe über allen möglichen Basisbildebenen, von denen ein spezielles Bild abhängt, ab, und darüber hinaus deckt das Summieren alle Bilder ab. Auf dieselbe Weise deckt für das Normalisieren der Werte das Summieren zuerst alle Basisbilder und anschließend alle abgeleiteten Bilder ab. Auf diese Weise resultieren die normalisierten Gemeinsamkeits-Werte in dem Implementierungsfaktor für ein Cloud-Umgebungs-Szenario mit unterschiedlichen Basisbildebenen.
  • In 6 wird eine beispielhafte Ausführungsform einer Cloud-Umgebung 110 gemäß einer günstigen Ausführungsform der Erfindung dargestellt, die eine maskierende Cache-Speicher-Ebene 32 zwischen virtuellen Maschinen 10 und jeweils einem Dateisystem 28 der Platte 22, ein Dateisystem-Cache-Speicher 30, und einen virtuellen Maschinenmanager 16 darstellt. Die maskierende Cache-Speicher-Ebene 32 kann an der Cloud-Umgebung 110 als eine einer separaten Dateisystem-Cache-Speicher-Ebene, einer Speicherebene, eines Unterverzeichnisses des Dateisystems 28 dargestellt sein.
  • Die Cloud-Umgebung 110 umfasst wenigstens einen Host 100a100g, der mit wenigstens einer Platte 22 verbunden ist, eine oder mehrere virtuelle Maschinen 10, ein oder mehrere Bilder 24a24c der einen oder mehreren virtuellen Maschinen 10, die in einem Dateisystem 28 der Platte 22 erstellt werden, sowie einen virtuellen Maschinenmanager 16 zum Zuweisen von Hardware-Ressourcen des Computerserversystems 110 an die eine oder mehreren virtuellen Maschinen 10. Es wird eine maskierende Cache-Speicher-Ebene 32 zwischen der einen oder mehreren virtuellen Maschinen 10 und dem virtuellen Maschinenmanager 16 bereitgestellt, wobei die maskierende Cache-Speicher-Ebene 32 wenigstens einen separaten Eintrag für jeden in einem Cache-Speicher speicherbaren Datenblock 58 des Dateisystems 28 umfasst, auf das Bezug genommen werden soll. Es werden Profilierungsinformationen in Bezug auf einen oder mehrere in Cache-Speichern speicherbaren Datenblock oder Datenblöcke 58 erfasst und in der maskierenden Cache-Speicher-Ebene 32 gespeichert. Die maskierende Cache-Speicher-Ebene 32 kann gemäß den Profilierungsinformationen konfiguriert sein, oder es wird eine Konfiguration für die maskierende Cache-Speicher-Ebene 32 bereitgestellt.
  • Die vorstehend erwähnte maskierende Cache-Speicher-Ebene 32, die zwischen den virtuellen Maschinen 10 über dem Dateisystem 28, dem Dateisystem-Cache-Speicher 30 der Platte 22 und dem virtuellen Maschinenmanager 16 implementiert ist, wird für eine Cloud-Umgebung 110 dargestellt, die ähnlich 1 ist, für ein Beispiel mit nur einem Host 100a. Die maskierende Cache-Speicher-Ebene 32 kann als ein Speicherdateisystem implementiert sein, das so konfiguriert ist, dass es ein Dateisystem oder ein Unterverzeichnis über der Dateisystemebene 28 und seiner darauf bezüglichen Dateisystem-Cache-Speicher-Ebene 30 darstellt. In dieser beispielhaften Ausführungsform hat die maskierende Cache-Speicher-Ebene 32 den dedizierten Zweck als eine spezielle zugeschnittene Cache-Ebene zu fungieren, deren Funktion nachfolgend beschrieben wird.
  • Die maskierende Cache-Speicher-Ebene 32 stellt ein grundlegendes Tool für die in dieser Patentanmeldung beschriebene Erfindung dar, da sie die Möglichkeit bietet, den Zugriff auf in Cache-Speichern speicherbaren Datenblöcke unterschiedlicher Bilder zu profilieren und diese auf Ähnlichkeit zu vergleichen. Des Weiteren handelt es sich um ein ziemlich nützliches Tool für eine sehr effiziente Cache-Speicherungstechnik, und schließlich liefert sie grundlegende Informationen zum Erstellen der Gemeinsamkeits-Abbildungen (maps), um die Bilder zur Implementierung zu konsolidieren. Die hierin beschriebene Erfindung basiert in hohem Maße auf der Ausnutzung dieser zusätzlichen maskierenden Cache-Speicherungstechnik.
  • Diese zusätzliche maskierende Cache-Speicher-Ebene 32 kann gemäß einem vordefinierten Regelsatz konfiguriert sein, wobei der Regelsatz wenigstens eine Regel umfasst, wenn Informationen ausgehend von der Heuristik verwendet werden. Solch ein Verfahren ist ein relativ praktischer Ansatz zum Herleiten der Entscheidung, ob ein in einem Cache-Speicher speicherbarer Datenblock 58 im Cache-Speicher gespeichert werden soll oder nicht.
  • Eine flexiblere Art und Weise ist die Verwendung von Profilierungsinformationen gemäß einem abgeleiteten und auf die aktuelle Situation des Implementierens von Bildern während der Erstellung von virtuellen Maschinen 10 und des Konfigurierens der maskierenden Cache-Speicher-Ebene gemäß dieser dynamisch erzeugten Informationen angepassten Regelsatz.
  • Für jeden Datenblock 58 des Dateisystems 28, auf das Bezug genommen wird, ist ein separater Eintrag in der maskierenden Cache-Speicher-Ebene 32 vorhanden. Er speichert wenigstens die folgenden Informationen: (a) Profilierungsinformationen (z. B. einen Zähler): Verschiedene Informationen können gespeichert werden, um Zugriffsmuster auf einen bestimmten in einem Cache-Speicher speicherbaren Datenblock 58 zu profilieren, der später zum Optimieren des Cache-Speicher-Verhaltens verwendet werden kann; (b) Halten: einen Indikator, der festlegt, ob ein in einem Cache-Speicher speicherbarer Datenblock nach dem ersten Zugriff in dem Speicher gehalten werden sollte oder ob nicht; (c) den im Cache-Speicher gespeicherten Datenblock 58.
  • Vorzugsweise können Profilierungsinformationen über Zugriffsmuster des einen oder der mehreren in Cache-Speichern speicherbaren Datenblock oder Datenblöcke 58 des Dateisystems 28, auf das Bezug genommen werden soll, für den Regelsatz bereitgestellt werden. Zum Profilieren von Datenblock-Zugriffsraten kann ein Zähler zum Zählen einzelner Zugriffe auf in Cache-Speichern speicherbare Datenblöcke und Bereitstellen dieser Informationen an eine separate Regel des Regelsatzes verwendet werden. Das Verfahren des Erfassens solcher Profilierungsinformationen auf unterschiedliche Art und Weise wird im Folgenden beschrieben.
  • Ohne irgendeine Konfiguration leitet die maskierende Cache-Speicher-Ebene 32 (in der Funktion als Cache-Speicher-Ebene) jede eintreffende Lese- oder Schreibanforderung an die zugrunde liegende Ebene, da keine Informationen dahingehend verfügbar sind, welche in Cache-Speichern speicherbaren Datenblöcke im Speicher zu halten sind. Dies ist das Standardverhalten. Um die Funktionalität dieser maskierenden Cache-Speicher-Ebene auszunutzen, muss eine Konfiguration geladen werden.
  • Informationen zu dem Zähler für das Profilieren von Datenblock-Zugriffsraten können zum Herleiten des Regelsatzes für das Datenblock-Zugriffsverhalten und folglich für die Entscheidung dahingehend dienen, ob ein in Cache-Speichern speicherbarer Datenblock 58 in der maskierenden Cache-Speicher-Ebene 32 gehalten werden kann oder nicht. Ein Regelsatz kann entweder festlegen, welche in Cache-Speichern speicherbaren Datenblöcke im Speicher zu speichern sind oder welche Informationen basierend auf dem Dateityp im Speicher zu halten sind. Für Plattenbilder kann ein Regelsatz festlegen, welche Dateien zu halten sind.
  • In einer weiteren Ausführungsform können Informationen über den Inhalt des einen oder der mehreren in Cache-Speichern speicherbaren Datenblocks oder Datenblöcke 58, d. h. die Informationen, die in den in Cache-Speichern speicherbaren Datenblöcken 58 gespeichert werden, zum Profilieren der Datenblock-Zugriffsraten verwendet werden. Auf diese Weise kann die Ähnlichkeit von in Cache-Speichern speicherbaren Datenblöcken vorteilhafterweise zum Reduzieren der Menge an in Cache-Speichern gespeicherten Datenblöcke verwendet werden.
  • Eine Erweiterung auf das Profilieren besteht darin, eine Anwesenheitsanzeige im Hinblick auf Dateitypen zu erlangen. In Abhängigkeit von dem Plug-In, der den Interpreter für einen speziellen Dateityp bereitstellt, können sich die Informationen, die erfasst und abgelegt (dumped) werden, unterscheiden. Für Platten-Bilddateien würde eine Dateityp-Anwesenheitsanzeige ermöglichen, dass genau aufgezeichnet wird, auf welche Datei innerhalb einer bestimmten Partition zugegriffen wird. Profilierungsinformationen können verwendet werden, um Konfigurationsdateien zu erstellen und um zu entscheiden, ob ein in Cache-Speichern speicherbarer Datenblock 58 im Cache-Speicher gespeichert werden kann oder nicht.
  • All die Informationen über eine Datenblock-Zugriffsrate können für die Entscheidung, ob ein in Cache-Speichern speicherbarer Datenblock 58 in das Hostsystem 18 geladen und in dem Speicher gehalten werden soll, verwendet werden.
  • Auf gleiche Weise können gemäß einem weiteren Aspekt der Erfindung die Informationen über einen Dateityp einer Datendatei, auf die Bezug genommen werden soll, als eine mögliche Umsetzung einer Regel in einem Regelsatz für die Entscheidung verwendet werden, ob ein in Cache-Speichern speicherbarer Datenblock 58 in das Hostsystem 18 geladen und in der maskierenden Cache-Speicher-Ebene 32 gehalten werden soll.
  • Bildimplementierung in einer Cloud-Umgebung kann des Weiteren von einer beispielhaften Ausführungsform des Verfahrens der Erfindung profitieren, das auf der zusätzlichen maskierenden Cache-Speicher-Ebene basiert, die die Möglichkeit des Festlegens eines Regelsatzes unter Verwendung von Pfadinformationen des Bilddateisystems nutzen kann; auf diese Weise parst die maskierende Cache-Speicher-Ebene jede Anforderung und speichert den Inhalt im Cache-Speicher, wenn die Anforderung mit einem speziellen Muster übereinstimmt. Ein Beispiel wäre das Festlegen einer Regel, die jede Dateizugriffsanforderung zur Cache-Speicherung zwangsweise einem Verzeichnis/usr zuweist, was in einem schnelleren Zugriff auf diese Dateien resultiert, wodurch die Hochlaufzeiten für diese Programme signifikant verringert werden.
  • Durch Verwenden des Verfahrens der Erfindung, um die in Cache-Speichern speicherbaren Datenblöcke 58 in einer maskierenden Cache-Speicher-Ebene in einer Cloud-Umgebung zu halten und den VM-Implementierungsmechanismus darauf hinzuweisen, kann der Vorteil dieses Verfahrens auf intensivere Weise als bisher ausgenutzt werden. Die Kombination aus beiden Leistungsmerkmalen optimiert die E/A-Leistung von Cloud-Umgebungen.
  • Durch Berechnen eines normalisierten Implementierungsfaktors, der zeigt, auf welchem Host die Datenblock-Haltefähigkeit die beste für eine neue Implementierung ist, wird eine Konsolidierung von ähnlichen oder gleichen Bildern erzielt. Auf diese Weise wird das Halten des in Cache-Speichern speicherbaren Datenblockes maximiert, wodurch mehr in Cache-Speichern speicherbare Datenblöcke 58 pro einzelnem Bild gehalten werden können, und dadurch wird die Leistung eines jeden Bildes, das in der Cloud-Umgebung läuft, erhöht.
  • In verschiedenen Ausführungsformen des erfinderischen Verfahrens stellt der in Cache-Speichern speicherbare Datenblock wenigstens eines aus einem Dateisystembild, einer Datenbank, einem Bild dar, da das erfinderische Verfahren auf unterschiedliche Anwendungen angewendet werden kann, mit unterschiedlichen Benutzerprofilen und in unterschiedlichen Cloud-Umgebungen 110. So werden die Dateninhalte der implementierten Bilder aufgrund der unterschiedlichen Anwendungsprofile angepasst.
  • Des Weiteren wird ein Datenverarbeitungsprogramm zur Ausführung in einem Datenverarbeitungssystem 110 vorgeschlagen, das Softwarecodeabschnitte zum Durchführen des Verfahrens zur Bildimplementierung in einer Cloud-Umgebung 110 aufweist, die wenigstens zwei Hosts 100a...100g aufweist, insbesondere zur Auswahl der Hosts zur Bildimplementierung während der Erstellung neuer virtueller Maschinen 10, wenn das Programm auf einem Computer 100a...100g ausgeführt wird.
  • Gemäß einem weiteren Aspekt der Erfindung wird ein Computerprogrammprodukt vorgeschlagen, das auf einem von einem Computer nutzbaren Medium gespeichert wird, das ein computerlesbares Programm zum Veranlassen eines Computers zum Durchführen der folgenden Schritte aufweist, wenn das Programm in einer Cloud-Umgebung 110 ausgeführt wird. Insbesondere weisen die Schritte Auswählen eines Rosts 100a100g zum Implementieren eines zusätzlichen Bildes gemäß einem Implementierungsfaktor, der eine Gemeinsamkeits-Beziehung zwischen einem oder mehreren vorhandenen Basisbildern 26c26c in der Cloud-Umgebung 110 und dem zusätzlichen Bild darstellt, auf.
  • Die Erfindung kann als vollständige Hardware-Ausführungsform oder vollständige Software-Ausführungsform oder als eine Ausführungsform ausgebildet sein, die sowohl Hardware- als auch Softwareelemente umfasst. In einer bevorzugten Ausführungsform ist die Erfindung in Software umgesetzt, die Firmware, residente Software, Mikrocode, usw. umfasst, jedoch nicht darauf beschränkt ist.
  • Des Weiteren kann die Erfindung als Computerprogrammprodukt ausgebildet sein, auf das von einem von einem Computer nutzbaren und computerlesbaren Medium zugegriffen werden kann, das einen Programmcode zur Verwendung durch oder im Zusammenhang mit einem Computer oder jedem beliebigen Befehlsausführungssystem bereitstellt. Im Sinne der vorliegenden Beschreibung kann ein von einem Computer nutzbares und computerlesbares Medium jede beliebige Vorrichtung sein, die zur Verwendung von oder im Zusammenhang mit dem Befehlsausführungssystem, der Vorrichtung oder Einheit das Programm enthalten, speichern, übertragen, verteilen oder transportieren kann.
  • Das Medium kann ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, (oder eine solche Vorrichtung oder Einheit) oder ein Übertragungsmedium sein. Beispiele eines computerlesbaren Speichermediums umfassen, sind jedoch nicht beschränkt auf: einen Halbleiter- oder einen Solid-State-Speicher, Magnetband, eine entnehmbare Computerdiskette, einen Arbeitsspeicher (RAM), einen Nur-Lese-Speicher (ROM), eine feste Magnetplatte und eine optische Platte. Gegenwärtige Beispiele optischer Platten umfassen, CD-Nur-Lese-Speicher (CD-ROM), CD-Lese-/Schreibspeicher (CD-R/W) und DVD.
  • Eine Datenverarbeitungsvorrichtung, die zum Speichern und/oder Ausführen eines Programmcodes geeignet ist, umfasst wenigstens einen Prozessor, der über einen Systembus direkt oder indirekt mit Speicherelementen verbunden ist. Die Speicherelemente können einen lokalen Speicher, der während der tatsächlichen Ausführung des Programmcodes verwendet wird, Massenspeicher und Cache-Speicher umfassen, die temporäre Speicherung von wenigstens einem Programmcode gewährleisten, um die Anzahl an Malen zu reduzieren, die der Code während der Ausführung von dem Massenspeicher abgerufen werden muss.
  • Eingabe-/Ausgabeeinheiten (einschließlich, jedoch nicht beschränkt auf Tastaturen, Displays, Zeigevorrichtungen, usw.) können entweder direkt oder über zwischengeschaltete E/A-Controller mit dem System verbunden sein.
  • Netzwerkadapter können ebenfalls mit dem System verbunden sein, so dass die Datenverarbeitungsvorrichtung mit anderen Datenverarbeitungsvorrichtungen oder fernen Druckern oder Speichereinheiten durch zwischengeschaltete private oder öffentliche Netzwerke verbunden werden kann. Modems, Kabelmodems und Ethernet sind nur wenige der gegenwärtig verfügbaren Typen von Netzwerkadaptern.
  • Das Datenverarbeitungssystem weist Softwarecodeabschnitte zum Durchführen des Verfahrens zur Bildimplementierung in einer Cloud-Umgebung 110 auf, die wenigstens zwei Hosts 100a100g aufweist, die mit wenigstens einer Platte 22 und wenigstens einer virtuellen Maschine 10 verbunden sind, die durch Implementieren von Bildern 24a24c zu der Platte 22 geschaffen wird. Ein Host 100a100g zum Implementieren eines zusätzlichen Bildes wird gemäß einem Implementierungsfaktor ausgewählt, der eine Gemeinsamkeits-Beziehung zwischen einem oder mehreren vorhandenen Basisbildern 26a26c in der Cloud-Umgebung 110 und dem zusätzlichen Bild darstellt, wenn das Programm auf den Hostsystemen 100a...100g ausgeführt wird.
  • 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 2011/0148895 A1 [0013, 0013]

Claims (15)

  1. Verfahren zur Bildimplementierung in einer Cloud-Umgebung (110), aufweisend – wenigstens zwei Rosts (100a100g), die mit wenigstens einer Platte (22) verbunden sind, – wenigstens eine virtuelle Maschine (10), die durch Implementieren von Bildern (24a24c) auf die Platte (22) geschaffen wird, dadurch gekennzeichnet, dass ein Host (100a100g) zum Implementieren eines zusätzlichen Bildes gemäß einem Implementierungsfaktor ausgewählt wird, der eine Gemeinsamkeits-Beziehung zwischen einem oder mehreren vorhandenen Basisbildern (26a26c) in der Cloud-Umgebung (110) und dem zusätzlichen Bild darstellt.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der Implementierungsfaktor von einer vordefinierten Gemeinsamkeits-Matrix (T1) hergeleitet wird, wobei ein oder mehrere Gemeinsamkeits-Werte (40) zwischen allen vorhandenen Basisbildern (26a26c) auf allen laufenden Rosts (100a100g) und dem zusätzlichen Bild definiert sind.
  3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der Implementierungsfaktor von einer erzeugten Gemeinsamkeits-Matrix (T1) hergeleitet wird, bei der ein oder mehrere Gemeinsamkeits-Werte (40) zwischen allen vorhandenen Basisbildern (26a26c) auf allen laufenden Rosts (100a100g) und dem zusätzlichen Bild definiert sind.
  4. Verfahren nach Anspruch 2 oder 3, dadurch gekennzeichnet, dass der eine oder die mehreren Gemeinsamkeits-Werte (40) der Gemeinsamkeits-Matrix (T1) für jede Kombination aus Basisbild-Paaren zwischen den vorhandenen Basisbildern (26a26c) in der Cloud-Umgebung (110) und dem zusätzlichen Bild berechnet werden.
  5. Verfahren nach einem beliebigen der Ansprüche 2 bis 4, dadurch gekennzeichnet, dass der eine oder die mehreren Gemeinsamkeits-Werte (40) von Informationen über den Inhalt von in Cache-Speichern speicherbaren Datenblöcken (58) der Basisbilder (26a26c) hergeleitet werden, die im Speicher gehalten werden sollen.
  6. Verfahren nach einem beliebigen der Ansprüche 2 bis 5, dadurch gekennzeichnet, dass der eine oder die mehreren Gemeinsamkeits-Werte (40) mit Profilierungsinformationen der in Cache-Speichern speicherbaren Datenblöcke (58) der Basisbilder (26a26c) gewichtet werden.
  7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass die Wichtungsinformationen von den Datenblockzugriffsraten hergeleitet werden.
  8. Verfahren nach einem beliebigen der vorstehend beschriebenen Ansprüche, dadurch gekennzeichnet, dass der Implementierungsfaktor von Informationen sämtlicher Basisbilder (26a26c) und Basisbildern der Anwendung der virtuellen Maschine (27a27b), die für die Implementierung verwendet wird, hergeleitet wird.
  9. Verfahren nach einem beliebigen der vorstehend beschriebenen Ansprüche, gekennzeichnet durch die Schritte des – Bereitstellens einer maskierenden Cache-Ebene (32) zwischen der einen oder den mehreren virtuellen Maschinen (10) und dem virtuellen Maschinenmanager (16), wobei die maskierende Cache-Ebene (32) wenigstens einen separaten Eintrag für jeden in einen Cache-Speicher speicherbaren Datenblock (58) des Dateisystems (28) umfasst, auf das Bezug genommen werden soll; – Erfassens von Profilierungsdaten in Bezug auf einen oder mehrere in einem Cache-Speicher speicherbaren Datenblock oder Datenblöcke (58) und Speicherns der Profilierungsdaten in der maskierenden Cache-Ebene (32) und Konfigurierens der maskierenden Cache-Ebene (32) gemäß den Profilierungsdaten, oder – Bereitstellens einer Konfiguration für die maskierende Cache-Ebene (32).
  10. Verfahren nach Anspruch 9, wobei die maskierende Cache-Ebene (32) als ein Speicherdateisystem implementiert sein kann, das so konfiguriert ist, dass es ein Dateisystem oder ein Unterverzeichnis des Dateisystems (28) darstellt.
  11. Verfahren nach Anspruch 9 oder 10, gekennzeichnet durch Erzeugen der Konfiguration durch Herleiten der wenigstens einen Regel anhand der Profilierungsdaten, umfassend wenigstens eines des Folgenden: – Bereitstellen von Informationen über Zugriffsmuster des einen oder der mehreren in einem Cache-Speicher speicherbaren Datenblockes oder Datenblöcke (58) des Dateisystems (28), auf das Bezug genommen werden soll; – Bereitstellen eines Zählers zum Profilieren der Datenblock-Zugriffsraten; – Herleiten von Daten über den Inhalt des einen oder der mehreren in einem Cache-Speicher speicherbaren Datenblockes oder Datenblöcke (58) zum Profilieren der Datenblock-Zugriffsraten; – Herleiten von Informationen über den Dateityp oder eine Datei, auf die Bezug genommen werden soll, in dem Dateisystem (28); – Verwenden von Pfadinformationen, die für einen oder mehrere in einem Cache-Speicher speicherbaren Datenblock oder Datenblöcke (58) verfügbar sind, gemäß dem Dateityp, dem der eine oder die mehreren in einem Cache-Speicher speicherbaren Datenblock oder Datenblöcke (58) angehören.
  12. Verfahren nach einem beliebigen der Ansprüche 9 bis 11, dadurch gekennzeichnet, dass der in einem Cache-Speicher speicherbare Datenblock (58) wenigstens eines von einem Dateisystembild, einer Datenbank, einem Bild darstellt.
  13. Datenverarbeitungsprogramm zur Ausführung in einem Datenverarbeitungssystem (110), das Softwarecodeabschnitte zum Durchführen eines Verfahrens gemäß einem beliebigen der Ansprüche 1 bis 12 aufweist, wenn das Programm auf einem Computer (100a...100g) ausgeführt wird.
  14. Computerprogrammprodukt, das auf einem von einem Computer nutzbaren Medium gespeichert ist, das ein computerlesbares Programm zum Veranlassen eines Computers zum Durchführen der folgenden Vorgehensweise aufweist, wenn das Programm in einer Cloud-Umgebung (110) ausgeführt wird: – Auswählen eines Hosts (100a100g) zum Implementieren eines zusätzlichen Bildes gemäß einem Implementierungsfaktor, der eine Gemeinsamkeits-Beziehung zwischen einem oder mehreren vorhandenen Basisbildern (26a26c) in der Cloud-Umgebung (110) und dem zusätzlichen Bild darstellt.
  15. Datenverarbeitungssystem zur Ausführung eines Datenverarbeitungsprogramms, das Softwarecodeabschnitte zum Durchführen eines Verfahrens gemäß einem beliebigen der Ansprüche 1 bis 12 aufweist.
DE102012220201.3A 2011-11-21 2012-11-07 Verfahren und System zur Bildimplementierung in einer Cloud-Umgebung Active DE102012220201B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP11189898.7 2011-11-21
EP11189898 2011-11-21

Publications (2)

Publication Number Publication Date
DE102012220201A1 true DE102012220201A1 (de) 2013-05-23
DE102012220201B4 DE102012220201B4 (de) 2020-02-13

Family

ID=47429303

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012220201.3A Active DE102012220201B4 (de) 2011-11-21 2012-11-07 Verfahren und System zur Bildimplementierung in einer Cloud-Umgebung

Country Status (3)

Country Link
US (2) US9195488B2 (de)
DE (1) DE102012220201B4 (de)
GB (1) GB2498038B (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9326001B2 (en) * 2011-03-22 2016-04-26 International Business Machines Corporation Scalable image distribution in virtualized server environments
US9195488B2 (en) 2011-11-21 2015-11-24 International Business Machines Corporation Image deployment in a cloud environment
EP2798486B1 (de) * 2011-12-29 2019-11-06 VMware, Inc. N-fach-synchronisation von desktopbildern
US9098378B2 (en) 2012-01-31 2015-08-04 International Business Machines Corporation Computing reusable image components to minimize network bandwidth usage
US8880638B2 (en) * 2012-06-18 2014-11-04 International Business Machines Corporation Distributed image cache for servicing virtual resource requests in the cloud
US20140359213A1 (en) * 2013-05-31 2014-12-04 Microsoft Corporation Differencing disk improved deployment of virtual machines
WO2015167447A1 (en) 2014-04-29 2015-11-05 Hitachi, Ltd. Deploying applications in cloud environments
US9823842B2 (en) 2014-05-12 2017-11-21 The Research Foundation For The State University Of New York Gang migration of virtual machines using cluster-wide deduplication
US10282112B2 (en) 2014-11-04 2019-05-07 Rubrik, Inc. Network optimized deduplication of virtual machine snapshots
US10133563B2 (en) 2015-08-25 2018-11-20 International Business Machines Corporation Deployed image monitoring and relevant change detection
CN106843976B (zh) * 2017-01-25 2018-11-16 北京百度网讯科技有限公司 用于生成镜像文件的方法和装置
US11221920B2 (en) 2017-10-10 2022-01-11 Rubrik, Inc. Incremental file system backup with adaptive fingerprinting
US11372729B2 (en) 2017-11-29 2022-06-28 Rubrik, Inc. In-place cloud instance restore
CN109962941B (zh) * 2017-12-14 2021-10-26 华为技术有限公司 通信方法、装置以及服务器
CN113971070B (zh) * 2021-10-28 2024-05-28 上海交通大学 适用于多虚拟机同屏显示的方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110148895A1 (en) 2009-12-18 2011-06-23 International Business Machines Corporation Virtual image deployment with a warm cache

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6915307B1 (en) 1998-04-15 2005-07-05 Inktomi Corporation High performance object cache
US7032089B1 (en) 2003-06-09 2006-04-18 Veritas Operating Corporation Replica synchronization using copy-on-read technique
US7809888B1 (en) 2004-09-29 2010-10-05 Emc Corporation Content-aware caching techniques
US8060683B2 (en) 2004-12-17 2011-11-15 International Business Machines Corporation System, method and program to preserve a cache of a virtual machine
US20080201528A1 (en) 2005-04-06 2008-08-21 Mediatek Inc. Memory access systems for configuring ways as cache or directly addressable memory
US8209687B2 (en) * 2007-08-31 2012-06-26 Cirba Inc. Method and system for evaluating virtualized environments
US8219592B2 (en) * 2008-02-29 2012-07-10 International Business Machines Corporation Method and system for using overlay manifests to encode differences between virtual machine images
US8190823B2 (en) 2008-09-18 2012-05-29 Lenovo (Singapore) Pte. Ltd. Apparatus, system and method for storage cache deduplication
US8073990B1 (en) 2008-09-23 2011-12-06 Teradici Corporation System and method for transferring updates from virtual frame buffers
WO2010034920A1 (fr) * 2008-09-29 2010-04-01 France Telecom Determination et gestion de reseaux virtuels
US8285915B2 (en) 2010-01-13 2012-10-09 International Business Machines Corporation Relocating page tables and data amongst memory modules in a virtualized environment
US8631405B2 (en) * 2010-02-26 2014-01-14 Red Hat Israel, Ltd. Identification and placement of new virtual machines based on similarity of software configurations with hosted virtual machines
US8601226B1 (en) * 2010-05-20 2013-12-03 Gogrid, LLC System and method for storing server images in a hosting system
US8601129B2 (en) 2010-06-30 2013-12-03 International Business Machines Corporation Hypervisor selection for hosting a virtual machine image
US20120144389A1 (en) 2010-12-07 2012-06-07 International Business Machines Corporation Optimizing virtual image deployment for hardware architecture and resources
US9195488B2 (en) 2011-11-21 2015-11-24 International Business Machines Corporation Image deployment in a cloud environment
US9081787B2 (en) 2011-11-21 2015-07-14 International Business Machines Corporation Customizable file-type aware cache mechanism

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110148895A1 (en) 2009-12-18 2011-06-23 International Business Machines Corporation Virtual image deployment with a warm cache

Also Published As

Publication number Publication date
US20140325510A1 (en) 2014-10-30
DE102012220201B4 (de) 2020-02-13
US9195489B2 (en) 2015-11-24
US20130132954A1 (en) 2013-05-23
GB2498038A (en) 2013-07-03
GB201220041D0 (en) 2012-12-19
US9195488B2 (en) 2015-11-24
GB2498038B (en) 2014-03-12

Similar Documents

Publication Publication Date Title
DE102012220201A1 (de) Verfahren und System zur Bildimplementierung in einer Cloud-Umgebung
DE112011102183B4 (de) Beschleuniger für die Migration virtueller Maschinen
DE112011103026B4 (de) Bedarfsgesteuertes Streaming von Abbildern virtueller Maschinen
US9524233B2 (en) System and method for efficient swap space allocation in a virtualized environment
DE112014000254B4 (de) Mehrstufiges Zwischenspeichern und Migrieren in unterschiedlichen Granularitäten
DE112012003505B4 (de) Automatisierte Auswahl von Funktionen zum Verringern der Speicherkapazität auf der Grundlage von Leistungsanforderungen
DE112011103829B4 (de) Verfahren und System zum Erzeugen einer virtuellen Maschine auf der Grundlage von Vorlagen
DE112020000558T5 (de) Dynamisches ändern einer isolierung einer containerisierten arbeitslast in reaktion auf eine erfassung eines auslösenden faktors
DE112012000693B4 (de) Ausführen einer Vielzahl von Instanzen einer Anwendung
DE112012000635T5 (de) Dynamische Speicherverwaltung in einer virtualisierten Datenverarbeitungsumgebung
DE102016103359A1 (de) Singleton-cachespeicher-verwaltungsprotokoll für hierarchische virtualisierte speichersysteme
DE112017001027T5 (de) Seitenfehlerbehebung
US9891836B2 (en) Page compression strategy for improved page out process
DE102013215535A1 (de) Sicherung oder wiederherstellung von daten mit hilfe eines hauptspeichers und nichtflüchtiger speichermedien
DE112012005032T5 (de) Entfernen der Datenremanenz in deduplizierten Speicher-Clouds
DE102011101328A1 (de) Kachelrendering für die Bildbearbeitung
DE112011104356T5 (de) Heraufstufen von Software-Images auf der Grundlage von Streaming-Technik
DE112020003929B4 (de) Verwaltung von metadaten von virtuellen speichern
DE102010001339A1 (de) Verwalten von Anforderungen von Betriebssystemen, die in virtuellen Maschinen ablaufen
US11226865B2 (en) Mostly unique file selection method for deduplication backup systems
DE112018005404T5 (de) Vereinfachen des zugriffs auf lokalitätsdomäneninformationen eines speichers
DE112020004181T5 (de) Bereitstellen eines direkten datenzugriffs zwischen beschleunigern und speicher in einer datenverarbeitungsumgebung
DE102012221261A1 (de) Verfahren zum Zwischenspeichern und System zum Ausführen des Verfahrens zum Zwischenspeichern zum Betreiben eines mindestens einen Host-Computer aufweisenden Computerserversystems
DE112018002266T5 (de) Kognitives Datenfiltern für Speicherumgebungen
DE112020004840T5 (de) Speicherbereinigung in datenspeichersystemen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final