DE112013002014B4 - Bereitstellen von anwendungsgestützter Überwachung und Wiederherstellung für einen Hypervisor eines HA-Clusters - Google Patents

Bereitstellen von anwendungsgestützter Überwachung und Wiederherstellung für einen Hypervisor eines HA-Clusters Download PDF

Info

Publication number
DE112013002014B4
DE112013002014B4 DE112013002014.9T DE112013002014T DE112013002014B4 DE 112013002014 B4 DE112013002014 B4 DE 112013002014B4 DE 112013002014 T DE112013002014 T DE 112013002014T DE 112013002014 B4 DE112013002014 B4 DE 112013002014B4
Authority
DE
Germany
Prior art keywords
guest
node
hypervisor
specified application
high availability
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.)
Active
Application number
DE112013002014.9T
Other languages
English (en)
Other versions
DE112013002014T5 (de
Inventor
c/o IBM Deutschlang Research Mueller Markus
c/o IBM Deutschland Management Mittelstaedt Marcel
c/o IBM Corporation Harper Richard E.
c/o IBM Corporation Spainhower Lisa F.
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 DE112013002014T5 publication Critical patent/DE112013002014T5/de
Application granted granted Critical
Publication of DE112013002014B4 publication Critical patent/DE112013002014B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2035Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant without idle spare hardware
    • 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/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/0793Remedial or corrective actions
    • 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/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

Abstract

Ein Computer-Programm-Produkt, in Verbindung mit einem ersten Knoten, der einen Hypervisor und eine oder mehrere virtuelle Gast-Maschinen (Gast-VMs) aufweist, wobei jede Gast-VM so angepasst ist, dass auf ihr eine oder mehrere Anwendungen ausführbar sind, und wobei der erste Knoten mit einem oder mehreren Knoten verbindbar ist, um ein Cluster mit hoher Verfügbarkeit (HA-Cluster) zu bilden, wobei der erste Knoten angepasst ist, um einen lokalen Hochverfügbarkeits-Manager auszuführen, der extern zu jeder virtuellen Gast-Maschine ist, wobei das Computer-Programm-Produkt in einem nicht-flüchtigen, aufzeichnungsfähigen Speichermedium ausführbar ist, aufweisend:
- Anweisungen zum Einrichten eines internen bidirektionalen Datenübertragungskanals zwischen jeder Gast-VM und dem Hypervisor des ersten Knotens;
- Anweisungen zum Senden von Nachrichten, die Befehle und Antworten auf Befehle enthalten, über den internen Kanal zwischen dem Hypervisor und einer vorgegebenen Gast-VM wie von dem lokalen Hochverfügbarkeits-Manager bestimmt, wobei entsprechende Befehle gesendet werden, um eine spezifizierte Anwendung zu steuern, die auf der vorgegebenen Gast-VM ausgeführt wird;
- Anweisungen für ein selektives Überwachen der Nachrichten, um ein Auftreten einer Fehlerbedingung zu erkennen, die der spezifizierten Anwendung zugehörig ist, die in der vorgegebenen Gast-VM ausgeführt wird; und
- Anweisungen, in Reaktion auf das Erkennen einer Fehlerbedingung, für ein Ergreifen einer Maßnahme zur Korrektur der Fehlerbedingung wie von dem lokalen Hochverfügbarkeits-Manager bestimmt, wobei die Maßnahme ein Senden von wenigstens einem Befehl über den internen Kanal von dem Hypervisor zu der vorgegebenen Gast-VM aufweist, wobei Hinweise auf Gast-VM-Fehler in dem ersten Knoten an den lokalen Hochverfügbarkeits-Manager gesendet werden, der angepasst ist, um den Hypervisor des ersten Knotens zu steuern und mit einem Dateisystem, das der spezifizierten Anwendung zugeordnet ist, zu interagieren.

Description

  • Hintergrund
  • Gebiet der Erfindung:
  • Die hier beschriebene und beanspruchte Erfindung betrifft im Allgemeinen ein Verfahren und eine Vorrichtung, bei denen ein Hypervisor mit einem oder mehreren anderen Hypervisors verbunden ist, um einen Cluster mit hoher Verfügbarkeit (HA-Cluster) zu bilden. Die Erfindung betrifft insbesondere ein Verfahren und eine Vorrichtung des oben genannten Typs, bei denen jeder Hypervisor eine Vielzahl von Gast-Betriebssystemen oder virtuelle Gast-Maschinen (Gast-VMs) freigeben kann, damit diese auf einer Host-Datenverarbeitungsplattform gleichzeitig betrieben werden können.
  • Beschreibung des Standes der Technik:
  • Bestimmte Virtualisierungs-Verwaltungsprodukte halten die Verfügbarkeit von Gast-VMs vor, indem ein HA-Cluster-Produkt in ihren Produktangeboten enthalten oder eingebettet ist. Diese Produkte funktionieren üblicherweise, indem sie aus zugrundeliegenden Hypervisors, die jeweils auf einer physischen Maschine betrieben werden, ein Cluster mit hoher Verfügbarkeit bilden. Ein Austausch von Aktivitätssignalen (heartbeating) findet dann zwischen den Hypervisors statt. Wenn bei einem Mitglied des Clusters kein Aktivitätssignal mehr auftritt, entweder infolge eines Hypervisor-Fehlers oder eines Fehlers eines physischen Servers, startet die eingebettete Technologie der HA-Clusterbildung die Gast-VMs auf alternativen Servern, wodurch ihre Verfügbarkeit aufrechterhalten wird.
  • Dieser Ansatz weist verschiedene Einschränkungen auf. Er erkennt z.B. keinen Fehler der eigentlichen Gast-VM-Systeme und führt keine Wiederherstellung nach einem Totalabsturz der Gast-Betriebssysteme aus. Bei einem derartigen Ansatz wird lediglich der Fehler des zugrundeliegenden Hypervisor und seines physischen Servers erkannt und eine Wiederherstellung ausgeführt. Es wird weder der Fehler von Anwendungen erkannt, die in den Gast-VMs ausgeführt werden, noch eine Wiederherstellung ausgeführt. Dadurch können Anwendungen möglicherweise ausfallen, während sie in der Gast-VM ausgeführt werden, ohne dass der Hypervisor-gestützte Cluster irgendeine Notiz davon nimmt. In diesem Fall ist der Gast noch aktiv, aber er erbringt keine Dienstleistung. Das stellt eine wesentliche Einschränkung der erreichbaren Verfügbarkeit von virtualisierten Systemen dar, da Fehler häufig infolge von Problemen des Betriebssystems auftreten und Anwendungen abstürzen und sich aufhängen. Darüber hinaus erfordern komplexere kritische Geschäftsanwendungen, dass Operationen auf der Anwendungsebene Nutzen aus einer bestimmten integrierten Technologie zur Daten-Replikation ziehen. Wenn die Gast-VM nicht einsehbar ist, ist es nicht möglich, diese Operationen aufzurufen und aus den integrierten Funktionen Nutzen zu ziehen.
  • Außerdem müssen Benutzer, die aus beiden HA-Funktionen, auf der Hypervisor-Ebene und in der Gast-VM Nutzen, ziehen möchten, üblicherweise zu Experten in Bezug auf HA-Manager auf der Hypervisor-Ebene und der Anwendungsebene werden und diese installieren. Gleichzeitig müssen diese Benutzer sicherstellen, dass Strategien, die eine Beziehung zwischen Ressourcen ausdrücken und gewährleisten, dass z.B. Dateisysteme dort eingerichtet werden, wo die Anwendung gestartet wird, oder dass der Empfänger eines Daten-Replikationspaars auf einem anderen physischen System als der Absender gestartet wird, durch die HA-Systeme sowohl der Hypervisor-Ebene als auch der Anwendungsebene vorgehalten werden. Dieser Komplexitätsgrad der Verwaltung übersteigt jedoch im Allgemeinen die Möglichkeiten der meisten Benutzer.
  • Das bekannte Dokument US 2008 / 0 307 259 A1 beschreibt beispielsweise ein Verfahren und Systeme zur Wiederherstellung nach einem Fehler in einer virtuellen Maschine. Dabei werden gemäß dem Verfahren in einem ersten physikalischen Host-System, auf dem die virtuelle Maschine ausgeführt wird, einer oder mehrerer Parameter überwacht, die das Ausführen der virtuellen Maschine beschreiben. Dabei sollen alle Parameter in einem akzeptablen Bereich sein.
  • Das Dokument EP 1 686 473 A1 beschreibt eine Verwaltung von physischen Pfaden zwischen Server-Systemen und Speichersystemen und Routing-Informationen zwischen virtuellen Maschinen und virtuellen Speichersystemen.
  • Das Dokument US 2013/0 007 506 A1 beschreibt Techniken für eine Replikation von virtuellen Maschinen in einer Cluster-Umgebung. Dabei kann eine Replikationsanforderung für eine erste virtuelle Maschine empfangen werden. Ein Cluster-Broker ist konfiguriert, um anstelle eines Cluster von Wiederherstellungsknoten auf die Replikationsanforderung zu reagieren.
  • Dem im Folgenden vorgeschlagenen Konzept liegt deshalb unter anderem die Aufgabe zu Grunde, bei Replikationen von virtuellen Maschinen auch auf Fehler der eigentlichen Gast-VM-Systeme reagieren zu können und eine Wiederherstellung nach einem Totalabsturz der Gast-Betriebssysteme ausführen zu können.
  • Zusammenfassung
  • Diese Aufgabe wird durch die Gegenstände der unabhängigen Ansprüche - insbesondere durch Computer-Programm-Produkte, entsprechende Vorrichtungen und entsprechende Verfahren - gelöst. Weitere Ausgestaltungen ergeben sich aus den jeweils abhängigen Ansprüchen.
  • Figurenliste
    • Die 1A und 1B sind Blockschaltpläne, die jeweils ein HA-Cluster aus Knoten darstellen, bei denen eine veranschaulichende Ausführungsform der Erfindung umgesetzt ist;
    • 2 ist eine schematische Ansicht, die einen Knoten für ein Knoten-Cluster von 1A oder 1 B veranschaulicht;
    • 3 ist ein Ablaufplan, der Schritte eines Verfahrens zeigt, das eine Ausführungsform der Erfindung aufweist; und
    • 4 ist ein Blockschaltplan, der ein Computer- oder Datenverarbeitungssystem zeigt, das als eine oder mehrere der Komponenten einer Ausführungsform der Erfindung verwendet werden kann.
  • Genaue Beschreibung
  • Einem Fachmann ist klar, dass Aspekte der vorliegenden Erfindung als System, Verfahren oder Computerprogrammprodukt verkörpert werden können. Dementsprechend können Aspekte der vorliegenden Erfindung die Form einer reinen Hardware-Ausführungsform, einer reinen Software-Ausführungsform (darunter Firmware, residente Software, Mikrocode usw.) oder einer Ausführungsform, die Software- und Hardware-Aspekte kombiniert, annehmen, die hier alle als „Schaltung“, „Modul“ oder „System“ bezeichnet werden können. Des Weiteren können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien verkörpert wird, die computerlesbaren Programmcode aufweisen, der darin ausgeführt wird.
  • Jede Kombination aus einem oder mehreren computerlesbaren Medien kann genutzt werden. Bei dem computerlesbaren Medium kann es sich um ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium handeln. Ein computerlesbares Speichermedium kann z.B. ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, -vorrichtung oder -einheit oder jede geeignete Kombination des Vorhergehenden sein, ist jedoch nicht darauf beschränkt. Zu spezifischeren Beispielen (eine nicht erschöpfende Liste) des computerlesbaren Speichermediums würde Folgendes gehören: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, ein Festplattenlaufwerk, ein Direktzugriffsspeicher (RAM), ein Festwertspeicher (ROM), ein löschbarer programmierbarer Festwertspeicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compactdisk-Festwertspeicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder jede geeignete Kombination des Vorhergehenden. Im Kontext dieses Dokuments kann ein computerlesbares Speichermedium jedes materielle Medium sein, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung enthalten oder speichern kann.
  • Ein computerlesbares Signalmedium kann ein sich ausbreitendes Datensignal mit computerlesbarem Programmcode enthalten, der darin z.B. im Basisband oder als Teil einer Trägerwelle verkörpert wird. Ein derartiges sich ausbreitendes Signal kann jede von einer Vielfalt von Formen annehmen, zu denen elektromagnetische, optische Formen oder jede geeignete Kombination hiervon gehören, jedoch nicht darauf beschränkt sind. Ein computerlesbares Signalmedium kann jedes computerlesbare Medium sein, das kein computerlesbares Speichermedium ist und ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung übertragen, verbreiten oder transportieren kann.
  • Programmcode, der auf einem computerlesbaren Medium verkörpert ist, kann unter Verwendung jedes geeigneten Mediums übertragen werden, darunter drahtlose, leitungsgestützte, Lichtwellenleiterkabel-, Hochfrequenz- (HF-) Medien usw. oder jede geeignete Kombination aus dem Vorhergehenden, ohne darauf beschränkt zu sein.
  • Computerprogrammcode zum Ausführen von Operationen für Aspekte der vorliegenden Erfindung kann in jeder Kombination aus einer oder mehreren Programmiersprachen geschrieben sein, darunter eine objektorientierte Programmiersprache wie Java, Smalltalk, C++ oder dergleichen und herkömmliche prozedurale Programmiersprachen wie etwa die Programmiersprache „C“ oder ähnliche Programmiersprachen. Der Programmcode kann nur auf dem Computer eines Benutzers, teilweise auf dem Computer eines Benutzers, als ein eigenständiges Software-Paket, teilweise auf dem Computer eines Benutzers und teilweise auf einem fernen Computer oder nur auf dem fernen Computer oder Server ausgeführt werden. In dem zuletzt genannten Szenario kann der ferne Computer mit dem Computer des Benutzers durch jeden Netzwerktyp verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann zu einem externen Computer (z.B. über das Internet unter Verwendung eines Internet-Dienstanbieters) hergestellt werden.
  • Aspekte der vorliegenden Erfindung werden hier unter Bezugnahme auf Ablaufplan-Darstellungen und/oder Blockschaltbilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es ist klar, dass jeder Block der Ablaufplan-Darstellungen und/oder Blockschaltbilder und Kombinationen von Blöcken in den Ablaufplan-Darstellungen und/oder Blockschaltbildern durch Computerprogrammbefehle umgesetzt werden können. Diese Computerprogrammbefehle können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu bilden, so dass Befehle, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, Mittel zum Umsetzen der Funktionen/Wirkungen, die in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind, erzeugen.
  • Diese Computerprogrammbefehle können außerdem in einem computerlesbaren Medium gespeichert sein, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, so dass die in dem computerlesbaren Medium gespeicherten Befehle einen Herstellungsgegenstand produzieren, der Befehle enthält, die die Funktion/Wirkung umsetzen, die in dem Block/den Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind.
  • Computerprogrammbefehle können außerdem in einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder andere Einheiten geladen werden, um eine Reihe von Operationsschritten zu bewirken, die auf dem Computer, der anderen programmierbaren Datenverarbeitungsvorrichtung oder anderen Einheiten ausgeführt werden sollen, um einen durch einen Computer umgesetzten Prozess zu erzeugen, so dass die Befehle, die auf dem Computer oder der anderen programmierbaren Vorrichtung ausgeführt werden, Prozesse zum Umsetzen der Funktionen/Wirkungen, die in dem Block oder Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind, bereitstellen.
  • In 1A ist ein Computer-Cluster 100 mit hoher Verfügbarkeit (HA-Computer-Cluster) gezeigt, der mehrere Knoten aufweist, die durch die Knoten 102 und 104 beispielhaft dargestellt sind. Die Knoten 102 und 104 werden außerdem als Knoten 1 bzw. Knoten N bezeichnet, wobei es sich bei N um die Gesamtanzahl von Knoten handelt. N ist zweckmäßigerweise zwei, wobei der Cluster 100 nicht darauf beschränkt ist. Entsprechende Knoten werden miteinander verbunden, um den Cluster mit Hilfe eines Busses 106 oder dergleichen zu bilden.
  • Jeder der Knoten weist ein Computerserversystem auf, das wie nachfolgend in Verbindung mit 2 beschrieben gemäß einer Ausführungsform der Erfindung aufgebaut oder eingerichtet ist. Im Einzelnen enthält jeder Knoten einen Hypervisor und eine Hardware-Plattform zum Ausführen von Anwendungen und mehrerer Gast-Betriebssysteme, die hier als virtuelle Gast-Maschinen (Gast-VMs) bezeichnet werden.
  • In 1A ist des Weiteren ein Kabel 108 gezeigt, das vorgesehen ist, um alle Hypervisors der Knoten des Clusters 100 untereinander zu verbinden und um Aktivitäts-Impulse und Nachrichten zwischen ihnen zu befördern. Wenn eine Anwendung auf einem vorgegebenen Knoten ausgeführt wird und der andere Knoten eine Veränderung oder ein Ausbleiben der Aktivitätssignale erkennt, die von dem vorgegebenen Knoten gesendet werden, erkennt der andere Knoten, dass in dem Hypervisor oder in dem physischen Server des vorgegebenen Knotens ein Fehler aufgetreten ist. Der andere Knoten kann dann gestartet werden, um eine Ausfallsicherung (failover) auszuführen, damit die Anwendung auf einer Gast-VM ausgeführt wird, die durch den Hypervisor des anderen Knotens verwaltet wird.
  • Bei dem Cluster 100 handelt es sich um eine Peer-zu-Peer-Anordnung, da der Cluster nicht mit einer zentralen Verwaltungseinheit ausgerüstet ist, um eine Ausfallsicherung zwischen verschiedenen Knoten anzuweisen oder zu steuern. Eine Ausfallsicherung wird stattdessen durch die eigentlichen Knoten umgesetzt.
  • In 1B sind wiederum die Knoten 102 und 104 gezeigt, die mit Hilfe eines Busses 106 zum Bilden eines Clusters miteinander verbunden sind. Der Cluster von 1 B ist jedoch anstelle des Aktivitätssignal-Kabels 108 mit einer HA-Cluster-Verwaltungseinheit 110 ausgestattet. Wenn eine Anwendung auf einem vorgegebenen Knoten ausgeführt, werden Aktivitätssignale, die von dem vorgegebenen Knoten gesendet werden, durch die Verwaltungseinheit 110 überwacht. Beim Erfassen eines Fehlers, der durch die Aktivitätssignale erkennbar ist, könnte die Verwaltungseinheit 110 eine Ausfallsicherung ausführen, damit die Anwendung auf dem anderen Knoten ausgeführt wird.
  • In 2 ist ein Knoten 200 gezeigt, der als einer der Knoten 102 oder 104 von 1A und 1B verwendet werden kann. Der Knoten 200 weist eine Datenverarbeitungsplattform 102 mit einer Hardware-Komponente 204a und einem Betriebssystem 204b auf, die einen Hypervisor 206 enthält. Die Hardware-Komponente 204a und der Host 204b sind funktionsmäßig in der Lage, Gast-Betriebssysteme oder virtuelle Maschinen (VMs) 208 und 210 bereitzustellen, die durch den Hypervisor 206 verwaltet werden. Die Gast-VMs208 und 210 sind in der Lage, entsprechende Anwendungen 212 und 214 auszuführen und sind mit Verwaltungseinheiten 216 und 218 der Anwendungsverfügbarkeit ausgestattet, die diese Anwendungen steuern und überwachen.
  • 2 zeigt des Weiteren eine lokale HA-Cluster-Verwaltungseinheit 220, die einen Hypervisor 206 über einen bidirektionalen Datenübertragungspfad wie etwa eine Verbindung 220a verwaltet. Wie nachstehend genauer beschrieben ist die HA-Cluster-Verwaltungseinheit 220 so eingerichtet, dass sie Ausfallsicherungen ausführt, die den Knoten 200 betreffen. Wenn beispielsweise eine Anwendung auf einer Gast-VM ausgeführt wird und ein Hypervisor 206 die Cluster-Verwaltungseinheit 220 über einen erkannten Fehler benachrichtigt, könnte die HA-Cluster-Verwaltungseinheit den Hypervisor 206 anweisen, die Anwendung auf einer anderen Gast-VM des Knotens 200 oder auf einer Gast-VM eines anderen Knotens des zugehörigen Knoten-Clusters ausführen zu lassen. Durch Bereitstellen dieser Möglichkeit ist der Knoten-Cluster in der Lage, eine hohe Verfügbarkeit zu erreichen. Die entsprechende Operation der HA-Cluster-Verwaltungseinheit 220 und des Hypervisor 206 und die Interaktion zwischen ihnen zum Überwachen und Verwalten von Gast-VMs 208 und 210 und Anwendungen, die auf den Gast-VMs ausgeführt werden, werden nachfolgend genauer beschrieben.
  • Bei einer weiteren Ausführungsform der Erfindung könnte der HA-Cluster-Manager 220 benachbart zum Hypervisor 206 angeordnet oder in ihm enthalten sein. Bei dieser Ausführungsform würde jede dieser Komponenten in der oben beschriebenen Weise funktionieren oder betrieben werden.
  • Zweckmäßigerweise weist die HA-Cluster-Verwaltungseinheit 220 eine Komponente der Tivoli System Automation Multi-Platform (TSA-MP) der International Business Machines Corporation auf. Die Erfindung ist jedoch nicht darauf beschränkt. 2 zeigt außerdem, dass die HA-Cluster-Verwaltungseinheit 220 so geschaltet ist, dass sie mit lokalen Dateisystem-Komponenten 222 und 224 der Datenverarbeitungsplattform 202 über Verbindungen 220b bzw. 220c interagiert. Diese Dateisystem-Komponenten werden bei Datenübertragungen mit Gast-VMs 216 bzw. 218 verwendet wie nachstehend genauer beschrieben.
  • In 2 ist des Weiteren ein VM-Kanal oder interner Kanal 226 gezeigt, der zwischen dem Hypervisor 206 und einer Anwendungsverfügbarkeits-Verwaltungseinheit 216 der Gast-VM 208 verläuft. Ein ähnlicher interner Kanal 228 verläuft zwischen dem Hypervisor 206 und einer Anwendungsverfügbarkeits-Verwaltungseinheit 218 der Gast-VM 210. Die internen Kanäle 226 und 228 sind jeweils bidirektional und sind somit in der Lage, Nachrichten zwischen dem Hypervisor 206 und ihren entsprechenden Gast-VMs 208 und 210 zu befördern. 2 zeigt des Weiteren einen Kanal 226, der weiter zum Dateisystem 22 verläuft, und einen Kanal 228, der weiter zum Dateisystem 224 verläuft. Die internen Kanäle 226 und 228 können unter Verwendung eines Hypervisor einer Kernel-gestützten virtuellen Maschine (KVM) umgesetzt sein, obwohl die Erfindung keinesfalls darauf beschränkt ist.
  • Der interne Kanal 226 weist einen im Voraus spezifizierten Pfad zum Streamen von Daten in zwei Richtungen zwischen dem Hypervisor 206 und der Anwendungsverfügbarkeits-Verwaltungseinheit 208 der Gast-VM 208 auf. Der interne Kanal 226 enthält einen Speicherpuffer mit einer im Voraus spezifizierten Kapazität an seinen beiden Enden, um Daten zu streamen oder über den Kanal gestreamte Daten zu empfangen. Lesenachrichten und Schreibnachrichten könnten unter Verwendung einer API gesendet werden, die Teile zur Übertragung über den internen Kanal erzeugt und verwendet. Anschlüsse könnten bei dem Hypervisor und auch bei der Anwendungsverfügbarkeits-Verwaltungseinheit 208 erzeugt werden.
  • Der interne Kanal 228 ist dem internen Kanal 226 ähnlich oder mit diesem identisch, mit der Ausnahme, dass der interne Kanal 228 zwischen dem Hypervisor 206 und der Anwendungsverfügbarkeits-Verwaltungseinheit 218 verläuft.
  • Durch Bereitstellen von Kanälen 226 und 228 in der oben beschriebenen Weise und gemäß Ausführungsformen der Erfindung erhält die HA-Cluster-Verwaltungseinheit 220, die über den Hypervisor 206 wirkt, eine bessere Möglichkeit, Anwendungen zu verwalten und zu steuern, die auf Gast-VMs 208 und 210 ausgeführt werden. Der Hypervisor 206 ist beispielsweise in der Lage, Befehle über den internen Kanal 226 zum Kern der Gast-VM 208 und insbesondere zu ihrer Anwendungsverfügbarkeits-Verwaltungseinheit 216 zu senden. Zu diesen Befehlen gehören Start-, Stopp- und Statusabfragebefehle, die eine Anwendung 212 betreffen. In Reaktion auf diese Befehle werden Antwortcodes von der Verwaltungseinheit 216 der Gast-VM 208 zurück zum Hypervisor 206 gesendet. Dadurch ist der Hypervisor 206 in der Lage, den Betrieb einer Anwendung 212 direkt zu steuern, wenn diese Anwendung auf der Gast-VM 208 ausgeführt wird.
  • Darüber hinaus kann der Hypervisor 206 Nachrichten über den internen Kanal 226 zur Verfügbarkeits-Verwaltungseinheit 216 senden, die den Status oder die Verfügbarkeit einer Anwendung 212 abfragt, die auf der Gast-VM 208 ausgeführt wird. Statusinformationen, die durch die Verfügbarkeits-Verwaltungseinheit 216 über den internen Kanal 226 bereitgestellt werden, könnten Fehlernachrichten, die durch die Verwaltungseinheit 216 protokolliert werden, Leistungsinformationen für die Anwendung 212 und Warnnachrichten wie etwa eine eingeschränkte Speicherkapazität enthalten. Statusinformationen könnten des Weiteren eine Benachrichtigung enthalten, dass ein Schwellenwert überschritten wurde, der eine im Voraus spezifizierte Regel betrifft, die der Anwendung 212 zugehörig ist. Durch Überwachen der Antworten auf diese Anfragen und andere Nachrichten, die von der Anwendungsverfügbarkeits-Verwaltungseinheit 216 der Gast-VM 208 über den internen Kanal 226 gesendet werden, können Fehler erkannt werden, die in der ausgeführten Anwendung 212 oder in der Gast-VM 208 aufgetreten sind. Beim Erkennen eines derartigen Fehlers können Korrekturmaßnahmen ergriffen werden. Somit können durch Bereitstellen der Anwendungsverfügbarkeits-Verwaltungseinheit 216 zusammen mit dem internen Kanal in der beschriebenen Weise Anwendungen in der VM 208 verwaltet und überwacht werden.
  • Die HA-Cluster-Verwaltungseinheit 220 ist über die Verbindung 220a oder dergleichen in der Lage, Statusinformationen von dem Hypervisor 206 in Bezug auf die Anwendungsverfügbarkeit und Hardware-Einheiten in den beiden Gast-VMs 208 und 210 zu erhalten. Das schließt die Verfügbarkeits-Verwaltungseinheiten 216 und 218 ein. In Reaktion auf das Sammeln von derartigen Statusinformationen ist die Cluster-Verwaltungseinheit 220 in der Lage, auf der Grundlage von im Voraus spezifizierten Regeln Entscheidungen zum Ausführen von Befehlen für den Hypervisor 206 zu treffen. Derartige Befehle könnten durch das Ausführen von Skripts oder dergleichen abgearbeitet werden. Wenn demzufolge wie oben beschrieben in einer ausgeführten Anwendung 212 ein Fehler erkannt wird, könnte die HA-Cluster-Verwaltungseinheit 220 den Hypervisor 206 anweisen, eine Anwendung 212 zu starten, anzuhalten und anschließend in derselben Gast-VM 208 neu zu starten. Diese Aktion könnte in einfacher Weise ausgeführt werden, indem eine geeignete Folge von Befehlen von dem Hypervisor 206 über den internen Kanal 226 zu der VM 208 gesendet wird.
  • Eine alternative Korrekturmaßnahme bestünde darin, eine Anwendung 212 anzuhalten und dann neu zu starten, damit sie auf einer anderen Gast-VM des Knotens 200 z.B. einer Gast-VM 210 ausgeführt wird. Als weitere Korrekturmaßnahme könnte eine Anwendung 212 angehalten und dann neu gestartet werden, damit sie auf einer Gast-VM ausgeführt wird, die sich in einem Knoten des Knoten-Clusters 100 befindet, der von dem Knoten 200 verschieden ist. Bei der Gast-VM könnte es sich entweder um die Gast-VM 208 oder eine andere Gast-VM handeln. Einem Fachmann ist klar, dass die hier verwendeten Maßnahmen des oben genannten Typs als „Ausfallsicherung“ (failover) und „Ausführen einer Ausfallsicherung“ bezeichnet werden.
  • Es ist klar, dass die obige Beschreibung der Funktionen und Operationen der Gast-VM 208, der Anwendung 212, der Verwaltungseinheit 216 und des internen Kanals 226 außerdem für die Gast-VM 210, die Anwendung 214, die Verwaltungseinheit 218 bzw. den internen Kanal 228 gelten.
  • Wenn eine Anwendung auf einer Gast-VM des in 2 gezeigten Typs ausgeführt wird, müssen Daten, die erzeugt werden und einer derartigen Aktivität zugehörig sind, verfolgt werden. Das ist erforderlich, um sicherzustellen, dass diese Daten in dem Fall zur Verfügung stehen, wenn wie oben beschrieben eine Ausfallsicherung (failover) in einem anderen Knoten oder in einer anderen Gast-VM desselben Knotens ausgeführt wird. Um das zu erreichen, ist eine Replikations-Software über alle Knoten des oben beschriebenen Knoten-Clusters 100 verteilt. Wie durch 2 gezeigt sind die Gast-VMs 208 und 210 mit E/A-Emulatoren 230 bzw. 232 ausgestattet. Jeder dieser Emulatoren ermöglicht, dass Daten durch seine entsprechende Gast-VM empfangen oder von dieser gesendet werden. Eine E/A-Einheit-Anforderungskomponente 234 ist dem Emulator 230 zugehörig und mit dem internen Kanal 226 verbunden. Die Komponente 234 spricht auf Befehle an, die über den internen Kanals 226 gesendet werden, um zu bewirken, dass Daten wahlweise zwischen der Gast-VM 208 und dem Dateisystem 222 der Datenverarbeitungsplattform 202 ausgetauscht werden. Eine ähnliche E/A-Einheiten-Anforderungskomponente 236 ist dem E/A-Emulator 232 zugehörig und mit dem internen Kanal 228 verbunden.
  • Wenn eine Anwendung 212 auf einer Gast-VM 208 ausgeführt wird, funktioniert eine Komponente wie z.B. die Komponente 234 als Replikations-Absender. Das heißt, sie bewirkt, dass eingehende Daten und andere Daten, die der ausgeführten Anwendung 212 zugehörig sind, repliziert und beispielsweise durch das Dateisystem 222 oder dergleichen gespeichert werden. Während dieser Zeit funktioniert eine Komponente wie z.B. die Komponente 236 der Gast-VM 210 als Replikations-Empfänger. Der Replikations-Empfänger ist so eingerichtet, dass er Daten, die durch den Replikations-Absender repliziert wurden, empfängt oder diese verfolgt. Wenn dann wie oben beschrieben ein Fehler auftritt, kann die Anwendung 212 auf der Gast-VM 208 angehalten und auf der Gast-VM 210 gestartet werden. Wenn das eintritt, wird ein Befehl von der Verwaltungseinheit 220 über den internen Kanal 228 zur Komponente 236 gesendet, wobei der Befehl die Komponente 236 anweist, die Funktion des Replikations-Absenders anstelle des Replikations-Empfängers auszuführen. Die Komponente 234 wird in ähnlicher Weise angewiesen, die Funktion des Replikations-Empfängers auszuführen. Daten, die durch den Replikations-Absender 236 repliziert wurden, können dann zur Speicherung geleitet werden. Alternativ werden im Fall des Enqueue-Replikationsdienstes (ENQREP) der SAP AG die replizierten Daten im Speicher gehalten. Wenn der SAP-Enqueue-Dienst (ENQ) endet und auf dem Gast des ENQREP neu gestartet wird, ruft er seine Daten durch einen Transfer von Speicher zu Speicher ab, der schneller als jeder Speicherzugriff ist.
  • Durch Bereitstellen der VM oder des internen Kanals in der oben beschriebenen Konfiguration von 2 wird bei Ausführungsformen der Erfindung für deren Benutzer ein weiterer wichtiger Vorteil bereitgestellt. Bei der HA-Cluster-Verwaltungseinheit 220 kann es sich insbesondere um eine Komponente eines Produkts zur Verwaltung eines Clusters mit hoher Verfügbarkeit handeln, der möglicherwiese recht komplex ist. Ein derartiges Produkt kann z.B. komplexe Verwaltungs-Skripts und Ressourcen-Konfigurationen enthalten. Bei der Ausführungsform von 2 sind jedoch alle derartigen Skripts und Konfigurationen in dem Hypervisor 206 enthalten wie durch die Komponente 238 dargestellt. Folglich müssen diejenigen, die die Ausführungsform von 2 verwenden, damit ihre Anwendungen auf Gast-VMs 208 und 210 oder dergleichen ausgeführt werden können, nicht alle Skripts und Ressourcen des Produkts zum Verwalten des Clusters kennenlernen oder mit diesen vertraut werden.
  • In 3 sind Schritte eines Verfahrens gezeigt, das eine Ausführungsform der Erfindung aufweist. Im Schritt 302 wird ein interner bidirektionaler Kanal zwischen einem Hypervisor einer Datenverarbeitungsplattform und jeder der mehreren Gast-VMs eingerichtet, wobei der Hypervisor und die Gast-VMs in einem Knoten eines Knoten-Clusters enthalten sind. Im Schritt 304 werden Nachrichten über den internen Kanal zwischen dem Hypervisor und einer der Gast-VMs gesendet, um eine Anwendung zu verwalten, die auf der Gast-VM ausgeführt wird. Der Schritt 306 beschreibt ein Überwachen von Nachrichten, die über den internen Kanal gesendet werden, um einen Fehler der Anwendung zu erkennen, die in der Gast-VM ausgeführt wird.
  • In Reaktion auf das Erkennen eines Fehlers wird eine Korrekturmaßnahme ergriffen, die Senden von Befehlen über den internen Kanal vom Hypervisor zu der Gast-VM beinhaltet, wobei die Befehle die Anwendung, die in der Gast-VM ausgeführt, anhalten und anschließend neu starten. Wenn gemäß dem Entscheidungsschritt 310 die Korrekturmaßnahme vom Schritt 308 erfolgreich ist, so dass der erkannte Fehler beseitigt wird, endet das Verfahren von 3. Andernfalls geht das Verfahren zu Schritt 312.
  • Im Schritt 312 wird eine von mehreren weiteren Maßnahmen ausgewählt. Jede von diesen enthält anfangs Anhalten der Anwendung, die auf der Gast-VM ausgeführt wird, was zweckmäßig dadurch erfolgt, dass ein Stopp-Befehl von dem Hypervisor über den internen Kanal zu der Gast-VM gesendet wird. Zu weiteren Maßnahmen gehören dann Ausführen der Anwendung in einer anderen Gast-VM desselben Knotens; Ausführen der Anwendung und der Gast-VM in einem anderen Knoten des Clusters; bzw. Ausführen der Anwendung auf einer anderen Gast-VM eines anderen Knotens. Nachdem eine dieser Maßnahmen ergriffen wurde, endet das Verfahren von 3.
  • 4 ist ein Blockschaltplan, der ein Datenverarbeitungssystem gemäß einer veranschaulichenden Ausführungsform zeigt. Bei dem Datenverarbeitungssystem 400 handelt es sich beispielsweise um einen Computer, der verwendet werden kann, um eine oder mehrere Komponenten von Ausführungsformen der Erfindung umzusetzen, und in dem sich durch einen Computer nutzbarer Programmcode oder Befehle, die die betreffenden Prozesse umsetzen, für die veranschaulichenden Ausführungsformen befinden. Bei diesem veranschaulichenden Beispiel enthält das Datenverarbeitungssystem 400 eine Datenübertragungsstruktur 402, die einen Austausch von Daten zwischen einer Prozessoreinheit 404, einem Speicher 406, einer dauerhaften Speichereinheit 408, einer Datenübertragungseinheit 410, einer Eingabe/Ausgabe- (E/A-) Einheit 412 und einer Anzeige 414 bereitstellt.
  • Die Prozessoreinheit 404 dient zum Ausführen von Befehlen der Software, die möglicherweise in den Speicher 406 geladen wurde. Bei der Prozessoreinheit 404 kann es sich in Abhängigkeit von der bestimmten Umsetzung um eine Gruppe aus einem oder mehreren Prozessoren oder um einen Mehrprozessor-Kern handeln. Die Prozessoreinheit 404 kann des Weiteren unter Verwendung eines oder mehrerer heterogener Prozessorsysteme umgesetzt sein, bei denen ein Haupt-Prozessor mit sekundären Prozessoren auf einem einzigen Chip vorhanden ist. Als weiteres veranschaulichendes Beispiel kann es sich bei der Prozessoreinheit 404 um ein symmetrisches Mehrprozessorsystem handeln, das mehrere Prozessoren desselben Typs enthält.
  • Bei dem Speicher 406 und der dauerhaften Speichereinheit 408 handelt es sich um Beispiele der Speichereinheiten 416. Eine Speichereinheit ist jeder Teil der Hardware, der in der Lage ist, Informationen wie z.B. Daten, Programmcode in funktionsfähiger Form und/oder andere geeignete Informationen entweder vorübergehend und/oder dauerhaft zu speichern, ohne darauf beschränkt zu sein. Bei dem Speicher 406 kann es sich bei diesen Beispielen möglicherweise um einen Direktzugriffsspeicher oder jede andere geeignete flüchtige oder nichtflüchtige Speichereinheit handeln. Die dauerhafte Speichereinheit 408 kann in Abhängigkeit von der bestimmten Umsetzung zahlreiche Formen annehmen. Die dauerhafte Speichereinheit 408 kann z.B. eine oder mehrere Komponenten oder Einheiten enthalten. Bei der dauerhaften Speichereinheit 408 kann es sich beispielsweise um ein Festplattenlaufwerk, einen Flash-Speicher, eine wiederbeschreibbare optische Platte, ein wiederbeschreibbares Magnetband oder eine bestimmte Kombination der Vorhergehenden handeln. Bei den Medien, die von der dauerhaften Speichereinheit 408 verwendet werden, kann es sich um Wechselmedien handeln. Für die dauerhafte Speichereinheit 408 kann beispielsweise ein Wechsel-Festplattenlaufwerk verwendet werden.
  • Die Datenübertragungseinheit 410 sorgt bei diesen Beispielen für den Austausch von Daten mit anderen Datenverarbeitungssystemen oder -einheiten. Bei diesen Beispielen handelt es sich bei der Datenübertragungseinheit 410 um eine Netzwerk-Schnittstellenkarte. Die Datenübertragungseinheit 410 kann Datenübertragungen durch die Verwendung von physischen und/oder drahtlosen Datenübertragungsverbindungen bereitstellen.
  • Die Eingabe/Ausgabe-Einheit 412 ermöglicht ein Eingeben und Ausgeben von Daten in Bezug auf andere Einheiten, die möglicherweise mit dem Datenverarbeitungssystem 400 verbunden sind. Die Eingabe/Ausgabe-Einheit 412 kann z.B. eine Verbindung zur Benutzereingabe über eine Tastatur, eine Maus und/oder ein andere geeignete Eingabeeinheit bereitstellen. Die Eingabe/Ausgabe-Einheit 412 kann des Weiteren Ausgaben zu einem Drucker senden. Die Anzeige 414 stellt einen Mechanismus bereit, um einem Benutzer Informationen anzuzeigen.
  • Befehle für das Betriebssystem, Anwendungen und/oder Programme können sich in Speichereinheiten 416 befinden, die über die Datenübertragungsstruktur 402 mit der Prozessoreinheit 404 Daten austauschen können. Bei diesen veranschaulichenden Beispielen befinden sich die Befehle in funktionsfähiger Form in der dauerhaften Speichereinheit 408. Diese Befehle können in den Speicher 406 zum Ausführen durch die Prozessoreinheit 404 geladen werden. Die Prozesse der verschiedenen Ausführungsformen können durch die Prozessoreinheit 404 unter Verwendung von mittels eines Computers umgesetzten Befehlen ausgeführt werden, die sich in einem Speicher wie z.B. dem Speicher 406 befinden.
  • Diese Befehle werden als Programmcode, durch einen Computer nutzbarer Programmcode oder computerlesbarer Programmcode bezeichnet, der durch einen Prozessor in der Prozessoreinheit 404 gelesen und ausgeführt werden kann. Der Programmcode kann in den verschiedenen Ausführungsformen in verschiedenen physischen oder computerlesbaren Speichermedien wie z.B. dem Speicher 406 oder der Speichereinheit 408 verkörpert sein.
  • Programmcode 418 befindet sich in einer funktionsfähigen Form auf computerlesbaren Medien 420, bei denen es sich wahlweise um Wechselmedien handelt, und kann zum Ausführen durch die Prozessoreinheit 404 in das Datenverarbeitungssystem 400 geladen oder zu diesem übertragen werden. Programmcode 418 und computerlesbare Medien 420 bilden ein Computerprogrammprodukt 422. Bei einem Beispiel kann es sich bei computerlesbaren Medien 420 um computerlesbare Speichermedien 424 oder computerlesbare Signalmedien 426 handeln. Zu computerlesbaren Speichermedien 424 können z.B. eine optische oder magnetische Platte gehören, die in ein Laufwerk oder eine andere Einheit eingesetzt oder darin angeordnet werden kann, das bzw. die Teil einer dauerhaften Speichereinheit 408 ist, zum Übertragen zu einer Speichereinheit wie z.B. ein Festplattenlaufwerk, das Teil der dauerhaften Speichereinheit 408 ist. Computerlesbare Speichermedien 424 können außerdem die Form einer dauerhaften Speichereinheit annehmen wie z.B. ein Festplattenlaufwerk, ein USB-Laufwerk oder ein Flash-Speicher, die mit dem Datenverarbeitungssystem 400 verbunden ist. In einigen Fällen können computerlesbare Speichermedien 424 möglicherweise nicht aus dem Datenverarbeitungssystem 400 entnommen werden.
  • Alternativ kann Programmcode 418 unter Verwendung von computerlesbaren Signalmedien 426 zum Datenverarbeitungssystem 400 übertragen werden. Bei computerlesbaren Signalmedien 426 kann es sich beispielsweise um ein sich ausbreitendes Datensignal handeln, das Programmcode 418 enthält. Bei computerlesbaren Signalmedien 426 kann es sich z.B. um ein elektromagnetisches Signal, ein optisches Signal und/oder jeden anderen geeigneten Signaltyp handeln. Diese Signale können über Datenübertragungsverbindungen wie z.B. drahtlose Datenübertragungsverbindungen, ein Lichtwellenleiterkabel, ein Koaxialkabel, eine Leitung und/oder jeden anderen geeigneten Typ der Datenübertragungsverbindung übertragen werden. Mit anderen Worten, die Datenübertragungsverbindung und/oder die Verbindung bei den veranschaulichenden Beispielen können physisch oder drahtlos sein. Die computerlesbaren Medien können außerdem die Form von nichtmateriellen Medien annehmen wie z.B. Datenübertragungsverbindungen oder Drahtlos-Übertragungen, die Programmcode enthalten.
  • Bei einigen veranschaulichenden Ausführungsformen kann Programmcode 418 über ein Netzwerk zur dauerhaften Speichereinheit 408 von einer anderen Einheit oder einem anderen Datenverarbeitungssystem mittels computerlesbaren Signalmedien 426 für eine Verwendung im Datenverarbeitungssystem 400 heruntergeladen werden. Programmcode, der in computerlesbaren Speichermedien in einem Server-Datenverarbeitungssystem gespeichert ist, kann beispielsweise über ein Netzwerk von dem Server zum Datenverarbeitungssystem 400 heruntergeladen werden. Bei dem Datenverarbeitungssystem, das Programmcode 418 bereitstellt, kann es sich um einen Server-Computer, einen Client-Computer oder eine andere Einheit handeln, die in der Lage ist, Programmcode 418 zu speichern oder zu übertragen.
  • Die verschiedenen Komponenten, die für das Datenverarbeitungssystem 400 dargestellt wurden, sollen keine physischen und architektonischen Einschränkungen an der Art und Weise darstellen, wie die verschiedenen Ausführungsformen umgesetzt werden können. Die verschiedenen veranschaulichenden Ausführungsformen können in einem Datenverarbeitungssystem umgesetzt werden, das Komponenten zusätzlich zu und/oder anstelle von jenen Komponenten enthält, die für das Datenverarbeitungssystem 400 dargestellt wurden. Weitere Komponenten, die in 4 gezeigt sind, können von den gezeigten veranschaulichenden Beispielen abweichen. Die verschiedenen Ausführungsformen können unter Verwendung von jeder Hardware-Einheit oder jedem Hardware-System umgesetzt werden, die in der Lage sind, Programmcode auszuführen. Das Datenverarbeitungssystem 400 kann beispielsweise organische Komponenten enthalten, die mit anorganischen Komponenten integriert sind, und/oder kann ausschließlich organische Komponenten mit Ausnahme eines menschlichen Wesens aufweisen. Eine Speichereinheit kann z.B. aus organischen Halbleitern bestehen.
  • Weiterhin beispielhaft kann es sich bei einer Speichereinheit im Datenverarbeitungssystem 400 um jede Hardware-Vorrichtung handeln, die Daten speichern kann. Der Speicher 406, die dauerhafte Speichereinheit 408 und die computerlesbaren Medien 420 sind Beispiele für Speichereinheiten in einer materiellen Form.
  • Bei einem weiteren Beispiel kann ein Bussystem zum Umsetzen der Datenübertragungsstruktur 402 verwendet werden und kann einen oder mehrere Busse aufweisen wie z.B. einen Systembus oder einen Eingabe/Ausgabe-Bus. Das Bussystem kann natürlich unter Verwendung eines beliebigen geeigneten Architekturtyps umgesetzt werden, der eine Übertragung von Daten zwischen unterschiedlichen Komponenten oder Einheiten ermöglicht, die mit dem Systembus verbunden sind. Außerdem kann eine Datenübertragungseinheit eine oder mehrere Einheiten enthalten, die zum Übertragen und Empfangen von Daten verwendet werden wie z.B. ein Modem oder ein Netzwerkadapter. Des Weiteren kann es sich bei einem Speicher z.B. um den Speicher 406 oder einen Cache-Speicher handeln, der in einem Schnittstellen- und Speichersteuereinheiten-Hub vorkommt, der in der Datenübertragungsstruktur 402 möglicherweise vorhanden ist.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung wurden für Zwecke der Erläuterung dargestellt, es ist jedoch nicht vorgesehen, dass sie erschöpfend sind oder auf die beschriebenen Ausführungsformen beschränken. Viele Modifikationen und Variationen werden für einen Fachmann ersichtlich sein, ohne vom Umfang und Erfindungsgedanken der beschriebenen Ausführungsform abzuweichen. Die hier verwendete Terminologie wurde ausgewählt, um die Grundgedanken der Ausführungsform, die praktische Anwendung oder technische Verbesserungen gegenüber vorhandenen Technologien am besten zu erläutern oder um andere Fachleute zu befähigen, die hier beschriebenen Ausführungsformen zu verstehen.
  • Der Ablaufplan und die Blockschaltbilder in den Figuren veranschaulichen die Architektur, Funktionalität und Operation von möglichen Umsetzungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedener Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in dem Ablaufplan oder in Blockschaltbildern ein Modul, Segment oder Abschnitt von Code repräsentieren, der einen oder mehrere ausführbare Befehle zum Umsetzen der spezifizierten logischen Funktion(en) aufweist. Es sollte außerdem angemerkt werden, dass bei einigen alternativen Umsetzungen die in dem Block angegebenen Funktionen möglicherweise nicht in der in den Figuren angegebenen Reihenfolge auftreten. Zum Beispiel können zwei Blöcke, die nacheinander gezeigt sind, tatsächlich im Wesentlichen gleichzeitig ausgeführt werden oder die Blöcke können gelegentlich in Abhängigkeit von der beteiligten Funktionalität in der umgekehrten Reihenfolge ausgeführt werden. Es wird außerdem angemerkt, dass jeder Block in den Blockschaltbildern und/oder Ablaufplan-Darstellungen und Kombinationen von Blöcken in den Blockschaltbildern und/oder der Ablaufplan-Darstellung durch Systeme, die auf spezieller Hardware beruhen, die die spezifizierten Funktionen oder Wirkungen ausführen, oder Kombinationen aus spezieller Hardware und Computerbefehlen umgesetzt werden können.

Claims (31)

  1. Ein Computer-Programm-Produkt, in Verbindung mit einem ersten Knoten, der einen Hypervisor und eine oder mehrere virtuelle Gast-Maschinen (Gast-VMs) aufweist, wobei jede Gast-VM so angepasst ist, dass auf ihr eine oder mehrere Anwendungen ausführbar sind, und wobei der erste Knoten mit einem oder mehreren Knoten verbindbar ist, um ein Cluster mit hoher Verfügbarkeit (HA-Cluster) zu bilden, wobei der erste Knoten angepasst ist, um einen lokalen Hochverfügbarkeits-Manager auszuführen, der extern zu jeder virtuellen Gast-Maschine ist, wobei das Computer-Programm-Produkt in einem nicht-flüchtigen, aufzeichnungsfähigen Speichermedium ausführbar ist, aufweisend: - Anweisungen zum Einrichten eines internen bidirektionalen Datenübertragungskanals zwischen jeder Gast-VM und dem Hypervisor des ersten Knotens; - Anweisungen zum Senden von Nachrichten, die Befehle und Antworten auf Befehle enthalten, über den internen Kanal zwischen dem Hypervisor und einer vorgegebenen Gast-VM wie von dem lokalen Hochverfügbarkeits-Manager bestimmt, wobei entsprechende Befehle gesendet werden, um eine spezifizierte Anwendung zu steuern, die auf der vorgegebenen Gast-VM ausgeführt wird; - Anweisungen für ein selektives Überwachen der Nachrichten, um ein Auftreten einer Fehlerbedingung zu erkennen, die der spezifizierten Anwendung zugehörig ist, die in der vorgegebenen Gast-VM ausgeführt wird; und - Anweisungen, in Reaktion auf das Erkennen einer Fehlerbedingung, für ein Ergreifen einer Maßnahme zur Korrektur der Fehlerbedingung wie von dem lokalen Hochverfügbarkeits-Manager bestimmt, wobei die Maßnahme ein Senden von wenigstens einem Befehl über den internen Kanal von dem Hypervisor zu der vorgegebenen Gast-VM aufweist, wobei Hinweise auf Gast-VM-Fehler in dem ersten Knoten an den lokalen Hochverfügbarkeits-Manager gesendet werden, der angepasst ist, um den Hypervisor des ersten Knotens zu steuern und mit einem Dateisystem, das der spezifizierten Anwendung zugeordnet ist, zu interagieren.
  2. Das Computer-Programm-Produkt nach Anspruch 1, wobei jeder der internen bidirektionalen Kanäle zwischen einer Verwaltungseinheit der Anwendungsverfügbarkeit, die einer der Gast-VMs zugehörig ist, und dem Hypervisor des ersten Knotens eingerichtet wird.
  3. Das Computer-Programm-Produkt nach Anspruch 1, wobei die Korrekturmaßnahme wahlweise entweder ein Senden einer Folge von Befehlen über den internen Kanal von dem Hypervisor zu der vorgegebenen Gast-VM wie von dem lokalen Hochverfügbarkeits-Manager bestimmt, um die spezifizierte Anwendung anzuhalten, die in der vorgegebenen Gast-VM ausgeführt wird, und ein anschließendes Neustarten der spezifizierten Anwendung in der vorgegebenen Gast-VM und in dem ersten Knoten oder ein Ausführen eine Ausfallsicherung (failover) der spezifizierten Anwendung an eine Gast-VM des ersten Knotens, die von der vorgegebenen Gast-VM verschieden ist, und Ausführen der spezifizierten Anwendung in der anderen Gast-VM aufweisen.
  4. Das Computer-Programm-Produkt nach Anspruch 3, wobei vor einer Ausfallsicherung der spezifizierten Anwendung auf die andere Gast-VM, eine spezifizierte Komponente der anderen Gast-VM als Replikations-Empfänger betrieben wird, und nach einer Ausfallsicherung der spezifizierten Anwendung auf die andere Gast-VM und in Reaktion auf ein Sendekommando durch den internen Kanal von dem Hypervisor an die andere Gast-VM, wird die spezifizierte Komponente der anderen Gast-VM als ein Replikations-Sender betrieben, wobei ein Replikations-Sender Daten repliziert, die durch die spezifizierte Anwendung für das ein Filesystem genieret wurden, und wobei der Replikations-Empfänger die Daten, die durch den Replikations-Sender vor dem Fehler repliziert wurden, kontrolliert.
  5. Das Computer-Programm-Produkt nach Anspruch 4, wobei nach einer Ausfallsicherung der spezifizierten Anwendung zu der anderen Gast-VM eintreffende Daten in die andere Gast-VM gelenkt werden und durch den Replikations-Absender zu einer Speichereinheit repliziert werden, die der anderen Gast-VM zugehörig ist, und eine spezifizierte Komponente der vorgegebenen Gast-VM als Replikations-Empfänger betrieben wird.
  6. Das Computer-Programm-Produkt nach Anspruch 1, wobei die Korrekturmaßnahme ein Ausführen einer Ausfallsicherung der spezifizierten Anwendung und der vorgegebenen Gast-VM an einen zweiten Knoten des HA-Clusters und ein Ausführen der spezifizierten Anwendung in der vorgegebenen Gast-VM in dem zweiten Knoten aufweisen.
  7. Das Computer-Programm-Produkt nach Anspruch 1, wobei die Korrekturmaßnahme ein Ausführen der Ausfallsicherung der spezifizierten Anwendung in einem zweiten Knoten in dem HA-Cluster und ein Ausführen der spezifizierten Anwendung in einer Gast-VM, die von der vorgegebenen Gast-VM verschieden ist, in dem zweiten Knoten aufweisen.
  8. Das Computer-Programm-Produkt nach Anspruch 1, wobei der HA-Cluster mit einem System zum Überwachen von Aktivitätssignalen ausgerüstet ist, die durch entsprechende Knoten des HA-Clusters erzeugt werden, wobei ein Fehler eines Knotens durch ein Ausbleiben der durch ihn erzeugten Aktivitätssignale erkennbar ist.
  9. Das Computer-Programm-Produkt nach Anspruch 1, wobei der lokale Hochverfügbarkeits-Manager angepasst ist, um eine Übertragung von Daten, die durch die spezifizierte Anwendung zwischen zwei oder mehreren Gast-VMs des ersten Knotens generiert werden, zu initiieren.
  10. Das Computer-Programm-Produkt nach Anspruch 1, wobei jeder Knoten des HA-Cluster einen entsprechenden lokalen Hochverfügbarkeits-Manager aufweist, der angepasst ist, einen entsprechenden Hypervisor eines entsprechenden Knotens des HA-Cluster zu steuern, und wobei jeder lokale Hochverfügbarkeits-Manager angepasst ist, um mit mindestens einer lokalen Dateisystem-Komponente eines entsprechenden Knotens zu interagieren, und um Daten, die durch eine entsprechende spezifizierte Anwendung zwischen zwei oder mehreren Gast-VMs des entsperrenden Knotens generiert wurden, zu übertragen.
  11. Ein Computer-Programm-Produkt, in Verbindung mit einem ersten Knoten, der einen Hypervisor und eine oder mehrere virtuelle Gast-Maschinen (Gast-VMs) aufweist, wobei jede Gast-VM so angepasst ist, dass auf ihr eine oder mehrere Anwendungen ausführbar sind, und wobei der erste Knoten mit einem oder mehreren Knoten verbindbar ist, um ein Cluster mit hoher Verfügbarkeit (HA-Cluster) zu bilden, wobei der erste Knoten angepasst ist, um einen Hochverfügbarkeits-Manager auszuführen, der extern zu jeder virtuellen Gast-Maschine ist, wobei das Computer-Programm-Produkt in einem nicht-flüchtigen, aufzeichnungsfähigen Speichermedium ausführbar ist, aufweisend: - Anweisungen zum Einrichten eines internen bidirektionalen Datenübertragungskanals zwischen jeder Gast-VM und dem Hypervisor des ersten Knotens; - Anweisungen zum Senden von Nachrichten, die Befehle und Antworten auf Befehle enthalten, über den internen Kanal zwischen dem Hypervisor und einer vorgegebenen Gast-VM wie von dem lokalen Hochverfügbarkeits-Manager bestimmt, wobei entsprechende Befehle gesendet werden, um eine spezifizierte Anwendung zu verwalten, die auf der vorgegebenen Gast-VM ausgeführt wird; - Anweisungen für ein selektives Überwachen der Nachrichten, um ein Auftreten einer Fehlerbedingung zu erkennen, die der spezifizierten Anwendung zugehörig ist, die in der vorgegebenen Gast-VM ausgeführt wird; und - Anweisungen, in Reaktion auf das Erkennen einer Fehlerbedingung für ein Ergreifen einer Maßnahme zur Korrektur der Fehlerbedingung wie von dem lokalen Hochverfügbarkeits-Manager bestimmt, wobei die Maßnahme ein Senden von wenigstens einem Befehl über den internen Kanal von dem Hypervisor zu der vorgegebenen Gast-VM aufweist, wobei Gast-VM-Fehler in dem ersten Knoten von dem lokalen Hochverfügbarkeits-Manager erkannt werden, der angepasst ist, um den Hypervisor des ersten Knotens zu steuern, wobei die spezifizierte Anwendung, die auf der bestimmten Gast-VM ausgeführt wird, durch den Hochverfügbarkeits-Manager gesteuert wird, der dem Hypervisor zugeordnet ist, und der angepasst ist, um die Fehlerbedingung zu erkennen, wobei für den Hochverfügbarkeits-Manager spezifizierte Steuerungs-Skripte zum Steuern der spezifizierten Anwendungen erforderlich sind, und alle spezifizierten Steuerungs-Skripte in dem Hypervisor enthalten sind.
  12. Eine Vorrichtung in Verbindung mit einem ersten Knoten, der einen Hypervisor und eine oder mehrere virtuelle Gast-Maschinen (Gast-VMs) aufweist, wobei jede Gast-VM so angepasst ist, dass auf ihr eine oder mehrere Anwendungen ausführbar sind, und wobei der erste Knoten mit einem oder mehreren Knoten verbindbar ist, um ein Cluster mit hoher Verfügbarkeit (HA-Cluster) zu bilden, wobei der erste Knoten angepasst ist, um einen lokalen Hochverfügbarkeits-Manager auszuführen, der extern zu jeder virtuellen Gast-Maschine ist, die Vorrichtung aufweist: - einen Datenprozessor, der mit einer Speichervorrichtung verbundenen ist, die Anweisungen darauf speichert, die, wenn sie durch den Datenprozessor ausgeführt werden, die folgende Schritte ausführen: - Einrichten eines internen bidirektionalen Datenübertragungskanals zwischen jeder Gast-VM und dem Hypervisor des ersten Knotens; - Senden von Nachrichten, die Befehle und Antworten auf Befehle enthalten, über den internen Kanal zwischen dem Hypervisor und einer vorgegebenen Gast-VM wie von dem lokalen Hochverfügbarkeits-Manager bestimmt, wobei entsprechende Befehle gesendet werden, um eine spezifizierte Anwendung zu verwalten, die auf der vorgegebenen Gast-VM ausgeführt wird; - selektives Überwachen der Nachrichten, um ein Auftreten einer Fehlerbedingung zu erkennen, die der spezifizierten Anwendung zugehörig ist, die in der vorgegebenen Gast-VM ausgeführt wird; und - Ergreifen einer Maßnahme, in Reaktion auf das Erkennen einer Fehlerbedingung, zur Korrektur der Fehlerbedingung wie von dem lokalen Hochverfügbarkeits-Manager bestimmt, wobei die Maßnahme ein Senden von wenigstens einem Befehl über den internen Kanal von dem Hypervisor zu der vorgegebenen Gast-VM aufweist, wobei Hinweise auf Gast-VM-Fehler in dem ersten Knoten an den lokalen Hochverfügbarkeits-Manager gesendet werden, der angepasst ist, um den Hypervisor des ersten Knotens zu steuern, und mit einem Dateisystem, das der spezifizierten Anwendung zugeordnet ist, zu interagieren.
  13. Die Vorrichtung nach Anspruch 12, wobei jeder der internen bidirektionalen Kanäle zwischen einer Verwaltungseinheit der Anwendungsverfügbarkeit, die einer der Gast-VMs zugehörig ist, und dem Hypervisor des ersten Knotens eingerichtet wird.
  14. Die Vorrichtung nach Anspruch 12, wobei die Korrekturmaßnahme wahlweise entweder ein Senden einer Folge von Befehlen über den internen Kanal von dem Hypervisor zu der vorgegebenen Gast-VM wie von dem lokalen Hochverfügbarkeits-Manager bestimmt, um die spezifizierte Anwendung anzuhalten, die in der vorgegebenen Gast-VM ausgeführt wird, und ein anschließendes Neustarten der spezifizierten Anwendung in der vorgegebenen Gast-VM und in dem ersten Knoten oder ein Ausführen einer Ausfallsicherung (failover) der spezifizierten Anwendung an eine Gast-VM des ersten Knotens, die von der vorgegebenen Gast-VM verschieden ist, und Ausführen der spezifizierten Anwendung in der anderen Gast-VM aufweisen.
  15. Die Vorrichtung nach Anspruch 14, wobei vor einer Ausfallsicherung der spezifizierten Anwendung auf die andere Gast-VM, eine spezifizierte Komponente der anderen Gast-VM als Replikations-Empfänger betrieben wird, und nach einer Ausfallsicherung der spezifizierten Anwendung auf die andere Gast-VM und in Reaktion auf ein Sendekommando durch den internen Kanal von dem Hypervisor an die andere Gast-VM, wird die spezifizierte Komponente der anderen Gast-VM als ein Replikations-Absender betrieben, wobei der Replikations-Sender Daten repliziert, die durch die spezifzierte Anwendung für das ein Filesystem genieret wurden, und wöbei der Replikations-Empfänger die Daten, die durch den Replikations-Sender vor dem Fehler repliziert wurden, kontrolliert.
  16. Die Vorrichtung nach Anspruch 15, wobei nach einer Ausfallsicherung der spezifizierten Anwendung zu der anderen Gast-VM eintreffende Daten in die andere Gast-VM gelenkt werden und durch den Replikations-Absender zu einer Speichereinheit repliziert werden, die der anderen Gast-VM zugehörig ist, und eine spezifizierte Komponente der vorgegebenen Gast-VM als Replikations-Empfänger betrieben wird.
  17. Die Vorrichtung nach Anspruch 12, wobei die Korrekturmaßnahme ein Ausführen einer Ausfallsicherung der spezifizierten Anwendung und der vorgegebenen Gast-VM an einen zweiten Knoten des HA-Cluster und ein Ausführen der spezifizierten Anwendung in der vorgegebenen Gast-VM in dem zweiten Knoten aufweisen.
  18. Die Vorrichtung nach Anspruch 12, wobei die Korrekturmaßnahme ein Ausführen der Ausfallsicherung der spezifizierten Anwendung in einem zweiten Knoten in dem HA-Cluster und ein Ausführen der spezifizierten Anwendung in einer Gast-VM, die von der vorgegebenen Gast-VM verschieden ist, in dem zweiten Knoten aufweisen.
  19. Die Vorrichtung nach Anspruch 12, wobei der HA-Cluster mit einem System zum Überwachen von Aktivitätssignalen ausgerüstet ist, die durch entsprechende Knoten des HA-Clusters erzeugt werden, wobei ein Fehler eines Knotens durch ein Ausbleiben der durch ihn erzeugten Aktivitätssignale erkennbar ist.
  20. Eine Vorrichtung, in Verbindung mit einem ersten Knoten, der einen Hypervisor und eine oder mehrere virtuelle Gast-Maschinen (Gast-VMs) aufweist, wobei jede Gast-VM so angepasst ist, dass auf ihr eine oder mehrere Anwendungen ausführbar sind, und wobei der erste Knoten mit einem oder mehreren Knoten verbindbar ist, um ein Cluster mit hoher Verfügbarkeit (HA-Cluster) zu bilden, wobei der erste Knoten angepasst ist, um einen Hochverfügbarkeits-Manager auszuführen, der extern zu jeder virtuellen Gast-Maschine ist, wobei die Vorrichtung aufweist: - einen Datenprozessor, der mit einer Speichervorrichtung verbundenen ist, die Anweisungen darauf speichert, die, wenn sie durch den Datenprozessor ausgeführt werden, die folgenden Schritte ausführen: - Einrichten eines internen bidirektionalen Datenübertragungskanals zwischen jeder Gast-VM und dem Hypervisor des ersten Knotens; - Senden von Nachrichten, die Befehle und Antworten auf Befehle enthalten, über den internen Kanal zwischen dem Hypervisor und einer vorgegebenen Gast-VM wie von dem lokalen Hochverfügbarkeits-Manager bestimmt, wobei entsprechende Befehle gesendet werden, um eine spezifizierte Anwendung zu verwalten, die auf der vorgegebenen Gast-VM ausgeführt wird; - selektives Überwachen der Nachrichten, um ein Auftreten einer Fehlerbedingung zu erkennen, die der spezifizierten Anwendung zugehörig ist, die in der vorgegebenen Gast-VM ausgeführt wird; und - Ergreifen einer Maßnahme, in Reaktion auf das Erkennen einer Fehlerbedingung, zur Korrektur der Fehlerbedingung wie von dem lokalen Hochverfügbarkeits-Manager bestimmt, wobei die Maßnahme ein Senden von wenigstens einem Befehl über den internen Kanal von dem Hypervisor zu der vorgegebenen Gast-VM aufweist, wobei Gast-VM-Fehler in dem ersten Knoten von dem lokalen Hochverfügbarkeits-Manager erkannt werden, der angepasst ist, um den Hypervisor des ersten Knotens zu steuern, wobei die spezifizierte Anwendung, die auf der bestimmten Gast-VM ausgeführt wird, durch den Hochverfügbarkeits-Manager gesteuert wird, der dem Hypervisor zugeordnet ist, und der angepasst ist, um die Fehlerbedingung zu erkennen, wobei für den Hochverfügbarkeits-Manager spezifizierte Steuerungs-Skripte zum Steuern der spezifizierten Anwendungen erforderlich sind, und alle spezifizierten Steuerungs-Skripte in dem Hypervisor enthalten sind.
  21. Ein Verfahren, in Verbindung mit einem ersten Knoten, der einen Hypervisor und eine oder mehrere virtuelle Gast-Maschinen (Gast-VMs) aufweist, wobei jede Gast-VM so angepasst ist, dass auf ihr eine oder mehrere Anwendungen ausführbar sind, und wobei der erste Knoten mit einem oder mehreren Knoten verbindbar ist, um ein Cluster mit hoher Verfügbarkeit (HA-Cluster) zu bilden, wobei der erste Knoten angepasst ist, um einen lokalen Hochverfügbarkeits-Manager auszuführen, der extern zu jeder virtuellen Gast-Maschine ist, wobei das Verfahren aufweist: - Einrichten eines internen bidirektionalen Datenübertragungskanals zwischen jeder Gast-VM und dem Hypervisor des ersten Knotens; - Senden von Nachrichten, die Befehle und Antworten auf Befehle enthalten, über den internen Kanal zwischen dem Hypervisor und einer vorgegebenen Gast-VM wie von dem lokalen Hochverfügbarkeits-Manager bestimmt, wobei entsprechende Befehle gesendet werden, um eine spezifizierte Anwendung zu verwalten, die auf der vorgegebenen Gast-VM ausgeführt wird; - selektives Überwachen der Nachrichten, um ein Auftreten einer Fehlerbedingung zu erkennen, die der spezifizierten Anwendung zugehörig ist, die in der vorgegebenen Gast-VM ausgeführt wird; und - in Reaktion auf das Erkennen einer Fehlerbedingung Ergreifen einer Maßnahme zur Korrektur der Fehlerbedingung, wobei die Maßnahme ein Senden von wenigstens einem Befehl über den internen Kanal von dem Hypervisor zu der vorgegebenen Gast-VM aufweist, wobei Gast-VM-Fehler in dem ersten Knoten durch den lokalen Hochverfügbarkeits-Manager erkannt werden, der angepasst ist, um den Hypervisor des ersten Knotens zu steuern.
  22. Das Verfahren nach Anspruch 21, wobei jeder der internen bidirektionalen Kanäle zwischen einer Verwaltungseinheit der Anwendungsverfügbarkeit, die einer der Gast-VMs zugehörig ist, und dem Hypervisor des ersten Knotens eingerichtet wird.
  23. Das Verfahren nach Anspruch 11, wobei die Korrekturmaßnahme wahlweise entweder ein Senden einer Folge von Befehlen über den internen Kanal von dem Hypervisor zu der vorgegebenen Gast-VM, um die spezifizierte Anwendung anzuhalten, die in der vorgegebenen Gast-VM abläuft, und ein anschließendes Neustarten der spezifizierten Anwendung in der vorgegebenen Gast-VM und in dem ersten Knoten oder ein Ausführen einer Ausfallsicherung (failover) der spezifizierten Anwendung in einer Gast-VM des ersten Knotens, die von der vorgegebenen Gast-VM verschieden ist, und Betreiben der spezifizierten Anwendung in der anderen Gast-VM aufweist.
  24. Das Verfahren nach Anspruch 23, wobei vor einer Ausfallsicherung der spezifizierten Anwendung auf die andere Gast-VM, eine spezifizierte Komponente der anderen Gast-VM als Replikations-Empfänger betrieben wird, und nach einer Ausfallsicherung auf die andere Gast-VM und in Reaktion auf ein Sendekommando durch den internen Kanal von dem Hypervisor an die andere Gast-VM wird die spezifizierte Komponente der anderen Gast-VM als ein Replikations-Absender betrieben, wobei der Replikations-Sender Daten repliziert, die durch die spezifizierte Anwendung für das ein Filesystem generiert wurden, und wobei der Replikations-Empfänger die Daten, die durch den Replikations-Sender vor dem Fehler repliziert wurden, kontrolliert.
  25. Das Verfahren nach Anspruch 24, wobei nach einer Ausfallsicherung zu der anderen Gast-VM eintreffende Daten in die andere Gast-VM gelenkt werden und durch den Replikations-Absender zu einer Speichereinheit repliziert werden, die der anderen Gast-VM zugehörig ist, und eine spezifizierte Komponente der vorgegebenen Gast-VM als Replikations-Empfänger betrieben wird.
  26. Das Verfahren nach Anspruch 21, wobei die Korrekturmaßnahme ein Ausführen der Ausfallsicherung der spezifizierten Anwendung und der gegebene Gast-VM auf einem zweiten Knoten in dem HA-Cluster und ein Ausführen der spezifizierten Anwendung in der gegebenen Gast-VM in dem zweiten Knoten aufweist.
  27. Das Verfahren nach Anspruch 21, wobei die Korrekturmaßnahme ein Ausführen einer Ausfallsicherung der spezifizierten Anwendung und der vorgegebenen Gast-VM an einen zweiten Knoten des HA-Clusters und ein Ausführen der spezifizierten Anwendung in einer Gast-VM, die von der vorgegebenen Gast-VM verschieden ist, in dem zweiten Knoten aufweisen.
  28. Das Verfahren nach Anspruch 21, wobei der HA-Cluster mit einem System zum Überwachen von Aktivitätssignalen ausgerüstet ist, die durch entsprechende Knoten des HA-Clusters erzeugt werden, wobei ein Fehler eines Knotens durch ein Ausbleiben der durch ihn erzeugten Aktivitätssignale erkennbar ist.
  29. Das Verfahren nach Anspruch 21, wobei der lokale Hochverfügbarkeits-Manager angepasst ist, um eine Übertragung von Daten, die durch die spezifizierte Anwendung zwischen zwei oder mehreren Gast-VMs des ersten Knotens generiert werden, zu initiieren.
  30. Das Verfahren nach Anspruch 21, wobei wobei jeder Knoten des HA-Cluster einen entsprechenden lokalen Hochverfügbarkeits-Manager aufweist, der angepasst ist, einen entsprechende Hypervisor eines entsprechenden Knotens des HA-Cluster zu steuern, und wobei jeder lokalen Hochverfügbarkeits-Manager angepasst ist, um mit mindestens einer lokalen Dateisystem-Komponente einen entsprechenden Knotens zu interagieren und um Daten, die durch einen entsprechende spezifizierte Anwendung zwischen zwei oder mehreren Gast-VMs des entsprechenden Knotens generiert wurden, zu übertragen.
  31. Ein Verfahren, in Verbindung mit einem ersten Knoten, der einen Hypervisor und eine oder mehrere virtuelle Gast-Maschinen (Gast-VMs) aufweist, wobei jede Gast-VM so angepasst ist, dass auf ihr eine oder mehrere Anwendungen ausführbar sind, und wobei der erste Knoten mit einem oder mehreren Knoten verbindbar ist, um ein Cluster mit hoher Verfügbarkeit (HA-Cluster) zu bilden, wobei das Verfahren aufweist: - Einrichten eines internen bidirektionalen Datenübertragungskanals zwischen jeder Gast-VM und dem Hypervisor des ersten Knotens; - Senden von Nachrichten, die Befehle und Antworten auf Befehle enthalten, über den internen Kanal zwischen dem Hypervisor und einer vorgegebenen Gast-VM, wobei entsprechende Befehle gesendet werden, um eine spezifizierte Anwendung zu verwalten, die auf der vorgegebenen Gast-VM ausgeführt wird; - selektives Überwachen der Nachrichten, um ein Auftreten einer Fehlerbedingung zu erkennen, die der spezifizierten Anwendung zugehörig ist, die in der vorgegebenen Gast-VM ausgeführt wird; und - Ergreifen einer Maßnahme, in Reaktion auf das Erkennen einer Fehlerbedingung, zur Korrektur der Fehlerbedingung, wobei die Maßnahme ein Senden von wenigstens einem Befehl über den internen Kanal von dem Hypervisor zu der vorgegebenen Gast-VM aufweist, wobei die spezifizierte Anwendung, die auf gegebenen Gast-VM ausgeführt wird, von einem Hochverfügbarkeits-Manager gesteuert wird, der dem ersten lokalen Hochverfügbarkeits-Manager zugeordnet ist, und angepasst ist, um einen Fehler der spezifizierten Anwendung zu erkennen, wobei für den Hochverfügbarkeits-Manager spezifizierte Steuerungs-Skripte und Konfigurations-Ressourcen für seinen Betrieb benötigt, und wobei alle spezifizierten Steuerungs-Skripte Konfigurations-Ressourcen in dem Hypervisor enthalten sind.
DE112013002014.9T 2012-04-12 2013-03-26 Bereitstellen von anwendungsgestützter Überwachung und Wiederherstellung für einen Hypervisor eines HA-Clusters Active DE112013002014B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/444,997 2012-04-12
US13/444,997 US20130275966A1 (en) 2012-04-12 2012-04-12 Providing application based monitoring and recovery for a hypervisor of an ha cluster
PCT/IB2013/052388 WO2013153472A1 (en) 2012-04-12 2013-03-26 Providing application based monitoring and recovery for a hypervisor of an ha cluster

Publications (2)

Publication Number Publication Date
DE112013002014T5 DE112013002014T5 (de) 2015-01-08
DE112013002014B4 true DE112013002014B4 (de) 2019-08-14

Family

ID=49326183

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112013002014.9T Active DE112013002014B4 (de) 2012-04-12 2013-03-26 Bereitstellen von anwendungsgestützter Überwachung und Wiederherstellung für einen Hypervisor eines HA-Clusters

Country Status (5)

Country Link
US (2) US20130275966A1 (de)
CN (1) CN104205060B (de)
DE (1) DE112013002014B4 (de)
GB (1) GB2513282A (de)
WO (1) WO2013153472A1 (de)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130275966A1 (en) * 2012-04-12 2013-10-17 International Business Machines Corporation Providing application based monitoring and recovery for a hypervisor of an ha cluster
US9148350B1 (en) 2013-03-11 2015-09-29 Amazon Technologies, Inc. Automated data synchronization
US10142406B2 (en) 2013-03-11 2018-11-27 Amazon Technologies, Inc. Automated data center selection
US10313345B2 (en) 2013-03-11 2019-06-04 Amazon Technologies, Inc. Application marketplace for virtual desktops
US9002982B2 (en) 2013-03-11 2015-04-07 Amazon Technologies, Inc. Automated desktop placement
US9208015B2 (en) * 2013-06-18 2015-12-08 Vmware, Inc. Hypervisor remedial action for a virtual machine in response to an error message from the virtual machine
US10686646B1 (en) 2013-06-26 2020-06-16 Amazon Technologies, Inc. Management of computing sessions
US10623243B2 (en) 2013-06-26 2020-04-14 Amazon Technologies, Inc. Management of computing sessions
US20150019704A1 (en) * 2013-06-26 2015-01-15 Amazon Technologies, Inc. Management of computing sessions
US20150100826A1 (en) * 2013-10-03 2015-04-09 Microsoft Corporation Fault domains on modern hardware
CN103559124B (zh) * 2013-10-24 2017-04-12 华为技术有限公司 故障快速检测方法及装置
US9213572B2 (en) 2013-12-02 2015-12-15 Vmware, Inc. Interdependent virtual machine management
US9952946B2 (en) 2014-02-04 2018-04-24 Telefonaktiebolaget L M Ericsson (Publ) Managing service availability in a mega virtual machine
CN104036548A (zh) * 2014-07-01 2014-09-10 浪潮(北京)电子信息产业有限公司 Mha集群环境重建方法、装置和系统
US10095590B2 (en) * 2015-05-06 2018-10-09 Stratus Technologies, Inc Controlling the operating state of a fault-tolerant computer system
DE102015214376A1 (de) * 2015-07-29 2017-02-02 Robert Bosch Gmbh Verfahren und Vorrichtung zur On-Board-Diagnose bei einem Steuergerät mit einem Hypervisor und mindestens einem unter dem Hypervisor betriebenen Gastsystem
US10084674B2 (en) * 2015-09-09 2018-09-25 International Business Machines Corporation Virtual desktop operation and data continuity preservation
CN106559441B (zh) * 2015-09-25 2020-09-04 华为技术有限公司 一种基于云计算服务的虚拟机监控方法、装置及系统
US10089124B2 (en) 2015-12-31 2018-10-02 International Business Machines Corporation Security application for a guest operating system in a virtual computing environment
US9990222B2 (en) 2016-03-18 2018-06-05 Airwatch Llc Enforcing compliance rules against hypervisor and virtual machine using host management component
CN108139925B (zh) 2016-05-31 2022-06-03 安华高科技股份有限公司 虚拟机的高可用性
US10318311B2 (en) * 2016-06-30 2019-06-11 Amazon Technologies, Inc. Memory allocation techniques at partially-offloaded virtualization managers
US10127068B2 (en) 2016-06-30 2018-11-13 Amazon Technologies, Inc. Performance variability reduction using an opportunistic hypervisor
CN111309515B (zh) * 2018-12-11 2023-11-28 华为技术有限公司 一种容灾控制方法、装置及系统
CN113360395A (zh) * 2021-06-24 2021-09-07 中国电子科技集团公司第十四研究所 一种仿真系统实时交互管理技术

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1686473A1 (de) 2005-01-28 2006-08-02 Hitachi, Ltd. Computersystem, Computer, Speichersystem und Leitdatenstation
US20080307259A1 (en) 2007-06-06 2008-12-11 Dell Products L.P. System and method of recovering from failures in a virtual machine
US20130007506A1 (en) 2011-07-01 2013-01-03 Microsoft Corporation Managing recovery virtual machines in clustered environment

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3958714B2 (ja) * 2003-06-16 2007-08-15 ソフトバンクモバイル株式会社 携帯通信機器
US20050132379A1 (en) 2003-12-11 2005-06-16 Dell Products L.P. Method, system and software for allocating information handling system resources in response to high availability cluster fail-over events
JP2005202652A (ja) 2004-01-15 2005-07-28 Canon Inc アプリケーション制御装置、その制御方法及び記憶媒体
US7444538B2 (en) 2004-09-21 2008-10-28 International Business Machines Corporation Fail-over cluster with load-balancing capability
KR100930576B1 (ko) * 2006-12-04 2009-12-09 한국전자통신연구원 가상화 기반 고가용성 클러스터 시스템 및 고가용성클러스터 시스템에서 장애 관리 방법
JP4809209B2 (ja) 2006-12-28 2011-11-09 株式会社日立製作所 サーバ仮想化環境における系切り替え方法及び計算機システム
US8554981B2 (en) * 2007-02-02 2013-10-08 Vmware, Inc. High availability virtual machine cluster
US7757116B2 (en) 2007-04-04 2010-07-13 Vision Solutions, Inc. Method and system for coordinated multiple cluster failover
JP5032191B2 (ja) 2007-04-20 2012-09-26 株式会社日立製作所 サーバ仮想化環境におけるクラスタシステム構成方法及びクラスタシステム
US20090070761A1 (en) * 2007-09-06 2009-03-12 O2Micro Inc. System and method for data communication with data link backup
US8117495B2 (en) * 2007-11-26 2012-02-14 Stratus Technologies Bermuda Ltd Systems and methods of high availability cluster environment failover protection
US7886183B2 (en) 2008-08-07 2011-02-08 Symantec Operating Corporation Providing fault tolerant storage system to a cluster
US8549364B2 (en) 2009-02-18 2013-10-01 Vmware, Inc. Failure detection and recovery of host computers in a cluster
US8055933B2 (en) 2009-07-21 2011-11-08 International Business Machines Corporation Dynamic updating of failover policies for increased application availability
US20110191627A1 (en) * 2010-01-29 2011-08-04 Maarten Koning System And Method for Handling a Failover Event
US8171349B2 (en) * 2010-06-18 2012-05-01 Hewlett-Packard Development Company, L.P. Associating a monitoring manager with an executable service in a virtual machine migrated between physical machines
US20130275966A1 (en) * 2012-04-12 2013-10-17 International Business Machines Corporation Providing application based monitoring and recovery for a hypervisor of an ha cluster

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1686473A1 (de) 2005-01-28 2006-08-02 Hitachi, Ltd. Computersystem, Computer, Speichersystem und Leitdatenstation
US20080307259A1 (en) 2007-06-06 2008-12-11 Dell Products L.P. System and method of recovering from failures in a virtual machine
US20130007506A1 (en) 2011-07-01 2013-01-03 Microsoft Corporation Managing recovery virtual machines in clustered environment

Also Published As

Publication number Publication date
US20130275966A1 (en) 2013-10-17
CN104205060A (zh) 2014-12-10
GB2513282A (en) 2014-10-22
US9110867B2 (en) 2015-08-18
GB201414770D0 (en) 2014-10-01
DE112013002014T5 (de) 2015-01-08
CN104205060B (zh) 2016-01-20
WO2013153472A1 (en) 2013-10-17
US20130275805A1 (en) 2013-10-17

Similar Documents

Publication Publication Date Title
DE112013002014B4 (de) Bereitstellen von anwendungsgestützter Überwachung und Wiederherstellung für einen Hypervisor eines HA-Clusters
DE102016200514B4 (de) Verfahren und Vorrichtungen für gesteuerte Wiederherstellung von Fehlerinformationen zwischen unabhängig voneinander betreibbaren Prozessoren
DE102013218341B4 (de) Ersatzweise Verlagerung von Threads (Thread-Sparing) zwischen Berechnungskernen in einem Multithread-Prozessor
DE112011101705B4 (de) Migrieren virtueller Maschinen zwischen vernetzten Servern nach Erkennung der Verschlechterung der Funktion der Netzwerkverbindung
DE102006048115B4 (de) System und Verfahren zum Aufzeichnen von behebbaren Fehlern
DE112013003723B4 (de) Hochleistungsfähige physikalische Kopplungsstrukturschicht
DE102007060324B4 (de) Vorrichtung, Verfahren und Programmspeichervorrichtung für einen Computerbetrieb im Mehrfachmodus
DE102014108249A1 (de) Realisieren erweiterter Fehlerbehandlung für einen gemeinsam genutzten Adapter in einem virtualisierten System
DE102016105589A1 (de) Anwenden von Firmware-Updates in einem System mit Null-Stillstandszeit durch wahlweise Abschalten und Einschalten von Hardware unter Verwenden einer Hypervisor-Schicht
DE102009023953A1 (de) Verfahren zum Booten eines zustandslosen Client
DE102007039156A1 (de) EFI-basierter Mechanismus zum Exportieren von Plattform-Verwaltungsfähigkeiten in das Betriebssystem
US8291070B2 (en) Determining an operating status of a remote host upon communication failure
DE102012215918A1 (de) Spiegeln virtueller Maschinen von einem primären auf einen sekundären Host
DE102019130715A1 (de) Verwaltung der systemstromversorgung in usb-c/usb-stromversorgungs-ablieferungssystemen
EP2649548A1 (de) Schutz von virtuellen maschinen vor schadprogrammen
DE112013000656T5 (de) System und Verfahren zum Verringern der Speichernutzung durch optimales Platzieren von virtuellen Maschinen in einem virtualisierten Rechenzentrum
DE112011104471T5 (de) Verfahren zur Failover-Verwaltung von virtuellen Maschinen und System zum Unterstützen desselben
DE112010004238T5 (de) Intelligente rollierende Aufrüstung für Datenspeichersysteme
DE102014114108A1 (de) Prozessleitsysteme und -verfahren
DE102021103080B4 (de) Data center troubleshooting-mechanismus
DE112013002995T5 (de) Echtzeitmessung von Virtualisierungs-E/A-Verarbeitungsverzögerungen
DE112012001660T5 (de) Speicher-Checkpointing in einem System gespiegelter virtueller Maschinen
DE112014002754T5 (de) Effiziente Aufgabenplanung unter Verwendung eines Sperrmechanismus
CN105281949B (zh) 混合存储模式中主机的隔离方法和隔离装置
DE102016203808A1 (de) Verringern der Bevorrechtigung virtueller Maschinen in einer virtualisierten Umgebung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R083 Amendment of/additions to inventor(s)
R082 Change of representative

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

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

R082 Change of representative

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

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final