-
Gebiet der Erfindung
-
Ausführungsformen der Erfindung betreffen im Allgemeinen die Informationstechnologie und insbesondere das Verwalten virtueller Maschinen.
-
Hintergrund
-
Eine Ressourcen-Überbelegung in Datenverarbeitungs-Cloud-Systemen wird in Informationstechnologie(IT)-Diensten üblich. Zum Rosten separater Dienste in den Cloud-Systemen werden häufig virtuelle Maschinen (VM) provisioniert. Herkömmlicherweise werden diese VMs mit allen ihren zugeordneten Ressourcen provisioniert (z. B. Speicher und Zentraleinheit (CPU)), die bei den physischen Ressourcen garantiert sind. Eine Ressourcenzuordnung von mehr als der Menge, die durch die physischen Ressourcen garantiert werden kann, d. h. Ressourcen-Überbelegung, ermöglicht es, dass mehr VMs auf einem Hypervisor gehostet werden können. Da VMs häufig nicht die gesamten zugeordneten Ressourcen verbrauchen, kann eine Überbelegung die Ressourcen-Auslastung erhöhen und im Ergebnis die Kosten der Dienstebereitstellung verringern.
-
Jedoch bringt eine Überbelegung das Risiko der Ressourcenüberlastung im Hypervisor mit sich, bevor die gehosteten VMs die zugeordneten Ressourcen aufbrauchen, und die Ressourcenüberlastung, besonders die Speicherüberlastung, verschlechtert die Leistungsfähigkeit des Dienstes in hohem Maße.
-
Bestehende Ansätze, die den unerwünschten Folgen der Überbelegung abzuhelfen versuchen, sind unter anderem reine Migrationslösungen. Jedoch sind reine Migrationslösungen nicht ausreichend, um eine Überlastung in überbelegten Systemen zu beheben (bei diesen Systemen besteht die Möglichkeit, dass eine große Anzahl von Hypervisoren gleichzeitig nahe an der Überlastung ist), und der Migrationsaufwand kann in einem dichten überbelegten Hypervisor-Cluster groß sein.
-
Entsprechend besteht eine Notwendigkeit, einer Überlastung in überbelegten Datenverarbeitungsumgebungen abzuhelfen.
-
Kurzdarstellung
-
Nach einem Aspekt der vorliegenden Erfindung werden Techniken zum Beheben einer Ressourcenüberlastung bereitgestellt. Ein beispielhaftes computerimplementiertes Verfahren zum Beheben einer Überlastung in einer überbelegten Datenverarbeitungsumgebung kann Schritte des Messens der Ressourcen-Nutzung jeder der vielen virtuellen Maschinen in jedem von mindestens einem Hypervisor in einer Datenverarbeitungsumgebung, bei Erkennung einer Ressourcenüberlastung in einem von mindestens einem Hypervisor des Ermittelns von mindestens einer Operation, die für mindestens eine der vielen virtuellen Maschinen im Hypervisor vorzunehmen ist, um die Ressourcenüberlastung zu beheben und dabei die Werte der im Betrieb befindlichen virtuellen Maschinen zu steigern, und des Sendens eines Befehls an den Hypervisor, um die mindestens eine Operation auszugeben, beinhalten.
-
Nach einem weiteren Aspekt der Erfindung werden Techniken für ein automatisiertes Verfahren zur Überlastungsbehebung für eine virtualisierte Umgebung bereitgestellt. Ein beispielhaftes computerimplementiertes Verfahren beinhaltet die Schritte des Wiederherstellens aus einer Situation überlasteter Systemressourcen durch Auswählen einer Teilmenge der virtuellen Maschinen zum Migrieren und einer Teilmenge der virtuellen Maschinen zum Stilllegen und durch periodisches Auswählen einer Teilmenge der virtuellen Maschinen zum Migrieren und einer Teilmenge der virtuellen Maschinen zum Wiederinbetriebnehmen aus einer Vielzahl virtueller Maschinen im System, um die Anzahl der in Betrieb befindlichen virtuellen Maschinen und den Arbeitswert, der von den in Betrieb befindlichen virtuellen Maschinen erreicht wird, zu steigern.
-
Ein weiterer Aspekt der Erfindung oder ihrer Elemente kann in Form eines Herstellungsartikels realisiert werden, der computerlesbare Anweisungen materiell verkörpert, die implementiert bewirken, dass ein Computer eine Vielzahl von Verfahrensschritten ausführt, wie hier beschrieben. Ferner kann ein weiterer Aspekt der Erfindung oder ihrer Elemente in Form einer Vorrichtung mit einem Speicher und mindestens einem Prozessor realisiert werden, der mit dem Speicher gekoppelt und betriebsfähig ist, um die genannten Verfahrensschritte durchzuführen. Noch ein weiterer Aspekt der Erfindung oder ihrer Elemente kann in Form von Mitteln zum Durchführen der hier beschriebenen Verfahrensschritte oder Elementen davon realisiert werden; die Mittel können unter anderem (i) (ein) Hardware-Modul(e), (ii) (ein) Software-Modul(e) oder (iii) eine Kombination von Hardware- und Software-Modulen sein; jedes von (i) bis (iii) implementiert die hier dargelegten spezifischen Techniken, und die Software-Module werden in einem materiellen computerlesbaren Speichermedium (oder mehreren solcher Medien) gespeichert.
-
Diese und andere Objekte, Merkmale und Vorteile der vorliegenden Erfindung werden aus der folgenden detaillierten Beschreibung ihrer veranschaulichenden Ausführungsformen ersichtlich, die in Verbindung mit den beigefügten Zeichnungen zu lesen ist.
-
Kurzbeschreibung der Zeichnungen
-
1 ist ein Schaubild, das eine Beispielarchitektur des Systems zum Beheben von Überlastung in einer Cloud gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht;
-
2 ist ein Schaubild, das eine Implementierungsarchitektur des Systems zum Beheben von Überlastung in einer Ziel-Cloud gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht;
-
3 ist ein Schaubild, das einen Auswahlalgorithmus für die Stilllegung von VMs gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht;
-
4 ist ein Schaubild, das einen Auswahlalgorithmus für die Wiederinbetriebnahme von VMs gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht;
-
5 ist ein Ablaufplan, der Verfahren zum Beheben von Überlastung in einer überbelegten Datenverarbeitungseinheit gemäß einer Ausführungsform der Erfindung veranschaulicht;
-
6 ist ein Systemschaubild eines beispielhaften Computersystems, in dem mindestens eine Ausführungsform der Erfindung implementiert werden kann.
-
Detaillierte Beschreibung
-
Wie hier beschrieben, beinhaltet ein Aspekt der vorliegenden Erfindung Beheben von Überlastung in überbelegten Datenverarbeitungsumgebungen. Mindestens eine Ausführungsform der Erfindung beinhaltet Bereitstellen eines Mechanismus zum Beheben von Überlastung, ohne vorauszusetzen, dass immer Ressourcen für die Migration verfügbar sind. Wie hier im Einzelnen erläutert, wird der Begriff eines Arbeitswerts verwendet, um die Wichtigkeit von VMs zu vergleichen, und das Problem der Überlastungsbehebung wird als Variante des Removable Online Multi-Knapsack Problems (ROMKP) (lösbares multiples Online-Rucksackproblem) formuliert. Ein Aspekt der Erfindung enthält einen Algorithmus zum Lösen dieses Optimierungsproblems.
-
Eine Ausführungsform der Erfindung kann beispielsweise in einer großen kommerziellen Cloud-Umgebung implementiert werden. Wenn keine ressourcenverfügbaren Hypervisoren vorhanden sind, beinhaltet mindestens eine Ausführungsform der Erfindung zeitweiliges Aussondern bestimmter Rechenvorgänge, d. h. Stilllegen einer oder mehrerer VMs, die als weniger wichtig ermittelt werden, um die laufende Überlastung zu beheben, so dass die übrigen VMs normal laufen. Nachdem eine Menge von VMs ihre Aufgaben abschließt und normal beendet oder Ressourcen freigibt, werden Ressourcen verfügbar und stillgelegte VMs werden wieder in Betrieb genommen, um ihre Aufgaben abzuschließen. Entsprechend beinhaltet ein Aspekt der Erfindung, wie hier im Einzelnen erläutert, Ermitteln, welche Operationen (Migration, Stilllegung oder Wiederinbetriebnahme) für welche VMs durchzuführen sind, um die Ressourcenüberlastung in überbelegten Datenverarbeitungssystemen, die unter Umständen keine ausreichenden Ressourcen haben, zu beheben und dabei die Werte der laufenden Dienste zu steigern (beispielsweise zu maximieren).
-
Ferner beinhaltet mindestens eine Ausführungsform der Erfindung Kombinieren von Erwägungen von Stilllegungs-, Wiederinbetriebnahme und Migrationsoperationen von VMs, um einen Algorithmus bereitzustellen, der diese Problemvariante behandelt. Entsprechend bezieht der Algorithmus Erwägungen der Kosten der Stilllegungs-, Migrations- und Wiederinbetriebnahmeoperationen ein und eine Gesamtoptimierung wird näherungsweise durch einen Heuristikalgorithmus angestrebt.
-
1 ist ein Schaubild, das eine Beispielarchitektur des Systems zum Beheben von Überlastung in einer Cloud gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht. Veranschaulichend bildet 1 die miteinander verbundenen Hypervisoren 106 und 110 ab. Abbilder von VMs (zum Beispiel VM 102 und VM 104) werden in den Speicher gelegt, der von allen Hypervisoren gemeinsam genutzt wird. Entsprechend kann eine VM in jedem Hypervisor gestartet oder wieder in Betrieb genommen werden. Ein in jedem Hypervisor installierter Wächter (wie durch die Komponenten 108 und 112 bildlich dargestellt) misst periodisch die Ressourcennutzung aller VMs im Hypervisor und berichtet die Ressourcenmessung an die Behebungszentrumskomponente 114.
-
Wenn vom Wächter im Hypervisor eine Überlastung im Hypervisor erkannt wird, hat das Behebungszentrum Kenntnis über die Ressourcennutzung aller Hypervisoren in der Cloud und trifft Entscheidungen, welche VMs migriert oder stillgelegt oder wieder in Betrieb genommen werden sollen. Außerdem sendet das Behebungszentrum Befehle an die entsprechenden Hypervisoren, um Operationen auszugeben. Die Meldungsübertragungen zwischen den Wächtern und dem Behebungszentrum sind durch die gestrichelten Linien in 1 veranschaulicht.
-
Da sich die Ressourcennutzung einer VM mit der Zeit ändert und von Zeit zu Zeit eine Provisionierung und Deprovisionierung von VMs erfolgt, ändert sich die Ressourcennutzung in der Cloud ebenfalls. Entsprechend prüft das Behebungszentrum periodisch, ob ausreichende Ressourcen verfügbar werden, um stillgelegte VMs wieder in Betrieb zu nehmen.
-
Wie hier im Einzelnen erläutert, enthält ein Aspekt der Erfindung die Verwendung eines Begriffs „Arbeitswert”, um die Wichtigkeit einer VM zu definieren. Der Arbeitswert, wie hier verwendet, zielt darauf ab, den potenziellen Verlust der Dienste/Aufgaben in einer VM, der durch Stilllegen der VM verursacht wird, und/oder die Auswirkungen der Stilllegung einer VM auf die Ausführung anderer VMs zu messen. Diese Werte werden bei herkömmlichen Platzierungsverfahren für VMs nicht als Dienstfunktion gemessen, weil solche Ansätze VMs nicht stilllegen. Beispielsweise enthält der Arbeitswert die erwartete Arbeit, die von einer stillgelegten VM geleistet werden sollte, wenn sie nicht stillgelegt wäre, und die Dienstfunktionen bei diesen Verfahren berücksichtigen diesen Aspekt nicht.
-
Ein Ziel von mindestens einer Ausführungsform der Erfindung ist es, VMs stillzulegen, die den geringsten Arbeitswertbetrag leisten, und VMs wieder in Betrieb zu nehmen, die einen höheren Arbeitswert leisten. Wie hier beschrieben, dient ein analytisches Modell dazu, den Arbeitswert jeder VM zu bewerten, und macht sich eine vorhandene Analyse (beispielsweise Zeitreihe mit Saisonalität) von VM-Metriken zunutze, um den Arbeitswert zu berechnen/abzuschätzen. Eine solche Berechnung kann die Kenntnis von prognostizierten Arbeitslastmustern, Lebenszeit-Prognosen anhand der Vergangenheit oder des Typs der Arbeitslast, Kundenstil, etc. einbeziehen.
-
Auch beinhaltet mindestens eine Ausführungsform der Erfindung die Verwendung eines Abhängigkeitsmodells zum Bewerten des Arbeitswerts jeder VM. Dies kann beispielsweise die statische Abhängigkeit über die Konfigurationsanalyse, die dynamische Abhängigkeit und/oder die Verwendung anderer Heuristiken wie Preis der VM, aktuelle Arbeit der Zentraleinheit (CPU) etc. beinhalten.
-
Eine beispielhafte Ausführungsform des Arbeitswerts sind die Einnahmen oder der Preis. Wenn der Preis nicht als Arbeitswert verwendet wird, kann der Arbeitswert durch Dienstarten angegeben werden. Wenn eine VM, die kritische Dienste wie E-Mail und Network File System (NFS) (Netzwerk-Dateisystem) bereitstellt, stillgelegt wird, kann sie einen großen Verlust verursachen. Der potenzielle Verlust kann direkt aus der Kenntnis über die Dienste einer VM abgeschätzt werden oder durch Zunutzemachen analytischer Modelle, wenn eine solche direkte Kenntnis nicht vorliegt. Wenn beispielsweise eine VM einen Sicherungsdienst für eine Reihe von Maschinen bereitstellt und den Sicherungsdienst regelmäßig einmal wöchentlich durchführt, kann die Analyse der Zeitreihe mit Saisonalität angewandt werden, um die Regelmäßigkeit des Dienstes dieser VM zu erkennen und die Kritikalität dieser VM zu einer bestimmten Zeit zu prognostizieren. Arbeitslastmuster können ebenfalls prognostiziert und dazu verwendet werden, um die Wichtigkeit der Arbeit einer VM zu einer bestimmten Zeit zu ermitteln.
-
Außer dem Anwenden von Kenntnissen über Dienste, analytischen Modellen und Arbeitslastmustern zum Abschätzen des Arbeitswerts können Administratoren eine Berechnung des Arbeitswerts der VMS zu jeder beliebigen Zeit t vorgeben. Ein Beispiel zum Berechnen des Arbeitswerts ist nachstehend angegeben (die Parameter V
1, V
2, V
3, und die Funktion V_Muster() sind richtig einzustellen):
-
Neben dem Verlust des Dienstes der stillgelegten VM kann die stillgelegte VM auch andere VMs beeinflussen, die von der stillgelegten VM abhängen. Als Beispiel hängt ein Aktienhandelsdienst in einem WebSphere-Anwendungsserver (WAS) von einem DB2-Server ab, und der WAS- und der DB2-Server liegen in zwei separaten VMs vor. Wenn die DB2-VM stillgelegt wird, erreicht die WAS-VM keinen Arbeitswert.
-
Außerdem kann mindestens eine Ausführungsform der Erfindung das Optimieren der Gesamtarbeitswerte in Betrieb befindlicher VMs in abhängigkeitsfreien Szenarien optimieren, wenn bestimmte VMs ausgewählt werden, um stillgelegt, migriert oder wieder in Betrieb genommen zu werden. In abhängigkeitsfreien Szenarien ist der Arbeitswert einer VM unabhängig von den Arbeitswerten anderer VMs. In einem solchen Szenario ist das Problem eine Variante des multiplen Knapsack-Problems (MKP), oder genauer eine Variante des Removable Online MKP (des behebbaren Online-MKP), weil VMs provisioniert, von Hypervisoren entfernt und von einem Hypervisor in einem anderen verlagert werden und VMs veränderliche Ressourcennutzungen und Arbeitswerte haben. Neben den Arbeitswerten werden die Kosten der Stilllegung und Migration einer VM bei der Behandlung dieses Problems ebenfalls berücksichtigt.
-
Als Beispiel sei eine Cloud-Datenverarbeitungsumgebung betrachtet, die m Hypervisoren aufweist: H1, H2, ..., Hm. Hi hat die Menge Ressourcen Ri (der Einfachheit dieses Beispiels halber sei angenommen, dass es einen Ressourcentyp gibt; es ist jedoch zu verstehen, dass mindestens eine Ausführungsform der Erfindung erweitert werden kann, um mehrere Ressourcentypen zu unterstützen). Ebenfalls sei angenommen, dass es n VMs gibt: VM1, VM2, ..., VMn. Die hier verwendeten Variablen sind wie folgt definiert:
- uj
- durch VMj zu erreichender Arbeitswert
- rj
- von VMj verwendete Ressource
- Ri
- Ressource in Hi
- xi,j
- 1: VMj in Betrieb in Hi; 0: sonst
- cqj
- Kosten des Stilllegens von VMj
- crj
- Kosten des Wiederinbetriebnehmens von VMj
- cmj
- Kosten des Migrierens von VMj
- μ
- Prozent-Schwellenwert für die Überlastungserkennung
uj, rj und xi,j ändern sich mit der Zeit; entsprechend werden sie als Funktion der Zeit t bezeichnet: uj(t), rj(t) und xi,j(t). Formal ist Folgendes gegeben: und das System erfährt eine Ressourcenüberlastung (wobei die Überlastung behoben wird) oder nicht (wobei stillgelegte VMs wieder in Betrieb genommen werden). Das heißt,
-
Mindestens eine Ausführungsform der Erfindung versucht,
gewählt wird und damit sind
-
-
thrdq, thrdr, bzw. thrdm, sind die Schwellenwerte für die Kosten der Stilllegung, Wiederinbetriebnahme bzw. Migration. Diese Werte können durch das System ermittelt werden oder von Administratoren vorgegeben werden.
-
Ob VM
j stillgelegt, wieder in Betrieb genommen, migriert oder nicht geändert werden soll, wird formal durch die Beziehung zwischen x
i,j(t) und x
i,j(t + 1) ausgedrückt, wie nachstehend dargestellt:
- (1) VMj ist stillzulegen ⇔ A = –1, B = 1
- (2) VMj ist wieder in Betrieb zu nehmen ⇔ A = 1, B = 1
- (3) VMj ist zu migrieren ⇔ A = 0, B = 2
- (4) VMj ist nicht zu verändern ⇔ A = 0, B = 0
-
Diese Variante des ROMKP-Problems ist NP-hart. Mindestens eine Ausführungsform der Erfindung enthält einen entwickelten ROWM-Näherungsalgorithmus, um das Problem zu lösen. Im Algorithmus gibt es zwei Teile: den Teil Überlastungsbehebung, der entscheidet, welche VMs stillzulegen/zu migrieren sind, wenn bei einem Hypervisor eine Überlastung auftritt, und den Teil periodische Wiederinbetriebnahme, der entscheidet, welche stillgelegten VMs wieder in Betrieb genommen werden sollen, sobald die Ressourcen ausreichend werden.
-
Bei einer Überlastung (d. h. Ressourcennutzung über einem Schwellenwert thrd1) wird eine Menge VMs im überlasteten Hypervisor identifiziert, die migriert oder stillgelegt werden müssen, um die Überlastung zu beheben. Dann wird ein Test durchgeführt, um zu ermitteln, ob alle VMs in C (d. h. die VMs, die die meisten Ressourcen im überlasteten Hypervisor verbrauchen, so dass die übrigen VMs weniger als einen Schwellenwert thrd2 verbrauchen) zu einem anderen Hypervisor migriert werden können, indem ein Heuristikalgorithmus für das MKP angewandt wird. Der Test schlägt fehl, wenn ungenügende Ressourcen vorhanden sind. Entsprechend wird geplant, dass die VM mit dem niedrigsten Verhältnis von Arbeitswert zu Ressourcennutzung in der gesamten Cloud stillgelegt werden soll, und der Test wird erneut durchgeführt. Dieser Vorgang wird wiederholt, bis der Test bestanden wird.
-
Anschließend werden die für die Stilllegung vorgesehenen VMs in Q geprüft, um die VMs auszuwählen, die unnötigerweise für die Stilllegung vorgesehen sind. Nach diesen Schritten wird der endgültige Migrations- und Stilllegungsplan gewonnen. Die Schritte des Teils periodische Wiederinbetriebnahme sind ähnlich wie die Beschreibung des obigen Teils Überlastungsbehebung, außer dass ein Test durchgeführt wird, um zu ermitteln, ob alle stillgelegten VMs in C wieder in Betrieb genommen werden können.
-
Dieser Algorithmus hat die Zeitkomplexität von O(nlogn + nkm), wobei n die Anzahl der VMs in der Cloud, k die Anzahl der zu migrierenden/wieder in Betrieb zu nehmenden VMs und m die Anzahl der Hypervisoren ist. Es ist ein polynomialer Systemzeitaufwand und kann beispielsweise für Clouds mit Hunderten von Hypervisoren und Tausenden von VMs implementiert werden.
-
Als Beispiel kann mindestens eine Ausführungsform der Erfindung als MAPE(Monitor-Analyze-Plan-Execution (Wächter-Analyse-Plan-Ausführung))-Schleife auf einer großen Cloud-Plattform implementiert werden. 2 ist ein Schaubild, das eine Implementierungsarchitektur des Systems zur Behebung von Überlastung in einer Ziel-Cloud gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht. Die schattierten Komponenten in 2 sind die Komponenten, die zur Ziel-Cloud hinzugefügt werden, um die Überlastungsbehebung zu unterstützen. Die unschattierten Komponenten in 2 sind die Komponenten der Cloud selbst.
-
Der Cloud-Manager 214 ist ein Software-Paket, das für die Provisionierung, Deprovisionierung, Migration und sonstige Verwaltungsoperationen für VMs 202 verantwortlich ist. Das Datendepot 212 speichert die Messdaten, die periodisch von den Wächtern 206 in den Hypervisoren 204 gemeldet werden. Ein Kunde kann Befehle an den Cloud-Manager ausgeben, gewünschte Operationen über ein Portal 216 durchzuführen. Eine REST(REpresentation State Transfer (Darstellungszustandsübertragung)-Anwendungsprogrammierschnittstelle (API) wird zwischen dem Portal und dem Cloud-Manager genutzt, um bestimmte Operationen im Cloud-Manager zu verlangen. Außerdem kann eine Nachrichtenwarteschlangen-Komponente 218 zwischen den Cloud-Manager und das Portal implementiert werden.
-
Verglichen mit der in 1 veranschaulichten grundlegenden Überlastungsbehebung enthält das in 2 abgebildete System eine Behebungsdatenbank (DB) 208, um die Persistenz zu unterstützen. Die Datenbank speichert Ereignisse, die vom Hypervisor-Wächter generiert werden (beispielsweise ein Ereignis „Ressourcenüberlastung”, ein Ereignis „Überlastung behoben”, etc.), den Status der vom Cloud-Manager durchgeführten Aktionen (beispielsweise „Migration erfolgreich”, „Wiederinbetriebnahme einer VM fehlgeschlagen” etc.) und die aktuellen Zustände aller verwalteten VMs (beispielsweise „normaler Betrieb”, „überlastet”, „stillgelegt” etc.). Das Behebungszentrum 210 ist ein Prozess, der auf einem separaten Computer abläuft, der periodisch die Behebungs-DB abfragt, um neue, von der DB empfangene Ereignisse zu verarbeiten. Beim Verarbeiten dieser Ereignisse ruft das Behebungszentrum Leistungsdaten aus dem Datendepot 212 ab, da diese Daten in den Behebungsalgorithmen benötigt werden. Wenn die Entscheidung, welche VMs migriert, stillgelegt und/oder wieder in Betrieb genommen werden sollen, getroffen wird, werden Befehle zum Cloud-Manager gesendet, um die Entscheidung auszuführen.
-
3 ist ein Ablaufplan, der einen Auswahlalgorithmus für die Stilllegung von VMs gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht. In Schritt 302 gilt Q = {die VMs, die für die Stilllegung durch diesen Algorithmus vorgesehen sind; zuerst leer}. In Schritt 304 gilt C = {die VMs, die die meisten Ressourcen im überlasteten Hypervisor verbrauchen, so dass die übrigen VMs weniger als einen Schwellenwert (beispielsweise 85%) der physischen Ressourcen verbrauchen}. Schritt 306 beinhaltet das Sortieren aller in Betrieb befindlichen VMs in allen Hypervisoren nach ihrem Verhältnis U/R in aufsteigender Reihenfolge. Schritt 308 beinhaltet das Testen, um zu ermitteln, ob die VMs in C zu anderen Hypervisoren migriert werden können (VMs in Q gelten als stillgelegt), ohne eine Ressourcennutzung über einem Soll-Schwellenwert (beispielsweise 85%) zu verursachen und zu annehmbaren Migrationskosten. Kriterien für akzeptable Migrationskosten können von Systemadministratoren nach ihrer Erfahrung und Fachkenntnis vorgegeben werden; Kriterien wie beispielsweise weniger als 80% der Netzwerkbandbreite während eines bestimmten Zeitraums. Außerdem wird ein MKP-Heuristikalgorithmus der besten Anpassung (Best-Fit-Algorithmus) während des Tests angewandt. Wenn der Test erfolgreich ist (wie in Schritt 310 ermittelt), wird die Arbeit ausgeführt und der Algorithmus geht zu Schritt 316 über; andernfalls geht der Algorithmus zu Schritt 312 über.
-
In Schritt 312 gilt Q = Q + {die VM mit dem nächstkleineren U/R-Wert und mit annehmbaren Stilllegungskosten}. Schritt 314 beinhaltet Ermitteln, ob die Überlastung behoben ist. Wenn ja, geht der Algorithmus zu Schritt 316 über; andernfalls kehrt der Algorithmus zu Schritt 308 zurück. Entsprechend wird der Migrationsplan erfolgreich als M erstellt, und Schritt 316 beinhaltet Entfernen der VMs, die durch Schritt 312 unnötig in Q hinzufügt wurden, aus Q. <M, Q> ist das endgültige Ergebnis.
-
4 ist ein Schaubild, das einen Auswahlalgorithmus für die Wiederinbetriebnahme von VMs gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht. In Schritt 402 gilt Q = {die VMs, die für die Stilllegung durch diesen Algorithmus vorgesehen sind; zuerst leer}. In Schritt 404 gilt C = {die stillgelegten VMs}. Schritt 406 beinhaltet das Sortieren aller sowohl in Betrieb befindlichen als auch stillgelegten VMs in allen Hypervisoren nach ihrem Verhältnis U/R in aufsteigender Reihenfolge. Schritt 408 beinhaltet das Testen, um zu ermitteln, ob die VMs in C in den Hypervisoren wieder in Betrieb genommen werden können (VMs in Q gelten als stillgelegt), ohne eine Ressourcennutzung über einem Schwellenwert (beispielsweise 85%) zu verursachen und zu annehmbaren Wiederinbetriebnahmekosten. Außerdem wird ein MKP-Heuristikalgorithmus der besten Anpassung (Best-Fit-Algorithmus) während des Tests angewandt.
-
Schritt 410 ermittelt, ob der Test erfolgreich war. Bei Erfolg wird die Arbeit ausgeführt und der Algorithmus geht zu Schritt 414 über. Andernfalls geht der Algorithmus zu Schritt 412 über. In Schritt 412 gilt Q = Q + {die VM mit dem nächstkleineren U/R-Wert und mit annehmbaren Stilllegungskosten}. Anschließend kehrt der Algorithmus zu Schritt 408 zurück.
-
Der Wiederinbetriebnahmeplan wird erfolgreich als M erstellt, und Schritt 414 beinhaltet das Entfernen der VMs, die durch Schritt 412 unnötig in Q hinzufügt wurden, aus Q. <M, Q> ist das endgültige Ergebnis.
-
5 ist ein Ablaufplan, der Verfahren zum Beheben einer Überlastung in einer überbelegten Datenverarbeitungsumgebung gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht. Schritt 502 beinhaltet Messen der Ressourcennutzung jeder der vielen virtuellen Maschinen in jedem von mindestens einem Hypervisor in einer Datenverarbeitungsumgebung.
-
Bei Erkennen einer Ressourcenüberlastung in einem von mindestens einem Hypervisor werden die Schritte 504 und 506 durchgeführt. Schritt 504 beinhaltet das Ermitteln von mindestens einer Operation, die für mindestens eine der vielen virtuellen Maschinen im Hypervisor vorzunehmen ist, um die Ressourcenüberlastung zu beheben und dabei die Werte der in Betrieb befindlichen virtuellen Maschinen zu steigern oder zu maximieren. Wie hier im Einzelnen erläutert, kann die Operation mindestens eines von Migration, Stilllegung oder Wiederinbetriebnahme enthalten.
-
Das Ermitteln von mindestens einer vorzunehmenden Operation kann das Berechnen eines Arbeitswerts von jeder virtuellen Maschine beinhalten, wobei der Arbeitswert mindestens ein Maß des potenziellen Verlusts von Diensten in der virtuellen Maschine, der durch das Stilllegen der virtuellen Maschine verursacht wird, und/oder ein Maß einer Auswirkung der stillgelegten virtuellen Maschine auf die Ausführung von mindestens einer anderen virtuellen Maschine enthält. Der Arbeitswert jeder virtuellen Maschine kann eine Kombination von mindestens einem Faktor enthalten, darunter die Lebensdauer der virtuellen Maschine, der Preis, die Einnahmen, der Dienstleistungsvertrag, die Auslastung der Zentraleinheit, die Abhängigkeit der virtuellen Maschine und die Arbeitslastprognose.
-
Zusätzlich kann das Ermitteln einer vorzunehmenden Operation das Identifizieren von mindestens einer stillzulegenden virtuellen Maschine mit einem niedrigsten Arbeitswert und/oder mindestens einer zur Optimierung wieder in Betrieb zu nehmenden virtuellen Maschine mit einem höheren Arbeitswert beinhalten. Ferner kann das Ermitteln von mindestens einer vorzunehmenden Operation kontinuierliches Messen und Zunutzemachen des Arbeitswerts und des Ressourcenverbrauchs jeder virtuellen Maschine beinhalten. Mindestens eine Ausführungsform der Erfindung kann außerdem das Verwenden eines Verhältnisses von Arbeitswert zu Ressourcenverbrauch beinhalten, um zu ermitteln, ob eine von einer Migrations-, Stilllegungs- oder Wiederinbetriebnahmeoperation in einer virtuellen Maschine vorzunehmen ist.
-
Schritt 506 beinhaltet das Senden eines Befehls an den Hypervisor, um die mindestens eine Operation auszugeben. Zusätzlich können die in 5 abgebildeten Techniken periodisches Ermitteln beinhalten, ob ausreichende Ressourcen für eine stillgelegte virtuelle Maschine verfügbar werden, um wieder in Betrieb genommen zu werden.
-
Wie hier ebenfalls im Einzelnen erläutert, beinhaltet mindestens eine Ausführungsform der Erfindung ein automatisiertes Überlastungsbehebungsverfahren für eine virtualisierte Umgebung. Ein solches Verfahren beinhaltet das Wiederherstellen aus einer Systemressourcen-Überlastungssituation durch Auswählen einer Teilmenge der virtuellen Maschinen zum Migrieren und einer Teilmenge der virtuellen Maschinen zum Stilllegen aus einer Vielzahl virtueller Maschinen im System. Außerdem kann eine solche Ausführungsform der Erfindung periodisches Auswählen einer Teilmenge der virtuellen Maschinen zum Migrieren und einer Teilmenge der virtuellen Maschinen zum Wiederinbetriebnehmen beinhalten, um die Anzahl der in Betrieb befindlichen virtuellen Maschinen und den Arbeitswert, der von den in Betrieb befindlichen virtuellen Maschinen erreicht wird, zu steigern. Wie hier im Einzelnen erläutert, berücksichtigt jede Auswahl zum Migrieren, Stilllegen und Wiederinbetriebnehmen eine Arbeitswertmetrik, die von jeder virtuellen Maschine beigesteuert wird. Die Arbeitswertsmetrik kombiniert einen oder mehrere Faktoren, darunter virtuelle Lebensdauer, Preis, Einnahmen, Dienstleistungsvertrag, Auslastung der Zentraleinheit, Abhängigkeit der virtuellen Maschine und Arbeitslastprognose.
-
Zusätzlich wird in mindestens einer Ausführungsform der Erfindung ein Problem als eine Variante eines Removable Online Multiple Knapsack Problems (ROMKP) formuliert. Ein solches formuliertes Problem beinhaltet das Berücksichtigen von Objektarbeitswerten und Ressourcennutzungen, die sich zusätzlich zur Ankunft neuer Objekte mit der Zeit verändern, was Knapsack-Operationen gestattet, darunter Entfernen eines oder mehrerer Objekte aus einem Knapsack, Bewegen eines oder mehrerer Objekte von einem Knapsack zu einem anderen und Zurücklegen eines oder mehrerer Objekte in einen Knapsack. Ein solches Problem beinhaltet auch das Berücksichtigen der Kosten der Knapsack-Operationen beim Treffen von Entscheidungen.
-
Eine Lösung für die Variante des ROMKP-Problems kann kontinuierliches Messen und Zunutzemachen des Arbeitswerts und der Ressourcennutzung jeder virtuellen Maschine beinhalten, wobei ein Verhältnis von Arbeitswert zu Ressourcennutzung als Kriterium verwendet wird, um eine Entscheidung zum Auswählen einer Migrations-, Stilllegungs- oder Wiederinbetriebnahmeoperation für eine oder mehrere virtuelle Maschinen zu treffen und Kosten für jede Migrations-, Stilllegungs- und/oder Wiederinbetriebnahmeoperation zu berechnen und die Kosten als Vorgabe bei der Formulierung des Problems zu verwenden. Außerdem ist bei mindestens einer Ausführungsform der Erfindung der Arbeitswert für eine virtuelle Maschine als 1/(Ressourcennutzung) definiert, wenn die virtuelle Maschine während eines gegebenen jüngsten Zeitraums P nicht stillgelegt war, und unendlich, wenn die virtuelle Maschine während des Zeitraums P stillgelegt war.
-
Die in 5 abgebildeten Techniken können auch wie hier beschrieben das Bereitstellen eines Systems beinhalten, wobei das System unterscheidbare Software-Module enthält, wobei jedes der unterscheidbaren Software-Module auf einem materiellen computerlesbaren, beschreibbaren Speichermedium verkörpert ist. Alle Module (oder eine beliebige Teilmenge davon) können sich beispielsweise auf demselben Medium befinden, oder jedes kann sich auf einem anderen Medium befinden. Die Module können eine beliebige oder alle der in den Figuren dargestellten Komponenten enthalten. Nach einem Aspekt der Erfindung können die Module beispielsweise in einem Hardware-Prozessor laufen. Die Verfahrensschritte können dann ausgeführt werden, indem die unterscheidbaren Software-Module des Systems verwendet werden, die wie oben beschrieben auf einem Hardware-Prozessor ausgeführt werden. Ferner kann ein Computerprogrammprodukt ein materielles computerlesbares, beschreibbares Speichermedium mit Programmcode enthalten, der so angepasst ist, dass er ausgeführt wird, um mindestens einen hier beschriebenen Verfahrensschritt durchzuführen, darunter die Bereitstellung des Systems mit den unterscheidbaren Software-Modulen.
-
Zusätzlich können die in 5 abgebildeten Techniken über ein Computerprogrammprodukt implementiert werden, das einen computernutzbaren Programmcode enthalten kann, der in einem computerlesbaren Speichermedium in einem Datenverarbeitungssystem gespeichert ist, und wobei der computernutzbare Programmcode über ein Netzwerk von einem entfernt angeordneten Datenverarbeitungssystem heruntergeladen wurde. Außerdem kann nach einem Aspekt der Erfindung das Computerprogrammprodukt computernutzbaren Programmcode enthalten, der in einem computerlesbaren Speichermedium in einem Server-Datenverarbeitungssystem gespeichert ist, und wobei der computernutzbare Programmcode zur Verwendung in einem computerlesbaren Speichermedium mit dem entfernt angeordneten System über ein Netzwerk auf ein entfernt angeordnetes Datenverarbeitungssystem heruntergeladen wird.
-
Wie für den Fachmann ersichtlich, können Aspekte der vorliegenden Erfindung als System, Verfahren oder Computerprogrammprodukt ausgeführt werden. Entsprechend können Aspekte der vorliegenden Erfindung die Form einer lediglich aus Hardware bestehenden Ausführungsform, einer lediglich aus Software bestehenden Ausführungsform (darunter Firmware, residente Software, Mikro-Code etc.) oder einer Software- und Hardware-Aspekte kombinierenden Ausführungsform annehmen, die hier alle generell als „Schaltung”, „Modul” oder „System” bezeichnet werden können. Ferner können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem computerlesbaren Medium mit darauf verkörpertem computerlesbarem Programmcode verkörpert ist.
-
Ein Aspekt der Erfindung oder ihrer Elemente kann in Form einer Vorrichtung mit einem Speicher und mindestens einem Prozessor implementiert werden, der mit dem Speicher gekoppelt und betriebsfähig ist, um die genannten Verfahrensschritte durchzuführen.
-
Außerdem kann ein Aspekt der vorliegenden Erfindung Software nutzen, die auf einem Universal-Computer bzw. einer Universal-Workstation läuft. Auf 6 Bezug nehmend, kann eine solche Implementierung beispielsweise einen Prozessor 602, einen Speicher 604 und eine Eingabe/Ausgabe-Schnittstelle verwenden, die beispielsweise durch eine Anzeige 606 und eine Tastatur 608 gebildet wird. Der Ausdruck „Prozessor” wie hier verwendet soll jede beliebige Verarbeitungseinheit einschließen, wie beispielsweise eine Einheit mit einer CPU (Zentraleinheit) und/oder anderen Formen einer verarbeitenden Schaltung. Ferner kann sich der Ausdruck „Prozessor” auf mehr als einen einzelnen Prozessor beziehen. Der Ausdruck „Speicher” soll einen mit einem Prozessor oder einer CPU verbundenen Speicher einschließen, wie beispielsweise einen RAM (Schreib-Lese-Speicher), einen ROM (Nur-Lese-Speicher), eine feste Speichereinheit (z. B. Festplatte), eine Wechselspeichereinheit (z. B. Diskette), einen Flash-Speicher und Ähnliches. Außerdem soll die Wortverbindung „Eingabe/Ausgabe-Schnittstelle” wie hier verwendet beispielsweise einen Mechanismus zum Eingeben von Daten in die Verarbeitungseinheit (z. B. Maus) und einen Mechanismus für das Bereitstellen von Ergebnissen, die mit der Verarbeitungseinheit verbunden sind (z. B. Drucker) einschließen. Der Prozessor 602, der Speicher 604 und die Eingabe/Ausgabe-Schnittstelle wie beispielsweise die Anzeige 606 und die Tastatur 608 können miteinander verbunden sein, z. B. über einen Bus 610 als Teil der Datenverarbeitungseinheit 612. Geeignete Verbindungen, z. B. über den Bus 610, können auch für eine Netzwerkschnittstelle 614 wie beispielsweise eine Netzwerkkarte, die als Schnittstelle zu einem Computernetzwerk bereitgestellt werden kann, und für eine Medienschnittstelle 616 wie beispielsweise ein Disketten- oder CD-ROM-Laufwerk, die als Schnittstelle zu den Medien 618 bereitgestellt werden kann, bereitgestellt werden.
-
Entsprechend kann Computer-Software mit Anweisungen oder Programmcode zum Durchführen der Verfahren der Erfindung wie hier beschrieben in zugehörigen Speichereinheiten (z. B. ROM, fester oder Wechselspeicher) gespeichert werden und, sobald nutzungsbereit, in Teilen oder im Ganzen (z. B. in den RAM) geladen und durch eine CPU implementiert werden. Eine solche Software könnte unter anderem Firmware, residente Software, Mikro-Code und Ähnliches sein, ohne darauf beschränkt zu sein.
-
Ein Datenverarbeitungssystem, das zum Speichern und/oder Ausführen von Programmcode geeignet ist, enthält mindestens einen Prozessor 602, der über einen Systembus 610 direkt oder indirekt mit Speicherelementen 604 gekoppelt ist. Die Speicherelemente können unter anderem ein lokaler Speicher, der während der eigentlichen Implementierung des Programmcodes verwendet wird, ein Massenspeicher und Zwischenspeicher sein, die eine vorübergehende Speicherung von mindestens etwas Programmcode bereitstellen, um die Anzahl der Male zu verringern, die der Programmcode während der Implementierung aus dem Massenspeicher abgerufen werden muss.
-
Eingabe/Ausgabe- bzw. E/A-Einheiten (darunter Tastaturen 608, Anzeigen 606, Zeigeeinheiten und Ähnliches, ohne darauf beschränkt zu sein) können entweder direkt (wie z. B. über den Bus 610) oder über zwischengeschaltete E/A-Steuereinheiten (der Übersichtlichkeit halber weggelassen) mit dem System gekoppelt sein.
-
Netzwerkadapter wie die Netzwerkschnittstelle 614 können ebenfalls mit dem System gekoppelt werden, damit das Datenverarbeitungssystem über zwischengeschaltete private oder öffentliche Netzwerke mit anderen Datenverarbeitungssystemen oder entfernt angeordneten Druckern oder Speichereinheiten gekoppelt werden kann. Modems, Kabelmodem und Ethernet-Karten sind nur einige der aktuell erhältlichen Arten von Netzwerkadaptern.
-
Wie hier einschließlich der Ansprüche verwendet, beinhaltet ein „Server” ein physisches Datenverarbeitungssystem (z. B. System 612, wie in 6 dargestellt), auf dem ein Serverprogramm läuft. Es ist anzumerken, dass ein solcher physischer Server eine Anzeige und eine Tastatur beinhalten kann oder nicht.
-
Wie angemerkt, können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem computerlesbaren Medium mit darauf verkörpertem Programmcode verkörpert ist. Auch kann jede Kombination eines oder mehrerer computerlesbarer Medien verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Ein computerlesbares Speichermedium kann, ohne darauf beschränkt zu sein, beispielsweise ein(e) elektronische(s), magnetische(s), optische(s), elektromagnetische(s), Infrarot- oder Halbleiter-System, -Vorrichtung oder -Einheit oder eine beliebige geeignete Kombination der vorgenannten sein. Spezifischere Beispiele (eine nicht erschöpfende Liste) computerlesbarer Speichermedien wären u. a. folgende: eine elektrische Verbindung mit einem oder mehreren Drähten, eine tragbare Computerdiskette, eine Festplatte, ein Schreib-Lese-Speicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compact-Disk-Nur-Lese-Speicher (CD-ROM), eine optische Speichereinheit, eine Magnetspeichereinheit oder jede beliebige Kombination der vorgenannten. Im Kontext dieses Dokuments kann ein computerlesbares Speichermedium jedes materielle Medium sein, das ein Programm zur Verwendung durch oder in Zusammenhang mit einem/r Anweisungsausführungssystem, -vorrichtung oder -einheit enthalten oder speichern kann.
-
Ein computerlesbares Signalmedium kann ein verbreitetes Datensignal mit darin verkörpertem computerlesbarem Programmcode aufweisen, beispielsweise im Basisband oder als Teil einer Trägerwelle. Ein solches verbreitetes Signal kann jede beliebige einer Vielfalt von Formen annehmen, einschließlich, ohne darauf beschränkt zu sein, elektromagnetisch, optisch oder jede geeignete Kombination davon. Ein computerlesbares Signalmedium kann jedes computerlesbare Medium sein, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung durch oder in Verbindung mit einem/r Anweisungsausführungssystem, -vorrichtung oder -einheit übermitteln, verbreiten oder transportieren kann.
-
Programmcode, der auf einem computerlesbaren Medium verkörpert ist, kann unter Verwendung eines geeigneten Mediums, einschließlich, ohne darauf beschränkt zu sein, drahtloser, drahtgebundener, Lichtwellenleiterkabel-, HF-Medien etc. oder jeder beliebigen geeigneten Kombination der vorgenannten übertragen werden.
-
Computerprogrammcode zum Ausführen von Operationen für Aspekte der vorliegenden Erfindung kann in jeder beliebigen Kombination von mindestens einer Programmiersprache geschrieben sein, darunter eine objektorientierte Programmiersprache wie Java, Smalltalk, C++ oder Ähnliche und herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C” oder ähnliche Programmiersprachen. Der Programmcode kann gänzlich auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als autonomes Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder gänzlich auf einem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Szenario kann der entfernt angeordnete Computer über jede Art von Netzwerk an den Computer des Benutzers angeschlossen werden, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann mit einem externen Computer erfolgen (beispielsweise über das Internet mit Hilfe eines Internetdienstanbieters).
-
Aspekte der vorliegenden Erfindung sind hier unter Bezugnahme auf Ablaufplandarstellungen und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es ist anzumerken, dass jeder Block der Ablaufplandarstellungen und/oder Blockschaubilder und Kombinationen von Blöcken in den Ablaufplandarstellungen und/oder Blockschaubildern durch Computerprogrammanweisungen realisiert werden können. Diese Computerprogrammanweisungen können einem Prozessor eines Universal-Computers, eines speziellen Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung zur Erzeugung einer Maschine vermittelt werden, so dass die Anweisungen, die über den Prozessor des Computers oder eine andere programmierbare Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel zur Realisierung der im Block bzw. den Blöcken des Ablaufplans und/oder Blockschemas spezifizierten Funktionen/Handlungen erzeugen.
-
Diese Computerprogrammanweisungen können auch in einem computerlesbaren Medium gespeichert werden, das einen Computer oder eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, so dass die im computerlesbaren Medium gespeicherten Anweisungen einen Fertigungsartikel erzeugen, einschließlich Anweisungen, die die im Block bzw. in den Blöcken des Ablaufplans und/oder Blockschaubilds spezifizierten Funktionen/Handlungen realisieren. Entsprechend beinhaltet ein weiterer Aspekt der Erfindung einen Herstellungsartikel, der materiell computerlesbare Anweisungen verkörpert, die implementiert bewirken, dass ein Computer eine Vielzahl von Verfahrensschritten ausführt, wie hier beschrieben.
-
Die Computerprogrammanweisungen können auch in einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten geladen werden, um die Durchführung einer Reihe von Funktionsschritten auf dem Computer, einer anderen programmierbaren Datenverarbeitungsvorrichtung oder anderen Einheiten zum Erzeugen eines auf einem Computer realisierten Prozesses zu bewirken, so dass die Anweisungen, die auf dem Computer oder einer anderen programmierbaren Vorrichtung ausgeführt werden, Prozesse zur Realisierung der im Block bzw. in den Blöcken des Ablaufplans und/oder Blockschaubilds spezifizierten Funktionen/Handlungen bereitstellen.
-
Der Ablaufplan und die Blockschaubilder in den Figuren veranschaulichen die Architektur, Funktionalität und Funktion möglicher Realisierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. Diesbezüglich kann jeder Block im Ablaufplan oder in den Blockschaubildern ein Modul, eine Komponente, ein Segment oder einen Teil von Programmcode darstellen, das/die/der mindestens eine ausführbare Anweisung zur Realisierung der spezifizierten Logikfunktion(en) aufweist. Es ist ebenfalls anzumerken, dass bei manchen alternativen Realisierungen die im Block genannten Funktionen in anderer als der in den Figuren genannten Reihenfolge auftreten können. Beispielsweise können zwei aufeinanderfolgend dargestellte Blöcke je nach beteiligter Funktionalität sogar im Wesentlichen gleichzeitig ausgeführt werden oder die Blöcke können manchmal in umgekehrter Reihenfolge ausgeführt werden. Es ist auch anzumerken, dass jeder Block der Blockschaubilder und/oder Ablaufplandarstellung und Kombinationen aus Blöcken in den Blockschaubildern und/oder der Ablaufplandarstellung durch spezielle Systeme auf der Grundlage von Hardware, die die spezifizierten Funktionen oder Handlungen ausführen, oder Kombinationen aus spezieller Hardware und Computeranweisungen realisiert werden können.
-
Es ist anzumerken, dass jedes der hier beschriebenen Verfahren einen zusätzlichen Schritt des Bereitstellens eines Systems beinhalten kann, das unterscheidbare Software-Module aufweist, die auf einem computerlesbaren Speichermedium verkörpert sind; die Module können beispielsweise jede beliebige oder alle der hier im Einzelnen erläuterten Komponenten beinhalten. Die Verfahrensschritte können dann unter Verwendung der oben beschriebenen unterscheidbaren Software-Module und/oder Teilmodule des Systems in einem Hardware-Prozessor 602 ausgeführt werden. Ferner kann ein Computerprogrammprodukt ein computerlesbares Speichermedium mit Programmcode enthalten, der so angepasst ist, dass er implementiert wird, um mindestens einen hier beschriebenen Verfahrensschritt durchzuführen, darunter die Bereitstellung des Systems mit den unterscheidbaren Software-Modulen.
-
Auf jeden Fall ist anzumerken, dass die hier veranschaulichten Komponenten in verschiedenen Formen von Hardware, Software oder Kombinationen davon realisiert werden können, z. B. anwendungsspezifische integrierte Schaltkreise (ASICs), funktionale Schaltung, ein in geeigneter Weise programmierter digitalen Universal-Computer mit zugehörigem Speicher und Ähnliches. Anhand der Lehren der hier bereitgestellten Erfindung kann ein Fachmann andere Realisierungen der Komponenten dieser Erfindung in Betracht ziehen.
-
Die hier verwendete Terminologie dient nur dem Zweck, besondere Ausführungsformen zu beschreiben, und soll die Erfindung nicht einschränken. Wie hier verwendet, sollen die Singularformen „ein”, „eine” und „der, die, das” auch die Pluralformen einschließen, sofern es der Kontext nicht anders angibt. Es ist ferner anzumerken, dass die Ausdrücke „aufweist” und/oder „aufweisend”, wenn sie in dieser Spezifikation verwendet werden, das Vorhandensein der genannten Merkmale, Ganzzahlen, Schritte, Operationen, Elemente und/oder Komponenten angeben, aber nicht das Vorhandensein oder Hinzufügen eines/r anderen Merkmals, Ganzzahl, Schrittes, Operation, Elements, Komponente und/oder Gruppe davon ausschließen.
-
Die entsprechenden Strukturen, Materialien, Handlungen und Äquivalente aller Mittel oder aus Schritt plus Funktion bestehender Elemente in den nachstehenden Ansprüchen sollen jede Struktur, jedes Material oder jede Handlung für die Durchführung der Funktion in Verbindung mit anderen beanspruchten Elementen, wie im Besonderen beansprucht, einschließen. Die Beschreibung der vorliegenden Erfindung wurde zum Zweck der Veranschaulichung und Beschreibung dargestellt, soll aber nicht erschöpfend oder auf die Erfindung in der offenbarten Form beschränkt sein. Viele Modifikationen und Variationen werden für den Fachmann offensichtlich sein, ohne vom Umfang und Geist der Erfindung abzuweichen. Die Ausführungsform wurde gewählt und beschrieben, um die Grundgedanken der Erfindung und die praktische Anwendung am besten zu beschreiben, und um andere Fachleute zu befähigen, die Erfindung für verschiedene Ausführungsformen mit verschiedenen Modifikationen nachzuvollziehen, die für den besonders betrachteten Gebrauch geeignet sind.
-
Mindestens ein Aspekt der vorliegenden Erfindung kann eine vorteilhafte Wirkung wie beispielsweise das Beheben einer Hypervisor-Überlastung bereitstellen, ohne vorauszusetzen, dass immer eine Ressource für die Migration vorhanden ist.
-
Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung wurden zum Zweck der Veranschaulichung dargestellt, sollen aber nicht erschöpfend oder auf die offenbarten Ausführungsformen beschränkt sein. Viele Modifikationen und Variationen werden für den Fachmann offensichtlich sein, ohne vom Umfang und Geist der beschriebenen Ausführungsformen abzuweichen. Die hier verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder technische Verbesserung gegenüber am Markt befindlichen Technologien am besten zu erläutern oder Fachleute zu befähigen, die hier offenbarten Ausführungsformen zu verstehen.