DE112011103829T5 - Verfahren und System zum Erzeugen einer virtuellen Maschine auf der Grundlage von Vorlagen - Google Patents

Verfahren und System zum Erzeugen einer virtuellen Maschine auf der Grundlage von Vorlagen Download PDF

Info

Publication number
DE112011103829T5
DE112011103829T5 DE112011103829T DE112011103829T DE112011103829T5 DE 112011103829 T5 DE112011103829 T5 DE 112011103829T5 DE 112011103829 T DE112011103829 T DE 112011103829T DE 112011103829 T DE112011103829 T DE 112011103829T DE 112011103829 T5 DE112011103829 T5 DE 112011103829T5
Authority
DE
Germany
Prior art keywords
virtual machine
software
library
software elements
level
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
DE112011103829T
Other languages
English (en)
Other versions
DE112011103829B4 (de
Inventor
Mauro Arcese
Roberto Piras
Luigi Pichetti
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 DE112011103829T5 publication Critical patent/DE112011103829T5/de
Application granted granted Critical
Publication of DE112011103829B4 publication Critical patent/DE112011103829B4/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
    • 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
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • 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)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum Bereitstellen einer virtuellen Maschine (9) gemäß einer Spezifikation eines Benutzers zur Verwendung auf einem Hypervisor (8), wobei die Spezifikation auf Softwareelementen von verschiedenen Software-Hierarchieebenen beruht und virtuelle Maschinenvorlagen (4) in einer Bibliothek (3) bereitgestellt werden, wobei ein virtueller Maschinenkonfigurator (2) eine Benutzerschnittstelle (7) zum Festlegen von Softwareelementen gemäß den Software-Hierarchieebenen bereitstellt, wobei der virtuelle Maschinenkonfigurator (2) einen Scoring-Algorithmus (Auswertungsalgorithmus) anwendet, der auf Punktzahlen beruht, die Softwareelementen gemäß ihren Software-Hierarchieebenen zugewiesen sind, um einen Punktzahlwert für alle virtuellen Maschinenvorlagen (4) aus der Bibliothek (3) zu berechnen, wobei der virtuelle Maschinenkonfigurator (2) aus der Bibliothek (3) die virtuelle Maschinenvorlage (4) mit dem höchsten Punktzahlwert auswählt, und der virtuelle Maschinenkonfigurator (2) die ausgewählte virtuelle Maschinenvorlage (4) als eine virtuelle Maschine (9) an den Hypervisor (8) liefert.

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft ein Verfahren zum Bereitstellen einer virtuellen Maschine gemäß einer Spezifikation eines Benutzers zur Verwendung auf einem Hypervisor. Die vorliegende Erfindung betrifft auch ein System zum Bereitstellen einer virtuellen Maschine, die geeignet ist, das Verfahren gemäß der vorliegenden Erfindung auszuführen. Ferner betrifft die vorliegende Erfindung ein computerlesbares Medium, das eine Anweisungsgruppe enthält, die einen Computer veranlasst, das vorgenannte Verfahren auszuführen, und ein Computerprogrammprodukt, das geeignet ist, das vorgenannte Verfahren auszuführen.
  • HINTERGRUND
  • Virtualisierung wird zunehmend wichtiger, um die Verwendung verschiedener Software-Installationen auf verschiedenen Hardware-Plattformen zu gestatten. Zum Beispiel können Hochleistungs-Servercomputer bereitgestellt werden, auf die problemlos von verschiedenen Client-Computern aus zugegriffen werden kann. Der Benutzer muss von der zugrunde liegenden Hardware des Servers noch nicht einmal Kenntnis haben, um die gewünschte Software auszuführen. Dies wird durch einen so genannten Hypervisor oder virtuellen Maschinen-Monitor ermöglicht, der auf der Hardware-Plattform installiert ist und eine Umgebung zum Ausführen von virtuellen Maschinen bereitstellt, die auch als Gäste bezeichnet werden, die die Ausführung eines Betriebssystems mit gewünschten Anwendungen gestatten. Der Hypervisor selbst kann direkt auf der Hardware-Plattform, das heißt ohne ein separates Betriebssystem, oder als eine Anwendung innerhalb eines standardmäßigen Betriebssystems wie Linux, Windows oder anderen ausgeführt werden. Auch Hypervisoren, die auf einer Abstraktionszwischenebene ausgeführt werden, sind nach dem Stand der Technik bekannt.
  • Die Bereitstellung einer virtuellen Maschine mit einer Konfiguration, die von dem Benutzer festgelegt wird, ist eine Schlüsselfunktionalität für Virtualisierungs-Technologien. Zum Bereitstellen einer geeigneten virtuellen Maschine hat der Benutzer nicht nur die Möglichkeit, ein Betriebssystem festzulegen, das als Grundlage für weitere Softwareelemente verwendet werden soll, sondern auch eine Art Kombination von Middleware sowie bestimmten Anwendungen und Dienstprogrammen, die für das Betriebssystem in der virtuellen Maschine verfügbar sein sollen. Um ein effizientes Arbeiten zu gestatten, müssen die virtuellen Maschinen auf Anforderung durch den Benutzer innerhalb eines angemessenen Zeitraums und mit begrenzter Ressourcennutzung bereitgestellt werden.
  • Um die Anforderungen der Benutzer zu erfüllen, können die virtuellen Maschinen jedes Mal von Grund auf erstellt werden. Dementsprechend wird der Benutzer mit einer virtuellen Maschine exakt nach Vorgabe versorgt, aber er muss jedes Mal eine übermäßig lange Zeit abwarten, wenn er eine neue virtuelle Maschine anfordert. Selbst wenn identische virtuelle Maschinen angefordert werden, muss die virtuelle Maschine jedes Mal von Grund auf erzeugt werden, was eine Menge Ressourcen verbraucht.
  • Ein weiterer üblicher Ansatz zum Bereitstellen einer virtuellen Maschine besteht darin, einen gewissen Satz von virtuellen Maschinenvorlagen bereitzustellen, die als Ausgangsgrundlage verwendet werden, wenn die virtuelle Maschine wie angefordert eingerichtet wird. Abhängig von der ausgewählten virtuellen Maschinenvorlage kann das Ausmaß der Anpassung, die zum Erfüllen der Anforderung des Benutzers erforderlich ist, ziemlich groß sein und zu einer Bereitstellungszeit führen, die für den Benutzer nicht produktiv ist. Der Benutzer wählt normalerweise die geeignetste virtuelle Maschinenvorlage aus einer Liste von verfügbaren virtuellen Maschinenvorlagen aus. Damit verringern sich die Möglichkeiten, eine virtuelle Maschine gemäß den Bedürfnissen des Benutzers zu konfigurieren.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Es ist daher eine Aufgabe der Erfindung, ein Verfahren und ein System zum Bereitstellen einer virtuellen Maschine gemäß einer Spezifikation eines Benutzers zur Verwendung auf einem Hypervisor bereitzustellen, die eine automatische Auswahl einer geeigneten virtuellen Maschinenvorlage zum Bereitstellen einer virtuellen Maschine innerhalb einer kurzen Zeit gestatten.
  • Diese Aufgabe wird durch die unabhängigen Ansprüche erfüllt. Vorteilhafte Ausführungsformen werden in den abhängigen Ansprüchen einzeln aufgeführt.
  • Dementsprechend wird diese Aufgabe gelöst durch ein Verfahren zum Bereitstellen einer virtuellen Maschine gemäß einer Spezifikation eines Benutzers zur Verwendung auf einem Hypervisor, wobei die Spezifikation auf Softwareelementen von verschiedenen Software-Hierarchieebenen beruht und virtuelle Maschinenvorlagen in einer Bibliothek bereitgestellt werden, wobei ein virtueller Maschinenkonfigurator eine Benutzerschnittstelle zum Festlegen von Softwareelementen gemäß den Software-Hierarchieebenen bereitstellt, wobei der virtuelle Maschinenkonfigurator einen Scoring-Algorithmus (Auswertungsalgorithmus) anwendet, der auf Punktzahlen beruht, die Softwareelementen gemäß ihren Software-Hierarchieebenen zugewiesen sind, um einen Punktzahlwert für alle virtuellen Maschinenvorlagen aus der Bibliothek zu berechnen, wobei der virtuelle Maschinenkonfigurator aus der Bibliothek die virtuelle Maschinenvorlage mit dem höchsten Punktzahlwert auswählt, und der virtuelle Maschinenkonfigurator die ausgewählte virtuelle Maschinenvorlage als eine virtuelle Maschine an den Hypervisor liefert.
  • Der Grundgedanke der vorliegenden Erfindung ist daher, verschiedene Punktzahlen auf Softwareelemente anzuwenden, die von dem Benutzer zur Verwendung in einer virtuellen Maschine den verschiedenen Software-Hierarchieebenen entsprechend ausgewählt werden können, sodass der Scoring-Algorithmus den Punktzahlwert für alle aus der Bibliothek verfügbaren virtuellen Maschinenvorlagen automatisch berechnen kann. Auf der Grundlage der berechneten Punktzahlwerte wird die virtuelle Maschinenvorlage mit dem höchsten Punktzahlwert automatisch ausgewählt und für den Hypervisor bereitgestellt. Die Trennung von Softwareelementen gemäß verschiedenen Software-Hierarchieebenen ermöglicht es, Bereitstellungsanforderungen zu berücksichtigen, die für die unterschiedlichen Software-Hierarchieebenen für gewöhnlich verschieden sind. Ein System, das zum Anwenden dieses Verfahrens verwendet wird, weist den virtuellen Maschinenkonfigurator und die Bibliothek auf, die verfügbare virtuelle Maschinenvorlagen enthält. Der virtuelle Maschinenkonfigurator kann auf einer fest zugeordneten Hardware in einem IT-Netzwerk und verbunden mit einer Hardware ausgeführt werden, auf der der Hypervisor ausgeführt wird, oder er kann sich physisch auf derselben Hardware-Plattform befinden. Der Hypervisor selbst kann eine einzelne Hypervisor-Instanz sein, die auf seiner Hardware-Plattform ausgeführt wird, oder er kann einer von mehreren Hypervisoren sein, die auf jeweiligen mehreren Hardware-Plattformen ausgeführt werden, was für das Verfahren gemäß der vorliegenden Erfindung keinerlei Änderungen bedeutet. Die Bibliothek kann eine Art von Datenbank sein, die auch an einer beliebigen Stelle innerhalb des IT-Netzwerks zugeordnet sein kann, oder die physisch auf derselben Hardware-Plattform wie der virtuelle Maschinenkonfigurator zugeordnet sein kann. Die Bibliothek kann auch an verschiedenen Stellen innerhalb des IT-Netzwerks bereitgestellt werden. Auf die Benutzerschnittstelle, die von dem virtuellen Maschinenkonfigurator bereitgestellt wird, kann von jedem Punkt innerhalb des IT-Netzwerks zugegriffen werden, um die gewünschte Konfiguration der Softwareelemente festzulegen.
  • Gemäß einer modifizierten Ausführungsform der vorliegenden Erfindung weist das Anwenden eines Scoring-Algorithmus auf der Grundlage von Punktzahlen, die Softwareelementen zugewiesen sind, das Anwenden von verschiedenen Punktzahlen für eine Betriebssystemebene, eine Middleware-Ebene, eine Anwendungsebene und eine Dienstprogrammebene auf, wobei die Betriebssystemebene die höchste und die Dienstprogrammebene die niedrigste Software-Hierarchieebene ist. Die hier angegebenen verschiedenen Hierarchieebenen berücksichtigen, dass z. B. die gesamte Installation eines Betriebssystems eine längere Bereitstellungszeit für die virtuelle Maschine beansprucht als nur das Hinzufügen eines Dienstprogramms, das normalerweise ein kleiner Teil einer Software ist, der leicht installiert werden kann. Die Verwendung von vier Hierarchieebenen ist normalerweise ausreichend, um dem Benutzer eine entsprechende Auswahl von Softwareelementen zu gestatten und stellt eine typische Software-Installation dar. Dennoch kann auch eine andere Anzahl von Software-Hierarchieebenen umgesetzt werden.
  • In einer bevorzugten Ausführungsform der vorliegenden Erfindung weist das Anwenden eines Scoring-Algorithmus auf der Grundlage von Punktzahlen, die Softwareelementen zugewiesen sind, die Punktzahlen auf, die jedem Softwareelement einer Software-Hierarchieebene zugewiesen werden, und die Summe der Punktzahlen aller Softwareelemente einer gewissen Software-Hierarchieebene liegt unter der Punktzahl jedes Softwareelements der Software-Hierarchieebene darüber. Dementsprechend hängt die Auswahl einer geeigneten virtuellen Maschinenvorlage zuerst von den oberen Hierarchieebenen und erst danach von unteren Hierarchieebenen ab, da die Punktzahlen von Softwareelementen einer gewissen Hierarchieebene niemals die Punktzahl eines Softwareelements aus der Hierarchieebene darüber erreichen können. Dennoch gestattet das Zuweisen der Punktzahlen auf diese Weise immer noch eine hohe Flexibilität und auch das Zuweisen von verschiedenen Punktzahlen zu Softwareelementen derselben Hierarchieebene.
  • Gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung weist das Anwenden eines Scoring-Algorithmus auf der Grundlage von Punktzahlen, die Softwareelementen zugewiesen sind, das Berücksichtigen eines Softwareelements als Übereinstimmung auf, wenn ein Softwareelement-Name und eine Softwareelement-Version übereinstimmen. Da verschiedene Versionen eines Softwareelements spezifische Merkmale und wichtige Bugfixes (Fehlerbereinigungen) aufweisen, gewisse Leistungsanforderungen erfüllen oder andere Vorteile/Nachteile zeigen können, kann es wichtig sein, dass das Softwareelement einschließlich der Elementversion exakt übereinstimmt. Eine solche Übereinstimmung kann auch die Spezifikation einer gewissen Softwareelement-Version als einen Schwellenwert aufweisen, sodass alle Softwareelement-Versionen über oder unter diesem Schwellenwert als eine Übereinstimmung berücksichtigt werden können.
  • Gemäß einer modifizierten Ausführungsform der vorliegenden Erfindung weist das Berechnen des Punktzahlwerts ein Softwareelement auf, das in einer virtuellen Maschinenvorlage bereitgestellt wird, die seine Punktzahl zu dem Bewertungswert hinzufügt, wenn das Softwareelement von dem Benutzer angefordert wird, und seine Punktzahl von dem Bewertungswert abzieht, wenn das Softwareelement von dem Benutzer nicht angefordert wird. Dies gestattet die Berücksichtigung von Softwareelementen, die in einer gewissen virtuellen Maschinenvorlage enthalten sind sowie von denjenigen, die nicht in dieser virtuellen Maschinenvorlage enthalten sind. Dementsprechend können Unterschiede in Bezug auf die Bereitstellung von Softwareelementen derselben Hierarchieebene für die Auswahl der virtuellen Maschinenvorlage berücksichtigt werden. Zum Beispiel können Softwareelemente, die komplizierter zu installieren sind oder für die Installation eine längere Zeit erfordern, eine höhere Punktzahl haben.
  • In einer bevorzugten Ausführungsform der vorliegenden Erfindung ist der virtuelle Maschinenkonfigurator mit einer Softwareelement-Datenbank verbunden, die installierbare Dateien von Softwareelementen enthält und Softwareelemente, die von dem Benutzer festgelegt, aber von der virtuellen Maschinenvorlage nicht bereitgestellt werden, automatisch aus der Softwareelement-Datenbank in der virtuellen Maschine der virtuellen Maschinenvorlage mit der höchsten Punktzahl vor der Bereitstellung installiert. Dies ermöglicht die automatische Installation von Softwareelementen, wie durch den Benutzer festgelegt, die nicht bereits in der virtuellen Maschinenvorlage enthalten sind. Dementsprechend kann auf der Grundlage der am besten übereinstimmenden virtuellen Maschinenvorlage eine große Vielfalt von Konfigurationen von virtuellen Maschinen bereitgestellt werden, indem verschiedene Softwareelemente mit hoher Effizienz hinzugefügt werden. Das jeweilige System zum Ausführen dieses Verfahrens weist eine Softwareelement-Datenbank auf, die installierbare Dateien für Softwareelemente enthält. Die Softwareelement-Datenbank kann alle angebotenen Softwareelemente oder nur die am häufigsten verwendeten Softwareelemente enthalten, sodass die weniger häufig verwendeten Softwareelemente im Bedarfsfall von einer anderen Datenbank angefordert werden müssen. Die Softwareelement-Datenbank kann auf jeder beliebigen Art eines Servers in dem IT-Netzwerk oder sogar außerhalb in einer Fremdanbieter-Datenbank bereitgestellt werden.
  • Gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung speichert der virtuelle Maschinenkonfigurator Anforderungen für Softwareelemente einer virtuellen Maschine in einer Anforderungsdatenbank und fügt der Bibliothek eine virtuelle Maschinenvorlage gemäß den gespeicherten Anforderungen für Softwareelemente einer virtuellen Maschine hinzu. Dies gestattet, dass die Bibliothek für virtuelle Maschinenvorlagen immer mit einer Gruppe der geeignetsten virtuellen Maschinenvorlagen ausgestattet ist, die einer großen Anzahl von Anforderungen entsprechen. Die Art von Informationen, die in der Anforderungsdatenbank gespeichert werden, kann verschieden sein und zum Beispiel Namen und Versionen von angeforderten Softwareelementen sowie bestimmte Gruppen von Softwareelementen aufweisen, die zusammen berücksichtigt werden müssen. Auch die Häufigkeit oder die Gesamtanzahl von Verwendungen einer vorhandenen virtuellen Maschinenvorlage kann in der Anforderungsdatenbank gespeichert werden. Ferner kann die Auswertung von Anforderungen für Softwareelemente abhängig von einer Software-Hierarchieebene einzeln gespeichert werden. Wenn eine virtuelle Maschinenvorlage hinzugefügt wird, kann in dem Fall von begrenzten Ressourcen der Bibliothek eine vorhandene virtuelle Maschinenvorlage zur selben Zeit aus der Bibliothek entfernt oder gelöscht werden. Ein Auswahlprozess für die virtuelle Bibliotheksvorlage, die entfernt werden soll, kann ähnlich dem beschriebenen Verfahren zum Auswählen einer virtuellen Maschinenvorlage, die hinzugefügt werden soll, angewendet werden. Virtuelle Maschinenvorlagen, die der Bibliothek hinzugefügt werden sollen, können aus verschiedenen Datenbanken, tatsächlich verwendeten virtuellen Maschinen gemäß Benutzeranforderungen oder manuell erstellten, z. B. von einem Systemadministrator erstellten virtuellen Maschinenvorlagen bereitgestellt werden. Das jeweilige System enthält die Anforderungsdatenbank, die entweder auf derselben Hardware-Plattform wie der virtuelle Maschinenkonfigurator oder an einer anderen Stelle innerhalb des IT-Netzwerks bereitgestellt werden kann. Die Anforderungsdatenbank kann auch in einem externen Netzwerk bereitgestellt werden.
  • In einer ebenfalls bevorzugten Ausführungsform der vorliegenden Erfindung erstellt der virtuelle Maschinenkonfigurator automatisch eine virtuelle Maschinenvorlage, die der Bibliothek gemäß den Anforderungen für Softwareelemente einer virtuellen Maschine hinzugefügt werden soll. Das automatische Erzeugen der virtuellen Maschinenvorlage kann ohne menschliches Eingreifen durch Mittel ausgeführt werden, die denjenigen ähnlich sind, die zum Installieren von Softwareelementen in vorhandenen virtuellen Maschinenvorlagen verwendet werden.
  • Gemäß einer modifizierten Ausführungsform der vorliegenden Erfindung weist das Hinzufügen einer virtuellen Maschinenvorlage zu der Bibliothek gemäß den gespeicherten Anforderungen für Softwareelemente einer virtuellen Maschine das Überprüfen auf, ob Softwareelemente, die in keiner in der Bibliothek bereitgestellten virtuellen Maschinenvorlage enthalten sind, mindestens einige Male angefordert worden sind. Ein Schwellenwert kann definiert werden, um einen Grenzwert bereitzustellen, sodass eine virtuelle Maschinenvorlage zu der Bibliothek hinzugefügt wird, wenn der Schwellenwert gemäß der Anforderungsdatenbank erreicht worden ist. Der Schwellenwert kann dynamisch modifiziert werden, z. B. um die Anzahl der bereits vorhandenen virtuellen Maschinenvorlagen und eine Kapazität der Bibliothek zu berücksichtigen. Ein derartiger Schwellenwert kann für komplette Gruppen von Softwareelementen definiert werden, die eine virtuelle Maschine bilden, oder er kann auf Softwareelementen einer Hierarchieebene beruhen. Außerdem können einzelne Softwareelemente einer Software-Hierarchieebene berücksichtigt werden, wenn sie häufig angefordert werden. Wenn die virtuelle Maschinenvorlage, die hinzugefügt werden soll, eine vorhandene virtuelle Maschinenvorlage ersetzt, kann die zu entfernende virtuelle Maschinenvorlage auf eine Weise ausgewählt werden, die derjenigen ähnlich ist, die für das Hinzufügen der virtuellen Maschinenvorlage beschrieben wurde. Zum Beispiel kann die am wenigsten häufig ausgewählte virtuelle Maschinenvorlage aus der Bibliothek entfernt werden. Ein Ersetzen kann auch angewendet werden, wenn eine bestimmte Konfiguration von Softwareelementen einer virtuellen Maschine, die in der Bibliothek bereits als eine virtuelle Maschinenvorlage dargestellt ist, weniger häufig angefordert wird als eine andere Konfiguration, die der Bibliothek noch nicht hinzugefügt worden ist.
  • In einer modifizierten Ausführungsform der vorliegenden Erfindung weist das Hinzufügen einer virtuellen Maschinenvorlage zu der Bibliothek gemäß den gespeicherten Anforderungen für Softwareelemente einer virtuellen Maschine das Überprüfen auf, ob Softwareelemente, die in keiner in der Bibliothek bereitgestellten virtuellen Maschinenvorlage enthalten sind, häufiger angefordert worden sind als mindestens eine virtuelle Maschinenvorlage, die in der Bibliothek bereitgestellt wird. Die Häufigkeit der Verwendung kann innerhalb einer kurzen Zeit eine zunehmende Bedeutung eines Softwareelements angeben.
  • Die Aufgabe der vorliegenden Erfindung kann auch durch ein computerlesbares Medium gelöst werden, wie beispielsweise eine Speichereinheit, eine Diskette, CD, DVD, Blu-Ray-Disk oder einen Direktzugriffsspeicher (RAM), das eine Anweisungsgruppe enthält, die einen Computer veranlasst, ein Verfahren gemäß einem der vorhergehenden Verfahrensansprüche auszuführen. Ferner kann die Aufgabe durch ein Computerprogrammprodukt gelöst werden, das ein computerverwendbares Medium aufweist, das einen von einem Computer verwendbaren Programmcode enthält, wobei der von einem Computer verwendbare Programmcode geeignet ist, das Verfahren nach irgendeinem der vorhergehenden Ansprüche auszuführen.
  • Für einen Fachmann ist klar, dass Aspekte der vorliegenden Erfindung als ein System, Verfahren oder Computerprogrammprodukt verkörpert werden können. Dementsprechend können Aspekte der vorliegenden Erfindung in Gestalt einer vollständigen Hardware-Ausführung, einer vollständigen Software-Ausführung (darunter Firmware, residente Software, Mikrocode usw.) oder einer Ausführungsform vorliegen, die Software- und Hardware-Aspekte kombiniert, auf die alle hierin allgemein als „Schaltung”, „Modul” oder „System” Bezug genommen werden kann. Des Weiteren können Aspekte der vorliegenden Erfindung die Gestalt eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien mit einem darin ausgeführten computerlesbaren Programmcode ausgeführt ist.
  • Jede Kombination von einem oder mehreren computerlesbaren Medien kann verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Ein computerlesbares Speichermedium kann zum Beispiel ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine derartige Vorrichtung oder Einheit oder jede geeignete Kombination aus dem Vorgenannten sein, ist aber nicht darauf beschränkt. Zu spezielleren Beispielen (eine nicht erschöpfende Liste) für das computerlesbare Speichermedium würden folgende zählen: eine elektrische Verbindung mit einer oder mehreren Drahtleitungen, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer CD-ROM, eine optische Speichereinheit, eine Magnetspeichereinheit oder jede geeignete Kombination des Vorgenannten. In dem Kontext dieses Dokuments kann ein computerlesbares Speichermedium jedes konkrete Medium sein, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Anweisungsausführung enthalten oder speichern kann.
  • Ein computerlesbares Signalmedium kann ein verbreitetes Datensignal mit einem darin integrierten computerlesbaren Programmcode enthalten, zum Beispiel im Basisband oder als Teil einer Trägerwelle. Ein derartiges verbreitetes Signal kann jede von einer Vielfalt von Formen annehmen, darunter elektromagnetisch, optisch oder jede geeignete Kombination davon, ist aber nicht darauf beschränkt. Ein computerlesbares Signalmedium kann jedes computerlesbare Medium sein, das kein computerlesbares Speichermedium ist, und das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Anweisungsausführung übertragen, verbreiten oder transportieren kann.
  • In einem computerlesbaren Medium integrierter Programmcode kann unter Verwendung jedes geeigneten Mediums übertragen werden, darunter drahtlos, drahtgebunden, über ein Lichtwellenleiterkabel, HF usw. oder eine geeignete Kombination des Vorgenannten, ist aber nicht darauf beschränkt.
  • Computerprogrammcode zum Ausführen von Operationen für Aspekte der vorliegenden Erfindung kann in jeder Kombination von einer oder mehreren Programmiersprachen geschrieben werden, einschließlich eine objektorientierten Programmiersprache wie Java, Smalltalk, C++ oder dergleichen und herkömmlichen prozeduralen Programmiersprachen wie der Programmiersprache „C” oder ähnlichen Programmiersprachen. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In dem letzteren Szenario kann der ferne Computer mit dem Computer des Benutzers über jeden Typ von Netzwerk verbunden werden, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Nutzung eines Internet-Dienstanbieters).
  • Aspekte der vorliegenden Erfindung werden im Folgenden unter Bezugnahme auf Ablaufplan-Veranschaulichungen und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block in den Ablaufplan-Veranschaulichungen und/oder Blockschaubildern und Kombinationen von Blöcken in den Ablaufplan-Veranschaulichungen und/oder Blockschaubildern durch Computerprogrammanweisungen implementiert werden können. Diese Computerprogrammanweisungen können für einen Prozessor eines Mehrzweckcomputers, eines Spezialcomputers oder andere Vorrichtungen, die programmierbare Daten verarbeiten, bereitgestellt werden, um eine Maschine zu erzeugen, so dass die Anweisungen, die über den Prozessor des Computers oder andere Vorrichtungen, die programmierbare Daten verarbeiten, ausgeführt werden, Mittel zum Implementieren der Funktionen/Handlungen erstellen, die in dem Block oder den Blöcken von Ablaufplan und/oder Blockschaubild angegeben sind.
  • Diese Computerprogrammanweisungen können auch in einem computerlesbaren Medium gespeichert werden, das einen Computer, eine andere Vorrichtung, die programmierbare Daten verarbeitet, oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Weise funktionieren, sodass die in dem computerlesbaren Medium gespeicherten Anweisungen einen Fertigungsartikel erzeugen, einschließlich Anweisungen, die die in dem Block oder den Blöcken von Ablaufplan und/oder Blockschaubild angegebene Funktion/Handlung implementieren.
  • Die Computerprogrammanweisungen können auch auf einen Computer, eine andere Vorrichtung, die programmierbare Daten verarbeitet, oder andere Einheiten geladen werden, um die Ausführung einer Serie von Vorgangsschritten auf dem Computer, einer anderen Vorrichtung, die programmierbare Daten ausführt, oder anderen Einheiten zu veranlassen, um einen auf einem Computer implementierten Prozess zu erzeugen, sodass die Anweisungen, die auf dem Computer oder einer anderen programmierbaren Vorrichtung ausgeführt werden, Prozesse zum Implementieren der Funktionen/Handlungen bereitstellen, die in dem Block oder den Blöcken des Ablaufplans und/oder des Blockschaubilds angegeben sind.
  • KURZE BESCHREIBUNG DER VERSCHIEDENEN ANSICHTEN DER ZEICHNUNGEN
  • Bevorzugte Ausführungsformen der Erfindung sind in den begleitenden Figuren veranschaulicht. Diese Ausführungsformen sind rein beispielhaft, d. h., sie sollen den Inhalt und Schutzumfang der Ansprüche im Anhang nicht einschränken.
  • 1 zeigt eine schematische Darstellung des Systems zum Ausführen des Verfahrens gemäß der vorliegenden Erfindung in Verbindung mit einem Hypervisor.
  • 2 zeigt einen Ablaufplan des Verfahrens gemäß der vorliegenden Erfindung.
  • 3 zeigt einen Ablaufplan von Verfahrensschritten zum Bereitstellen einer virtuellen Maschine auf der Grundlage einer vorhandenen virtuellen Maschinenvorlage, und
  • 4 zeigt einen Ablaufplan von Verfahrensschritten zum Bereitstellen einer virtuellen Maschine von Grund auf.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Unter folgender Bezugnahme auf 1 ist ein System 1 zum Bereitstellen einer virtuellen Maschine gemäß einer Spezifikation eines Benutzers zu sehen. Das System 1 weist einen virtuellen Maschinenkonfigurator 2 auf, bei dem es sich um ein Computerprogrammprodukt mit einem von einem Computer verwendbaren Programmcode handelt. Der virtuelle Maschinenkonfigurator 2 wird auf einer Server-Hardware ausgeführt, die in 1 nicht explizit gezeigt ist. Der virtuelle Maschinenkonfigurator 2 befindet sich in einem nicht explizit gezeigten IT-Netzwerk und ist darüber mit einer virtuellen Maschinenvorlagenbibliothek 3 verbunden, die 1 bis n virtuelle Maschinenvorlagen 4 enthält. Die virtuellen Maschinenvorlagen 4 in dieser Ausführungsform enthalten ein Software-Abbild und Konfigurationsinformationen, die das Bereitstellen und Ausführen des Abbilds ermöglichen.
  • Das System 1 weist ferner eine Softwareelement-Datenbank 5 auf, die verschiedene Softwareelemente zum Aufbauen von virtuellen Maschinenvorlagen 4 oder für die Installation auf einer virtuellen Maschinenvorlage 4 enthalten.
  • Ferner weist das System 1 eine Benutzeranforderungsdatenbank 6 auf, die ebenfalls über das IT-Netzwerk mit dem virtuellen Maschinenkonfigurator 2 verbunden ist. Die Benutzeranforderungsdatenbank 6 ist in der Lage, Benutzeranforderungen zu speichern, die über eine Benutzerschnittstelle 7 eingegeben werden, die von dem virtuellen Maschinenkonfigurator 2 bereitgestellt wird. Die Benutzerschnittstelle 7 wird auf einem Client-System bereitgestellt, das mit dem virtuellen Maschinenkonfigurator 2 über das IT-Netzwerk verbunden ist. Das System 1 der vorliegenden Erfindung ist gemäß 1 über das IT-Netzwerk mit einem Hypervisor 8 verbunden, der in dieser Ausführungsform eine einzelne Hochleistungs-Computerhardware ist, um darauf mehrere virtuelle Maschinen 9 zu beherbergen.
  • Dementsprechend können die virtuellen Maschinen 9 auf dem Hypervisor 8 ausgeführt werden, ohne die zugrunde liegende Hardware zu berücksichtigen.
  • Unter folgender Bezugnahme auf 2 wird das allgemeine Verfahren der vorliegenden Erfindung zum Bereitstellen einer virtuellen Maschine 9 gemäß einer Spezifikation eines Benutzers gezeigt. In Schritt 100 stellt ein Benutzer, der in 1 nicht gezeigt ist, über die Benutzerschnittstelle 7 eine Verbindung zu dem virtuellen Maschinenkonfigurator 2 her. Der virtuelle Maschinenkonfigurator 2 stellt in der Benutzerschnittstelle 7 verfügbare Softwareelemente entsprechend Software-Hierarchieebenen für den Benutzer bereit. Die Software-Hierarchieebenen in dieser Ausführungsform sind eine Betriebssystemebene, eine Middleware-Ebene, eine Anwendungsebene und eine Dienstprogrammebene. Der Benutzer trifft eine Auswahl von mindestens einem Softwareelement, und diese Auswahl wird als Anforderung über das IT-Netzwerk zu dem virtuellen Maschinenkonfigurator 2 übertragen.
  • In Schritt 110 wird die Anforderung des Benutzers von dem virtuellen Maschinenkonfigurator 2 zu der Benutzeranforderungsdatenbank 6 übertragen und zur weiteren Bewertung gespeichert. Dennoch kann die Benutzeranforderung grundsätzlich jederzeit in der Benutzeranforderungsdatenbank 6 gespeichert werden, solange die Benutzeranforderung von dem virtuellen Maschinenkonfigurator 2 verarbeitet wird.
  • Auf der Grundlage der Benutzeranforderung aus Schritt 100 berechnet der virtuelle Maschinenkonfigurator 2 in Schritt 120 einen Punktzahlwert für alle virtuellen Maschinenvorlagen 4 aus der virtuellen Maschinenvorlagenbibliothek 3. Die Berechnung der Punktzahl beruht auf den Software-Hierarchieebenen und wird zum Beispiel mit einem Satz von drei virtuellen Maschinenvorlagen 4 erklärt. Die verschiedenen virtuellen Maschinenvorlagen 4 haben die folgende Konfiguration:
  • Virtuelle Maschinenvorlage Nr. 1:
    • – Windows 2003 Server SP2
  • Virtuelle Maschinenvorlage Nr. 2:
    • – Linux Red Hat ES 4.0
    • – IBM DB2 9.1
    • – WinZip 9.0
  • Virtuelle Maschinenvorlage Nr. 3:
    • – Linux Suse 9.0
    • – IBM Websphere Server 6.1
    • – IBM DB2 8.5
    • – IBM ITDS 6.0
    • – TPM 7.1
  • Jedem der Softwareelemente in irgendeiner der virtuellen Maschinenvorlagen ist gemäß der folgenden Liste eine Punktzahl zugewiesen. Die Liste kennzeichnet auch die Software-Hierarchieebene jedes Softwareelements:
    Softwareelement-Name und -Version Software-Hierarchieebene Punktzahl
    Windows 2003 Server SP2 Betriebssystem 100.000
    Linux Red Hat ES 4.0 Betriebssystem 100.000
    Linux Suse 9.0 Betriebssystem 100.000
    IBM Websphere Server 6.1 Middleware 15.000
    IBM DB2 9,1 Middleware 10.000
    IBM DB2 8.5 Middleware 10.000
    IBM ITDS 6.0 Middleware 8.000
    TPM 7.1 Anwendung 1.000
    WinZip 9.0 Dienstprogramm 50
  • Bei den Punktzahlen, die den verschiedenen Softwareelementen zugewiesen sind, ist wichtig, dass die Summe der Punktzahlen für alle Softwareelemente aus jeder Software-Hierarchieebene unter der niedrigsten Punktzahl eines Softwareelements aus der jeweils oberen Software-Hierarchieebene liegt. In diesem Beispiel beträgt die Summe der Punktzahlen der Softwareelemente aus der Middleware-Ebene 43.000, wogegen alle Betriebssysteme, die die obere Software-Hierarchieebene definieren, eine Punktzahl von 100.000 haben.
  • Angenommen, der Benutzer fordert eine virtuelle Maschine an, die Windows 2003 Server SP2 mit IBM DB2 9.1 und WinZip 9.0 aufweist.
  • Dementsprechend werden die Punktzahlwerte für die drei virtuellen Maschinenvorlagen 4 wie folgt berechnet, wobei die angewendete Punktzahl jedes Softwareelements in Klammern angegeben ist):
    Virtuelle Maschinenvorlage Nr. 1: Punktzahlwert
    +100.000
    Windows 2003 Server SP2 (+100.000)
    Virtuelle Maschinenvorlage Nr. 2: Punktzahlwert –89.950
    Linux Red Hat ES 4.0 (–100.000)
    IBM DB2 9,1 (+10.000)
    WinZip 9.0 (+50)
    Virtuelle Maschinenvorlage Nr. 3: Punktzahlwert
    –134.000
    Linux Suse 9.0 (–100.000)
    IBM Websphere Server 6.1 (–15.000)
    IBM DB2 8.5 (–10.000)
    IBM ITDS 6.0 (–8.000)
    TPM 7.1 (–1.000)
  • Es ist anzumerken, dass eine Übereinstimmung nur berücksichtigt wird, wenn der Name sowie die Versionsnummer eines Softwareelements übereinstimmen. Im Fall einer Übereinstimmung wird die positive Punktzahl angewendet, d. h. die Punktzahl wird zu dem Punktzahlwert einer virtuellen Maschinenvorlage 4 hinzugefügt. Andernfalls wird die negative Punktzahl angewendet, d. h. die Punktzahl wird von dem jeweiligen Punktzahlwert abgezogen. Insgesamt hat nur die erste virtuelle Maschinenvorlage 4 einen positiven Punktzahlwert, wogegen der Punktzahlwert der anderen virtuellen Maschinenvorlagen 4 negativ ist.
  • In Schritt 130 werden die Punktzahlwerte der drei virtuellen Maschinenvorlagen 4 verglichen, und die virtuelle Maschinenvorlage 4 mit der höchsten Punktzahl wird ausgewählt, in diesem Fall die virtuelle Maschinenvorlage Nr. 1.
  • Anschließend wird gemäß Schritt 140 eine Überprüfung ausgeführt, ob die virtuelle Maschinenvorlage 4 verglichen mit der Benutzeranforderung aus Schritt 100 geeignet ist. Daher wird in dieser Ausführungsform der Punktzahlwert analysiert, um zu überprüfen, ob er über einem gewissen Schwellenwert liegt. Andere Entscheidungsmittel, ob die virtuelle Maschinenvorlage 4 geeignet ist, können ebenfalls angewendet werden. Wenn die virtuelle Maschinenvorlage 4 als geeignet betrachtet wird, fährt das Verfahren mit Schritt 150 fort, andernfalls mit Schritt 160.
  • In Schritt 150 stellt der virtuelle Maschinenkonfigurator 2 die virtuelle Maschinenvorlage 4 zur Freigabe bereit, wie in 3 gezeigt.
  • Dementsprechend wird in Schritt 200 ein Verwendungszähler für die virtuelle Maschinenvorlage 4 erhöht und als historische Daten in der Benutzeranforderungsdatenbank 6 gespeichert.
  • Gemäß Schritt 210 wird das Bild der virtuellen Maschine 9 aus der virtuellen Maschinenvorlagenbibliothek 3 auf den Hypervisor 8 kopiert.
  • In Schritt 220 wird eine XML-Datei erstellt, die erforderliche Instanz-Einstellungen enthält, bevor die virtuelle Maschine 9 auf dem Hypervisor 8 ausgeführt wird. Diese Einstellungen enthalten einen Netzwerk-Hostnamen, eine IP-Adresse usw.
  • In einem Schritt 230 wird die XML-Datendatei auf eine virtuelle Diskette kopiert, die auch als V-Floppy bezeichnet wird, und an die virtuelle Maschine 9 angehängt. Wenn die virtuelle Maschine auf dem Hypervisor hochgefahren wird, wird die virtuelle Diskette automatisch für eine Aktivierungsmaschine auf dem Hypervisor 8 sichtbar.
  • Die virtuelle Maschine 9 wird in Schritt 240 eingeschaltet. Dementsprechend wird die Ausführung der Aktivierungsskripte unter Verwendung der Informationen auf der Parameterdatei der V-Floppy automatisch ausgelöst.
  • Gemäß einem Schritt 250 erstellt der virtuelle Maschinenkonfigurator 2 eine Liste mit Softwareelementen, die von dem Benutzer im Schritt 100 festgelegt worden sind, aber in der ausgewählten virtuellen Maschinenvorlage 4 nicht enthalten sind.
  • Die Installation der fehlenden Softwareelemente erfolgt in Schritt 260. Die fehlenden Softwareelemente werden aus der Softwareelement-Datenbank 5 abgerufen und auf die virtuelle Maschine 9 kopiert.
  • Gemäß Schritt 270 wird die Installation der Softwareelemente auf der virtuellen Maschine gestartet. In dieser Ausführungsform werden die erforderlichen Softwareelemente anschließend auf der Grundlage der Software-Hierarchieebenen installiert, beginnend mit den Softwareelementen der höchsten Software-Hierarchieebene. Das Verfahren fährt dann mit Schritt 170 fort.
  • Wenn die in Schritt 130 ausgewählte virtuelle Maschinenvorlage 4 in Schritt 140 als nicht geeignet betrachtet wird, wird gemäß Schritt 160 eine neue virtuelle Maschine 9 von Grund auf neu erstellt. Die Details von Schritt 160 sind in 4 zu sehen.
  • Dementsprechend erstellt der virtuelle Maschinenkonfigurator 2 in Schritt 300 eine neue virtuelle Maschine 9 und führt die Konfiguration seiner Hardware-Ressourcen aus.
  • In Schritt 310 wird die virtuelle Maschine 9 auf dem Hypervisor 8 gestartet, und die Abbilddatei des Betriebssystems wird aus der Softwareelemente-Bibliothek 5 abgerufen, sodass die Installation des Betriebssystems gestartet werden kann.
  • In Schritt 320 werden alle erforderlichen Softwareelemente gemäß der durch den Benutzer in Schritt 100 angeforderten Konfiguration aus der Softwareelement-Bibliothek 5 abgerufen und auf der virtuellen Maschine installiert. Das Verfahren fährt dann mit Schritt 170 fort.
  • In Schritt 170 gibt der virtuelle Maschinenkonfigurator 2 die virtuelle Maschine 9 für den Benutzer zur Ausführung auf dem Hypervisor 8 frei, unabhängig davon, ob die virtuelle Maschine 9 auf einer vorhandenen virtuellen Maschinenvorlage 4 aus der virtuellen Maschinenvorlagenbibliothek 3 gemäß Schritt 150 beruhte oder gemäß Schritt 160 von Grund auf neu erstellt wurde.
  • An jedem beliebigen Punkt des oben beschriebenen Verfahrens, einschließlich vor dem beschriebenen Verfahren oder danach, können historische Daten der Anforderung analysiert werden, um zu bewerten, ob die virtuelle Maschinenvorlagenbibliothek 3 durch Hinzufügen einer virtuellen Maschinenvorlage 4 oder durch Ersetzen einer vorhandenen virtuellen Maschinenvorlage 4 durch eine andere virtuelle Maschinenvorlage 4 aktualisiert werden muss. Virtuelle Maschinenvorlagen 4, die hinzugefügt werden sollen, können gemäß den Schritten 300 bis 320 von Grund auf neu erstellt werden, wie in 4 gezeigt, oder sie können auf vorhandenen virtuellen Maschinenvorlagen 4 aufbauen, die gemäß den Schritten 200 bis 270 gemäß 3 mit zusätzlichen Softwareelementen aktualisiert werden.
  • Gemäß der vorliegenden Ausführungsform beruht die Bewertung, ob die virtuelle Maschinenvorlagenbibliothek 3 aktualisiert werden muss, auf den Startsoftware-Hierarchieebenen. Die Anzahl von früheren Bereitstellungsanforderungen, die mit der Konfiguration, beginnend mit der höchsten Software-Hierarchieebene, übereinstimmen, wird mit einem gewissen Schwellenwert verglichen. Genauer gesagt, die Benutzeranforderungen werden zuerst nur in Bezug auf die Betriebssystemebene berücksichtigt, danach werden sie nach Betriebssystemebene und Middleware-Ebene berücksichtigt, ferner wird zusätzlich die Anwendungsebene berücksichtigt, und schließlich werden die Betriebssystemebene, die Middleware-Ebene, die Anwendungsebene und die Dienstprogrammebene berücksichtigt. Falls der Schwellenwert überschritten wird, wird die virtuelle Maschine 9, die die jeweilige Konfiguration enthält, als Kandidat für eine Vorlage gekennzeichnet. Der Kandidat wird nach der Erstellung der virtuellen Maschinenvorlagenbibliothek 3 hinzugefügt, wie vorher bereits beschrieben.
  • Wenn die Kapazität der virtuellen Maschinenvorlagenbibliothek 3 ihre Grenze erreicht, wird die am wenigsten häufig angeforderte virtuelle Maschinenvorlage 4 aus der virtuellen Maschinenvorlagenbibliothek 3 entfernt. Auf diese Weise enthält die virtuelle Maschinenvorlagenbibliothek 3 immer die am besten geeigneten virtuellen Maschinenvorlagen 4, sodass die Bereitstellung einer virtuellen Maschine 9 für einen Benutzer auch automatisch auf eine effiziente Weise ausgeführt werden kann.
  • Der Ablaufplan und die Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb von möglichen Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. Diesbezüglich kann jeder Block in dem Ablaufplan oder in den Blockschaubildern ein Modul, ein Segment oder einen Codeabschnitt darstellen, der einen oder mehrere ausführbare Anweisungen zum Implementieren der angegebenen logischen Funktion(en) aufweist. Es ist ebenfalls anzumerken, dass in einigen alternativen Ausführungen die in dem Block angegebenen Funktionen in einer anderen Reihenfolge auftreten können als in den Figuren angegeben. Zum Beispiel können zwei nacheinander gezeigte Blöcke tatsächlich im Wesentlichen parallel ausgeführt werden, oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden, was von der beteiligten Funktionalität abhängt. Es wird ebenfalls angemerkt, dass jeder Block in den Blockschaubildern und/oder in der Ablaufplan-Veranschaulichung und Kombinationen von Blöcken in den Blockschaubildern und/oder der Ablaufplan-Veranschaulichung durch spezielle Systeme auf der Grundlage von Hardware, die die angegebenen Funktionen oder Handlungen ausführen, oder Kombinationen von spezieller Hardware und Computeranweisungen ausgeführt werden können.

