DE112013005768T5 - Wiederherstellen einer vorhergehenden Version eines Virtual-Machine-Images - Google Patents

Wiederherstellen einer vorhergehenden Version eines Virtual-Machine-Images Download PDF

Info

Publication number
DE112013005768T5
DE112013005768T5 DE112013005768.9T DE112013005768T DE112013005768T5 DE 112013005768 T5 DE112013005768 T5 DE 112013005768T5 DE 112013005768 T DE112013005768 T DE 112013005768T DE 112013005768 T5 DE112013005768 T5 DE 112013005768T5
Authority
DE
Germany
Prior art keywords
previous
image
images
current
computer system
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.)
Pending
Application number
DE112013005768.9T
Other languages
English (en)
Inventor
Robert Uthe
James Corvin Fletcher
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 DE112013005768T5 publication Critical patent/DE112013005768T5/de
Pending 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0712Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/83Indexing scheme relating to error detection, to error correction, and to monitoring the solution involving signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Processing Or Creating Images (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Image Analysis (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)
  • Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)

Abstract

Es wird ein Ansatz wird vorgestellt, um ein Virtua-Machine-(VM)Image auf ein Computersystem anzuwenden. In dem Ansatz wird über eine Implementierung durch ein Informationsverarbeitungssystem eine Erfassung durchgeführt, dass für ein aktuelles auf dem Computersystem ausgeführtes VM-Image ein Problem vorliegt. In Reaktion darauf werden vorhergehende VM-Images analysiert, wobei ein jedes der vorhergehenden VM-Images ein Image ist, das zuvor auf dem Computersystem ausgeführt wurde. Basierend auf der Analyse wird eines der vorhergehenden VM-Images ausgewählt, und das ausgewählte Image wird zum Ersetzen des aktuellen VM-Images auf dem Computersystem verwendet.

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf einen Ansatz, der ein Virtual-Machine-Image basierend auf zuvor gesammelten Ressourcenmetriken wiederherstellt.
  • Hintergrund der Erfindung
  • Sobald durch die Verwendung einer Reihe an Techniken des Stands der Technik festgestellt wird, dass das Verhalten eines Virtual Image (VM) unzureichend ist, und bestimmt wird, dass ein Fallback auf eine vorhergehende Version erforderlich ist, fehlen klare Mittel zur Bestimmung, welches vorhergehende Image verwendet werden soll. Einfach ein Rollback auf die neueste vorhergehende Version durchzuführen, kann unter Umständen das Problem nicht lösen, und in der Folge muss der Kunde in wiederholter Weise auf weitere vorhergehende Versionen zurückgreifen, bis ein gutes, stabiles Image ermittelt wurde. Außer der „Zufallsauswahl” gibt es derzeit kein klares Verfahren zur Bestimmung, auf welches vorhergehende Release zurückgegriffen werden soll. Aktuelle Systeme gehen in der Regel auf die direkte Vorgängerversion der VM zurück, wobei hier keinerlei Auswertung diesbezüglich durchgeführt wird, was die Ursache für das unerwünschte Verhalten in der aktuellen Version war. Heutzutage existieren Change-Management-Systeme, die angeben, wann und warum eine Änderung erfolgt ist, aber diese Systeme werden von Menschen herangezogen, anstatt einen automatisierten Entscheidungsgrund zum Bestimmen der Rollback-Version vorzusehen. Somit sind die Ansätze des Stands der Technik anfällig für menschliche Fehler und erfordern eine vom Menschen abhängige Analysezeit, um ein geeignetes Image zu bestimmen.
  • US20100162039 offenbart eine Vorrichtung und Prozesse, die Probleme auf dem Gebiet der Bereitstellung von Hochverfügbarkeit und Disaster-Recovery für Computing-Systeme und deren Daten behandeln. Diese Vorrichtungen und Prozesse können auch dazu verwendet werden, Hochverfügbarkeit und Desaster-Recovery für ein zu schützendes Computing-System vorzusehen. Die geschützten Computing-Systeme können virtuelle Computing-Systeme sein.
  • Übersicht
  • Es wird ein Ansatz vorgestellt, um ein Virtual-Machine-(VM)Image auf ein Computersystem anzuwenden. In dem Ansatz wird durch eine Implementierung über ein Informationsverarbeitungssystem eine Erfassung durchgeführt, dass für das aktuelle auf dem Computersystem ausgeführte VM-Image ein Problem vorliegt. In Reaktion darauf werden vorhergehende VM-Images analysiert, wobei ein jedes der vorhergehenden VM-Images ein Image ist, das zuvor auf dem Computersystem ausgeführt wurde. Basierend auf der Analyse wird eines der vorhergehenden VM-Images ausgewählt, und das ausgewählte Image dient zum Ersetzen des aktuellen VM-Images auf dem Computersystem. In einer Ausführungsform wird eine aktuelle Fehlersignatur (Problem Signature) bezüglich des im aktuellen VM-Image erfassten Problems erstellt, und diese Fehlersignatur wird mit historischen Fehlersignaturen verglichen, die vorhergehenden VM-Images entsprechen. In einer weiteren Ausführungsform werden beliebige der vorhergehenden VM-Images zurückgewiesen, die die gleiche Fehlersignatur wie die im aktuellen VM-Image erfasste aufweisen. Diese Fehlersignaturen, die nicht mit der aktuellen Fehlersignatur übereinstimmen, werden qualitativ analysiert, um das „beste” vorhergehende VM-Image zu bestimmen, das auf dem Computersystem verwendet werden kann. In einigen Fällen kann eine historische Fehlersignatur keine Probleme bei dem entsprechenden vorhergehenden VM-Image angeben. Fehlersignaturen, die vorhergehenden VM-Images entsprechen, können durch Analyse von Ressourcenmetriken generiert werden, die gesammelt wurden, als die vorhergehenden VM-Images auf dem Computersystem ausgeführt wurden. In einer Ausführungsform wird ein Computersystem zum Verwalten von auf mehreren Computersystemen ausgeführten Virtual Machines verwendet, wobei das verwaltende Computersystem die Analyse problematischer Daten und die Auswahl des vorhergehenden VM-Images durchführt, das auf die verschiedenen Computersysteme angewendet werden soll.
  • Die vorhergehende Beschreibung ist eine Zusammenfassung und enthält damit notwendigerweise auch Vereinfachungen, Verallgemeinerungen und Auslassungen von Details; in der Folge ist es für Fachleute verständlich, dass die Zusammenfassung nur veranschaulichend ist und in keiner Weise als einschränkend gedacht sein soll. Weitere Aspekte, Merkmale der Erfindung und Vorteile der vorliegenden Erfindung, wie nur durch die Ansprüche definiert, werden in der im Folgenden dargelegten, nicht einschränkenden detaillierten Beschreibung offensichtlich.
  • Unter einem ersten Aspekt betrachtet, stellt die vorliegende Erfindung ein Verfahren zum Anwenden eines Virtual-Machine-(VM)Images auf ein Computersystem bereit, wobei das durch ein Informationsverarbeitungssystem implementierte Verfahren aufweist: Erfassen, dass für ein aktuelles, auf dem Computersystem ausgeführtes VM-Image ein Problem vorliegt; Analysieren von einen oder mehreren vorhergehenden VM-Images, wobei ein jedes der vorhergehenden VM-Images zuvor auf dem Computersystem ausgeführt wurde; Auswählen von einem der vorhergehenden VM-Images basierend auf der Analyse; und Ersetzen des aktuellen VM-Images durch das ausgewählte vorhergehende VM-Image; und wobei die Analyse weiterhin aufweist: Erstellen einer aktuellen Fehlersignatur bezüglich des im aktuellen VM-Image erfassten Problems und Vergleichen der aktuellen Fehlersignatur mit historischen Fehlersignaturen, die jeweils einem der vorhergehenden VM-Images entsprechen.
  • Die vorliegende Erfindung sieht vorzugsweise ein Verfahren vor, das weiter aufweist: Zurückweisen basierend auf dem Vergleich eines jeden der vorhergehenden VM-Images mit historischen Fehlersignaturen, die mit der aktuellen Fehlersignatur übereinstimmen.
  • Die vorliegende Erfindung sieht vorzugsweise ein Verfahren vor, das weiter aufweist: Identifizieren, basierend auf dem Vergleich einer Gruppe, von einer oder mehreren historischen Fehlersignaturen, die nicht mit der aktuellen Fehlersignatur übereinstimmen, wobei das ausgewählte vorhergehende VM-Image einer historischen Fehlersignatur entspricht, die in der Gruppe der einen oder der mehreren historischen Fehlersignaturen enthalten ist.
  • Die vorliegende Erfindung sieht vorzugsweise ein Verfahren vor, das weiter aufweist: qualitatives Vergleichen der Gruppe von einer oder mehreren historischen Fehlersignaturen, wobei der qualitative Vergleich zu einer ausgewählten historischen Fehlersignatur führt, und wobei das ausgewählte vorhergehende VM-Image der ausgewählten historischen Fehlersignatur entspricht.
  • Die vorliegende Erfindung sieht vorzugsweise ein Verfahren vor, wobei wenigstens eine der historischen Fehlersignaturen Nicht-Fehlersignaturen sind, die angeben, dass die zugehörigen vorhergehenden VM-Images fehlerfrei sind.
  • Die vorliegende Erfindung sieht vorzugsweise ein Verfahren vor, wobei das Auswählen von einem der vorhergehenden VM-Images weiterhin aufweist: Bestimmen eines vorhergehenden VM-Images mit einer fehlerfreien Signatur, wobei das bestimmte vorhergehende VM-Image als das ausgewählte vorhergehende VM-Image ausgewählt wird.
  • Die vorliegende Erfindung sieht vorzugsweise ein Verfahren vor, das weiter aufweist: Abrufen einer Mehrzahl von Ressourcenmetriken einem jeden der vorhergehenden VM-Images entsprechend, wobei die Ressourcenmetriken ursprünglich gesammelt wurden, als die vorhergehenden VM-Images auf dem Computersystem ausgeführt wurden.
  • Die vorliegende Erfindung sieht vorzugsweise ein Verfahren vor, das weiter aufweist: Analysieren der Mehrzahl der Ressourcenmetriken entsprechend einem jeden der vorhergehenden VM-Images entsprechend, wobei die Analyse die historischen Fehlersignaturen liefert, die einem jeden der vorhergehenden VM-Images entsprechen.
  • Die vorliegende Erfindung sieht vorzugsweise ein Verfahren vor, bei dem die Analyse und die Auswahl von einem zweiten Computersystem durchgeführt werden, das die VM-Images für eine Mehrzahl von Computersystemen einschließlich des Computersystems verwaltet.
  • Von einem anderen Aspekt aus betrachtet, stellt die vorliegende Erfindung ein Informationsverarbeitungssystem bereit, das aufweist: eine Mehrzahl von Prozessoren; einen mit wenigstens einem der Prozessoren verbundenen Arbeitsspeicher (Memory); einen nicht-flüchtigen Speicherbereich; und eine Gruppe von im Arbeitsspeicher gespeicherter Anweisungen und die von wenigstens einem der Prozessoren ausgeführt werden, um ein Virtua-Machine-(VM)Image auf ein Computersystem anzuwenden, wobei die Gruppe von Anweisungen folgende Aktionen durchführt: Erfassen, dass für ein aktuelles, auf dem Computersystem ausgeführtes VM-Image ein Problem aufgetreten ist; Analysieren von einem oder mehreren vorhergehenden VM-Images, wobei ein jedes der vorhergehenden VM-Images zuvor auf dem Computersystem ausgeführt wurde; Auswählen von einem der vorhergehenden VM-Images basierend auf der Analyse; und Ersetzen des aktuellen VM-Images durch das ausgewählte vorhergehende VM-Image; wobei die Gruppe von Anweisungen, die die Analyse durchführt, weitere Aktionen durchführt, die aufweisen: Erstellen einer aktuellen Fehlersignatur bezüglich des im aktuellen VM-Image erfassten Problems und Vergleichen der aktuellen Fehlersignatur mit historischen Fehlersignaturen, die jeweils einem der vorhergehenden VM-Images entsprechen.
  • Die vorliegende Erfindung stellt vorzugsweise ein Informationsverarbeitungssystem bereit, wobei die Gruppe von Anweisungen weitere Aktionen durchführt, die aufweisen: Zurückweisen basierend auf dem Vergleich von einem jeden der vorhergehenden VM-Images mit historischen Fehlersignaturen, die mit der aktuellen Fehlersignatur übereinstimmen.
  • Die vorliegende Erfindung stellt vorzugsweise ein Informationsverarbeitungssystem bereit, wobei die Gruppe von Anweisungen weitere Aktionen durchführt, die aufweisen: Identifizieren basierend auf dem Vergleich einer Gruppe von einer oder mehreren historischen Fehlersignaturen, die nicht mit der aktuellen Fehlersignatur übereinstimmen, wobei das ausgewählte vorhergehende VM-Image einer historischen Fehlersignatur entspricht, die in der Gruppe der einen oder mehreren historischen Fehlersignaturen enthalten ist.
  • Die vorliegende Erfindung stellt vorzugsweise ein Informationsverarbeitungssystem bereit, wobei die Gruppe von Anweisungen weitere Aktionen durchführt, die aufweisen: qualitatives Vergleichen der Gruppe von einer oder mehreren historischen Fehlersignaturen, wobei der qualitative Vergleich zu einer ausgewählten historischen Fehlersignatur führt, und wobei das ausgewählte vorhergehende VM-Image der ausgewählten historischen Fehlersignatur entspricht.
  • Die vorliegende Erfindung stellt vorzugsweise ein Informationsverarbeitungssystem bereit, bei dem wenigstens eine der historischen Fehlersignaturen Nicht-Fehlersignaturenen sind, die angeben, dass die entsprechenden vorhergehenden VM-Images fehlerfrei sind.
  • Die vorliegende Erfindung stellt vorzugsweise ein Informationsverarbeitungssystem bereit, wobei das Auswählen von einem der vorhergehenden VM-Images weiterhin aufweist: Bestimmen eines vorhergehenden VM-Images mit einer fehlerfreien Signatur, wobei das bestimmte vorhergehende VM-Image als das ausgewählte vorhergehende VM-Image ausgewählt wird.
  • Die vorliegende Erfindung stellt vorzugsweise ein Informationsverarbeitungssystem bereit, bei dem die Gruppe von Anweisungen weitere Aktionen durchführt, die aufweisen: Abrufen einer Mehrzahl von Ressourcenmetriken einem jeden der vorhergehenden VM-Images entsprechend, wobei die Ressourcenmetriken ursprünglich gesammelt wurden, als die vorhergehenden VM-Images auf dem Computersystem ausgeführt wurden.
  • Die vorliegende Erfindung sieht vorzugsweise ein Informationsverarbeitungssystem vor, das weiter aufweist: Analysieren der Mehrzahl der Ressourcenmetriken entsprechend einem jeden der vorhergehenden VM-Images, wobei die Analyse zu den historischen Fehlersignaturen führt, die einem jeden der vorhergehenden VM-Images entsprechen.
  • Die vorliegende Erfindung sieht vorzugsweise ein Informationsverarbeitungssystem vor, bei dem die Analyse und die Auswahl von einem zweiten Computersystem durchgeführt werden, das die VM-Images für eine Mehrzahl von Computersystemen einschließlich des Computersystems verwaltet.
  • Von einem anderen Aspekt aus betrachtet, stellt die vorliegende Erfindung ein auf einem computerlesbaren Medium gespeichertes Computerprogrammprodukt bereit, das Computeranweisungen aufweist, die bei Ausführung durch ein Informationsverarbeitungssystem ein Virtua-Machine-(VM)Image auf ein Computersystem anwenden, indem das Informationsverarbeitungssystem dazu veranlasst wird, Aktionen auszuführen, die aufweisen: Erfassen, dass für ein aktuelles, auf dem Computersystem ausgeführtes VM-Image ein Problem vorliegt; Analysieren von einem oder mehreren vorhergehenden VM-Images, wobei ein jedes der vorhergehenden VM-Images zuvor auf dem Computersystem ausgeführt wurde; Auswählen von einem der vorhergehenden VM-Images basierend auf der Analyse; und Ersetzen des aktuellen VM-Images durch das ausgewählte vorhergehende VM-Image; und wobei die Analyse weiterhin umfasst: Erstellen einer aktuellen Fehlersignatur bezüglich dem im aktuellen VM-Image erfassten Problem; und Vergleichen der aktuellen Fehlersignatur mit historischen Fehlersignaturen, wobei jede einem der vorhergehenden VM-Images entspricht.
  • Von einem anderen Aspekt aus betrachtet, stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei die Aktionen weiterhin aufweisen: Zurückweisen basierend auf dem Vergleich von einem jeden der vorhergehenden VM-Images mit historischen Fehlersignaturen, die mit der aktuellen Fehlersignatur übereinstimmen.
  • Von einem anderen Aspekt aus betrachtet, stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei die Aktionen weiterhin aufweisen: Identifizieren basierend auf dem Vergleich einer Gruppe von einer oder mehreren historischen Fehlersignaturen, die nicht mit der aktuellen Fehlersignatur übereinstimmen, wobei das ausgewählte vorhergehende VM-Image einer historischen Fehlersignatur entspricht, die in der Gruppe der einen oder mehreren historischen Fehlersignaturen enthalten ist.
  • Von einem anderen Aspekt aus betrachtet, stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei die Aktionen weiterhin aufweisen: qualitatives Vergleichen der Gruppe von einer oder mehreren historischen Fehlersignaturen, wobei der qualitative Vergleich zu einer ausgewählten historischen Fehlersignatur führt, und wobei das ausgewählte vorhergehende VM-Image der ausgewählten historischen Fehlersignatur entspricht.
  • Von einem anderen Aspekt aus betrachtet, sieht die vorliegende Erfindung ein Computerprogrammprodukt vor, wobei wenigstens eine der historischen Fehlersignaturen Nicht-Fehlersignaturenen sind, die angeben, dass die entsprechenden vorhergehenden VM-Images fehlerfrei sind.
  • Von einem anderen Aspekt aus betrachtet, sieht die vorliegende Erfindung vorzugsweise ein Verfahren vor, wobei das Auswählen von einem der vorhergehenden VM-Images weiterhin aufweist: Bestimmen eines vorhergehenden VM-Images mit einer fehlerfreien Signatur, wobei das bestimmte vorhergehende VM-Image als das ausgewählte vorhergehende VM-Image ausgewählt wird.
  • Von einem anderen Aspekt aus betrachtet, stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei die Aktionen weiterhin aufweisen: Abrufen einer Mehrzahl von Ressourcenmetriken einem jeden der vorhergehenden VM-Images entsprechend, wobei die Ressourcenmetriken ursprünglich gesammelt wurden, als die vorhergehenden VM-Images auf dem Computersystem ausgeführt wurden.
  • Von einem anderen Aspekt aus betrachtet, stellt die vorliegende Erfindung ein Computerprogrammprodukt bereit, wobei die Aktionen weiterhin aufweisen: Analysieren der Mehrzahl der Ressourcenmetriken enstprechend einem jeden der vorhergehenden VM-Images, wobei die Analyse zu den historischen Fehlersignaturen führt, die einem jeden der vorhergehenden VM-Images entsprechen.
  • Von einem anderen Aspekt aus betrachtet, sieht die vorliegende Erfindung ein Computerprogrammprodukt vor, bei dem die Analyse und die Auswahl von einem zweiten Computersystem durchgeführt werden, das die VM-Images für eine Mehrzahl von Computersystemen einschließlich des Computersystems verwaltet.
  • Kurzbeschreibung der Figuren
  • Eine bevorzugte Ausführungsform der vorliegenden Erfindung wird nun nur als Beispiel mit Bezugnahme auf die Zeichnungen im Anhang beschrieben:
    Dadurch kann die vorliegende Erfindung besser verstanden werden, und die zahlreichen Gegenstände, Merkmale und Vorteile werden für Fachleute durch Bezugnahme auf die Zeichnungen im Anhang offensichtlich:
  • 1 ist ein Blockdiagramm eines Datenverarbeitungssystems, in dem die hier beschriebenen Verfahren implementiert werden können;
  • 2 stellt eine Erweiterung der in 1 dargestellten Informationsverarbeitungssystem-Umgebung bereit, um zu veranschaulichen, dass die hier beschriebenen Verfahren in einer breiten Vielzahl an Informationsverarbeitungssystemen durchgeführt werden können, die in einer vernetzten Umgebung ausgeführt werden;
  • 3 iat ein Komponentendiagramm, das ein Virtual Machine(VM)-Versionsmanagementsystem darstellt;
  • 4 ist ein Ablaufdiagramm, das die vom VM-Versionsmanagementsystem durchgeführten Schritte darstellt;
  • 5 ist eine Darstellung eines Flussdiagramms, das die in der Analyse der historisch Metriken verwendete Logik zum Auswählen eines VM-Images darstellt; und
  • 6 ist eine Darstellung eines Flussdiagramms, das die in der Auswahl der „besten” Virtual Machine für eine bestimmte Computingumgebung verwendete Logik darstellt.
  • Detaillierte Beschreibung
  • Wie Fachleute verstehen werden, können Aspekte der vorliegenden Erfindung als System, Verfahren oder Computerprogrammprodukt ausgeführt werden. Demgemäß können Aspekte der vorliegenden Erfindung die Form einer reinen Hardwareausführungsform annehmen, einer reinen Softwareausführungsform (einschließlich Firmware, speicherresidenter Software, Mikrocode usw.) oder einer Ausführungsform, die Software- und Hardware-Aspekte vereint, die im Allgemeinen hier alle als „Schaltkreis”, „Modul” oder „System” bezeichnet werden können. Weiterhin können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem computerlesbaren Medium oder mehreren computerlesbaren Medien, die computerlesbaren Programmcode enthalten, ausgeführt ist.
  • Es kann jede Kombination aus einem computerlesbaren Medium oder mehreren computerlesbaren Medien verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Ein computerlesbares Speichermedium kann zum Beispiel, ohne jedoch darauf beschränkt zu sein, ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, -vorrichtung, -einrichtung oder jede geeignete Kombination der Vorherigen sein. Zu den weiteren speziellen Beispielen (eine nicht erschöpfende Liste) von computerlesbaren Speichermedien gehören folgende: eine elektrische Verbindung mit einem oder mehreren Kabeln, eine tragbare Computerdiskette, eine Festplatte, Direktzugriffsspeicher (RAM bzw. Random Access Memory), Festspeicher (ROM bzw. Read-only Memory), ein löschbarer programmierbarer Festspeicher (EPROM- oder Flash-Speicher), eine Glasfaser, ein tragbarer Compact Disc-Festspeicher (CD-ROM bzw. Compact Disc Read-only Memory), eine optische Speichereinrichtung, eine magnetische Speichereinrichtung oder jede geeignete Kombination der Vorherigen. Im Kontext dieses Dokuments kann ein computerlesbares Speichermedium jedes materielle Medium sein, das ein Programm zur Verwendung durch oder in Verbindung mit einem Anweisungsausführungssystem, einer Anweisungsausführungsvorrichtung oder einem Anweisungsausführungseinrichtung enthalten oder speichern kann.
  • Zu den computerlesbaren Signalmedien kann ein weitergeleitetes Datensignal mit computerlesbarem Programmcode darin gehören, zum Beispiel im Basisband oder als Teil einer Trägerwelle. Solch ein weitergeleitetes Signal kann eine beliebige von verschiedenen Formen annehmen, einschließlich, ohne jedoch darauf beschränkt zu sein, eine elektromagnetische Form, eine optische Form oder jede andere geeignete Kombination davon. Ein computerlesbares Signalmedium kann ein beliebiges computerlesbares Medium sein, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung oder in Verbindung mit einem Anweisungsausführungssystem, einer Anweisungsausführungsvorrichtung oder einer Anweisungsausführungseinrichtung kommunizieren, weiterleiten oder transportieren kann.
  • Auf einem computerlesbaren Medium enthaltener Programmcode kann mit jedem angemessenen Medium übertragen werden, darunter, ohne darauf beschränkt zu sein, Funk, Kabel, Glasfaser, HF usw. oder jede geeignete Kombination aus den Vorherigen.
  • Computerprogrammcode zum Ausführen von Operationen für Aspekte der vorliegenden Erfindung kann in jeder beliebigen Kombination einer oder mehrerer Programmiersprachen geschrieben sein, darunter einer objektorientierten Programmiersprache, wie Java, Smalltalk, C++ oder Ähnliche, und herkömmlichen prozeduralen Programmiersprachen, wie die Programmiersprache „C” oder ähnliche Programmiersprachen. Der Programmcode kann ganz auf dem Computer des Benutzers ausgeführt werden, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernten Computer oder ganz auf dem entfernten Computer, Server oder Cluster aus Servern. In dem letzteren Szenario kann der entfernte Computer mit dem Computer des Benutzers über jede beliebige Art von Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN bzw. Local Area Network) oder ein Weitverkehrsnetzwerk (WAN bzw. Wide Area Network) oder die Verbindung kann zu einem externen Computer hergestellt werden (zum Beispiel über das Internet mit einem Internetdienstanbieter).
  • Aspekte der vorliegenden Erfindung werden im Folgenden mit Bezugnahme auf Flussdiagrammabbildungen und/oder Blockdiagramme von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Flussdiagrammabbildungen und/oder der Blockdiagramme und Kombinationen der Blöcke in den Flussdiagrammabbildungen und/oder Blockdiagrammen durch Computerprogrammanweisungen implementiert werden kann bzw. können. Diese Computerprogrammanweisungen können einem Prozessor eines allgemeinen Standardcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Anweisungen, die über den Prozessor des Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, Mittel zur Implementierung der im Flussdiagramm- und/oder Blockdiagrammblock bzw. -blöcken angegebenen Funktionen/Vorgänge erstellen.
  • Diese Computerprogrammanweisungen können auch in einem computerlesbaren Medium gespeichert werden, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einrichtungen anweisen kann, in einer bestimmten Weise zu funktionieren, sodass die auf dem computerlesbaren Medium gespeicherten Anweisungen ein Produkt erzeugen, das Anweisungen aufweist, die die Funktion/den Vorgang implementieren, der/die im Flussdiagramm- und/oder Blockdiagrammblock bzw. -blöcken angegeben sind.
  • Die Computerprogrammanweisungen können auch auf einem Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einrichtungen geladen werden, um die Durchführung einer Reihe operativer Schritte auf dem Computer, anderen programmierbaren Vorrichtungen oder anderen Einrichtungen zu veranlassen, um einen computerimplementierten Prozess zu erzeugen, sodass die auf dem Computer oder der programmierbaren Vorrichtung ausgeführten Anweisungen die Prozesse zum Implementieren der Funktionen/Vorgänge bereitstellen, die in dem Flussdiagramm- und/oder Blockdiagrammblock bzw. -blöcken angegeben sind.
  • 1 veranschaulicht ein Informationsverarbeitungssystem 100, das ein vereinfachtes Beispiel eines Computersystems ist, das dazu ausgebildet ist, die hier beschriebenen Computing-Vorgänge durchzuführen. Das Informationsverarbeitungssystem 100 weist einen oder mehrere Prozessoren 110 auf, die mit einem Prozessorschnittstellenbus 112 verbunden sind. Der Prozessorschnittstellenbus 112 verbindet die Prozessoren 110 mit North-Bridge 115, der auch als der Arbeitsspeicher-Controller-Hub (MCH bzw. Memory Controller Hub) bezeichnet wird. North-Bridge 115 ist mit dem Systemarbeitsspeicher 120 verbunden und stellt ein Mittel für Prozessor(en) 110 zum Zugriff auf den Systemarbeitsspeicher dar. Der Grafik-Controller 125 ist ebenso mit North-Bridge 115 verbunden. In einer Ausführungsform verbindet der PCI-Express-Bus 118 North-Bridge 115 mit einem Grafik-Controller 125. Der Grafik-Controller 125 ist mit der Anzeigeeinrichtung 130 verbunden, wie einem Computermonitor.
  • North-Bridge 115 und South-Bridge 135 sind miteinander über Bus 119 verbunden. In einer Ausführungsform ist der Bus ein DMI-(Direct Media Interface bzw. direkte Medienschnittstelle)Bus, der Daten in Hochgeschwindigkeit in jede Richtung zwischen North-Bridge 115 und South-Bridge 135 transportiert. In einer anderen Ausführungsform verbindet ein Peripheral–Component-Interconnect-(PCI)Bus North-Bridge und South-Bridge. South-Bridge 135, auch als I/O-Controller-Hub (ICH) bezeichnet, ist ein Chip, der im Allgemeinen Leistungsmerkmale implementiert, die in geringeren Geschwindigkeiten als die von North-Bridge vorgesehenen Leistungsmerkmale arbeiten. South-Bridge 135 stellt in der Regel verschiedene Busse bereit, die zur Anbindung verschiedener Komponenten verwendet werden. Zu diesen Bussen gehören zum Beispiel der PCI- und der PCI-Express-Bus, ein ISA-Bus, eine System-Management-Bus (SMBus oder SMB) und/oder ein LPC(Low Pin Count)-Bus. Der LPC-Bus bindet oftmals Geräte mit geringer Bandbreite an, wie ein Boot-ROM 196 und „veraltete” I/O-Geräte (unter Verwendung eines „Super-I/O-”-Chips). Die „veralteten” I/O-Geräte (198) können zum Beispiel umfassen serielle und parallele Ports, Tastatur, Maus und/oder einen Diskettencontroller. Der LPC-Bus verbindet ebenso South-Bridge 135 mit einem Trusted Platform Module (TPM) 195. Zu den weiteren Komponenten, die oft in der South-Bridge 135 enthalten sind, gehören ein Direkt-Speicherzugriff(DMA bzw. Direct Memory Access)-Controller, ein programmierbarer Interrupt-Controller (PIC bzw. Programmable Interrupt Controller) und ein Speichereinrichtungs-Controller, der die South-Bridge 135 mit nicht-flüchtigen Speichergeräten 185, wie einem Festplattenlaufwerk, unter Verwendung von Bus 184 verbindet.
  • ExpressCard 155 ist ein Slot, der Hot-pluggable-fähige Geräte mit dem Informationsverarbeitungssystem verbindet. ExpressCard 155 unterstützt sowohl PCI-Express- als auch USB-Konnektivität, da es die South-Bridge 135 unter Verwendung von sowohl dem USB (Universal Serial Bus) als auch dem PCI-Express-Bus verbindet. Die South-Bridge 135 weist einen USB-Controller 140 auf, der die USB-Konnektivität für über USB verbindbare Geräte bereitstellt. Diese Geräte umfassen eine Webcam (Kamera) 150, einen Infrarot(IR)-Empfänger 148, Tastatur und Trackpad 144 und eine Bluetooth-Einrichtung 146, die drahtlose PANs (Personal Area Networks bzw. Netzwerke im persönlichen Nahbereich) vorsieht. Der USB-Controller 140 stellt ebenso USB-Konnektivität für andere verschiedene über USB verbundene Geräte 152 bereit, wie eine Maus, ein entfernbare nicht-flüchtiges Speichergerät 145, Modems, Netzwerkkarten, ISDN-Anschlüsse, Fax, Drucker, USB-Hubs und viele andere Arten von über USB verbundenen Geräten. Wenngleich das entfernbare nicht-flüchtige Speichergerät 145 als ein über USB verbundenes Gerät dargestellt wird, kann die entfernbare nicht-flüchtige Speichereinrichtung 145 mit einer anderen Schnittstelle, wie einer FireWire-Schnittstelle usw., angebunden sein.
  • Das Funk-LAN-(Wireless Local Area Network)Gerät 175 ist mit der South-Bridge 135 über den PCI- oder PCI-Express-Bus 172 verbunden. Ein LAN-Gerät 175 implementiert in der Regel einen der IEEE 802.11-Standards der Funkmodulationstechniken, die alle das gleiche Protokoll zur drahtlosen Kommunikation zwischen dem Informationsverarbeitungssystem 100 und einem anderen Computersystem oder Gerät verwenden. Eine optische Speichereinrichtung 190 ist mit der South-Bridge 135 über den seriellen ATA(SATA)-Bus 188 verbunden. Serielle ATA-Adapter und -Geräte kommunizieren über einen seriellen Hochgeschwindigkeitslink. Der serielle ATA-Bus verbindet die South-Bridge 135 auch mit anderen Formen von Speichereinrichtungen, wie Festplattenlaufwerken. Ein Audioschaltkreis 160, wie eine Soundkarte, ist mit der South-Bridge 135 über den Bus 158 verbunden. Der Audioschaltkreis 160 stellt auch Funktionalität, wie einen Audioeingang und einen optischen digitalen Audioeingang 162, einen optischen digitalen Ausgang und eine Kopfhörerbuchse 164, interne Lautsprecher 166 und ein internes Mikrofon 168 bereit. Ein Ethernet-Controller 170 ist mit der South-Bridge 135 über einen Bus verbunden, wie dem PCI- oder PCI-Express-Bus. Ein Ethernet-Controller 170 verbindet das Informationsverarbeitungssystem 100 mit einem Computernetzwerk, wie einem Local Area Network (LAN), dem Internet und anderen öffentlichen und privaten Computernetzwerken.
  • Wenngleich 1 ein Informationsverarbeitungssystem darstellt, kann ein Informationsverarbeitungssystem viele Formen annehmen. Zum Beispiel kann ein Informationsverarbeitungssystem die Form eines Desktop-Computers, Servers, tragbaren Computers, Laptops, Notebooks oder eines in einem anderen Formfaktor ausgebildeten Computer oder Datenverarbeitungssystems annehmen. Darüber hinaus kann ein Informationsverarbeitungssystem andere Formfaktoren annehmen, wie ein persönlicher digitaler Assistent (PDA), eine Spieleeinrichtung, ein Geldautomat, ein tragbares Telefongerät, ein Kommunikationsgerät oder jedes andere Gerät mit einem Prozessor und einem Arbeitsspeicher.
  • Das in 1 dargestellte und hier beschriebene Trusted Platform Module (TPM 195) dient zur Bereitstellung von Sicherheitsfunktionen, ist aber nur ein Beispiel eines Hardware-Sicherheitsmoduls (HSM). Daher weist das hier beschriebene und beanspruchte TPM jede Art von HSM auf, einschließlich ohne darauf beschränkt zu sein, Hardware-Sicherheitseinrichtungen, die dem Trusted Computing Groups(TCG)-Standard entsprechen und den Titel „Trusted Platform Module (TPM) Specification Version 1.2” (Sichere Plattformmodul-Spezifikation Version 1.2) tragen. Das TPM ist ein Hardware-Sicherheits-Subsystem, das in eine beliebige Anzahl von Informationsverarbeitungssystemen integriert sein kann, wie die in 2 dargestellten.
  • 2 stellt eine Erweiterung der in 1 dargestellten Informationsverarbeitungssystem-Umgebung dar, um zu veranschaulichen, dass die hier beschriebenen Verfahren in einer breiten Vielzahl an Informationsverarbeitungssystemen ausgeübt werden können, die in einer vernetzten Umgebung zum Einsatz kommen. Arten der Informationsverwaltungssysteme reichen von kleinen in der Hand haltbaren Geräten, wie ein in der Hand haltbarer Computer bzw. in der Hand haltbares Mobiltelefon 210 hin zu großen Mainframe-Systemen, wie dem Mainframe-Computer 270. Zu Beispielen von in der Hand haltbaren Computern 210 gehören persönliche digitale Assistenten (PDAs), persönliche Unterhaltungsgeräte, wie MP3-Player, tragbare Fernseher und CD-Player. Zu den weiteren Beispielen von Informationsverarbeitungssystemen gehören ein Stift oder Tablett, ein Computer 220, ein Laptop oder Notebook, ein Computer 230, eine Workstation 240, ein Personal-Computersystem 250 und ein Server 260. Weitere Arten von Informationsverwaltungssystemen, die nicht einzeln in 2 veranschaulicht sind, werden durch das Informationsverarbeitungssystem 280 dargestellt. Wie dargestellt, können verschiedene Informationsverarbeitungssysteme unter Verwendung des Computernetzwerks 200 miteinander vernetzt werden. Zu den Arten von Computernetzwerken, die zur Verbindung der verschiedenen Informationsverarbeitungssysteme verwendet werden können, gehören lokale Netzwerke (LANs bzw. Local Area Networks), lokale Funknetzwerke (WLAN bzw. Wireless Local Area Network), das Internet, das öffentliche Telefonnetz (PSTN bzw. Public Switched Telephone Network), andere Funknetzwerke und jede andere Netzwerktopologie, die zur Verbindung von Informationsverwaltungssystemen verwendet werden kann. Viele der Informationsverwaltungssysteme enthalten nicht-flüchtigen Datenspeicher, wie Festplattenlaufwerke und/oder nicht-flüchtigen Arbeitsspeicher. Einige der in 2 dargestellten Informationsverarbeitungssysteme stellen eigenständige nicht-flüchtige Datenspeicher dar (der Server 260 nutzt den nicht-flüchtigen Datenspeicher 265, der Mainframe-Computer 270 nutzt den nichtflüchtigen Datenspeicher 275 und das Informationsverarbeitungssystem 280 nutzt den nicht-flüchtigen Datenspeicher 285). Der nicht-flüchtige Datenspeicher kann eine externe Komponente zu den verschiedenen Informationsverarbeitungssystemen sein oder kann intern im Informationsverarbeitungssystem vorliegen. Darüber hinaus kann eine entfernbare nicht-flüchtige Speichereinrichtung 145 von zwei oder mehr Informationsverarbeitungssystemen mithilfe verschiedener Techniken gemeinsam verwendet werden, wie den Anschluss der entfernbaren nicht-flüchtigen Speichereinrichtung 145 an einen USB-Port oder einen anderen Konnektor des Informationsverarbeitungssystems.
  • 3 bis 6 stellen einen Ansatz dar, der auf einem Informationsverarbeitungssystem und einem Computernetzwerk, wie in 1 bis 2 dargestellt, ausgeführt werden kann. Während Change-Management-Systeme Informationen darüber haben, wann und warum eine Veränderung aufgetreten ist, bestimmen die aktuellen Systeme keine geeigneten vorhergehenden Virtual Machines, sodass der Prozess des Zurückkehrens zu einem vorhergehenden Release im besten Fall ein bestmöglicher Rateversuch, ein vom Menschen gesteuerter Prozess ist. Der hier vorgestellte Ansatz verbindet ein Change-Management-System mit einem automatisierten System zum Abgleich historischer Muster im Hinblick auf eine bekannte vorhergehende Performance einer Virtual Machine auf einem Computersystem. Auf diese Weise wird ein vorhergehendes Release der Anwendung/des Virtual Image, das das Fehlermuster nicht enthält, bestimmt und auf das Computersystem angewendet. Der hierin beschriebene Prozess erfasst das Fehlermuster und nutzt die Daten der Änderungshistorie bezüglich der Performance der Virtual Machine, um das vorhergehende Release der Virtual Machine zu bestimmen, das das Fehlermuster am besten reduziert. Das System archiviert und verknüpft Performance- und Ereignisdaten mit einem angegebenen Virtual Image, um das „beste” Virtual-Machine-Image zur Anwendung auf das Computersystem zu bestimmen. Darüber hinaus kann der Prozess in dem Fall wiederholt werden, dass das Muster vorher noch nicht aufgetreten ist, aber dann auftrat, als die Rückkehr zu einem vorhergehenden VM-Image ausgeführt wurde.
  • 3 ist ein Komponentendiagramm, das ein Virtual Machine(VM)-Versionsmanagementsystem darstellt. Das VM-Versionsmanagement-Computersystem 300 ist ein Computersystem, das die Change-Management-Daten und Ressourcenmetrik-Daten zur Verwaltung des VM-Images aufbewahrt, das aktuell auf verschiedenen verwalteten Computersystemen ausgeführt wird. In dem dargestellten Beispiel verwendet das VM-Versionsmanagement-Computersystem 300 die Virtual Machines, die aktuell auf einer Anzahl von Computersystemen (VM A (310), VM B (320), VM C (330) bis VM n (340)) Verwendung finden.
  • Zu den vom VM-Versionsmanagementsystem 300 genutzten Komponenten gehören das Change-Management-System 350, das VM-Ressourcenmetriken-Sammelsystem 370 und das System 390 zum Abgleich historischer Muster. Das Change-Management-System 350 wird zum Verfolgen von aktuell auf den verschiedenen Computersystemen angewendeten VMs wie auch von Metadaten bezüglich der Installationen verwendet (zum Beispiel Datum, an dem die aktuelle VM angewendet wurde, vorhergehende den Computersystemen zugeordnete VMs und entsprechende Datumsangaben etc.). Ein VM-Ressourcenmetriken-Sammelsystem 370 wird zum Sammeln von Ressourcenmetriken in regelmäßigen Abständen verwendet (zum Beispiel Verfügbarkeit, Reaktionszeit, Kanalkapazität, Latenz, Zeitpunkt der Fertigstellung, Servicezeit, Bandbreite, Durchsatz, relative Effizienz, Skalierbarkeit, Leistung pro Watt, Komprimierungsverhältnis, Länge des Anweisungspfades und Beschleunigung etc.). Die Ressourcenmetriken werden in einem Ressourcenmetriken-Datenspeicher 380 gespeichert. Ein historischer Musterabgleichprozess 319 analysiert die Ressourcenmetriken aus dem Datenspeicher 318 bezüglich verfügbarer VM-Images, die im Datenspeicher 360 gespeichert sind. Auf diese Weise kann der Prozess bestimmen, ob ein aktuell ein Computersystem beeinträchtigendes Problem ebenso für ein vorhergehendes VM-Image ein Problem darstellte, darauf basierend, ob die Ressourcenmetriken des vorhergehenden VM-Images den Ressourcenmetriken entsprechen oder ähnlich dazu sind, die das aktuell installierte VM-Image aufweist. Darüber hinaus kann der historische Musterabgleichprozess 390 bestimmen, ob vorhergehende VM-Images aus dem Datenspeicher 360 andere Probleme aufweisen, indem die historischen Ressourcenmetriken analysiert werden, die gesammelt wurden, als vorhergehende VM-Images auf dem Computersystem ausgeführt wurden. Auf diese Weise kann das historische Musterabgleichsystem ein vorhergehendes VM-Image bestimmen, das keine Probleme aufweist, oder, falls Probleme enthalten waren, die besser sind als das auf dem aktuell installierten VM-Image aufgetretene Problem. Wenn ein angemessenes („bestes”) vorhergehendes VM-Image bestimmt wurde, informiert der historische Musterabgleichprozess den Change-Management-Prozess 350, der die Anwendung des ausgewählten vorhergehenden VM-Images auf das Computersystem übernimmt und die Metadaten bezüglich der VM-Images dementsprechend aktualisiert.
  • 4 ist ein Ablaufdiagramm, das die vom VM-Versionsmanagementsystem durchgeführten Schritte darstellt. In Schritt 400 führt ein Computersystem ein aktuelles VM-Image aus. Während das aktuelle VM-Image (415) auf einem Computersystem (Systeme 310 bis 340) ausgeführt wird, werden zu verschiedenen Zeitpunkten Ressourcenmetriken (zum Beispiel Verfügbarkeit, Reaktionszeit, Kanalkapazität, Latenz, Zeitpunkt der Fertigstellung, Servicezeit, Bandbreite, Durchsatz, relative Effizienz, Skalierbarkeit, Leistung pro Watt, Komprimierungsverhältnis, Länge des Anweisungspfades und Beschleunigung usw.) in Schritt 410 gesammelt und in Schritt 420 in dem aktuellen VM-Ressourcenmetriken-Datenspeicher 402 aufgezeichnet. Verfügbare VM-Images weisen jeweils damit verknüpfte Ressourcenmetrikdaten auf. Das aktuelle Image 401 ist das VM-Image, das aktuell auf dem Computersystem ausgeführt wird. Ressourcenmetriken, die zum aktuellen Image gehören, werden in aktuellen VM-Image-Ressourcenmetriken-Datenspeicher 402 gespeichert. In ähnlicher Weise weisen vorhergehende VM-Images, die auf dem Computersystem ausgeführt wurden, ebenso Ressourcenmetriken auf, die zu diesen VM-Images gehören, die gesammelt und gespeichert werden, als die vorhergehenden VM-Images auf dem Computersystem ausgeführt wurden. VM-Image-1 (403) ist das VM-Image, das als letztes auf dem Computersystem ausgeführt wurde, bevor das aktuelle VM-Image angewendet wurde, und die Ressourcenmetriken, die gesammelt und gespeichert wurden, während VM-Image-1 (403) ausgeführt wurde, werden im Ressourcenmetriken-Datenspeicher 404 gespeichert. Ebenso ist das VM-Image-2 (405) das VM-Image, das auf dem Computersystem direkt vor dem angewendeten VM-Image-1 ausgeführt wurde. Die Ressourcenmetriken, die bei Ausführung des VM-Image-2 (405) gesammelt und gespeichert wurden, sind in dem Ressourcenmetriken-Datenspeicher 406 gespeichert. Es kann jede beliebige Anzahl von vorhergehenden VM-Images kann verwendet werden, wie durch VM-Image-n (407) angegeben, wobei der Ressourcenmetriken-Datenspeicher 408 zum VM-Image-n gehört.
  • Mit einem Monitor, wie einem VM-Versionsmanagement-Computersystem 300, wird erfasst, ob bei der aktuell auf dem Computersystem ausgeführten VM ein Problem auftritt. Es erfolgt eine Bestimmung (zum Beispiel durch den Monitor), ob bei dem aktuellen VM-Image (415) ein Problem auftritt (Entscheidung 425). Die Entscheidung kann auf einer oder mehrere Ressourcenmetriken basieren, die über oder unter einem bestimmten Grenzwert für einen bestimmten Zeitraum usw. liegen. Wenn kein Problem auftritt (oder nicht erfasst wurde), dann verzweigt die Entscheidung 425 zu der Verzweigung „Nein”, die zurückgeht, um die Ausführung des VM-Images fortzusetzen und das Sammeln von Ressourcenmetriken fortzusetzen. Das System fährt mit der Sammlung und Aufzeichnung von Ressourcenmetriken fort, die dem aktuell ausgeführten VM-Image entsprechen. Wird ein Problem mit dem aktuell ausgeführten VM-Image erfasst, verzweigt die Entscheidung 425 zu einer Verzweigung „Ja” für eine weitere Verarbeitung, die vorhergehende VM-Images analysiert und bestimmt, ob ein VM-Image auf das Computersystem angewendet werden sollte.
  • In Schritt 430 werden das neueste vorhergehende VM-Image und die historisch gespeicherten Ressourcenmetriken (zum Beispiel Image-1 (403) und Ressourcenmetriken (404)) ausgewählt. In der dargestellten Ausführungsform werden vorhergehende VM-Images von den neuesten zurück zum ältesten ausgewählt, es können jedoch andere Ansätze bei der Auswahl von vorhergehenden VM-Images auf der Basis anderer Kriterien verwendet werden. In Schritt 435 wird die Fehlersignatur des aktuell installierten VM-Images erstellt, (sofern noch nicht erstellt) und mit historischen Fehlersignatur des ausgewählten Images verglichen. Auch hier, wenn die Ressourcenmetrikdaten keine Fehlersignatur(en) vorhergehender VM-Images enthalten, dann wird die Fehlersignatur basierend auf den ausgewählten Ressourcenmetriken generiert. Eine Bestimmung wird durchgeführt, ob die gleiche Fehlersignatur sowohl im aktuell VM-Image wie auch im ausgewählten vorhergehenden VM-Image vorhanden ist (Entscheidung 440). Der Prozess versucht vorhergehende VM-Images zu bestimmen, die nicht das gleiche Problem aufweisen, das beim aktuell installierten VM-Image auftritt. Wenn daher die Fehlersignatur in dem ausgewählten vorhergehenden VM-Image nicht vorhanden ist, verzweigt die Entscheidung 440 zur Verzweigung „Nein” zu einer weiteren Verarbeitung, um zu ermitteln, ob das ausgewählte vorhergehende VM-Image auf das Computersystem angewendet werden soll.
  • Es erfolgt eine Bestimmung, ob der Prozess dazu ausgestaltet ist, die historischen Ressourcenmetrikdaten des ausgewählten vorhergehenden VM-Images auf andere Fehlersignaturen zu prüfen, die das ausgewählte vorhergehende VM-Image bei der Installation auf dem Computersystem (Anwendung darauf) aufgewiesen haben kann (Entscheidung 445). Wenn der Prozess dazu ausgestaltet ist, das erste vorhergehende VM-Image zu bestimmen, das das von dem aktuell installierten VM-Image aufgewiesene aktuelle Problem nicht aufweist, dann verzweigt die Entscheidung 445 zur Verzweigung „Nein”, woraufhin in Schritt 460 das ausgewählte vorhergehende VM-Image auf das Computersystem angewendet wird (das aktuell installierte VM-Image ersetzt). Andererseits, wenn der Prozess dazu ausgestaltet ist, auf weitere Fehlersignaturen zu prüfen, dann verzweigt die Entscheidung 445 zur Verzweigung „Ja” zur weiteren Analyse.
  • Bei dem vorab definierten Prozess 450 werden historische Metriken, die zum ausgewählten vorhergehenden VM-Image gehören (zum Beispiel Ressourcenmetriken-Datenspeicher 404), analysiert, um beliebige andere Fehlersignaturen zu bestimmen, die in den Ressourcenmetrikdaten des ausgewählten VM-Images evident sind (siehe 5 und den zugehörigen Text für weitere Verarbeitungsdetails bezüglich der Analyse von historischen Ressourcenmetriken). Es wird bestimmt, ob durch die Analyse der historischen Ressourcenmetriken des ausgewählten vorhergehenden VM-Images andere Fehlersignaturen gefunden wurden (Entscheidung 455). Wenn andere Probleme in den historischen Ressourcenmetriken des ausgewählten vorhergehenden VM-Images gefunden wurden, verzweigt die Entscheidung 455 zur Verzweigung „Ja”, woraufhin eine Bestimmung erfolgt, ob weitere vorhergehende VM-Images vorhanden sind, die ausgewählt und analysiert werden können (Entscheidung 480). Andererseits, wenn die Analyse zeigt, dass die Ressourcenmetriken des ausgewählten vorhergehenden VM-Images kein Problem enthalten, dann verzweigt die Entscheidung 455 zur Verzweigung „Nein”, woraufhin in Schritt 416 das ausgewählte vorhergehende VM-Image auf das Computersystem angewendet wird (das aktuell installierte VM-Image ersetzt).
  • Es wird zur Entscheidung 480 zurückgegangen. Wenn weitere vorhergehende VM-Images zu verarbeiten sind, dann verzweigt die Entscheidung 480 zur Verzweigung „Ja”, die zurückgeht, um das nächste vorhergehende VM-Image auszuwählen und zu verarbeiten, um zu bestimmen, ob ein vorhergehendes VM-Image ohne Probleme existiert. Diese Schleifenverarbeitung wird fortgesetzt, bis keine weiteren vorhergehenden VM-Images mehr zu verarbeiten sind. An diesem Punkt verzweigt die Entscheidung 480 zur Verzweigung „Nein”, woraufhin in einem vordefinierten Prozess 490 das „beste” vorhergehende VM-Image basierend auf der Analyse ausgewählt wird, die für die entsprechenden historischen Ressourcenmetrikdaten durchgeführt wurde (siehe 6 und den entsprechenden Text zu weiteren Verarbeitungsdetails).
  • 5 ist eine Darstellung eines Flussdiagramms, das die in der Analyse der historischen Metriken verwendete Logik zum Auswählen eines VM-Images darstellt. Die Verarbeitung beginnt bei 500, wenn die Routine durch die in 4 dargestellte Hauptverarbeitung aufgerufen wird (siehe den vordefinierten Prozess 450 in 4). In Schritt 510 wählt der Prozess die erste Gruppe von Ressourcenmetriken, die dem aktuell ausgewählten vorhergehenden VM-Image entsprechen (als Datenspeicher 520 in 5 dargestellt und als Datenspeicher 404, 406 und 408 in 4 dargestellt). In Schritt 520 wird die ausgewählte Gruppe von Ressourcenmetriken analysiert, um beliebige Fehlersignaturen zu bestimmen, die durch die Ressourcenmetriken angezeigt werden können. Zum Beispiel können die Ressourcenmetriken Verfügbarkeit, Reaktionszeit, Kanalkapazität, Latenz, Zeitpunkt der Fertigstellung, Servicezeit, Bandbreite, Durchsatz, relative Effizienz, Skalierbarkeit, Leistung pro Watt, Komprimierungsverhältnis, Länge des Anweisungspfades und Beschleunigung usw. und Muster beinhalten, wann ein oder mehrere diese Metriken einen bestimmten Grenzwert überschreiten.
  • Eine Bestimmung wird durchgeführt, ob die Analyse ein weiteres Problem mit dem ausgewählten Image basierend auf der ausgewählten Gruppe von Ressourcenmetriken offen legt (Entscheidung 540). Wenn die Analyse ein weiteres Problem bei dem ausgewählten vorhergehenden VM-Image offen gelegt hat, dann verzweigt die Entscheidung 540 zur Verzweigung „Ja”, woraufhin in Schritt 550 der Kennzeichner des ausgewählten vorhergehenden VM-Images zusammen mit der bestimmten Fehlersignatur gespeichert wird, die in der Analyse erfasst wurde. Der VM-Image-Kennzeichner- und Fehlersignaturdaten werden im Datenspeicher 560 für zukünftige Analysen aufbewahrt (sofern erforderlich). Andererseits, wenn die Analyse der ausgewählten Gruppe von Ressourcenmetriken kein Problem (Fehlersignatur) ergibt, dann verzweigt die Entscheidung 540 zur Verzweigung „Nein” und umgeht den Schritt 550.
  • Eine Bestimmung erfolgt, ob mehrere Gruppen von Ressourcenmetriken zur Analyse für das ausgewählte vorhergehende VM-Image verfügbar sind (Entscheidung 570). Wenn weitere Gruppen von Ressourcenmetriken zur Analyse verfügbar sind, dann verzweigt die Entscheidung 570 zur Verzweigung „Ja”, die zurückgeht, um die nächste Gruppe von Ressourcenmetriken auszuwählen und zu verarbeiten, wie oben beschrieben. Die Schleifenverarbeitung wird fortgesetzt, bis alle Gruppen von Ressourcenmetriken, die dem ausgewählten vorhergehenden VM-Image zugeordnet sind, ausgewertet und analysiert wurden, wobei die Entscheidung 570 an diesen Punkt dann zur Verzweigung „Nein” zur weiteren Verarbeitung verzweigt.
  • Eine Bestimmung erfolgt, ob bei der Analyse der Ressourcenmetriken andere Probleme (Fehlersignaturen) erfasst wurden, die mit dem ausgewählten VM-Image verknüpft sind (Entscheidung 580). Wenn die Analyse der Ressourcenmetriken ein oder mehrere Probleme mit dem ausgewählten vorhergehenden VM-Image offen legt, dann verzweigt die Entscheidung 580 zur Verzweigung „Ja”, wonach in 590 die Verarbeitung zur aufrufenden Routine (siehe 4) mit einem Rückkehr-Code zurückgeht, der angibt, dass für das ausgewählte vorhergehende VM-Image Probleme erkannt wurden (in diesem Fall setzt die aufrufende Routine die Analyse vorhergehender VM-Images hinsichtlich Fehlersignaturen fort, bis ein geeignetes Image bestimmt wurde). Andererseits, wenn die Analyse der Ressourcenmetriken keine weiteren Probleme mit dem ausgewählten vorhergehenden VM-Image ergibt, dann verzweigt die Entscheidung 580 zur Verzweigung „Ja”, wonach in 595 die Verarbeitung zur aufrufenden Routine (siehe 4) mit einem Rückkehr-Code zurückgeht, der angibt, dass für das ausgewählte vorhergehende VM-Image keine Probleme erkannt wurden (in diesem Fall wird das vorhergehende VM-Image dann auf das Computersystem angewendet).
  • 6 ist eine Darstellung eines Flussdiagramms, das die in der Auswahl der „besten” Virtual Machine (VM) für eine bestimmte Computingumgebung verwendete Logik darstellt. Die in 6 dargestellte Routine wird aus 4 aufgerufen (vordefinierter Prozess 490), wenn die Hauptroutine nicht in der Lage ist, ein vorhergehendes VM-Image zu identifizieren, da einem jeden der vorhergehenden VM-Images eine oder mehrere Fehlersignaturen zugeordnet sind. Die in 6 dargestellte Routine wählt das „beste” vorhergehende VM-Image aus, das auf das Computersystem angewendet wird.
  • Die Verarbeitung beginnt bei 600, worauf in Schritt 610 die mit dem aktuellen ausgeführten VM-Image verknüpften Probleme (Fehlersignaturdaten) abgerufen und im Arbeitsspeicherbereich 620 gespeichert werden, um das „beste” verfügbare VM-Image als das Image zu initialisieren, das aktuell ausgeführt wird. In der nachfolgenden Verarbeitung, wie im Folgenden beschrieben, werden Problemdaten eines vorhergehenden VM-Images mit dem „besten” verfügbaren VM-Image verglichen und ersetzen, wenn sie besser sind, das aktuelle „beste” verfügbare Image.
  • In Schritt 625 wird das erste verfügbare vorhergehende VM-Image ausgewählt. Die Daten werden aus dem Datenspeicher 560 abgerufen, wobei der Datenspeicher 560 mit Problemdaten unter Verwendung des zuvor Ausgeführten und in 5 Dargestellten geladen wurde. In Schritt 630 wird ein Arbeitsspeicherbereich (Arbeitsspeicherbereich 635) gelöscht oder anderweitig initialisiert. In Schritt 640 wird das erste Problem (Fehlersignaturdaten), das für das ausgewählte vorhergehende VM-Image bestimmt wurde, ausgewählt und im Arbeitsspeicher 635 gespeichert. Es wird bestimmt, ob andere Probleme (Fehlersignaturdaten) für das ausgewählte vorhergehende VM-Image erfasst wurden (Entscheidung 650). Falls weitere Probleme erfasst wurden, dann verzweigt die Entscheidung 650 zur Verzweigung „Ja”, die zurückgeht, um das nächste Problem (Fehlersignaturdaten) auszuwählen und das nächste Problem im Arbeitsspeicherbereich 635 zu speichern. Die Schleifenverarbeitung wird fortgesetzt, bis alle mit dem ausgewählten vorhergehenden VM-Image verknüpften Probleme ausgewählt und im Arbeitsspeicherbereich 635 gespeichert wurden, wobei die Entscheidung 650 an diesen Punkt zur Verzweigung „Nein” zur weiteren Verarbeitung verzweigt.
  • In Schritt 660 werden die mit dem ausgewählten vorhergehenden VM-Image verknüpften Problemdaten qualitativ mit den aktuellen „besten” VM-Image-Problemdaten verglichen, die zuvor im Arbeitsspeicherbereich 620 gespeichert waren. Eine Bestimmung erfolgt auf der Basis eines Vergleichs (Entscheidung 670), ob das ausgewählte vorhergehende VM-Image besser ist als das aktuelle „beste” verfügbare VM-Image. Wenn das ausgewählte vorhergehende VM-Image besser ist als das aktuelle „beste” verfügbare VM-Image, dann verzweigt die Entscheidung 670 zur Verzweigung „Ja”, woraufhin in Schritt 675 das aktuelle „beste” verfügbare VM-Image ersetzt wird, indem der Speicherbereich 620 gelöscht wird und der Kennzeichner des ausgewählten vorhergehenden VM-Images in den Speicherbereich 620 zusammen mit den dem ausgewählten vorhergehenden VM-Image zugeordneten Problemdaten aus dem Arbeitsspeicherbereich 635 geschrieben wird. Andererseits, wenn das ausgewählte vorhergehende VM-Image nicht besser ist als das aktuelle „beste” verfügbare VM-Image, dann verzweigt die Entscheidung 670 zur Verzweigung „Nein” und umgeht den Schritt 675.
  • Eine Bestimmung erfolgt, ob weitere vorhergehende VM-Images vorhanden sind, die noch nicht verarbeitet wurden (Entscheidung 680). Falls weitere vorhergehende VM-Images vorhanden sind, die noch nicht verarbeitet wurden, dann verzweigt die Entscheidung 680 zur Verzweigung „Ja”, die zurückgeht, um das nächste vorhergehende VM-Image auszuwählen und die Problemdaten des Images mit dem „besten” verfügbaren Image zu vergleichen. Auf diese Weise werden die Problemdaten, die einem jeden der vorhergehenden VM-Images entsprechen, mit dem aktuellen „besten” verfügbaren VM-Image verglichen, um das VM-Image zu identifizieren, das Problemdaten aufweist, die besser verarbeitet werden können als die in anderen verfügbaren VM-Images erfassten Probleme. Die Schleifenverarbeitung wird fortgesetzt, bis die mit allen der verfügbaren VM-Images verknüpften Problemdaten verarbeitet sind, wobei die Entscheidung 680 an diesem Punkt zur Verzweigung „Nein” verzweigt. In Schritt 690 wird das „beste” verfügbare VM-Image in der im Arbeitspeicherbereich 620 gespeicherten Form auf das Computersystem angewendet. Wenn natürlich das aktuell ausgeführte VM-Image als das „beste” verfügbare Image bestimmt wird, dann wird keines der vorhergehenden VM-Images auf das System angewendet. Die Verarbeitung kehrt dann zur aufrufenden Routine (siehe 4) in 695 zurück.
  • Das Flussdiagramm und die Blockdiagramme in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Implementierungen der Systeme, Verfahren und Computerprogrammprodukte gemäß verschiedener Ausführungsformen der vorliegenden Erfindung. In dieser Hinsicht kann jeder Block in den Flussdiagrammen oder Blockdiagrammen ein Modul, ein Segment oder einen Codeabschnitt darstellen, der eine oder mehrere ausführbare Anweisungen zur Implementierung der angegebenen logischen Funktion(en) aufweist. Es ist ebenso hervorzuheben, dass in einigen alternativen Implementierungen die in dem Block angegebenen Funktionen nicht in der in den Figuren angegebenen Reihenfolge vorkommen können. Zum Beispiel können in Abhängigkeit von der enthaltenen Funktionalität zwei aufeinanderfolgende Blöcke tatsächlich gleichzeitig ausgeführt werden, oder Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden. Es ist auch hervorzuheben, dass jeder Block in den Blockdiagramm- und/oder Flussdiagrammabbildungen und die Kombinationen der Blöcke in den Blockdiagramm- und/oder Flussdiagrammabbildungen durch hardwarebasierte Spezialsysteme, die die angegebenen Funktionen oder Vorgänge ausführen, oder Kombinationen von Spezialhardware und Computeranweisungen implementiert werden können.
  • Wenngleich bestimmte Ausführungsformen der vorliegenden Erfindung dargestellt und beschrieben wurden, ist es für Fachleute offensichtlich, dass basierend auf den hier dargelegten Lehren, Änderungen und Modifikationen vorgenommen werden können, ohne von dieser Erfindung und den breiteren Aspekten davon abzuweichen. Daher sollen die Ansprüche im Anhang in ihrem gesamten Umfang alle Änderungen und Modifikationen abdecken, die im Umfang der Erfindung liegen. Darüber hinaus versteht es sich, dass die Erfindung nur durch die im Anhang befindlichen Ansprüche definiert ist. Wie Fachleute verstehen werden, dass wenn eine bestimmte Anzahl eines eingeführten Anspruchelements beabsichtigt ist, diese Absicht explizit im Anspruch ausgedrückt wird, und dass in Anwesenheit einer solchen Formulierung keine solche Beschränkung vorhanden ist. Als nicht einschränkendes Beispiel, als Verständnishilfe, werden in den folgenden Ansprüchen im Anhang einleitende Ausdrücke wie „wenigstens ein/eine” und „ein/eine oder mehrere” zur Einführung von Anspruchselementen verwendet. Die Verwendung solcher Phrasen sollte jedoch nicht so ausgelegt werden, dass dies impliziert, dass die Einleitung eines Anspruchselements durch unbestimmte Artikel „ein” oder „eine” einen bestimmten Anspruch mit einem solchen Einleitungs-Anspruchselement auf Erfindungen beschränkt, die nur ein solches Element enthalten, selbst wenn der gleiche Anspruch die einleitenden Ausdrücke „ein/eine oder mehrere” oder „wenigstens eines” und unbestimmte Artikel wie „ein” oder „eine” enthält. Das gleiche gilt für die Verwendung der bestimmten Artikel in den Ansprüchen.

