DE19836347A1 - Fehlertolerantes Computersystem - Google Patents

Fehlertolerantes Computersystem

Info

Publication number
DE19836347A1
DE19836347A1 DE19836347A DE19836347A DE19836347A1 DE 19836347 A1 DE19836347 A1 DE 19836347A1 DE 19836347 A DE19836347 A DE 19836347A DE 19836347 A DE19836347 A DE 19836347A DE 19836347 A1 DE19836347 A1 DE 19836347A1
Authority
DE
Germany
Prior art keywords
event
primary
backup
execution
fault
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.)
Granted
Application number
DE19836347A
Other languages
English (en)
Other versions
DE19836347C2 (de
Inventor
Mikael Ronstroem
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to DE19836347A priority Critical patent/DE19836347C2/de
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Priority to JP2000565464A priority patent/JP2002522845A/ja
Priority to KR1020017001732A priority patent/KR100575497B1/ko
Priority to AU57316/99A priority patent/AU5731699A/en
Priority to EP99944347A priority patent/EP1110148B1/de
Priority to PCT/EP1999/005739 priority patent/WO2000010087A1/en
Priority to BR9912879-9A priority patent/BR9912879A/pt
Priority to CA2339783A priority patent/CA2339783C/en
Priority to CNB998095893A priority patent/CN1137439C/zh
Priority to US09/371,409 priority patent/US6438707B1/en
Publication of DE19836347A1 publication Critical patent/DE19836347A1/de
Application granted granted Critical
Publication of DE19836347C2 publication Critical patent/DE19836347C2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error 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 maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error 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 with a single idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2041Error 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 with more than one idle spare processing component

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)

Abstract

Fehlertolerantes Computersystem mit verminderter Kommunikation. Ein primäres System führt Ereignisvorgänge in Reaktion auf empfangene Befehle aus. Jedesmal, wenn die Ausführung eines Ereignisvorgangs angehalten wird, aufgrund einer normalen Beendigung oder einer Unterbrechung, erzeugt ein Ereignisgenerator eine Ereignisnachricht, die den Typ des Ereignisvorgangs und den Grund oder einen Zeitpunkt für ein Anhalten des Ereignisvorgangs anzeigt. Die Ereignisnachricht wird verwendet, um ein Backup-System anzuweisen, den gleichen Ereignisvorgang auszuführen. Da die Ereignisnachricht auch den Grund und die Zeitvorgabe für ein Anhalten des Ereignisvorgangs bestimmt, kann die Ausführung des Ereignisvorgangs am Backup-System repliziert werden. Somit wird das primäre System und das Backup-System synchronisiert sein. Zumindest ein Standby-System kann bereitgestellt werden, um in einer Ereignisdatei die Abfolge von Ereignisnachrichten aufzuzeichnen und um eine Archivkopie von Speicherinhalten des primären Systems zu speichern. Die Ereignisdatei mit der Archivkopie kann verwendet werden, um den Systemzustand des primären Systems wiederherzustellen.

Description

