-
HINTERGRUND DER ERFINDUNG
-
Gebiet der Erfindung
-
Die vorliegende Erfindung betrifft ein Zuordnen von gemeinsam genutzten Ressourcen und insbesondere ein Auswählen einer optimalen Gruppe von Vorlagen, um Ressourcenanforderungen mit minimaler Über- und Unterbereitstellung zu erfüllen.
-
Beschreibung des Stands der Technik
-
Der Erwerb und die Verwaltung von Informationstechnologie (IT) ist für jede moderne Organisation ein größeres Budgetproblem. Darüber hinaus wird lokale IT-Hardware selten mit voller Kapazität genutzt. Um daher Kosten und Verschwendung von IT-Infrastruktur zu verringern, gehen Organisationen zunehmend dazu über, Arbeitslast auf virtuellen Maschinen (VMs) zu konsolidieren, die auf weniger Servern gehostet werden, anstatt physische Hardware zu erwerben. Ein entfernt angeordneter Server-Computer stellt jede VM als einen virtuellen Server mit virtuellen Ressourcen bereit, z.B. Verarbeitungsleistung, Arbeitsspeicher und Plattenspeicherplatz. Üblicherweise wird jede VM-Konfiguration aus einer Anzahl von virtuellen Ressourcenvorlagen (VRTs oder Vorlagen) ausgewählt. Jede VRT definiert vorgegebene virtuelle Ressourcenfunktionen, die zugewiesen werden können, um eine VM zu definieren. Der bzw. die Server-Computer ordnen jeder VM Kapazität zu (z.B. Plattenspeicherplatz, Verarbeitungsressourcen und Arbeitsspeicher), indem eine VRT zugewiesen wird, deren Konfiguration (Software-Stack und Lizenzen) dem beabsichtigten Zweck und den erwarteten Anforderungen für die VM am nächsten kommt.
-
Beim Verwalten dieser VMs war es schwierig, ihre optimale Kapazität und eine optimale Konfiguration zu bestimmen, d.h. die optimale VRT auszuwählen. Üblicherweise wählt ein Dienstanbieter eine VRT aus und ordnet jeder VM entsprechende physische Ressourcen zu, vorwiegend auf der Grundlage einer Anbietersystemoptimierung, von Arbeitslastvorhersagen und einer Ressourcennutzungshistorie, die aus einer ständigen Überwachung der VM-Ressourcennutzung erfasst wird. Jedoch können selbst gute Vorhersageergebnisse die Benutzererfahrung aufgrund von Über- oder Unterzuteilung beeinträchtigen. Eine Überzuteilung verschwendet Energie und Ressourcen, Kapazität, die ansonsten für andere Benutzer oder zum Unterstützen weiterer VMs verfügbar wäre. Da eine Unterzuteilung unzureichende Ressourcen zu einer oder mehreren VMs zuweist, wirkt sich dies auf die Servicequalität (Quality-of-Service (QoS)) dieser VMs aus, z.B. stockende Videodaten oder verstümmelte Audiodaten.
-
Benutzeranforderungen sind höchst unterschiedlich, was Anbieter zwingen kann, die Definition und Anzahl der von ihnen angebotenen Vorlagen zu verändern. Obwohl Ressourcenanbieter die Anzahl von angebotenen VRTs erhöhen können, um allen Anforderungen gerecht zu werden, kann ein Erhöhen der Anzahl eine Überbereitstellung von Ressourcen und eine Zersiedelung von Vorlagen (template sprawling) verursachen. Eine Ressourcen-Überbereitstellung, wie eine Überbuchung, nimmt mehr Ressourcen und Energie in Anspruch als für die bereitgestellte Kapazität notwendig ist; dieser Überschuss an Ressource und Energie könnte ansonsten für andere Benutzer oder weitere VMs verfügbar gemacht werden. Eine Vorlagenzersiedlung, die auch unter Bildzersiedlung (image sprawl) bekannt ist, tritt auf, wenn eine Vorlage oder ein Bild, die bzw. das den Anforderungen eines Benutzers entspricht, optimiert wird, um zu denen eines anderen zu passen, wodurch eine weitere Vorlage zu den angebotenen VRTs hinzugefügt wird. Letzten Endes wächst die Anzahl von Vorlagen auf eine nicht mehr verwaltbare Anzahl.
-
Mehrere Ansätze wurden ausprobiert, um Anforderungen von Anwendungsservern mit verfügbaren Ressourcen abzugleichen. Der typische Cloud-Computing-Ansatz bestand darin, eine VM-Vorlage auszuwählen, die den Anforderungen der Benutzer-Zielanwendungen am besten entsprach, wobei die Kosten der Auswahl unberücksichtigt blieben. Einige weitere vorherige Ansätze geben VM-Vorlagen und Netzwerkvorlagen an und speichern sie, um vor allem ein Installieren von VMs, zugehörigen Netzwerken und erforderlicher Software zu beschleunigen. In noch weiteren Ansätzen wurden Profile von in Betrieb befindlichen VMs und auswählenden Ziel-Migrationsservern erstellt. Statt den Schwerpunkt auf ein Auswählen von virtuellen Ressourcenvorlagen zu legen, stellen andere Techniken alternativ ein Skalieren von Anwendungen auf die Vorlagen in den Mittelpunkt, d.h. ein Anpassen der Anwendung an die VM statt umgekehrt. Schließlich gleicht ein technologisch ausgereifter Ansatz die vom Benutzer bereitgestellten Instanzen mit offenem Virtualisierungsformat (Open Virtualization Format (OVF)) mit entsprechenden Cloud-Angeboten ab.
-
Somit besteht ein Bedarf an einem Zuordnen von angemessenen IT-Ressourcen zu Mindestkosten und ohne Ressourcenverschwendung, während gleichzeitig auch eine Server-QoS aufrechterhalten wird, und insbesondere besteht ein Bedarf an einem Auswählen eines Satzes von VM-Vorlagen zum Bereitstellen von VMs in einer Cloud-Infrastruktur, von Vorlagen, die die meisten Benutzeranforderungen zu Mindestkosten einwandfrei erfüllen.
-
Im Stand der Technik offenbart
US 2008 / 0 126 406 A1 ein objektbasiertes Modellierungssystem, -verfahren und -computergerät, welches einen realen Lebensprozess modelliert.
US 2009 / 0 171 705 A1 offenbart Vorlagen, welche in einer IT-Umgebung bereitgestellt und verwendet werden.
US 2008 / 0 294 777 A1 offenbart ein Verfahren zur automatischen Bereitstellung von Rechenressourcen in einem verteilten Rechnernetz.
US 2007 / 0 271 203 A1 offenbart Systeme und Methoden zur Erstellung von Kostenvoranschlägen.
-
KURZDARSTELLUNG DER ERFINDUNG
-
Ein Merkmal der Erfindung ist ein Minimieren einer Überbereitstellung von Cloud-Ressourcen;
- ein weiteres Merkmal der Erfindung ist eine verringerte Vorlagenzersiedelung/Bildzersiedelung in einer Cloud-Umgebung;
- noch ein weiteres Merkmal der Erfindung ist ein Pool von VM-Vorlagen/-Bildern, die für ein kostenbewusstes Clustering ausgewählt wurden, um Kundenanforderungen besser zu entsprechen, wodurch Client-Kosten und Ressourcenverschwendung verringert werden.
-
Die vorliegende Erfindung betrifft einen Vorlagengenerator, der Vorlagen in einem kostenbewussten Clustering zusammenfasst, ein Verfahren zum Zuordnen von Ressourcen unter Verwendung eines kostenbewussten Clusterings und der dazugehörigen Computerprogrammprodukte. Eine Ressourcenbereitstellungseinheit erzeugt, wählt und verwaltet eine ausgewählte Anzahl von Ressourcenvorlagen. Jede Vorlage gibt eine zuordenbare Konfiguration von Ressourcenkapazität an. Jeder anfordernden Client-Einheit sind Ressourcen zugeordnet, die durch eine der ausgewählten Ressourcenvorlagen bestimmt wurden.
-
Eine Ressourcenbereitstellungseinheit enthält einen Speicher für Konfigurationen mit Kosten von zuordenbaren Ressourcen und zugehörigen Attributen, einen Speicher für Serveranforderungen mit vorher empfangenen Anforderungen und einen Speicher für Eingabeparameter mit Vorlagenlistenoptionen. Ein Vorlagengenerator bestimmt eine optimale Liste von Vorlagen, um vorher empfangene Anforderungen zu erfüllen. Ein Vorlagenspeicher speichert erzeugte Vorlagenlisten. Die sich daraus ergebenden Vorlagenlisten beruhen auf den jeweiligen Ressourcen-Gesamtkosten. Ressourcen können jeweils stark voneinander abweichende und unterschiedliche Kosten aufweisen, d.h. eine hohe Kostendifferenz bei Verarbeitungsleistung, Arbeitsspeicher und Plattenspeicherplatz.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Die vorgenannten und weiteren Zielsetzungen, Gesichtspunkte und Vorteile sind besser anhand der folgenden ausführlichen Beschreibung einer bevorzugten Ausführungsform der Erfindung unter Bezugnahme auf die Zeichnungen zu verstehen, wobei:
- 1 einen Cloud-Computing-Knoten gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht;
- 2 eine Cloud-Computing-Umgebung gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht;
- 3 Abstraktionsmodellschichten gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht;
- 4 ein Beispiel für eine Ressourcenbereitstellungseinheit für kostenbewusstes Clustering zum Abgleichen von Vorlagen mit Anforderungen für Ressourcen gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung zeigt;
- 5 ein Beispiel für die Auswahl der Top-k-Vorlagen durch einen bevorzugten Vorlagengenerator zeigt;
- 6A ein Beispiel für ein Auffinden von Mindestkosten-Übereinstimmungen zeigt;
- 6B ein Beispiel für eine Ressourcen-Übereinstimmungstabelle zeigt, die für ein Auflisten von Mindestkosten-Übereinstimmungen erstellt wurde;
- 7 ein Beispiel für ein Erstellen der endgültigen Vorlagenliste durch Umspannen der Top-k-Listen mit einem niedrigsten und einem höchsten Wert zeigt;
- 8 ein Beispiel für eine Anwendung der vorliegenden Erfindung auf einen Satz von siebenhundertsiebenundvierzig (747) Serveranforderungen zeigt.
-
BESCHREIBUNG VON BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
Es ist von vornherein zu verstehen, dass, obwohl diese Offenbarung eine detaillierte Beschreibung zu Cloud-Computing enthält, eine Umsetzung der hierin zitierten Lehren nicht auf eine Cloud-Computing-Umgebung begrenzt ist. Die Ausführungsformen der vorliegenden Erfindung sind stattdessen fähig, in Verbindung mit jedem anderen Typ einer jetzt bekannten oder später entwickelten Datenverarbeitungsumgebung und wie des Weiteren hierin im Folgenden angegeben umgesetzt zu werden.
-
Cloud-Computing ist ein Modell einer Dienstleistung zum Ermöglichen eines bequemen bedarfsabhängigen Netzwerkzugriffs (On-Demand-Netzwerkzugriffs) auf einen gemeinsam genutzten Pool von konfigurierbaren Datenverarbeitungsressourcen (z.B. Netzwerke, Netzbandbreite, Server, Verarbeitung, Arbeitsspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste), die mit minimalem Verwaltungsaufwand oder Interaktion mit einem Anbieter des Diensts rasch bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Merkmale, mindestens drei Dienstmodelle und mindestens vier Nutzungsmodelle enthalten.
-
Die Merkmale sind wie folgt:
- On-Demand-Selfservice: Ein Cloud-Nutzer kann einseitig und je nach Bedarf automatisch für Datenverarbeitungs-Ressourcen, wie z.B. Serverzeit und Netzwerkspeicher, ohne erforderliche menschliche Interaktion mit dem Anbieter des Diensts Vorsorge treffen.
-
Breiter Netzwerkzugriff: Funktionen stehen über ein Netzwerk zur Verfügung, und auf sie wird über Standardmechanismen zugegriffen, die eine Verwendung über heterogene Thin Client- oder Thick Client-Plattformen unterstützen (z.B. Mobiltelefone, Laptops und PDAs).
-
Ressourcen-Pooling: Die Datenverarbeitungsressourcen des Anbieters sind in einem Pool zusammengeschlossen, um unter Verwendung eines Multi-Tenant-Modells mehreren Nutzern mit unterschiedlichen physischen und virtuellen Ressourcen zu dienen, deren Zuweisung oder Zuweisungsaufhebung je nach Bedarf dynamisch erfolgt. Es herrscht insofern ein Gefühl der Standortunabhängigkeit, als der Nutzer im Allgemeinen keine Kontrolle oder Kenntnis in Bezug auf den genauen Standort der bereitgestellten Ressourcen hat, aber in der Lage sein kann, einen Standort auf einer höheren Abstraktionsebene anzugeben (z.B. Land, Bundesstaat oder Rechenzentrum).
-
Schnelle Elastizität: Funktionen können rasch und elastisch, in einigen Fällen automatisch für eine schnelle Erweiterung bereitgestellt und für eine schnelle Reduzierung rasch freigegeben werden. Für den Nutzer scheinen die zur Bereitstellung verfügbaren Funktionen oft unbegrenzt zu sein und können jederzeit in beliebiger Menge erworben werden.
-
Richtig bemessener Dienst: Cloud-Systeme kontrollieren und optimieren Ressourcen automatisch durch die Nutzung einer Messfunktion auf einer Abstraktionsebene, die dem Diensttyp entspricht (z.B. Speicher, Verarbeitung, Bandbreite und aktive Benutzerkonten). Eine Inanspruchnahme von Ressourcen kann überwacht, kontrolliert und gemeldet werden, was sowohl für den Anbieter als auch den Nutzer des in Anspruch genommenen Dienstes für Transparenz sorgt. Des Weiteren stellt die vorliegende Erfindung eine Client-Selbstüberwachung zum Korrigieren von individueller Ressourcenzuordnung und -konfiguration während des Betriebs bereit für eine optimierte Ressourcenzuordnung in Echtzeit und mit minimierten Betriebskosten und minimierter Energie-Inanspruchnahme.
-
Es gibt folgende Dienstmodelle:
- Software as a Service (SaaS): Die für den Nutzer bereitgestellte Funktion besteht darin, die auf einer Cloud-Infrastruktur ausgeführten Anwendungen des Anbieters zu nutzen. Auf die Anwendungen kann über eine Thin Client-Schnittstelle, wie beispielsweise einen Web-Browser (z.B. webberuhende eMail), von verschiedenen Client-Einheiten aus zugegriffen werden. Weder verwaltet noch kontrolliert der Nutzer die zu Grunde liegende Cloud-Infrastruktur, einschließlich Netzwerk, Server, Betriebssysteme, Speicher oder auch einzelne Anwendungsfunktionen, ausgenommen möglicherweise begrenzte benutzerspezifische Einstellungen einer Anwendungskonfiguration.
-
Platform as a Service (PaaS): Die für den Nutzer bereitgestellte Funktion besteht darin, auf der Cloud-Infrastruktur vom Nutzer erstellte oder erworbene Anwendungen zu nutzen, die unter Verwendung von Programmiersprachen und Tools erstellt wurden, die von dem Anbieter unterstützt werden. Weder verwaltet noch kontrolliert der Nutzer die zu Grunde liegende Cloud-Infrastruktur, einschließlich Netzwerk, Server, Betriebssysteme oder Speicher, aber er besitzt die Kontrolle über die umgesetzten Anwendungen und möglicherweise die Hosting-Umgebungskonfigurationen von Anwendungen.
-
Infrastructure as a Service (IaaS): Die für den Nutzer bereitgestellte Funktion besteht in der Bereitstellung von Verarbeitung, Speicher, Netzwerken und anderen grundlegenden Datenverarbeitungsressourcen, die manchmal als Hypervisor bezeichnet werden, wobei der Nutzer in der Lage ist, beliebige Software zu nutzen und auszuführen, zu der auch Betriebssysteme und Anwendungen gehören können. Der Nutzer verwaltet weder noch kontrolliert er die zu Grunde liegende Cloud-Infrastruktur, aber er hat die Kontrolle über Betriebssysteme, Speicher, genutzte Anwendungen und möglicherweise eine begrenzte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
-
Es gibt folgende Nutzungsmodelle:
- Private Cloud: Die Cloud-Infrastruktur wird ausschließlich für eine Organisation betrieben. Sie kann von der Organisation oder einer Drittpartei verwaltet werden und kann innerhalb oder außerhalb der Geschäftsräume vorhanden sein.
-
Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine spezielle Community, die gemeinsame Problemstellungen hat (z.B. Berücksichtigung von Zielsetzung, Sicherheitsanforderungen, Richtlinien und Konformität). Sie kann von den Organisationen oder einer Drittpartei verwaltet werden und kann innerhalb oder außerhalb der Geschäftsräume vorhanden sein.
-
Public Cloud: Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Industriegruppe zur Verfügung gestellt und ist im Besitz einer Organisation, die Cloud-Dienste verkauft.
-
Hybrid Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung von zwei oder mehr Clouds (Private, Community oder Public), die eindeutige Entitäten bleiben, aber durch eine standardisierte oder proprietäre Technologie vereinigt sind, die eine Daten- und Anwendungsportabilität ermöglicht (z.B. Cloud Bursting für einen Lastausgleich zwischen Clouds).
-
Eine Cloud-Datenverarbeitungsumgebung ist dienstorientiert mit einem Schwerpunkt auf Statusungebundenheit, niedriger Kopplung, Modularität und semantischer Interoperabilität. Das Kernstück des Cloud-Computing ist eine Infrastruktur, die ein Netzwerk von miteinander verbundenen Knoten aufweist.
-
Unter Bezugnahme auf 1 wird eine schematische Darstellung eines Beispiels für einen Cloud Computing-Knoten gezeigt. Der Cloud-Computing-Knoten 10 ist nur ein Beispiel für einen geeigneten Cloud-Computing-Knoten und soll keinerlei Einschränkung in Bezug auf den Schutzumfang der Verwendung oder Funktionalität von Ausführungsformen der hierin beschriebenen Erfindung andeuten. Ungeachtet dessen lässt sich der Cloud-Computing-Knoten 10 umsetzen und/oder kann jede der im Vorgenannten erläuterten Funktionalitäten ausführen.
-
Im Cloud-Computing-Knoten 10 ist das Computersystem/der Server 12 vorhanden, das bzw. der mit zahlreichen anderen Umgebungen oder Konfigurationen für Universal- oder Sonder-Datenverarbeitungssysteme betriebsbereit ist. Zu Beispielen für bekannte Datenverarbeitungssysteme, Umgebungen und/oder Konfigurationen, die für eine Verwendung mit dem Computersystem/Server 12 geeignet sein können, zählen PC-Systeme, Servercomputersysteme, Thin Clients, Thick Clients, Handheld- oder Laptop-Einheiten, Multiprozessorsysteme, Systeme auf der Grundlage von Mikroprozessoren, Set-Top-Boxen, programmierbare Unterhaltungselektronik, Netzwerk-PCs, Minicomputersysteme, Mainframe-Computersysteme und verteilte Cloud-Computing-Umgebungen, die beliebige der oben genannten Systeme oder Einheiten und dergleichen aufweisen, sie sind aber nicht darauf beschränkt.
-
Das Computersystem/der Server 12 kann in dem allgemeinen Kontext von durch ein Computersystem ausführbaren Anweisungen beschrieben werden, wie beispielsweise Programmmodule, die von einem Computersystem ausgeführt werden. Im Allgemeinen können Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen usw. enthalten, die bestimmte Aufgaben ausführen oder bestimmte abstrakte Datentypen umsetzen. Das Computersystem/der Server 12 kann in verteilten Cloud-Computing-Umgebungen betrieben werden, wobei Aufgaben von entfernt angeordneten Verarbeitungseinheiten ausgeführt werden, die über ein Datenübertragungsnetzwerk verbunden sind. In einer verteilten Cloud-Computing-Umgebung können Programmmodule sich sowohl in lokalen als auch entfernt angeordneten Computersystem-Speichermedien befinden, die Speichereinheiten enthalten.
-
Wie in 1 gezeigt, ist das Computersystem/der Server 12 im Cloud Computing-Knoten 10 in Form einer Universal-Datenverarbeitungseinheit gezeigt. Die Komponenten des Computersystems/Servers 12 können einen oder mehrere Prozessoren oder Verarbeitungseinheiten 16, den Systemarbeitsspeicher 28 und den Bus 18 enthalten, der verschiedene Systemkomponenten einschließlich des Systemarbeitsspeichers 28 mit dem Prozessor 16 verbindet, sie sind aber nicht darauf beschränkt.
-
Der Bus 18 stellt einen oder mehrere von mehreren beliebigen Typen von Busstrukturen dar, einschließlich eines Arbeitsspeicherbusses oder Arbeitsspeicher-Controllers, eines Peripheriebusses, eines beschleunigten Grafikanschlusses und eines Prozessors oder lokalen Busses unter Verwendung von einer aus einer Vielfalt von Busarchitekturen. Als Beispiel und nicht einschränkend enthalten derartige Architekturen einen Industry Standard Architecture- (ISA) Bus, Micro Channel Architecture- (MCA) Bus, Enhanced ISA- (EISA) Bus, einen lokalen Video Electronics Standards Association- (VESA) Bus und Peripheral Component Interconnects- (PCI) Bus.
-
Das Computersystem/der Server 12 weist typischerweise eine Vielfalt von Medien auf, die von einem Computersystem gelesen werden können. Derartige Medien können alle verfügbaren Medien sein, auf die von dem Computersystem/Server 12 zugegriffen werden kann, und sie enthalten sowohl flüchtige als auch nicht flüchtige Medien, austauschbare und nicht austauschbare Medien.
-
Der Arbeitssystemspeicher 28 kann vom Computersystem lesbare Medien in Form von flüchtigem Arbeitsspeicher enthalten, wie beispielsweise den Direktzugriffsarbeitsspeicher (RAM) 30 und/oder den Cache-Zwischenarbeitsspeicher 32. Das Computersystem/der Server 12 kann ferner andere austauschbare/nicht austauschbare, flüchtige/nicht flüchtige Computersystem-Speichermedien enthalten. Nur als Beispiel kann das Speichersystem 34 für ein Lesen von und ein Schreiben auf nicht austauschbare, nicht flüchtige Magnetdatenträger bereitgestellt werden (nicht gezeigt und typischerweise als „Festplatte“ bezeichnet). Obwohl nicht gezeigt, können ein Magnetplattenlaufwerk für ein Auslesen und Beschreiben einer austauschbaren, nicht flüchtigen Magnetplatte (z.B. eine Diskette) und eine optisches Plattenlaufwerk für ein Auslesen oder Beschreiben einer austauschbaren, nicht flüchtigen optischen Platte wie einem CD-ROM, DVD-ROM oder andere optische Datenträger bereitgestellt werden. In solchen Fällen können alle über eine oder mehrere Datenträgerschnittstellen mit dem Bus 18 verbunden werden. Wie ferner im Folgenden dargestellt und beschrieben wird, kann der Arbeitsspeicher 28 mindestens ein Programmprodukt mit einem Satz (z.B. mindestens einem) von Programmmodulen enthalten, die so konfiguriert sind, dass sie die Funktionen von Ausführungsformen der Erfindung ausführen.
-
Das Programm/Dienstprogramm 40, das einen Satz von (mindestens einem) von Programmmodulen 42 aufweist, kann beispielsweise und nicht einschränkend im Arbeitsspeicher 28 gespeichert werden, ebenso wie ein Betriebssystem, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten. Das Betriebssystem, ein oder mehrere Anwendungsprogramme, weitere Programmmodule und Programmdaten oder eine Kombination davon können alle jeweils eine Umsetzung einer Netzwerkumgebung enthalten. Die Programmmodule 42 führen im Allgemeinen die Funktionen und/oder Methodiken von Ausführungsformen der Erfindung aus, wie hierin beschrieben.
-
Das Computersystem/der Server 12 kann auch mit einer oder mehreren externen Einheiten 14 Daten austauschen, wie beispielsweise einer Tastatur, einer Zeigeeinheit, der Anzeige 24 usw.; einer oder mehreren Einheiten, die es einem Benutzer ermöglichen, mit dem Computersystem/Server 12 zu interagieren; und/oder allen Einheiten (z.B. Netzwerkkarte, Modem usw.), die es dem Computersystem/Server 12 ermöglichen, mit einer oder mehreren anderen Datenverarbeitungseinheiten Daten auszutauschen. Ein derartiger Datenaustausch kann über Eingabe-/Ausgabe-(E/A) Schnittstellen 22 erfolgen. Außerdem kann das Computersystem/der Server 12 mit einem oder mehreren Netzwerken, wie beispielsweise einem lokalen Netz (LAN), einem allgemeinen Weitverkehrsnetz (WAN) und/oder einem öffentlichen Netzwerk (z.B. dem Internet), über den Netzwerkadapter 20 Daten austauschen. Wie dargestellt, tauscht der Netzwerkadapter 20 mit den anderen Komponenten des Computersystems/Servers 12 über den Bus 18 Daten aus. Es sollte klar sein, dass, obwohl nicht gezeigt, andere Hardware- und/oder Software-Komponenten in Verbindung mit dem Computersystem/Server 12 verwendet werden könnten. Beispiele dafür, ohne darauf beschränkt zu sein, sind: Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Plattenlaufwerk-Arrays, RAID-Systeme, Bandlaufwerke und Speichersysteme zur Datenarchivierung usw.
-
Unter folgender Bezugnahme auf 2 ist die erläuternde Cloud Computing-Umgebung 50 dargestellt. Wie gezeigt, weist die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 10 auf, mit denen lokale Datenverarbeitungseinheiten Daten austauschen können, die von Nutzern der Cloud verwendet werden, wie beispielsweise dem Personal Digital Assistant (PDA) oder dem Mobiltelefon 54A, dem Desktop-Computer 54B, dem Laptop-Computer 54C und/oder dem Fahrzeug-Computersystem 54N. Die Knoten 10 können untereinander Daten austauschen. Sie können (nicht gezeigt) physisch oder virtuell in einem oder mehreren Netzwerken gruppiert werden, wie beispielsweise Private, Community, Public oder Hybrid Cloud, wie hierin oben beschrieben, oder eine Kombination davon sein. Damit hat die Cloud-Computing-Umgebung 50 die Möglichkeit, eine Infrastruktur, Plattformen und/oder Software als Dienste anzubieten, für die ein Cloud-Nutzer keinerlei Ressourcen auf einer lokalen Datenverarbeitungseinheit vorhalten muss. Es versteht sich, dass die in 2 gezeigten Typen von Datenverarbeitungseinheiten 54A bis N nur zur Veranschaulichung dienen sollen, und dass die Cloud-Computing-Knoten 10 und die Cloud-Computing-Umgebung 50 mit jedem Typ einer computerisierten Einheit über jeden Typ von Netzwerk und/oder eine über ein Netzwerk adressierbare Verbindung (z.B. unter Verwendung eines Web-Browsers) Daten austauschen können.
-
Unter folgender Bezugnahme auf 3 wird ein Set von funktionalen Abstraktionsschichten gezeigt, die von der Cloud Computing-Umgebung 50 (2) bereitgestellt werden. Es sollte von vornherein verstanden werden, dass die in 3 gezeigten Komponenten, Schichten und Funktionen nur zu Beispielzwecken dienen sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie dargestellt, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
- Die Hardware- und Software-Schicht 60 enthält Hardware- und Software-Komponenten. Zu Beispielen für Hardware-Komponenten zählen Mainframes, in einem Beispiel zSeries®-Systeme von IBM®; Server auf der Grundlage einer RISC-(Reduced Instruction Set Computer) Architektur, in einem Beispiel pSeries®-Systeme von IBM; xSeries®-Systeme von IBM; BladeCenter®-Systeme von IBM; Speichereinheiten; Netzwerke und Netzwerkkomponenten. Zu Beispielen für Software-Komponenten zählen Software für Netzwerkanwendungsserver, in einem Beispiel Software für WebSphere®-Anwendungsserver von IBM; und Datenbanksoftware, in einem Beispiel Software für DB2®-Datenbanken von IBM. (IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere, und DB2 sind Marken der International Business Machines Corporation, die weltweit unter zahlreichen Gerichtsbarkeiten registriert sind.)
-
Die Virtualisierungsschicht 62 stellt eine Abstraktionsschicht bereit, von der aus die folgenden Beispiele für virtuelle Entitäten bereitgestellt werden können: virtuelle Server; virtueller Speicher; virtuelle Netzwerke, einschließlich virtuelle private Netzwerke; virtuelle Anwendungen und Betriebssysteme; und virtuelle Clients.
-
In einem Beispiel kann die Verwaltungsschicht 64 die im Folgenden beschriebenen Funktionen bereitstellen. Die Ressourcenbereitstellung 70 sorgt für eine dynamische Beschaffung von Datenverarbeitungsressourcen und weiteren Ressourcen, die zum Ausführen von Aufgaben innerhalb der Cloud-Computing-Umgebung eingesetzt werden. Messung und Preisbestimmung ermöglichen beim Einsatz von Ressourcen innerhalb der Cloud-Computing-Umgebung eine Kostenverfolgung und eine Abrechnung oder Rechnungsstellung für die Inanspruchnahme dieser Ressourcen. In einem Beispiel können diese Ressourcen Lizenzen für Anwendungssoftware aufweisen. Die Sicherheit stellt für Nutzer der Cloud und Aufgaben eine Identitätsüberprüfung sowie Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal stellt den Zugang zur Cloud-Computing-Umgebung für Nutzer und Systemadministratoren bereit. Die Service-Level- (Dienstgüte) Verwaltung sorgt für die Zuordnung und Verwaltung von Cloud-Computing-Ressourcen, so dass erforderliche Service-Levels eingehalten werden. Planung und Vertragserfüllung des Service Level Agreement (SLA) (Dienstgütevereinbarung) stellen eine Vorab-Vereinbarung für und Beschaffung von Cloud-Computing-Ressourcen bereit, für die gemäß eines SLA eine zukünftige Anforderung erwartet wird.
-
Die Arbeitslastenschicht 66 stellt Beispiele für die Funktionalität bereit, für die die Cloud-Computing-Umgebung eingesetzt werden kann. Zu Beispielen für Arbeitslasten und Funktionen, die von dieser Schicht aus bereitgestellt werden können, zählen: Zuordnung und Navigation; Software-Entwicklung und Lifecycle-Management; Bereitstellung von virtuellen Schulungen; Datenanalyseverarbeitung; Transaktionsverarbeitung; und Mobile Desktop.
-
4 zeigt ein Beispiel der Ressourcenbereitstellungseinheit 70 für kostenbewusstes Clustering zum Abgleichen von Vorlagen mit Anforderungen für Ressourcen gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung. Insbesondere berücksichtigt die bevorzugte kostenbewusste Clustering-Technik die Gesamtkosten von Ressourcen, die jeweils stark voneinander abweichende und unterschiedliche Kosten haben können, z.B. hohe Kostenunterschiede für Verarbeitungsleistung, Arbeitsspeicher und Plattenspeicherplatz. Im Wesentlichen wird nach einem Bestimmen einer Mindestkostenübereinstimmung für jede Serveranforderung die Vorlagenliste gemäß der Anzahl von erfüllten Anforderungen einer vorgegebenen Vorlage optimiert. Die vorliegende Erfindung weist eine Anwendung auf Cloud-Computing auf, wodurch es Anbietern gestattet wird, die Kosten-Nutzen-Beziehungen zwischen der Anzahl von VM-Vorlagen, der Ebene der erfüllten Serveranforderungen und den potenziell weit voneinander abweichenden Kosten beim Erfüllen der Anforderungen zu analysieren.
-
Die bevorzugte Ressourcenbereitstellungseinheit 70 enthält den Speicher für Konfigurationen 72, den Speicher für Serveranforderungen 74, den Speicher für Eingabeparameter 76, den Vorlagenspeicher 78 und den Vorlagengenerator 80. Der Speicher für Konfigurationen 72, der Speicher für Serveranforderungen 74, der Speicher für Eingabeparameter 76 und der Vorlagenspeicher 78 können einzelne Speichereinheiten sein oder in einem einzigen Speicher gespeichert werden, z.B. im Speicher 34 von 1. Der bevorzugte Vorlagengenerator 80 setzt eine bevorzugte kostenbewusste Clustering-Technik um, die die Anzahl von Vorlagen auswählt und bestimmt, die zum Erfüllen der Datenverarbeitungsanforderungen für einen Satz von Serveranforderungen erforderlich sind.
-
Der Speicher für Konfigurationen 72 enthält Ressourcenkosten und zugehörige Attribute. Zum Beispiel kann ein Eintrag für eine Servervorlage mit einer virtuellen zentralen Verarbeitungseinheit (CPU) von 2,1 GHz, einem Plattenspeicher von 1 Terabyte (1 TB) und 2 GB Arbeitsspeicher Kosten von $ 0,08 pro Stunde angeben. Vorzugsweise enthält der Speicher für Serveranforderungen 74 eine Datenbank für Serveranforderungen mit vorher empfangenen Serveranforderungen, die nach Ressourcentyp definiert sind, wie z.B. CPU (oder CPU-Entsprechung, z.B. Dual-Core 64-Bit i86), Arbeitsspeicher und Plattenspeicherplatz. Der Speicher für Eingabeparameter 76 speichert eine Angabe, ob eine Option „Beste Vorlagen“ ausgewählt wurde, sodass der Vorlagengenerator 80 alle Vorlagen auflistet oder die Werte von k und einen Vorlagenprozentsatz speichert, die verwendet werden, wenn und falls eine Option für Top-k-Vorlagen ausgewählt wurde. Der bevorzugte Vorlagengenerator 80 erzeugt eine erste Gruppe von Vorlagen aus der Anzahl von verfügbaren Kombinationen. Danach bestimmt der Vorlagengenerator 80 durch Umsetzen einer bevorzugten kostenbewussten Clustering-Technik die Anzahl von Vorlagen, die zum Erfüllen der Erfordernisse der Serveranforderung in einer Mindestkostenübereinstimmung erforderlich sind. Nach dem Berechnen der Mindestkostenübereinstimmung für jede Serveranforderung optimiert der Vorlagengenerator 80 die Vorlagenliste gemäß der Anzahl von erfüllten Anforderungen einer bestimmten Vorlage und speichert optimierte Listen im Vorlagenspeicher 78.
-
Vorzugsweise werden Serveranforderungen in einer Datenbank für Anforderungen im Speicher für Serveranforderungen 74 gespeichert, und jede Anforderung wird nach Ressourcentyp definiert, z.B. CPU, Arbeitsspeicher und Platte. Der bevorzugte Vorlagengenerator 80 erzeugt eine vollständige Liste von Vorlagen, um alle Server-Bedarfsanforderungen zu erfüllen, z.B. auf der Grundlage einer Option „Beste Vorlagen“, die im Speicher für Eingabeparameter 76 angegeben sind. Alternativ erzeugt der bevorzugte Vorlagengenerator 80 die Top-k-Vorlagen, die die Anforderungen der meisten Serveranforderungen erfüllen, z.B. unter Verwendung der Option „Top-k-Vorlagen“, die auch im Speicher für Eingabeparameter 76 angegeben sind.
-
Der Vorlagengenerator 80 berechnet eine Mindestkostenübereinstimmung für jede Serveranforderung aus einer vollständigen Liste von Vorlagen, um alle Server-Bedarfsanforderungen zu erfüllen. Aus diesen Mindestkostenübereinstimmungen wählt der Vorlagengenerator 80 den k-Wert (k1, k2, ..., kn) für die Top-k-Liste, die die Erfordernisse der meisten Serveranforderungen erfüllt, z.B. durch Erfüllen eines Prozentsatzes oder niedrigste Gesamtkosten. Der sich daraus ergebende Satz der am häufigsten angeforderten Vorlagen ist eine Vorlagen-Untergruppe, gibt die Gesamtkosten an und wird als der endgültige kleinere Satz von Vorlagen gewählt.
-
5 zeigt ein Beispiel der Auswahl 80A der Top-k-Vorlagen durch den bevorzugten Vorlagengenerator 80. Zunächst werden die Konfigurationen 72 mit jeder Serveranforderung im Speicher für Anforderungen 74 verglichen, um die Mindestkostenübereinstimmung 86 für jede Anforderung zu bestimmen 82. Als Nächstes werden alle Vorlagen verworfen 88, die die Mindestanforderungen für mindestens eine der Anforderungen in dem Satz nicht erfüllen. Die restlichen Vorlagen werden gemäß der Anzahl von übereinstimmenden Anforderungen sortiert 90, und die sortierten Vorlagen werden gespeichert 92. Die Top-k-Listen 94 und die sortierten Vorlagen 92 werden verwendet, um jedes k zu bestimmen 96. Die Anzahl von erfüllten Anforderungen für jedes k und die Kosten werden z.B. zur Anzeige an die Ausgabe 98 übergeben.
-
Zuerst werden also die Server-Mindestanforderungen für jede Anforderung bestimmt 82, indem zum Beispiel die Anforderungen 74 an CPU, Arbeitsspeicher und Platte mit der Vorlage mit den kleinsten Werten in den entsprechenden aufgelisteten Zielkonfigurationen 72 abgeglichen werden. In einem einfachen Beispiel kann eine Zielliste für CPU-Kapazität eine Auswahl von 1, 2, 4, 8, 12, 16, ..., maxCPU-Kernen gestatten, wobei maxCPU die maximal verfügbare Anzahl ist. Desgleichen können der auswählbare Arbeitsspeicher und Plattenspeicherplatz jeweils 1, 2, 4, 8, 12, 16, 32, ..., maxArbeitsspeicher Gigabyte (GB) und 100, 200, 300, 400, 500, 600, ..., maxFestplatte GB sein. Obwohl CPU, Arbeitsspeicher und Plattenkapazität für dieses Beispiel verwendet werden, werden üblicherweise weitere Ressourcen in einer bevorzugten Lösung berücksichtigt, wie beispielsweise Netzwerkbandbreite.
-
Die Mindestkostenübereinstimmung 86 für jede Serveranforderung stellt eine untere Grenze für die Kosten zum Erfüllen von Anforderungen für jeden Server auf der Grundlage der aufgelisteten Ressourcen bereit, z.B. CPU, Arbeitsspeicher und Platte. Ferner verwendet der bevorzugte Vorlagengenerator 80 die Mindestkosten 86 zum Bestimmen, ob alle Anforderungen zu Mindestkosten erfüllt werden können. Jede Übereinstimmung mit einer Mindestkostenvorlage wird hierin als „Mindestkostenübereinstimmung“ bezeichnet.
-
6A zeigt ein Beispiel zum Auffinden von Mindestkostenübereinstimmungen 82, und 6B zeigt ein Beispiel der Ressourcen-Übereinstimmungstabelle 86, die zum Auflisten von Mindestkostenübereinstimmungen gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung erstellt wird. Das Auffinden von Mindestkostenübereinstimmungen 82 beginnt bei 822 mit dem Erstellen einer Kostenliste für Mindestkonfigurationen 824 und der Ressourcen-Übereinstimmungstabelle 86, die in diesem Beispiel ein Feld für die Anzahl von Kernen 860, den erforderlichen Arbeitsspeicher 862 und den erforderlichen Plattenspeicherplatz 864 enthält. Die Anforderungen 74 werden in der angeforderten Reihenfolge ausgewählt 826, bis alle Anforderungen ausgewählt worden sind 828. Solange noch nicht ausgewählte Anforderungen übrig sind, erfolgt der Vergleich 830 der aktuell ausgewählten Anforderung mit der Zielressourcenliste 832, um eine Vorlage mit Mindestressourcen zu suchen, die mit den Erfordernissen der Anforderung übereinstimmt. Die Ressourcenübereinstimmung wird in die Ressourcen-Übereinstimmungstabelle 86 eingegeben, und unter Verwendung der Liste von Ressourcenkosten 834 werden die Kosten der Übereinstimmung bestimmt 836. Die Kosten der übereinstimmenden Vorlage werden in die Kostenliste für Mindestkonfigurationen 824 eingegeben, und die nächste Anforderung wird ausgewählt 826. Sobald alle Anforderungen ausgewählt worden sind 828, werden die übereinstimmenden Anforderungen 86 und die dazugehörigen Kosten 824 zur anschließenden Filterung und Analyse zurückgegeben 838.
-
Jede Vorlage definiert eine zuordenbare Kombination von CPU, Arbeitsspeicher und Plattenspeicherplatz. Daher werden nach dem Bestimmen der zugehörigen Kosten (824 in 6A) für jede übereinstimmende Anforderung (86 in 5) nicht verwendete Vorlagen (z.B. Duplikate) verworfen 88. Als Ergebnis dessen erfüllt der übrige Satz von eindeutigen Vorlagen mindestens eine Anforderung; und ferner kann jede Anforderung durch mindestens eine Vorlage erfüllt werden. Während ferner einige einzelnen Vorlagen für gewöhnlich zum Erfüllen von mehr als einer Anforderung verwendet werden können, können andere für gewöhnlich nicht verwendet werden und keinerlei Anforderung erfüllen. Der Satz von eindeutigen Vorlagen, die aus den Mindestkostenübereinstimmungen 86 ausgewählt wurden, enthält jedoch Vorlagen zum Erfüllen aller Anforderungen 88.
-
Als Nächstes wird der ausgewählte Satz von Vorlagen nach dem ausgewählten Kriterium sortiert 90, z.B. Speicher in aufsteigender Reihenfolge, Arbeitsspeicher in aufsteigender Reihenfolge, nach CPU-Kernen oder vorzugsweise nach der Anzahl von Anforderungen in absteigender Reihenfolge, die durch jede Vorlage erfüllt wurden. Wenn eine Liste von Vorlagen mit mindestens einer Übereinstimmung 88 gesammelt und sortiert worden ist, und die Liste 90 sortiert worden ist, filtert der bevorzugte Vorlagengenerator 80 die Liste von Anforderungen, um ein Auswählen 96 einer verschiedenen Anzahl von häufigsten oder Top-Anforderungen zu unterstützen, die n Vorlagenlisten, n Listen von Top-k-Vorlagen oder Top-k-Listen bereitstellt. Der bevorzugte Vorlagengenerator 80 verwendet die Top-k-Listen zum Identifizieren und Auflisten von Mindestressourcenübereinstimmungen für jeden Server.
-
Wie in 7 gezeigt, erzeugt 96 der bevorzugte Vorlagengenerator (80 in 4) die endgültige Vorlagenliste 78 durch Umspannen von Anforderungen für die Top-k-Listen mit einem Mindest- und einem Höchstwert. Insbesondere bestimmt der bevorzugte Vorlagengenerator 80 die Anzahl von Anforderungen für jede Liste, die nicht erfüllt werden können, oder die zu Mindestkosten und über den Mindestkosten liegenden Kosten erfüllt werden können.
-
Zuerst 960 erstellt der bevorzugte Vorlagengenerator 80 eine Top-k-Anforderungstabelle 98 für die Anzahl von Anforderungen (z.B. 5, 10, 15, 20, 25), welche die Top-Vorlagen erfüllen. Der erste Wert von k (z.B. 5, 10, 15, 20, 25) wird aus der Top-k-Liste 94 ausgewählt 962. Die erste Anforderung wird aus dem Speicher für Anforderungen 74 abgerufen 108. Danach wird die ausgewählte Anforderung mit den Vorlagen in der aktuellen Top-k-Liste verglichen 966, um zu bestimmen, ob irgendeine der Vorlagen, entweder die für mindeste (Kosten) oder darüber liegende (höhere) die Anforderung erfüllt; oder ob die Anforderung von keiner der Top-k-Vorlagen erfüllt werden kann. Dies wird wiederholt 968, wobei die nächste Anforderung ausgewählt 964 und verglichen 966 wird, bis alle Anforderungen verglichen worden sind 968. Als nächstes wird ein Eintrag in die Top-k-Anforderungstabelle 98 für den aktuellen Wert von k vorgenommen 970, der die Anzahl von Anforderungen angibt, die durch diese Vorlagen erfüllt und nicht erfüllt worden sind. Wenn weitere Top-k-Werte 972 aufgelistet sind 94, wird beim Zurückkehren zu 962 der nächste Wert ausgewählt, und die Anzahl von Ergebnissen, die durch die Top-k-Vorlagen erfüllt und nicht erfüllt worden sind, wird bestimmt 962 bis 970. Andernfalls, wenn alle Werte von k ausgewählt worden sind 972, wird die Top-k-Anforderungstabelle 98 als die endgültige Vorlagenliste 78 zurückgegeben. Der bevorzugte Vorlagengenerator 80 verwendet die endgültige Vorlagenliste 78 in Analysen von Kosten-Nutzen-Beziehungen zum Bestimmen der besten Top-k-Liste, z.B. einen Punkt von verminderten Rückgaben, wie durch die Mindestkosten-k-Liste angegeben.
-
8 zeigt ein Beispiel einer Anwendung der vorliegenden Erfindung auf einen Satz von siebenhundertsiebenundvierzig (747) Serveranforderungen für k = 5, 10, 15, 20, 25 und 89 (d.h. alle Vorlagen) mit einem Prozentsatz, der bei Mindestkosten (unten), Höchstkosten (Mitte) und durch die Top-k-Vorlagen nicht erfüllt (oben) übereinstimmt.
-
Dementsprechend verringert die vorliegende Erfindung sowohl eine Über- als auch Unterbereitstellung von kostspieliger Ressourcenkapazität. z.B. Verarbeitungsleistung, Arbeitsspeicher und Plattenspeicherplatz. Da zuordenbare Ressourcen jeweils stark voneinander abweichende und unterschiedliche Kosten haben können, wählt die bevorzugte kostenbewusste Clustering-Technik ferner Vorlagen auf der Grundlage der Ressourcen-Gesamtkosten in jeder Vorlage aus. Somit werden Vorlagen nach Gesamtkosten erzeugt und zusammengefasst, und eine Anzahl von Vorlagen mit niedrigsten Kosten wird ausgewählt, die Serveranforderungen bei optimalen Kosten erfüllen. Ferner erleichtern die erzeugten Vorlagenlisten die Analyse von Kosten-Nutzen-Beziehungen zwischen der Anzahl von verwalteten Vorlagen, der Anzahl der für jeden Server erfüllten Anforderungen und den Kosten für das Erfüllen dieser Anforderungen.
-
Zwar wurde die Erfindung unter Bezugnahme auf bevorzugte Ausführungsformen beschrieben, doch wird der Fachmann erkennen, dass die Erfindung mit Modifizierungen innerhalb des Schutzgedankens und Schutzumfangs der Ansprüche im Anhang ausgeübt werden kann. Alle derartigen Variationen und Modifizierungen sollen unter den Schutzumfang der Ansprüche im Anhang fallen. Beispiele und Zeichnungen sind dementsprechend als veranschaulichend und nicht als einschränkend zu betrachten.