Claims (27)

  1. Ein Verfahren zum Anwenden eines Virtua-Machine-(VM)Images auf ein Computersystem, wobei das durch ein Informationsverarbeitungssystem implementierte Verfahren aufweist: Erfassen, dass bei einem aktuell auf dem Computersystem ausgeführten VM-Image ein Problem auftritt; Analysieren von einem oder mehreren vorhergehenden VM-Images, wobei ein jedes der vorhergehenden VM-Images vorher auf dem Computersystem ausgeführt wurde; Auswählen von einem der vorhergehenden VM-Images basierend auf der Analyse; und Ersetzen des aktuellen VM-Images durch das ausgewählte vorhergehende VM-Image; und wobei die Analyse weiterhin aufweist: Erstellen einer aktuellen Fehlersignatur, die auf das in dem aktuellen VM-Image erfasste Problem bezogen ist; und Vergleichen der aktuellen Fehlersignatur mit historischen Fehlersignaturen, die jeweils einem der vorhergehenden VM-Images entsprechen.
  2. Das Verfahren nach Anspruch 1, das weiterhin aufweist: Zurückweisen basierend auf dem Vergleich von einem jeden der vorhergehenden VM-Images mit historischen Fehlersignaturen, die mit der aktuellen Fehlersignatur übereinstimmen.
  3. Das Verfahren nach Anspruch 1, das weiterhin aufweist: Identifizieren basierend auf dem Vergleich einer Gruppe von einer oder mehreren historischen Fehlersignaturen, die nicht mit der aktuellen Fehlersignatur übereinstimmen, wobei das ausgewählte vorhergehende VM-Image einer historischen Fehlersignatur entspricht, die in der Gruppe der einen oder mehreren historischen Fehlersignaturen enthalten ist.
  4. Das Verfahren nach Anspruch 3, das weiterhin aufweist: qualitatives Vergleichen der Gruppe von einer oder mehreren historischen Fehlersignaturen, wobei der qualitative Vergleich eine ausgewählte historische Fehlersignatur liefert, und wobei das ausgewählte vorhergehende VM-Image der ausgewählten historischen Fehlersignatur entspricht.
  5. Das Verfahren nach Anspruch 3, wobei wenigstens eine der historischen Fehlersignaturen eine Nicht-Fehlersignatur ist, die angibt, dass die entsprechenden vorhergehenden VM-Images fehlerfrei sind.
  6. Das Verfahren nach Anspruch 5, wobei das Auswählen von einem der vorhergehenden VM-Images weiterhin aufweist: Bestimmen eines vorhergehenden VM-Images mit einer fehlerfreien Signatur, wobei das bestimmte vorhergehende VM-Image als das ausgewählte vorhergehende VM-Image ausgewählt wird.
  7. Das Verfahren nach Anspruch 3, das weiterhin aufweist: Abrufen einer Mehrzahl von Ressourcenmetriken einem jeden der vorhergehenden VM-Images entsprechend, wobei die Ressourcenmetriken ursprünglich gesammelt wurden, als die vorhergehenden VM-Images auf dem Computersystem ausgeführt wurden.
  8. Das Verfahren nach Anspruch 7, das weiterhin aufweist: Analysieren der Mehrzahl der Ressourcenmetriken einem jeden der vorhergehenden VM-Images entsprechend, wobei die Analyse zu den historischen Fehlersignaturen führt, die einem jeden der vorhergehenden VM-Images entsprechen.
  9. Das Verfahren nach Anspruch 1, wobei die Analyse und die Auswahl von einem zweiten Computersystem durchgeführt werden, das die VM-Images für eine Mehrzahl von Computersystemen einschließlich des Computersystems verwaltet.
  10. Ein Informationsverarbeitungssystem, das aufweist: eine Mehrzahl von Prozessoren; einen mit wenigstens einem der Prozessoren verbundenen Arbeitsspeicher; einen nicht-flüchtigen Speicherbereich; und eine im Arbeitsspeicher gespeicherte Gruppe von Anweisungen und die von wenigstens einem der Prozessoren ausgeführt wird, um ein Virtua-Machine-(VM)Image auf ein Computersystem anzuwenden, wobei die Gruppe der Anweisungen Aktionen durchführt des: Erfassens, dass für ein aktuelles, auf dem Computersystem ausgeführtes VM-Image ein Problem vorliegt; Analysierens von einem oder mehreren vorhergehenden VM-Images, wobei ein jedes der vorhergehenden VM-Images zuvor auf dem Computersystem ausgeführt wurde; Auswählens von einem der vorhergehenden VM-Images basierend auf der Analyse; und Ersetzens des aktuellen VM-Images durch das ausgewählte vorhergehende VM-Image; wobei die Gruppe von Anweisungen, die die Analyse durchführen, weitere Aktionen durchführen, die aufweisen: Erstellen einer aktuellen Fehlersignatur, die auf das in dem aktuellen VM-Image erfasste Problem bezogen ist; und Vergleichen der aktuellen Fehlersignatur mit historischen Fehlersignaturen, die jeweils einem der vorhergehenden VM-Images entsprechen.
  11. Das Informationsverarbeitungssystem nach Anspruch 10, wobei die Gruppe von Anweisungen weitere Aktionen durchführt, die aufweisen: Zurückweisen basierend auf dem Vergleich eines jeden der vorhergehenden VM-Images mit historischen Fehlersignaturen, die der aktuellen Fehlersignatur entsprechen.
  12. Das Informationsverarbeitungssystem nach Anspruch 11, wobei die Gruppe von Anweisungen weitere Aktionen durchführt, die aufweisen: Bestimmen basierend auf dem Vergleich einer Gruppe von einer oder mehreren historischen Fehlersignaturen, die nicht mit der aktuellen Fehlersignatur übereinstimmen, wobei das ausgewählte vorhergehende VM-Image einer historischen Fehlersignatur entspricht, die in der Gruppe der einen oder mehreren historischen Fehlersignaturen enthalten ist.
  13. Das Informationsverarbeitungssystem nach Anspruch 12, wobei die Gruppe von Anweisungen weitere Aktionen durchführt, die umfassen: qualitatives Vergleichen der Gruppe von einer oder mehreren historischen Fehlersignaturen, wobei der qualitative Vergleich zu einer ausgewählten historischen Fehlersignatur führt, und wobei das ausgewählte vorhergehende VM-Image der ausgewählten historischen Fehlersignatur entspricht.
  14. Das Informationsverwaltungssystem nach Anspruch 12, wobei wenigstens eine der historischen Fehlersignaturen eine Nicht-Fehlersignatur ist, die angibt, dass die entsprechenden vorhergehenden VM-Images fehlerfrei sind.
  15. Das Informationsverarbeitungssystem nach Anspruch 14, wobei das Auswählen von einem der vorhergehenden VM-Images weiterhin aufweist: Bestimmen eines vorhergehenden VM-Images mit einer fehlerfreien Signatur, wobei das bestimmte vorhergehende VM-Image als das ausgewählte vorhergehende VM-Image ausgewählt wird.
  16. Das Informationsverarbeitungssystem nach Anspruch 12, wobei die Gruppe von Anweisungen weitere Aktionen durchführt, die aufweisen: Abrufen einer Mehrzahl von Ressourcenmetriken einem jeden der vorhergehenden VM-Images entsprechend, wobei die Ressourcenmetriken anfangs gesammelt wurden, als die vorhergehenden VM-Images auf dem Computersystem ausgeführt wurden.
  17. Das Informationsverarbeitungssystem nach Anspruch 16, das weiterhin aufweist: Analysieren der Mehrzahl der Ressourcenmetriken einem jeden der vorhergehenden VM-Images entsprechend, wobei die Analyse zu den historischen Fehlersignaturen führt, die einem jeden der vorhergehenden VM-qImages entsprechen.
  18. Informationsverarbeitungssystem nach Anspruch 9, wobei die Analyse und die Auswahl von einem zweiten Computersystem durchgeführt werden, das die VM-Images für eine Mehrzahl von Computersystemen einschließlich des Computersystems verwaltet.
  19. Ein auf einem computerlesbaren Medium gespeichertes Computerprogrammprodukt, das Computeranweisungen aufweist, die bei Ausführung durch ein Informationsverarbeitungssystem ein Virtua-Machine-(VM)Image auf ein Computersystem anwenden, indem das Informationsverarbeitungssystem dazu veranlasst wird, folgende Aktionen auszuführen: Erfassen, dass bei einem aktuellen, auf dem Computersystem ausgeführten VM-Image ein Problem auftritt; Analysieren von einem oder mehreren VM-Images, wobei ein jedes der vorhergehenden VM-Images vorher auf dem Computersystem ausgeführt wurde; Auswählen von einem der vorhergehenden VM-Images basierend auf der Analyse; und Ersetzen des aktuellen VM-Images durch das ausgewählte vorhergehende VM-Image; und wobei die Analyse weiterhin aufweist: Erstellen einer aktuellen Fehlersignatur, die auf das in dem aktuellen VM-Image erfasste Problem bezogen ist; und Vergleichen der aktuellen Fehlersignatur mit historischen Fehlersignaturen, die jeweils einem der vorhergehenden VM-Images entsprechen.
  20. Das Computerprogrammprodukt nach Anspruch 19, wobei die Aktionen weiterhin aufweisen: Zurückweisen basierend auf dem Vergleich von einem jeden der vorhergehenden VM-Images mit historischen Fehlersignaturen, die mit der aktuellen Fehlersignatur übereinstimmen.
  21. Das Computerprogrammprodukt nach Anspruch 19, wobei die Aktionen weiterhin aufweisen: Identifizieren basierend auf dem Vergleich einer Gruppe von einer oder mehreren historischen Fehlersignaturen, die nicht mit der aktuellen Fehlersignatur übereinstimmen, wobei das ausgewählte vorhergehende VM-Image einer historischen Fehlersignatur entspricht, die in der Gruppe der einen oder mehreren historischen Fehlersignaturen enthalten ist.
  22. Das Computerprogrammprodukt nach Anspruch 21, wobei die Aktionen weiterhin aufweisen: qualitatives Vergleichen der Gruppe von einer oder mehreren historischen Fehlersignaturen, wobei der qualitative Vergleich zu einer ausgewählten historischen Fehlersignatur führt, und wobei das ausgewählte vorhergehende VM-Image der ausgewählten historischen Fehlersignatur entspricht.
  23. Das Computerprogrammprodukt nach Anspruch 21, wobei wenigstens eine der historischen Fehlersignaturen eine Nicht-Fehlersignatur ist, die angibt, dass die entsprechenden vorhergehenden VM-Images fehlerfrei sind.
  24. Das Computerprogrammprodukt nach Anspruch 23, wobei das Auswählen von einem der vorhergehenden VM-Images weiterhin aufweist: Bestimmen eines vorhergehenden VM-Images mit einer fehlerfreien Signatur, wobei das bestimmte vorhergehende VM-Image als das ausgewählte vorhergehende VM-Image ausgewählt wird.
  25. Das Computerprogrammprodukt nach Anspruch 21, wobei die Aktionen weiterhin aufweisen: Abrufen einer Mehrzahl von Ressourcenmetriken einem jeden der vorhergehenden VM-Images entsprechend, wobei die Ressourcenmetriken ursprünglich gesammelt wurden, als die vorhergehenden VM-Images auf dem Computersystem ausgeführt wurden.
  26. Das Computerprogrammprodukt nach Anspruch 25, wobei die Aktionen weiterhin aufweisen: Analysieren der Mehrzahl der Ressourcenmetriken einem jeden der vorhergehenden VM-Images entsprechend, wobei die Analyse zu den historischen Fehlersignaturen führt, die einem jeden der vorhergehenden VM-Images entsprechen.
  27. Das Verfahren nach Anspruch 19, wobei die Analyse und die Auswahl von einem zweiten Computersystem durchgeführt werden, das die VM-Images für eine Mehrzahl von Computersystemen einschließlich des Computersystems verwaltet.