Die vorliegende Erfindung betrifft ein fehlertolerantes Computersystem sowie ein Verfahren für einen fehlertoleranten Betrieb eines Computersystems.
Computer oder Computersysteme werden vermehrt auch für fehlerempfindliche Anwendungen verwendet, wie beispielsweise Banksysteme oder Telekommunikationsnetzwerke. Wenn ein Computer ausfällt, oder auch schon im Fall eines einzigen fehlerhaften Vorgangs, können ernste Probleme auftreten. In einem Banksystem kann beispielsweise ein Geldbetrag fälschlicherweise zwischen Konten übertragen werden, in einem Telekommunikationssystem können Kommunikationsleitungen unvermittelt unterbrochen werden, unerwünschte Verbindungen können eingerichtet werden, oder das System kann vollständig für eine längere Zeitperiode ausfallen. Es ist offensichtlich wünschenswert, solche Probleme zu vermeiden.
Ein allgemeines bekanntes Verfahren, die obigen Probleme zu vermeiden, ist es, ein Computersystem auf einer Eins-zu-Eins- Basis zu replizieren und auf beiden Computersystemen die gleiche Anweisungsabfolge auszuführen. Dies erfordert jedoch eine hohe (Zwischeneinheits-)Kommunikationslast zwischen den zwei Computersystemen, da Betriebsvorgänge auf einem sehr detaillierten Niveau überprüft und synchronisiert werden müssen. Darüber hinaus werden Computer vermehrt mit hohen Frequenzen betrieben, bei denen das Handhaben der Kommunikationen zwischen den Systemen ein wichtiger Aufwandsfaktor wird.
Ein Ansatz, eine Kommunikationslast zwischen Einheiten zu vermindern, wird in der US 5,544,304 beschrieben. Befehle werden sowohl in einer aktiven als auch in einer Standby- Einheit empfangen und in eine Warteschlange eingeordnet. Nur die aktive Einheit verarbeitet die Befehle. Das System stellt weiter Kurznachrichten bereit, die zwischen den aktiven und Standby-Einheiten übertragen werden und den Status bestimmter Befehle abfragen oder angeben. Ein periodisches Abgleichen zwischen den zwei Einheiten wird ausgeführt, unter Verwendung von kurzen Signalen, die zwischen Steuerungen der aktiven und Standby-Einheit ausgetauscht werden.
In einem Fehlerfall benötigt dieses System jedoch lange Zeit, um den Betrieb unter Verwendung der Standby-Einheiten wieder hochzufahren, da mit einem lediglich periodisch ausgeführten Abgleichen zwischen den Einheiten kein hohes Synchronisationsniveau eingehalten werden kann.
Es ist daher Aufgabe der Erfindung, ein fehlertolerantes Computersystem und ein Verfahren zum Betreiben eines fehlertoleranten Computersystems bereitzustellen, das eine geringe Kommunikationslast zwischen einem primären System und einem Backup-System erfordert, während ein hohes Synchronisationsniveau ermöglicht wird.
Diese Aufgabe der Erfindung wird durch die Merkmale der unabhängigen Ansprüche 1 und 13 gelöst.
In Übereinstimmung mit der Erfindung umfaßt ein primäres System eine primäre Zentralverarbeitungseinheit, eine primäre Speichereinheit für ein Speichern von Systemdaten und Anwendungsdaten, und einen Ereignisgenerator für ein Erzeugen einer Ereignisnachricht jedesmal dann, wenn die primäre Zentralverarbeitungseinheit die Ausführung eines Ereignisvorgangs anhält. Die Ereignisnachricht umfaßt zumindest Information bezüglich des Typs von Ereignisvorgang und bezüglich des Grundes für ein Anhalten der Ausführung des Ereignisvorgangs. Zumindest ein Backup-System wird bereitgestellt, das eine Backup-Zentralverarbeitungseinheit umfaßt, eine Backup-Speichervorrichtung und einen Puffer für ein Empfangen und Zwischenspeichern einer Sequenz von Ereignisnachrichten, die vom primären System empfangen werden. Eine Backup-Steuervorrichtung steuert die Ausführung von Ereignisvorgängen gemäß jeweiliger Ereignisnachrichten. Die Ereignisvorgänge werden auf identische Weise am primären System und am Backup-System ausgeführt. Bevorzugterweise berichtet die primäre Verarbeitungseinheit eine Ereignisnachricht dem Backup-System nur dann, wenn die Ausführung eines Ereignisvorgangs angehalten wird. Dies erlaubt eine wesentliche Verminderung von Kommunikationen zwischen den Einheiten, eine detaillierte Überprüfung des Zustandes des zumindest einen Backup-System durch das primäre System wird nicht länger benötigt.
Da an dem zumindest einen Backup-System alle notwendige Information über den Ereignisvorgang und den Grund für ein Anhalten der Ausführung des Ereignisvorgangs mittels der Ereignisnachricht bekannt ist, ist das zumindest eine Backup- System in der Lage, den Ablauf der Ausführung der Ereignisvorgänge am primären System zu replizieren. Dieses schließt Daten ein, auf die zugegriffen wurde, die erzeugt oder auf andere Weise betroffen sind, und schließt ein Anhalten eines Ereignisvorganges an genau der gleichen Stelle oder gleichen Ausführungszeit ein, d. h. nach der gleichen Anzahl von Instruktionen, wie zuvor am primären System.
Mit einer exakt identischen Ausführung von Ereignisvorgängen am primären System und dem zumindest einen Backup-System kann ein hoher Synchronisationsgrad zwischen den Zuständen des primären Systems und dem zumindest einen Backup-System einschließlich von Speicherinhalten erzielt werden. Es ist nicht länger notwendig, beispielsweise Speichervorrichtungen auf einem detaillierten Niveau zu überprüfen oder Änderungen der Speichervorrichtung zu berichten, wie es vorher erforderlich war. Das zumindest eine Backup-System wird genau die gleichen Änderungen der Datenbank oder Systemdaten zuführen, wie sie beim primären System zugeführt wurden.
In einem vorteilhaften Ausführungsbeispiel der Erfindung werden zwei mögliche Gründe für ein Anhalten eines Ereignisvorgangs betrachtet. Erstens kann ein Ereignisvorgang normal beendet werden, d. h. falls die Ausführung des entsprechenden Befehls vervollständigt worden ist. Als zweites kann ein Ereignisvorgang unterbrochen werden, beispielsweise durch einen weiteren Befehl, der die Ausführung eines weiteren Ereignisvorgangs anfordert und ein höheres Prioritätsniveau aufweist. Somit wird die Ereignisnachricht Information darüber einschließen, ob der Ereignisvorgang aufgrund eines normalen Beendens oder aufgrund einer Unterbrechung angehalten wurde.
In einem weiteren vorteilhaften Ausführungsbeispiel der Erfindung wird eine Vorrichtung bereitgestellt, um Ereignisdaten zu erzeugen, die eine Ausführung eines Ereignisvorgangs beschreiben, einerseits am primären System und andererseits am zumindest einen Backup-System. Weiter wird eine Vorrichtung bereitgestellt, um basierend auf einem Vergleich der am primären System und an dem zumindest einen Backup-System erzeugten Ereignisdaten einen Systemfehler zu erfassen. Somit kann bestimmt werden, ob der Betrieb des Computersystems fehlerfrei ist. Im Falle, daß festgestellt wird, daß ein Fehler am primären System aufgetreten ist, kann ein Backup-System ausgewählt werden, Funktionen als neues primäres System zu übernehmen. Ein Fehler kann einen Softwarefehler oder einen Hardwarefehler am primären System oder einen Hardwarefehler am Backup-System einbeziehen.
Eine Anzahl von Backup-Systemen kann bereitgestellt werden, um weiter die Fehlertoleranz des Systems zu erhöhen. Eine Vielzahl von Backup-Systemen erleichtert beispielsweise eine Fehlerlokalisation.
Weiter kann vorteilhaft zumindest ein Standby-System bereitgestellt werden, um eine Archivkopie von Systemdaten und Anwendungsdaten zu empfangen und zu speichern. Das Standby-System kann auch die Abfolge von Ereignisnachrichten in einer Ereignisdatei aufzeichnen, die am primären System erzeugt wurden. Das Standby-System kann ausgelegt sein, Ereignisvorgänge in Entsprechung zu den in der Ereignisdatei gespeicherten Ereignisnachrichten auszuführen, unter Verwendung der Archivkopie von System und Anwendungsdaten. Somit kann, falls alle Ereignisse nach einem Erzeugen der Archivkopie am Standby-System bekannt sind, die Archivkopie der System und Anwendungsdaten auf eine gegenwärtige Version aktualisiert werden, ohne einen Verlust von Daten oder Ereignisvorgängen. Die Standby-Systeme fügen weitere Fehlertoleranzfähigkeiten hinzu, da zu einem beliebigen Zeitpunkt der Zustand des primären Systems wiederhergestellt werden kann.
Das primäre System kann mit einer Vielzahl von externen Vorrichtungen verbunden sein, die durch regionale Prozessoren oder verteilte zentrale Prozessoren des Computersystems dargestellt sein können. Ereignisvorgänge können durch ein Ausführen eines Signals von einem regionalen Prozessor und durch ein Ausführen eines Signals von einem verteilten zentralen Prozessor dargestellt sein. Weiter kann ein Ereignisvorgang durch einen Prüfbetriebsvorgang einer Prozessorbefehlsliste (Jobtabelle) aufgrund einer internen Taktunterbrechung dargestellt werden und kann weiter durch eine interne Funktion des primären Systems dargestellt sein. Indem externe Ereignisvorgänge definiert sind, hervorgerufen durch Befehle von regionalen Prozessoren oder verteilten zentralen Prozessoren, und weiter interne Ereignisvorgängen definiert sind, hervorgerufen durch Taktunterbrechungen oder andere Systemfunktionen, können alle möglichen Änderungen des Systemzustands des primären Systems beschrieben werden.
Vorteilhafterweise kann eine Ereignisnachricht weiter eine Abfolgezahl einschließen, die eine Ausführungssequenz von Ereignisvorgängen anzeigt, beispielsweise dann, wenn die Sequenz von Ereignisvorgängen nicht durch die Sequenz des Empfangs von Ereignisnachrichten am zumindest einen Backup- System festgelegt wird. Weiter kann die Ereignisnachricht die Anzahl von ausgeführten Instruktionen beinhalten, beispielsweise, um ein Spezifizieren von Ereignisvorgangs- Anhaltebedingungen zu erleichtern. Eine Ereignisnachricht kann weiter Registerzustände am primären System beim Eintreten einer Unterbrechung beinhalten, wie auch Information über Daten, die durch den Ereignisvorgang definiert wurden, oder auf die zugegriffen wurde. Indem diese Information in eine Ereignisnachricht zusammengefaßt wird, wird es möglich, noch vollständiger einen Ereignisvorgang zu definieren, so daß er am zumindest einen Backup-System auf genau die gleiche Weise ausgeführt und angehalten werden kann.
Im Falle, daß ein Softwarefehler am primären System festgestellt wird, kann die Ereignisnachricht Information beinhalten, die den Softwarefehler bestimmt, und weiter Information, die es dem Backup-System ermöglicht, den Softwarefehler zu vermeiden. Nachfolgend kann das Backup- System Betriebsvorgänge übernehmen.
In Übereinstimmung mit einem weiteren vorteilhaften Ausführungsbeispiel der Erfindung kann eine Vielzahl von Verarbeitungsknoten bereitgestellt werden, die jeder ein primäres System für einen ersten Verarbeitungsknoten und ein Backup-System für einen zweiten Verarbeitungsknoten beinhalten. Weiter kann jeder Verarbeitungsknoten ein Standby-System für einen dritten Verarbeitungsknoten beinhalten. Somit kann jeder Knoten zur gleichen Zeit als ein primäres System und/oder Backup-System und/oder Standby- System arbeiten. Vorzugsweise wird eine Vorrichtung für eine Kommunikation zwischen allen Knoten bereitgestellt. Es ist möglich, daß die primäre Verarbeitungsvorrichtung, die Backup-Zentralverarbeitungseinheit und die Standby- Zentralverarbeitungseinheit durch eine einzige Datenverarbeitungseinheit realisiert werden.
Weitere vorteilhafte Ausführungsbeispiele der Erfindung werden in weiteren abhängigen Ansprüchen beschrieben.
Die Erfindung kann besser verstanden werden, wenn die folgende Beschreibung von bevorzugten Ausführungsbeispielen der Erfindung zusammen mit den begleitenden Zeichnungen gelesen wird:
Fig. 1 zeigt ein Ausführungsbeispiel des fehlertoleranten Computersystems gemäß der Erfindung;
Fig. 2 zeigt ein weiteres Ausführungsbeispiel des fehlertoleranten Computersystems gemäß der Erfindung;
Fig. 3 zeigt ein Flußdiagramm eines Beispiels des Verfahrens zum fehlertoleranten Betrieb eines Computersystems gemäß der Erfindung;
Fig. 4 zeigt ein zweites Beispiel des Verfahrens eines fehlertoleranten Betriebs eines Computersystems gemäß der Erfindung;
Fig. 5 zeigt ein drittes Beispiel des Verfahrens eines fehlertoleranten Betriebs eines Computersystems gemäß der Erfindung;
Fig. 6 zeigt ein Zeit/Flußdiagramm eines Beispiels eines Betriebs des Systems gemäß der Erfindung, einschließlich eines primären Systems und eines Backup-Systems;
Fig. 7 veranschaulicht ein Beispiel eines Betriebs eines Ausführungsbeispiels des Systems gemäß der Erfindung, einschließlich eines primären Systems und eines Standby-Systems; und
Fig. 8 veranschaulicht eine Vielzahl von Verarbeitungsknoten, von denen jeder ein primäres System, ein Backup-System und ein Standby-System einschließt.
Im folgenden werden bevorzugte Ausführungsbeispiele der Erfindung mit Bezug auf die Fig. 1 bis 7 beschrieben. In den Figuren bezeichnen gleiche Bezugszeichen gleiche Bestandteile.
Fig. 1 zeigt ein erstes Ausführungsbeispiel des fehlertoleranten Computersystems gemäß der Erfindung. Das fehlertolerante Computersystem aus Fig. 1 besteht aus einem primären System 100 (PS), einem Backup-System 110 (BS), einer Fehlererfassungsvorrichtung 120 (FD) und einer Vielzahl von externen Vorrichtungen 141, 142, 143 und 144. Eine zentrale Kommunikationsvorrichtung 130 ist bereitgestellt, die eine Kommunikation der einzelnen Systemkomponenten untereinander erlaubt.
Das fehlertolerante Computersystem des Ausführungsbeispiels der Erfindung gemäß Fig. 1 kann in einer beliebigen fehlerempfindlichen Anwendung verwendet werden, beispielsweise Banksystemen, Buchungssystemen und Telekommunikationsnetzwerken.
Gemäß der Erfindung ist das primäre System für Betriebsvorgänge verantwortlich, d. h. das primäre System führt alle Betriebsvorgänge aus, die für die Anwendungen notwendig sind. Im vorliegenden Fall ist das primäre System, beispielsweise in einem Telekommunikationsnetzwerk, für ein Empfangen für Kommunikationsleitungsanforderungen verantwortlich, es ist für ein Einrichten von Kommunikationen verantwortlich und für ein Handhaben von Teilnehmerservicedaten, Teilnehmerortsdaten etc.
Das Backup-System führt nicht direkt Funktionen oder Betriebsvorgänge im System aus, sondern stellt die vornehmliche Ressource für ein Ermöglichen eines fehlertoleranten Betriebs des Computersystems bereit.
Die externen Vorrichtungen 141-144 sind vorzugsweise für eine Kommunikation mit dem primären System 100 angeordnet, für ein Absetzen von Befehlen oder Erzeugen von Ereignissen am primären System. In einem Telekommunikationsnetzwerk können die externen Vorrichtungen durch Vermittlungsvorrichtungen dargestellt werden, regionale Prozessoren eines verteilten Telekommunikationsnetzwerks oder können Einheiten eines verteilten zentralen Verarbeitungssystems sein, beispielsweise in einem Mobilvermittlungszentrum eines Telekommunikationsnetzwerks. Die externen Vorrichtungen können auch Kommunikationsanforderungen absetzen, Befehle, die Information bezüglich Teilnehmerdiensten anfordern, oder Benachrichtigungen über Aktionen aussenden, die von den externen Vorrichtungen getätigt werden, etc.
Alle Interaktionen mit externen Vorrichtungen, beispielsweise Befehle, werden vorzugsweise durch das primäre System 100 ausgeführt. Das Backup-System 110 kann auch Befehle empfangen kann, es werden diese vorzugsweise jedoch nicht direkt ausführt.
In Abhängigkeit von der Struktur der internen Kommunikationsvorrichtung 130 aus Fig. 1 sind alle Komponenten des fehlertoleranten Computersystems miteinander über die Kommunikationsvorrichtung 130 verbunden, in anderen Ausführungsbeispielen können jedoch die externen Vorrichtungen 141-144 nur mit dem primären System 100 verbunden sein. In Abhängigkeit vom Betrieb des fehlertoleranten Computersystems, beispielsweise bei einem Systemfehler am primären System, können die externen Vorrichtungen 141-144 vom primären System abgetrennt werden, und mit dem Backup-System 110 verbunden werden. Für diesen Zweck kann eine Schaltvorrichtung bereitgestellt werden, dies stellt jedoch keinen Teil der Erfindung dar und wird daher nicht weiter beschrieben.
Das primäre System 100 umfaßt mehrere Komponenten für ein Betreiben des Computersystems gemäß der Erfindung. Vorzugsweise umfaßt das primäre System eine primäre Zentralverarbeitungseinheit 101 (P-CPU), um Befehle zu empfangen und zu verarbeiten, und um eine Kommunikation mit den externen Vorrichtungen 141-144 zu tätigen.
Darüber hinaus umfaßt das primäre System 100 eine Speichervorrichtung 102 (PM) für ein Speichern von Systemdaten bezüglich des Systemzustands des primären Systems, wie auch von Anwendungsdaten bezüglich der Anwendung. Im vorliegenden Ausführungsbeispiel können Teilnehmerdaten und interne Daten innerhalb der primären Speichervorrichtung abgespeichert sein. In Fig. 1 wird die primäre Speichervorrichtung als eine einzelne Einheit gezeigt, es kann jedoch die primäre Speichervorrichtung 102 auch in getrennte Einheiten aufgeteilt sein. Eine erste Einheit könnte Systemdaten bezüglich des Systemzustands des primären Systems speichern, eine zweite Einheit der primären Speichervorrichtung könnte eine Datenbank für ein Speichern von Teilnehmerdaten sein.
Betriebsvorgänge der primären zentralen Verarbeitungseinheit 101 werden durch Befehle gesteuert, wie dies im Stand der Technik bekannt ist. Betriebsvorgänge der primären zentralen Verarbeitungseinheit 101 werden beispielsweise den Systemzustand oder Inhalte der primären Speichervorrichtung betreffen.
Ein Befehl könnte durch eine der externen Vorrichtungen 141-144 ausgegeben werden oder könnte intern erzeugt werden, in Übereinstimmung mit bestimmten Systemzuständen des primären Systems 100. In beiden Fällen wird die primäre Zentralverarbeitungseinheit 101 bei Empfang eines Befehls oder Ereignisses aktiv werden und den Befehl in einem Ereignisvorgang ausführen. Ein Ereignisvorgang kann eine Änderung von in der primären Speichervorrichtung 102 gespeicherten Daten hervorrufen und kann eine Kommunikation mit einer der externen Vorrichtungen 141-144 zur Folge haben, usw. Während der Ausführung eines Ereignisvorgangs können weitere Befehle oder Anweisungen für eine Ausführung von weiteren Ereignisvorgängen erzeugt werden. Ein Befehl hat vorzugsweise eine Abfolge von Systembetriebsvorgängen am primären System zur Folge, einschließlich Betriebsvorgängen an der primären zentralen Verarbeitungseinheit, und kann Veränderungen von innerhalb der primären Speichervorrichtung gespeicherten Daten beinhalten, beispielsweise von Anwendungsdaten oder Systemdaten.
Wie bei digitaler Signalverarbeitung üblich, kann die Ausführung eines Ereignisvorgangs aufgrund des Empfangs eines Befehls oder Ereignisses im Rahmen einer normalen Beendigung abgeschlossen werden oder kann durch einen weiteren Befehl oder ein weiteres Ereignis unterbrochen werden, beispielsweise mit einem höheren Prioritätsniveau. In diesem Fall werden gegenwärtige Betriebsvorgänge an der primären zentralen Verarbeitungseinheit 101 angehalten, der Befehl mit der höheren Priorität wird ausgeführt und danach kann die Ausführung des ersten Befehls wieder aufgenommen werden. Eine Unterbrechung (Interrupt) kann beispielsweise bei einer Benachrichtigung durch eine interne Zeitvorgabe stattfinden oder kann von der Außenwelt empfangen werden. Das Auftreten einer Unterbrechung muß nicht unbedingt auf eine Interaktion mit der Außenwelt beruhen, das Auftreten einer Unterbrechung kann auch durch interne Ereignisse innerhalb des primären Systems bedingt sein. Daher kann der exakte Zeitpunkt von Befehlen, Ereignisse oder Unterbrechungen innerhalb des primären Systems nicht einfach bestimmt werden, und es ist somit nicht ausreichend, beispielsweise lediglich das Auftreten von Befehlen oder Unterbrechungen zu berichten. Es ist vielmehr notwendig, daß alle Umstände und der genaue Zeitpunkt einer Unterbrechung berichtet werden.
Um sicherzustellen, daß das Backup-System den gleichen Zustand und den gleichen Speicherinhalt wie das primäre System aufweist, wird in Übereinstimmung mit der Erfindung ein Ereignisgenerator 103 (EG) bereitgestellt, der mit der primären zentralen Verarbeitungseinheit 101 verbunden ist, um jedesmal dann eine Ereignisnachricht zu erzeugen, wenn die primäre Zentralverarbeitungseinheit die Ausführung eines Ereignisvorgangs unterbricht bzw. anhält (die Ausführung eines Befehls). Wie oben ausgeführt, ist es für eine Synchronisation zwischen einem Backup-System und einem primären System nicht ausreichend, lediglich Befehle oder Ereignisse zu berichten. Es ist auch nötig, weitere Information über den Verlauf der Ausführung eines Ereignisvorgangs mitzuteilen. Daher schließt die Ereignisnachricht zumindest Information über den Typ von einem an dem primären System ausgeführten Ereignisvorgang ein und schließt weitere Information über den Grund und die Umstände für ein Anhalten der Ausführung des Ereignisvorgangs ein.
Das Backup-System 110 schließt ähnlich zum primären System vorzugsweise eine Backup-Zentralverarbeitungseinheit 111 (B- CPU) ein, und eine Backup-Speichervorrichtung 112 (BM). Wie die primäre Speichervorrichtung, ist die Backup- Speichervorrichtung dazu ausgelegt, Systemdaten bezüglich des Systemzustands des Backup-Systems und auch Anwendungsdaten zu speichern.
Weiter umfaßt das Backup-System einen Puffer 113 (B), um eine am primären System 100 erzeugte Abfolge von Ereignisnachrichten zu empfangen und zwischenzuspeichern und umfaßt eine Backup-Steuervorrichtung 114 (BC), die mit der zentralen Backup-Zentralverarbeitungseinheit verbunden ist, um die Ausführung von Ereignisvorgängen zu planen, beispielsweise in der Abfolge eines Empfangs von entsprechenden Ereignisnachrichten vom primären System im Puffer, oder in Übereinstimmung mit einem Ereignisvorgangs- Indikator, um eine Ausführungsabfolge von Ereignisvorgängen am primären System anzuzeigen.
Es wird darauf hingewiesen, daß, obwohl in Fig. 1 lediglich ein einziges Backup-System veranschaulicht ist, eine Vielzahl von Backup-Systemen vorhanden sein kann, die alle eine Abfolge von Ereignisvorgängen in Übereinstimmung mit dem primären System ausführen.
Daher wird mit einer kurzen Zeitverzögerung, beispielsweise im Bereich von 0,5 ms bis 1 ms, das Backup-System die exakt gleiche Abfolge von Ereignisvorgängen ausführen, wie diese im primären System ausgeführt wurden, und die primäre Speichervorrichtung 102 und die Backup-Speichervorrichtung 112 werden synchronisiert sein.
Falls ein Befehl am primären System empfangen wird oder innerhalb des primären System erzeugt wird, d. h. falls ein Ereignis am primären System 100 auftritt, wird die primäre Zentralverarbeitungseinheit 101 gemäß einer Planungsregel einen Ereignisvorgang in Übereinstimmung mit dem Befehl ausführen. Zu einem bestimmten Zeitpunkt wird der Ereignisvorgang angehalten, entweder aufgrund einer normalen Ausführung des Ereignisvorgangs oder aufgrund einer Unterbrechung (Interrupt). In beiden Fällen wird zum Anhaltezeitpunkt eines Ereignisvorgangs der Ereignisgenerator eine Ereignisnachricht erzeugen, die Information umfaßt, die den Ereignisvorgang beschreibt und die den Grund für ein Anhalten des Prozesses angibt. Der Grund für ein Anhalten des Prozesses kann, wie vorhergehend ausgeführt, eine normale Beendigung aufgrund einer vollständigen Ausführung des Ereignisvorgangs sein oder das Auftreten einer Unterbrechung sein.
Vorzugsweise wird nach einem Anhalten des Ereignisvorgangs am primären System die Ereignisnachricht zum Backup-System übermittelt, wo, gesteuert durch die Backup-Steuervorrichtung 114, der entsprechende Ereignisvorgang mit einer im Vergleich zum primären System kurzen Zeitverzögerung ausgeführt wird.
Eine Ereignisnachricht kann auch eine Abfolgezahl beinhalten, die eine Abfolgesequenz von Ereignisvorgängen am primären System angibt, sie kann eine Zahl ausgeführter Instruktionen einschließen, bis die Ausführung des Ereignisvorgangs im primären System angehalten wurde. Weiter kann eine Ereignisnachricht Registerzustände des primären Systems bei Auftreten eines Ereignisses beinhalten und Daten, die durch den Ereignisvorgang definiert werden, oder auf die durch den Ereignisvorgang zugegriffen wurde.
Es wird darauf hingewiesen, daß alle möglichen Vorgänge innerhalb des primären Systems auf geeignete Weise durch Ereignisvorgänge definiert sein müssen, so daß keine undefinierten Vorgänge eine unterschiedliche Ausführung im primären System und Backup-System hervorrufen können. Es muß daher sichergestellt werden, daß eine Kommunikation, beispielsweise mit externen I/O-Systemen innerhalb des Konzepts von wohldefinierten Ereignisvorgängen durchgeführt wird. Somit ist eine unstrukturierte und direkte Kommunikation mit Dateisystemen TCP/IP usw. nicht erlaubt.
Die Kommunikation muß aufgrund von wohl definierten Signalen ablaufen, die durch die primäre Zentralverarbeitungseinheit auf dem Wege einer Ausführung von Ereignisvorgängen gehandhabt wird. Falls diese Erfordernisse erfüllt sind, können Ereignisnachrichten dazu verwendet werden, alle Transaktionen innerhalb des primären Systems, die den Systemzustand beeinflussen, oder die in der primären Speichervorrichtung gespeicherte Daten betreffen, vollständig zu beschreiben.
Als ein wichtiges Merkmal der Erfindung werden Ereignisnachrichten erzeugt, wenn die Ausführung eines Ereignisvorgangs beendet/angehalten wird, um so in der Lage zu sein, akkurate Information über die Ausführung des Ereignisvorgangs zum Backup-System zu liefern, einschließlich Daten bezüglich des Ereignisvorgangs und des Grundes für ein Anhalten des Ereignisvorgangs. Ein Ereignisvorgang kann ein Ausführen eines Signals von einer externen Vorrichtung sein, beispielsweise eines regionalen Prozessors oder eines verteilten zentralen Prozessors. Ein Ereignisvorgang kann auch ein Überprüfbetrieb einer Jobliste aufgrund einer Taktunterbrechung eines internen Zeitgebers innerhalb des primären Systems sein. Weiter kann ein Ereignisvorgang die Ausführung einer internen Funktion des oder innerhalb des primären Systems sein. Demzufolge erzeugt bei Beendigung des Ereignisvorgangs der Ereignisgenerator 103 des primären Systems eine Ereignisnachricht, die zumindest den Typ von Ereignisprozeß und den Grund für ein Anhalten des Ereignisprozesses umfaßt.
Falls es ein Ereignis ist, eine Jobtabellenüberprüfung durchzuführen, wird die Überprüfung durchgeführt und eine Ereignisnachricht wird durch den Ereignisgenerator erzeugt, wenn eine normale Beendigung des Jobtabellenüberprüfungsvorgangs vorliegt oder wenn eine Unterbrechung des Jobtabellenüberprüfungsprozesses eintritt.
Weiter kann eine Ereignisnachricht bei Empfang eines Befehls oder eines Signals von einer externen Vorrichtung erzeugt werden, beispielsweise von einem regionalen Prozessor oder einem verteilten zentralen Prozessor.
Wie zuvor ausgeführt, werden die Ereignisnachrichten zum Backup-System 110 übertragen, wo sie dann vorzugsweise in dem Puffer 113 zwischengespeichert werden. Die Backup- Steuervorrichtung 114 wird dann die Ausführung des Ereignisvorgangs anweisen, gemäß der in dem Puffer empfangenen Ereignisnachrichten oder gemäß einer Abfolgenummer, die in der Ereignisnachricht enthalten ist.
Jede Ereignisnachricht umfaßt eine notwendige Information, um einen Ereignisvorgang auszuführen, so daß die Backup- Steuervorrichtung 114 in der Lage sein wird, die Backup- Zentralverarbeitungseinheit 111 anzuweisen, den gleichen Ereignisvorgang auszuführen, wie vorher in der primären zentralen Verarbeitungseinheit ausgeführt wurde. Weiter, da jede übermittelte Nachricht Information über den Grund für ein Anhalten eines Ereignisvorgangs beinhaltet, wird die Backup-Steuervorrichtung in der Lage sein, die Backup- Zentralverarbeitungseinheit 111 anzuweisen, die Ausführung des Ereignisvorgangs an der exakt gleichen Stelle oder Zeitpunkt anzuhalten, wie er in der primären zentralen Verarbeitungseinheit 101 angehalten wurde. Eine Stelle in diesem Zusammenhang bedeutet eine Stelle während der Ausführung, bei dem die zentrale Backup- Zentralverarbeitungseinheit das gleiche Ausführungsniveau des Ereignisvorgangs erreicht hat, wie es in der primären zentralen Verarbeitungseinheit erreicht war, als dort der entsprechende Ereignisvorgang angehalten wurde. Somit, falls der Ereignisvorgang am primären System aufgrund einer normalen Ausführung angehalten wurde, wird der entsprechende Ereignisvorgang am Backup-System auch durch normale Ausführung angehalten werden. Falls der Ereignisvorgang am primären System aufgrund einer Unterbrechung angehalten wurde, wird die Ausführung des entsprechenden Ereignisvorgangs am Backup-System im exakt gleichen Ausführungszustand des Ereignisvorgangs unterbrochen werden. Die exakte Übereinstimmung oder Synchronisation zwischen dem primären System und dem zumindest einen Backup-System hält nur solange vor, bis ein fehlerhafter Betriebsvorgang am primären System und/oder am zumindest einen Backup-System auftritt. Daher kann ein Systemfehler erfaßt werden, indem Ausführungsparameter vom primären System und Backup-System verglichen werden.
Das fehlertolerante Computersystem gemäß der Erfindung kann eine Fehlererfassungsvorrichtung 120 umfassen, um einen Systemfehler zu erkennen. Die Fehlererfassungsvorrichtung 120 kann eine separate Einheit sein, die mit der Datenkommunikationsvorrichtung 130 verbunden ist, oder kann entweder im Backup-System 110 oder im primären System beinhaltet sein, oder in einer beliebigen anderen Vorrichtung des fehlertoleranten Computersystems.
Vorzugsweise wird die Fehlererfassungsvorrichtung 120 die Daten, die bezüglich der Ausführung eines Ereignisvorgangs aufgezeichnet wurden, mit Daten vergleichen, die bezüglich der Ausführung des entsprechenden Ereignisvorgangs am Backup- System aufgezeichnet wurden. Das fehlertolerante Computersystem umfaßt vorzugsweise eine Vorrichtung, um Ereignisdaten zu erzeugen, die die Ausführung eines Ereignisvorgangs am primären System beschreiben, und umfaßt eine zweite Vorrichtung, um Ereignisdaten zu erzeugen, die die Ausführung des gleichen Ereignisvorgangs am zumindest einen Backup-System beschreiben.
Die Ereignisdaten, die am primären System und am Backup- System erzeugt worden sind, werden vorzugsweise zu der Fehlererfassungsvorrichtung übertragen, die bei Empfang von Ereignisdaten einen Systemfehler basierend auf einem Vergleich der Ereignisdaten feststellen wird. Falls die Ereignisdaten vom primären System und Backup-System vollständig miteinander übereinstimmen, trat kein Systemfehler auf. Falls die Ereignisdaten zur Ausführung eines Ereignisvorgangs am primären System und am Backup- System nicht übereinstimmen, liegt ein Systemfehler vor. Die Erfassung eines Systemfehlers basiert somit auf dem Vergleich von Systemdaten am primären System und dem zumindest einen Backup-System. Falls beispielsweise eine Vielzahl von Backup- Systemen bereitgestellt ist, kann eine Mehrheitsentscheidung dafür verwendet werden, den Ort eines Systemfehlers zu erfassen.
Falls ein Systemfehler des primären Systems erfaßt wird, kann ein Backup-System ausgewählt werden, um Systemfunktionen als neues primäres System zu übernehmen. In diesem Fall werden die Betriebsvorgänge des Computersystems nicht länger durch das primäre System ausgeführt werden, sondern vom Backup- System übernommen werden. In Abhängigkeit von der Struktur des Computersystems, insbesondere in Abhängigkeit von der Kommunikationsvorrichtung 130, wird dies ein Umschalten von Kommunikationsverbindungen zwischen den externen Vorrichtungen 141-144 vom primären System zum ausgewählten Backup-System umfassen.
Da das primäre System und das Backup-System fortlaufend auf einem hohen Synchronisationsniveau gehalten werden, d. h. nur durch eine sehr kurze Zeitperiode verzögert arbeiten, beispielsweise 0,5 ms bis 1 ms, kann das ausgewählte Backup- System sofort die Funktionen des primären Systems übernehmen, ohne einen Datenverlust, einen Verlust von Befehlen und ohne eine verlängerte Ausfallzeit.
Im folgenden wird mit Bezug auf Fig. 2 ein zweites Ausführungsbeispiel des fehlertoleranten Computersystems der Erfindung beschrieben.
Fig. 2 zeigt ein Beispiel des fehlertoleranten Computersystems ähnlich zu dem in Fig. 1 gezeigten.
Neben dem primären System 110 und dem Backup-System 110 ist im zweiten Ausführungsbeispiel ein Standby-System 150 bereitgestellt. Darüber hinaus, im Gegensatz zum ersten Ausführungsbeispiel der Erfindung von Fig. 1, ist die Fehlererfassungsvorrichtung 120 in das Backup-System 110 integriert. Externe Vorrichtungen 145 und 146 sind vorgesehen. Die Kommunikationsvorrichtung 130 verbindet nun das primäre System 100, das Backup-System 110, das Standby- System 150 und die externen Vorrichtungen 145 und 146.
Wie im mit Bezug auf Fig. 1 beschriebenen Ausführungsbeispiel, führt in diesem zweiten Ausführungsbeispiel der Erfindung das Backup-System genau die gleiche Abfolge von Ereignisvorgängen aus, wie das primäre System, und, wie zuvor, werden in der primären Speichervorrichtung und der Backup-Speichervorrichtung gespeicherte Daten synchronisiert sein.
Der Ereignisgenerator 103 erzeugt jedesmal dann eine Ereignisnachricht, wenn die Ausführung eines Ereignisvorgangs am primären System unterbrochen wird, beispielsweise aufgrund einer normalen Beendigung des Ereignisvorgangs oder aufgrund des Auftretens einer Unterbrechung (Interrupt). Wie zuvor, kann die Ereignisnachricht eine Abfolgenummer (Zahl) beinhalten, die eine Abfolgesequenz von Ereignisvorgängen angibt, kann eine Anzahl von ausgeführten Instruktionen beinhalten, Registerzustände, z. B. wenn ein Interrupt auftrat, wie auch durch den Ereignisvorgang definierte Daten oder Daten, auf die durch den Ereignisvorgang zugegriffen wurden. Die Ereignisnachricht kann auch Ereignisdaten beinhalten, die die Ausführung des entsprechenden Ereignisprozesses am primären System beschreiben, für einen Vergleich mit den entsprechenden Ereignisdaten der Ausführung des Ereignisvorgangs am Backup-System.
In diesem zweiten Ausführungsbeispiel werden die Ereignisnachrichten neben einer Übertragung zum Backup-System auch zum Standby-System 150 übermittelt.
Es wird darauf hingewiesen, daß eine Vielzahl von Standby- Systemen bereitgestellt werden kann, obwohl in Fig. 2 nur ein einziges gezeigt ist.
Das Standby-System führt vorzugsweise keine Ereignisvorgänge aus, sondern zeichnet nur empfangene Ereignisnachrichten in einer Ereignisdatei 153 (EL) auf. Im Beispiel von Fig. 2 umfaßt das Standby-System 150 eine Standby- Speichervorrichtung 152, um eine Archivkopie von in der primären Speichervorrichtung 102 gespeicherten Daten zu speichern. Vorzugsweise wird in Übereinstimmung mit der Erfindung eine Archivkopie von System und Anwendungsdaten, die in der primären Speichervorrichtung 102 gespeichert sind, in bestimmten Zeitintervallen zur Standby-Speichervorrichtung übertragen. Beispielsweise kann eine Archivkopie einmal pro Stunde, einmal pro Tag usw. erzeugt werden.
Um den Systemzustand des primären Systems reproduzieren zu können, müssen alle Ereignisnachrichten nach einem Erzeugen einer Archivkopie betrachtet werden. Es wird daher vorgezogen, daß nach einem Übertragen einer Archivkopie zum Standby-System alle von dem primären System empfangenen Ereignisnachrichten in einer Ereignisdatei aufgezeichnet werden. Somit kann, da die Ereignisnachrichten genau den Ablauf der Ausführung von Ereignisvorgängen am primären System 100 definieren, einschließlich des Ereignistyps, des Grundes und des Zeitpunkts für ein Anhalten der Ausführung des Ereignisvorgangs, etc., die Ereignisdatei zusammen mit der in der Standby-Speichervorrichtung 152 gespeicherten Archivkopie verwendet werden, um den Systemzustand des primären Systems wiederzugewinnen.
Das Standby-System 150 kann auch eine Standby- Zentralverarbeitungseinheit 151 und eine Standby- Steuervorrichtung 154 umfassen. Falls der Systemzustand des primären Systems, beispielsweise bei einem Fehler am primären System, wiederhergestellt werden soll, kann die Standby- Steuervorrichtung 154 Instruktionen erzeugen, in Übereinstimmung mit der Abfolge von in der Ereignisdatei abgespeicherten Ereignisnachrichten, und die Standby- Zentralverarbeitungseinheit anweisen, genau die gleiche Abfolge von Ereignisvorgängen auf die exakt gleiche Weise, wie sie am primären System ausgeführt wurden, auszuführen. Demzufolge werden die gleichen Änderungen den Daten der Archivkopie zugefügt, die in der Standby-Speichervorrichtung 152 gespeichert sind, wenn auch mit einer Zeitverzögerung.
Das Standby-System ist dem mit Bezug auf Fig. 1 beschriebenen Backup-System sehr ähnlich, jedoch ist das Standby-System primär dazu vorgesehen, Ereignisnachrichten in einer Ereignisdatei aufzuzeichnen, und Archivkopien von Speicherinhalten des primären Systems aufzuzeichnen, um in der Lage zu sein, den Systemzustand des primären Systems zu einem späteren Zeitpunkt wiederzugewinnen.
Falls beispielsweise ein Systemfehler am Backup-System festgestellt wird, kann das Standby-System Betriebsvorgänge des Backup-Systems übernehmen.
Weiter kann im Falle, daß ein Softwarefehler am primären System festgestellt wird, beispielsweise, wenn das primäre System nicht länger in der Lage ist, Betriebsvorgänge auszuführen, kann die zum Backup-System übertragene Ereignisnachricht Information beinhalten, die den Softwarefehler beschreibt, und kann weiter Information beinhalten, die es dem Backup-System ermöglicht, den Softwarefehler zu vermeiden. In diesem Fall kann das Backup- System beispielsweise die Ausführung eines Ereignisses, das den Softwarefehler hervorruft, unterlassen, oder kann eine bestimmte Kommunikation oder Softwareroutinen während einer Ausführung des Ereignisses vermeiden. Der Softwarefehler kann auch zu den Standby-Systemen berichtet werden. Natürlich kann nach dem Fehler am primären System das Backup-System den Betrieb des primären Systems übernehmen, wie dies vorhergehend ausgeführt wurde. Somit kann eine Vorwärtsfehlerberichtigung erzielt werden.
Fig. 3 zeigt ein Flußdiagramm eines Beispiels des Verfahrens zum fehlertoleranten Betrieb eines Computersystems gemäß der Erfindung. Wie in den vorhergehenden Fällen, umfaßt das Computersystem ein primäres System, ein Backup-System und optional ein Standby-System. Im folgenden wird mit Bezug auf Fig. 3 der Betrieb des primären Systems während eines fehlertoleranten Betriebs des Computersystems beschrieben.
Das System kann wie das erste und zweite Ausführungsbeispiel der Fig. 1 und 2 angeordnet sein. Insbesondere ist das Backup-System auch so eingesetzt, daß es bei Ausführung eines Ereignisvorgangs am primären System erzeugte Ereignisnachrichten empfängt. Jedoch beschreibt der Ablauf von Fig. 3 vornehmlich Betriebsvorgänge am primären System.
In einem mit 301 bezeichneten Schritt führt die primäre Zentralverarbeitungseinheit einen Ereignisvorgang aus, beispielsweise einen nächsten Vorgang aufgrund eines nächsten auszuführenden Befehls, basierend auf einer Anweisungsregel. Der Ereignisvorgang kann der nächste Ereignisvorgang in einer Abfolge von Ereignisvorgängen sein, die am primären System auszuführen sind, angewiesen durch Befehle, die von externen Vorrichtungen empfangen werden. Ein Ereignisvorgang kann auch intern bei einer Benachrichtigung durch eine Zeitgebervorrichtung im primären System ausgeführt werden. Dies kann beispielsweise eine Anweisung aufgrund einer internen Zeitgeberunterbrechung sein, um eine Jobtabelle durchzusehen. Ein Ereignisvorgang kann auch aufgrund einer internen Funktion des primären Systems ausgeführt werden.
Während der Ausführung des Ereignisvorgangs können weitere Befehle oder Instruktionen für eine Ausführung von weiteren Ereignisvorgängen erzeugt werden. Ein Befehl hat vorzugsweise eine Abfolge von Systembetriebsvorgängen am primären System zur Folge, einschließlich von Betriebsvorgängen der primären zentralen Verarbeitungseinheit, und kann Änderungen von innerhalb einer primären Speichervorrichtung gespeicherten Daten bewirken, beispielsweise von Anwendungs- oder Systemdaten. Wiederum, wie in vorhergehenden Ausführungsbeispielen, müssen alle möglichen Betriebsvorgänge des primären Systems Teil eines Ereignisvorgangs sein. Die primäre Zentralverarbeitungseinheit darf keine anderen Betriebsvorgänge als Ereignisvorgänge ausführen.
Zu einem bestimmten Zeitpunkt wird die Ausführung des gegenwärtigen Ereignisvorgangs beendet werden, beispielsweise als eine Folge eines normalen Endes einer Ausführung, oder es wird der Ereignisvorgang gezwungenermaßen aufgrund einer Unterbrechung (Interrupt) unterbrochen. Somit wird ein mit 302 bezeichneter Schritt überprüft, ob bei einem Anhalten des Ereignisvorgangs eine normale Ausführung des gegenwärtigen Ereignisvorgangs vorliegt, d. h. der Ereignisvorgang wird überwacht, um festzustellen, ob eine normale Ausführung stattfand.
Im Falle, daß eine normale Ausführung des gegenwärtigen Ereignisvorgangs erfaßt wird, wird in einem Schritt 304 eine Ereignisnachricht erzeugt, die die normale Beendigung des gegenwärtigen Ereignisvorgangs anzeigt. Diese Ereignisnachricht kann zumindest Information über den Typ des gegenwärtigen Ereignisvorgangs beinhalten und eine Angabe darüber, daß der gegenwärtige Ereignisvorgang aufgrund einer normalen Ausführung beendet wurde. Die Ereignisnachricht kann weiter eine Abfolgenummer beinhalten, die eine Ausführungsabfolge von Ereignis anzeigt, was vorteilhaft sein kann im Falle, daß eine bevorzugte Ausführungsabfolge von Ereignisvorgängen nicht nur durch eine Abfolge des Empfangs von entsprechenden Ereignisnachrichten, beispielsweise am Backup-System, bestimmt ist. Die Ereignisnachricht kann auch Information bezüglich Daten beinhalten, die durch den Ereignisvorgang definiert wurden, oder auf die durch den Ereignisvorgang zugegriffen wurde, insbesondere Daten bezüglich des Systemzustandes oder in der primären Speichervorrichtung gespeicherte Anwendungsdaten.
Mit anderen Worten muß sichergestellt sein, daß die Ereignisnachricht alle notwendige Information für ein Beschreiben des entsprechenden gegenwärtigen Ereignisvorgangs beinhaltet, was die Ausführung von genau dem gleichen Ereignisvorgang am Backup-System ermöglicht. Normalerweise sollte es ausreichend sein, einen Typ-Identifikator des ausgeführtem Ereignisprozesses zu übertragen, und Parameter zu übertragen, die die Ausführungsumgebung des Ereignisvorgangs bestimmen, beispielsweise im Falle eines Telekommunikationssystems, die einen Teilnehmer, Telekommunikationsleitungen und ähnliches identifizieren.
In einem Schritt 304 wird das Auftreten einer Unterbrechung (Interrupt) geprüft. Im Fall, daß im Schritt 304 keine Unterbrechung festgestellt wird, kehrt der Ablauf zum Schritt 302 zurück. Falls eine Unterbrechung festgestellt wird, wird in einem Schritt 305 eine Ereignisnachricht erzeugt, die nun anzeigt, daß der gegenwärtige Ereignisvorgang unterbrochen wurde. Die entsprechende Ereignisnachricht wird vorzugsweise auch Information über den exakten Zeitpunkt während der Ausführung des gegenwärtigen Ereignisvorgangs beinhalten, zu dem die Unterbrechung auftrat. Die Ereignisnachricht kann eine Anzahl von Instruktionen, beispielsweise Assemblerinstruktionen, beinhalten, bis der Interrupt auftrat. Weiter kann die Ereignisnachricht Registerzustände des primären Systems beinhalten, insbesondere der primären zentralen Verarbeitungseinheit, die zum Teil der Unterbrechung vorlag. Weiter kann, wie die Ereignisnachricht, die im Schritt 304 erzeugt wird, eine Abfolgezahl enthalten sein, die eine Ausführungssequenz von Ereignisvorgängen anzeigt, und es kann Information über Daten enthalten sein, auf die durch den Ereignisvorgang zugegriffen wurde, oder die durch diesen definiert wurden.
In einem Schritt 306 werden Ereignisdaten erzeugt, die den Ablauf der Ausführung des gegenwärtigen Ereignisvorgangs am primären System anzeigen. Vorzugsweise werden die Ereignisdaten Information beinhalten, die es erlaubt festzustellen, ob der Ereignisvorgang fehlerfrei ausgeführt wurde. Dies kann beispielsweise Information über den Systemzustand oder bestimmte Schlüsseldaten oder Prüfsignale einschließen, wie es im Stand der Technik bekannt ist.
Die Ereignisdaten werden in einem Schritt 307 zu der Fehlererfassungsvorrichtung 120 übertragen. Falls die Fehlererfassungsvorrichtung in das Backup-System integriert ist, können die Ereignisdaten auch in die Ereignisnachricht eingeschlossen werden und mit ihr in einem Schritt 308 zum Backup-System und/oder Standby-System, falls vorgesehen, übermittelt werden.
In einem Schritt 309 wird festgestellt, ob bei einer Ausführung des gegenwärtigen Ereignisvorgangs eine Kommunikation mit einer externen Vorrichtung erforderlich ist. Eine Kommunikation mit einer externen Vorrichtung kann beispielsweise eine Kommunikation mit einem anderen Prozessor oder einer anderen Vorrichtung beinhalten. Dieser Erfassungsschritt kann durchgeführt werden, um zu verhindern, daß im Falle eines fehlerhaften Betriebs am primären System mit der Kommunikation zu der externen Vorrichtung der Fehler sich weiter durch das Computersystem fortsetzt.
Im Fall, daß in einem Schritt 309 eine Kommunikation mit einer externen Vorrichtung nicht erforderlich ist, kann der Ablauf direkt zum Schritt 301 zurückkehren, für die Ausführung eines nachfolgenden Ereignisvorgangs.
Falls eine Kommunikation mit einer externen Vorrichtung bei Ausführung des Ereignisvorgangs in einem Schritt 309 erforderlich ist, kann in einem Schritt 310 das primäre System eine Nachricht abwarten, die das Vergleichsergebnis von Ereignisdaten anzeigt, die am primären System und Backup- System erzeugt und durch die Fehlererfassungsvorrichtung verglichen wurden. Während auf das Vergleichsergebnis gewartet wird, kann das primäre System zwischenzeitlich weitere Ereignisvorgänge ausführen, beispielsweise Ereignisvorgänge, die keine Kommunikation mit externen Vorrichtungen benötigen. Es ist jedoch auch denkbar, daß Ereignisvorgänge zwischenzeitlich ausgeführt werden, die eine externe Kommunikation benötigen. In diesem Fall müßte auf eine Vielzahl von Vergleichsnachrichten gleichzeitig gewartet werden.
In einem Schritt 311 wird bei Empfang der Nachricht über den Vergleich der Ereignisdaten vom primären System und Backup- System festgestellt, ob der Betrieb des primären Systems fehlerfrei war. Falls ja, wird in einem Schritt 312 die geforderte Kommunikation mit einer externen Vorrichtung durchgeführt, und der Fluß kehrt zum Schritt 301 zurück, und der nächste Ereignisvorgang in Übereinstimmung mit der Ablaufregel wird ausgeführt.
Im Falle, daß im Schritt 311 festgestellt wird, daß das primäre System den gegenwärtigen Ereignisvorgang nicht in einem fehlerfreien Betriebsvorgang ausgeführt hat, wird in einem Schritt 313 eine Wiederherstellprozedur gestartet. Die Wiederherstellprozedur kann ein Einsetzen eines des zumindest einen Backup-Systems als neues primäres System beinhalten und kann weiter ein Umschalten von Kommunikationsverbindungen zu externen Vorrichtungen vom primären System zum Backup-System beinhalten. Falls das fehlertolerante Computersystem auch Standby-Systeme umfaßt, kann die Wiederherstellprozedur beinhalten, daß eine am Standby-System aufgezeichnete Ereignisnachrichtliste auf eine Archivkopie angewendet wird, die vorher zum Standby-System übertragen wurde. Nach der Wiederherstellungsprozedur können Betriebsvorgänge des primären Systems beendet werden, beispielsweise für eine Reparatur.
Es wird darauf hingewiesen, daß die Abfolge von Schritten nicht notwendigerweise dem Ablauf von Fig. 3 folgt, die Abfolge kann in weiteren Ausführungsbeispielen auch anders sein, beispielsweise könnten Ereignisdaten vor einer Ereignisnachricht erzeugt werden, und ähnliches.
Im folgenden wird mit Bezug auf Fig. 4 ein zweites Ausführungsbeispiel des Verfahrens zum fehlertoleranten Betriebs eines Computersystems beschrieben. Fig. 4 zeigt ein stärker detailliertes Beispiel der Verarbeitung von Befehlen bzw. der Ausführung von Ereignisvorgängen. Wieder betrifft der Ablauf bevorzugt Betriebsvorgänge des primären Systems.
Nachdem der Betrieb des primären Systems in einer primären zentralen Verarbeitungseinheit gestartet wurde, kann in einem Schritt 401 entschieden werden, ob eine Jobtabelle aufgrund einer Zeitgeberunterbrechung zu überprüfen ist. Die Jobtabelle kann eine Abfolge von auszuführenden Jobs beinhalten. Das Überprüfen der Jobtabelle kann das Feststellen der Richtigkeit der Abfolge von Aufgaben beinhalten, kann beinhalten, welcher Job als nächstes auszuführen ist, usw. Im Schritt 401 kann auch festgestellt werden, ob eine weitere interne Systemfunktion auszuführen ist. Mit anderen Worten wird im Schritt 401 festgestellt, ob ein interner Befehl auftrat, der die Ausführung eines Ereignisvorgangs anfordert.
Im vorliegenden Beispiel wird angenommen, daß das primäre System mit regionalen Prozessoren und verteilten zentralen Prozessoren eines Netzwerks von Prozessoren verbunden ist. Das Computersystem kann beispielsweise ein Telekommunikationssystem betreiben. Falls im Schritt 401 kein interner Befehl erfaßt wird, wird in einem Schritt 402 festgestellt, ob Signale von regionalen Prozessoren empfangen wurden. Diese Signale von regionalen Prozessoren können Befehle sein, die die Ausführung von Ereignisvorgängen anfordern. Im Falle, daß solche Signale oder Befehle im Schritt 402 erfaßt werden, wird in einem Schritt 403 festgestellt, ob irgendwelche Signale von verteilten zentralen Prozessoren im primären System angekommen sind. Auch die Signale von den verteilten zentralen Prozessoren können Befehle sein, die die Ausführung von Ereignisvorgängen anfordern. Ein Ereignisvorgang kann auch durch den Beginn der Ausführung einer Systemfunktion oder einer externen Funktion dargestellt sein, wie beispielsweise eine Servicefunktion in einem Telekommunikationsnetzwerk. Das primäre System darf nur Ereignisvorgänge ausführen, andere Aktionen, die den Systemzustand, Systemdaten oder Anwendungsdaten betreffen, sind nicht erlaubt.
Falls im Schritt 403 keine Signale von verteilten zentralen Prozessoren erfaßt werden, kehrt der Ablauf zu Schritt 401 zurück.
Falls während irgendeines der Schritte 401, 402 und 403 der Empfang eines Befehls oder Ereignisses festgestellt wird, wodurch die Ausführung eines Ereignisvorgangs angefordert wird, wird in einem Schritt 404 entschieden, welches Signal als nächstes auszuführen ist, basierend auf einer Planungsregel. Neben in den Schritten 401, 402 und 403 erfaßten Befehlen kann ein Jobpuffer bereitgestellt sein, mit Anforderungen für eine Ausführung von Ereignisvorgängen, so daß im Schritt 404 Prioritätsüberlegungen angewendet werden könnten.
Nach einem Auswählen des nächsten auszuführenden Ereignisvorgangs wird in einem Schritt 405 der Ereignisvorgang ausgeführt, bis zu einer normalen Beendigung, oder bis ein Interrupt auftritt.
Nachfolgend werden in einem Schritt 406 Ereignisdaten aufgezeichnet, die den Ablauf der Ausführung des Ereignisvorgangs bis zu einem Anhalten des Ereignisvorgangs anzeigen. Die Ereignisdaten können zu einem späteren Zeitpunkt verwendet werden, um einen fehlerhaften Betriebsvorgang am primären System und/oder Backup-System und/oder Standby-System festzustellen. Weiter kann in einem Schritt 406 eine Ereignisnachricht erzeugt werden, die zumindest den Typ des Ereignisvorgangs und den Grund für ein Anhalten des Ereignisvorgangs anzeigt.
Folgend werden in einem Schritt 407 die erzeugten Ereignisdaten und/oder die erzeugte Ereignisnachricht zu dem zumindest einen Backup-System und/oder Standby-System übermittelt.
Danach kehrt der Ablauf zum Schritt 401 zurück.
Fig. 5 zeigt ein weiteres Beispiel der Ausführung des Verfahrens eines fehlertoleranten Betriebs eines Computersystems. Im folgenden werden Betriebsvorgänge am Backup-System mit Bezug auf Fig. 5 beschrieben.
Die Systemkonfiguration ist ähnlich zu der mit Bezug auf die vorhergehenden Ausführungsbeispiele beschriebenen.
Wie insbesondere mit auf die Fig. 1 und 2 ausgeführt, ist das Backup-System dazu ausgelegt, Ereignisnachrichten zu empfangen, die den Typ von Ereignisvorgängen und die Ausführungsdetails am primären System anzeigen, so daß das Backup-System nachfolgend in der Lage ist, den gleichen Ereignisvorgang auf die gleiche Weise auszuführen, so wie er am primären System ausgeführt wurde, einschließlich eines zwischenzeitlichen Anhaltens des Ereignisvorgangs oder eines Beendens des Ereignisvorgangs.
In einem Schritt 501 empfängt das Backup-System eine Ereignisnachricht vom primären System. Im Falle eines Backlogs (Rückstaus) von Ereignisnachrichten am Backup- System, d. h. noch nicht ausgeführter Ereignisvorgänge gemäß früherer Ereignisnachrichten, kann das Backup-System zwischenzeitlich die Ereignisnachrichten in einem Puffer abspeichern.
In einem Schritt 502 wird festgestellt, ob die Backup- Zentralverarbeitungseinheit für eine Ausführung des Ereignisvorgangs, der der vorhergehend im Schritt 501 empfangenen Ereignisnachricht entspricht, verfügbar ist. Falls Ereignisnachrichten zwischenzeitlich im Puffer gespeichert wurden, beispielsweise in einem FIFO-Puffer, wird die zuerst empfangene Ereignisnachricht für eine Ausführung eingeplant. Falls jedoch die erwünschte Ausführungssequenz nicht aus der Abfolge des Empfangs von Ereignisnachrichten abgeleitet werden kann, kann auch die Ausführungsabfolge einer Sequenzzahl folgen, die beispielsweise in jeder Ereignisnachricht eingeschlossen sein kann. Die Sequenzzahl zeigt bevorzugterweise die Abfolge einer Ausführung von Ereignisnachrichten am primären System an. Das Einplanen für eine Ausführung kann durch eine Backup-Steuereinheit durchgeführt werden, wie dies mit Bezug auf Fig. 1 ausgeführt wurde.
Im Falle, daß der Prozessor nicht verfügbar ist, kann in einem Schritt 503 die Backup-Steuervorrichtung warten, bis der Prozessor frei wird.
In einem Schritt 504 liest die Backup-Steuervorrichtung die nächste Ereignisnachricht und erzeugt Steuersignale gemäß der Ereignisnachricht. Die Steuersignale werden zur Backup- Zentralverarbeitungseinheit übermittelt und werden eine Ausführung des entsprechenden Ereignisvorgangs am Backup- System bewirken. Dies kann beispielsweise ein Ändern von Systemdaten oder Anwendungsdaten bewirken, die in der Backup- Speichervorrichtung abgespeichert sind. Die Steuersignale gemäß der Ereignisnachricht werden auch ein Anhalten des Ereignisvorgangs bewirken, in Übereinstimmung mit dem vorhergehenden Anhalten des Ereignisvorgangs am primären System. Dies kann ein Erzeugen einer Unterbrechung beinhalten, die identisch zu einer vorhergehend am primären System erzeugten Unterbrechung ist.
Nach einem Anhalten des Ereignisvorgangs werden in einem Schritt 506 Ereignisdaten erzeugt, die den Ausführungsablauf des Ereignisvorgangs am Backup-System anzeigen.
In einem Schritt 507 können, falls eine Fehlererfassungsvorrichtung in das Backup-System integriert ist, die am Backup-System erzeugten Ereignisdaten sofort mit den am primären System erzeugten Ereignisdaten verglichen werden, die beispielsweise mit der Ereignisnachricht am Backup-System empfangen wurden. Das Vergleichsergebnis kann zum primären System übermittelt werden.
Im Falle, daß in einem Schritt 508 festgestellt wird, daß die Ereignisdaten des primären Systems und des Backup-Systems übereinstimmen, kehrt der Ablauf zum Schritt 501 zurück, und der nächste Ereignisvorgang in der Abfolge wird für eine Ausführung eingeplant.
Falls im Schritt 508 festgestellt wird, daß die Ereignisdaten nicht übereinstimmen, wird in einem Schritt 509 eine Wiederherstellprozedur durchgeführt. Die Wiederherstellprozedur schließt vorzugsweise ein Feststellen ein, an welchen der einbezogenen Systeme, dem primären System oder Backup-System, der Fehler auftrat. Die Wiederherstellprozedur kann ein Auswählen des Backup-Systems beinhalten, oder im Falle einer Vielzahl von Backup-Systemen, ein Auswählen eines der Backup-Systeme, um die Funktion als neues primäres System zu übernehmen. Die Wiederherstellprozedur kann auch beinhalten, festzustellen, welcher Ereignisvorgang der letzte erfolgreich am primären System ausgeführte war, beispielsweise basierend auf Ereignisdaten, die am primären System erzeugt wurden, und kann ein Übermitteln von Information bezüglich des letzten erfolgreich ausgeführten Ereignisvorgangs zu allen einbezogenen Backup-Systemen und/oder Standby-Systemen beinhalten. Weiter kann eine Übernahmenachricht zu allen verbleibenden Backup- und Standby-Systemen und zu allen anderen Vorrichtungen des fehlertoleranten Computersystems übermittelt werden.
Im folgenden wird mit Bezug auf Fig. 6 ein Ausführungsbeispiel einer Abfolge von Ereignisvorgängen durch das fehlertolerante Computersystem gemäß der Erfindung einschließlich eines primären Systems und eines Backup- Systems beschrieben.
Es wird angenommen, daß Ereignisvorgänge A, B, C und D auszuführen sind.
Ihre Ausführung kann den vorherigen Beispielen entsprechen. Insbesondere wird nach einem Ausführen eines Ereignisvorgangs am primären System eine Ereignisnachricht einschließlich des Grundes für ein Anhalten des Ereignisvorgangs am primären System erzeugt werden und zum Backup-System übertragen werden. Nach einem Empfang der Ereignisnachricht am Backup- System, wird im Falle, daß kein anderer Ereignisvorgang gegenwärtig ausgeführt wird, der Ereignisvorgang gemäß der empfangenen Ereignisnachricht am Backup-System ausgeführt werden. Weiter wird im Fall, daß am primären System eine Kommunikationsanforderung zu externen Vorrichtungen festgestellt wird, vor einer Ausführung eines Kommunikationsvorganges mit der externen Vorrichtung das primäre System vorzugsweise auf ein Signal warten, das einen fehlerfreien Betrieb am primären System anzeigt. Innerhalb dieser Zeitperiode können andere Ereignisse am primären System ausgeführt werden.
In einem Schritt 601 wird ein Ereignisvorgang A am primären System ausgeführt. Es wird angenommen, daß die Ausführung des Ereignisvorgangs A zu einem normalen Ende kommt, d. h. eine normale Beendigung wird am primären System festgestellt. Demzufolge wird in einem Schritt 602 eine Ereignisnachricht EA zum Backup-System übertragen, wie es vorhergehend ausgeführt wurde. Die Ereignisnachricht schließt beispielsweise Information über den Typ des Ereignisvorgangs, betroffene Systemdaten und/oder Daten, auf die zugegriffen wurde, bzw. den Grund für ein Anhalten des Ereignisvorgangs ein. Da die Ereignisnachricht alle notwendige Information bezüglich des Betriebs und der Ausführung des Ereignisvorgangs A am primären System enthält, kann nachfolgend zu einem Empfang der Ereignisnachricht EA am Backup-System der Ereignisvorgang A auf genau die gleiche Weise am Backup-System ausgeführt werden. Dies wird ein Zugreifen auf die gleichen Daten am Backup-System beinhalten, wie zuvor am primären System während der Ausführung des Ereignisvorgangs A am primären System.
Wenn der Ereignisvorgang A am Backup-System ausgeführt wird, wird ein zweiter Ereignisvorgang B(1) (Teil 1) am primären System in einem Schritt 604 ausgeführt.
Es wird nun angenommen, daß während der Ausführung des Ereignisvorgangs B (Teil 1) ein Befehl C, die Ausführung eines Ereignisvorgangs C anfordernd, eine Unterbrechung erzeugt und die Unterbrechung der Ausführung des Ereignisvorgangs B(1) (Teil 1) bewirkt. Gemäß der Erfindung wird in einem Schritt 605 eine Ereignisnachricht EB1 am primären System erzeugt und zum Backup-System übermittelt.
Da die Ausführung von Ereignisvorgang A normal beendet wurde, bevor die Ereignisnachricht EB1 am Backup-System empfangen wurde, tritt eine kurze Warteperiode am Backup-System auf, bevor der entsprechende Ereignisvorgang B(1) (Teil 1) am Backup-System ausgeführt werden kann. In einem Schritt 606 wird am Backup-System Ereignisvorgang B(1) (Teil 1) ausgeführt, und, da auch Information über die Unterbrechung aufgrund des Befehls C in die Ereignisnachricht EB1 eingeschlossen wurde, wird der Ereignisvorgang B am Backup- System zum genau gleichen Zeitpunkt während der Ausführung unterbrochen. Um eine korrekte Unterbrechung am Backup-System zu erleichtern, kann eine Anzahl von ausgeführten Instruktionen in die Ereignisnachricht eingeschlossen werden. Die Erzeugung der Unterbrechung am Backup-System ist durch ein Bezugszeichen 607 angezeigt.
Wenn der Ereignisvorgang B(1) am Backup-System ausgeführt wird, wird am primären System der Ereignisvorgang C, der die Unterbrechung erzeugt hatte, in einem Schritt 608 ausgeführt.
Im vorliegenden Beispiel wird angenommen, daß der Ereignisvorgang C normal beendet wird und eine entsprechende Ereignisnachricht C wird zum Backup-Prozessor in einem Schritt 609 übermittelt. Jedoch ist zum Zeitpunkt des Empfangs der Ereignisnachricht am Backup-System das Backup- System immer noch damit beschäftigt, den ersten Teil des Ereignisvorgangs B(1) auszuführen, da die Unterbrechung noch nicht für diesen Zeitpunkt geplant ist. Daher wird die Ereignisnachricht EC beispielsweise in einem Zwischenpuffer gespeichert, bis die geplante Unterbrechung am Backup-System auftritt.
Nachdem die Unterbrechung des Ereignisvorgangs B am Backup- System bewirkt wurde, führt das Backup-System nunmehr den Ereignisvorgang C aus, der in der zwischengespeicherten Ereignisnachricht EC (Schritt 10) spezifiziert ist.
Zur gleichen Zeit nimmt in einem Schritt 601, da der Ereignisvorgang C am primären System normal beendet wurde, das primäre System die Ausführung des unterbrochenen Ereignisvorgangs B wieder auf. Nach einer normalen Beendigung des zweiten Teils des Ereignisvorgangs B(2) erzeugt das primäre System eine Ereignisnachricht EB2 und überträgt diese zum Backup-System in einem Schritt 612.
Da mit der Ereignisnachricht EB1 am Backup-System der genaue Zustand des primären Systems zum Zeitpunkt der Unterbrechung aufgrund des Befehls C bekannt ist, kann das Backup-System nun in einem Schritt 613 die Ausführung des Ereignisvorgangs B2 wiederaufnehmen, bis zu einer normalen Beendigung. Es wird darauf hingewiesen, daß Registerzustände des primären Systems zum Backup-System übertragen worden sein könnten, obwohl bei Erzeugung der künstlichen Unterbrechung am Backup-System die gleichen Registerzustände am Backup-System vorhanden sein sollten, so wie diese bei Auftreten der Unterbrechung am primären System aufgrund des Befehls C vorlagen.
Es wird angenommen, daß während einer Ausführung des zweiten Teils des Ereignisvorgangs B(2) nach einem Wiederaufnehmen der Ausführung des Ereignisvorgangs in einem Schritt 614 ein externer Befehl D von einer externen Vorrichtung empfangen wird, die beispielsweise im Falle eines Telekommunikationssystems ein regionaler Prozessor oder ein verteilter zentraler Prozessor sein kann.
Nach einer normalen Beendigung des Ereignisvorgangs B kann am primären System in einem Schritt 615 der Ereignisvorgang D ausgeführt werden.
Es wird auch angenommen, daß der Ereignisvorgang B eine Kommunikationsanforderung zu einer externen Vorrichtung bewirken wird. Jedoch wird, um eine Ausbreitung eines fehlerhaften Betriebsvorgangs innerhalb des primären Systems zu verhindern, die Kommunikationsanforderung in Warteposition gebracht, bis ein fehlerfreier Betrieb am primären System festgestellt wird. Somit wartet vor einer Ausführung der Kommunikation mit der externen Vorrichtung das primäre System auf ein Signal, das eine Übereinstimmung von Ereignisdaten anzeigt, die bei Ausführung des Ereignisvorgangs B am primären System und die bei Ausführung des Ereignisvorgangs B am Backup-System erzeugt wurden. Falls in eine Schritt 616 ein Synchroncheck anzeigt, daß kein Fehler am primären System auftrat, kann in einem Schritt 617 die Kommunikation mit der externen Vorrichtung durchgeführt werden.
Es wird darauf hingewiesen, daß das veranschaulichte Beispiel lediglich einen möglichen Betriebsablauf des fehlertoleranten Computersystems beschreibt. Beispielsweise müssen nicht in allen Fällen Kommunikationsanforderungen in Warteposition gebracht werden, z. B. nicht kritische Kommunikationen und zeitkritische Kommunikationen können durchgeführt werden, ohne auf die obige Synchronisationsprüfung zu warten.
Im folgenden wird mit Bezug auf die Fig. 7 ein weiteres Beispiel des Betriebs des fehlertoleranten Computersystems gemäß der Erfindung beschrieben. In diesem Fall werden besonders Kommunikationen und Betriebsvorgänge des primären Systems und des Standby-Systems veranschaulicht.
Das Standby-System ist ausgelegt, eine Archivkopie von Speicherinhalten vom primären System zu speichern. Eine Archivkopie wird vorzugsweise in vorab bestimmten Zeitintervallen erzeugt. Weiter zeichnet das Standby-System Ereignisnachrichten in einer Ereignisdatei auf, um den Systemzustand des primären Systems oder eines Backup-Systems wieder zu erstellen, falls ein Fehler festgestellt wird.
Der Betrieb des Systems wird unter Verwendung von beispielhaften Ereignisvorgängen E, F und G veranschaulicht.
In einem ersten mit 701 bezeichneten Schritt wird eine Archivkopie von der Speichervorrichtung des primären Systems zur Speichervorrichtung des Standby-Systems übertragen. Vorzugsweise schließt die Archivkopie alle relevanten Anwendungsdaten und/oder alle relevanten Systemdaten ein. Somit stellt der Speicherinhalt des Standby-Systems den Speicherzustand des primären Systems zu einem bestimmten Zeitpunkt dar, an dem die Archivkopie erzeugt wurde.
Folgend wird in einem Schritt 702 ein Ereignisprozeß E am primären System ausgeführt, wie vorhergehend beschrieben, und bei einer normalen Beendigung des Ereignisvorgangs E wird eine Ereignisnachricht EE in einem Schritt 703 zum Standby- System übermittelt. Am Standby-System wird in einem Schritt 704 die Ereignisnachricht E in einer Ereignisdatei aufgezeichnet.
Ungefähr zur gleichen Zeit wird am primären System ein Ereignisvorgang F in einem Schritt 705 ausgeführt, der zu einem bestimmten Zeitpunkt unterbrochen wird. Demzufolge wird in einem Schritt 706 eine Ereignisnachricht EF erzeugt, einschließlich aller notwendigen Daten, die den Ereignisvorgang F und die Unterbrechung spezifizieren, und wird zum Standby-System übertragen.
Am Standby-System wird in einem Schritt 707 die Ereignisnachricht EF in der Ereignisdatei aufgezeichnet. Ähnlich wird in einem Schritt 708 ein Ereignisvorgang G ausgeführt, und bei einer normalen Beendigung des Ereignisvorgangs G wird in einem Schritt 709 eine Ereignisnachricht EG zum Backup-System übertragen. Die Ereignisnachricht EG wird in einem Schritt 710 in der Ereignisdatei aufgezeichnet.
Mit der im Schritt 701 am Standby-System erzeugten Archivkopie und der aufgezeichneten Ereignisnachrichten der Ereignisdatei, einer Abfolge von allen Ereignisnachrichten, die vom primären System übertragen wurden, kann der Systemzustand des primären Systems wiedererstellt werden, wie es vorhergehend ausgeführt wurde.
Archivkopien können in bestimmten Zeitintervallen erzeugt werden. Nach einer Übermittlung einer neuen Archivkopie, wie durch einen Schritt 711 angezeigt, können alle vorab aufgezeichneten Ereignisnachrichten der Ereignisdatei gelöscht werden, und eine neue Ereignisdatei kann gestartet werden. Somit ist es immer möglich, den Systemzustand des primären Systems wiederherzustellen, bis zu dem Ereignisvorgang, der der letzten in der Ereignisdatei am Standby-System aufgezeichneten Ereignisnachricht entspricht.
Im folgenden wird mit Bezug auf Fig. 8 ein weiteres Ausführungsbeispiel des fehlertoleranten Computersystems gemäß der Erfindung beschrieben.
Fig. 8 zeigt vier Verarbeitungsknoten 800, 810, 820 und 830 eines fehlertoleranten Computersystems gemäß der Erfindung. Die Verarbeitungsknoten sind mit einem Netzwerk 840 verbunden, das eine Gruppenzwischenverbindung (Cluster- Interconnect) sein kann.
Jeder der Verarbeitungsknoten umfaßt ein primäres System, ein Backup-System und ein Standby-System. Es wird darauf hingewiesen, daß das Standby-System nicht unbedingt vorhanden sein muß, in weiteren Ausführungsbeispielen kann ein Verarbeitungsknoten lediglich aus einem primären System und einem Backup-System bestehen.
Wie in Fig. 8 gezeigt, umfaßt der erste Verarbeitungsknoten 800 ein primäres System 801 für den ersten Verarbeitungsknoten 800, umfaßt ein Backup-System 802 für den zweiten Verarbeitungsknoten 810 und umfaßt ein Standby-System 803 für den dritten Verarbeitungsknoten 820.
Analog umfaßt der zweite Verarbeitungsknoten 810 ein primäres System 811 für den zweiten Verarbeitungsknoten 810, ein Backup-System 812 für den dritten Verarbeitungsknoten 820 und ein Standby-System 813 für den vierten Verarbeitungsknoten 830.
Der dritte Verarbeitungsknoten 820 umfaßt ein primäres System des dritten Verarbeitungsknotens 820, ein Backup-System des vierten Verarbeitungsknotens 830 und ein Standby-System des ersten Verarbeitungsknotens 800.
Zuletzt umfaßt der vierte Verarbeitungsknoten 830 ein primäres System 831 des vierten Verarbeitungsknotens 830, ein Backup-System 832 des ersten Verarbeitungsknotens 800 und ein Standby-System 833 des zweiten Verarbeitungsknotens 810.
Indem wechselseitig Primär-, Backup- und Standby-Funktionen zugewiesen werden, kann die Fehlertoleranz verbessert werden. Es wird darauf hingewiesen, daß eine beliebige Anzahl von Verarbeitungsknoten bereitgestellt werden kann, von denen jeder ein primäres, Backup- und Standby-System umfaßt. Obwohl die primäre Verarbeitungsvorrichtung, die Backup- Zentralverarbeitungseinheit und die Standby- Zentralverarbeitungseinheit in Fig. 8 als unabhängige Einheiten gezeigt sind, können sie durch einen einzigen Prozessor gebildet werden, d. h. Funktionen eines primären Systems, eines Backup-Systems und/oder eines Standby-Systems können durch eine einzige Verarbeitungseinheit ausgeführt werden.

