DE102012215219A1 - Ermitteln von Verteilungen von Abbildmustern von virtuellen Maschinen in einer vernetzten Datenverarbeitungsumgebung - Google Patents

Ermitteln von Verteilungen von Abbildmustern von virtuellen Maschinen in einer vernetzten Datenverarbeitungsumgebung Download PDF

Info

Publication number
DE102012215219A1
DE102012215219A1 DE102012215219A DE102012215219A DE102012215219A1 DE 102012215219 A1 DE102012215219 A1 DE 102012215219A1 DE 102012215219 A DE102012215219 A DE 102012215219A DE 102012215219 A DE102012215219 A DE 102012215219A DE 102012215219 A1 DE102012215219 A1 DE 102012215219A1
Authority
DE
Germany
Prior art keywords
pool
patterns
instances
distribution
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
DE102012215219A
Other languages
English (en)
Inventor
Jason L. Anderson
Gregory Jensen Boss
Jeffery L. Coveyduc
Christopher W. Roach
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 DE102012215219A1 publication Critical patent/DE102012215219A1/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Ausführungsformen der vorliegenden Erfindung sehen eine Vorgehensweise zur Ermittlung von Verteilungen von Mustern von virtuellen Maschinen (VM) über Pools von VM-Instanzen auf der Grundlage von historischen Daten vor (z. B., um schnellere Bereitstellungszeiten zu erzielen). In einer typischen Ausführungsform wird eine gesamte Pool-Größe für einen Pool von VM-Instanzen ermittelt (z. B. auf der Grundlage von historischen Daten). Dann wird eine Verteilung eines Satzes von Mustern von VM-Instanzen über den Pool ermittelt (z. B. ebenfalls auf der Grundlage von historischen Daten). Sobald die Verteilung ermittelt worden ist, kann der Pool der VM-Instanzen entsprechend der Verteilung bereitgestellt werden. In einer Ausführungsform können die VM-Muster gleichmäßig über den Pool verteilt werden. In einer anderen Ausführungsform können die VM-Muster entsprechend Prozentsätzen verteilt werden, mit denen die VM-Muster zuvor angefordert worden waren. In noch einer anderen Ausführungsform können die VM-Muster zu zwei oder mehr Gruppen zusammengefasst werden, die (einer) bestimmten Benutzer-/Kundenebene(n) (z. B. der Ebene der Zugriffsrechte und/oder einer Berechtigungsstufe, einer Dienstgüte, die von dem Nutzer erworben und/oder angegeben wurde, usw.) zugeordnet werden.