DE112013005768.9T 2012-12-03 2013-08-07 Wiederherstellen einer vorhergehenden Version eines Virtual-Machine-Images Pending DE112013005768T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/692,707 US9104447B2 (en) 2012-12-03 2012-12-03 Restoring a previous version of a virtual machine image
USUS-13/692,707 2012-12-03
PCT/EP2013/066583 WO2014086508A1 (en) 2012-12-03 2013-08-07 Restoring a previous version of a virtual machine image

Publications (1)

Publication Number Publication Date
DE112013005768T5 true DE112013005768T5 (de) 2015-10-15

Family

ID=48985735

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112013005768.9T Pending DE112013005768T5 (de) 2012-12-03 2013-08-07 Wiederherstellen einer vorhergehenden Version eines Virtual-Machine-Images

Country Status (7)

Country Link
US (2) US9104447B2 (de)
JP (1) JP6266008B2 (de)
CN (1) CN104903865B (de)
DE (1) DE112013005768T5 (de)
GB (1) GB2524196B (de)
TW (1) TWI537829B (de)
WO (1) WO2014086508A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10409625B1 (en) * 2013-09-17 2019-09-10 Amazon Technologies, Inc. Version management for hosted computing workspaces
RU2573789C2 (ru) * 2014-04-18 2016-01-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ запуска виртуальной машины
US20150355927A1 (en) * 2014-06-04 2015-12-10 Yahoo! Inc. Automatic virtual machine resizing to optimize resource availability
EP3481032B1 (de) * 2017-11-06 2022-11-02 Netatmo Regressionssichere netzwerkkommunikationslogik für eine iot-vorrichtung und verfahren zur verwaltung davon
CN111967010B (zh) * 2019-05-20 2024-05-24 阿里巴巴集团控股有限公司 一种可信服务方法、装置、设备及存储介质
EP3929740A1 (de) * 2020-06-26 2021-12-29 Siemens Aktiengesellschaft Verfahren zur orchestrierung einer container-basierten anwendung auf einem endgerät

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0484943A3 (en) 1990-11-09 1995-09-27 Fujitsu Ltd Method for restructuring communications network based on asynchronous transfer mode in case of failure
JP4550215B2 (ja) * 2000-03-29 2010-09-22 株式会社東芝 分析装置
GB0112781D0 (en) 2001-05-25 2001-07-18 Global Continuity Plc Method for rapid recovery from a network file server failure
US7356665B2 (en) 2003-12-17 2008-04-08 International Business Machines Corporation Method and system for machine memory power and availability management in a processing system supporting multiple virtual machines
US7899788B2 (en) 2005-04-01 2011-03-01 Microsoft Corporation Using a data protection server to backup and restore data on virtual servers
JP4542514B2 (ja) 2006-02-13 2010-09-15 株式会社日立製作所 計算機の制御方法、プログラム及び仮想計算機システム
US8011010B2 (en) * 2007-04-17 2011-08-30 Microsoft Corporation Using antimalware technologies to perform offline scanning of virtual machine images
JP2009080692A (ja) 2007-09-26 2009-04-16 Toshiba Corp 仮想計算機システム及び同システムにおけるサービス引き継ぎ制御方法
JP4560074B2 (ja) 2007-09-26 2010-10-13 株式会社東芝 仮想計算機システム及び同システムにおける仮想計算機復元方法
JP5075736B2 (ja) * 2008-05-27 2012-11-21 株式会社日立製作所 仮想サーバのシステム障害回復方法及びそのシステム
JP5446167B2 (ja) * 2008-08-13 2014-03-19 富士通株式会社 ウイルス対策方法、コンピュータ、及びプログラム
US8055937B2 (en) 2008-12-22 2011-11-08 QuorumLabs, Inc. High availability and disaster recovery using virtualization
US8438349B2 (en) * 2009-08-21 2013-05-07 Symantec Corporation Proxy backup of virtual disk image files on NAS devices
JP2011060055A (ja) * 2009-09-11 2011-03-24 Fujitsu Ltd 仮想計算機システム、仮想マシンの復旧処理方法及びそのプログラム
US8930652B2 (en) 2009-11-11 2015-01-06 Red Hat Israel, Ltd. Method for obtaining a snapshot image of a disk shared by multiple virtual machines