Claims (23)

1. Fehlertolerantes Computersystem, umfassend:
ein mit einer Vielzahl von externen Vorrichtungen (141-146) verbundenes primäres System (100), einschließlich:
  • 1. einer primären zentralen Verarbeitungseinheit (101), um Ereignisvorgänge auszuführen, wobei ein Ereignisvorgang ein Vorgang ist, der bei Auftreten eines Befehls am primären System (100) ausgeführt wird;
    einer mit der primären zentralen Verarbeitungseinheit (101) verbundenen primären Speichervorrichtung (102), um Systemdaten und Anwendungsdaten zu speichern;
    einen mit der primären zentralen Verarbeitungseinheit (101) verbundenen Ereignisgenerator, um eine Ereignisnachricht jedesmal dann zu erzeugen, wenn die primäre Zentralverarbeitungseinheit (101) die Ausführung eines Ereignisvorgangs anhält, wobei die Ereignisnachricht zumindest Information über den Typ des Ereignisvorgangs und den Grund für ein Anhalten der Ausführung des Ereignisvorgangs einschließt;
zumindest ein Backup-System (110), das mit dem primären System (100) verbunden ist, einschließlich:
  • 1. einer zentralen Verarbeitungseinheit (111), um Ereignisvorgänge auszuführen;
    einer mit der Backup-Zentralverarbeitungseinheit (111) verbundene Backup-Speichervorrichtung (112), um Systemdaten und Anwendungsdaten zu speichern;
    einem Puffer (113), um eine Abfolge von Ereignisnachrichten vom primären System (100) zu empfangen und zwischenzuspeichern; und
    einer mit der Backup-Zentralverarbeitungseinheit (111) verbundenen Backup-Steuervorrichtung (114), um die Ausführung von Ereignisvorgängen zu steuern.