Description

  • TECHNISCHES GEBIET
  • Im Allgemeinen betrifft die vorliegende Erfindung die Ermittlung der Verteilung von Mustern von virtuellen Maschinen (VM) in einer vernetzten Datenverarbeitungsumgebung (z. B. einer Cloud-Computing-Umgebung). Insbesondere betrifft die vorliegende Erfindung die Ermittlung von Mustern von VM-Instanzen über einen Pool von VM-Instanzen auf der Grundlage von historischen Daten.
  • HINTERGRUND
  • Die vernetzte Datenverarbeitungsumgebung (z. B. Cloud-Computing-Umgebung) ist eine Erweiterung der dieser Umgebung vorausgehenden Grid-Umgebung, wobei mehrere Grids und andere Rechenressourcen noch um eine oder mehrere zusätzliche Abstraktionsebenen (z. B. eine Cloud-Ebene) erweitert werden können, so dass ganz verschiedene Einheiten einem Endnutzer als ein einziges Reservoir von nahtlos ineinander übergehenden Ressourcen erscheinen. Zu diesen Ressourcen können unter anderem solche Dinge wie physische oder logische Datenverarbeitungskomponenten, Server und Einheiten, der Hauptspeicher von Einheiten sowie Speichereinheiten gehören.
  • Cloud-Computing-Dienste werden üblicherweise in einem verhältnismäßig statischen Hardware-Pool erbracht, wobei Betriebssysteme und Anwendungen installiert und neu konfiguriert werden, um den Anforderungen von Nutzern an die Datenverarbeitung gerecht zu werden. Innerhalb der Grenzen der Cloud-Umgebung können Abbilder von Anwendungen installiert und überschrieben werden, Internet-Protokoll-(IP-)Adressen können geändert und reale und virtuelle Prozessoren können zugeordnet werden, um den sich ändernden Bedürfnissen von Unternehmen Rechnung zu tragen. Derzeit können verschiedene Anbieter von Cloud-Diensten unterschiedlich viel Zeit für die Bereitstellung der von Nutzern angeforderten virtuellen Maschinen benötigen. Beispielsweise können manche Cloud-Anbieter eine bestimmte Ressource in nur wenigen Sekunden bereitstellen, während andere dafür Stunden brauchen. Die Unterschiede bei den Bereitstellungsgeschwindigkeiten gehen im Allgemeinen auf mindestens drei Faktoren zurück: die Art der Speicherarchitektur, die Architektur der Cloud-Verwaltungsplattform und/oder die zur Bereitstellung der Ressourcen verwendeten Methoden. Als solches kann das Erzielen von schnellen Bereitstellungszeiten für Datenverarbeitungsressourcen eine Herausforderung darstellen.
  • KURZDARSTELLUNG
  • Im Allgemeinen sehen Ausführungsformen der vorliegenden Erfindung eine Vorgehensweise zur Ermittlung von Verteilungen von Mustern von virtuellen Maschinen (VM) über Pools von VM-Instanzen auf der Grundlage von historischen Daten vor (z. B., um schnellere Bereitstellungszeiten zu erzielen). In einer typischen Ausführungsform wird eine gesamte Pool-Größe für einen Pool von VM-Instanzen ermittelt (z. B. auf der Grundlage von historischen Daten). Dann wird eine Verteilung eines Satzes von Mustern von VM-Instanzen über den Pool ermittelt (z. B. ebenfalls auf der Grundlage von historischen Daten). Sobald die Verteilung ermittelt worden ist, kann der Pool der VM-Instanzen entsprechend der Verteilung bereitgestellt werden. In einer Ausführungsform können die VM-Muster gleichmäßig über den Pool verteilt werden. In einer anderen Ausführungsform können die VM-Muster entsprechend Prozentsätzen verteilt werden, mit denen die VM-Muster zuvor angefordert worden waren. In noch einer anderen Ausführungsform können die VM-Muster zu zwei oder mehr Gruppen zusammengefasst werden, die (einer) bestimmten Benutzer-/Kundenebene(n) (z. B. der Ebene der Zugriffsrechte und/oder einer Berechtigungsstufe, einer Dienstgüte, die von dem Nutzer erworben und/oder angegeben wurde, usw.) zugeordnet werden.
  • Eine erste Erscheinungsform der vorliegenden Erfindung stellt ein von einem Rechner ausgeführtes Verfahren zur Ermittlung von Verteilungen von Mustern über einen Pool von Abbildern von virtuellen Maschinen (VM) in einer vernetzten Datenverarbeitungsumgebung bereit, das Folgendes umfasst: Ermitteln einer gesamten Pool-Größe für einen Pool von VM-Instanzen; Ermitteln einer Verteilung eines Satzes von Mustern von VM-Instanzen über den Pool auf der Grundlage von historischen Daten, auf die von mindestens einem Speichermedium eines Rechners zugegriffen wird; und Bereitstellen des Pools der VM-Instanzen in der vernetzten Datenverarbeitungsumgebung entsprechend der Verteilung.
  • Eine zweite Erscheinungsform der vorliegenden Erfindung stellt ein System zur Ermittlung von Verteilungen von Mustern über einen Pool von Abbildern von virtuellen Maschinen (VM) in einer vernetzten Datenverarbeitungsumgebung bereit, das Folgendes umfasst: ein Hauptspeichermedium, das Befehle umfasst; einen mit dem Hauptspeichermedium verbundenen Bus; und einen mit dem Bus verbundenen Prozessor, der, wenn er die Befehle ausführt, bewirkt, dass das System: eine gesamte Pool-Größe für einen Pool von VM-Instanzen ermittelt; eine Verteilung eines Satzes von Mustern von VM-Instanzen über den Pool auf der Grundlage von historischen Daten ermittelt, auf die von mindestens einem Speichermedium eines Rechners zugegriffen wird; und den Pool der VM-Instanzen in der vernetzten Datenverarbeitungsumgebung entsprechend der Verteilung bereitstellt.
  • Eine dritte Erscheinungsform der vorliegenden Erfindung stellt ein Rechnerprogrammprodukt zur Ermittlung von Verteilungen von Mustern über einen Pool von Abbildern von virtuellen Maschinen (VM) in einer vernetzten Datenverarbeitungsumgebung bereit, wobei das Rechnerprogrammprodukt ein rechnerlesbares Speichermedium und Programmbefehle, die auf dem rechnerlesbaren Speichermedium gespeichert werden, umfasst, um: eine gesamte Pool-Größe für einen Pool von VM-Instanzen zu ermitteln; eine Verteilung eines Satzes von Mustern von VM-Instanzen über den Pool auf der Grundlage von historischen Daten zu ermitteln, auf die von mindestens einem Speichermedium eines Rechners zugegriffen wird; und um den Pool der VM-Instanzen in der vernetzten Datenverarbeitungsumgebung entsprechend der Verteilung bereitzustellen.
  • In einer weiteren Erscheinungsform sieht die Erfindung ein Rechnerprogrammprodukt vor, um Verteilungen von Mustern über einen Pool von Abbildern von virtuellen Maschinen (VM) in einer vernetzten Datenverarbeitungsumgebung zu ermitteln. Das Rechnerprogrammprodukt umfasst ein rechnerlesbares Speichermedium und auf dem rechnerlesbaren Speichermedium gespeicherte Programmbefehle, um:
    eine gesamte Pool-Größe für einen Pool von VM-Instanzen zu ermitteln;
    eine Verteilung eines Satzes von Mustern von VM-Instanzen über den Pool auf der Grundlage von historischen Daten zu ermitteln, auf die von mindestens einem Speichermedium eines Rechners zugegriffen wird; und
    den Pool der VM-Instanzen in der vernetzten Datenverarbeitungsumgebung entsprechend der Verteilung bereitzustellen.
  • In einer anderen Ausführungsform umfasst die Verteilung eine Verteilung des Satzes von VM-Mustern über den Pool.
  • In einer anderen Ausführungsform wird die Verteilung, die den Satz von VM-Mustern umfasst, entsprechend historischer Prozentsätze, mit denen der Satz von VM-Mustern zuvor angefordert worden war, über den Pool verteilt.
  • In einer weiteren Ausführungsform wird die Verteilung, die den Satz von VM-Mustern umfasst, zu einer Vielzahl von Gruppen von VM-Mustern zusammengefasst.
  • In einer anderen Ausführungsform gehört jede der Vielzahl der Gruppen von VM-Mustern zu einer bestimmten Kundenebene.
  • In einer anderen Ausführungsform umfasst die vernetzte Datenverarbeitungsumgebung eine Cloud-Computing-Umgebung.
  • In einer weiteren Ausführungsform umfasst das rechnerlesbare Speichermedium des Weiteren Befehle, um: eine Arbeitslast-Anforderung zu empfangen; und die Arbeitslast-Anforderung unter Verwendung von mindestens einer VM-Instanz, die aus dem Pool von VM-Instanzen ausgewählt wird, zu verarbeiten.
  • In einer weiteren Erscheinungsform sieht die Erfindung ein Verfahren zum Einsatz eines Systems vor, um Verteilungen von Mustern über einen Pool von Abbildern von virtuellen Maschinen (VM) in einer vernetzten Datenverarbeitungsumgebung zu ermitteln, wobei das Verfahren Folgendes umfasst:
    Bereitstellen einer Rechnerinfrastruktur, die betrieben werden kann, um
    eine gesamte Pool-Größe für einen Pool von VM-Instanzen zu ermitteln;
    eine Verteilung eines Satzes von Mustern von VM-Instanzen über den Pool auf der Grundlage von historischen Daten zu ermitteln, auf die von mindestens einem Speichermedium eines Rechners zugegriffen wird; und
    den Pool der VM-Instanzen in der vernetzten Datenverarbeitungsumgebung entsprechend der Verteilung bereitzustellen.
  • In einer weiteren Erscheinungsform sieht die Erfindung ein von einem Rechner ausgeführtes Verfahren zur Ermittlung von Verteilungen von Mustern über einen Pool von Abbildern von virtuellen Maschinen (VM) in einer vernetzten Datenverarbeitungsumgebung vor, das weitgehend dem vorstehend mit Bezug auf die beigefügten Zeichnungen beschriebenen Verfahren entspricht.
  • In einer weiteren Erscheinungsform sieht die Erfindung ein System zur Ermittlung von Verteilungen von Mustern über einen Pool von Abbildern von virtuellen Maschinen (VM) in einer vernetzten Datenverarbeitungsumgebung vor, das weitgehend dem vorstehend beschriebenen System entspricht, wobei Bezug auf die beigefügten Zeichnungen genommen wird.
  • In einer weiteren Erscheinungsform sieht die Erfindung ein Rechnerprogramm zur Ermittlung von Verteilungen von Mustern über einen Pool von Abbildern von virtuellen Maschinen (VM) in einer vernetzten Datenverarbeitungsumgebung vor, das weitgehend dem vorstehend beschriebenen System entspricht, wobei Bezug auf die beigefügten Zeichnungen genommen wird.
  • Eine weitere Erscheinungsform der vorliegenden Erfindung stellt ein Verfahren zum Einsetzen eines Systems zur Ermittlung von Verteilungen von Mustern über einen Pool von Abbildern von virtuellen Maschinen (VM) in einer vernetzten Datenverarbeitungsumgebung bereit, das Folgendes umfasst: Bereitstellen einer Rechnerinfrastruktur, die betrieben werden kann, um: eine gesamte Pool-Größe für einen Pool von VM-Instanzen zu ermitteln; eine Verteilung eines Satzes von Mustern von VM-Instanzen über den Pool auf der Grundlage von historischen Daten zu ermitteln, auf die von mindestens einem Speichermedium eines Rechners zugegriffen wird; und um den Pool der VM-Instanzen in der vernetzten Datenverarbeitungsumgebung entsprechend der Verteilung bereitzustellen.
  • Es versteht sich, dass eine oder mehrere der vorstehend erwähnten Ausführungsformen der Erfindung und/oder Ansprüche kombiniert werden können, solange sich die Kombinationen nicht gegenseitig ausschließen.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Diese und andere Merkmale dieser Erfindung lassen sich anhand der folgenden ausführlichen Beschreibung einer bevorzugten beispielhaften Ausführungsform der Erfindung leichter verstehen, wenn diese in Verbindung mit den beigefügten Zeichnungen gelesen wird, bei denen:
  • 1 einen Cloud-Computing-Knoten gemäß einer Ausführungsform der vorliegenden Erfindung zeigt.
  • 2 eine Cloud-Computing-Umgebung gemäß einer Ausführungsform der vorliegenden Erfindung zeigt.
  • 3 Ebenen eines Abstraktionsmodells gemäß einer Ausführungsform der vorliegenden Erfindung zeigt.
  • 4 ein Diagramm eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung zeigt.
  • 5 einen Pool von Instanzen von virtuellen Maschinen zeigt, die gemäß einer Ausführungsform der vorliegenden Erfindung vorab bereitgestellt wurden.
  • 6 einen Pool von Instanzen von virtuellen Maschinen zeigt, die gemäß einer anderen Ausführungsform der vorliegenden Erfindung vorab bereitgestellt wurden.
  • 7 einen Pool von Instanzen von virtuellen Maschinen zeigt, die gemäß einer anderen Ausführungsform der vorliegenden Erfindung vorab bereitgestellt wurden.
  • 8 ein Flussdiagramm eines Verfahrens gemäß einer Ausführungsform der vorliegenden Erfindung zeigt.
  • Die Zeichnungen sind nicht unbedingt maßstabsgetreu. Bei den Zeichnungen handelt es sich lediglich um schematische Darstellungen, die keine bestimmten Parameter der Erfindung darstellen sollen. Die Zeichnungen sollen nur typische Ausführungsformen der Erfindung zeigen und sind daher nicht als Einschränkung des Umfangs der Erfindung zu verstehen. In den Zeichnungen stellen gleiche Bezugszahlen gleiche Elemente dar.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Der Veranschaulichung dienende Ausführungsformen werden in diesem Schriftstück nun mit Bezug auf die beigefügten Zeichnungen, in denen beispielhafte Ausführungsformen gezeigt sind, vollständiger beschrieben. Diese Offenlegung kann jedoch in vielen verschiedenen Formen ausgeführt werden und sollte nicht als auf die hier dargelegten beispielhaften Ausführungsformen beschränkt ausgelegt werden. Vielmehr werden diese beispielhaften Ausführungsformen aufgezeigt, um eine genaue und vollständige Offenlegung zu erreichen, die dem Fachmann den Umfang dieser Offenlegung in vollem Umfang vermittelt. In der Beschreibung können Einzelheiten von bekannten Merkmalen und Verfahren weggelassen werden, um die Transparenz der dargestellten Ausführungsformen nicht unnötig einzuschränken.
  • Die hier verwendete Terminologie dient lediglich dazu, bestimmte Ausführungsformen zu beschreiben und ist nicht als Einschränkung dieser Offenlegung zu verstehen. Die Singular-Formen ”ein”, ”eine” und ”der”, ”die”, ”das” sollen in der hier verwendeten Weise auch die Plural-Formen einschließen, sofern der Kontext nicht eindeutig etwas anderes angibt. Überdies steht die Verwendung der Begriffe ”ein”, ”eine” usw. nicht für eine Begrenzung der Menge, sondern bezeichnet das Vorhandensein von mindestens einem der in Bezug genommenen Gegenstände. Der Begriff ”Satz” soll eine Menge von mindestens einem Gegenstand bedeuten. Des Weiteren versteht es sich, dass die Begriffe ”umfasst” und/oder ”umfassen” oder ”enthält” und/oder ”enthalten” und/oder ”einschließlich”, wenn sie in dieser Beschreibung verwendet werden, das Vorhandensein von angegebenen Merkmalen, Bereichen, ganzen Zahlen, Schritten, Operationen, Elementen und/oder Komponenten bezeichnen, das Vorhandensein oder das Hinzufügen von einem oder mehreren anderen/weiteren Merkmalen, Bereichen, ganzen Zahlen, Schritten, Operationen, Elementen, Komponenten und/oder Gruppen der Vorgenannten jedoch nicht ausschließen.
  • Wie vorstehend angegeben, sehen Ausführungsformen der vorliegenden Erfindung im Allgemeinen eine Vorgehensweise zur Ermittlung von Verteilungen von Mustern von virtuellen Maschinen (VM) über Pools von VM-Instanzen auf der Grundlage von historischen Daten (z. B., um schnellere Bereitstellungszeiten zu erzielen) vor. In einer typischen Ausführungsform wird eine gesamte Pool-Größe für einen Pool von VM-Instanzen ermittelt (z. B. auf der Grundlage von historischen Daten). Dann wird eine Verteilung eines Satzes von Mustern von VM-Instanzen über den Pool ermittelt (z. B. ebenfalls auf der Grundlage von historischen Daten). Sobald die Verteilung ermittelt worden ist, kann der Pool der VM-Instanzen entsprechend der Verteilung bereitgestellt werden. In einer Ausführungsform können die VM-Muster gleichmäßig über den Pool verteilt werden. In einer anderen Ausführungsform können die VM-Muster entsprechend Prozentsätzen verteilt werden, mit denen die VM-Muster zuvor angefordert worden waren. In noch einer anderen Ausführungsform können die VM-Muster zu zwei oder mehr Gruppen zusammengefasst werden, die (einer) bestimmten Benutzer-/Kundenebene(n) (z. B. der Ebene der Zugriffsrechte und/oder einer Berechtigungsstufe, einer Dienstgüte, die von dem Nutzer erworben und/oder angegeben wurde, usw.) zugeordnet werden.
  • Es versteht sich im Voraus, dass diese Offenlegung zwar eine ausführliche Beschreibung des Cloud-Computing enthält, die Umsetzung der hier aufgezeigten Lehren jedoch nicht auf eine Cloud-Computing-Umgebung beschränkt ist. Vielmehr können Ausführungsformen der vorliegenden Erfindung in Verbindung mit einer beliebigen anderen Art einer Datenverarbeitungsumgebung, die zum gegenwärtigen Zeitpunkt bereits bekannt ist oder zu einem späteren Zeitpunkt entwickelt werden wird, eingesetzt werden.
  • Cloud-Computing ist ein Modell zur Lieferung von Diensten, um einen mühelosen, bedarfsweisen Zugriff über das Netzwerk auf einen gemeinsam genutzten Bestand an konfigurierbaren Datenverarbeitungsressourcen (z. B. Netzwerken, Netzwerkbandbreite, Servern, Rechenleistung, Hauptspeicher, Plattenspeicher, Anwendungen, virtuellen Maschinen und Diensten) zu ermöglichen, die schnell bereitgestellt und mit äußerst geringem Verwaltungsaufwand oder Dialogverkehr mit einem Anbieter des Dienstes freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Merkmale, mindestens drei Dienst-Modelle und mindestens vier Einsatzmodelle enthalten.
  • Die Merkmale sind wie folgt:
    Selbstbedienung nach Bedarf: Ein Cloud-Nutzer kann einseitig nach Bedarf Datenverarbeitungsfunktionen wie zum Beispiel Serverzeit und Netzwerkspeicher automatisch, ohne dass eine Person mit dem Anbieter des Dienstes in Dialogverkehr treten muss, bereitstellen.
    Umfassender Netzwerkzugriff: Funktionen stehen über ein Netzwerk zur Verfügung und der Zugriff auf die Funktionen erfolgt über standardmäßige Mechanismen, welche die Nutzung durch heterogene dünne oder dicke Client-Plattformen (z. B. Mobiltelefone, Laptops und persönliche digitale Assistenten (PDAs)) unterstützen.
    Gemeinsame Nutzung physischer Ressourcen: Die Datenverarbeitungsressourcen des Anbieters werden unter Verwendung eines Modells mit mehreren Mandanten (Multi-Tenant-Modell) zusammengeführt, um mehrere Nutzer zu bedienen, wobei verschiedene physische und virtuelle Ressourcen entsprechend dem Bedarf dynamisch zugewiesen und neu zugewiesen werden. Man hat ein Gefühl der Standort-Unabhängigkeit, da der Nutzer im Allgemeinen keine Kontrolle über den genauen Standort der bereitgestellten Ressourcen hat oder den genauen Standort nicht kennt, diesen gegebenenfalls aber auf einer höheren Abstraktionsebene (z. B. Land, Staat/Bundesland oder Rechenzentrum) angeben kann.
    Unverzügliche Anpassbarkeit an den Ressourcenbedarf: Funktionen können schnell und elastisch bereitgestellt werden, in manchen Fällen automatisch, um eine schnelle horizontale Skalierbarkeit zu ermöglichen, und sie können schnell freigegeben werden, um eine schnelle vertikale Skalierbarkeit zu ermöglichen. Dem Nutzer erscheinen die zur Versorgung vorhandenen Funktionen oftmals unerschöpflich und sie können jederzeit in jeder beliebigen Menge erworben werden.
    Messung der Service-Nutzung: Cloud-Systeme steuern und optimieren die Nutzung der Ressourcen automatisch, indem sie auf einer bestimmten Abstraktionsebene, die für die Art des Dienstes (z. B. Speicherkapazität, Rechenleistung, Bandbreite und aktive Nutzerkonten) geeignet ist, eine Zählerfunktion vorteilhaft einsetzen. Die Nutzung der Ressourcen kann überwacht, gesteuert und gemeldet werden, was Transparenz sowohl für den Anbieter als auch den Nutzer des in Anspruch genommenen Dienstes schafft.
  • Es gibt folgende Dienst-Modelle:
    Software as a Service (SaaS): Die dem Nutzer zur Verfügung gestellte Funktion besteht in der Nutzung der Anwendungen des Anbieters, die in einer Cloud-Infrastruktur ausgeführt werden. Auf die Anwendungen kann von verschiedenen Client-Einheiten über eine dünne Client-Schnittstelle wie zum Beispiel einen Webbrowser (z. B. webbasierte E-Mail) zugegriffen werden. Der Nutzer verwaltet oder steuert die zugrunde liegende Cloud-Infrastruktur einschließlich des Netzwerks, der Server, der Betriebssysteme, des Speichers oder selbst einzelner Anwendungsfunktionen nicht, wobei es die mögliche Ausnahme in Form von begrenzten nutzerspezifischen Anwendungs-Konfigurationseinstellungen gibt.
    Platform as a Service (PaaS): Die dem Nutzer zur Verfügung gestellte Funktion besteht darin, auf der Cloud-Infrastruktur vom Nutzer erzeugte oder erworbene Anwendungen aufzusetzen, die mittels Programmiersprachen und Werkzeugen, die von dem Anbieter unterstützt werden, erzeugt wurden. Der Nutzer verwaltet oder steuert die zugrunde liegende Cloud-Infrastruktur einschließlich der Netzwerke, der Server, der Betriebssysteme oder des Speichers nicht, hat aber die Kontrolle über die eingesetzten Anwendungen und möglicherweise über Konfigurationen der Application-Hosting-Umgebung.
    Infrastructure as a Service (IaaS): Die dem Nutzer zur Verfügung gestellte Funktion besteht in der Bereitstellung von Rechenleistung, Speicherkapazität, Netzwerken und anderen grundlegenden Datenverarbeitungsressourcen, auf denen der Kunde beliebige Software-Programme, die Betriebssysteme und Anwendungen einschließen können, installieren und ausführen kann. Der Nutzer verwaltet oder steuert die zugrunde liegende Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise die eingeschränkte Kontrolle über ausgewählte Komponenten für den Netzwerkbetrieb (z. B. Zugangsschutzsysteme für den Hostrechner).
  • Die Einsatzmodelle (Deployment Models) sind wie folgt:
    Private Cloud: Die Cloud-Infrastruktur wird ausschließlich für eine Organisation betrieben. Sie kann von der Organisation oder einem Dritten verwaltet werden und kann sich auf dem Betriebsgelände oder außerhalb des Betriebsgeländes befinden.
    Gemeinschafts-Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine bestimmte Gemeinschaft, die gemeinsame Interessen (z. B. Aufgaben, Sicherheitsanforderungen, Richtlinien und Anforderungen an die Einhaltung der Richtlinien (Compliance-Anforderungen) hat. Sie kann von den Organisationen oder einem Dritten verwaltet werden und kann sich auf dem Betriebsgelände oder außerhalb des Betriebsgeländes befinden.
    Öffentliche Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und gehört einer Organisation, die Cloud-Dienste verkauft.
    Hybride Cloud: Die Cloud-Infrastruktur setzt sich aus zwei oder mehr Clouds (privaten, Gemeinschafts- oder öffentlichen Clouds) zusammen, die individuelle Entitäten bleiben, welche jedoch durch eine standardisierte oder firmeneigene Technologie miteinander verbunden sind, die die Portierbarkeit von Daten und Anwendungen ermöglicht (z. B. den kombinierten Einsatz von privaten und öffentlichen Clouds (Cloud-Bursting) für einen Lastausgleich zwischen den Clouds).
  • Eine Cloud-Computing-Umgebung ist dienstorientiert, wobei der Schwerpunkt auf Zustandslosigkeit, loser Kopplung, Modularität und semantischer Interoperabilität liegt. Das Kernstück des Cloud-Computing bildet eine Infrastruktur, die ein Netzwerk aus untereinander verbundenen Knoten umfasst. Nun Bezug nehmend auf 1 ist eine schematische Darstellung eines Beispiels eines Cloud-Computing-Knotens gezeigt. Der Cloud-Computing-Knoten 10 stellt lediglich ein Beispiel für einen geeigneten Cloud-Computing-Knoten dar und ist nicht als Einschränkung des Nutzungsumfangs oder der Funktionalität von hier beschriebenen Ausführungsformen der Erfindung zu verstehen. Ungeachtet dessen kann der Cloud-Computing-Knoten 10 realisiert werden und/oder ist in der Lage, jedwede Funktionalität, die vorstehend beschrieben wurde, auszuführen.
  • Im Cloud-Computing-Knoten 10 gibt es ein Rechnersystem/einen Server 12, das beziehungsweise der mit zahlreichen anderen Umgebungen oder Konfigurationen eines Datenverarbeitungssystems für allgemeine Anwendungen oder für spezielle Anwendungen betrieben werden kann. Zu Beispielen für bekannte Datenverarbeitungssysteme, -umgebungen und/oder -konfigurationen, die für die Verwendung mit dem Rechnersystem/Server 12 geeignet sein können, gehören, ohne auf diese beschränkt zu sein, Personal-Computer-Systeme, Server-Rechnersysteme, dünne Clients, dicke Clients, tragbare oder Laptop-Einheiten, Mehrprozessorsysteme, auf einem Mikroprozessor beruhende Systeme, Aufsatzgeräte (Set-Top-Boxen), programmierbare Unterhaltungselektronik, Netzwerk-PCs, Minirechnersysteme, Großrechnersysteme und verteilte Cloud-Computing-Umgebungen, die beliebige der vorstehenden Systeme oder Einheiten enthalten, und dergleichen.
  • Das Rechnersystem/der Server 12 kann in dem allgemeinen Kontext von Befehlen, die von einem Rechnersystem ausgeführt werden können, wie zum Beispiel Programmmodulen, die von einem Rechnersystem ausgeführt werden, beschrieben werden. Im Allgemeinen können Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen und so weiter enthalten, die bestimmte Aufgaben durchführen oder bestimmte abstrakte Datentypen realisieren. Das Rechnersystem/der Server 12 kann in verteilten Cloud-Computing-Umgebungen betrieben werden, in denen Aufgaben von fernen Verarbeitungseinheiten durchgeführt werden, die über ein Datenübertragungsnetzwerk miteinander verbunden sind. In einer verteilten Cloud-Computing-Umgebung können sich Programmmodule in Speichermedien, einschließlich Hauptspeicher-Einheiten, sowohl eines lokalen als auch eines fernen Rechnersystems befinden.
  • Wie in 1 gezeigt ist, ist das Rechnersystem/der Server 12 in dem Cloud-Computing-Knoten 10 in Form einer Datenverarbeitungseinheit für allgemeine Anwendungen gezeigt. Zu den Komponenten des Rechnersystems/des Servers 12 können, ohne auf diese beschränkt zu sein, ein oder mehrere Prozessoren oder Verarbeitungseinheiten 16, ein Systemspeicher 28 und ein Bus 18 gehören, der verschiedene Systemkomponenten einschließlich des Systemspeichers 28 mit dem Prozessor 16 verbindet.
  • Der Bus 18 stellt eine oder mehrere von diversen beliebigen Arten von Busstrukturen einschließlich eines Hauptspeicher-Busses oder einer Hauptspeicher-Steuereinheit, eines peripheren Busses, eines Accelerated Graphics Port und eines Prozessor- oder lokalen Busses, der eine beliebige einer Vielzahl von Busarchitekturen nutzt, dar. Als Beispiel, aber nicht darauf beschränkt, gehören zu solchen Architekturen der Bus ”Industry Standard Architecture (ISA)”, der Bus ”Micro Channel Architecture (MCA)”, der Bus ”Enhanced ISA (EISA)”, der lokale Bus ”Video Electronics Standards Association (VESA)” und der Bus ”Peripheral Component Interconnects (PCI)”.
  • Das Rechnersystem/der Server 12 enthält üblicherweise eine Vielzahl von Datenträgern, die von einem Rechnersystem gelesen werden können. Solche Datenträger können jedwede verfügbaren Datenträger sein, auf die von dem Rechnersystem/dem Server 12 zugegriffen werden kann, und sie beinhalten sowohl flüchtige als auch nicht flüchtige Datenträger sowie auswechselbare und nicht auswechselbare Datenträger.
  • Der Systemspeicher 28 kann von einem Rechnersystem lesbare Datenträger in Form von flüchtigem Speicher, wie beispielsweise einem Direktzugriffspeicher (RAM) 30 und/oder einem Cachespeicher 32, beinhalten. Das Rechnersystem/der Server 12 kann darüber hinaus weitere auswechselbare/nicht auswechselbare und flüchtige/nicht flüchtige Speichermedien eines Rechnersystems enthalten. Lediglich als Beispiel kann das Speichersystem 34 für Leseoperationen von und für Schreiboperationen auf einen nicht auswechselbaren, nicht flüchtigen Magnetdatenträger (nicht gezeigt und üblicherweise als ”Festplattenlaufwerk” bezeichnet) bereitgestellt werden. Obgleich nicht gezeigt, können ein Magnetplattenlaufwerk für Leseoperationen von und Schreiboperationen auf eine auswechselbare, nicht flüchtige Magnetplatte (z. B. eine ”Diskette”) und ein optisches Plattenlaufwerk für Leseoperationen von oder Schreiboperationen auf eine auswechselbare, nicht flüchtige optische Platte, wie zum Beispiel eine CD-ROM, eine DVD-ROM, oder andere optische Datenträger bereitgestellt werden. In diesen Fällen kann jedes Plattenlaufwerk über eine oder mehrere Datenträger-Schnittstellen mit dem Bus 18 verbunden werden. Wie weiter gezeigt und nachstehend beschrieben wird, kann der Systemspeicher 28 mindestens ein Programmprodukt enthalten, das über einen Satz (z. B. mindestens einen Satz) von Programmmodulen verfügt, die so konfiguriert sind, dass sie die Funktionen von Ausführungsformen der Erfindung ausführen.
  • Die Ausführungsformen der Erfindung können als ein rechnerlesbarer Signaldatenträger realisiert werden, der ein übertragenes Datensignal mit einem darin enthaltenen rechnerlesbaren Programmcode (zum Beispiel im Basisband oder als Teil einer Trägerwelle) enthalten kann. Solch ein übertragenes Signal kann eine beliebige einer Vielzahl von Formen einschließlich elektromagnetischer, optischer Formen oder jede beliebige geeignete Kombination dieser Formen, ohne auf diese beschränkt zu sein, annehmen. Bei einem rechnerlesbaren Signaldatenträger kann es sich um jeden beliebigen rechnerlesbaren Datenträger handeln, der kein rechnerlesbares Speichermedium ist und der ein Programm zur Verwendung durch oder zur Verwendung in Verbindung mit einem Befehlsausführungssystem, einer Befehlsausführungsvorrichtung oder -einheit übertragen, weiterleiten oder transportieren kann. Auf einem rechnerlesbaren Datenträger enthaltener Programmcode kann mittels eines geeigneten Mediums einschließlich eines drahtlosen Mediums, eines drahtgebundenen Mediums, eines Lichtwellenleiterkabels, mittels Hochfrequenz (HF) usw., ohne auf diese beschränkt zu sein, oder mittels jeder beliebigen geeigneten Kombination des Vorstehenden übertragen werden.
  • Das Programm/Dienstprogramm 40, das über einen Satz (mindestens einen Satz) von Programmmodulen 42 verfügt, kann als Beispiel, das nicht als Einschränkung zu verstehen ist, im Systemspeicher 28 abgelegt werden, ebenso ein Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten. Das Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten oder eine Kombination daraus können jeweils eine Ausführungsart einer Netzwerkumgebung beinhalten. Die Programmmodule 42 führen im Allgemeinen die Funktionen und/oder die methodischen Vorgehensweisen von den hier beschriebenen Ausführungsformen der Erfindung aus.
  • Das Rechnersystem/der Server 12 kann auch mit einer oder mehreren externen Einheiten 14 wie zum Beispiel einer Tastatur, einem Zeigegerät, einem Bildschirm 24 usw., mit einer oder mehreren Einheiten, die einem Nutzer den Dialogverkehr mit dem Rechnersystem/Server 12 ermöglichen, und/oder beliebigen Einheiten (z. B. Netzwerkkarte, Modem usw.), die dem Rechnersystem/Server 12 den Datenaustausch mit einer oder mehreren anderen Datenverarbeitungseinheiten ermöglichen, Daten austauschen. Ein solcher Datenaustausch kann über E/A-Schnittstellen 22 stattfinden. Weiterhin kann das Rechnersystem/der Server 12 mit einem oder mehreren Netzwerken wie zum Beispiel einem lokalen Netzwerk (LAN), einem allgemeinen Weitverkehrsnetz (WAN) und/oder einem öffentlichen Netzwerk (z. B. dem Internet) über den Netzwerkadapter 20 Daten austauschen. Wie gezeigt ist, tauscht der Netzwerkadapter 20 mit den anderen Komponenten des Rechnersystems/Servers 12 über den Bus 18 Daten aus. Es sollte sich verstehen, dass auch andere Hardware- und/oder Software-Komponenten in Verbindung mit dem Rechnersystem/Server 12 verwendet werden könnten, obgleich diese nicht gezeigt sind. Zu Beispielen hierzu gehören, ohne auf diese beschränkt zu sein: Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Anordnungen von Festplattenlaufwerken, RAID-Systeme, Bandlaufwerke und Speichersysteme zur Datenarchivierung usw.
  • Nun Bezug nehmend auf 2 ist eine der Veranschaulichung dienende Cloud-Computing-Umgebung 50 dargestellt. Wie gezeigt ist, umfasst die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 10, mit dem beziehungsweise denen lokale Datenverarbeitungseinheiten, die von Cloud-Nutzern verwendet werden, wie zum Beispiel ein persönlicher digitaler Assistent (PDA) oder ein Mobiltelefon 54A, ein Tischrechner 54B, ein Laptop-Rechner 54C und/oder ein Fahrzeug-Rechnersystem 54N Daten austauschen können. Die Knoten 10 können untereinander Daten austauschen. Sie können physisch oder virtuell in einem oder in mehreren Netzwerken wie zum Beispiel privaten, Gemeinschafts-, öffentlichen oder hybriden Clouds, die vorstehend beschrieben wurden, oder in einer Kombination daraus zu Gruppen (nicht gezeigt) zusammengefasst werden. Dadurch kann die Cloud-Computing-Umgebung 50 Infrastruktur, Plattformen und/oder Software als Dienste anbieten, für die ein Cloud-Nutzer keine Ressourcen auf einer lokalen Datenverarbeitungseinheit unterhalten muss. Es versteht sich, dass die Arten der Datenverarbeitungseinheiten 54A bis 54N, die in 2 gezeigt sind, lediglich dem Zweck der Veranschaulichung dienen und dass die Datenverarbeitungsknoten 10 und die Cloud-Computing-Umgebung 50 mit jeder beliebigen Art einer rechnergestützten Einheit über jede beliebige Art eines Netzwerks und/oder eine über ein Netzwerk adressierbare Verbindung (z. B. mittels eines Webbrowsers) Daten austauschen können.
  • Nun Bezug nehmend auf 3 ist ein Satz von funktionalen Abstraktionsebenen gezeigt, die von der Cloud-Computing-Umgebung 50 (2) bereitgestellt werden. Es sollte sich im Voraus verstehen, dass die Komponenten, Ebenen und Funktionen, die in 3 gezeigt sind, lediglich dem Zweck der Veranschaulichung dienen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie dargestellt ist, werden die folgenden Ebenen und entsprechenden Funktionen bereitgestellt:
    Eine Hardware- und Software-Ebene 60 enthält Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten gehören Großrechner. In einem Beispiel Systeme der zSeries® von IBM® sowie Server, die auf der RISC-(Reduced-Instruction-Set-Computer-)Architektur beruhen. In einem Beispiel Systeme der pSeries® von IBM, Systeme der xSeries® von IBM, Systeme vom Typ BladeCenter® von IBM, Speichereinheiten, Netzwerke und Komponenten für den Netzwerkbetrieb. Zu Beispielen für Software-Komponenten gehören Server-Software für Netzwerk-Anwendungen. In einem Beispiel Software für WebSphere®-Anwendungsserver von IBM sowie Datenbank-Software. In einem Beispiel Datenbank-Software DB2® von IBM. (IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere und DB2 sind Warenzeichen der International Business Machines Corporation, die bei vielen Markenämtern weltweit eingetragen sind.)
  • Eine Virtualisierungsebene 62 stellt eine Abstraktionsebene bereit, von der die folgenden Beispiele für virtuelle Entitäten bereitgestellt werden können: virtuelle Server; virtueller Speicher; virtuelle Netzwerke einschließlich virtueller privater Netzwerke; virtuelle Anwendungen und Betriebssysteme; und virtuelle Clients.
  • In einem Beispiel kann die Verwaltungsebene 64 die nachstehend beschriebenen Funktionen bereitstellen. Die Ressourcenbereitstellung ermöglicht die dynamische Beschaffung von Datenverarbeitungsressourcen und anderen Ressourcen, die verwendet werden, um Aufgaben in der Cloud-Computing-Umgebung durchzuführen. Die Erfassung von Verbrauchswerten und die Bepreisung ermöglichen die Überwachung von Kosten bei der Nutzung von Ressourcen in der Cloud-Computing-Umgebung sowie die Abrechnung oder Inrechnungstellung für die Inanspruchnahme dieser Ressourcen. In einem Beispiel können diese Ressourcen Lizenzen für Anwendungs-Software umfassen. Die Funktion ”Sicherheit” ermöglicht die Überprüfung der Identität für Nutzer der Cloud und für Aufgaben sowie den Schutz für Daten und andere Ressourcen. Das Nutzerportal ermöglicht sowohl Nutzern als auch Systemadministratoren den Zugriff auf die Cloud-Computing-Umgebung. Die Verwaltung der Dienstgüte ermöglicht die Zuweisung und die Verwaltung von Ressourcen für das Cloud-Computing in der Weise, dass der jeweils erforderlichen Dienstgüte entsprochen wird. Die Planung und die Erfüllung der Dienstgütevereinbarung (Service Level Agreement (SLA)) ermöglicht eine Vorab-Festlegung für und die Beschaffung von Ressourcen für das Cloud-Computing, bei denen ein zukünftiges Erfordernis gemäß einer SLA vorweggenommen wird. Darüber hinaus ist in der Verwaltungsebene eine Verteilungsfunktion für den Pool der virtuellen Maschinen gezeigt, welche die im Rahmen der Ausführungsformen der vorliegenden Erfindung bereitgestellte Funktionalität darstellt.
  • Eine Arbeitslasten-Ebene 66 stellt Beispiele für eine Funktionalität bereit, für die die Cloud-Computing-Umgebung genutzt werden kann. Zu Beispielen für Arbeitslasten und Funktionen, die von dieser Ebene bereitgestellt werden können, gehören: Abbildung und Navigation; Software-Entwicklung und Verwaltung des Lebenszyklus; Bereitstellung des Unterrichts im virtuellen Klassenzimmer; Verarbeitung zu datenanalytischen Zwecken, Transaktionsverarbeitung; und Speicherung und Sicherung von Nutzerdaten. Wie vorstehend erwähnt wurde, dienen alle vorstehend mit Bezug auf 3 beschriebenen Beispiele lediglich der Veranschaulichung, und die Erfindung ist nicht auf diese Beispiele beschränkt.
  • Es versteht sich, dass alle Funktionen der vorliegenden Erfindung, die hier beschrieben werden, üblicherweise mittels der Verteilungsfunktionalität der Verwaltungsebene 64 für den Pool der virtuellen Maschinen ausgeführt werden können, welche physisch in Form von Modulen des Programmcodes 42 des Programms/Dienstprogramms 40 (1) realisiert sein kann. Dies muss jedoch nicht der Fall sein. Die hier aufgezeigte Funktionalität könnte stattdessen auch von einer beliebigen der Ebenen 60 bis 66, die in 3 gezeigt sind, ausgeführt/realisiert und/oder aktiviert werden.
  • Es sei nochmals erwähnt, dass diese Offenlegung zwar eine ausführliche Beschreibung des Cloud-Computing enthält, die hier aufgeführten Lehren jedoch nicht auf eine Cloud-Computing-Umgebung beschränkt sind. Vielmehr sind die Ausführungsformen der vorliegenden Erfindung dafür vorgesehen, mit jeder beliebigen Art einer vernetzen Datenverarbeitungsumgebung, die zum gegenwärtigen Zeitpunkt bereits bekannt ist oder zu einem späteren Zeitpunkt entwickelt werden wird, realisiert zu werden.
  • Nun Bezug nehmend auf 4 ist ein Diagramm eines Systems gemäß einer Erscheinungsform der vorliegenden Erfindung gezeigt. Wie zu sehen ist, ist eine Verteilungskomponente (Komponente 70) für den Pool der virtuellen Maschinen in einer vernetzten Datenverarbeitungsumgebung 84 (die beispielsweise die Cloud-Computing-Umgebung 50 umfasst) gezeigt. Im Allgemeinen kann die Komponente 70 als das Programm 40 auf dem Rechnersystem 12 von 1 realisiert sein und die hier erwähnten Funktionen ausführen, wie in der Verwaltungsebene 64 von 3 dargestellt ist. Im Allgemeinen umfasst die Komponente 70 (in einer Ausführungsform) eine Regel- und/oder Rechenkomponente, die einen Satz (mindestens einen Satz) von Regeln 78 verarbeitet und/oder einen Satz von Berechnungen durchführt, der historische Daten 80 verwendet, die in einem aus einem oder mehreren Rechnerspeichermedien 82A bis 82C bestehenden Satz von Rechnerspeichermedien gespeichert werden, um eine Verteilung von Mustern von VM-Instanzen über einen Pool 74 von VM-Instanzen 72A bis 72C zu ermitteln, um eine oder mehrere Arbeitslast-Anforderungen 76A bis 76C zu verarbeiten/abzuwickeln.
  • In dieser Hinsicht kann die Komponente 70 ähnlich einem Universalrechner, der die Regeln 78 verwendet, mehrere Funktionen ausführen. Unter anderen Funktionen kann die Komponente 70 insbesondere: eine gesamte Pool-Größe für einen Pool von VM-Instanzen ermitteln; eine Verteilung eines Satzes von Mustern von VM-Instanzen über den Pool auf der Grundlage von historischen Daten ermitteln, auf die von mindestens einem Speichermedium eines Rechners zugegriffen wird; und/oder den Pool der VM-Instanzen in der vernetzten Datenverarbeitungsumgebung entsprechend der Verteilung bereitstellen. Bei der Ermittlung der Verteilung kann die Komponente 70 des Weiteren ein oder mehrere probabilistische Verfahren anwenden, die dazu führen, dass Muster von VM-Instanzen: gleichmäßig über den Pool 74 verteilt werden, entsprechend Prozentsätzen, mit denen die Muster zuvor angefordert worden waren, verteilt werden und/oder zu einer oder mehreren Gruppen zusammengefasst werden, die auf Benutzer-/Kundenebene beruhen.
  • Ungeachtet dessen werden die Funktionen der Komponente 70 nun ausführlicher erklärt. Im Allgemeinen ermittelt die Komponente 70, welche Abbilder/Instanzen und welche Software (z. B. VMs) auf Hardware-Komponenten, die aktuell nicht verwendet werden (z. B. die gesamte Pool-Größe), vorab bereitgestellt werden sollten. Die Komponente 70 ermittelt auch, welcher Teil der nicht benutzten Hardware eine Vorabbereitstellungs-Zuweisung erhalten sollte. In Abhängigkeit von den Vorabbereitstellungs-Funktionen der Cloud-Umgebung kann dies bis zu 100% der nicht benutzten Hardware sein. Nachstehend sind mehrere Methoden für eine Vorabbereitstellung des Pools 74 mit den VM-Instanzen 72A bis 72C aufgezeigt. Insbesondere beschreiben die verschiedenen nachstehenden Methoden unterschiedliche Vorgehensweisen zur Ermittlung der Verteilung von Mustern von VM-Instanzen über den Pool 74. Für jede nachstehend aufgezeigte Methode werden die folgenden Parameter verwendet:
    x = Die Anzahl der VMs, die bereitgestellt werden sollen
    ph = Die bisherige Historie der bereitgestellten VM-Instanzen
  • Methode 1 – X-tiefe Vorabbereitstellung:
  • Nun Bezug nehmend auf 5 ist ein der Veranschaulichung dienender Pool 80 mit den Mustern 82A bis 82C, 84A bis 84C und 86A bis 86C von VM-Instanzen gezeigt. Bei dem der Veranschaulichung dienenden Beispiel ging aus den historischen Daten 80 (4) hervor, dass drei Muster ”A”, ”B” und ”C” zuvor angefordert/benötigt wurden (z. B. zur Verarbeitung der Arbeitslast-Anforderung(en) 76A bis 76C oder ähnlicher Varianten davon), ebenso wie eine gesamte Pool-Größe von neun. Bei dieser Methode werden die drei Muster gleichmäßig über den ganzen Pool 80 verteilt. Wie gezeigt ist, wurden drei Instanzen der Muster ”A”, ”B” und ”C” im Pool 80 bereitgestellt. Nachstehend wird ein der Veranschaulichung dienender Algorithmus für diese Methode aufgezeigt:
    • 1. Führe für jede einzelne Instanz i in der bisherigen Historie ph die folgenden Schritte durch:
    • 2. Stelle vorab (i, x) bereit
  • Methode 2 – X-tiefe Vorabbereitstellung mit Wahrscheinlichkeit:
  • Bei dieser Methode analysiert die Komponente 70 (4) die zur Verfügung stehenden Software-Pakete, die möglichen Kombinationen dieser Pakete und die Prozentsätze von zuvor bereitgestellten VM-Instanzen, die auf der Grundlage eines jeden Pakets bereitgestellt worden sind. Mit diesen Informationen passt die Komponente 70 den vorab bereitgestellten Pool so an, dass er der ”Beliebtheit” der Paket-Kombinationen am besten entspricht, wobei sie sicherstellt, dass die beliebtesten Kombinationen mit den größten Prozentsätzen und auch für eine schnellstmögliche Bereitstellung zur Verfügung stehen. Wie in 6 gezeigt ist, kann dies zu einer stärker verteilten Konfiguration von Mustern 92A bis 92E, 94 und 96A bis 96B der VM-Instanzen als bei der gleichmäßigen Verteilung, die in 5 gezeigt ist, führen. Im Einzelnen gibt es, wie dargestellt, insgesamt acht Muster von VM-Instanzen im Pool 90 (was aus historischen Daten ermittelt wird), die wie folgt verteilt sind: eine Menge von fünf für das Muster 92A bis 92E der VM-Instanz, eine Menge von eins für das Muster 94 der Instanz und eine Menge von zwei für das Muster 96A bis 96B der VM-Instanz. Diese Verteilung beruht auf historischen Daten, denen zufolge das Muster ”A” in 5/8 oder 62,5% der vorherigen Bereitstellungsoperationen vorkam, das Muster ”B” in 1/8 oder 12,5% der vorherigen Bereitstellungsoperationen vorkam, während das Muster ”C” in 2/8 oder 25% der vorherigen Bereitstellungsoperationen vorkam (was aus den historischen Daten 80 von 4 ermittelt wurde). Nachstehend wird ein der Veranschaulichung dienender Algorithmus aufgezeigt, der im Rahmen dieser Methode bereitgestellt wird:

    preprovision(imageToProvision, numberToProvision):
    • 1) for int i = 0; i < numberToProvision; i++ do:
    • 2) provisionToPreprovisionPool(imageToProvision)
  • Methode 3 – Pool-Segmentierung nach Kundengruppe
  • Diese Methode kann eine Erweiterung sowohl der einen als auch der anderen vorstehenden Methode darstellen, indem der vorab bereitgestellte Pool in Segmente oder Gruppen unterteilt wird. Jede Gruppe kann einer bestimmten Gruppe von Benutzern/Kunden zugewiesen werden. In einer Ausführungsform könnte diese Methode angewendet werden, wenn sich die Dynamik und die Historie zwischen zwei oder mehr Gruppen stark unterscheiden. Beispielsweise könnte diese Methode verwendet werden, um ”VIP”- oder Premiumkunden einen Pool mit garantierten Ressourcen zu geben, wie in 7 gezeigt ist. Wie gezeigt ist, kann der Pool 100 mehrere Verteilungen über mehrere Gruppen 102 und 104 enthalten. Die Gruppe 102 (Standard-Kunden) hat zum Beispiel Musterverteilungen 106A bis 106D, 108A bis 108B und 110A bis 110C, während die Gruppe 104 (Premiumkunden) Musterverteilungen 112, 114 und 116 hat. Diese der Veranschaulichung dienenden Szenarien gestatten es Premiumbenutzern, über einen speziellen reservierten Pool zu verfügen, den nur sie in Anspruch nehmen können. Dadurch könnte der normale, vorab bereitgestellte Pool aufgebraucht werden, während gleichzeitig dennoch gewährleistet ist, dass ein zu einer Premiumgruppe gehörender Benutzer praktisch sofortigen Zugriff auf eine VM-Instanz hätte. Im Allgemeinen können Kundenebenen und zugehörige Gruppen entsprechend mehreren Verfahren ermittelt werden. Kundenebenen könnten zum Beispiel: von einem Anbieter einer Cloud-Umgebung zugewiesen werden, vom Kunden käuflich erworben werden usw.
  • Nun Bezug nehmend auf 8 ist ein Flussdiagramm eines Verfahrens gemäß einer Ausführungsform der vorliegenden Erfindung gezeigt. Wie dargestellt ist, wird im Schritt S1 eine Größe eines Pools von VM-Instanzen ermittelt. Im Schritt S2 wird eine Verteilung von Mustern von VM-Instanzen in dem Pool ermittelt (z. B. gleichmäßige Verteilung, auf einem historischen Prozentsatz beruhende Verteilung, gruppenbasierte Verteilung usw.). Im Schritt S3 wird der Pool der VM-Instanzen entsprechend der Verteilung der Muster von VM-Instanzen bereitgestellt. Im Schritt S4 wird eine Arbeitslast-Anforderung empfangen, und im Schritt S5 wird sie unter Verwendung von mindestens einer VM-Instanz aus dem Pool verarbeitet.
  • Zwar wird sie hier als Lösung für die Verteilung eines VM-Pools dargestellt und beschrieben, doch versteht es sich, dass die Erfindung darüber hinaus verschiedene alternative Ausführungsformen bereitstellt. In einer Ausführungsform stellt die Erfindung zum Beispiel einen von einem Rechner lesbaren/nutzbaren Datenträger bereit, der Rechnerprogrammcode enthält, um es einer Rechnerinfrastruktur zu ermöglichen, Funktionalität zur Verteilung eines VM-Pools bereitzustellen, wie hier erörtert wird. Insoweit enthält der von einem Rechner lesbare/nutzbare Datenträger Programmcode, der jeden einzelnen der verschiedenen Prozesse der Erfindung ausführt. Es versteht sich, dass die Begriffe ”von einem Rechner lesbarer Datenträger” oder ”von einem Rechner nutzbarer Datenträger” eine oder mehrere Ausführungsformen einer beliebigen Art einer physischen Ausführungsform des Programmcodes umfassen. Im Einzelnen kann der von einem Rechner lesbare/nutzbare Datenträger Programmcode umfassen, der sich auf einem oder mehreren tragbaren Speicher-Herstellungsgegenständen (z. B. einer Compact-Disk, einer Magnetplatte, einem Band usw.), auf einem oder mehreren Datenspeicherteilen einer Datenverarbeitungseinheit wie zum Beispiel dem Systemspeicher 28 (1) und/oder dem Speichersystem 34 (1) (z. B. einer Festplatte, einem Nur-Lese-Speicher, einem Direktzugriffsspeicher, einem Cachespeicher usw.) befindet.
  • In einer anderen Ausführungsform stellt die Erfindung ein Verfahren bereit, das den erfindungsgemäßen Prozess auf der Grundlage von Abonnements, Werbung und/oder Gebühren durchführt. Das heißt, ein Diensteanbieter wie zum Beispiel ein Lösungsintegrator, könnte anbieten, Funktionalität zur Verteilung eines VM-Pools bereitzustellen. In diesem Fall kann der Diensteanbieter eine Rechner-Infrastruktur wie zum Beispiel das Rechnersystem 12 (1) erzeugen, verwalten, unterstützen usw., das die erfindungsgemäßen Prozesse für einen oder mehrere Nutzer durchführt. Als Gegenleistung kann der Diensteanbieter im Rahmen eines Abonnements und/oder eines Gebührenvertrags Zahlungen von dem beziehungsweise den Nutzern erhalten und/oder der Diensteanbieter kann Zahlungen aus dem Verkauf von Werbeinhalten an einen oder mehrere Dritte erhalten.
  • In noch einer weiteren Ausführungsform stellt die Erfindung ein von einem Rechner ausgeführtes Verfahren zur Verteilung eines VM-Pools bereit. In diesem Fall kann eine Rechner-Infrastruktur wie zum Beispiel das Rechnersystem 12 (1) bereitgestellt werden, und ein oder mehrere Systeme zur Durchführung der erfindungsgemäßen Prozesse können beschafft (z. B. erzeugt, gekauft, verwendet, abgeändert usw.) und in der Rechner-Infrastruktur eingesetzt werden. Insofern kann der Einsatz eines Systems einen oder mehrere von folgenden Schritten umfassen: (1) Installieren von Programmcode auf einer Datenverarbeitungseinheit wie zum Beispiel dem Rechnersystem 12 (1) von einem rechnerlesbaren Datenträger; (2) Hinzufügen von einer oder mehreren Datenverarbeitungseinheiten zu der Rechner-Infrastruktur; und (3) Aufnehmen und/oder Abändern von einem oder mehreren vorhandenen Systemen der Rechner-Infrastruktur, um es der Rechner-Infrastruktur zu ermöglichen, die erfindungsgemäßen Prozesse durchzuführen.
  • Es versteht sich, dass die Begriffe ”Programmcode” und ”Rechnerprogrammcode” in der hier verwendeten Weise gleichbedeutend sind und jeden Ausdruck in jeder Sprache, in jedem Code oder in jeder Notation eines Satzes von Befehlen bedeuten, die eine Datenverarbeitungseinheit, welche über die Fähigkeit zur Verarbeitung von Daten verfügt, veranlassen sollen, eine bestimmte Funktion entweder direkt oder nach entweder einem oder beiden von Folgendem auszuführen: (a) Umwandlung in eine andere Sprache, in einen anderen Code oder in eine andere Notation; und/oder (b) Nachbildung in einer anderen materiellen Form. Insofern kann der Programmcode in Form von einem oder mehreren von Folgendem realisiert werden: einem Anwendungs-/Software-Programm, Komponenten-Software/einer Bibliothek mit Funktionen, einem Betriebssystem, einem grundlegenden Einheitensystem/-treiber für eine bestimmte Datenverarbeitungseinheit und dergleichen.
  • Ein Datenverarbeitungssystem, das zur Speicherung und/oder Ausführung von Programmcode geeignet ist, kann im Rahmen dieser Erfindung bereitgestellt werden und mindestens einen Prozessor enthalten, der über einen Systembus direkt oder indirekt mit Speicherelementen verbunden ist. Die Speicherelemente können, ohne auf diese beschränkt zu sein, einen lokalen Speicher, der während der tatsächlichen Ausführung des Programmcodes verwendet wird, einen Massenspeicher und Cachespeicher beinhalten, die eine vorübergehende Speicherung von mindestens einem Teil des Programmcodes ermöglichen, um die Häufigkeit zu verringern, mit der Code während der Ausführung aus dem Massenspeicher abgerufen werden muss. Eingabe-/Ausgabe- und/oder andere externe Einheiten (einschließlich Tastaturen, Bildschirme, Zeigegeräte usw., ohne auf diese beschränkt zu sein) können entweder direkt oder über zwischengeschaltete Einheitensteuerungen mit dem System verbunden werden.
  • Netzwerkadapter können ebenfalls mit dem System verbunden werden, damit das Datenverarbeitungssystem mit anderen Datenverarbeitungssystemen, fernen Druckern, Speichereinheiten und/oder dergleichen über eine beliebige Kombination aus zwischengeschalteten privaten oder öffentlichen Netzwerken verbunden werden kann. Zu der Veranschaulichung dienenden Netzwerkadaptern gehören, ohne auf diese beschränkt zu sein, Modems, Kabelmodems und Ethernet-Karten.