Claims (12)

  1. Verfahren zum Bereitstellen einer virtuellen Maschine (9) gemäß einer Spezifikation zur Verwendung auf einem Hypervisor (8), wobei die Spezifikation Softwareelemente von verschiedenen Software-Hierarchieebenen betrifft, wobei das Verfahren aufweist: – Bereitstellen von virtuellen Maschinenvorlagen in einer Bibliothek (3); – Bereitstellen einer Benutzerschnittstelle (7) zum Festlegen von Softwareelementen gemäß den Software-Hierarchieebenen; – Zuweisen von Punktzahlen zu den Softwareelementen gemäß ihren Software-Hierarchieebenen; – Berechnen eines Punktzahlwerts für alle virtuellen Maschinenvorlagen (4) aus der Bibliothek (3) auf der Grundlage der Punktzahlen, die den Softwareelementen zugewiesen sind; – Auswählen der virtuellen Maschinenvorlage (4), die den höchsten Punktzahlwert hat, aus der Bibliothek (3); und – Bereitstellen der ausgewählten virtuellen Maschinenvorlage (4) als eine virtuelle Maschine (9) für den Hypervisor (8).
  2. Verfahren nach Anspruch 1, wobei der Schritt des Zuweisens von Punktzahlen zu den Softwareelementen das Zuweisen von verschiedenen Punktzahlen für eine Betriebssystemebene, eine Middleware-Ebene, eine Anwendungsebene und eine Dienstprogrammebene aufweist, wobei die Betriebssystemebene die höchste und die Dienstprogrammebene die niedrigste Software-Hierarchieebene ist.
  3. Verfahren nach einem der Ansprüche 1 oder 2, wobei der Schritt des Zuweisens von Punktzahlen das Zuweisen von Punktzahlen zu jedem Softwareelement einer Software-Hierarchieebene aufweist, sodass die Summe der Punktzahlen aller Softwareelemente einer gewissen Software-Hierarchieebene unter der Punktzahl jedes Softwareelements der Software-Hierarchieebene darüber liegt.
  4. Verfahren nach einem der vorhergehenden Ansprüche, wobei der Schritt des Zuweisens von Punktzahlen das Berücksichtigen eines Softwareelements als eine Übereinstimmung aufweist, wenn ein Softwareelement-Name und eine Softwareelement-Version übereinstimmen.
  5. Verfahren nach einem der vorhergehenden Ansprüche, wobei der Schritt des Berechnens eines Punktzahlwerts für alle virtuellen Maschinenvorlagen für jedes Softwareelement, das in jeder virtuellen Maschinenvorlage (4) bereitgestellt wird, das Hinzufügen seiner Punktzahl zu dem Punktzahlwert aufweist, wenn das Softwareelement von dem Benutzer angefordert wird, und das Abziehen seiner Punktzahl von dem Punktzahlwert, wenn das Softwareelement von dem Benutzer nicht angefordert wird.
  6. Verfahren nach einem der vorhergehenden Ansprüche, wobei es das Verbinden mit einer Softwareelement-Datenbank (5) aufweist, die installierbare Dateien von Softwareelementen enthält und automatisch Softwareelemente, die von dem Benutzer festgelegt werden, aber in der virtuellen Maschinenvorlage (4) nicht bereitgestellt sind, aus der Softwareelemente-Datenbank (5) auf der virtuellen Maschine (9) installiert.
  7. Verfahren nach einem der vorhergehenden Ansprüche, wobei es das Speichern von Anforderungen für Softwareelemente einer virtuellen Maschine (9) in einer Anforderungsdatenbank (6) aufweist, wobei eine virtuelle Maschinenvorlage (4) zu der Bibliothek (3) abhängig von den gespeicherten Anforderungen hinzugefügt wird.
  8. Verfahren nach Anspruch 7, wobei der Schritt des Hinzufügens einer virtuellen Maschinenvorlage (4) zu der Bibliothek (3) gemäß den gespeicherten Anforderungen für Softwareelemente einer virtuellen Maschine (9) das Überprüfen einer Bedingung aufweist, die die Anzahl betrifft, wie oft die Softwareelemente angefordert worden sind, wenn die Softwareelemente in keiner virtuellen Maschinenvorlage (4) enthalten sind.
  9. Verfahren nach Anspruch 8, wobei die Bedingung das Überprüfen aufweist, ob die Softwareelemente häufiger angefordert werden als mindestens eine virtuelle Maschinenvorlage (4), die in der Bibliothek (3) bereitgestellt ist.
  10. Computerlesbares Medium wie beispielsweise eine Speichereinheit, eine Diskette, CD, DVD, Blu-Ray-Disk oder ein Direktzugriffsspeicher (RAM), das einen Satz von Anweisungen enthält, die einen Computer veranlassen, ein Verfahren gemäß einem der vorhergehenden Verfahrensansprüche auszuführen.
  11. Computerprogrammprodukt, das ein computerverwendbares Medium aufweist, das einen computerverwendbaren Programmcode enthält, wobei der computerverwendbare Programmcode in der Lage ist, das Verfahren nach irgendeinem der vorhergehenden Ansprüche auszuführen.
  12. System (1), das ein Mittel aufweist, welches zum Ausführen des Verfahrens nach einem der Ansprüche 1 bis 9 geeignet ist.