2. Fehlertolerantes Computersystem nach Anspruch 1, dadurch gekennzeichnet, daß der Ereignisgenerator (103) bei einer Unterbrechung eines Ereignisvorgangs und bei einer normalen Beendigung eines Ereignisvorgangs eine Ereignisnachricht erzeugt.
3. Fehlertolerantes Computersystem nach Anspruch 1 oder 2, gekennzeichnet durch
eine erste Vorrichtung zum Erzeugen von Ereignisdaten, die die Ausführung eines Ereignisvorgangs am primären System beschreiben;
einer zweiten Vorrichtung, um Ereignisdaten zu erzeugen, die die Ausführung des gleichen Ereignisvorgangs an dem zumindest einen Backup-System (110) beschreiben; und
einer Vorrichtung (110), um einen Systemfehler basierend auf einem Vergleich der Ereignisdaten festzustellen, und, im Falle, daß ein Systemfehler am primären System erfaßt wird, um eines des zumindest einen Backup-Systems für eine Übernahme einer Funktion als neues primäres System auszuwählen.
4. Fehlertolerantes Computersystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß Ereignisdaten über die Ausführung eines Ereignisvorgangs am primären System (100) in die entsprechende Ereignisnachricht eingeschlossen werden.
5. Fehlertolerantes Computersystem nach einem der vorhergehenden Ansprüche, gekennzeichnet durch zumindest ein Standby-System (150), einschließlich:
einer ersten Standby-Speichervorrichtung (152), um eine Archivkopie von Systemdaten und Anwendungsdaten zu empfangen und zu speichern; und
einer zweiten Standby-Speichervorrichtung (153), um eine Abfolge von Ereignisnachrichten in einer Ereignisdatei aufzuzeichnen, nachdem die Archivkopie erzeugt wurde.
6. Fehlertolerantes Computersystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß das Standby-System (150) weiter umfaßt:
eine mit der ersten Standby-Speichervorrichtung (152) und zweiten Standby-Speichervorrichtung (153) verbundene Standby-Zentralverarbeitungseinheit (151); und
einer Standby-Steuervorrichtung (154), die mit der Standby-Zentralverarbeitungseinheit (151) verbunden ist, um die Ausführung einer Abfolge von Ereignisvorgängen gemäß der Abfolge von in der Ereignisdatei gespeicherten Ereignisnachrichten zu steuern.
7. Fehlertolerantes Computersystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die externen Vorrichtungen (141-144) regionale Prozessoren oder verteilte zentrale Prozessoren eines verteilten Systems sind.
8. Fehlertolerantes Computersystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß ein Ereignisvorgang durch zumindest eines der folgenden Liste dargestellt wird:
Ausführen eines Befehls von einem regionalen Prozessor;
Ausführen eines Befehls von einem verteilten zentralen Prozessor;
Überprüfen einer Jobtabelle aufgrund einer Zeitgeberunterbrechung; und
Ausführung eines internen Befehls des primären Systems.
9. Fehlertolerantes Computersystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß eine Ereignisnachricht zumindest ein Merkmal der folgenden Liste umfaßt:
eine Abfolgenummer, die eine Ausführungsabfolge von Ereignisvorgängen anzeigt;
eine Anzahl von ausgeführten Instruktionen;
Registerzustände bei Auftreten einer Unterbrechung (Interrupt); und
Information bezüglich Daten, die durch den Ereignisvorgang definiert wurden, oder auf die durch den Ereignisvorgang zugegriffen wurde.
10. Fehlertolerantes Computersystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß bei Erfassung eines Softwarefehlers am primären System (100) eine Ereignisnachricht Information einschließt, die den Softwarefehler beschreibt, und das Backup-System (110) die Ausführung von zumindest einem Teil des entsprechenden Ereignisvorgangs ausläßt.
11. Fehlertolerantes Computersystem nach einem der vorhergehenden Ansprüche, gekennzeichnet durch
eine Vielzahl von Verarbeitungsknoten (800, 810, 820, 830), von denen jeder zumindest eine Vorrichtung der folgenden Liste umfaßt:
  • 1. ein primäres System eines ersten Verarbeitungsknotens;
    ein Backup-System eines zweiten Verarbeitungsknotens;
    ein Standby-System eines dritten Verarbeitungsknotens; und
    eine Vorrichtung, um alle Verarbeitungsknoten miteinander zu verbinden.
12. Fehlertolerantes Computersystem nach Anspruch 11, dadurch gekennzeichnet, daß die primären Zentralverarbeitungseinheiten, die Backup- Zentralverarbeitungseinheiten und die Standby- Zentralverarbeitungseinheiten des zumindest einen der Vielzahl von Verarbeitungsknoten durch einen einzigen Prozessor ausgebildet sind.
13. Verfahren zum fehlertoleranten Betrieb eines Computersystems einschließlich eines primären Systems (100) und zumindest eines Backup-Systems (110), einschließlich der folgenden Schritte:
am primären System (100):
  • 1. Ausführen von Ereignisvorgängen durch eine primäre Zentralverarbeitungseinheit (101), wobei ein Ereignisvorgang ein Vorgang ist, der bei Auftreten eines Befehls am primären System (100) ausgeführt wird;
    Erzeugen einer Ereignisnachricht jedesmal dann, wenn die primäre Zentralverarbeitungseinheit (101) die Ausführung eines Ereignisvorgangs anhält, wobei die Ereignisnachricht zumindest Information über den Typ des Ereignisvorgangs und den Grund für ein Anhalten der Ausführung des Ereignisvorgangs einschließt;
    Übertragen jeder Ereignisnachricht zu dem zumindest einen Backup-System (110);