Also Published As

Publication number Publication date
GB201511572D0 (en) 2015-08-12
US9104447B2 (en) 2015-08-11
WO2014086508A1 (en) 2014-06-12
CN104903865A (zh) 2015-09-09
JP2016504672A (ja) 2016-02-12
GB2524196A (en) 2015-09-16
TW201435744A (zh) 2014-09-16
US20140157266A1 (en) 2014-06-05
GB2524196B (en) 2017-10-04
JP6266008B2 (ja) 2018-01-24
US9104448B2 (en) 2015-08-11
CN104903865B (zh) 2017-07-21
US20140157263A1 (en) 2014-06-05
TWI537829B (zh) 2016-06-11

Similar Documents

Publication Publication Date Title
DE112012005037B4 (de) Verwalten von redundanten unveränderlichen Dateien unter Verwendung von Deduplizierungen in Speicher-Clouds
DE112013005768T5 (de) Wiederherstellen einer vorhergehenden Version eines Virtual-Machine-Images
DE112010003595B4 (de) Verfahren, Systeme und maschinenverarbeitbares Medium zur Bereitstellung einer verteiltenPrädikatvorhersage
DE112012004747B4 (de) Verborgenes automatisiertes Spiegeln von Daten für native Schnittstellen in verteilten virtuellen Maschinen
DE112012002362B4 (de) Automatisierte Empfehlungen für Cloud-Computing-Optionen
DE202014010893U1 (de) Rufwegsucher
DE112010004784T5 (de) Effizientes Laden von Daten in den Speicher eines Rechnersystems
DE102012224270A1 (de) Verbinden einer synchronen domänenübergreifenden Transaktionsaktivität in einem einzelnen System
DE202012013462U1 (de) Datenverarbeitung in einem Mapreduce-Framework
DE112012005032T5 (de) Entfernen der Datenremanenz in deduplizierten Speicher-Clouds
DE102012215216A1 (de) Verbesserte Erfassung von Speicherauszugsdaten von Hardwareausfallmodi
DE102007039156A1 (de) EFI-basierter Mechanismus zum Exportieren von Plattform-Verwaltungsfähigkeiten in das Betriebssystem
DE112014007090T5 (de) Verfahren und systeme zum automatischen tagging anhand von software-ausführungs-traces
DE102016204710A1 (de) Sichern und Wiederherstellen von Klondaten
DE112021002820T5 (de) Dynamische automatisierung einer auswahl von pipeline-artefakten
DE102013201174A1 (de) Online-Überprüfung einer Standby-Datenbank in physischen Replikationsumgebungen mit Protokollversand
DE102012217315A1 (de) Verwenden von nativen Routinen an Stelle von emulierten Routinen in einer emulierten Anwendung
DE112013000393T5 (de) Zuordnung von Webanwendungsinhalten
DE202015009296U1 (de) System zum Laden virtueller Maschinen
DE102017124078A1 (de) Ordinale modifikation der dienstgüte
DE102016119738A1 (de) Selektives Laden von Komponenten in einem Knoten zum Beschleunigen von Wartungsmaßnahmen
DE112013004788T5 (de) Pinning von Boot-Daten zum schnelleren Booten
CN114125015A (zh) 一种数据采集方法及系统
DE102016204594A1 (de) Abgleichen von datenquellen ohne tags mit datenanalyseanwendungen ohne tags
DE112020004688T5 (de) Debuggen und erstellen von profilen von maschinenlernmodelltraining

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE

R082 Change of representative

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE