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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/202—Error 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/2035—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0706—Error 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/0712—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking by means of middleware or OS functionality
- G06F11/1484—Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Hardware Redundancy (AREA)
- Mathematical Physics (AREA)
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.
- 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 - 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 - 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 und1B 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 von1A oder1 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-Cluster100 mit hoher Verfügbarkeit (HA-Computer-Cluster) gezeigt, der mehrere Knoten aufweist, die durch die Knoten102 und104 beispielhaft dargestellt sind. Die Knoten102 und104 werden außerdem als Knoten1 bzw. Knoten N bezeichnet, wobei es sich bei N um die Gesamtanzahl von Knoten handelt. N ist zweckmäßigerweise zwei, wobei der Cluster100 nicht darauf beschränkt ist. Entsprechende Knoten werden miteinander verbunden, um den Cluster mit Hilfe eines Busses106 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 Kabel108 gezeigt, das vorgesehen ist, um alle Hypervisors der Knoten des Clusters100 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 Knoten102 und104 gezeigt, die mit Hilfe eines Busses106 zum Bilden eines Clusters miteinander verbunden sind. Der Cluster von1 B ist jedoch anstelle des Aktivitätssignal-Kabels108 mit einer HA-Cluster-Verwaltungseinheit110 ausgestattet. Wenn eine Anwendung auf einem vorgegebenen Knoten ausgeführt, werden Aktivitätssignale, die von dem vorgegebenen Knoten gesendet werden, durch die Verwaltungseinheit110 überwacht. Beim Erfassen eines Fehlers, der durch die Aktivitätssignale erkennbar ist, könnte die Verwaltungseinheit110 eine Ausfallsicherung ausführen, damit die Anwendung auf dem anderen Knoten ausgeführt wird. - In
2 ist ein Knoten200 gezeigt, der als einer der Knoten102 oder104 von1A und1B verwendet werden kann. Der Knoten200 weist eine Datenverarbeitungsplattform102 mit einer Hardware-Komponente204a und einem Betriebssystem204b auf, die einen Hypervisor206 enthält. Die Hardware-Komponente204a und der Host204b sind funktionsmäßig in der Lage, Gast-Betriebssysteme oder virtuelle Maschinen (VMs)208 und210 bereitzustellen, die durch den Hypervisor206 verwaltet werden. Die Gast-VMs208 und210 sind in der Lage, entsprechende Anwendungen212 und214 auszuführen und sind mit Verwaltungseinheiten216 und218 der Anwendungsverfügbarkeit ausgestattet, die diese Anwendungen steuern und überwachen. -
2 zeigt des Weiteren eine lokale HA-Cluster-Verwaltungseinheit220 , die einen Hypervisor206 über einen bidirektionalen Datenübertragungspfad wie etwa eine Verbindung220a verwaltet. Wie nachstehend genauer beschrieben ist die HA-Cluster-Verwaltungseinheit220 so eingerichtet, dass sie Ausfallsicherungen ausführt, die den Knoten200 betreffen. Wenn beispielsweise eine Anwendung auf einer Gast-VM ausgeführt wird und ein Hypervisor206 die Cluster-Verwaltungseinheit220 über einen erkannten Fehler benachrichtigt, könnte die HA-Cluster-Verwaltungseinheit den Hypervisor206 anweisen, die Anwendung auf einer anderen Gast-VM des Knotens200 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-Verwaltungseinheit220 und des Hypervisor206 und die Interaktion zwischen ihnen zum Überwachen und Verwalten von Gast-VMs208 und210 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 Hypervisor206 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-Verwaltungseinheit220 so geschaltet ist, dass sie mit lokalen Dateisystem-Komponenten222 und224 der Datenverarbeitungsplattform202 über Verbindungen220b bzw.220c interagiert. Diese Dateisystem-Komponenten werden bei Datenübertragungen mit Gast-VMs216 bzw.218 verwendet wie nachstehend genauer beschrieben. - In
2 ist des Weiteren ein VM-Kanal oder interner Kanal226 gezeigt, der zwischen dem Hypervisor206 und einer Anwendungsverfügbarkeits-Verwaltungseinheit216 der Gast-VM208 verläuft. Ein ähnlicher interner Kanal228 verläuft zwischen dem Hypervisor206 und einer Anwendungsverfügbarkeits-Verwaltungseinheit218 der Gast-VM210 . Die internen Kanäle226 und228 sind jeweils bidirektional und sind somit in der Lage, Nachrichten zwischen dem Hypervisor206 und ihren entsprechenden Gast-VMs208 und210 zu befördern.2 zeigt des Weiteren einen Kanal226 , der weiter zum Dateisystem22 verläuft, und einen Kanal228 , der weiter zum Dateisystem224 verläuft. Die internen Kanäle226 und228 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 Hypervisor206 und der Anwendungsverfügbarkeits-Verwaltungseinheit208 der Gast-VM208 auf. Der interne Kanal226 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-Verwaltungseinheit208 erzeugt werden. - Der interne Kanal
228 ist dem internen Kanal226 ähnlich oder mit diesem identisch, mit der Ausnahme, dass der interne Kanal228 zwischen dem Hypervisor206 und der Anwendungsverfügbarkeits-Verwaltungseinheit218 verläuft. - Durch Bereitstellen von Kanälen
226 und228 in der oben beschriebenen Weise und gemäß Ausführungsformen der Erfindung erhält die HA-Cluster-Verwaltungseinheit220 , die über den Hypervisor206 wirkt, eine bessere Möglichkeit, Anwendungen zu verwalten und zu steuern, die auf Gast-VMs208 und210 ausgeführt werden. Der Hypervisor206 ist beispielsweise in der Lage, Befehle über den internen Kanal226 zum Kern der Gast-VM208 und insbesondere zu ihrer Anwendungsverfügbarkeits-Verwaltungseinheit216 zu senden. Zu diesen Befehlen gehören Start-, Stopp- und Statusabfragebefehle, die eine Anwendung212 betreffen. In Reaktion auf diese Befehle werden Antwortcodes von der Verwaltungseinheit216 der Gast-VM208 zurück zum Hypervisor206 gesendet. Dadurch ist der Hypervisor206 in der Lage, den Betrieb einer Anwendung212 direkt zu steuern, wenn diese Anwendung auf der Gast-VM208 ausgeführt wird. - Darüber hinaus kann der Hypervisor
206 Nachrichten über den internen Kanal226 zur Verfügbarkeits-Verwaltungseinheit216 senden, die den Status oder die Verfügbarkeit einer Anwendung212 abfragt, die auf der Gast-VM208 ausgeführt wird. Statusinformationen, die durch die Verfügbarkeits-Verwaltungseinheit216 über den internen Kanal226 bereitgestellt werden, könnten Fehlernachrichten, die durch die Verwaltungseinheit216 protokolliert werden, Leistungsinformationen für die Anwendung212 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 Anwendung212 zugehörig ist. Durch Überwachen der Antworten auf diese Anfragen und andere Nachrichten, die von der Anwendungsverfügbarkeits-Verwaltungseinheit216 der Gast-VM208 über den internen Kanal226 gesendet werden, können Fehler erkannt werden, die in der ausgeführten Anwendung212 oder in der Gast-VM208 aufgetreten sind. Beim Erkennen eines derartigen Fehlers können Korrekturmaßnahmen ergriffen werden. Somit können durch Bereitstellen der Anwendungsverfügbarkeits-Verwaltungseinheit216 zusammen mit dem internen Kanal in der beschriebenen Weise Anwendungen in der VM208 verwaltet und überwacht werden. - Die HA-Cluster-Verwaltungseinheit
220 ist über die Verbindung220a oder dergleichen in der Lage, Statusinformationen von dem Hypervisor206 in Bezug auf die Anwendungsverfügbarkeit und Hardware-Einheiten in den beiden Gast-VMs208 und210 zu erhalten. Das schließt die Verfügbarkeits-Verwaltungseinheiten216 und218 ein. In Reaktion auf das Sammeln von derartigen Statusinformationen ist die Cluster-Verwaltungseinheit220 in der Lage, auf der Grundlage von im Voraus spezifizierten Regeln Entscheidungen zum Ausführen von Befehlen für den Hypervisor206 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 Anwendung212 ein Fehler erkannt wird, könnte die HA-Cluster-Verwaltungseinheit220 den Hypervisor206 anweisen, eine Anwendung212 zu starten, anzuhalten und anschließend in derselben Gast-VM208 neu zu starten. Diese Aktion könnte in einfacher Weise ausgeführt werden, indem eine geeignete Folge von Befehlen von dem Hypervisor206 über den internen Kanal226 zu der VM208 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 Knotens200 z.B. einer Gast-VM210 ausgeführt wird. Als weitere Korrekturmaßnahme könnte eine Anwendung212 angehalten und dann neu gestartet werden, damit sie auf einer Gast-VM ausgeführt wird, die sich in einem Knoten des Knoten-Clusters100 befindet, der von dem Knoten200 verschieden ist. Bei der Gast-VM könnte es sich entweder um die Gast-VM208 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 Anwendung212 , der Verwaltungseinheit216 und des internen Kanals226 außerdem für die Gast-VM210 , die Anwendung214 , die Verwaltungseinheit218 bzw. den internen Kanal228 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-Clusters100 verteilt. Wie durch2 gezeigt sind die Gast-VMs208 und210 mit E/A-Emulatoren230 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-Anforderungskomponente234 ist dem Emulator230 zugehörig und mit dem internen Kanal226 verbunden. Die Komponente234 spricht auf Befehle an, die über den internen Kanals226 gesendet werden, um zu bewirken, dass Daten wahlweise zwischen der Gast-VM208 und dem Dateisystem222 der Datenverarbeitungsplattform202 ausgetauscht werden. Eine ähnliche E/A-Einheiten-Anforderungskomponente 236 ist dem E/A-Emulator 232 zugehörig und mit dem internen Kanal228 verbunden. - Wenn eine Anwendung
212 auf einer Gast-VM208 ausgeführt wird, funktioniert eine Komponente wie z.B. die Komponente234 als Replikations-Absender. Das heißt, sie bewirkt, dass eingehende Daten und andere Daten, die der ausgeführten Anwendung212 zugehörig sind, repliziert und beispielsweise durch das Dateisystem222 oder dergleichen gespeichert werden. Während dieser Zeit funktioniert eine Komponente wie z.B. die Komponente236 der Gast-VM210 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 Anwendung212 auf der Gast-VM208 angehalten und auf der Gast-VM210 gestartet werden. Wenn das eintritt, wird ein Befehl von der Verwaltungseinheit220 über den internen Kanal228 zur Komponente236 gesendet, wobei der Befehl die Komponente236 anweist, die Funktion des Replikations-Absenders anstelle des Replikations-Empfängers auszuführen. Die Komponente234 wird in ähnlicher Weise angewiesen, die Funktion des Replikations-Empfängers auszuführen. Daten, die durch den Replikations-Absender236 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-Verwaltungseinheit220 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 von2 sind jedoch alle derartigen Skripts und Konfigurationen in dem Hypervisor206 enthalten wie durch die Komponente238 dargestellt. Folglich müssen diejenigen, die die Ausführungsform von2 verwenden, damit ihre Anwendungen auf Gast-VMs208 und210 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 Schritt302 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 Schritt304 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 Schritt306 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 Schritt308 erfolgreich ist, so dass der erkannte Fehler beseitigt wird, endet das Verfahren von3 . Andernfalls geht das Verfahren zu Schritt312 . - 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 von3 . -
4 ist ein Blockschaltplan, der ein Datenverarbeitungssystem gemäß einer veranschaulichenden Ausführungsform zeigt. Bei dem Datenverarbeitungssystem400 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 Datenverarbeitungssystem400 eine Datenübertragungsstruktur402 , die einen Austausch von Daten zwischen einer Prozessoreinheit404 , einem Speicher406 , einer dauerhaften Speichereinheit408 , einer Datenübertragungseinheit410 , einer Eingabe/Ausgabe- (E/A-) Einheit412 und einer Anzeige414 bereitstellt. - Die Prozessoreinheit
404 dient zum Ausführen von Befehlen der Software, die möglicherweise in den Speicher406 geladen wurde. Bei der Prozessoreinheit404 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 Prozessoreinheit404 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 Prozessoreinheit404 um ein symmetrisches Mehrprozessorsystem handeln, das mehrere Prozessoren desselben Typs enthält. - Bei dem Speicher
406 und der dauerhaften Speichereinheit408 handelt es sich um Beispiele der Speichereinheiten416 . 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 Speicher406 kann es sich bei diesen Beispielen möglicherweise um einen Direktzugriffsspeicher oder jede andere geeignete flüchtige oder nichtflüchtige Speichereinheit handeln. Die dauerhafte Speichereinheit408 kann in Abhängigkeit von der bestimmten Umsetzung zahlreiche Formen annehmen. Die dauerhafte Speichereinheit408 kann z.B. eine oder mehrere Komponenten oder Einheiten enthalten. Bei der dauerhaften Speichereinheit408 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 Speichereinheit408 verwendet werden, kann es sich um Wechselmedien handeln. Für die dauerhafte Speichereinheit408 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übertragungseinheit410 um eine Netzwerk-Schnittstellenkarte. Die Datenübertragungseinheit410 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 Datenverarbeitungssystem400 verbunden sind. Die Eingabe/Ausgabe-Einheit412 kann z.B. eine Verbindung zur Benutzereingabe über eine Tastatur, eine Maus und/oder ein andere geeignete Eingabeeinheit bereitstellen. Die Eingabe/Ausgabe-Einheit412 kann des Weiteren Ausgaben zu einem Drucker senden. Die Anzeige414 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übertragungsstruktur402 mit der Prozessoreinheit404 Daten austauschen können. Bei diesen veranschaulichenden Beispielen befinden sich die Befehle in funktionsfähiger Form in der dauerhaften Speichereinheit408 . Diese Befehle können in den Speicher406 zum Ausführen durch die Prozessoreinheit404 geladen werden. Die Prozesse der verschiedenen Ausführungsformen können durch die Prozessoreinheit404 unter Verwendung von mittels eines Computers umgesetzten Befehlen ausgeführt werden, die sich in einem Speicher wie z.B. dem Speicher406 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 Speicher406 oder der Speichereinheit408 verkörpert sein. - Programmcode
418 befindet sich in einer funktionsfähigen Form auf computerlesbaren Medien420 , bei denen es sich wahlweise um Wechselmedien handelt, und kann zum Ausführen durch die Prozessoreinheit404 in das Datenverarbeitungssystem400 geladen oder zu diesem übertragen werden. Programmcode418 und computerlesbare Medien420 bilden ein Computerprogrammprodukt422 . Bei einem Beispiel kann es sich bei computerlesbaren Medien420 um computerlesbare Speichermedien424 oder computerlesbare Signalmedien426 handeln. Zu computerlesbaren Speichermedien424 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 Speichereinheit408 ist, zum Übertragen zu einer Speichereinheit wie z.B. ein Festplattenlaufwerk, das Teil der dauerhaften Speichereinheit408 ist. Computerlesbare Speichermedien424 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 Datenverarbeitungssystem400 verbunden ist. In einigen Fällen können computerlesbare Speichermedien424 möglicherweise nicht aus dem Datenverarbeitungssystem400 entnommen werden. - Alternativ kann Programmcode
418 unter Verwendung von computerlesbaren Signalmedien426 zum Datenverarbeitungssystem400 übertragen werden. Bei computerlesbaren Signalmedien426 kann es sich beispielsweise um ein sich ausbreitendes Datensignal handeln, das Programmcode418 enthält. Bei computerlesbaren Signalmedien426 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 Speichereinheit408 von einer anderen Einheit oder einem anderen Datenverarbeitungssystem mittels computerlesbaren Signalmedien426 für eine Verwendung im Datenverarbeitungssystem400 heruntergeladen werden. Programmcode, der in computerlesbaren Speichermedien in einem Server-Datenverarbeitungssystem gespeichert ist, kann beispielsweise über ein Netzwerk von dem Server zum Datenverarbeitungssystem400 heruntergeladen werden. Bei dem Datenverarbeitungssystem, das Programmcode418 bereitstellt, kann es sich um einen Server-Computer, einen Client-Computer oder eine andere Einheit handeln, die in der Lage ist, Programmcode418 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 Datenverarbeitungssystem400 dargestellt wurden. Weitere Komponenten, die in4 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 Datenverarbeitungssystem400 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 Speicher406 , die dauerhafte Speichereinheit408 und die computerlesbaren Medien420 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 Speicher406 oder einen Cache-Speicher handeln, der in einem Schnittstellen- und Speichersteuereinheiten-Hub vorkommt, der in der Datenübertragungsstruktur402 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)
- 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.
- 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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.
- 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.
- 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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.
- 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.
- 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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. - 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.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/444,997 US20130275966A1 (en) | 2012-04-12 | 2012-04-12 | Providing application based monitoring and recovery for a hypervisor of an ha cluster |
US13/444,997 | 2012-04-12 | ||
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)
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 |
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 |
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 |
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 |
US20150019704A1 (en) * | 2013-06-26 | 2015-01-15 | Amazon Technologies, Inc. | Management of computing sessions |
US10623243B2 (en) | 2013-06-26 | 2020-04-14 | Amazon Technologies, Inc. | Management of computing sessions |
US10686646B1 (en) | 2013-06-26 | 2020-06-16 | 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 | 安华高科技股份有限公司 | 虚拟机的高可用性 |
US10127068B2 (en) | 2016-06-30 | 2018-11-13 | Amazon Technologies, Inc. | Performance variability reduction using an opportunistic hypervisor |
US10318311B2 (en) * | 2016-06-30 | 2019-06-11 | Amazon Technologies, Inc. | Memory allocation techniques at partially-offloaded virtualization managers |
CN111309515B (zh) * | 2018-12-11 | 2023-11-28 | 华为技术有限公司 | 一种容灾控制方法、装置及*** |
CN113360395A (zh) * | 2021-06-24 | 2021-09-07 | 中国电子科技集团公司第十四研究所 | 一种仿真***实时交互管理技术 |
Citations (3)
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)
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 | 株式会社日立製作所 | サーバ仮想化環境における系切り替え方法及び計算機システム |
US20080189700A1 (en) * | 2007-02-02 | 2008-08-07 | Vmware, Inc. | Admission Control for 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 |
-
2012
- 2012-04-12 US US13/444,997 patent/US20130275966A1/en not_active Abandoned
- 2012-08-20 US US13/589,390 patent/US9110867B2/en active Active
-
2013
- 2013-03-26 CN CN201380018522.8A patent/CN104205060B/zh active Active
- 2013-03-26 WO PCT/IB2013/052388 patent/WO2013153472A1/en active Application Filing
- 2013-03-26 GB GB1414770.6A patent/GB2513282A/en not_active Withdrawn
- 2013-03-26 DE DE112013002014.9T patent/DE112013002014B4/de active Active
Patent Citations (3)
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 |
DE112013002014T5 (de) | 2015-01-08 |
CN104205060A (zh) | 2014-12-10 |
GB2513282A (en) | 2014-10-22 |
CN104205060B (zh) | 2016-01-20 |
WO2013153472A1 (en) | 2013-10-17 |
US20130275805A1 (en) | 2013-10-17 |
GB201414770D0 (en) | 2014-10-01 |
US9110867B2 (en) | 2015-08-18 |
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 | |
DE112011103666B4 (de) | Speicherverwaltung in Cluster-Datenverarbeitungssystemen | |
DE102006048115B4 (de) | System und Verfahren zum Aufzeichnen von behebbaren Fehlern | |
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 | |
DE112011100323T5 (de) | Architekturübergreifende Migration virtueller Maschinen | |
US8291070B2 (en) | Determining an operating status of a remote host upon communication failure | |
DE102007039156A1 (de) | EFI-basierter Mechanismus zum Exportieren von Plattform-Verwaltungsfähigkeiten in das Betriebssystem | |
DE102014114108A1 (de) | Prozessleitsysteme und -verfahren | |
DE112013003723T5 (de) | Hochleistungsfähige physikalische Kopplungsstrukturschicht | |
DE112014001873T5 (de) | Replikation für Hot-Standby-Online-Datenbank | |
DE112012005209T5 (de) | Brückenfunktion zwischen Virtual Machine Monitor und Bare-Metal-Bootvorgang | |
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 | |
DE112013002995T5 (de) | Echtzeitmessung von Virtualisierungs-E/A-Verarbeitungsverzögerungen | |
DE112014002754T5 (de) | Effiziente Aufgabenplanung unter Verwendung eines Sperrmechanismus |
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 |