DE112011103829.1T 2010-11-19 2011-10-26 Verfahren und System zum Erzeugen einer virtuellen Maschine auf der Grundlage von Vorlagen Active DE112011103829B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP10191899.3 2010-11-19
EP10191899 2010-11-19
PCT/EP2011/068695 WO2012065815A1 (en) 2010-11-19 2011-10-26 Method and system for generating a virtual machine based on templates

Publications (2)

Publication Number Publication Date
DE112011103829T5 true DE112011103829T5 (de) 2013-08-22
DE112011103829B4 DE112011103829B4 (de) 2022-08-25

Family

ID=44863032

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112011103829.1T Active DE112011103829B4 (de) 2010-11-19 2011-10-26 Verfahren und System zum Erzeugen einer virtuellen Maschine auf der Grundlage von Vorlagen

Country Status (4)

Country Link
US (2) US8584121B2 (de)
DE (1) DE112011103829B4 (de)
GB (1) GB2499171A (de)
WO (1) WO2012065815A1 (de)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8352415B2 (en) * 2010-06-15 2013-01-08 International Business Machines Corporation Converting images in virtual environments
US9116735B2 (en) * 2012-03-07 2015-08-25 Microsoft Technology Licensing, Llc Offline provisioning of virtual machines
FR2991075B1 (fr) * 2012-05-25 2015-03-06 Schneider Electric Ind Sas Procede de gestion du demarrage d'instances d'applications sur des machines virtuelles d'un resau distribue
US9135045B2 (en) * 2012-05-29 2015-09-15 International Business Machines Corporation Generating user-requested virtual machine templates from super virtual machine templates and cacheable patches
US10169000B2 (en) * 2012-05-30 2019-01-01 Red Hat Israel, Ltd. Provisioning composite applications using secure parameter access
US9250988B2 (en) * 2012-05-31 2016-02-02 International Business Machines Corporated Virtualization-based environments for problem resolution
EP2866141B1 (de) * 2012-06-26 2017-10-04 Nec Corporation Systemkonstruktionsvorrichtung und systemkonstruktionsverfahren
US9286051B2 (en) 2012-10-05 2016-03-15 International Business Machines Corporation Dynamic protection of one or more deployed copies of a master operating system image
US9208041B2 (en) 2012-10-05 2015-12-08 International Business Machines Corporation Dynamic protection of a master operating system image
US9311070B2 (en) 2012-10-05 2016-04-12 International Business Machines Corporation Dynamically recommending configuration changes to an operating system image
US8990772B2 (en) 2012-10-16 2015-03-24 International Business Machines Corporation Dynamically recommending changes to an association between an operating system image and an update group
US10127084B2 (en) * 2012-11-15 2018-11-13 Red Hat Israel, Ltd. Pre-provisioning resources for composite applications
GB2507978A (en) * 2012-11-15 2014-05-21 Ibm Updating virtual machine templates using feed data relating to the application
US9292318B2 (en) * 2012-11-26 2016-03-22 International Business Machines Corporation Initiating software applications requiring different processor architectures in respective isolated execution environment of an operating system
US9053446B2 (en) 2012-11-27 2015-06-09 International Business Machines Corporation Dynamically quantifying the demand of each software component of each software stack deployed in the cloud environment
US9218192B2 (en) * 2013-01-13 2015-12-22 International Business Machines Corporation Information handling device locally reproducing received defects by selecting an appropriate virtual machine image
US9471358B2 (en) * 2013-09-23 2016-10-18 International Business Machines Corporation Template provisioning in virtualized environments
US9851993B2 (en) * 2013-09-24 2017-12-26 International Business Machines Corporation Virtual machine template optimization
EP2881899B1 (de) 2013-12-09 2018-09-12 Deutsche Telekom AG System und Verfahren zur automatisierten Aggregation von Beschreibungen individueller Objektvarianten
US10176005B2 (en) * 2014-03-31 2019-01-08 Cypherpath, Inc. Environment virtualization
RU2573789C2 (ru) 2014-04-18 2016-01-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ запуска виртуальной машины
US10055240B2 (en) 2014-09-23 2018-08-21 At&T Intellectual Property I, L.P. Service creation and management
US10146567B2 (en) * 2014-11-20 2018-12-04 Red Hat Israel, Ltd. Optimizing virtual machine allocation to cluster hosts
US10078619B2 (en) 2014-12-16 2018-09-18 International Business Machines Corporation Dynamic association of application workload tiers to infrastructure elements in a cloud computing environment
US9575795B2 (en) * 2015-01-26 2017-02-21 Ca, Inc. Reverting a virtual resource to its base configuration using the snapshot image based on frequency the virtual resource is requested
US10956189B2 (en) * 2015-02-13 2021-03-23 Red Hat Israel, Ltd. Methods for managing virtualized remote direct memory access devices
US10025611B2 (en) * 2015-10-20 2018-07-17 International Business Machines Corporation Server build optimization
US9898323B2 (en) * 2015-11-18 2018-02-20 International Business Machines Corporation Composite virtual machine template for virtualized computing environment
US9542219B1 (en) * 2015-12-17 2017-01-10 International Business Machines Corporation Automatic analysis based scheduling of jobs to appropriate cloud resources
US10114702B2 (en) * 2016-01-06 2018-10-30 International Business Machines Corporation Method and system to discover and manage distributed applications in virtualization environments
US11385919B1 (en) * 2016-07-12 2022-07-12 Amazon Technologies, Inc. Machine image launch system
US10534628B2 (en) * 2017-05-19 2020-01-14 International Business Machines Corporation Deploying updates to virtual machine images based on differences in artifacts
US10915307B2 (en) 2018-02-22 2021-02-09 Cisco Technology, Inc. Automatically producing software images
US11221865B2 (en) * 2018-07-31 2022-01-11 Nutanix, Inc. Batch management of operations over virtualized entities

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7577722B1 (en) 2002-04-05 2009-08-18 Vmware, Inc. Provisioning of computer systems using virtual machines
US8843918B2 (en) 2005-12-30 2014-09-23 Sap Ag System and method for deployable templates
US7779389B2 (en) 2005-12-30 2010-08-17 Sap Ag System and method for dynamic VM settings
US8112527B2 (en) 2006-05-24 2012-02-07 Nec Corporation Virtual machine management apparatus, and virtual machine management method and program
US8327350B2 (en) 2007-01-02 2012-12-04 International Business Machines Corporation Virtual resource templates
US20080256535A1 (en) 2007-04-10 2008-10-16 Novell, Inc. Tessellated virtual machines for common computing goals
US20080256534A1 (en) 2007-04-12 2008-10-16 International Business Machines Corporation Method for improved image-customization by use of embedded metadata
US9304819B2 (en) 2007-05-29 2016-04-05 Red Hat, Inc. Virtual deployment
US20090164994A1 (en) 2007-12-20 2009-06-25 Virtual Computer, Inc. Virtual computing management systems and methods
US8312425B2 (en) 2008-03-31 2012-11-13 International Business Machines Corporation Dynamic template instantiation
US8543998B2 (en) 2008-05-30 2013-09-24 Oracle International Corporation System and method for building virtual appliances using a repository metadata server and a dependency resolution service
US8161479B2 (en) 2008-06-13 2012-04-17 Microsoft Corporation Synchronizing virtual machine and application life cycles
JP5446157B2 (ja) 2008-07-28 2014-03-19 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム
US7904540B2 (en) 2009-03-24 2011-03-08 International Business Machines Corporation System and method for deploying virtual machines in a computing environment