Claims (15)

  1. Von einem Rechner ausgeführtes Verfahren zur Ermittlung von Verteilungen von Mustern über einen Pool von Abbildern von virtuellen Maschinen (VM) in einer vernetzten Datenverarbeitungsumgebung, wobei das Verfahren Folgendes umfasst: Ermitteln einer gesamten Pool-Größe für einen Pool von VM-Instanzen; Ermitteln einer Verteilung eines Satzes von Mustern von VM-Instanzen über den Pool auf der Grundlage von historischen Daten, auf die von mindestens einem Speichermedium eines Rechners zugegriffen wird; und Bereitstellen des Pools der VM-Instanzen in der vernetzten Datenverarbeitungsumgebung entsprechend der Verteilung.
  2. Von einem Rechner ausgeführtes Verfahren nach Anspruch 1, wobei die Verteilung eine gleichmäßige Verteilung des Satzes der VM-Muster über den Pool umfasst.
  3. Von einem Rechner ausgeführtes Verfahren nach Anspruch 1, wobei die Verteilung den Satz von VM-Mustern umfasst, die entsprechend historischer Prozentsätze, mit denen der Satz von VM-Mustern zuvor angefordert worden war, über den Pool verteilt werden.
  4. Von einem Rechner ausgeführtes Verfahren nach Anspruch 1, wobei die Verteilung den Satz von VM-Mustern umfasst, die zu einer Vielzahl von Gruppen von VM-Mustern zusammengefasst werden.
  5. Von einem Rechner ausgeführtes Verfahren nach Anspruch 4, wobei jede der Vielzahl der Gruppen von VM-Mustern zu einer bestimmten Kundenebene gehört.
  6. Von einem Rechner ausgeführtes Verfahren nach einem der vorhergehenden Ansprüche, wobei die vernetzte Datenverarbeitungsumgebung eine Cloud-Computing-Umgebung umfasst.
  7. Von einem Rechner ausgeführtes Verfahren nach einem der vorhergehenden Ansprüche, das des Weiteren Folgendes umfasst: Empfangen einer Arbeitslast-Anforderung; und Verarbeiten der Arbeitslast-Anforderung unter Verwendung von mindestens einer VM-Instanz, die aus dem Pool der VM-Instanzen ausgewählt wird.
  8. System zur Ermittlung von Verteilungen von Mustern über einen Pool von Abbildern von virtuellen Maschinen (VM) in einer vernetzten Datenverarbeitungsumgebung, wobei das System Folgendes umfasst: ein Hauptspeichermedium, das Befehle umfasst; einen Bus, der mit dem Hauptspeichermedium verbunden ist; und einen mit dem Bus verbundenen Prozessor, der, wenn er die Befehle ausführt, bewirkt, dass das System: eine gesamte Pool-Größe für einen Pool von VM-Instanzen ermittelt; eine Verteilung eines Satzes von Mustern von VM-Instanzen über den Pool auf der Grundlage von historischen Daten ermittelt, auf die von mindestens einem Speichermedium eines Rechners zugegriffen wird; und den Pool der VM-Instanzen in der vernetzten Datenverarbeitungsumgebung entsprechend der Verteilung bereitstellt.
  9. System nach Anspruch 8, wobei die Verteilung eine gleichmäßige Verteilung des Satzes der VM-Muster über den Pool umfasst.
  10. System nach Anspruch 8, wobei die Verteilung die Verteilung des Satzes von VM-Mustern über den Pool entsprechend historischer Prozentsätze, mit denen der Satz von VM-Mustern zuvor angefordert worden war, umfasst.
  11. System nach Anspruch 8, wobei die Verteilung die Zusammenfassung des Satzes von VM-Mustern zu einer Vielzahl von Gruppen von VM-Mustern umfasst.
  12. System nach Anspruch 11, wobei jede der Vielzahl der Gruppen von VM-Mustern zu einer bestimmten Kundenebene gehört.
  13. System nach einem der Ansprüche 8 bis 12, wobei die vernetzte Datenverarbeitungsumgebung eine Cloud-Computing-Umgebung umfasst.
  14. System nach einem der Ansprüche 8 bis 13, wobei das Speichermedium des Weiteren Befehle umfasst, um zu bewirken, dass das System: eine Arbeitslast-Anforderung empfängt; und die Arbeitslast-Anforderung unter Verwendung von mindestens einer VM-Instanz verarbeitet, die aus dem Pool der VM-Instanzen ausgewählt wird.
  15. Rechnerprogrammprodukt zur Ermittlung von Verteilungen von Mustern über einen Pool von Abbildern von virtuellen Maschinen (VM) in einer vernetzten Datenverarbeitungsumgebung, wobei das Rechnerprogrammprodukt ein rechnerlesbares Speichermedium und Programmbefehle umfasst, die auf dem rechnerlesbaren Speichermedium gespeichert werden, um: eine gesamte Pool-Größe für einen Pool von VM-Instanzen zu ermitteln; eine Verteilung eines Satzes von Mustern von VM-Instanzen über den Pool auf der Grundlage von historischen Daten zu ermitteln, auf die von mindestens einem Speichermedium eines Rechners zugegriffen wird; und den Pool der VM-Instanzen in der vernetzten Datenverarbeitungsumgebung entsprechend der Verteilung bereitzustellen.
