-
Die vorliegende Erfindung betrifft ein hochverfügbares Computerverbundsystem und ein Verfahren zum Betrieb einer virtuellen Ersatzcomputereinheit innerhalb eines hochverfügbaren Computerverbundsystems.
-
Als Computerverbundsystem wird ein Verbund von zwei oder mehr vernetzten Computersystemen bezeichnet, die gemeinsam bestimmte Leistungen oder Dienste bereitstellen. Als Computersystem wird im Rahmen der Anmeldung ein physikalisch zusammenhängendes System verstanden, das seinerseits eine oder mehrere Computereinheiten umfassen kann. Eine Computereinheit' ist dabei jede Einheit, die in der Lage ist, unabhängig von anderen Computereinheiten Programme oder Skripte, zusammenfassend als Anwendungen bezeichnet, auszuführen, und die unabhängig von anderen Computereinheiten innerhalb des Verbunds adressiert werden kann, um eine Computerdienstleistung bereitzustellen. Typischerweise weist eine Computereinheit, ein Betriebssystem auf, das als Schnittstelle zwischen den Anwendungen einerseits und den Hardwareressourcen, derer sich die Computereinheit bedient, andererseits wirkt.
-
Dabei kann die Computereinheit als autonome Computereinheit ausgeführt sein, die als einzige Instanz auf die Hardwareressourcen eines Computersystems zugreift. Die Computereinheit kann aber ebenso eine virtuelle Computereinheit sein,.die über eine von einer Virtualisierungsschicht bereitgestellte logische Schnittstelle auf die Hardwareressourcen eines Computersystems zugreift. Diese Virtualisierungsschicht kann beispielsweise ein Betriebssystem sein, auf dem ein Emulator betrieben wird, der an einer öder mehreren logischen Schnittstellen die Funktionalität von Computerhardware emuliert. An eine solche logische Schnittstelle ist dann ein weiteres Betriebssystem gekoppelt, das die Basis einer virtuellen Computereinheit darstellt. Dabei brauchen das Betriebssystem der virtuellen Computereinheit und das der Virtualisierungsschicht zugrunde liegende Betriebssystem nicht vom gleichen Typ sein. Eine solche Virtualisierungsschicht ist auch als virtuelles Maschinensystem oder virtuelle Plattform, die virtuelle Computereinheit auch als virtuelle Maschine bekannt. Durch das Konzept eines virtuellen Maschinensystems ist es beispielsweise möglich, mehrere Betriebssysteme auf einer gemeinsamen Hardware unabhängig voneinander einzusetzen.
-
Eine der virtuellen Computereinheiten, Monitoreinheit oder Monitorsystem genannt, ist dabei üblicherweise dadurch ausgezeichnet, dass über sie die Virtualisierungsschicht kontrolliert und administriert werden kann. Über die Monitoreinheit und die Virtualisierungsschicht können die Hardwareressourcen des Computersystems kontrolliert und dynamisch der oder den virtuellen Computereinheiten des Computersystems zugeteilt werden. Außerdem können virtuelle Computereinheiten innerhalb des Computersystems dynamisch eingerichtet und entfernt werden. Zusammenfassend werden im Folgenden die dem virtuellen Maschinensystem zugrunde liegenden und zu seiner Steuerung und Kontrolle dienenden Komponenten, also z.B. die Virtualisierungsschicht und die Monitoreinheit, als Steuereinrichtung bezeichnet. Eine bekannte Implementierung eines Computersystems mit einer oder mehreren virtuellen Computereinheiten ist zum Beispieldas virtuelle Maschinensystem VM2000 der Firma Fujitsu Siemens Computers.
-
Viele Anwendungen verlangen eine gesicherte Verfügbarkeit der bereitgestellten Leistung und Dienste mit geringenAusfallszeiten und ohne Datenverlust. Ein darauf optimiertes Computerverbundsystem wird als hochverfügbar bezeichnet. Ein Weg, um Hochverfügbarkeit zu erreichen, ist, neben Computereinheiten, die zur Abarbeitung von anfallenden Aufgaben vorgesehen sind und auch als Produktionseinheiten oder Work-System bezeichnet werden, zusätzliche, redundante Computereinheiten, auch Stand-by- oder Ersatzcomputereinheiten genannt, vorzusehen. Diese Ersatzcomputereinheiten stehen betriebsbereit zur Verfügung, um bei einem eventuellen Ausfall einer Produktionseinheit sofort deren Funktionen automatisch zu übernehmen. Hierfür müssen Betriebsmittel, die bei einer Umschaltung nicht von bisherigen Produktionseinheiten übernommen, aber dennoch für einen reibungslosen Ablauf der Produktions-Funktionalitätbenötigt werden, auch bei den Ersatzcomputereinheiten bereitgestellt werden. Hierzu gehört insbesondere der für den Produktionsbetrieb benötigte Arbeitsspeicher.
-
Arbeitsspeicher ist ein teures Betriebsmittel, das in der Zeit, in der die Produktion an der aktuellen Produktionseinheit ordnungsgemäß läuft, an der Ersatzcomputereinheit nicht genutzt wird, falls diese ausschließlich für eine mögliche Übernahme der Produktion bereit steht. Es ist daher erstrebenswert, eine solche unökonomische Situation möglichst zu vermeiden und die Größe von ungenutztem Arbeitsspeicher zu minimieren.
-
Für den Fall, dass ein hochverfügbares Computerverbundsystem aus virtuellen Computereinheiten gebildet wird, die alle innerhalb eines Computersystems realisiert sind, ist zur Minimierung von ungenutztem Arbeitsspeicher bekannt, den innerhalb des Computersystems verfügbaren Arbeitsspeicher weitgehend den virtuellen Computereinheiten zuzuweisen, die aktuell der Produktion dienen, und die (eine oder mehreren) virtuelle(n) Ersatzcomputereinheit(en) nur mit einem erforderlichen minimalen Arbeitsspeicherkontingent auszustatten. Im Falle des Wechsels einer Ersatzcomputereinheit vom „Stand-by“ Zustand in den Arbeitszustand oder umgekehrt, also z.B. beim Ausfall bzw. der Wiederinbetriebnahme einer Produktionseinheit, muss dann der für die virtuellen Computereinheiten-insgesamt verfügbare Arbeitsspeicher entsprechend umverteilt werden. Speicher kann jedoch nur zwischen verschiedenen Computereinheiten innerhalb eines virtuellen Maschinensystems verschoben werden.
-
Im Zuge der fortschreitenden Konzentration von verschiedenen Produktionsläufen in Dienstleistungs-Rechenzentren werden dort häufig Computersysteme mit großer Rechenkapazität eingesetzt, auf denen gleichzeitig unterschiedliche Produktionsanwendungen betrieben werden, die gegenseitig durch getrennte Betriebssystemumgebungen abgeschottet sind. Sollen hier zusätzlich die Aspekte der Hochverfügbarkeit berücksichtigt werden, benötigt man verschiedene Computersysteme, deren Betriebssysteme bezüglich jeweils einer Produktionsanwendung zu einem Hochverfügbarkeitsverbund- zusammengeschlossen sind.
-
Wenn zudem Hochverfügbarkeit auch im Katastrophenfall gegeben sein.soll, bei dem der Ausfall den kompletten Server oder sogar das ganzeRechenzentrum betrifft, ist es zwingend geboten, dass der Hochverfügbarkeitsverbund aus unterschiedlichen, räumlich getrennten Computersystemen gebildet wird. Da das vorstehend beschriebene bekannte Verfahren zur Minimierung von ungenutztem Arbeitsspeicher jedoch auf ein Computersystem beschränkt ist, bleibt dann nur die Möglichkeit, den Arbeitsspeicher einer jeden Ersatzcomputereinheit von vornherein so zu dimensionieren, dass die Produktion nach einer eventuellen automatischen Übernahme hier nicht nur „rein funktional“, sondern auch mit einer „akzeptierbaren“ Performance abgewickelt werden kann. Es muss also insgesamt erheblich mehr Arbeitsspeicher vorgehalten werden, als für den Ablauf der Produktions-Funktionalität im Höchverfügbarkeitsverbund eigentlich zwingend erforderlich wäre.
-
Aus der
US 5,345,590 ist ein Verfahren und ein Apparat zur partitionsübergreifenden Steuerung in einer partitionierten Prozessumgebung bekannt. Ein logisch partitioniertes Datenverarbeitungssystem weist eine Policy mit in einer Partition vorzunehmenden Aktionen bei Fehler eines Betriebssystems in einer anderen Partition auf. Bei Auftreten eines solchen Fehlers kommuniziert die Überwachungspartition automatisch mit einem Hypervisor, um Aktionen zum Zurücksetzen und/oder Rekonfigurieren der fehlerhaften Partition einzuleiten. In einer Ausgestaltung mit mehreren Datenverarbeitungseinheiten wird beim Ausfall einer primären Datenverarbeitungseinheit eine Backup-Partition auf einer sekundären Datenverarbeitungseinheit aktiviert; zusätzlich wird eine andere Partition dieser sekundären Datenverarbeitungseinheit deaktiviert, sodass sämtlicher Speicher der sekundären Datenverarbeitungseinheit für die Backup-Partition zur Verfügung gestellt werden kann.
-
Aus dem Artikel „Memory Ressource Management in VMware ESX Server“ von C.A. Waldspurger, 5th Symposium on Operating \System Design and Implementation (2002), sind neue Mechanismen und Policies zur dynamischen Arbeitsspeicherverwaltung in ESX-Servern offenbart.
-
In der
US 2002/0013802 A1 sind Details zur Ressourcen-Verlagerung innerhalb eines Computersystems offenbart.
-
In der
US 2003/0217088 A1 sind Details zur Übernahme von Aktivitäten von und durch virtuelle Maschinen offenbart.
-
Eine Aufgabe der vorliegenden Erfindung ist es, ein alternatives hochverfügbares Computerverbundsystem mit gegebenenfalls auch räumlich getrennten Computersystemen zu beschreiben, bei dem der für Ersatzcomputereinheiten vorzuhaltende Arbeitsspeicher möglichst klein ist.
-
Die Aufgabe wird erfindungsgemäß durch ein hochverfügbares Computerverbundsystem gemäß Anspruch 1 und ein Verfahren gemäß Anspruch 8 gelöst.
-
Die Grundidee der Erfindung ist, auch in einem hochverfügbaren Computerverbundsystem, das mehr als ein.Computersystem aufweist, eine virtuelle Computereinheit als Ersatzcomputereinheit vorzusehen, wobei durch einen Hochverfügbarkeitsagenten erreicht wird, dass auch bei Ausfall einer Computereinheit außerhalb des ersten Computersystems, das die virtuelle Ersatzcomputereinheit aufweist, die Größe des Arbeitsspeichers der Ersatzcomputereinheit den Anforderungen entsprechend angepasst wird, so dass für diese Ersatzcomputereinheit nur wenig Arbeitsspeicher ungenutzt vorgehalten werden muss.
-
Erfindungsgemäß weist das erste Computersystem neben der virtuellen Ersatzcomputereinheit eine oder mehrere weitere virtuelle Computereinheiten auf. Der Hochverfügbarkeitsagent ist dazu eingerichtet, nach Erkennen des Ausfalls mindestens eines weiteren Computersystems, das in einem normalen Betriebszustand als Produktionssystem arbeitet der virtuellen Ersatzcomputereinheit die Aufgaben des Produktionssystems zu übertragen und die Steuereinrichtung anzuweisen, die Größe des zugeteilten Arbeitsspeichers der virtuellen Ersatzcomputereinheit zu vergrößern und die Größe des zugeteilten Arbeitsspeichers der weiteren virtuellen Computereinheiten zu verringern, wenn die virtuelle Ersatzcomputereinheit die Aufgaben des Produktionssystems übernimmt.
-
Dabei wird die Größe des den weiteren virtuellen Computereinheiten zuzuteilenden Arbeitsspeichers anhand vorgegebener Parameter, welche einen Minimalwert und/oder einen Präferenzwert für die Größe des Arbeitsspeichers umfassen, vom Hochverfügbarkeitsagenten bestimmtund an die Steuereinrichtung weitergereicht, die die Zuteilung des Arbeitsspeichers ausführt.
-
In einer weiteren Ausgestaltung der Erfindung sind die virtuellen Computereinheiten des ersten Computersystems verschiedenen Gruppen zuordenbar, und der Hochverfügbarkeitsagent ist dazu eingerichtet, nur bei den weiteren virtuellen Computereinheiten, die mit der virtuellen Ersatzcomputereinheit in einer Gruppe sind, die Größe des zugeteilten Arbeitsspeichers über die Steuereinrichtung zu verringern, wenn die virtuelle Ersatzcomputereinheit Aufgaben eines der weiteren Computersysteme übernommen hat.
-
Weitere Ausgestaltungen und vorteilhafte Weiterbildungen der Erfindung sind in den jeweiligen abhängigen Ansprüchen angegeben.
-
Zusammenfassend ergeben sich unter anderem folgende Vorteile:
- Es sind zum Umschaltzeitpunkt keine händischen Eingriffe erforderlich. Die Rekonfiguration des Arbeitsspeichers für die betroffenen virtuellen Computersysteme erfolgt vollautomatisch. Durch den Höchverfügbarkeitsagenten initiierte und durch die Steuereinrichtung ausgeführte Administrationsschritte bleiben dem Anwender verborgen. Ein Administrator braucht für die Rekonfiguration des Arbeitsspeichers nicht eingeschaltet zu werden.
-
Der insgesamt bereitzustellende Arbeitsspeicher für das erste Computersystem kann auf das für die Produktion an den Produktionseinheiten erforderliche Volumen und auf ein Mindestmaß für die virtuelle(n) Ersatzcomputereinheit(en) beschränkt werden. Dieser wird beim Übergang einer virtuellen Ersatzcomputereinheit in den Produktionszustand zwischen den vorhandenen Einheiten (oder einer Gruppe als Teilmenge davon) neu aufgeteilt, wobei für die virtuellen Computereinheiten, denen Speicher entzogen wird, ein „für die vorliegende Ausnahme-Situation akzeptabler“ Performance-Verlust entstehen kann, während umgekehrt die neue Produktionseinheit (die bisher Ersatzcomputereinheit war) durch die Zuteilung dieses Speichers ihrerseits in die Lage versetzt wird, ihre Aufgabe mit angemessener Performance zu erfüllen.
-
Bei einer Wiederherstellung der ursprünglichen Aufgabenverteilung durch Rückumschaltung der Produktions-Funktion auf die ursprüngliche Produktionseinheit wird die ursprüngliche Arbeitsspeicher-Verteilung an den virtuellen Computereinheiten wiederhergestellt.
-
Es kann vom Anwender/Administrator vorab über Parameter-Vorgaben individuell festgelegt werden, wieviel Speicher welchen virtuellen Computereinheiten im Bedarfsfall hinzugefügt oder entzogen werden soll.
-
Durch die Minimierung des vorzuhaltenden Arbeitsspeichers für die Ersatzcomputereinheiten ergibt sich gegenüber der bisherigen Vorgehensweise (Vorhalten von genügend Arbeitsspeicher, um einen akzeptablen Ablauf an der Ersatzcomputereinheit sicherstellen zu können) eine signifikante Kostenersparnis.
-
Die Beschaffung des für die übernehmende Ersatzcomputereinheit benötigten Arbeitsspeichers ist nicht auf virtuelle Computereinheiten, die Teil des Hochverfügbarkeitsverbundes sind, beschränkt. Das erste Computersystem kann virtuelle Computereinheiten aufweisen, die nicht als Teil des hochverfügbaren Computersystems betrieben werden, denen aber gegebenenfalls dennoch Arbeitsspeicher entzogen wird, der der virtuellen Ersatzcomputereinheit des Hochverfügbarkeitsverbundes bei einer Übernahme von Aufgaben zugeschlagen wird.
-
Durch die Parametrisierung der Speicherrekonfigurations-Prozedur ist es möglich, die virtuellen Computereinheiten
und die ihnen abzuziehenden Arbeitsspeicherkontingente konkret zu spezifizieren. Auf diese Weise kann die Beeinträchtigung der durch Wegnahme von Arbeitsspeicher betroffenen Computereinheiten auf „moderate, der aktuellen Ausnahme-Situation angemessene“ Performance-Einbußen beschränkt werden.
-
Im Folgenden wird die Erfindung anhand von drei Ausführungsbeispielen unter Zuhilfenahme von schematischen Zeichnungen näher erläutert.
-
Es zeigen
- 1 eine schematische Darstellung eines Ausführungsbeispiels eines erfindungsgemäßen hochverfügbaren Computerverbundsystems, und die
- 2 a-c schematisch die Umverteilungvon Arbeitsspeicher bei dem erfindungsgemäßen Verfahren für das in 1 gezeigte Ausführungsbeispiel und die
- 3 a-e analog zu den 2 a-c die Umverteilung von Arbeitsspeicher in einem weiteren Ausführungsbeispiel eines erfindungsgemäßen hochverfügbaren Computerverbundsystems.
-
Das in 1 gezeigte hochverfügbare Computerverbundsystem weist ein erstes Computersystem 1 und ein weiteres Computersystem 2 auf.. Das erste Computersystem 1 weist eine Steuereinrichtung 3 auf, die eine Monitoreinheit 3a und eine Virtualisierungsschicht 3b umfasst. Die Monitoreinheit 3a ist dabei eine virtuelle Computereinheit. Weiterhin sind eine virtuelle Ersatzcomputereinheit 4 sowie zwei weitere virtuelle Computereinheiten 5 (5a, 5b) vorgesehen. Die virtuellen Computereinheiten 3a, 4 und 5a,b werden durch die Virtualisierungsschicht 3b kontrolliert, z.B. in dem die Virtualisierungsschicht 3b den virtuellen Computereinheiten 3a, 4 und 5a,b Teile (auch Kontingente genannt) eines gesamten Arbeitsspeichers 6 des Computersystems 1 zuweist. Die Virtualisierungsschicht 3b wird hierbei ihrerseits von der Monitoreinheit 3a gesteuert. Auf der virtuellen Ersatzcomputereinheit 4 ist ein Hochverfügbarkeitsagent 7 vorgesehen, der mit der Monitoreinheit 3a verbunden ist und über diese auf die Virtualisierungsschicht 3b einwirkt. Ein weiterer Hochverfügbarkeitsagent 7* ist auf dem Computersystem 2 vorgesehen. Die beiden Computersysteme 1, 2 sind über ein Netzwerk 8 miteinander gekoppelt. Darüber hinaus ist ein gemeinsam genutzter Massenspeicher 9 vorgesehen, auf den beide Computersysteme 1 und 2 Zugriff haben.
-
In dem in 1 gezeigten Ausführungsbeispiel wird das hochverfügbare Computerverbundsystem aus den beiden Computersystemen 1 und 2 gebildet. Das Computersystem 2 fungiert dabei als reines Produktionssystem, das mit einer oder mehreren, hier nicht gezeigten Computereinheiten Dienste bereitstellt. Zur Sicherung der Verfügbarkeit der Dienste hält das Computersystem 1' eine redundante Computereinheit als Ausfallsicherung bereit. Gemäß der Erfindung ist das Computersystem 1 ein virtuelles Maschinensystem mit der virtuellen Ersatzcomputereinheit4 als redundanter Computereinheit. Selbstverständlich sind die Erfindung und die in diesem Ausführungsbeispiel gezeigten erfindungswesentlichen Ideen auf größere Computerverbundsysteme, in denen mehr als die gezeigten zwei Computersysteme 1 und 2 miteinander verbunden sind, übertragbar.
-
Im gezeigten Ausführungsbeispiel besteht die dem virtuellen Maschinensystem zugrunde liegende Steuereinrichtung 3 aus der Monitoreinheit 3a, die ihrerseits eine virtuelle Computereinheit ist, und der Virtualisierungsschicht 3b. Andere Konzepte zur Realisierung der Steuereinrichtung 3 eines virtuellen Maschinensystems sind hier aber ebenfalls möglich. Die Monitoreinheit 3a nimmt somit unter den virtuellen Computereinheiten eine Sonderstellung ein, da sie (neben eventueller Produktionsfunktionalität) der Administration der Virtualisierungsschicht 3b dient.
-
Die Virtualisierungsschicht 3b des Computersystems 1 weist vier logische Schnittstellen auf, mit denen sie mit den vier virtuellen Computereinheiten 3a, 4 und 5a,b verbunden ist. Die Anzahl der von der Virtualisierungsschicht 3b bereitgestellten virtuellen Computereinheiten ist dabei nicht auf vier, wie in diesem Beispiel festgelegt, beschränkt.
-
Ermöglicht wird die Verknüpfung beider Computersysteme 1 und 2 zu einem hochverfügbaren Computerverbundsystem durch die Verbindungen zwischen beiden Systemen im Zusammenspiel mit Hochverfügbarkeitsagenten, die die Verbindungen überwachen und Anwendungen auf Ersatzcomputereinheiten übertragen können. In diesem Ausführungsbeispiel sind dies der erfindungsgemäße Hochverfügbarkeitsagent 7 in der virtuellen Ersatzcomputereinheit 4 des Computersystems 1, der mit dem in der Figur gestrichelt eingezeichneten Hochverfügbarkeitsagenten 7* des Computersystems 2 zusammenarbeitet. Der Hochverfügbarkeitsagent 7* ist in diesem Ausführungsbeispiel nicht Gegenstand der Erfindung. Seine Aufgabe ist vielmehr darauf beschränkt, dem Hochverfügbarkeitsagenten 7 die Überwachung der Verfügbarkeit des Computersystems 2 zu ermöglichen. Falls es sich bei dem Computersystem 2 ebenfalls um ein virtuelles Maschinensystem handelt, kann auch der Hochverfügbarkeitsagent 7* erfindungsgemäß eingerichtet sein. Ein solcher Fall wird in dem im Zusammenhang mit 3 beschriebenen Ausführungsbeispiel vorgestellt.
-
Überwachte Verbindungen zwischen den beiden Computersystemen 1 und 2 sind das Netzwerk 8 und der gemeinsam genutzte Massenspeicher 9. Diese Verbindungen dienen dabei sowohl dem Austausch von Daten, als auch der Überwachung der Verfügbarkeit des Computersystems 2.
-
Zur Überprüfung der Verfügbarkeit können verschiedene, aus dem Stand der Technik bekannte Methoden eingesetzt werden.
-
Beispielsweise kann der Hochverfügbarkeitsagent 7* des Computersystems 2 dazu eingerichtet sein, in regelmäßigen Zeitabständen über das weitere Netzwerk 8 Meldungen über den Betriebszustand des Computersystems 2 an das Computersystem 1 zu schicken. Der Eingang dieser Meldungen wird von dem Hochverfügbarkeitsagenten 7 überwacht. Bleiben solche Meldungen länger als eine vorgegebene Zeitspanne aus, kann dieses als Indiz dafür gewertet werden, dass das Computersystem 2 nicht mehr ordnungsgemäß funktionsfähig ist. Ein weiterer, aus dem Stand der Technik bekannter Überwachungsweg ist, dass das Computersystem 2 in regelmäßigen Zeitabständen Meldungen über seinen Betriebszustand auf dem gemeinsam genutzten Massenspeicher 9 hinterlegt. Diese Meldungen werden in regelmäßigen Abständen von dem Hochverfügbarkeitsagenten 7 abgefragt, wobei auch hier ein Ausbleiben dieser Meldung ein Indiz für ein nicht ordnungsgemäßes Funktionieren des Computersystems 2 ist. Zur Minimierung der Wahrscheinlichkeit, dass ein System fehlerhaft als nicht ordnungsgemäß funktionierend deklariert wird, ist auch möglich, beide aus dem Stand der Technik bekannten Wege zu kombinieren. Die Überwachungsfunktion, die im Beispiel im Hochverfügbarkeitsagenten 7 integriert ist, kann auch von einer separaten Einheit ausgeführt werden, die ihrerseits dann eine entsprechende Meldung an den Hochverfügbarkeitsagenten 7 gibt, damit dieser auf einen detektierten Ausfall reagieren kann.
-
Neben der Überwachungsmöglichkeit, die der gemeinsam genutzte Massenspeicher 9 bietet, ist dieser Massenspeicher 9 für den Prozess der Übernahme von Funktionen eines ausgefallenen Systems auf die Ersatzcomputereinheit unerlässlich. Informationen über den Zustand einer zu übertragenden Anwendung müssen auf dem gemeinsam genutzten Massenspeicher 9 vorgehalten werden, damit sie für die virtuelle Ersatzcomputereinheit 3 zugänglich sind.
-
Anhand der 2 a-c wird im Folgenden ein solcher Übernahmeprozess und die damit verbundene Umverteilung des Arbeitsspeichers 6 für ein\Computerverbundsystem, wie es in 1 gezeigt ist; näher beschrieben.
-
2a zeigt beispielhaft die Arbeitsspeicheraufteilung im normalen Betriebszustand, bei dem Computersystem 2 funktionsfähig ist und als Produktionssystem arbeitet. Die Größe des aktuellen Arbeitsspeichers, über den die einzelnen Computersysteme bzw. -einheiten verfügen, wird durch die Höhe der jeweiligen Säulen in der Figur symbolisiert und ist zudem als „MEMSIZE“ angegeben. Bei den virtuellen Cömputereinheiten 4 und 5a,b des Computersystems 1 ist teilweise als weiterer Parameter „MINSIZE“ angegeben, dessen Bedeutung weiter unten erklärt ist.
-
Der Arbeitsspeicher des Computersystems 2 sei mit MEMSIZE=480 MB (Mega Byte) hinreichend groß, um einen optimalen Lauf für die Produktionsanwendung zu gewährleisten. Zur Minimierung der Ausfallzeiten im Fehlerfall oder aufgrund von Wartungsarbeiten wird das Produktions-Computersystem 2 durch die virtuelle Ersatzcomputereinheit 4 abgesichert. Beide bilden einen so genannten Verfügbarkeitsverbund, der in der Figur durch die Verbindung durch den gemeinsam genutzten Massenspeicher 9 angedeutet ist. Der für die Ausfallüberwachung des Produktions-Computersystems 2 notwendige Hochverfügbarkeitsagent 7 befindet sich auf der Ersatzcomputereinheit 4.
-
Innerhalb des Computersystems 1 sind die virtuellen Computereinheiten 3a und 5 wie folgt konfiguriert: Der Monitoreinheit 3a ist Arbeitsspeicher einer festen Größe MEMSIZE=32 MB zugeteilt. Die virtuelle Computereinheit 5a wird als Testeinheit mit einer aktuellen Arbeitsspeichergröße von MEMSIZE=160 MB eingesetzt. Testeinheit bedeutet in diesem Zusammenhang, dass diese Einheit nicht an der aktuellen Produktion beteiligt ist, sondern für Testzwecke eingesetzt wird. Die virtuelle Computereinheit 5b schließlich wird als Produktionseinheit mit einer aktuellen Arbeitsspeichergröße von MEMSIZE=224 MB betrieben. Die beiden virtuellen Computereinheiten 5a und 5b sind (im vorliegenden Beispiel) nicht Teil des Verfügbarkeitsverbundes, d.h. ihr korrekter Betrieb wird weder überwacht, noch wird ihre Funktion bei einem Ausfall von der Ersatzcomputereinheit 4 übernommen.
-
In 2b ist dargestellt, wie die Arbeitsspeicherverteilung erfindungsgemäß durch den Hochverfügbarkeitsagenten 7 der virtuellen Ersatzcomputereinheit 4 über die Monitoreinheit 3a und die Virtualisierungsschicht 3b geändert wird, wenn ein Ausfall des Computersystems 2 von dem Hochverfügbarkeitsagenten 7 detektiert wird.
-
In einem ersten Schritt wird den virtuellen Computereinheiten 5a und 5b Arbeitsspeicher entzogen. Die Größe, auf die der zugeteilte Arbeitsspeicher reduziert wird, wird dabei anhand des Parameters MINSIZE sowie vorgegebener Regeln durch den Hochverfügbarkeitsagenten 7 bestimmt und an die Monitoreinheit 3a weitergegeben. MINSIZE gibt dabei die Größe an Arbeitsspeicher an, die auf keinen Fall unterschritten werden darf. Als weitere Regel für die Speicherzuteilung ist in dies.em Ausführungsbeispiel angenommen, dass den virtuellen Computereinheiten Arbeitsspeicher zu gleichen Teilen entzogen wird. Die Monitoreinheit 3a setzt danach entsprechende Administrationskommandos an die Virtualisierungsschicht 3b ab, die die eigentliche Auf- und Zuteilung des gesamten Arbeitsspeichers 6 vornimmt.
-
Die MINSIZE der Computereinheit 5a, die als Testeinheit keine unmittelbare Bedeutung für die aktuelle Produktion hat, ist so bemessen, dass sie im Falle einer Übernahme der Produktionsfunktiönalität durch die virtuelle Ersatzcomputereinheit 4 zu einem kompletten Verlust der Performance für die laufenden Tests führt. Der Testbetrieb ist hiermit in der Zeit, in der die Produktion auf der Ersatzeinheit 4 läuft, entsprechend eingeschränkt oder steht sogar still.
-
Das der Computereinheit 5b normalerweise zugewiesene Arbeitsspeicherkontingent ist so bemessen, dass für die Fortführung des Betriebes nach Abzug derselben Speichergröße (128 MB) wie bei der Computereinheit 5a noch 96 MB verbleiben. Damit ist auch in der vorliegenden Ausnahmesituation eine zwar verminderte, aber angemessene Performance möglich.
-
In einem zweiten Schritt werden die belegten Blöcke des Arbeitsspeichers 6, wiederum durch Absetzen eines entsprechenden Administrationskommandos über die Monitoreinheit 3a an die Virtualisierungsschicht 3b, so verschoben, dass für die virtuelle Ersatzcomputereinheit 4 einzusammenhängender Speicherblock von 64 MB (zuvor) + 256 MB (freigemacht) bereitsteht.
-
Im dritten Schritt wird dieser Speicherblock schließlich der virtuellen Ersatzcomputereinheit 4 zugeteilt und somit verfügbar gemacht. Der sich ergebende Zustand ist in analog zur nochmals dargestellt.
-
Die beschriebene Aufspaltung der Speicherümverteilung in drei Schritte ist nicht grundsätzlich, für das erfindungsgemäße Verfahrenerforderlich, sondern ergibt sich aus der Art der Speicherverwaltung des Computersystems 1 des Ausführungsbeispiels. Bei anderen virtuellen Maschinensystemen kann Arbeitsspeicher eventuell auch in nicht zusammenhängenden Blöcken einer virtuellen Maschine zugeteilt werden. In einem solchen Fall kann beispielsweise auf den zweiten Schritt verzichtet werden.
-
Wenn das ausgefallene oder zu Wartungszwecken abgekoppelte Computersystem 2 wieder einsatzfähig ist, kann es wieder in das hochverfügbare Computerverbundsystem integriert werden. Eine Möglichkeit, diese Rückintegration durchzuführen, ist, das Computersystem 2 zunächst als Ersatzsystem in den Verfügbarkeitsverbund aufzunehmen, indem die Verbindung mit dem Computersystem 1 über das Netzwerk 8 und den gemeinsam genutzten Massenspeicher 9wiederhergestellt wird. Anschließend wird die in 2b dargestellte Arbeitsspeicherumverteilung rückwärts, d.h. in der 2b von rechts nach links, durchlaufen. Die Rückgabe des „entliehenen“ Arbeitsspeichers ist so parametrisiert, dass dieser nach Abgabe durch die virtuelle Ersatzcomputereinheit 4 an die weiteren virtuellen Computereinheiten 5a und 5b gleichmäßig verteilt wird. Nach Abschluss der Rückumschaltung stehen somit den weiteren virtuellen Computereinheiten 5a und 5b wieder die ursprünglichen Arbeitsspeicherkontingente zur Verfügung, sodass sowohl der Testbetrieb auf der Computereinheit 5a als auch die Produktion auf der Computereinheit 5b wieder „normal“ fortgesetzt werden können.
-
In den 3 a-e ist die Umverteilung des Arbeitsspeichers 6 für ein weiteres Ausführungsbeispiel eines hochverfügbaren Computerverbundsystems dargestellt.
-
Bei diesem Beispiel werden zwei Computersysteme 1 und 2 etwa gleicher Gesamtleistung betrachtet, die beide jeweils virtuelle Computereinheiten 3a, 4 und 5a sowie je einen Hochverfügbarkeitsagenten 7 in der Ersatzcomputereinheit 4 und der weiteren Computereinheit 5a aufweisen. Zur Unterscheidung sind die virtuellen Computereinheiten des Computersystems 2 mit einem * gekennzeichnet. Bei beiden Computersystemen ist eine der virtuellen Computereinheiten die Monitoreinheit 3a bzw. 3a*, die der Administration dient und zusammen mit der jeweiligen Virtualisierungsschicht 3b die Steuereinrichtung 3 des virtuellen Maschinensystems bildet. Die virtuelle Computereinheit 5a bzw. 5a* wird jeweils als Produktionseinheit betrieben. Hochverfügbarkeit wird für beide Computersysteme 1 und 2 dadurch erreicht, dass die Produktionseinheit des jeweils einen Computersystems 1 oder 2 durch die virtuelle Ersatzcomputereinheit 4* bzw. 4 abgesichert wird. Dieses Konzept ist auf beliebig viele an den Computersystemen 1 und 2 betriebene virtuelle Einheiten übertragbar.
-
In 3 a ist die Konfiguration des Ausführungsbeispiels mit der Arbeitsspeicherverteilung im Normalbetrieb verdeutlicht. Die gegenseitige Absicherung durch die Bildung von zwei Verfügbarkeitsverbünden wird durch den doppelt eingezeichneten gemeinsam genutzten Massenspeicher 9 symbolisiert. Dieses ist als eine logische Trennung zu verstehen, physikalisch kann es sich entweder um zwei getrennte Massenspeicher oder auch um ein und denselben Massenspeicher handeln.
-
Die virtuellen Computereinheiten 4 und 5a bzw. 4* und 5a* der beiden Verfügbarkeitsverbünde bilden jeweils eine Gruppe 10 bzw. 10*. In dieser Ausgestaltung der Erfindung findet im Falle eines Ausfalls eines Computersystems eine Umverteilung von Arbeitsspeicher nur innerhalb der Gruppe 10 bzw. 10* statt. Durch eine solche Abgrenzung kann erreicht werden, dass weitere virtuelle Computereinheiten, die die Computersysteme 1 und 2 aufweisen können, nicht von einem Ausfall innerhalb der Gruppe 10 bzw. 10* beeinträchtigt werden. Um bei dieser Konfiguration die beiden Computersysteme 1 und 2 im Normalbetrieb ähnlich intensiv auszulasten, ist es sinnvoll, die virtuellen Computereinheiten jeweils eines Verfügbarkeitsverbundes (also z.B. 4 und 5a* sowie 4* und 5a) mit einer dedizierten Rollenverteilung zu betreiben.. „Dediziert‟ bedeutet hierbei, dass die Rolle der Produktionseinheit und der Ersatzcomputereinheit im „Normalbetrieb“ genau jenen so bezeichneten Einheiten zugewiesen ist. Die Vertauschung der Rollen (Produktionseinheit wird zur Ersatzeinheit und umgekehrt) ist auf die Ausnahmefälle, wenn das Produktionssystem ausfällt oder gewartet werden muss, beschränkt.
-
Die Parameter MINSIZE der virtuellen Ersatzcomputereinheiten 4 und 4* sind so gewählt, dass das im Normalbetriebzugewiesene minimale Arbeitsspeicherkontingent gerade ausreicht, die Ersatzcomputereinheiten betriebsbereit zu erhalten und beim Ausfall der zugeordneten Produktionseinheiten deren Anwendungen zumindest starten zu können. Gegenüber einer Situation, bei der MINSIZE so klein gewählt ist, dass nur die Betriebsbereitschaft aufrecht erhalten werden kann, ergibt sich auf diese Weise ein Zeitvorteil bei der Übernahme, da parallel zur Arbeitsspeicherumverteilung die Anwendung bereits geladen und gestartet werden kann. Solange die Arbeitsspeicherumverteilung noch nicht abgeschlossen ist, ist die Ausführung unter Umständen zwar verlangsamt, da eine eventuell notwendige Speicher-Auslagerung zu längeren Ausführungszeiten führt. Dennoch ergibt sich gegenüber einer Situation, bei der mit dem Laden und Starten einer Anwendung erst nach Abschluss der Umverteilung begonnen wird, ein Zeitvorteil. Nach erfolgter Arbeitsspeicherumverteilung steht dann der Ersatzcomputereinheit genügend Arbeitsspeicher zur Verfügung, um die Anwendung (der Ausnahmesituation angemessen) effizient betreiben zu können.
-
Tritt nun an einem der beiden Computersysteme 1 oder 2 ein Fehler auf, der dazu zwingt, die dort laufende Produktion durch die virtuelle Ersatzcomputereinheit 4* bzw. 4 zu übernehmen,wird der übernehmenden Ersatzcomputereinheit 4* bzw. 4 zulasten der am selben Computersystem 2 bzw. 1 als aktive Produktionseinheit eingesetzten virtuellen Computereinheit 5a* bzw. 5a weiterer Arbeitsspeicher zugewiesen. Es handelt sich hierbei gegenüber dem Normalbetrieb um eine Ausnahmesituation, in der beide Produktionen nur mit verminderter Effizienz ablaufen können. Damit den betroffenen Produktionseinheiten durch die Übernahme nicht der „gesamte“ Arbeitsspeicher entzogen wird und deren Produktionsablauf hierdurch möglicherweise zum Stillstand kommt, wird dort die MINSIZE üblicherweise höher angesetzt als bei den Ersatzcomputereinheiten 4 und 4*.
-
In 3b ist die Arbeitsspeicherumverteilung innerhalb des Computersystems 1 dargestellt, wenn das Computersystem 2 als Ganzes oder die hier relevante virtuelle Computereinheit 5a* des Computersystems 2 ausfällt oder zu Wartungszwecken abgeschaltet wird. Analog zu 2b wird in 3 aufeinander folgenden Schritten der der virtuellen Computereinheit 5a zugeteilte Arbeitsspeicher zunächst verringert, dann der freigemachte Speicherblock verschoben und schließlich der virtuellen Ersatzcomputereinheit 4 zugeschlagen.
-
Die sich ergebende Situation ist in 3c wiedergegeben. Die beiden virtuellen Computereinheiten 4 und 5a des Computersystems 1 fungieren jetzt als Produktionseinheiten mit einer Kapazität von je 224 MB. Die Produktionsläufe haben unter Umständen dann zwar nicht mehr genügend Arbeitsspeicher für einen optimalen Ablauf, die Performance ist aber für beide unter Berücksichtigung der vorliegenden Ausnahmesituation noch „angemessen“.
-
Sobald die ausgefallene Computereinheit 5a* des Computersystems 2 für die Produktion wieder zur Verfügung steht, kann die Produktion zurückgeschaltet und der an die Ersatzcomputereinheit 4 „ausgeliehene“ Arbeitsspeicher an die Einheit 5a des Computersystems 1 zurückgegeben werden. Beide Produktionen laufen dann wieder mit der optimalen Performance auf ihren ursprünglichen. Computersystemen.
-
Die 3d und 3e zeigen analog zu den 3b und 3c den Fall, bei dem das Computersystem 1 als Ganzes oder die relevante virtuelle Computereinheit 5a des Computersystems 1 ausfällt und die virtuelle Ersatzcomputereinheit 4* des Computersystems 2 zur Übernahme der Aufgaben der ausgefallenen Produktionseinheit eingesetzt wird.
-
Neben dem in den Ausführungsbeispielen beschriebenen Verfah- ren zur Arbeitsspeicherumverteilung, bei dem die Berechnung des den virtuellen Computereinheiten 4 und 5 zuzuteilenden Arbeitsspeicherkontingents nur auf dem Parameter MINSIZE beruht, sind weitere Berechnungsmethoden denkbar. Beispielsweise kann als weiterer Parameter eine PREFERRED SIZE eingesetzt werden, die ein gewünschtes Kontingent angibt, das aber, falls nicht genügend Speicher vorhanden ist, auch bis zur MINSIZE unterschritten werden kann. Darüber hinaus können Prioritäten vergeben werden, so dass bestimmten Computereinheiten bevorzugt (bei niedriger Prioritätszahl) Arbeitsspeicher entzogen wird.
-
Weiterhin wird bei den gezeigten Ausführungsbeispielen der virtuellen Ersatzcomputereinheit 4 Arbeitsspeicher einer Größe zugeteilt, die sich über Parameter bestimmt, die für die weiteren virtuellen Computereinheiten 4 vorgegeben sind. Es ist auch möglich, für die virtuelle Ersatzcomputereinheit 4 selbst Parameter, z.B. PREFERRED SIZE, vorzugeben, die bei der Berechnung der im Übernahmefall zuzuteilenden Arbeitsspeicherkontingente berücksichtigt werden.
-
Bezugszeichenliste
-
- 1
- erstes Computersystem
- 2
- weiteres Computersystem
- 3
- Steuereinrichtung
- 3a
- Monitoreinheit
- 3b
- Virtualisierungsschicht
- 4
- virtuelle Ersatzcomputereinheit
- 5a, 5b
- weitere virtuelle Computereinheiten
- 6
- gesamter Arbeitsspeicher
- 7
- Hochverfügbarkeitsagent
- 8
- Netzwerk
- 9
- gemeinsam genutzter Massenspeicher