Also Published As

Publication number Publication date
US8595724B2 (en) 2013-11-26
US20120216199A1 (en) 2012-08-23
US20120131577A1 (en) 2012-05-24
US8584121B2 (en) 2013-11-12
GB201310112D0 (en) 2013-07-24
GB2499171A (en) 2013-08-07
DE112011103829B4 (de) 2022-08-25
WO2012065815A1 (en) 2012-05-24

Similar Documents

Publication Publication Date Title
DE112011103829B4 (de) Verfahren und System zum Erzeugen einer virtuellen Maschine auf der Grundlage von Vorlagen
DE112012004336B4 (de) System, Verfahren und Programmprodukt für kostenbewusste Auswahl von Vorlagen zum Bereitstellen von gemeinsam genutzten Ressourcen
DE112010004160T5 (de) Portieren virtueller Abbilder zwischen Plattformen
DE112012000693B4 (de) Ausführen einer Vielzahl von Instanzen einer Anwendung
DE112016003249T5 (de) Container-Bereitstellung auf Abhängigkeitsgrundlage
DE112011100094T5 (de) Verfahren und System zum Abstrahieren eines auf nichtfunktionalen Anforderungen beruhenden Einsatzes von virtuellen Maschinen
DE102016214786A1 (de) Anwendungsprofiling-Jobmanagement-System, -Programm und -Verfahren
DE112011103522T5 (de) Erstellung eines Multidimensionalen Modells von Software-Angeboten
DE102016103769A1 (de) Inkrementelle Replikation eines Quellen-Datasets
DE112018005167T5 (de) Aktualisieren von trainingsdaten
DE112010004784T5 (de) Effizientes Laden von Daten in den Speicher eines Rechnersystems
DE112012000444T5 (de) Ermitteln einer optimalen Datenverarbeitungsumgebung zum Ausführen eines Abbildes
DE112020000912T5 (de) Verwalten von software-programmen
DE112021006130T5 (de) Automatisierte orchestrierung von containern durch bewerten von mikrodiensten
DE112018005898T5 (de) Dynamische bereitstellung von software-funktionen
DE112016007336B4 (de) Informationsverarbeitungsvorrichtung, Vorrichtungszuweisungsverfahren undVorrichtungszuweisungsprogramm
DE112021004290T5 (de) Gemeinsames nutzen von zwischengespeicherten klassendaten in einer containerisierten umgebung
DE112012004793T5 (de) Verfahren und System zum Erzeugen einer virtuellen Anwendung
DE112015004564T5 (de) Ereignisgesteuerte Reoptimierung einer logisch partitionierten Umgebung zur Energieverwaltung
DE112018002954T5 (de) Bereitstellen eines konfigurationsabhängigen arbeitsablaufs
DE112019000402T5 (de) Chronologisch geordnetes out-of-place-aktualisierungs-schlüssel-wert-speichersystem
DE112021005636T5 (de) Migrieren von komplexen legacy-anwendungen
DE112021005927T5 (de) Patchen von arbeitsabläufen
DE102012221261A1 (de) Verfahren zum Zwischenspeichern und System zum Ausführen des Verfahrens zum Zwischenspeichern zum Betreiben eines mindestens einen Host-Computer aufweisenden Computerserversystems
DE112021003803T5 (de) Pool-verwaltung für den anwendungsstart in einer bordeinheit

Legal Events

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