DE102012215219A 2011-09-07 2012-08-28 Ermitteln von Verteilungen von Abbildmustern von virtuellen Maschinen in einer vernetzten Datenverarbeitungsumgebung Ceased DE102012215219A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/227,261 US9038063B2 (en) 2011-09-07 2011-09-07 Determining virtual machine image pattern distributions in a networked computing environment
US13/227,261 2011-09-07

Publications (1)

Publication Number Publication Date
DE102012215219A1 true DE102012215219A1 (de) 2013-03-07

Family

ID=46605715

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012215219A Ceased DE102012215219A1 (de) 2011-09-07 2012-08-28 Ermitteln von Verteilungen von Abbildmustern von virtuellen Maschinen in einer vernetzten Datenverarbeitungsumgebung

Country Status (4)

Country Link
US (2) US9038063B2 (de)
CN (1) CN103092671B (de)
DE (1) DE102012215219A1 (de)
GB (1) GB2494495B (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8769102B1 (en) * 2010-05-21 2014-07-01 Google Inc. Virtual testing environments
US9038063B2 (en) 2011-09-07 2015-05-19 International Business Machines Corporation Determining virtual machine image pattern distributions in a networked computing environment
US9003141B2 (en) * 2011-11-14 2015-04-07 Ca, Inc. Enhanced software application platform
US8904008B2 (en) 2012-01-09 2014-12-02 Microsoft Corporation Assignment of resources in virtual machine pools
US9372735B2 (en) 2012-01-09 2016-06-21 Microsoft Technology Licensing, Llc Auto-scaling of pool of virtual machines based on auto-scaling rules of user associated with the pool
US9170849B2 (en) 2012-01-09 2015-10-27 Microsoft Technology Licensing, Llc Migration of task to different pool of resources based on task retry count during task lease
US10353738B2 (en) 2012-03-21 2019-07-16 International Business Machines Corporation Resource allocation based on social networking trends in a networked computing environment
CN103442088B (zh) * 2013-09-16 2016-04-27 苏州市职业大学 一种分组计算的云计算系统
CN105335207B (zh) 2014-05-29 2019-04-12 国际商业机器公司 用于管理虚拟机实例的方法和装置
US10225207B2 (en) * 2014-08-25 2019-03-05 International Business Machines Corporation Managing hybrid cloud placement policies
JP2016103179A (ja) * 2014-11-28 2016-06-02 株式会社日立製作所 計算機リソースの割り当て方法及び計算機システム
CN105278874A (zh) * 2015-09-15 2016-01-27 中国联合网络通信集团有限公司 大数据平台系统及其运行方法
US10037221B2 (en) 2015-12-28 2018-07-31 Amazon Technologies, Inc. Management of virtual desktop instance pools
US20180129524A1 (en) * 2016-11-10 2018-05-10 International Business Machines Corporation Managing pre-allocated virtual machine instance pools
US10963355B2 (en) 2018-11-28 2021-03-30 International Business Machines Corporation Automated and dynamic virtual machine grouping based on application requirement
US11915024B2 (en) * 2020-07-16 2024-02-27 International Business Machines Corporation Pool management for in-vehicle device application startup

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4949254A (en) 1988-09-29 1990-08-14 Ibm Corp. Method to manage concurrent execution of a distributed application program by a host computer and a large plurality of intelligent work stations on an SNA network
US5093912A (en) 1989-06-26 1992-03-03 International Business Machines Corporation Dynamic resource pool expansion and contraction in multiprocessing environments
US7577722B1 (en) 2002-04-05 2009-08-18 Vmware, Inc. Provisioning of computer systems using virtual machines
US20040030882A1 (en) 2002-08-08 2004-02-12 Forman George Henry Managed application pre-launching
CN101427220A (zh) 2004-01-30 2009-05-06 国际商业机器公司 用于计算工具的计算环境的组件化自动供应和管理
US8316130B2 (en) 2004-12-22 2012-11-20 International Business Machines Corporation System, method and computer program product for provisioning of resources and service environments
US8429630B2 (en) 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
JP4129988B2 (ja) 2005-11-10 2008-08-06 インターナショナル・ビジネス・マシーンズ・コーポレーション リソースのプロビジョニング方法
US7941801B2 (en) 2006-03-07 2011-05-10 Oracle America Inc. Method and system for provisioning a virtual computer and scheduling resources of the provisioned virtual computer
WO2008002419A2 (en) * 2006-06-19 2008-01-03 Xensource, Inc. Open virtual appliance
US8176486B2 (en) * 2007-02-15 2012-05-08 Clearcube Technology, Inc. Maintaining a pool of free virtual machines on a server computer
US8171485B2 (en) * 2007-03-26 2012-05-01 Credit Suisse Securities (Europe) Limited Method and system for managing virtual and real machines
CN101290583B (zh) * 2007-04-19 2011-03-16 国际商业机器公司 为虚拟机供应图像的方法和系统
US8903983B2 (en) 2008-02-29 2014-12-02 Dell Software Inc. Method, system and apparatus for managing, modeling, predicting, allocating and utilizing resources and bottlenecks in a computer network
US8291416B2 (en) * 2009-04-17 2012-10-16 Citrix Systems, Inc. Methods and systems for using a plurality of historical metrics to select a physical host for virtual machine execution
US9086928B2 (en) * 2009-08-31 2015-07-21 Accenture Global Services Limited Provisioner within cloud console—defining images of an enterprise to be operable on different cloud computing providers
US8924559B2 (en) 2009-12-03 2014-12-30 International Business Machines Corporation Provisioning services using a cloud services catalog
US8533103B1 (en) * 2010-09-14 2013-09-10 Amazon Technologies, Inc. Maintaining latency guarantees for shared resources
MY178111A (en) 2010-12-22 2020-10-05 Mimos Berhad Intelligent load handling in cloid infrastructure using trend analysis
US9038063B2 (en) 2011-09-07 2015-05-19 International Business Machines Corporation Determining virtual machine image pattern distributions in a networked computing environment

Also Published As

Publication number Publication date
CN103092671A (zh) 2013-05-08
GB2494495A (en) 2013-03-13
CN103092671B (zh) 2016-08-03
US9317321B2 (en) 2016-04-19
GB2494495B (en) 2016-10-05
US20130061221A1 (en) 2013-03-07
US20150186177A1 (en) 2015-07-02
US9038063B2 (en) 2015-05-19
GB201210253D0 (en) 2012-07-25

Similar Documents

Publication Publication Date Title
DE102012215219A1 (de) Ermitteln von Verteilungen von Abbildmustern von virtuellen Maschinen in einer vernetzten Datenverarbeitungsumgebung
DE112012000444B4 (de) Verfahren, System und Computerprogrammprodukt zum Ermitteln einer optimalen Datenverarbeitungsumgebung zum Ausführen eines Abbildes sowie Verfahren zum Implementieren eines entsprechenden Systems
DE112013001889B4 (de) Dynamische Zuweisung einer Arbeitslast über eine Vielzahl von Clouds hinweg
DE112016003120B4 (de) Umleiten einer Kopie beim Schreiben
DE112010003819B4 (de) Cloudübergreifende gemeinsame Ressourcen-Nutzung innerhalb einer Cloud-Datenverarbeitungsumgebung
DE112012004336B4 (de) System, Verfahren und Programmprodukt für kostenbewusste Auswahl von Vorlagen zum Bereitstellen von gemeinsam genutzten Ressourcen
DE112012003505B4 (de) Automatisierte Auswahl von Funktionen zum Verringern der Speicherkapazität auf der Grundlage von Leistungsanforderungen
DE112010003886B4 (de) Bereitstellung von Diensten unter Verwendung eines Cloud-Dienste-Katalogs
DE102013205572B4 (de) Verwenden von softwarekomponenten-metadaten zum bereitstellen von virtuellen maschinen in einer vernetzten datenverarbeitungsumgebung
DE112012003316T5 (de) Dynamisches Erwerben von Datenverarbeitungsressourcen in einer vernetzten Datenverarbeitungsumgebung
DE102012219363B4 (de) Ereignisvorhersage und Ermittlung von vorbeugenden Maßnahmen in einer vernetzten Datenverarbeitungsumgebung
DE112011100166T5 (de) Starten von virtuellen Instanzen in einer Cloud-Computing-Umgebung
DE112012002941T5 (de) Anwendungsressourcenverwalter über eine Cloud
DE112016001902T5 (de) Schätzen von Rechenressourcen für die Ausführung von Data-Mining-Diensten
DE102016119298B4 (de) Zeitpunktkopieren mit klonen von ketten
DE102013204186A1 (de) Ermitteln von Prioritäten für zwischengespeicherte Objekte zum Ordnen des Übertragens von Änderungen an zwischengespeicherten Objekten beruhend auf gemessener Netzwerkbandbreite
DE112021000390T5 (de) Anpassen der leistung eines datenverarbeitungssystems
DE112018005898T5 (de) Dynamische bereitstellung von software-funktionen
DE102021127254A1 (de) Inhaltssensitives Auswählen von Knoten zum Erstellen von Containern
DE102014116744B4 (de) Management von Informationstechnologieressourcen
DE112017005022T5 (de) Umladen der Bandverarbeitung auf Objektspeicher
DE102021125182A1 (de) Gemeinsam genutzte unternehmenscloud
DE112019003130T5 (de) Hsm-selbstzerstörung in einer hybriden cloud-kms-lösung
DE112020005306T5 (de) Implementierung von arbeitslasten in einer multi-cloud-umgebung
DE112021005636T5 (de) Migrieren von komplexen legacy-anwendungen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R083 Amendment of/additions to inventor(s)
R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final