am zumindest einen Backup-System (110):
  • 1. Aufzeichnen und Zwischenspeichern von Ereignisnachrichten vom primären System (110) in einem Puffer (113);
    Planen der Ausführung von Ereignisvorgängen entsprechend der Ereignisnachrichten im Puffer (113); und
    Ausführen der Ereignisvorgänge durch die Backup- Zentralverarbeitungseinheit (111).
14. Verfahren zum fehlertoleranten Betrieb eines Computersystems nach Anspruch 13, gekennzeichnet durch ein Erzeugen einer Ereignisnachricht bei einer Unterbrechung (Interrupt) eines Ereignisvorgangs und bei einer normalen Beendigung eines Ereignisvorgangs.
15. Verfahren zum fehlertoleranten Betrieb eines Computersystems nach Anspruch 13 oder 14, gekennzeichnet durch
Erzeugen von Ereignisdaten, die die Ausführung eines Ereignisvorgangs am primären System (100) beschreiben;
Erzeugen von Ereignisdaten, die die Ausführung des gleichen Ereignisvorgangs am zumindest einen Backup- System (110) beschreiben; und
Erfassen eines Systemfehlers basierend auf einem Vergleich von Ereignisdaten, und, im Falle, daß ein Systemfehler am primären System erfaßt wird, Auswählen eines des zumindest einen Backup-Systems für eine Übernahme einer Funktion als neues primäres System.
16. Verfahren zum fehlertoleranten Betrieb eines Computersystems nach einem der Ansprüche 13 bis 15, gekennzeichnet durch
Empfangen und Speichern einer Archivkopie von Systemdaten und Anwendungsdaten vom primären System (100) am zumindest einen Standby-System (150); und
Aufzeichnen einer Abfolge von Ereignisnachrichten in einer Ereignisdatei am zumindest einen Standby-System (150), die durch das primäre System nach der Erzeugung der Archivkopie erzeugt wurde.
17. Verfahren zum fehlertoleranten Betrieb eines Computersystems nach Anspruch 16, gekennzeichnet durch
Planen der Ausführung einer Abfolge von Ereignisvorgängen gemäß der in der Ereignisdatei gespeicherten Ereignisnachrichten, wenn das zumindest eine Standby-System Funktion als Backup-System zu übernehmen hat; und
Ausführen der durch die Ereignisnachrichten bestimmten Ereignisvorgänge in der Standby- Zentralverarbeitungseinheit, und Durchführen von entsprechenden Änderungen der Archivkopie.
18. Verfahren zum fehlertoleranten Betrieb eines Computersystems nach einem der Ansprüche 13 bis 17, dadurch gekennzeichnet, daß ein Ereignisvorgang durch zumindest eines der folgenden Gruppe dargestellt wird:
Ausführen eines Befehls von einem regionalen Prozessor;
Ausführen eines Befehls von einem verteilten zentralen Prozessor;
Überprüfen einer Jobtabelle aufgrund einer Zeitgeberunterbrechung (Interrupt); und
Ausführen einer internen Funktion des primären Systems.
19. Verfahren zum fehlertoleranten Betrieb eines Computersystems nach einem der Ansprüche 13 bis 18, dadurch gekennzeichnet, daß eine Ereignisnachricht weiter zumindest ein Merkmal der folgenden Gruppe umfaßt:
eine Sequenznummer, die eine Ausführungsabfolge von Ereignisvorgängen anzeigt;
eine Anzahl von ausgeführten Instruktionen;
Registerzustände bei Auftreten einer Unterbrechung; und
Information bezüglich Daten, die durch den Ereignisvorgang definiert wurden, oder auf die durch den Ereignisvorgang zugegriffen wurde.
20. Verfahren zum fehlertoleranten Betrieb eines Computersystems nach einem der Ansprüche 13 bis 19, dadurch gekennzeichnet, daß bei Erfassung eines Systemfehlers am primären System (100) eine Ereignisnachricht Information enthält, die den Softwarefehler beschreibt, und das Backup-System (110) die Ausführung von zumindest einem Teil des entsprechenden Ereignisvorgangs ausläßt.
21. Verfahren zum fehlertoleranten Betrieb eines Computersystems nach einem der Ansprüche 13 bis 20, dadurch gekennzeichnet, daß das zumindest eine Backup- System (110) Ereignisvorgänge in der Reihenfolge eines Empfangs von entsprechenden Ereignisnachrichten am Puffer ausführt, oder in einer Reihenfolge, die durch eine Abfolgenummer angezeigt ist, wobei die Abfolgenummer die Ausführungsabfolge von Ereignisvorgängen am primären System (100) bezeichnet.
22. Verfahren zum fehlertoleranten Betrieb eines Computersystems nach einem der Ansprüche 13 bis 21, dadurch gekennzeichnet, daß das Auswählen eines Backup- Systems zur Übernahme von Funktionen als neues primäres System einschließt:
Entscheiden, welcher Ereignisvorgang der letzte erfolgreich ausgeführte war;
Übertragen von Information bezüglich des letzten erfolgreich ausgeführten Ereignisvorgangs zu allen Backup-Systemen (110) und Standby-Systemen (150); und
Aussenden von Übernahmenachrichten zu allen verbleibenden Backup- und Standby-Systemen und zu allen Vorrichtungen.
23. Verfahren zum fehlertoleranten Betrieb eines Computersystems nach einem der Ansprüche 13 bis 22, dadurch gekennzeichnet, daß das primäre System mit einer externen Vorrichtung nur kommuniziert, nachdem das zumindest eine Backup-System die Ausführung eines vorhergehenden Ereignisses beendet hat und ein Systemfehler nicht erfaßt wurde.
DE19836347A 1998-08-11 1998-08-11 Fehlertolerantes Computersystem Expired - Lifetime DE19836347C2 (de)

Priority Applications (10)

Application Number Priority Date Filing Date Title
DE19836347A DE19836347C2 (de) 1998-08-11 1998-08-11 Fehlertolerantes Computersystem
CNB998095893A CN1137439C (zh) 1998-08-11 1999-08-09 容错计算机系统
AU57316/99A AU5731699A (en) 1998-08-11 1999-08-09 Fault tolerant computer system
EP99944347A EP1110148B1 (de) 1998-08-11 1999-08-09 Fehlertolerantes rechnersystem
PCT/EP1999/005739 WO2000010087A1 (en) 1998-08-11 1999-08-09 Fault tolerant computer system
BR9912879-9A BR9912879A (pt) 1998-08-11 1999-08-09 Sistema de computador tolerante à falha, e, processo de operação tolerante à falha de um sistema de computador
JP2000565464A JP2002522845A (ja) 1998-08-11 1999-08-09 フォールトトレラント・コンピュータシステム
KR1020017001732A KR100575497B1 (ko) 1998-08-11 1999-08-09 내고장성 컴퓨터 시스템
CA2339783A CA2339783C (en) 1998-08-11 1999-08-09 Fault tolerant computer system
US09/371,409 US6438707B1 (en) 1998-08-11 1999-08-10 Fault tolerant computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19836347A DE19836347C2 (de) 1998-08-11 1998-08-11 Fehlertolerantes Computersystem

Publications (2)

Publication Number Publication Date
DE19836347A1 true DE19836347A1 (de) 2000-02-17
DE19836347C2 DE19836347C2 (de) 2001-11-15

Family

ID=7877184

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19836347A Expired - Lifetime DE19836347C2 (de) 1998-08-11 1998-08-11 Fehlertolerantes Computersystem

Country Status (10)

Country Link
US (1) US6438707B1 (de)
EP (1) EP1110148B1 (de)
JP (1) JP2002522845A (de)
KR (1) KR100575497B1 (de)
CN (1) CN1137439C (de)
AU (1) AU5731699A (de)
BR (1) BR9912879A (de)
CA (1) CA2339783C (de)
DE (1) DE19836347C2 (de)
WO (1) WO2000010087A1 (de)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10014390A1 (de) * 2000-03-23 2001-10-04 Siemens Ag Hochverfügbares Rechnersystem und Verfahren zur Umschaltung von Bearbeitungsprogrammen eines hochverfügbaren Rechnersystems
DE10111864A1 (de) * 2001-03-13 2002-09-26 Tenovis Gmbh & Co Kg Anordnung mit zumindest einer Telekommunikationsanlage sowie Verfahren zum Sichern von Gebührendatensätzen
US7426559B2 (en) 2002-05-09 2008-09-16 International Business Machines Corporation Method for sequential coordination of external database application events with asynchronous internal database events

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19836347C2 (de) 1998-08-11 2001-11-15 Ericsson Telefon Ab L M Fehlertolerantes Computersystem
US6898189B1 (en) * 2000-08-23 2005-05-24 Cisco Technology, Inc. Restartable spanning tree for high availability network systems
US7054892B1 (en) * 1999-12-23 2006-05-30 Emc Corporation Method and apparatus for managing information related to storage activities of data storage systems
GB0002972D0 (en) * 2000-02-09 2000-03-29 Orange Personal Comm Serv Ltd Data handling system
US6694450B1 (en) * 2000-05-20 2004-02-17 Equipe Communications Corporation Distributed process redundancy
JP3968207B2 (ja) * 2000-05-25 2007-08-29 株式会社日立製作所 データ多重化方法およびデータ多重化システム
GB2372673B (en) * 2001-02-27 2003-05-28 3Com Corp Apparatus and method for processing data relating to events on a network
JP4273669B2 (ja) * 2001-02-28 2009-06-03 沖電気工業株式会社 ノード情報管理システム及びノード
US7171434B2 (en) * 2001-09-07 2007-01-30 Network Appliance, Inc. Detecting unavailability of primary central processing element, each backup central processing element associated with a group of virtual logic units and quiescing I/O operations of the primary central processing element in a storage virtualization system
US7472231B1 (en) 2001-09-07 2008-12-30 Netapp, Inc. Storage area network data cache
US20030065861A1 (en) * 2001-09-28 2003-04-03 Clark Clyde S. Dual system masters
US6880111B2 (en) * 2001-10-31 2005-04-12 Intel Corporation Bounding data transmission latency based upon a data transmission event and arrangement
US6918060B2 (en) * 2001-10-31 2005-07-12 Intel Corporation Bounding data transmission latency based upon link loading and arrangement
CN100397349C (zh) * 2001-11-30 2008-06-25 甲骨文国际公司 用于在网络系统上提供资源高可用性的方法
US7437450B1 (en) 2001-11-30 2008-10-14 Cisco Technology Inc. End-to-end performance tool and method for monitoring electronic-commerce transactions
GB0206604D0 (en) * 2002-03-20 2002-05-01 Global Continuity Plc Improvements relating to overcoming data processing failures
US20030236826A1 (en) * 2002-06-24 2003-12-25 Nayeem Islam System and method for making mobile applications fault tolerant
US7099661B1 (en) * 2002-07-10 2006-08-29 The Directv Group, Inc. Risk-time protection backup system
JP3774826B2 (ja) * 2002-07-11 2006-05-17 日本電気株式会社 情報処理装置
US7149917B2 (en) * 2002-07-30 2006-12-12 Cisco Technology, Inc. Method and apparatus for outage measurement
US20040044799A1 (en) * 2002-09-03 2004-03-04 Nokia Corporation Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process
NZ521983A (en) * 2002-10-14 2005-05-27 Maximum Availability Ltd Journaling changes to system objects such as programs in the IBM OS/400 operating system
GB0308264D0 (en) * 2003-04-10 2003-05-14 Ibm Recovery from failures within data processing systems
US7720973B2 (en) * 2003-06-30 2010-05-18 Microsoft Corporation Message-based scalable data transport protocol
CN1292346C (zh) * 2003-09-12 2006-12-27 国际商业机器公司 用于在分布式计算体系结构中执行作业的系统和方法
US7133986B2 (en) * 2003-09-29 2006-11-07 International Business Machines Corporation Method, system, and program for forming a consistency group
KR100608751B1 (ko) * 2004-02-07 2006-08-08 엘지전자 주식회사 이동통신단말기의 에러로그 관리 방법
US7133989B2 (en) * 2004-05-05 2006-11-07 International Business Machines Corporation Point in time copy between data storage systems
CN100372094C (zh) * 2004-10-29 2008-02-27 力晶半导体股份有限公司 具自动回复功能的晶片测试装置与晶片测试方法
JP4182948B2 (ja) * 2004-12-21 2008-11-19 日本電気株式会社 フォールト・トレラント・コンピュータシステムと、そのための割り込み制御方法
EP1903441B1 (de) * 2005-07-14 2016-03-23 Fujitsu Ltd. Nachrichtenanalyseeinrichtung, nachrichtenanalyseverfahren und nachrichtenanalyseprogramm
JP4696759B2 (ja) * 2005-07-29 2011-06-08 Kddi株式会社 光終端システム
KR100725502B1 (ko) * 2005-09-09 2007-06-08 삼성전자주식회사 전자장치, 전자장치 시스템 및 전자장치의 제어방법
CN100465911C (zh) * 2006-04-13 2009-03-04 华为技术有限公司 一种备份方法
US7424642B2 (en) * 2006-04-24 2008-09-09 Gm Global Technology Operations, Inc. Method for synchronization of a controller
KR100820772B1 (ko) * 2006-04-27 2008-04-10 텔코웨어 주식회사 분산 네트워크 환경에서의 이중화 메모리 파일시스템 복구방법 및 복구 시스템
US7725764B2 (en) 2006-08-04 2010-05-25 Tsx Inc. Failover system and method
US7865887B2 (en) * 2006-11-30 2011-01-04 Sap Ag Context based event handling and execution with prioritization and interrupt management
CN101145946B (zh) * 2007-09-17 2010-09-01 中兴通讯股份有限公司 一种基于消息日志的容错集群系统和方法
JP4644720B2 (ja) * 2008-03-10 2011-03-02 富士通株式会社 制御方法、情報処理装置及びストレージシステム
CN101593136B (zh) * 2008-05-30 2012-05-02 国际商业机器公司 使得计算机具有高可用性的方法和计算机系统
JP5366480B2 (ja) * 2008-08-27 2013-12-11 株式会社日立製作所 計算機システム及びそのバックアップ方法
CN101431401B (zh) * 2008-09-08 2012-04-04 华为终端有限公司 一种同步故障处理方法、客户端、服务器及其系统
US9569319B2 (en) * 2009-09-18 2017-02-14 Alcatel Lucent Methods for improved server redundancy in dynamic networks
CN101815009B (zh) * 2010-03-30 2011-09-28 南京恩瑞特实业有限公司 支持容错的热备同步方法
WO2012020698A1 (en) * 2010-08-11 2012-02-16 Nec Corporation Primary-backup based fault tolerant method for multiprocessor systems
CN102385637A (zh) * 2011-12-22 2012-03-21 山东中创软件商用中间件股份有限公司 一种数据库信息的备份方法及系统
CN104185841B (zh) * 2013-03-12 2018-08-17 株式会社东芝 数据库系统、管理装置、节点以及数据处理方法
CN103248499B (zh) * 2013-03-27 2014-09-17 天脉聚源(北京)传媒科技有限公司 一种信息交互的方法和系统
WO2015025384A1 (ja) 2013-08-21 2015-02-26 株式会社東芝 データベースシステム、プログラムおよびデータ処理方法
JP6122126B2 (ja) 2013-08-27 2017-04-26 株式会社東芝 データベースシステム、プログラムおよびデータ処理方法
CN103581177A (zh) * 2013-10-24 2014-02-12 华为技术有限公司 虚拟机管理方法及装置
EP3129903B1 (de) 2014-07-01 2018-11-28 SAS Institute Inc. Systeme und verfahren für fehlertolerante kommunikation
US9712382B2 (en) 2014-10-27 2017-07-18 Quanta Computer Inc. Retrieving console messages after device failure
US9946719B2 (en) 2015-07-27 2018-04-17 Sas Institute Inc. Distributed data set encryption and decryption
US9703789B2 (en) 2015-07-27 2017-07-11 Sas Institute Inc. Distributed data set storage and retrieval
US10496292B2 (en) 2017-01-19 2019-12-03 International Business Machines Corporation Saving/restoring guarded storage controls in a virtualized environment
US10452288B2 (en) 2017-01-19 2019-10-22 International Business Machines Corporation Identifying processor attributes based on detecting a guarded storage event
US10496311B2 (en) 2017-01-19 2019-12-03 International Business Machines Corporation Run-time instrumentation of guarded storage event processing
US10579377B2 (en) 2017-01-19 2020-03-03 International Business Machines Corporation Guarded storage event handling during transactional execution
US10732858B2 (en) 2017-01-19 2020-08-04 International Business Machines Corporation Loading and storing controls regulating the operation of a guarded storage facility
US10725685B2 (en) 2017-01-19 2020-07-28 International Business Machines Corporation Load logical and shift guarded instruction
EP3543870B1 (de) 2018-03-22 2022-04-13 Tata Consultancy Services Limited Exactly-once-transaktionssemantik für fehlertolerante fpga-basierte transaktionssysteme

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19625195A1 (de) * 1996-06-24 1998-01-02 Siemens Ag Synchronisationsverfahren

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4590554A (en) * 1982-11-23 1986-05-20 Parallel Computers Systems, Inc. Backup fault tolerant computer system
EP0306211A3 (de) * 1987-09-04 1990-09-26 Digital Equipment Corporation Synchronisiertes Doppelrechnersystem
CA1297593C (en) 1987-10-08 1992-03-17 Stephen C. Leuty Fault tolerant ancillary messaging and recovery system and method within adigital switch
DE69021712T2 (de) 1990-02-08 1996-04-18 Ibm Wiederanlaufkennzeichnungsmechanismus für fehlertolerierende Systeme.
US5157663A (en) 1990-09-24 1992-10-20 Novell, Inc. Fault tolerant computer system
JP2773424B2 (ja) * 1990-11-20 1998-07-09 株式会社日立製作所 ネットワークシステムおよび接続コンピュータ切替え方法
WO1993009494A1 (en) 1991-10-28 1993-05-13 Digital Equipment Corporation Fault-tolerant computer processing using a shadow virtual processor
US5551047A (en) 1993-01-28 1996-08-27 The Regents Of The Univeristy Of California Method for distributed redundant execution of program modules
US5473771A (en) * 1993-09-01 1995-12-05 At&T Corp. Fault-tolerant processing system architecture
US5544304A (en) * 1994-03-25 1996-08-06 International Business Machines Corporation Fault tolerant command processing
US5619656A (en) 1994-05-05 1997-04-08 Openservice, Inc. System for uninterruptively displaying only relevant and non-redundant alert message of the highest severity for specific condition associated with group of computers being managed
US5528516A (en) 1994-05-25 1996-06-18 System Management Arts, Inc. Apparatus and method for event correlation and problem reporting
US5623532A (en) 1995-01-12 1997-04-22 Telefonaktiebolaget Lm Ericsson Hardware and data redundant architecture for nodes in a communications system
US5737514A (en) * 1995-11-29 1998-04-07 Texas Micro, Inc. Remote checkpoint memory system and protocol for fault-tolerant computer system
SE515348C2 (sv) 1995-12-08 2001-07-16 Ericsson Telefon Ab L M Processorredundans i ett distribuerat system
JPH10240557A (ja) * 1997-02-27 1998-09-11 Mitsubishi Electric Corp 待機冗長化システム
DE19836347C2 (de) 1998-08-11 2001-11-15 Ericsson Telefon Ab L M Fehlertolerantes Computersystem

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19625195A1 (de) * 1996-06-24 1998-01-02 Siemens Ag Synchronisationsverfahren

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10014390A1 (de) * 2000-03-23 2001-10-04 Siemens Ag Hochverfügbares Rechnersystem und Verfahren zur Umschaltung von Bearbeitungsprogrammen eines hochverfügbaren Rechnersystems
DE10014390C2 (de) * 2000-03-23 2002-02-21 Siemens Ag Hochverfügbares Rechnersystem und Verfahren zur Umschaltung von Bearbeitungsprogrammen eines hochverfügbaren Rechnersystems
DE10111864A1 (de) * 2001-03-13 2002-09-26 Tenovis Gmbh & Co Kg Anordnung mit zumindest einer Telekommunikationsanlage sowie Verfahren zum Sichern von Gebührendatensätzen
US7426559B2 (en) 2002-05-09 2008-09-16 International Business Machines Corporation Method for sequential coordination of external database application events with asynchronous internal database events
US7953707B2 (en) 2002-05-09 2011-05-31 International Business Machines Corporation System and program product for sequential coordination of external database application events with asynchronous internal database events
US7979546B2 (en) 2002-05-09 2011-07-12 International Business Machines Corporation Method, system, and program product for sequential coordination of external database application events with asynchronous internal database events

Also Published As

Publication number Publication date
JP2002522845A (ja) 2002-07-23
EP1110148B1 (de) 2002-07-17
CN1312922A (zh) 2001-09-12
KR100575497B1 (ko) 2006-05-03
AU5731699A (en) 2000-03-06
EP1110148A1 (de) 2001-06-27
CA2339783C (en) 2011-03-08
DE19836347C2 (de) 2001-11-15
CA2339783A1 (en) 2000-02-24
WO2000010087A1 (en) 2000-02-24
BR9912879A (pt) 2001-05-08
US6438707B1 (en) 2002-08-20
CN1137439C (zh) 2004-02-04
KR20010072379A (ko) 2001-07-31

Similar Documents

Publication Publication Date Title
DE19836347C2 (de) Fehlertolerantes Computersystem
DE602004005344T2 (de) Verfahren, system und programm zur handhabung eines failover zu einem fernspeicherort
DE60214234T2 (de) Verfahren und apparate zum implementieren einer glasfaservermittlungseinheit mit hoher verfügbarkeit
DE69923621T2 (de) Verfahren und Vorrichtung zu korrekten und vollständigen Übertragungen in einem fehlertoleranten verteilten Datenbanksystem
DE102004052270B4 (de) Verarbeitungsvorrichtungs-Managementsystem
DE69021122T2 (de) Verfahren und Gerät zur ununterbrochenen Versorgung von Anwendungen in einem Rechnernetzwerk.
US9984140B1 (en) Lease based leader election system
DE69410671T2 (de) Datensicherung in einer Datenverarbeitungsanlage
DE69128271T2 (de) Verfahren und System zur Erhöhung der Betriebsverfügbarkeit eines Systems von Rechnerprogrammen, wirkend in einem verteilten Rechnerssystem
DE3685870T2 (de) Umschaltsicherungsverfahren fuer ein wiederanlaufbares datenbanksystem.
DE69125840T2 (de) Fehlertolerierendes rechnersystem
DE3486257T2 (de) Synchrones dezentralisiertes Verarbeitungssystem.
DE10134492B4 (de) Ausfallübernahme des Dateimanagementsystems in einem Rechnercluster
DE602005003490T2 (de) Verteiltes System mit Quorumredundanz und Verfahren dafür
EP2657797B1 (de) Verfahren zum Betreiben eines redundanten Automatisierungssystems
DE112020005786T5 (de) Systeme und verfahren zum ermöglichen eines hochverfügbaren verwalteten ausfallsicherungsdienstes
DE2740056A1 (de) Mulitprozessor-rechnersystem
DE112011104471T5 (de) Verfahren zur Failover-Verwaltung von virtuellen Maschinen und System zum Unterstützen desselben
EP3211533B1 (de) Fehlertolerante systemarchitektur zur steuerung einer physikalischen anlage, insbesondere einer maschine oder eines kraftfahrzeugs
DE112011103443T5 (de) Intelligente Schnittstelle für ein dezentrales Steuerungssystem
DE69907852T2 (de) Hochverfügbare asynchrone Ein/Ausgabe für gruppierte Rechnersysteme
EP1358554B1 (de) Automatische inbetriebnahme eines clustersystems nach einem heilbaren fehler
DE102021107655A1 (de) Protokollverwaltung für ein mehrknotendatenverarbeitungssystem
DE2747633A1 (de) Dv-system mit einer unterbrechungseinrichtung
DE69914568T2 (de) Vorrichtung, Verfahren und System zur Dateisynchronisierung in einem Fehlertoleranten Netzwerk

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
R071 Expiry of right