DE69125840T2 - Fehlertolerierendes rechnersystem - Google Patents

Fehlertolerierendes rechnersystem

Info

Publication number
DE69125840T2
DE69125840T2 DE69125840T DE69125840T DE69125840T2 DE 69125840 T2 DE69125840 T2 DE 69125840T2 DE 69125840 T DE69125840 T DE 69125840T DE 69125840 T DE69125840 T DE 69125840T DE 69125840 T2 DE69125840 T2 DE 69125840T2
Authority
DE
Germany
Prior art keywords
machine
processing device
primary
engine
state
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.)
Expired - Lifetime
Application number
DE69125840T
Other languages
English (en)
Other versions
DE69125840D1 (de
Inventor
Drew Major
Dale Neibaur Dale Neibaur
Kyle Powell
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.)
Micro Focus Software Inc
Original Assignee
Novell Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Novell Inc filed Critical Novell Inc
Publication of DE69125840D1 publication Critical patent/DE69125840D1/de
Application granted granted Critical
Publication of DE69125840T2 publication Critical patent/DE69125840T2/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/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1687Temporal synchronisation or re-synchronisation of redundant processing components at event level, e.g. by interrupt or result of polling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • 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/2053Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2071Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
    • G06F11/2076Synchronous techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • 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/2048Error 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 where the redundant components share neither address space nor persistent storage

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)
  • Multi Processors (AREA)
  • Debugging And Monitoring (AREA)
  • Ceramic Products (AREA)
  • Compositions Of Oxide Ceramics (AREA)
  • Manufacture Of Alloys Or Alloy Compounds (AREA)

Description

    HINTERGRUND DER ERFINDUNG 1. GEBIET DER ERFINDUNG
  • Die Erfindung bezieht sich auf ein Verfahren zum Bereitstellen eines fehlertoleranten Computersystems nach dem Oberbegriff des Anspruchs 1 bzw. auf ein fehlertolerantes Computersystem nach dem Oberbegriff des Anspruchs 8.
  • 2. TECHNISCHER HINTERGRUND
  • Bei Computeranwendungen ist es häufig wünschenswert, einen durchgehenden Betrieb des Computersystems zu gewährleisten, selbst wenn eine Komponente ausfällt. Personalcomputer (PCS) oder Workstations verwenden oft ein Computernetzwerk, um das gemeinsame Nutzen von Daten, Anwendungen, Dateien, Rechnerleistung, Kommunikations- und anderen Ressourcen, wie Druckern, Modems, Massenspeichern und ähnlichem zu ermöglichen. Im allgemeinen wird das gemeinsame Nutzen von Res sourcen unter Zuhilfenahme eines Netzwerk-Servers durchgeführt. Der Server ist eine Verarbeitungseinheit, die dem Verwalten von zentralen Ressourcen, dem Verwalten von Daten und dem gemeinsamen Nutzen dieser Ressourcen mit Client-PCS und -Workstations gewidmet ist. Der Server, das Netzwerk und die PCS oder Workstations zusammen bilden das Computersystem. Tritt im Server des Netzwerks ein Ausfall auf, so können die PCS und Workstations im Netzwerk nicht mehr auf die gewünschten zentralisierten Ressourcen zugreifen und das System versagt.
  • Um den Betrieb eines Computersystems während des Ausfalls einer Komponente aufrechtzuerhalten, wird ein redundantes oder Backup-System benötigt. Ein bekanntes Backup-Systern verwendet eine vollständige Hardware-Redundanz. Zwei identische Prozessoren stehen zur Verfügung, die auf der Hardware-Signalebene die gleichen Eingangssignale zur gleichen Zeit während des Betriebs des Computersystems erhalten. Normalerweise wird ein Prozessor als der Primärprozessor und der andere als der Sekundärprozessor angesehen. Fällt der Primärprozessor aus, schaltet das System auf den Sekundärprozessor um. Ein Beispiel eines solchen Hardware-Redundanz-Systems ist in dem US-Patent Nr. 3,444,528 von Lovell beschrieben. Bei Lovell erhalten zwei identische Computersysterne die gleichen Eingangssignale und führen die gleichen Operationen aus. Allerdings sorgt nur einer der Computer für die Ausgabe, es sei denn, daß ein Ausfall vorliegt, in welchem Falle der zweite Computer die Steuerung der Ausgabe übernimmt. Beim Betrieb werden die Ausgabeschaltungen des Backup-Computers gesperrt, bis eine Fehlfunktion im Hauptrechner auftritt. Zu dem Zeitpunkt werden die Ausgaben des Backup-Computers freigegeben.
  • Die Verwendung von identischen Prozessoren oder identischer Hardware hat eine Reihe von möglichen Nachteilen. Ein Nachteil sind die Komplexität und die Kosten der Synchronisierung der Prozessoren auf einem Signalniveau.
  • Ein anderes bekanntes Verfahren zum Bereitstellen eines Backup-Systems wird als "Checkpoint"-System bezeichnet. Ein Checkpoint-System nutzt ein Prinzip, das als "Automaten mit finiten Zuständen" bekannt ist. Dieses Prinzip besagt, daß, falls zwei Einrichtungen sich im gleichen Zustand befinden, identische Eingaben an diese Einrichtungen zu identischen Ausgaben jeder Einrichtung führen und jede Einrichtung zum gleichen identischen Zustand fortschreiten wird.
  • Bei einem Checkpoint-System wird der gesamte Zustand einer Einrichtung, z.B. der Prozessorzustand und die zugehöngen Speicher, nach jeder Operation des Primärprozessors an einen Backup-Prozessor übertragen. Im Falle eines Ausfalls, befindet sich der Backup-Prozessor idealerweise im jüngsten gültigen Zustand des Primärprozessors. Die jüngste Operation wird dem Backup-Prozessor zur Verfügung gestellt, und der Betrieb wird von diesem Punkt an mit Hilfe des Backup-Prozessors fortgesetzt. Alternativ wird die Zustandsinformation nach jeder Operation des Primärprozessors an einen Massenspeicher übergeben. Im Falle eines Ausfalls wird die gespeicherte Zustandsinformation einem Backup-Prozessor zur Verfügung gestellt, der ggf. vor diesem Ereignis für andere Operationen verwendet wurde.
  • Ein bekanntes Checkpoint-System ist in der US-Patentschrift Nr. 4,590,554 von Glaser beschrieben. Bei Glaser gibt es einen Primärprozessor zum Ausführen bestimmter Aufgaben. Ein Sekundärprozessor steht zum Ausführen anderer Aufgaben zur Verfügung. Periodisch wird der Zustand des Primärprozessors auf den Sekundärprozessor übertragen. Bei einem Ausfall des Primärprozessors werden alle Operationen, die vorn Primärprozessor seit der letzten Synchronisierung des Primär- und Backup-Prozessors ausgeführt wurden, vom Backup-Prozessor ausgeführt, um ihn auf den gleichen Stand wie den Primärprozessor zu bringen. Das System von Glaser sowie andere Checkpoint-Systeme leiden unter einer Reihe von Nachteilen. Ein Nachteil ist die Zeit- und Speichermenge, die benötigt wird, um den Zustand des Primärsystems an das Sekundärsystem zu übertragen. Ein anderer Nachteil von Checkpoint-Systemen ist die Unterbrechung des Service bei einem Ausfall des Primärsystems. Das Sekundärsystem muß durch Ausführen von Meldungen in einer Meldungsfolge "auf Geschwindigkeit gebracht werden".
  • Ein bekannter Versuch, dieses Problem zu lösen, besteht darin, nur die Teile des Zustands des Primärsystems zu aktualisieren, die seit der letzten Aktualisierung geändert wurden. Dies verlangt jedoch komplexe Speicher- und Datenverwaltungsschemata.
  • Aus der EP-A-0 143 125 ist ein fehlertolerantes Computersystem mit einer Mehrzahl von primären und sekundären (Backup-)Einrichtungen zum Ausführen von Aufgaben bekannt. Alle Prozessoren haben die gleiche Struktur und können als ein Ursprungs- oder als ein Zielprozessor arbeiten. Die Nachrichten werden von einem Ursprungsprozessor zu einer Mehrzahl von Prozessoren gesandt, die den Zielprozessor, den Backup-Prozessor des Ursprungsprozessors und den Backup Prozessor des Zielprozessors einschließen. Nachrichten eines Backup-Prozessors werden in einer Warteschlange gespeichert. Die Nachrichten werden vorn Backup-Prozessor nicht ausgeführt. Fällt der primäre Aufgabenprozessor aus, werden alle Nachrichten vom Backup-Aufgabenprozessor neu berechnet. Um die Anzahl der gespeicherten Nachrichten zu reduzieren, muß der Backup-Aufgabenprozessor periodisch synchronisiert werden, indem der Datenraum des primären Aufgabenprozessors kopiert wird.
  • Es ist eine Aufgabe der vorliegenden Erfindung, ein verbessertes Backup-System zu schaffen, das keine spezialisierte Hardware für die Synchronisation benötigt, und das transparent für asynchrone Ereignisse ist.
  • ZUSAMMENFASSENDE DARSTELLUNG DER ERFINDUNG
  • Die Erfindung ist ein Verfahren und eine Einrichtung zum Bereitstellen eines fehlertoleranten Backup-Systems in der Weise, daß, falls ein Primärverarbeitungssystem ausfällt, ein repliziertes System ohne Unterbrechung übernehmen kann. Die Primär- und Backup-Verarbeitungssysteme sind separate Computer, die durch einen Hochgeschwindigkeitskommunikationskanal miteinander verbunden sind. Die Erfindung, wie sie in den anliegenden Ansprüchen definiert ist, stellt eine Softwarelösung zum Synchronisieren des Backup-Systems zur Verfügung. Die vorliegende Erfindung ist als Netzwerkserver implementiert, aber die der Erfindung zugrunde liegenden Prinzipien können auch in anderen Verarbeitungsumgebungen verwendet werden. Die Server verwenden ein Betriebssystem einer speziellen Architektur. Die vorliegende Erfindung un terteilt dieses Betriebssystem in zwei "Maschinen". Eine Eingabe/Ausgabe(I/O)-Maschine ist verantwortlich für das Handhaben und Empfangen aller Daten und asynchronen Ereignisse im System. Die I/O-Maschine steuert und stellt Verbindungen her zu physischen Geräten und Gerätetreibern. Die Be triebssystem(OS)-Maschine wird dazu verwendet, Daten zu verarbeiten, die von der I/O-Maschine empfangen wurden. Im primären Server werden diese Maschinen als primäre I/O-Maschine und primäre OS-Maschine bezeichnet.
  • Alle Ereignisse und Daten, die den Zustand des Betriebssystems ändern können, werden durch die I/O-Maschine geleitet und in ein Nachrichtenformat konvertiert. Die Nachrichten werden an eine Nachrichtenwarteschlange übergeben, auf die die OS-Maschine zugreift. Unabhängig vorn zeitlichen Eintreten der Ereignisse (d.h. der asynchronen Ereignisse) empfängt daher die OS-Maschine alle Ereignisse sequentiell durch einen kontinuierlichen, sequentiellen Strom von Eingabedaten. Im Ergebnis ist die OS-Maschine ein Automat mit finiten Zuständen, der eine eindimensionale Eingangs-"Sicht" auf das System hat. Obwohl die OS-Maschine asynchrone Ereignisse verarbeitet, wird daher die Abfolge jener Ereignisse durch eine einfach geordnete Eingangssequenz gesteuert.
  • Beim Starten oder wenn ein sekundärer Prozessor zum ersten Mal zur Verfügung gestellt wird, wird der primäre Prozessor "ausgehungert", d.h. alle Befehle oder alle anderen Ereignisse, die den Zustand ändern könnten, werden angehalten, bis die OS-Maschine einen stabilen Zustand erreicht. An diesem Punkt wird der Zustand auf die OS-Maschine des Backup-Systems übertragen. Von diesem Punkt an werden identische Nachrichten (Ereignisse) jeder OS-Maschine zur Verfügung gestellt. Da beide Systeme mit einem identischen Zustand anfangen und identische Eingaben erhalten, erzeugen die OS-Maschinen darstellenden Teile der Systeme identische Ausgaben und schreiten zu identischen Zuständen fort.
  • Das Backup-System unterteilt das Betriebssystem ebenfalls in eine sekundäre OS-Maschine und eine sekundäre I/O- Maschine. Die sekundäre I/O-Maschine kommuniziert mit der primären I/O-Maschine. Bei einem Ausfall des primären Systems wird der verbleibende Teil des Computersystems mit nahezu keiner Unterbrechung zu dem sekundären System geschaltet. Dies ist möglich, da jedes Ereignis im wesentlichen gleichzeitig vom Backup-System und vorn primären System ausgeführt wird. Daher gibt es keinen Verlust bei der Verarbeitung durch das System während des Ausfalls einer Komponente. Ferner bedarf es keiner Übertragung eines Zustands, nachdem eine anfängliche Synchronisierung erreicht wurde. Dies reduziert die Komplexität des Systems und die Anforderung an die Speicherverwaltung und gewährleistet einen ununterbrochenen Service.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Figur 1 ist eine Blockdarstellung des bevorzugten Ausführungsbeispiels der vorliegenden Erfindung.
  • Figur 2 ist eine detaillierte Ansicht der I/O-Maschine gemäß Figur 1.
  • Figur 3 ist eine detaillierte Ansicht der OS-Maschine gemäß Figur 1.
  • Figur 4A ist ein Ablaufdiagramm, das den Betrieb der OS- Maschine während der Ausführung von Anforderungen und Ereignissen illustriert.
  • Figur 4B ist ein Ablaufdiagramm, das den Betrieb von primären und sekundären I/O-Maschinen während der Ausführung von Ereignissen veranschaulicht.
  • Figur 4C ist ein Ablaufdiagramm, das den Betrieb von primären und sekundären I/O-Maschinen während der Ausführung von Anforderungen veranschaulicht.
  • Figur 5 ist ein Diagramm, das Zustandsübergänge dieser Erfindung veranschaulicht.
  • Figur 6 ist ein Ablaufdiagramm, das die Synchronisation des primären und sekundären Systems veranschaulicht.
  • Figur 7 ist ein Blockschaltbild eines alternativen Ausführungsbeispiels der Erfindung.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Ein als Netzwerkserver verwendetes fehlertolerantes System wird beschrieben. In der folgenden Beschreibung werden zahlreiche spezielle Details erläutert, um eine gründlichere Beschreibung der vorliegenden Erfindung zu gewährleisten. Es ist einem Fachmann jedoch klar, daß die vorliegende Erfindung auch ohne dies speziellen Details ausgeführt werden kann. An anderer Stelle wurden wohlbekannte Merkmale nicht detailliert beschrieben, um die Beschreibung der Erfindung nicht unnötig zu belasten.
  • BLOCKDARSTELLUNG DER ERFINDUNG
  • Eine Blockdarstellung des bevorzugten Ausführungsbeispiels der Erfindung ist in Figur 1 gezeigt. Die Erfindung stellt einen primären Prozessor und ein primäres Betriebssystem bereit, welche allgemein durch die Elemente innerhalb der gestrichelten Linien 21 gekennzeichnet sind, und einen Backup- und sekundären Prozessor und ein Backup- oder sekundäres Betriebssystem, welche allgemein durch die Elemente innerhalb der gestrichelten Linien 22 gekennzeichnet sind. Das primäre Betriebssystem 21 umfaßt eine Betriebssystem(OS)-Maschine 10, die an eine Eingabe/Ausgabe(I/O)-Maschine 12 gekoppelt ist. Die I/O-Maschine und die OS-Maschine kommunizieren über "Ereignis"- und "Anfrage"-Warteschlangen. Die I/O-Maschine schreibt Ereignisse in die Ereigniswarteschlange, und die OS-Maschine liest die Ereignisse. Die OS-Maschine schreibt Anforderungen in die Anforderungswarteschlange, und die I/O-Maschine liest die Anforderungen.
  • Das Backup-System 22 enthält seine eigene OS-Maschine 16, die durch Ereigniswarteschlange 17 und Anforderungswar teschlange 42 mit der I/O-Maschine 18 kommuniziert. Die I/O- Maschine 12 kommuniziert mit der I/O-Maschine 18 über einen Hochgeschwindigkeitskommunikationsbus 15A und B. 15A und B sind ein Hardwarekanal, der dazu verwendet wird, zwei Arten von Nachrichten, A und B, zu übertragen. Der Hochgeschwindigkeitskommunikationsbus wird dazu verwendet, Ereignisse vom primären Server zum sekundären Server (LSA) zu übertragen. Er wird außerdem für die sonstige Kommunikation zwischen den I/O-Maschinen (158) verwendet. Die I/O-Maschine 12 kann auch auf einen Massenspeicher 14 über die Leitung 13 zugreifen. Die I/O-Maschine 12 ist außerdem mit anderen Einrichtungen gekoppelt, wie Zeitgeber, Tastaturen, Anzeigen usw., die symbolisch als Block 44A gezeigt sind, der über den Bus 64 mit der I/O-Maschine 12 gekoppelt ist. Die I/O- Maschine 18 ist über Leitung 19 mit dem Massenspeicher 20 gekoppelt. Die I/O-Maschine 12 und die I/O-Maschine 18 sind jeweils mit dem Netzwerk 23 verbunden. Die I/O-Maschine 18 ist über den Bus 65 mit dem Block 448 (Zeitgeber, Tastatur, Anzeige usw.) gekoppelt.
  • Die I/O-Maschine 12 empfängt Daten und asynchrone Ereignisse von demjenigen Computersystem, von dem sie ein Teil ist. Wird die Erfindung z.B. als Netzwerkserver eingesetzt so erhält die I/O-Maschine 12 LAN-Pakete von anderen mit dem Netzwerk gekoppelten Einrichtungen. Die I/O-Maschine steuert außerdem und ist verbunden mit physischen Geräten und Gerätetreibern, wie dem Massenspeichergerät 14, einer Tastatur und einem Zeitgeber.
  • Die OS-Maschinen arbeiten mit Daten, die sie von den I/O-Maschinen über die Ereigniswarteschlangen 11 und 17 erhalten. Nachdem eine gewünschte Operation ausgeführt wurde, werden die Daten über die Anforderungswarteschlangen 41 und 42 an die I/O-Maschinen zurückgegeben, um sie an andere Systeme inrichtungen auszugeben.
  • Der primäre Server 21 erhält Daten oder Ereignisse aus dem Netzwerk 23 über die Leitung 24. Die I/O-Maschine 12 konvertiert diese Ereignisse oder Daten in ein "Nachrichten"-Format. Jede Nachricht repräsentiert Daten oder ein Ereignis, die den Zustand des Betriebssystems ändem können. Die I/O-Maschine 12 stellt diese Nachrichten zunächst auf dem Bus 15A bereit, und sobald die I/O-Maschine 18 anzeigt, daß sie die Nachricht erhalten hat, wird die Nachricht von den I/O-Maschinen 12 und 18 durch die Ereignis-Nachricht-Warteschlangen-Busse 11 und 17 zu beiden OS- Maschinen geleitet. Diese Nachrichten werden sequentiell durch die OS-Maschinen 10 und 16 ausgeführt. Durch ein Aufreihen der Nachrichten wird die Zeitabhängigkeit des Systems beseitigt, so daß alle asynchronen Ereignisse in eine synchrone Folge von Ereignis-Nachrichten konvertiert werden. Durch Trennen der OS-Maschine von der I/O-Maschine wird die OS-Maschine dazu gebracht, so zu arbeiten, als wäre sie ein Automat mit finiten Zuständen, der eine eindimensionale Sicht auf das System (d.h. die Ereignis-Nachrichten-Warteschlange) hätte.
  • Die Busse 15A und 15B, die die primäre I/O-Maschine 12 mit der sekundären I/O-Maschine 18 verbindet, verwendet einen bidirektionalen Kommunikationskanal. Idealerweise gewährleisten die Busse 15A und B eine Hochgeschwindigkeitskommunikation, haben geringe Wartezeiten und einen geringen CPU-Verwaltungsaufwand. Jeder geeignete Kommunikationskanal kann bei dieser Erfindung verwendet werden, indusive Buserweiterungen und lokale Netzwerk-(LAN) Karten.
  • Die OS-Maschine und die I/O-Maschine können in einem einzigen Prozessor implementiert werden, falls dies gewünscht wird. Alternativ können separate Prozessoren, einer für die OS-Maschine und einer für die I/O-Maschine, verwendet werden. Zusätzliche OS-Maschinen unter Verwendung von zusätzlichen Prozessoren können in dieser Erfindung ebenfalls verwendet werden. Die Zustände aller OS-Maschinen werden dann gespiegelt.
  • Unabhängig davon, ob ein oder zwei Prozessoren für die OS-Maschine und die I/O-Maschine verwendet werden, wird der RAM-Systemspeicher zwischen den beiden Maschinen aufgeteilt. Die I/O-Maschine kann auf Speicher für die OS-Maschine zugreifen, aber die OS-Maschine kann nicht auf Speicher für die I/O-Maschine zugreifen. Dies geschieht deshalb, weil die Pufferspeicher-Adressen für die primäre und sekundäre I/O- Maschine unterschiedlich sein können, was dazu führt, daß sich die Zustände der primären und sekundären OS-Maschine unterscheiden, falls es ihnen erlaubt wäre, auf Adressen des Speichers für die I/O-Maschine zuzugreifen.
  • Es ist nicht notwendig, daß der primäre und der Backup- Server identische Prozessoren haben. Die Leistung der Prozessoren sollte ähnlich sein (CPU-Art, CPU-Geschwindigkeit), und die Prozessoren müssen Befehle in der gleichen Weise ausführen, jedoch nicht notwendigerweise auf dem Pin- und Buszyklus-Niveau, aber auf dem Niveau der in den Speicher geschriebenen Werte und der Befehisfolge. So könnte z.B. ein 80386-Mikroprozessor der Firma Intel Corporation aus Santa Clara, Kalifornien, im primären Server mit einem Intel 80486 im sekundärer Server verwendet werden. Die sekundäre Maschine muß wenigstens soviel RAM haben, wie für die primäre OS-Maschine verwendet wird. Ferner sollten der primäre und sekundäre Server das gleiche Volumen und die gleiche Konfiguration des Plattenspeichers haben.
  • Hardware- und/oder Software-Aktualisierungen und -Änderungen können ohne eine Unterbrechung des Services am System vorgenommen werden. Z.B. kann ein Benutzer den Wunsch haben, dem primären und sekundären Server mehr RAM hinzuzufügen. Um dies zu erreichen, werden der primäre oder sekundäre Server aus dem System genommen. Wird der primäre Server "off-line" geschaltet, wird der sekundäre Server dieses als einen Ausfall behandeln und wird anfangen, als primärer Server zu arbeiten, so daß es keine Unterbrechung des Betriebs des Systems gibt. Der "off-line"-Server kann dann aufgerüstet und wieder angeschlossen werden. Die Server werden dann wieder synchronisiert und der andere Server wird "off-line" geschaltet und aufgerüstet. Nach der Aufrüstung des zweiten Servers wird er wieder angeschlossen, und die Server werden wieder synchronisiert und beide beginnen mit der Nutzung des neu hinzugefügten RAMs. Daher können Hardware- und Softwareaufrüstungen ohne eine Unterbrechung des Services durchgeführt werden. Obwohl die Erfindung im Zusammenhang mit Netzwerkservern beschrieben wird, findet sie gleichermaßen Anwendung bei allgemeinen Computersystemen.
  • Zum Initialisieren des sekundären Betriebssystems werden der primären OS-Maschine 10 alle Ereignisse vorenthalten, bis sie einen stabilen Zustand erreicht hat. An diesem Punkt wird der Zustand der OS-Maschine 10 (verkörpert durch das Speicherabbild der OS-Maschine 10) durch den Nachrichtenbus 158 zur OS-Maschine 16 des Backup-Betriebssystems übertragen. Die OS-Maschine 10 hat dann einen mit der OS-Maschine 16 identischen Zustand. Zu diesem Zeitpunkt werden alle von der I/O-Maschine 12 erzeugten Nachrichten, die zur OS-Maschine 10 geleitet werden, ebenfalls auf den Bus 15A zur I/O-Maschine 18 für eine Übertragung an die OS-Maschine 16 geleitet. Da beide OS-Maschinen 10 und 16 mit identischen Zuständen beginnen und identische Eingaben erhalten, schreitet jede OS-Maschine nach jedem Ereignis oder jeder Nachricht zu einem identischen Zustand fort.
  • Bei der vorliegenden Erfindung erzeugen identische Nachrichten identische Zustände in den Primär- und Backup-Betriebssystemmaschinen, so daß die bekannten Checkpoint-Operationen überflüssig sind. Zeitabhängige Betrachtungen sind minimiert, und eine Synchronisation der jeweiligen OS-Maschinen für einen simultanen Betrieb ist unnötig, da synchrone und asynchrone Ereignisse einer Nachrichtenwarteschlange zugeleitet werden, welche dazu dient, asynchrone Ereignisse in synchrone Ereignisse zu konvertieren.
  • Gibt es einen Ausfall eines Primärsystems, so wird die I/O-Maschine 18 des sekundären Betriebssystems an das Netzwerk 23 gekoppelt. Die sekundäre I/O-Maschine 18 wird dann dazu verwendet, Nachrichten zu erzeugen, die der sekundären OS-Maschine 16 zugeleitet werden. Da das Backup-Betriebssystern sich im gleichen Zustand wie das Primär-Betriebssystem befindet, tritt für die den Server nutzenden Klienten während des Umschaltens eines Servers keine Unterbrechung des Betriebs auf.
  • TRENNUNG VON I/O-MASCHINE UND OS-MASCHINE
  • Bei der vorliegenden Erfindung sind die I/O-Maschine und die OS-Maschine im wesentlichen unabhängig. Um ungewünschte Zustandsänderungen zu vermeiden, die nicht von der Backup- OS-Maschine gespiegelt werden können, werden die von der I/O- und OS-Maschine gemeinsam genutzten Daten wie weiter unten beschrieben gesteuert. Jede Maschine hat ihr eigenes unabhängiges Prozeßsteuerprogramm, einen Befehlsinterpreter, ein Speicherverwaltungssystem und Befehlscode, der zu dem Teil des Betriebssystems gehört, der für seine Funktion wesentlich ist.
  • Die Teilung zwischen der OS-Maschine und der I/O-Maschine geschieht oberhalb des Niveaus der Hardwaretreiber in der Schicht der Treiberunterstützung. Die Software der Treiberunterstützungsschicht ist sowohl in der I/O-Maschine als auch in der OS-Maschine dupliziert und gewährleistet dieselbe Schnittstelle auf der obersten Ebene. Die Software der Unterstützungsschicht wird für die I/O-Maschine und die OS Maschine modifiziert. Die Treiberunterstützungsschicht der I/O-Maschine gewährleistet Schnittstellen auf dem Treiberniveau und kommuniziert mit physischen Hardwaretreibern. Sie konvertiert Ereignisse auf dem Hardwaretreiberniveau in Nachrichten, die der Ereigniswarteschlange der OS-Maschine zugeführt werden.
  • Die OS-Maschine hat keine Routinen zum Unterstützen von Hardwaretreiber-Schnittstellen, z.B. zum Registrieren von Interrupts oder zum Zuweisen von I/O-Port-Adressen. Verlangt die OS-Maschine eine Operation, für die eine Hardwarekomponente benötigt wird, (z.B. Schreiben oder Lesen von der Platte), so konvertiert die Software der Treiberunterstützungsschicht in der OS-Maschine die Aktion in eine Anforderung und leitet diese Anforderung zur Ausführung an die Anforderungswarteschlange der I/O-Maschine weiter. Die Ergebnisse dieser Anforderung werden dann an die OS-Maschine als eine von der Treiberunterstützungsschicht der I/O-Maschine erzeugte Ereignisnachricht zurückgegeben.
  • I/O-MASCHINE
  • Im folgenden wird auf Figur 2 Bezug genommen. Die I/O- Maschine besteht aus drei Ebenen, einer Treiberebene, einer Verwaltungssoftware-Ebene und einer Nachrichtenebene. Die Treiber 26A, 26E treiben Hardwareelemente wie Drucker, Speichereinrichtungen (z.B. Festplatten, Laufwerke), Anzeigen, LAN-Adapter, Tastaturen usw. Die Ebene der Verwaltungssoftware enthält Steuereinheiten für Gerätetreiber. Beispielsweise steuert der Plattenblock 27 den Plattengerätetreiber (z.B. den Plattengerätetreiber 26A). Der Plattenblock 27 steuert die Initialisierung von Plattenlese- und Schreibzugriffen. Zusätzlich verfolgt der Plattenblock 27 den Zustand einer Plattenoperation. Der Plattenblock 27 der primären I/O-Maschine (d.h. I/O-Maschine 12) übermittelt den Zustand der Plattenoperationen an die Backup-I/O-Maschine. Der primäre Massenspeicher 14 und der sekundäre Massenspeicher 20 sind im wesentlichen identische Systeme. Führt die primäre I/O-Maschine eine Leseoperation von Platte 14 aus, teilt sie der I/O-Maschine 18 mit, daß die Leseoperation abgeschlossen wurde. Beendet die primäre I/O-Maschine den Lesevorgang vorher, können die Daten als Nachricht über den Bus 15B an die sekundäre I/O-Maschine 18 gesandt werden. Alternativ kann die I/O-Maschine 18 die Daten von ihrem eigenen Plattenlauf werk 20 lesen.
  • Der LAN-Block 28 steuert externe Kommunikationen wie z.B. zu einem lokalen Netzwerk. Diese Erfindung ist allerdings nicht auflokale Netzwerke begrenzt. Vielmehr kann jede Form von Kommunikation bei dieser Erfindung verwendet werden. Die LAN-Steuereinheit erhält Informationspakete aus dem Netzwerk und stellt fest, ob dieses Paket zur OS-Maschine geleitet werden muß.
  • Der Anzeigeblock 29 steuert Kommunikationen mit einem Anzeigegerät, wie einem Kathodenstrahlbildschirm mittels des Gerätetreibers 26C. Der Zeitgeberblock 30 treibt die Uhr für die Systemzeit, und der Tastaturblock 31 gewährleistet eine Schnittstelle und Kommunikation mit der Tastatur.
  • Der Nachrichtenblock 47 konvertiert Systemereignisse in Nachrichten, um sie zur Ereigniswarteschlange der OS-Maschine zu leiten, und entfernt Anforderungen von der OS-Maschine aus der Warteschlange. Eine Nachricht besteht aus einem Kopffeld und einem Datenfeld. Das Kopffeld zeigt die Art der Nachricht oder Operation an. Das Datenfeld enthält die Daten, an denen die Operation ausgeführt werden soll. Die Nachrichtenebene tausch Ereignisnachrichten mit der I/O-Maschine über den Ereignisbus 15A aus.
  • OS-MASCHINE
  • Im folgenden wird auf Figur 3 Bezug genommen. Die OS-Maschine enthält eine Nachrichtenebene 32, um von der I/O-Maschine erhaltene Ereignisnachrichten aus der Warteschlange zu entfernen und um Anforderungen an die Warteschlange anzuhängen, damit Anforderungen der OS-Maschine an den Anforderungsblock 47 der I/O-Maschine geleitet werden. Die OS-Maschine enthält auch Verwaltungssoftware, die der Verwaltungssoftware der I/O-Maschine entspricht. Beispielsweise enthält die OS-Maschine eine Plattenverwaltungssoftware 33, eine LAN-Verwaltungssoftware 34, eine Nachrichtenverwaltungssoftware 35, eine Zeitgeberverwaltungssoftware 36 und eine Tastatursoftware 37. Die oberste Ebene 48 der OS-Maschine ist das Betriebssystem des Computersystems, das diese Erfindung benutzt.
  • Die Plattenverwaltungssoftware 33 kontrolliert die gespiegelten Kopien der Daten auf den redundanten Platten 14 und 20. Soll eine Plattenoperation, wie eine Plattenleseoperation ausgeführt werden, so stellt die Plattenverwaltungssoftware 33 fest, ob beide I/O-Maschinen 12 und 18 eine Leseoperation ausführen werden, oder ob die primäre I/O-Maschine 12 eine Leseoperation ausführen wird und die Daten an die sekundäre I/O-Maschine 18 übertragen werden. Die Zeitgeberverwaltungssoftware 36 steuert Zeitgeberereignisse. Im allgemeinen hat das Betriebssystem einen Zeitgeber, der periodisch unterbrochen wird. Häufig wird die Unterbrechung des Zeitgebers für zeitabhängige Operationen verwendet. Für diese Erfindung ist eine Unterbrechung des Zeitgebers selbst ein Ereignis in der Eingabewarteschlange. Dadurch, daß die Unterbrechung des Zeitgebers in eine Nachricht verwandelt wurde, werden die Zeitgeberereignisse relativ statt absolut. Zeitereignisse werden von asynchronen in synchrone Ereignisse geändert. Der LAN-Block 34, der Anzeigeblock 35 und der Tastaturblock 37 steuern Netzwerk-, Anzeige- bzw. Tastaturereignisse.
  • BETRIEBSWEISE
  • Erhält die OS-Maschine eine Ereignisnachricht, so können verschiedene Änderungen am Zustand der OS-Maschine auftreten, und diese Änderungen können eine endliche Zeit zum Auftreten benötigen. Wurde eine Nachricht von der OS-Maschine angenommen, so führt in dieser Erfindung die OS-Maschine alle Operationen aus, die in Abhängigkeit von der Nachricht ausgeführt werden können. Nachdem alle solche Operationen ausgeführt wurden, überprüft die OS-Maschine die Nachrichtenwarteschlange um festzustellen, ob eine andere Nachricht zur Ausführung zur Verfügung steht. Steht keine andere Nachricht zur Verfügung, wird die OS-Maschine inaktiv, bis eine Nachricht zur Verfügung steht. Diese Betriebsweise ist nötig, damit die primäre OS-Maschine und die sekundäre OS-Maschine synchron bleiben. Neue Nachrichten können der primären und der sekundären OS-Maschine zu verschiedenen Zeiten übergeben werden, da die I/O-Maschinen asynchron sind. Daher kann man sich nicht nach der An- oder Abwesenheit eines neuen Ereignisses richten oder diese dazu verwenden, den Zustand der OS-Maschine zu ändern.
  • Im bevorzugten Ausführungsbeispiel der vorliegenden Erfindung ist die Umgebung des Betriebssystems als nicht-präemptiv definiert. Eine Präemption ist inhärent ein asynchrones Ereignis. Im Stand der Technik kann eine gerade ausgeführte Aufgabe (Task) unterbrochen und durch ein Zeitgeber-Interrupt durch eine andere Aufgabe ersetzt werden. Da die vorliegende Erfindung zu jedem Zeitpunkt nur eine einzige Nachricht ausführt, beeinflußt eine Unterbrechung des Zeitgebers oder eine Anfrage zur exklusiven Nutzung die OS-Maschine solange nicht, bis die OS-Maschine zu dieser Nachricht in der Nachrichtenwarteschlange gelangt. Die auf der OS-Maschine laufende Aufgabe muß die Kontrolle aufgeben, bevor das Zeitgeberereignis von der OS-Maschine empfangen und ausgeführt werden kann.
  • KOMMUNIKATION ZWISCHEN DEN MASCHINEN
  • In der vorliegenden Erfindung wird die Kommunikation zwischen der OS-Maschine und der I/O-Maschine gesteuert. Die Erfindung ist so ausgelegt, daß sie eine einzige Quelle der Eingabe für die OS-Maschine erhält, wodurch zeitabhängige Ereignisse und durch die I/O-Maschine ausgeführte Änderungen daran gehindert werden, den Zustand der OS-Maschine zu beeinflussen.
  • Die Kommunikation zwischen der I/O-Maschine und der OS- Maschine ist wie folgt gekennzeichnet:
  • 1. Die OS-Maschine kann nur auf ihren eigenen OS-Maschinen-Speicher zugreifen. Die gesamte Kommunikation zwischen der OS-Maschine und der I/O-Maschine über den Speicher der OS-Maschine geschehen. Die OS-Maschine kann nicht auf Speicher zugreifen, der als Speicher der I/O-Maschine ausgezeichnet ist. Die Kohärenz des Speichers ist somit gewährleistet. Die primäre OS-Maschine und die sekundäre OS-Maschine sind bei dieser Erfindung gespiegelt, aber die primäre I/O-Maschine und die sekundäre I/O-Maschine sind es nicht. Daher können die Speicherinhalte jeder I/O-Maschine unterschiedlich sein. Solange die OS-Maschinen nicht auf den Speicher der I/O-Maschinen zugreifen, bleibt die Synchronisation der Zustände aufrecht erhalten.
  • 2. Fordert die OS-Maschine an, daß ein Speicherblock durch die I/O-Maschine geändert werden soll, kann die OS-Maschine auf diesen Speicherblock solange nicht zugreifen, bis die I/O-Maschine ein Ereignis zurücksendet, das der OS-Maschine anzeigt, daß die Modifizierung durchgeführt wurde. Die primäre und sekundäre OS-Maschine arbeiten nicht exakt synchron. Es kann eine gewisse Asymmetrie und Divergenz ihres jeweiligen Betriebs geben (obwohl die Zustände immer konvergieren). Zusätzlich können die primären und sekundären I/O-Maschinen den Speicher der OS-Maschinen zu unterschiedlichen Zeiten ändern. Würden dann Entscheidungen von der OS-Maschine getroffen, die sich auf den aktuellen Wert eines Speicherorts bezögen, der gerade durch die I/O-Maschine geändert würde, und würden die Speicherorte infolge der unterschiedlichen Änderungszeiten unterschiedliche Daten enthalten, so wäre die Synchronisation der Zustände zwischen den beiden OS-Maschinen verloren.
  • Benötigt die OS-Maschine eine Kopie von Daten der I/O- Maschine im tatsächlichen Betrieb, so weist die OS-Maschine einen Arbeitspufferspeicher aus, der die Daten aufnehmen kann und leitet die Adresse des Arbeitspufferspeichers an die I/O-Maschine weiter. Die I/O-Maschine kopiert die angeforderten Daten in den Arbeitspufferspeicher und erzeugt ein Ereignis für die OS-Maschine, das angibt, daß die Daten übertragen wurden. Die OS-Maschine kopiert die Daten aus dem Arbeitspufferspeicher in ihren letztendlichen Zielort und gibt den Arbeitspufferspeicher frei.
  • 3. Die I/O-Maschine kann keinen als Speicher der OS-Maschine ausgewiesenen Speicher ändern, falls sie nicht von der OS-Maschine die explizite Kontrolle über diesen Speicherort erhalten hat. Sobald die I/O-Maschine die Kontrolle über den Speicher der OS-Maschine an die OS-Maschine zurückgegeben hat (aufgrund eines Ereignisses), kann die I/O-Maschine auf diesen Speicher nicht mehr zugreifen.
  • 4. Die Software der OS-Maschine kann keine "Abfrage" für eine Änderung in einem Speicherwert durchführen, ohne die Kontrolle des Prozessors während der Abfrageschleife aufzugeben, da die OS-Maschine in der vorliegenden Implementierung nicht präemptiv oder durch Interrupts gesteuert sein kann. Alle Änderungen werden über Ereignisse durchgeführt, und neue Ereignisse werden nicht angenommen, bis der Prozessor vom laufenden Prozess freigegeben wird.
  • Versagt der primäre Server, wird der sekundäre Server zum primären Server. Die Adresse der OS-Maschine ändert sich nicht, aber Nachrichten, die vom Netzwerk empfangen werden, werden umgeleitet, um sie zum sekundären Server zu leiten.
  • PLATTEN-SPIEGELUNG
  • Der Primärspeicher 14 und der Sekundärspeicher 20 müssen für den Betrieb der Erfindung gespiegelt werden. Wird eine neue Sekundärmaschine angeschlossen, so bildet das Plattensystem die Laufwerke der Primärmaschine auf die entsprechenden Laufwerke der Sekundärmaschine ab. Die Laufwerke werden mit einem Zähler für das "aktuelle Synchronisationsniveau" markiert, der dazu verwendet werden kann anzuzeigen, welches Laufwerk aktueller ist oder daß zwei Laufwerke bereits vollständig synchronisiert sind. Tritt eine Anderung am Synchronisationszustand auf (d.h. der andere Server ist ausgefallen), wird das aktuelle Synchronisationsniveau vorn überlebenden Server erhöht. Die überlebende Maschine beginnt außerdem damit, Speicherblöcke, die auf Platte geschrieben werden, zu verfolgen. Wird die ausgefallene Maschine wieder angeschlossen, nachdem festgestellt wurde, daß sie die gleichen Medien wie früher hat, kann die reparierte Maschine synchronisiert werden, indem nur die Speicherblöcke übertragen werden, die sich geändert haben, während die Maschine außer Betrieb war. Wird das System zum ersten Mal gestartet und die ursprüngliche Primärmaschine angeschlossen, so wird verfolgt, welche Plattenblöcke aus dem gleichen Grund modifiziert wurde.
  • KOMMUNIKATION DER PRIMAREN UND SEKUNDÄREN I/O-MASCHINE
  • Die I/O-Maschine des Primärsystems bestimmt die Sequenz der Ereignisse, die der primären OS-Maschine und der sekundären OS-Maschine zugeleitet werden. Ein Ereignis und zusätzlich irgendwelche Daten, die im Speicher der primären OS-Maschine modifiziert wurden, werden der sekundären OS-Maschine mitgeteilt, bevor das Ereignis in die Ereigniswarteschlange der primären OS-Maschine eingeordnet wird. Diese Kommunikation geschieht über den Bus 15A. Die I/O-Maschine des sekundären Systems modifiziert den Speicher der sekundären OS-Maschine und leitet das Ereignis der sekundären 05- Maschine zu.
  • Zusätzlich zum Austausch von Ereignissen kommunizieren die primäre und die sekundäre I/O-Maschine auch andere Informationen. Mechanismen werden zur Verfügung gestellt, damit verschiedene Unterstützungsroutinen der Treiberschicht mit ihrem jeweiligen Gegenstück im anderen System kommunizieren können. Diese Kommunikation ist bidirektional und ge schieht über den Bus 15B. Beispiele solcher Kommunikationen umfassen den Abschluß von Platten-I/O-Anforderungen und die Kommunikation von Platten-I/O-Daten, wenn die Daten aufgrund eines Platten-Hardware-Ausfalls nur in einem der Systeme gespeichert sind.
  • Es gibt zwei Prozeduren, die für die Kommunikation zwischen den OS-Maschinen verwendet werden. "Addfsevent" wird von der I/O-Maschine dazu verwendet, ein Ereignis an die OS- Maschine zu geben und "MakeIORequest" wird von der OS-Maschine aufgerufen, um der I/O-Maschine eine Anforderung mitzuteilen. AddFSEvent kann nur von der primären I/O-Maschine aufgerufen werden. Beide Aufrufe verwenden einen Anforderungs- oder Ereignistyp, um die durchgeführte Anforderung oder das durchgeführte Ereignis zu identifizieren. Zusätzlich übergeben beide Aufrufe einen Parameter, der in funktionsspezifischer Weise definiert ist. Dieser kann beispielsweise ein Zeiger auf eine Datenstruktur im Speicher der OS-Maschine sein.
  • Modifiziert die I/O-Maschine des primären Systems eine Datenstruktur in der OS-Maschine, muß die gleiche Modifikation in der sekundären OS-Maschine durchgeführt werden, bevor das Ereignis der OS-Maschine durchgeführt werden kann. Addfsevent können Zeiger auf Datenstrukturen in der OS-Maschine übergeben werden, die dem sekundären Server zusammen mit Ereignissen übertragen werden, um Datenmodifikationen der OS-Maschine auf das Sekundärsystem zu übertragen.
  • Im Sekundärsystem gibt es Behandlungsprozeduren in der I/O-Maschine, jeweils eine pro Anforderungstyp, die aufgerufen werden, wenn Ereignisse vom Primärserver erhalten werden. Die Behandlungsprozedur wird mit den Originalparametern und den Zeigern auf die Bereiche in der OS-Maschine aufgerufen, die modifiziert werden müssen.
  • Die Ereignissteuerbehandlungsprozeduren der sekundären I/O-Maschine haben die Wahl, die Ereignisse anzunehmen oder hinzuhalten. Ein Hinhalten würde verwendet, falls das Ereignis eine Antwort auf eine Anforderung der OS-Maschine ist und das Sekundärsystem die Anforderung noch nicht erhalten hat. Würde das Ereignis nicht hingehalten, könnte potentiell ein Speicher in der OS-Maschine vor der Zeit geändert werden. Üblicherweise entfernen die Ereignisbehandlungsroutinen der sekundären I/O-Maschine eine ausstehende Anforderung, die sie verfolgt haben, und zeigen an, daß das Ereignis akzeptiert werden soll. Nachdem die Daten kopiert wurden, wird das Ereignis an die sekundäre OS-Maschine übergeben. Man beachte, daß die Ereignisbehandlungsroutine des Sekundärsystems andere Modifikationen am Speicher der OS-Maschine vornehmen können, falls dies bei der Implementierung nötig ist.
  • Es ist wichtig, daß die primäre I/O-Maschine wartet, bis das sekundäre System ein Ereignis erhält, bevor das Ereignis an die primäre OS-Maschine übergeben wird. Anderenfalls könnte die primäre OS-Maschine das Ereignis verarbeiten und eine Antwort übergeben, bevor das ursprüngliche Ereignis an das Sekundärsystem übertragen wurde (das Ereignis könnte in einer Warteschlange des Primärsystems verzögert werden, in der es darauf wartet, an das Sekundärsystem gesendet zu werden). Würde das Primärsystem eine Anforderung in Abhängigkeit von einem noch nicht an das Sekundärsystem übertragenen Ereignis erzeugen, so würde, falls das Primärsystem ausfällt, sein Zustand -von einem externen Benutzer aus betrachtet- nicht mit dem Sekundärsystem synchronisiert sein.
  • BETRIEBSZUSTÄNDE UND ÜBERGÄNGE DES SERVERS
  • Die Software der I/O-Maschine läuft in vier verschiedenen Zuständen: Kein-Server-Aktiv-Zustand, Primärsystem-ohne- Sekundärsystem-Zustand, Primärsystem-mit-Sekundärsystem-Zustand und Sekundärsystem-Zustand. Zusätzlich vollführt die I/O-Maschine folgende Zustandsübergänge: Kein-Server-aktiv zu Primärsystem-ohne-Sekundärsystem, Primärsystem-ohne-Sekundärsystem zu Primärsystem-mit-Sekundärsystem und Sekundärsystem zu Primärsystem. Es gibt einige zusätzliche Zustände, die während der Synchronisation eines Sekundärsystems auftreten.
  • Die Zustände des erfindungsgemäßen Systems sind in Figur dargestellt. Wie erwähnt, arbeitet die I/O-Maschine in einem von vier Zuständen, S1, S2, S3 und S4. Der Zustand S1, keine-Server-Maschine, tritt auf, wenn die I/O-Maschine arbeitet, aber die OS-Maschine nicht. Zustand S2, Primär-ohne- Sekundär, tritt auf, wenn sowohl die I/O-Maschine als auch die OS-Maschine geladen sind, das System aber nicht gespiegelt ist. Ist das System gespiegelt, so wird es zur primären OS-Maschine und die I/O-Maschine agiert als primäre I/O-Maschine.
  • Zustand 3 wird als Primär-mit-Sekundär bezeichnet. In diesem Zustand läuft die I/O-Maschine in einem gespiegelten Primärsystem. Der Zustand S4, Sekundär-mit-Primär, tritt auf, wenn die I/O-Maschine in einem gespiegelten zweiten System läuft.
  • Es gibt fünf mögliche Zustandsübergänge, die der I/O-Maschine passieren können. Diese sind durch die Linien T1-T5 gekennzeichnet. Der erste Übergang T1 verläuft vorn Zustand S1 zum Zustand S2. Dieser Übergang tritt nach der Aktivierung der OS-Maschine auf.
  • Der zweite Übergang T2 geschieht vorn Zustand S2 zum Zustand S3 und tritt innerhalb des Primärsystems auf, wenn dieses mit dem Sekundärsystem synchronisiert wurde. Der übergang T3 geschieht vom Zustand S1 zum Zustand S2 und tritt innerhalb des Sekundärsystems auf, wenn die OS-Maschine mit dem Primärsystem synchronisiert ist.
  • Der Übergang T4 geschieht vom Zustand S4 zum Zustand S2 und tritt auf, wenn das Primärsystem ausfällt. Der Übergang TS geschieht vom Zustand S3 zum Zustand S2 und tritt auf, wenn das Sekundärsystem ausfällt.
  • NACHFÜHRUNG DES SEKUNDÄREN SERVERS UND AUSFÜHRUNG VON ANFORDERUNGEN
  • Die I/O-Maschine des Sekundärsystems erhält Anforderun gen von ihrer eigenen OS-Maschine, führt diese normalerweise aber nicht aus. Statt dessen reiht sie die Anforderung in die Warteschlange ein und wartet, bis das primäre I/O-System auf die Anforderung antwortet, erhält sodann eine Kopie der Antwort (das vom primären I/O-System erzeugte Ereignis), entfernt seine eigene Kopie der Anforderung aus der Warteschlange und erlaubt es dem Antwort-"Ereignis", an seine eigene OS-Maschine weitergeleitet zu werden.
  • Die sekundäre I/O-Maschine muß die Anforderungen der OS- Maschine aus verschiedenen Gründen der Warteschlange hinzufügen. Vor allem erwartet die OS-Maschine normalerweise irgendeine Art von Antwort-"Ereignis" auf jede ihrer Anforderungen. Fällt das Primärsystem aus, so vervollständigt das Sekundärsystem (jetzt das Primärsystem) die Anforderung und erzeugt das zugehörige Antwort-Ereignis. Ein anderer Grund liegt darin, daß das Sekundärsystem warten muß, bis es die Anforderung erhalten hat, bevor es das Antwort-Ereignis akzeptieren kann (ein Fall, der eintreten kann, falls das Primärsystem dem Sekundärsystem signifikant voraus ist). Andernfalls könnte das Sekundärsystem Daten an seine OS-Maschine übertragen, die die OS-Maschine noch nicht bereit wäre zu empfangen. Hat das Sekundärsystem die Anforderung an die Warteschlange angehängt, kann es das Antwort-Ereignis akzeptieren; ist dies nicht der Fall, signalisiert es dem Primärsystem, abzuwarten und es erneut zu versuchen.
  • Es gibt von der OS-Maschine ausgehende Anforderungen, die möglicherweise von beiden Servern ausgeführt werden müssen, woraufhin das tatsächliche Vervollständigungs-"Ereignis" durch das Primärsystem koordiniert werden muß. Ein Beispiel dafür sind Platten-Schreib-Operationen. Das Sekundärsystem muß dem Primärsystem anzeigen, wann es mit der Anforderung fertig ist; das Primärsystem wartet, bis es das Schreiben abgeschlossen hat und erst eine Bestätigung der Vervollständigung vom Sekundärsystem erhalten hat, bevor es das Vervollständigungs-"Ereignis" erzeugt.
  • Ein Ablaufdiagramm, das die Ausführung von Ereignissen und Anforderungen darstellt, ist in den Figuren 4A-4C veranschaulicht. Zunächst wird mit Bezug auf Figur 4A der Betrieb der OS-Maschine veranschaulicht.
  • Der Betrieb der OS-Maschine beim Erzeugen einer Anforderung wird in den Schritten 51 und 52 gezeigt. Der Betrieb der OS-Maschine beim Empfangen eines Ereignisses ist in den Schritten 53 und 54 gezeigt. In Schritt 51 stellt die Verwaltungsebene der OS-Maschine fest, daß die Notwendigkeit besteht, eine I/O-Operation durchzuführen. In Schritt 52 erzeugt die OS-Maschine eine Anforderung für die I/O-Maschine und tritt in einen Wartezustand ein, in welchem sie auf ein Antwort-Ereignis von der I/O-Maschine wartet.
  • In Schritt 53 wird ein Ereignis von der I/O-Maschine in der Ereigniswarteschlange der OS-Maschine empfangen. Das Ereignis wird dem zugehörigen Block der Verwaltungsebene zugeleitet, die z.B. dem Plattenblock, dem LAN-Block, dem Tastaturblock usw. In Schritt 54 schließt die Verwaltungsebene das anfängliche I/O-Ereignis ab, indem es mit der ursprünglichen Anforderung abgeglichen wird.
  • Ein Ablaufdiagramm, das den Betrieb der I/O-Maschine während Ereignisverarbeitungszuständen zeigt, ist in Fig. 4B veranschaulicht. Die Schritte 55, 58 illustrieren die primäre I/O-Maschine, und die Schritte 59 bis 63 illustrieren die sekundäre I/O-Maschine. In Schritt 55 stellt die Verwaltungsebene der primären I/O-Maschine fest, daß ein Ereignis für die OS-Maschine vorliegt. In Schritt 56 wird dieses Ereignis in eine Nachricht umgewandelt und der sekundären I/O-Maschine mitgeteilt. Die primäre I/O-Maschine wartet dann, bis die sekundäre I/O-Maschine das Ereignis bestätigt hat, bevor sie die Nachricht der primären OS-Maschine zulei tet. Im Entscheidungsblock 57 wird eine Entscheidung dahingehend getroffen, ob das Ereignis von der sekundären I/O- Maschine akzeptiert wurde. Wurde das Ereignis noch nicht abkzeptiert, wartet die primäre I/O-Maschine bis eine Bestätigung vollzogen wurde. Hat die sekundäre I/O-Maschine das Ereignis akzeptiert, wodurch die Bedingung des Entscheidungsblocks 57 erfüllt ist, fügt die I/O-Maschine das Ereignis in die Ereigniswarteschlange der primären OS-Maschine in Schritt 58 ein.
  • Sie sekundäre I/O-Maschine wartet in Schritt 59 auf ein Ereignis von der primären I/O-Maschine. Im Entscheidungsblock 60 stellt die sekundäre I/O-Maschine fest, ob sie für das empfangene Ereignis bereit ist. Ist die sekundäre I/O- Maschine nicht bereit, sendet sie eine Nicht-Akzeptieren- Nachricht an die primäre I/O-Maschine in Schritt 61 und kehrt zu Schritt 59 zurück, um auf ein weiteres Ereignis zu warten. Ist die sekundäre I/O-Maschine bereit, das Ereignis anzunehmen, und sind die Bedingungen im Entscheidungsblock 60 erfüllt, so sendet die sekundäre I/O-Maschine eine Bestätigung des Ereignisses an die primäre I/O-Maschine in Schritt 62. Die sekundäre I/O-Maschine plaziert dann in Schritt 63 das Ereignis in der Ereigniswarteschlange der sekundären OS-Maschine.
  • Fig. 4C veranschaulicht den Verarbeitungszustand der I/O-Maschine beim Verarbeiten von Anforderungen, die in der OS-Maschine erzeugt wurden. Die Schritte 70-74 illustrieren den Zustand der primären I/O-Maschine während dieser Operationen und die Schritte 75-81 illustrieren die sekundäre I/O-Maschine während dieser Operationen. In Schritt 70 stellt die Nachrichtenebene der I/O-Maschine fest, daß eine Anforderung in der Anforderungswarteschlange zur Verfügung steht. In Schritt 71 wird die Anforderung durch die I/O-Maschine ausgeführt. Diese Anforderung kann eine Platten- Schreib-Operation sein, Sende-ein-Paket durchs lokale Netzwerk, usw. In Entscheidungsblock 72 wird festgestellt, ob eine Ausführung der Anforderung durch die sekundäre I/O-Maschine ebenfalls erforderlich ist. Ist keine weitere Ausführung erforderlich, schreitet die I/O-Maschine zu Schritt 74 fort. Ist eine sekundäre Ausführung erforderlich, schreitet die primäre I/O-Maschine zu Entscheidungsblock 73 fort. Ist die sekundäre Verarbeitung abgeschlossen, schreitet die primäre I/O-Maschine zu Schritt 74A fort. Ist der sekundäre Schritt nicht abgeschlossen, wartet die primäre I/O-Maschine, bis der sekundäre Schritt abgeschlossen wurde. Im Ent scheidungsblock 74A wird festgestellt, ob die Anforderung ein Abschluß-Ereignis erzeugt. Wird dies bejaht, so schreitet die primäre I/O-Maschine zu Schritt 748 fort und erzeugt das Abschlußereignis. Ist kein Abschluß-Ereignis nötig, so schreitet die primäre I/O-Maschine zu Schritt 74C fort und ist fertig.
  • In Schritt 75 stellt die Nachrichtenebene der sekundären I/O-Maschine fest, daß eine Anforderung von der OS-Maschine zur Verfügung steht. Im Entscheidungsblock 76 wird festge stellt, ob der sekundäre Prozessor die Anforderung ausführen muß. Muß die sekundäre I/O-Maschine die Anforderung ausführen, schreitet die sekundäre I/O-Maschine zu Schritt 77 fort und führt die Anforderung aus. Nach Ausführung der Anforderung informiert die sekundäre I/O-Maschine die primäre I/O- Maschine über den Abschluß. Muß die sekundäre I/O-Maschine die Anforderung nicht ausführen, schreitet die sekundäre I/O-Maschine zum Entscheidungsblock 79 fort und stellt fest, ob die Anforderung ein Abschluß-Ereignis erzeugt. Gibt es kein durch die Anforderung erzeugtes Abschluß-Ereignis, so schreitet die sekundäre I/O-Maschine zu Schritt 80 fort und ist fertig. Erzeugt die Anforderung ein Ereignis, so wartet die sekundäre I/O-Maschine das dazugehörige Ereignis von der primären I/O-Maschine in Schritt 81 ab.
  • SERVERSYNCHRONISIERUNGSSEQUENZ
  • Während der Synchronisierung des Sekundärsystems mit dem Primärsystem muß der gesamte "Zustand" der OS-Maschine sowie der Zustand der primären I/O-Maschine, insoweit er sich auf den Zustand der OS-Maschine bezieht, dem Sekundärsystem mitgeteilt werden. Zum Initiieren der Synchronisation des Primär- mit dem Sekundärsystems werden dem System der primären OS-Maschine neue Ereignisse "vorenthalten". D.h. es werden keine neuen Ereignisse der Ereigniswarteschlange des Primärsystems zugeführt. Nachdem die Nachrichtenwarteschlange des Primärsystems leer ist, wartet die OS-Maschine des Primärsystems auf ein neues Ereignis, indem sie sich in einer Schleife bewegt. Wenn die OS-Maschine auf ein neues Ereignis wartet, ist sie wiederum in einem stabilen Zustand und bleibt konsistent, bis sie auf ein neues Ereignis trifft. Der gesamte Zustand der OS-Maschine ist dann im Speicherbild der OS-Maschine enthalten; das Speicherbild wird dann einfach zum Sekundärsystem übertragen. Schließlich wird beiden OS-Maschinen der gleiche Satz von neuen Ereignissen zugeführt, und sie beginnen, sich gegenseitig zu spiegeln.
  • Ein Ablaufdiagramm, das die erfindungsgemäße Synchronisierungsabfolge darstellt, ist in Fig. 6 illustriert. Die Schritte 85-89 repräsentieren die Zustände und Übergänge des Primärservers. Die Schritte 90-93 repräsentieren die Zustände und Übergänge des Sekundärservers. Der Primärserver ist in Schritt 85 im anfänglichen Zustand S2 und der Sekundärserver ist in Schritt 90 anfänglich in Zustand S1 (I/O-Maschine allein).
  • Die I/O-Maschinen koordinieren die Synchronisierungsse quenz. Wird den Servern ein Befehl zum Synchronisieren gegeben, bereitet sich die Verwaltungssoftware der primären I/O- Maschine in Schritt 86 auf die Synchronisierung vor. Dies erlaubt den verschiedenen Treiberunterstützungsschichten, mit der OS-Maschine zu kommunizieren und alle Aufgaben zu beenden, die eine Synchronisierung verhindern würde. Das Primärsystem beginnt mit dem "Aushungern" der OS-Maschine und hört außerdem auf, Anforderungen von der OS-Maschine anzunehmen.
  • Als nächstes werden alle ausstehenden Anforderungen, die von der I/O-Maschine ausgeführt werden, abgeschlossen (und das zugehörige Abschluß-Ereignis wird in das Speicherbild der OS-Maschine übertragen, wird aber versteckt und zu diesem Zeitpunkt noch nicht an die OS-Maschine weitergegeben). In den Schritten 87 und 91 tauschen die I/O-Maschinen Zustandsinformationen aus. Die primäre I/O-Maschine übergibt ihren Zustand an die sekundäre I/O-Maschine, so daß die I/O- Maschinen ihren jeweiligen Zustand kennen und zusätzlich die sekundäre I/O-Maschine über alle ausstehenden Zustände der OS-Maschine informiert ist. Dieser Schritt ist in Schritt 91 der Sequenz der sekundären I/O-Maschine dargestellt. In Schritt 88 überträgt die primäre I/O-Maschine das Speicherbild der OS-Maschine an den Sekundärserver. Dies entspricht Schritt 92 der Sequenz des Sekundärservers, in welchem die sekundäre I/O-Maschine das Speicherbild der OS- Maschine vom Primärserver erhält.
  • In Schritt 89 ist die Synchronisierung abgeschlossen und das Primärsystem befindet sich im Zustand S3 (primär mit sekundär). In ähnlicher Weise ist im zugehörigen Schritt 93 des Sekundärservers der Synchronisierungsprozess abgeschlossen und der Sekundärserver ist im Zustand S4.
  • Es kann Server- oder Kommunikationsausfälle während der Synchronisierungssequenz geben. Fällt das Primärsystem oder die Server-zu-Server-Kommunikationsverbindung aus, muß das Sekundärsystem ebenfalls abbrechen. Fällt das Sekundärsystem oder die Kommunikationsverbindung aus, muß das Primärsystem wiederhergestellt werden und in den Zustand "Primär ohne Sekundär" S2 zurückkehren. Diese Ausfälle werden zu unterschiedlichen Zeiten während der Synchronisierungssequenzen angezeigt. Nachdem die Veränderung stattgefunden hat, werden die versteckten und in der Warteschlange aufgereihten Ereignisse der OS-Maschine zurückgegeben, und die I/O-Maschine beginnt von Neuem, Anforderungen der OS-Maschine zu verarbeiten. Tritt ein Ausfall während der Synchronisierung auf, muß die Verwaltungssoftware der I/O-Maschine sämtliche für die Synchronisierung durchgeführten Änderungen rückgängig machen und zum nichtgespiegelten Zustand zurückkehren.
  • ÜBERGANG AUFGRUND EINES AUSFALLS DES PRIMÄRSERVERS
  • Fällt das Primärsystem aus, so muß das Sekundärsystem in der Lage sein, einzuspringen und sich selbst zum Server zu erklären, wobei sich nur der Weg der LAN-Kommunikationen zum Erreichen des Servers geändert hat. Pakete, die zum Zeitpunkt des Ausfalls an den Server gesendet werden, können verlorengehen. Alle LAN-Kommunikationsprotokolle müssen allerdings in der Lage sein, verlorengegangene Pakete zu be handeln. Die Ebene der sekundären I/O-Verwaltungsunterstützung wird über den Ausfall in Kenntnis gesetzt.
  • Tritt der Ausfall auf, müssen die Treiberunterstützungsschichten alle bei ihnen ausstehenden Anforderungen der OS- Maschine aufnehmen und deren Ausführung abschließen. Die AddFSEvent Prozedur des sekundären-jetzt-primären Systems wird vor der Anzeige des Ausfalls aktiviert, so daß neue Ereignisse der OS-Maschine zugeführt werden können. Irgendwelche dem vorherigen Primärserver gesendeten Nachrichten werden ignoriert. Alle Anforderungen von der OS-Maschine, die wartende Daten oder ein Abschlußzustand vorn Primärsystem waren, werden so, wie sie sind, abgeschlossen. Es muß ein spezielles Ereignis geben, um der OS-Maschine anzuzeigen, daß die Server gewechselt wurden. Beispielsweise wird ein spezielles Ereignis dazu verwendet, der OS-Maschine mitzu teilen, daß sie ein spezielles Steuerungspaket an alle Benutzer senden soll, das anzeigt, das der Wechsel stattgefunden hat. Dieses kann das Umschalten auf der Routing-Ebene zum neuen Server beschleunigen.
  • ÜBERGÄNGE AUFGRUND EINES AUSFALLS DES SEKUNDÄRSERVERS
  • Fällt das Sekundärsystem aus, werden alle in einer Warteschlange aufgereihten Nachrichten, die an das Sekundärsystem gesendet werden sollen, ignoriert. Sind die Nachrichten OS-Maschinen-Ereignisse, so werden sie einfach der OS- Maschine zugeleitet. Die Treiberunterstützungsschicht der I/O-Maschine schließt alle Anforderungen ab, die auf eine ausstehende Mitteilung vom Sekundärsystem warteten.
  • MEHRERE OS-MASCHINEN UND ZUSÄTZLICHE PROZESSOREN
  • Die vorliegende Erfindung wurde mit Bezug auf Primärund Sekundärserver beschrieben, die jeweils eine einzige OS- Maschine haben. Ein alternatives Ausführungsbeispiel der vorliegenden Erfindung ist in Fig. 7 dargestellt, bei dem der Primär- und/oder Sekundärserver eine oder mehrere OS-Maschinen haben kann. Gemäß Fig. 7 umfaßt der Primärserver drei Prozessoren. Prozessor 1 implementiert die I/O-Maschine des Primärservers. Eine erste und eine zweite OS-Maschine sind auf den Prozessoren 2 bzw. 3 implementiert.
  • In ähnlicher Weise hat der Sekundärserver einen ersten Prozessor, der eine I/O-Maschine implementiert, und zweite und dritte Prozessoren, die erste und zweite OS-Maschinen implementieren. Beim Betrieb werden mehrere Ereigniswarteschlangen für jede OS-Maschine unterstützt, so daß jede OS- Maschine mit den gleichen Ereignissen arbeitet. Auf diese Weise können die Zustände jeder OS-Maschine im wesentlichen identisch gehalten werden, so daß bei Ausfall eines Servers ein anderer seinen Betrieb aufnehmen kann.
  • Es wurde also ein fehlertolerantes Computersystem beschrieben.

Claims (16)

1. Ein Verfahren zum Bereitstellen eines fehlertoleranten Computersystems aufweisend die Schritte:
Bereitstellen einer ersten Verarbeitungseinrichtung zum Betreiben des Computersystems,
Bereitstellen einer zweiten Verarbeitungseinrichtung zum Betreiben des Computersystems,
Feststellen eines Zustandes der ersten Verarbeitungseinrichtung und Liefern dieses Zustandes an die zweite Verarbeitungseinrichtung, dadurch gekennzeichnet,
daß die erste Verarbeitungseinrichtung eine erste Betriebssystem(OS)-Maschine und eine erste Ein-/Ausgabe(I/O)- Maschine aufweist; und
daß die zweite Verarbeitungseinrichtung eine zweite Betriebssystem (OS)-Maschine und eine zweite Ein/Ausgabe(I/O)-Maschine aufweist,
wobei das Verfahren ferner die Schritte aufweist:
Definieren von Operationen, die den Zustand der ersten OS-Maschine ändern können, als Ereignisse;
Liefern jeden Ereignisses an die erste I/O-Maschine und Konvertieren der Ereignisse in Nachrichten;
Liefern der Nachrichten an eine erste Nachrichten-Warteschlange in der ersten OS-Maschine und an eine zweite Nachrichten-Warteschlange in der zweiten OS-Maschine;
Ausführen der Nachrichten in der ersten OS-Maschine und der zweiten OS-Maschine, so daß die Zustände der ersten und der zweiten OS-Maschine im wesentlichen identisch bleiben.
2. Verfahren nach Anspruch 1, ferner enthaltend die Schritte:
Liefern jeden Ereignisses an die zweite I/O-Maschine, wenn die erste Verarbeitungseinrichtung nicht arbeitet;
Konvertieren jeden Ereignisses in eine Nachricht in der zweiten I/O-Maschine;
Liefern der Nachricht zu der zweiten Nachrichten-Warteschlange in der zweiten OS-Maschine zur Ausführung durch die zweite OS-Maschine.
3. Verfahren nach Anspruch 1, wobei der Schritt des Feststellens des Zustandes der ersten Verarbeitungseinrichtung und des Lieferns des Zustandes an die zweite Verarbei tungseinrichtung die Schritte aufweist:
Ausführen aller der ersten OS-Maschine zur Verfügung stehenden Nachrichten in der ersten OS-Maschine, bis die OS-Maschine einen stabilen Zustand erreicht hat; und
Übertragen eines Speicherabbilds der ersten OS-Maschine über die erste I/O-Maschine zu der zweiten Verarbeitungseinrichtung
4. Verfahren nach Anspruch 1, wobei die erste Verarbeitungseinrichtung wenigstens einen Prozessor aufweist.
5. Verfahren nach Anspruch 1, wobei die zweite Verarbeitungseinrichtung wenigstens einen Prozessor aufweist.
6. Verfahren nach Anspruch 1, ferner enthaltend die Schritte:
Erzeugen einer Anfrage in der OS-Maschine zum Ausführen einer Eingabe/Ausgabe-Operation;
Liefern der Anfrage an eine erste Anfrage-Warteschleife in der ersten I/O-Maschine zur Ausführung durch die erste I/O-Maschine;
Erzeugen einer Antwort in der ersten OS-Maschine, um die Ausführung der Anfrage anzuzeigen.
7. Verfahren nach Anspruch 1, wobei das Ereignis asynchron ist.
8. Ein fehlertolerantes Computersystem aufweisend: eine erste Verarbeitungseinrichtung (21) zum Betreiben des Computersystems, eine zweite Verarbeitungseinrichtung (22) zum Betreiben des Computersystems, wobei die zweite Verarbeitungseinrichtung (22) eine Backup-Verarbeitungseinrichtung für die erste Verarbeitungseinrichtung (21) ist, und einen ersten Bus, der die erste Verarbeitungseinrichtung und die zweite Verarbeitungseinrichtung verbindet, dadurch gekennzeichnet,
daß die erste Verarbeitungseinrichtung eine Betriebssystem(OS)-Maschine (10) und eine erste Eingabe-/Ausgabe(I/O)- Maschine (12) enthält, wobei die erste OS-Maschine (10) eine erste Nachrichten-Warteschlange aufweist, die mit der ersten I/O-Maschine (12) zum Empfangen von Nachrichten gekoppelt ist, und daß die zweite Verarbeitungseinrichtung eine zweite OS-Maschine (16) und eine zweite I/O-Maschine (18) aufweist, wobei die zweite OS-Maschine (16) eine zweite Nachrichten- Warteschlange aufweist, die mit der zweiten I/O-Maschine (18) zum Empfangen von Nachrichten gekoppelt ist,
daß der erste Bus (15) die erste I/O-Maschine (12) und die zweite I/O-Maschine (18) zum Übertragen von Nachrichten verbindet,
wobei die erste I/O-Maschine derart konfiguriert ist, daß Operationen, die den Zustand der ersten OS-Maschine ändern können, in Nachrichten konvertiert werden können, wobei die Nachrichten der ersten Nachrichten-Warteschlange und der zweiten Nachrichten-Warteschlange für eine anschließende Ausführung durch die erste OS-Maschine bzw. die zweite OS- Maschine zu Verfügung gestellt werden.
9. Computersystem nach Anspruch 8, wobei die erste Verarbeitungseinrichtung wenigstens einen Prozessor aufweist.
10. Computersystem nach Anspruch 8, wobei die zweite Verarbeitungseinrichtung wenigstens einen Prozessor aufweist.
11. Computersystem nach Anspruch 8, ferner aufweisend eine mit der ersten Verarbeitungseinrichtung gekoppelte erste Speichereinrichtung, wobei die erste Speichereinrichtung ein dem Zustand der ersten OS-Maschine entsprechendes Speicherabbild speichert
12. Computersystem nach Anspruch 11, ferner aufweisend eine mit der zweiten Verarbeitungseinrichtung gekoppelte zweite Speichereinrichtung, wobei die zweite Speichereinrichtung ein dem Zustand der zweiten OS-Maschine entsprechendes Speicherabbild speichert.
13. Computersystem nach Anspruch 8, wobei die erste OS-Maschine die Ausführung von Befehlen des Computersystems steuert.
14. Computersystem nach Anspruch 8, wobei die I/O-Maschine die Kommunikation mit Ein- und Ausgabegeräten steuert.
15. Computersystem nach Anspruch 13, wobei die zweite OS-Maschine die Ausführung von Befehlen des Computersystems steuert, wenn die erste OS-Maschine die Befehle nicht ausführen kann.
16. Computersystem nach Anspruch 8, wobei die Nachricht synchrone und asynchrone Ereignisse umfaßt.
DE69125840T 1990-09-24 1991-08-09 Fehlertolerierendes rechnersystem Expired - Lifetime DE69125840T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/586,807 US5157663A (en) 1990-09-24 1990-09-24 Fault tolerant computer system
PCT/US1991/005679 WO1992005487A1 (en) 1990-09-24 1991-08-09 Fault tolerant computer system

Publications (2)

Publication Number Publication Date
DE69125840D1 DE69125840D1 (de) 1997-05-28
DE69125840T2 true DE69125840T2 (de) 1997-10-23

Family

ID=24347179

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69125840T Expired - Lifetime DE69125840T2 (de) 1990-09-24 1991-08-09 Fehlertolerierendes rechnersystem

Country Status (13)

Country Link
US (2) US5157663A (de)
EP (1) EP0550457B1 (de)
JP (1) JP3156083B2 (de)
KR (1) KR0137406B1 (de)
AT (1) ATE152261T1 (de)
AU (1) AU660939B2 (de)
BR (1) BR9106875A (de)
CA (1) CA2091993C (de)
DE (1) DE69125840T2 (de)
FI (1) FI101432B (de)
NO (1) NO302986B1 (de)
RU (1) RU2108621C1 (de)
WO (1) WO1992005487A1 (de)

Families Citing this family (342)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544347A (en) 1990-09-24 1996-08-06 Emc Corporation Data storage system controlled remote data mirroring with respectively maintained data indices
JP2864741B2 (ja) * 1990-12-19 1999-03-08 株式会社日立製作所 データインテグリティを保証する通信システム
CA2059143C (en) * 1991-01-25 2000-05-16 Takeshi Miyao Processing unit for a computer and a computer system incorporating such a processing unit
JP3189903B2 (ja) * 1991-06-03 2001-07-16 富士通株式会社 ケーパビリティの退避・復元機構を持つ装置
DE69227956T2 (de) * 1991-07-18 1999-06-10 Tandem Computers Inc., Cupertino, Calif. Multiprozessorsystem mit gespiegeltem Speicher
US5278969A (en) * 1991-08-02 1994-01-11 At&T Bell Laboratories Queue-length monitoring arrangement for detecting consistency between duplicate memories
EP0537903A2 (de) * 1991-10-02 1993-04-21 International Business Machines Corporation Verteiltes Kontrollsystem
WO1993009494A1 (en) * 1991-10-28 1993-05-13 Digital Equipment Corporation Fault-tolerant computer processing using a shadow virtual processor
US5379417A (en) * 1991-11-25 1995-01-03 Tandem Computers Incorporated System and method for ensuring write data integrity in a redundant array data storage system
JPH05191388A (ja) * 1992-01-14 1993-07-30 Fujitsu Ltd 通信処理システム
KR930020266A (ko) * 1992-03-06 1993-10-19 윌리암 에이취. 뉴콤 응용 프로그램 및 운영 시스템 확장을 컴퓨터와 인터페이스시키는 방법
JPH05260134A (ja) * 1992-03-12 1993-10-08 Fujitsu Ltd 伝送装置の監視システム
FR2688907B1 (fr) * 1992-03-20 1994-05-27 Kiota Int Procede d'enregistrement et de lecture d'une bande magnetique bicouche et systeme de mise en óoeuvre.
CA2106280C (en) * 1992-09-30 2000-01-18 Yennun Huang Apparatus and methods for fault-tolerant computing employing a daemon monitoring process and fault-tolerant library to provide varying degrees of fault tolerance
US5715386A (en) * 1992-09-30 1998-02-03 Lucent Technologies Inc. Apparatus and methods for software rejuvenation
GB2273180A (en) * 1992-12-02 1994-06-08 Ibm Database backup and recovery.
US5751955A (en) 1992-12-17 1998-05-12 Tandem Computers Incorporated Method of synchronizing a pair of central processor units for duplex, lock-step operation by copying data into a corresponding locations of another memory
US5751932A (en) * 1992-12-17 1998-05-12 Tandem Computers Incorporated Fail-fast, fail-functional, fault-tolerant multiprocessor system
US5469573A (en) * 1993-02-26 1995-11-21 Sytron Corporation Disk operating system backup and recovery system
US5608872A (en) * 1993-03-19 1997-03-04 Ncr Corporation System for allowing all remote computers to perform annotation on an image and replicating the annotated image on the respective displays of other comuters
US5664195A (en) * 1993-04-07 1997-09-02 Sequoia Systems, Inc. Method and apparatus for dynamic installation of a driver on a computer system
JP3047275B2 (ja) * 1993-06-11 2000-05-29 株式会社日立製作所 バックアップ切り換え制御方法
AU7211194A (en) * 1993-06-23 1995-01-17 Vinca Corporation Method for improving disk mirroring error recovery in a computer system including an alternate communication path
US5812748A (en) * 1993-06-23 1998-09-22 Vinca Corporation Method for improving recovery performance from hardware and software errors in a fault-tolerant computer system
US5978565A (en) * 1993-07-20 1999-11-02 Vinca Corporation Method for rapid recovery from a network file server failure including method for operating co-standby servers
WO1995003580A1 (en) * 1993-07-20 1995-02-02 Vinca Corporation Method for rapid recovery from a network file server failure
US6289390B1 (en) 1993-08-18 2001-09-11 Microsoft Corporation System and method for performing remote requests with an on-line service network
US5473771A (en) * 1993-09-01 1995-12-05 At&T Corp. Fault-tolerant processing system architecture
US5566299A (en) * 1993-12-30 1996-10-15 Lockheed Martin Corporation Fault tolerant method and system for high availability document image and coded data processing
KR0128271B1 (ko) * 1994-02-22 1998-04-15 윌리암 티. 엘리스 재해회복을 위한 일관성 그룹 형성방법 및 레코드갱싱의 섀도잉 방법, 주시스템, 원격데이타 섀도잉 시스템과 비동기 원격데이타 복제 시스템
JP2790034B2 (ja) * 1994-03-28 1998-08-27 日本電気株式会社 非運用系メモリ更新方式
JP3140906B2 (ja) * 1994-04-12 2001-03-05 株式会社エヌ・ティ・ティ・データ システムファイルの更新及び復元方法
WO1995034860A1 (en) * 1994-06-10 1995-12-21 Sequoia Systems, Inc. Main memory system and checkpointing protocol for fault-tolerant computer system
US5659682A (en) * 1994-06-16 1997-08-19 International Business Machines Corporation Scheme to determine completion of directory operations for server recovery
US5566297A (en) * 1994-06-16 1996-10-15 International Business Machines Corporation Non-disruptive recovery from file server failure in a highly available file system for clustered computing environments
JPH0816421A (ja) * 1994-07-04 1996-01-19 Hitachi Ltd 一重化/二重化切り替え入出力ポートを有する電子装置とフォールトトレラントシステム
JPH0816446A (ja) * 1994-07-05 1996-01-19 Fujitsu Ltd クライアント/サーバ・システム
US5537533A (en) * 1994-08-11 1996-07-16 Miralink Corporation System and method for remote mirroring of digital data from a primary network server to a remote network server
US5764903A (en) * 1994-09-26 1998-06-09 Acer America Corporation High availability network disk mirroring system
US5996001A (en) * 1994-09-27 1999-11-30 Quarles; Philip High availability on-line transaction processing system
US5649152A (en) 1994-10-13 1997-07-15 Vinca Corporation Method and system for providing a static snapshot of data stored on a mass storage system
US5835953A (en) 1994-10-13 1998-11-10 Vinca Corporation Backup system that takes a snapshot of the locations in a mass storage device that has been identified for updating prior to updating
KR0133337B1 (ko) * 1994-12-21 1998-04-21 양승택 타켓 시스템 이중화 운용관리 장치 및 방법
US5757642A (en) * 1995-01-20 1998-05-26 Dell Usa L.P. Multi-function server input/output subsystem and method
CA2167634A1 (en) * 1995-01-23 1996-07-24 Michael E. Fisher Method and apparatus for maintaining network connections across a voluntary process switchover
US5790791A (en) * 1995-05-12 1998-08-04 The Boeing Company Apparatus for synchronizing flight management computers where only the computer chosen to be the master received pilot inputs and transfers the inputs to the spare
US5675723A (en) * 1995-05-19 1997-10-07 Compaq Computer Corporation Multi-server fault tolerance using in-band signalling
US5822512A (en) * 1995-05-19 1998-10-13 Compaq Computer Corporartion Switching control in a fault tolerant system
US5696895A (en) * 1995-05-19 1997-12-09 Compaq Computer Corporation Fault tolerant multiple network servers
TW292365B (en) 1995-05-31 1996-12-01 Hitachi Ltd Computer management system
US5956489A (en) * 1995-06-07 1999-09-21 Microsoft Corporation Transaction replication system and method for supporting replicated transaction-based services
US5774668A (en) * 1995-06-07 1998-06-30 Microsoft Corporation System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing
US6901433B2 (en) * 1995-06-07 2005-05-31 Microsoft Corporation System for providing users with a filtered view of interactive network directory obtains from remote properties cache that provided by an on-line service
US5621885A (en) * 1995-06-07 1997-04-15 Tandem Computers, Incorporated System and method for providing a fault tolerant computer program runtime support environment
JP3086779B2 (ja) * 1995-06-19 2000-09-11 株式会社東芝 メモリ状態復元装置
US5594863A (en) * 1995-06-26 1997-01-14 Novell, Inc. Method and apparatus for network file recovery
US5933599A (en) * 1995-07-17 1999-08-03 Microsoft Corporation Apparatus for presenting the content of an interactive on-line network
US6728959B1 (en) 1995-08-08 2004-04-27 Novell, Inc. Method and apparatus for strong affinity multiprocessor scheduling
US5956509A (en) * 1995-08-18 1999-09-21 Microsoft Corporation System and method for performing remote requests with an on-line service network
US5941947A (en) * 1995-08-18 1999-08-24 Microsoft Corporation System and method for controlling access to data entities in a computer network
US6029175A (en) * 1995-10-26 2000-02-22 Teknowledge Corporation Automatic retrieval of changed files by a network software agent
US5737514A (en) * 1995-11-29 1998-04-07 Texas Micro, Inc. Remote checkpoint memory system and protocol for fault-tolerant computer system
US5751939A (en) * 1995-11-29 1998-05-12 Texas Micro, Inc. Main memory system and checkpointing protocol for fault-tolerant computer system using an exclusive-or memory
US5864657A (en) * 1995-11-29 1999-01-26 Texas Micro, Inc. Main memory system and checkpointing protocol for fault-tolerant computer system
US5745672A (en) * 1995-11-29 1998-04-28 Texas Micro, Inc. Main memory system and checkpointing protocol for a fault-tolerant computer system using a read buffer
US5802265A (en) * 1995-12-01 1998-09-01 Stratus Computer, Inc. Transparent fault tolerant computer system
US5838921A (en) * 1995-12-08 1998-11-17 Silicon Graphics, Inc. Distributed connection management system with replication
GB2308040A (en) * 1995-12-09 1997-06-11 Northern Telecom Ltd Telecommunications system
GB9601584D0 (en) * 1996-01-26 1996-03-27 Hewlett Packard Co Fault-tolerant processing method
GB9601585D0 (en) * 1996-01-26 1996-03-27 Hewlett Packard Co Fault-tolerant processing method
US5777874A (en) * 1996-02-12 1998-07-07 Allen-Bradley Company, Inc. Programmable controller backup system
US5761518A (en) * 1996-02-29 1998-06-02 The Foxboro Company System for replacing control processor by operating processor in partially disabled mode for tracking control outputs and in write enabled mode for transferring control loops
US5905860A (en) * 1996-03-15 1999-05-18 Novell, Inc. Fault tolerant electronic licensing system
US5708776A (en) * 1996-05-09 1998-01-13 Elonex I.P. Holdings Automatic recovery for network appliances
US5796934A (en) * 1996-05-31 1998-08-18 Oracle Corporation Fault tolerant client server system
US6032271A (en) * 1996-06-05 2000-02-29 Compaq Computer Corporation Method and apparatus for identifying faulty devices in a computer system
US5852724A (en) * 1996-06-18 1998-12-22 Veritas Software Corp. System and method for "N" primary servers to fail over to "1" secondary server
US5774660A (en) * 1996-08-05 1998-06-30 Resonate, Inc. World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network
US6321270B1 (en) * 1996-09-27 2001-11-20 Nortel Networks Limited Method and apparatus for multicast routing in a network
TW379298B (en) * 1996-09-30 2000-01-11 Toshiba Corp Memory updating history saving device and memory updating history saving method
US6484208B1 (en) 1996-10-15 2002-11-19 Compaq Information Technologies Group, L.P. Local access of a remotely mirrored disk in a computer network
US5917997A (en) * 1996-12-06 1999-06-29 International Business Machines Corporation Host identity takeover using virtual internet protocol (IP) addressing
JP3507307B2 (ja) * 1996-12-27 2004-03-15 キヤノン株式会社 情報処理装置およびネットワークプリントシステムおよびその制御方法およびプログラムが格納された記憶媒体
US6151688A (en) 1997-02-21 2000-11-21 Novell, Inc. Resource management in a clustered computer system
JPH10240557A (ja) * 1997-02-27 1998-09-11 Mitsubishi Electric Corp 待機冗長化システム
US6654933B1 (en) 1999-09-21 2003-11-25 Kasenna, Inc. System and method for media stream indexing
US6073209A (en) * 1997-03-31 2000-06-06 Ark Research Corporation Data storage controller providing multiple hosts with access to multiple storage subsystems
US5941999A (en) * 1997-03-31 1999-08-24 Sun Microsystems Method and system for achieving high availability in networked computer systems
US7389312B2 (en) * 1997-04-28 2008-06-17 Emc Corporation Mirroring network data to establish virtual storage area network
US6304929B1 (en) 1997-05-13 2001-10-16 Micron Electronics, Inc. Method for hot swapping a programmable adapter by using a programmable processor to selectively disabling and enabling power thereto upon receiving respective control signals
US5987554A (en) * 1997-05-13 1999-11-16 Micron Electronics, Inc. Method of controlling the transfer of information across an interface between two buses
US6202160B1 (en) 1997-05-13 2001-03-13 Micron Electronics, Inc. System for independent powering of a computer system
US6173346B1 (en) 1997-05-13 2001-01-09 Micron Electronics, Inc. Method for hot swapping a programmable storage adapter using a programmable processor for selectively enabling or disabling power to adapter slot in response to respective request signals
US6219734B1 (en) 1997-05-13 2001-04-17 Micron Electronics, Inc. Method for the hot add of a mass storage adapter on a system including a statically loaded adapter driver
US6249828B1 (en) 1997-05-13 2001-06-19 Micron Electronics, Inc. Method for the hot swap of a mass storage adapter on a system including a statically loaded adapter driver
US6292905B1 (en) * 1997-05-13 2001-09-18 Micron Technology, Inc. Method for providing a fault tolerant network using distributed server processes to remap clustered network resources to other servers during server failure
US6182180B1 (en) 1997-05-13 2001-01-30 Micron Electronics, Inc. Apparatus for interfacing buses
US6253334B1 (en) 1997-05-13 2001-06-26 Micron Electronics, Inc. Three bus server architecture with a legacy PCI bus and mirrored I/O PCI buses
US6338150B1 (en) 1997-05-13 2002-01-08 Micron Technology, Inc. Diagnostic and managing distributed processor system
US6189109B1 (en) 1997-05-13 2001-02-13 Micron Electronics, Inc. Method of remote access and control of environmental conditions
US6249834B1 (en) 1997-05-13 2001-06-19 Micron Technology, Inc. System for expanding PCI bus loading capacity
US6202111B1 (en) 1997-05-13 2001-03-13 Micron Electronics, Inc. Method for the hot add of a network adapter on a system including a statically loaded adapter driver
US6145098A (en) 1997-05-13 2000-11-07 Micron Electronics, Inc. System for displaying system status
US6134668A (en) * 1997-05-13 2000-10-17 Micron Electronics, Inc. Method of selective independent powering of portion of computer system through remote interface from remote interface power supply
US6179486B1 (en) 1997-05-13 2001-01-30 Micron Electronics, Inc. Method for hot add of a mass storage adapter on a system including a dynamically loaded adapter driver
US6195717B1 (en) 1997-05-13 2001-02-27 Micron Electronics, Inc. Method of expanding bus loading capacity
US5892928A (en) * 1997-05-13 1999-04-06 Micron Electronics, Inc. Method for the hot add of a network adapter on a system including a dynamically loaded adapter driver
US6163849A (en) * 1997-05-13 2000-12-19 Micron Electronics, Inc. Method of powering up or powering down a server to a maintenance state
US6269417B1 (en) 1997-05-13 2001-07-31 Micron Technology, Inc. Method for determining and displaying the physical slot number of an expansion bus device
US6418492B1 (en) 1997-05-13 2002-07-09 Micron Electronics Method for computer implemented hot-swap and hot-add
US6192434B1 (en) 1997-05-13 2001-02-20 Micron Electronics, Inc System for hot swapping a programmable adapter by using a programmable processor to selectively disabling and enabling power thereto upon receiving respective control signals
US6243838B1 (en) 1997-05-13 2001-06-05 Micron Electronics, Inc. Method for automatically reporting a system failure in a server
US6163853A (en) 1997-05-13 2000-12-19 Micron Electronics, Inc. Method for communicating a software-generated pulse waveform between two servers in a network
US6122758A (en) * 1997-05-13 2000-09-19 Micron Electronics, Inc. System for mapping environmental resources to memory for program access
US6247898B1 (en) 1997-05-13 2001-06-19 Micron Electronics, Inc. Computer fan speed control system
US6138250A (en) * 1997-05-13 2000-10-24 Micron Electronics, Inc. System for reading system log
US6073255A (en) * 1997-05-13 2000-06-06 Micron Electronics, Inc. Method of reading system log
US6170067B1 (en) 1997-05-13 2001-01-02 Micron Technology, Inc. System for automatically reporting a system failure in a server
US6499073B1 (en) 1997-05-13 2002-12-24 Micron Electronics, Inc. System using programmable processor for selectively enabling or disabling power to adapter in response to respective request signals
US6324608B1 (en) 1997-05-13 2001-11-27 Micron Electronics Method for hot swapping of network components
US6249885B1 (en) 1997-05-13 2001-06-19 Karl S. Johnson Method for managing environmental conditions of a distributed processor system
US6243773B1 (en) 1997-05-13 2001-06-05 Micron Electronics, Inc. Configuration management system for hot adding and hot replacing devices
US6134673A (en) * 1997-05-13 2000-10-17 Micron Electronics, Inc. Method for clustering software applications
US6148355A (en) * 1997-05-13 2000-11-14 Micron Electronics, Inc. Configuration management method for hot adding and hot replacing devices
US6282673B1 (en) 1997-05-13 2001-08-28 Micron Technology, Inc. Method of recording information system events
US6363497B1 (en) 1997-05-13 2002-03-26 Micron Technology, Inc. System for clustering software applications
US6330690B1 (en) 1997-05-13 2001-12-11 Micron Electronics, Inc. Method of resetting a server
US6122746A (en) * 1997-05-13 2000-09-19 Micron Electronics, Inc. System for powering up and powering down a server
US6247079B1 (en) * 1997-05-13 2001-06-12 Micron Electronics, Inc Apparatus for computer implemented hot-swap and hot-add
US6526333B1 (en) 1997-05-13 2003-02-25 Micron Technology, Inc. Computer fan speed control system method
US6247080B1 (en) 1997-05-13 2001-06-12 Micron Electronics, Inc. Method for the hot add of devices
US6170028B1 (en) 1997-05-13 2001-01-02 Micron Electronics, Inc. Method for hot swapping a programmable network adapter by using a programmable processor to selectively disabling and enabling power thereto upon receiving respective control signals
US6490610B1 (en) * 1997-05-30 2002-12-03 Oracle Corporation Automatic failover for clients accessing a resource through a server
US6199110B1 (en) 1997-05-30 2001-03-06 Oracle Corporation Planned session termination for clients accessing a resource through a server
US5983371A (en) * 1997-07-11 1999-11-09 Marathon Technologies Corporation Active failure detection
JP3111935B2 (ja) * 1997-08-15 2000-11-27 日本電気株式会社 Lanエミュレーションサーバ二重化方式
US6199173B1 (en) 1997-10-01 2001-03-06 Micron Electronics, Inc. Method for mapping environmental resources to memory for program access
US6212585B1 (en) 1997-10-01 2001-04-03 Micron Electronics, Inc. Method of automatically configuring a server after hot add of a device
US6263387B1 (en) 1997-10-01 2001-07-17 Micron Electronics, Inc. System for automatically configuring a server after hot add of a device
US6035420A (en) * 1997-10-01 2000-03-07 Micron Electronics, Inc. Method of performing an extensive diagnostic test in conjunction with a bios test routine
US6014667A (en) * 1997-10-01 2000-01-11 Novell, Inc. System and method for caching identification and location information in a computer network
US6065053A (en) * 1997-10-01 2000-05-16 Micron Electronics, Inc. System for resetting a server
US6175490B1 (en) 1997-10-01 2001-01-16 Micron Electronics, Inc. Fault tolerant computer system
US6088816A (en) * 1997-10-01 2000-07-11 Micron Electronics, Inc. Method of displaying system status
US6009541A (en) * 1997-10-01 1999-12-28 Micron Electronics, Inc. Apparatus for performing an extensive diagnostic test in conjunction with a bios test routine
US6154835A (en) * 1997-10-01 2000-11-28 Micron Electronics, Inc. Method for automatically configuring and formatting a computer system and installing software
GB2330034A (en) * 1997-10-01 1999-04-07 Northern Telecom Ltd A narrowband to broadband interface for a communications system
US6138179A (en) * 1997-10-01 2000-10-24 Micron Electronics, Inc. System for automatically partitioning and formatting a primary hard disk for installing software in which selection of extended partition size is not related to size of hard disk
US6173420B1 (en) * 1997-10-31 2001-01-09 Oracle Corporation Method and apparatus for fail safe configuration
US6799224B1 (en) 1998-03-10 2004-09-28 Quad Research High speed fault tolerant mass storage network information server
DE19810807A1 (de) * 1998-03-12 1999-09-23 Ericsson Telefon Ab L M Gerät und Verfahren zum Umsetzen von Meldungen
DE19810814B4 (de) * 1998-03-12 2004-10-28 Telefonaktiebolaget Lm Ericsson (Publ) Rechnersystem und Zustandskopierverfahren zur skalierbaren Software-Aktualisierung
US6185695B1 (en) * 1998-04-09 2001-02-06 Sun Microsystems, Inc. Method and apparatus for transparent server failover for highly available objects
US6260155B1 (en) 1998-05-01 2001-07-10 Quad Research Network information server
US6061602A (en) * 1998-06-23 2000-05-09 Creative Lifestyles, Inc. Method and apparatus for developing application software for home automation system
US6101599A (en) * 1998-06-29 2000-08-08 Cisco Technology, Inc. System for context switching between processing elements in a pipeline of processing elements
US6836838B1 (en) 1998-06-29 2004-12-28 Cisco Technology, Inc. Architecture for a processor complex of an arrayed pipelined processing engine
US6119215A (en) * 1998-06-29 2000-09-12 Cisco Technology, Inc. Synchronization and control system for an arrayed processing engine
US6513108B1 (en) 1998-06-29 2003-01-28 Cisco Technology, Inc. Programmable processing engine for efficiently processing transient data
US6195739B1 (en) 1998-06-29 2001-02-27 Cisco Technology, Inc. Method and apparatus for passing data among processor complex stages of a pipelined processing engine
US6154849A (en) * 1998-06-30 2000-11-28 Sun Microsystems, Inc. Method and apparatus for resource dependency relaxation
US6223234B1 (en) 1998-07-17 2001-04-24 Micron Electronics, Inc. Apparatus for the hot swap and add of input/output platforms and devices
US6205503B1 (en) 1998-07-17 2001-03-20 Mallikarjunan Mahalingam Method for the hot swap and add of input/output platforms and devices
US8234477B2 (en) 1998-07-31 2012-07-31 Kom Networks, Inc. Method and system for providing restricted access to a storage medium
US9361243B2 (en) 1998-07-31 2016-06-07 Kom Networks Inc. Method and system for providing restricted access to a storage medium
DE19836347C2 (de) 1998-08-11 2001-11-15 Ericsson Telefon Ab L M Fehlertolerantes Computersystem
US7305451B2 (en) * 1998-08-24 2007-12-04 Microsoft Corporation System for providing users an integrated directory service containing content nodes located in different groups of application servers in computer network
US6266785B1 (en) 1998-09-01 2001-07-24 Ncr Corporation File system filter driver apparatus and method
US6247141B1 (en) 1998-09-24 2001-06-12 Telefonaktiebolaget Lm Ericsson (Publ) Protocol for providing replicated servers in a client-server system
US6728839B1 (en) 1998-10-28 2004-04-27 Cisco Technology, Inc. Attribute based memory pre-fetching technique
US6460146B1 (en) * 1998-12-04 2002-10-01 Cisco Technology, Inc. System and method for establishing processor redundancy
US6389459B1 (en) * 1998-12-09 2002-05-14 Ncr Corporation Virtualized storage devices for network disk mirroring applications
US6385747B1 (en) 1998-12-14 2002-05-07 Cisco Technology, Inc. Testing of replicated components of electronic device
US6173386B1 (en) 1998-12-14 2001-01-09 Cisco Technology, Inc. Parallel processor with debug capability
US6920562B1 (en) 1998-12-18 2005-07-19 Cisco Technology, Inc. Tightly coupled software protocol decode with hardware data encryption
US6853623B2 (en) 1999-03-05 2005-02-08 Cisco Technology, Inc. Remote monitoring of switch network
US6457138B1 (en) * 1999-04-19 2002-09-24 Cisco Technology, Inc. System and method for crash handling on redundant systems
US6298474B1 (en) 1999-04-30 2001-10-02 Intergral Vision, Inc. Method and system for interactively developing a graphical control-flow structure and associated application software for use in a machine vision system and computer-readable storage medium having a program for executing the method
US6681341B1 (en) 1999-11-03 2004-01-20 Cisco Technology, Inc. Processor isolation method for integrated multi-processor systems
US6529983B1 (en) 1999-11-03 2003-03-04 Cisco Technology, Inc. Group and virtual locking mechanism for inter processor synchronization
US7203732B2 (en) * 1999-11-11 2007-04-10 Miralink Corporation Flexible remote data mirroring
TW454120B (en) 1999-11-11 2001-09-11 Miralink Corp Flexible remote data mirroring
US6338126B1 (en) * 1999-12-06 2002-01-08 Legato Systems, Inc. Crash recovery without complete remirror
US6769027B1 (en) * 2000-01-31 2004-07-27 Avaya Technology Corp. System and method for using multi-headed queues for bookmarking in backup/recover scenarios
US6738826B1 (en) 2000-02-24 2004-05-18 Cisco Technology, Inc. Router software upgrade employing redundant processors
JP2001256067A (ja) * 2000-03-08 2001-09-21 Mitsubishi Electric Corp プロセッサ省電力制御方法、記憶媒体、およびプロセッサ省電力制御装置
US6892237B1 (en) 2000-03-28 2005-05-10 Cisco Technology, Inc. Method and apparatus for high-speed parsing of network messages
JP3651353B2 (ja) * 2000-04-04 2005-05-25 日本電気株式会社 デジタルコンテンツ再生システム及びデジタルコンテンツ配信システム
US6820213B1 (en) 2000-04-13 2004-11-16 Stratus Technologies Bermuda, Ltd. Fault-tolerant computer system with voter delay buffer
US6687851B1 (en) 2000-04-13 2004-02-03 Stratus Technologies Bermuda Ltd. Method and system for upgrading fault-tolerant systems
US6735717B1 (en) * 2000-04-13 2004-05-11 Gnp Computers, Inc. Distributed computing system clustering model providing soft real-time responsiveness and continuous availability
US6901481B2 (en) 2000-04-14 2005-05-31 Stratus Technologies Bermuda Ltd. Method and apparatus for storing transactional information in persistent memory
US6802022B1 (en) 2000-04-14 2004-10-05 Stratus Technologies Bermuda Ltd. Maintenance of consistent, redundant mass storage images
US6691225B1 (en) 2000-04-14 2004-02-10 Stratus Technologies Bermuda Ltd. Method and apparatus for deterministically booting a computer system having redundant components
US6505269B1 (en) 2000-05-16 2003-01-07 Cisco Technology, Inc. Dynamic addressing mapping to eliminate memory resource contention in a symmetric multiprocessor system
US6892221B2 (en) * 2000-05-19 2005-05-10 Centerbeam Data backup
US7225244B2 (en) * 2000-05-20 2007-05-29 Ciena Corporation Common command interface
US6715097B1 (en) 2000-05-20 2004-03-30 Equipe Communications Corporation Hierarchical fault management in computer systems
US6983362B1 (en) 2000-05-20 2006-01-03 Ciena Corporation Configurable fault recovery policy for a computer system
US6742134B1 (en) 2000-05-20 2004-05-25 Equipe Communications Corporation Maintaining a local backup for data plane processes
US6760859B1 (en) 2000-05-23 2004-07-06 International Business Machines Corporation Fault tolerant local area network connectivity
US7263476B1 (en) 2000-06-12 2007-08-28 Quad Research High speed information processing and mass storage system and method, particularly for information and application servers
US20020004849A1 (en) * 2000-06-22 2002-01-10 Elink Business Fault tolerant internet communications system
US6728897B1 (en) 2000-07-25 2004-04-27 Network Appliance, Inc. Negotiating takeover in high availability cluster
US7277956B2 (en) 2000-07-28 2007-10-02 Kasenna, Inc. System and method for improved utilization of bandwidth in a computer system serving multiple users
IL154100A0 (en) * 2000-08-10 2003-07-31 Miralink Corp Data/presence insurance tools and techniques
US7386610B1 (en) 2000-09-18 2008-06-10 Hewlett-Packard Development Company, L.P. Internet protocol data mirroring
US6977927B1 (en) 2000-09-18 2005-12-20 Hewlett-Packard Development Company, L.P. Method and system of allocating storage resources in a storage area network
US6804819B1 (en) 2000-09-18 2004-10-12 Hewlett-Packard Development Company, L.P. Method, system, and computer program product for a data propagation platform and applications of same
US6941490B2 (en) * 2000-12-21 2005-09-06 Emc Corporation Dual channel restoration of data between primary and backup servers
US6871271B2 (en) 2000-12-21 2005-03-22 Emc Corporation Incrementally restoring a mass storage device to a prior state
US6862692B2 (en) * 2001-01-29 2005-03-01 Adaptec, Inc. Dynamic redistribution of parity groups
US6990667B2 (en) 2001-01-29 2006-01-24 Adaptec, Inc. Server-independent object positioning for load balancing drives and servers
US20020138559A1 (en) * 2001-01-29 2002-09-26 Ulrich Thomas R. Dynamically distributed file system
US7054927B2 (en) * 2001-01-29 2006-05-30 Adaptec, Inc. File system metadata describing server directory information
US6606690B2 (en) 2001-02-20 2003-08-12 Hewlett-Packard Development Company, L.P. System and method for accessing a storage area network as network attached storage
AU2002247257A1 (en) 2001-03-02 2002-09-19 Kasenna, Inc. Metadata enabled push-pull model for efficient low-latency video-content distribution over a network
US8244864B1 (en) 2001-03-20 2012-08-14 Microsoft Corporation Transparent migration of TCP based connections within a network load balancing system
US7028228B1 (en) 2001-03-28 2006-04-11 The Shoregroup, Inc. Method and apparatus for identifying problems in computer networks
US7296194B1 (en) 2002-03-28 2007-11-13 Shoregroup Inc. Method and apparatus for maintaining the status of objects in computer networks using virtual state machines
US7197561B1 (en) * 2001-03-28 2007-03-27 Shoregroup, Inc. Method and apparatus for maintaining the status of objects in computer networks using virtual state machines
US7065672B2 (en) 2001-03-28 2006-06-20 Stratus Technologies Bermuda Ltd. Apparatus and methods for fault-tolerant computing using a switching fabric
US6971043B2 (en) * 2001-04-11 2005-11-29 Stratus Technologies Bermuda Ltd Apparatus and method for accessing a mass storage device in a fault-tolerant server
US6928579B2 (en) * 2001-06-27 2005-08-09 Nokia Corporation Crash recovery system
US7072911B1 (en) * 2001-07-27 2006-07-04 Novell, Inc. System and method for incremental replication of changes in a state based distributed database
US6920579B1 (en) 2001-08-20 2005-07-19 Network Appliance, Inc. Operator initiated graceful takeover in a node cluster
US7137026B2 (en) 2001-10-04 2006-11-14 Nokia Corporation Crash recovery system
US7177267B2 (en) * 2001-11-09 2007-02-13 Adc Dsl Systems, Inc. Hardware monitoring and configuration management
US7296125B2 (en) * 2001-11-29 2007-11-13 Emc Corporation Preserving a snapshot of selected data of a mass storage system
US6954877B2 (en) * 2001-11-29 2005-10-11 Agami Systems, Inc. Fault tolerance using logical checkpointing in computing systems
US7730153B1 (en) 2001-12-04 2010-06-01 Netapp, Inc. Efficient use of NVRAM during takeover in a node cluster
US6802024B2 (en) 2001-12-13 2004-10-05 Intel Corporation Deterministic preemption points in operating system execution
KR100441712B1 (ko) * 2001-12-29 2004-07-27 엘지전자 주식회사 확장 가능형 다중 처리 시스템 및 그의 메모리 복제 방법
US7007142B2 (en) * 2002-02-19 2006-02-28 Intel Corporation Network data storage-related operations
US7039828B1 (en) 2002-02-28 2006-05-02 Network Appliance, Inc. System and method for clustered failover without network support
GB0206604D0 (en) * 2002-03-20 2002-05-01 Global Continuity Plc Improvements relating to overcoming data processing failures
US7571221B2 (en) * 2002-04-03 2009-08-04 Hewlett-Packard Development Company, L.P. Installation of network services in an embedded network server
US7058849B2 (en) * 2002-07-02 2006-06-06 Micron Technology, Inc. Use of non-volatile memory to perform rollback function
US7885896B2 (en) 2002-07-09 2011-02-08 Avaya Inc. Method for authorizing a substitute software license server
US8041642B2 (en) 2002-07-10 2011-10-18 Avaya Inc. Predictive software license balancing
US7240048B2 (en) * 2002-08-05 2007-07-03 Ben Pontius System and method of parallel pattern matching
US6782424B2 (en) * 2002-08-23 2004-08-24 Finite State Machine Labs, Inc. System, method and computer program product for monitoring and controlling network connections from a supervisory operating system
US7216363B2 (en) * 2002-08-30 2007-05-08 Avaya Technology Corp. Licensing duplicated systems
US7228567B2 (en) * 2002-08-30 2007-06-05 Avaya Technology Corp. License file serial number tracking
US7707116B2 (en) 2002-08-30 2010-04-27 Avaya Inc. Flexible license file feature controls
US7681245B2 (en) 2002-08-30 2010-03-16 Avaya Inc. Remote feature activator feature extraction
US7966520B2 (en) * 2002-08-30 2011-06-21 Avaya Inc. Software licensing for spare processors
US7698225B2 (en) 2002-08-30 2010-04-13 Avaya Inc. License modes in call processing
US7051053B2 (en) * 2002-09-30 2006-05-23 Dinesh Sinha Method of lazily replicating files and monitoring log in backup file system
US20040078339A1 (en) * 2002-10-22 2004-04-22 Goringe Christopher M. Priority based licensing
US7171452B1 (en) 2002-10-31 2007-01-30 Network Appliance, Inc. System and method for monitoring cluster partner boot status over a cluster interconnect
US7890997B2 (en) 2002-12-26 2011-02-15 Avaya Inc. Remote feature activation authentication file system
US7155638B1 (en) * 2003-01-17 2006-12-26 Unisys Corporation Clustered computer system utilizing separate servers for redundancy in which the host computers are unaware of the usage of separate servers
US7246255B1 (en) * 2003-01-17 2007-07-17 Unisys Corporation Method for shortening the resynchronization time following failure in a computer system utilizing separate servers for redundancy
US7149923B1 (en) * 2003-01-17 2006-12-12 Unisys Corporation Software control using the controller as a component to achieve resiliency in a computer system utilizing separate servers for redundancy
US7260557B2 (en) * 2003-02-27 2007-08-21 Avaya Technology Corp. Method and apparatus for license distribution
US7231489B1 (en) 2003-03-03 2007-06-12 Network Appliance, Inc. System and method for coordinating cluster state information
US7373657B2 (en) 2003-03-10 2008-05-13 Avaya Technology Corp. Method and apparatus for controlling data and software access
US20040181696A1 (en) * 2003-03-11 2004-09-16 Walker William T. Temporary password login
US20040184464A1 (en) * 2003-03-18 2004-09-23 Airspan Networks Inc. Data processing apparatus
JP2004295465A (ja) * 2003-03-27 2004-10-21 Hitachi Ltd 計算機システム
US7127442B2 (en) * 2003-04-01 2006-10-24 Avaya Technology Corp. Ironclad notification of license errors
US7739543B1 (en) 2003-04-23 2010-06-15 Netapp, Inc. System and method for transport-level failover for loosely coupled iSCSI target devices
US7260737B1 (en) 2003-04-23 2007-08-21 Network Appliance, Inc. System and method for transport-level failover of FCP devices in a cluster
US7194655B2 (en) * 2003-06-12 2007-03-20 International Business Machines Corporation Method and system for autonomously rebuilding a failed server and a computer system utilizing the same
US20050039074A1 (en) * 2003-07-09 2005-02-17 Tremblay Glenn A. Fault resilient/fault tolerant computing
US7716323B2 (en) * 2003-07-18 2010-05-11 Netapp, Inc. System and method for reliable peer communication in a clustered storage system
US7593996B2 (en) * 2003-07-18 2009-09-22 Netapp, Inc. System and method for establishing a peer connection using reliable RDMA primitives
US7467191B1 (en) 2003-09-26 2008-12-16 Network Appliance, Inc. System and method for failover using virtual ports in clustered systems
US7447860B1 (en) * 2003-09-29 2008-11-04 Emc Corporation System and method for managing data associated with copying and recovery procedures in a data storage environment
US7096331B1 (en) * 2003-09-29 2006-08-22 Emc Corporation System and method for managing data associated with copying and replication procedures in a data storage environment
US7222143B2 (en) * 2003-11-24 2007-05-22 Lenovo (Singapore) Pte Ltd. Safely restoring previously un-backed up data during system restore of a failing system
US7966294B1 (en) 2004-01-08 2011-06-21 Netapp, Inc. User interface system for a clustered storage system
US7340639B1 (en) 2004-01-08 2008-03-04 Network Appliance, Inc. System and method for proxying data access commands in a clustered storage system
US7353388B1 (en) 2004-02-09 2008-04-01 Avaya Technology Corp. Key server for securing IP telephony registration, control, and maintenance
US7272500B1 (en) 2004-03-25 2007-09-18 Avaya Technology Corp. Global positioning system hardware key for software licenses
US7328144B1 (en) 2004-04-28 2008-02-05 Network Appliance, Inc. System and method for simulating a software protocol stack using an emulated protocol over an emulated network
US8621029B1 (en) 2004-04-28 2013-12-31 Netapp, Inc. System and method for providing remote direct memory access over a transport medium that does not natively support remote direct memory access operations
US7496782B1 (en) 2004-06-01 2009-02-24 Network Appliance, Inc. System and method for splitting a cluster for disaster recovery
US7478263B1 (en) 2004-06-01 2009-01-13 Network Appliance, Inc. System and method for establishing bi-directional failover in a two node cluster
US7363366B2 (en) * 2004-07-13 2008-04-22 Teneros Inc. Network traffic routing
EP1766900A2 (de) * 2004-07-13 2007-03-28 Teneros, Inc. Transparenter dienstanbieter
US20060015764A1 (en) * 2004-07-13 2006-01-19 Teneros, Inc. Transparent service provider
US7321906B2 (en) * 2004-07-23 2008-01-22 Omx Technology Ab Method of improving replica server performance and a replica server system
US7502824B2 (en) * 2004-08-12 2009-03-10 Oracle International Corporation Database shutdown with session migration
US7613710B2 (en) * 2004-08-12 2009-11-03 Oracle International Corporation Suspending a result set and continuing from a suspended result set
US7415470B2 (en) * 2004-08-12 2008-08-19 Oracle International Corporation Capturing and re-creating the state of a queue when migrating a session
US7743333B2 (en) * 2004-08-12 2010-06-22 Oracle International Corporation Suspending a result set and continuing from a suspended result set for scrollable cursors
US7587400B2 (en) * 2004-08-12 2009-09-08 Oracle International Corporation Suspending a result set and continuing from a suspended result set for transparent session migration
US7707405B1 (en) 2004-09-21 2010-04-27 Avaya Inc. Secure installation activation
US8229858B1 (en) 2004-09-30 2012-07-24 Avaya Inc. Generation of enterprise-wide licenses in a customer environment
US7747851B1 (en) 2004-09-30 2010-06-29 Avaya Inc. Certificate distribution via license files
US7965701B1 (en) 2004-09-30 2011-06-21 Avaya Inc. Method and system for secure communications with IP telephony appliance
US7434630B2 (en) * 2004-10-05 2008-10-14 Halliburton Energy Services, Inc. Surface instrumentation configuration for drilling rig operation
KR100651388B1 (ko) * 2004-11-25 2006-11-29 삼성전자주식회사 이동통신 단말기에서 착신알림 설정방법
JP4182948B2 (ja) * 2004-12-21 2008-11-19 日本電気株式会社 フォールト・トレラント・コンピュータシステムと、そのための割り込み制御方法
DE102004062116B3 (de) * 2004-12-23 2006-05-11 Ab Skf Lageranordnung für einen Computertomographen
US7496787B2 (en) * 2004-12-27 2009-02-24 Stratus Technologies Bermuda Ltd. Systems and methods for checkpointing
US9176772B2 (en) * 2005-02-11 2015-11-03 Oracle International Corporation Suspending and resuming of sessions
US8073899B2 (en) * 2005-04-29 2011-12-06 Netapp, Inc. System and method for proxying data access commands in a storage system cluster
US7743286B2 (en) * 2005-05-17 2010-06-22 International Business Machines Corporation Method, system and program product for analyzing demographical factors of a computer system to address error conditions
US20070028144A1 (en) * 2005-07-29 2007-02-01 Stratus Technologies Bermuda Ltd. Systems and methods for checkpointing
US20070038891A1 (en) * 2005-08-12 2007-02-15 Stratus Technologies Bermuda Ltd. Hardware checkpointing system
US7814023B1 (en) 2005-09-08 2010-10-12 Avaya Inc. Secure download manager
US7370235B1 (en) * 2005-09-29 2008-05-06 Emc Corporation System and method for managing and scheduling recovery after a failure in a data storage environment
US7401251B1 (en) * 2005-09-29 2008-07-15 Emc Corporation Architecture for managing failover and recovery after failover in a data storage environment
US7793329B2 (en) 2006-02-06 2010-09-07 Kasenna, Inc. Method and system for reducing switching delays between digital video feeds using multicast slotted transmission technique
JP4585463B2 (ja) * 2006-02-15 2010-11-24 富士通株式会社 仮想計算機システムを機能させるためのプログラム
CN100353330C (zh) * 2006-03-10 2007-12-05 四川大学 一种基于ip网络的磁盘镜像方法
JP4808524B2 (ja) * 2006-03-17 2011-11-02 株式会社日立製作所 データ処理方法、データ処理システム及びデータ処理プログラム
WO2007140475A2 (en) * 2006-05-31 2007-12-06 Teneros, Inc. Extracting shared state information from message traffic
US7725764B2 (en) * 2006-08-04 2010-05-25 Tsx Inc. Failover system and method
AU2012202229B2 (en) * 2006-08-04 2014-07-10 Tsx Inc. Failover system and method
US7734947B1 (en) 2007-04-17 2010-06-08 Netapp, Inc. System and method for virtual interface failover within a cluster
US7958385B1 (en) 2007-04-30 2011-06-07 Netapp, Inc. System and method for verification and enforcement of virtual interface failover within a cluster
US8130084B2 (en) * 2007-04-30 2012-03-06 International Business Machines Corporation Fault tolerant closed system control using power line communication
US8346719B2 (en) 2007-05-17 2013-01-01 Novell, Inc. Multi-node replication systems, devices and methods
US8818936B1 (en) 2007-06-29 2014-08-26 Emc Corporation Methods, systems, and computer program products for processing read requests received during a protected restore operation
US8421614B2 (en) * 2007-09-19 2013-04-16 International Business Machines Corporation Reliable redundant data communication through alternating current power distribution system
US7870374B2 (en) * 2007-09-27 2011-01-11 International Business Machines Corporation Validating physical and logical system connectivity of components in a data processing system
US8489554B2 (en) 2007-10-05 2013-07-16 Ge Intelligent Platforms, Inc. Methods and systems for operating a sequence of events recorder
US9201745B2 (en) * 2008-01-23 2015-12-01 Omx Technology Ab Method of improving replica server performance and a replica server system
US8688798B1 (en) 2009-04-03 2014-04-01 Netapp, Inc. System and method for a shared write address protocol over a remote direct memory access connection
CN102216726A (zh) * 2009-04-24 2011-10-12 株式会社东京技术 渐开线齿轮齿廓测量方法
US9256598B1 (en) 2009-08-19 2016-02-09 Emc Corporation Systems, methods, and computer readable media for copy-on-demand optimization for large writes
US20130136048A1 (en) * 2010-07-22 2013-05-30 Lg Electronics Inc. Method and device for transmitting and receiving downlink data for no-mobility mobile station in idle state
GB201016079D0 (en) * 2010-09-24 2010-11-10 St Microelectronics Res & Dev Apparatus & method
US8706834B2 (en) 2011-06-30 2014-04-22 Amazon Technologies, Inc. Methods and apparatus for remotely updating executing processes
EP2701065B1 (de) * 2012-08-24 2015-02-25 Siemens Aktiengesellschaft Verfahren zum Betreiben eines redundanten Automatisierungssystems
US9251002B2 (en) 2013-01-15 2016-02-02 Stratus Technologies Bermuda Ltd. System and method for writing checkpointing data
US10185631B2 (en) * 2013-07-04 2019-01-22 Data Deposit Box Inc. System and method of performing continuous backup of a data file on a computing device
US9965363B2 (en) * 2013-12-14 2018-05-08 Netapp, Inc. Techniques for LIF placement in SAN storage cluster synchronous disaster recovery
WO2015102875A1 (en) 2013-12-30 2015-07-09 Stratus Technologies Bermuda Ltd. Checkpointing systems and methods of using data forwarding
JP6518672B2 (ja) 2013-12-30 2019-05-22 ストラタス・テクノロジーズ・バミューダ・リミテッド 動的チェックポインティングシステムおよび方法
WO2015102874A2 (en) 2013-12-30 2015-07-09 Stratus Technologies Bermuda Ltd. Method of delaying checkpoints by inspecting network packets
WO2015157897A1 (zh) * 2014-04-14 2015-10-22 华为技术有限公司 一种云计算架构下的容灾数据中心配置方法及装置
BR112016023577B1 (pt) * 2014-04-14 2023-05-09 Huawei Technologies Co., Ltd Aparelho e método para configurar solução de redundância em arquitetura de computação em nuvem
US9558143B2 (en) 2014-05-09 2017-01-31 Micron Technology, Inc. Interconnect systems and methods using hybrid memory cube links to send packetized data over different endpoints of a data handling device
US9830237B2 (en) * 2015-09-25 2017-11-28 Netapp, Inc. Resynchronization with compliance data preservation
RU170236U1 (ru) * 2016-09-19 2017-04-18 Федеральное государственное бюджетное образовательное учреждение высшего образования "Томский государственный университет систем управления и радиоэлектроники" (ТУСУР) Резервированная многоканальная вычислительная система
WO2019190345A1 (ru) * 2018-03-30 2019-10-03 Публичное Акционерное Общество "Сбербанк России" Система управления сетью pos-терминалов
US11947465B2 (en) 2020-10-13 2024-04-02 International Business Machines Corporation Buffer overflow trapping

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4471429A (en) * 1979-12-14 1984-09-11 Honeywell Information Systems, Inc. Apparatus for cache clearing
US4530052A (en) * 1982-10-14 1985-07-16 Honeywell Information Systems Inc. Apparatus and method for a data processing unit sharing a plurality of operating systems
US4590554A (en) * 1982-11-23 1986-05-20 Parallel Computers Systems, Inc. Backup fault tolerant computer system
US4615001A (en) * 1984-03-29 1986-09-30 At&T Bell Laboratories Queuing arrangement for initiating execution of multistage transactions
US4658351A (en) * 1984-10-09 1987-04-14 Wang Laboratories, Inc. Task control means for a multi-tasking data processing system
US4979108A (en) * 1985-12-20 1990-12-18 Ag Communication Systems Corporation Task synchronization arrangement and method for remote duplex processors
SE454730B (sv) * 1986-09-19 1988-05-24 Asea Ab Forfarande och datorutrustning for stotfri omkoppling av funktionen fran aktiva enheter till beredskapsenheter i en centralenhet
US4959768A (en) * 1989-01-23 1990-09-25 Honeywell Inc. Apparatus for tracking predetermined data for updating a secondary data base
DE69021712T2 (de) * 1990-02-08 1996-04-18 Ibm Wiederanlaufkennzeichnungsmechanismus für fehlertolerierende Systeme.

Also Published As

Publication number Publication date
EP0550457A4 (en) 1995-10-25
EP0550457A1 (de) 1993-07-14
NO931062L (no) 1993-05-24
RU2108621C1 (ru) 1998-04-10
EP0550457B1 (de) 1997-04-23
FI101432B1 (fi) 1998-06-15
DE69125840D1 (de) 1997-05-28
FI931276A0 (fi) 1993-03-23
FI101432B (fi) 1998-06-15
CA2091993A1 (en) 1992-03-25
ATE152261T1 (de) 1997-05-15
JPH06504389A (ja) 1994-05-19
US5455932A (en) 1995-10-03
BR9106875A (pt) 1993-07-20
NO931062D0 (no) 1993-03-23
AU660939B2 (en) 1995-07-13
WO1992005487A1 (en) 1992-04-02
FI931276A (fi) 1993-05-21
JP3156083B2 (ja) 2001-04-16
NO302986B1 (no) 1998-05-11
KR0137406B1 (ko) 1998-07-01
AU8431091A (en) 1992-04-15
CA2091993C (en) 1998-12-22
US5157663A (en) 1992-10-20

Similar Documents

Publication Publication Date Title
DE69125840T2 (de) Fehlertolerierendes rechnersystem
DE69410671T2 (de) Datensicherung in einer Datenverarbeitungsanlage
DE69021122T2 (de) Verfahren und Gerät zur ununterbrochenen Versorgung von Anwendungen in einem Rechnernetzwerk.
DE69021712T2 (de) Wiederanlaufkennzeichnungsmechanismus für fehlertolerierende Systeme.
DE69415855T2 (de) Einrichtung und Verfahren zum Speichern dauerhafter und nicht dauerhafter Warteschlangendaten
DE69904190T2 (de) Verfahren und programm zum verarbeiten der verwaltungsanfragen einer verteilten netzwerkanwendung in einer gruppierten rechnerumgebung
DE69724846T2 (de) Mehrweg-Ein/Ausgabespeichersysteme mit Mehrweg-Ein/Ausgabeanforderungsmechanismus
DE69521101T2 (de) Gemeinsam genutzte virtuelle Platten mit anwendungstransparenter Wiedergewinnung
DE2854485C2 (de) Datenverarbeitungsanlage
DE60220263T2 (de) Server-duplexverfahren und geduplextes serversystem
DE69228960T2 (de) Vermittlungsnetz für Prozessoren
DE69533230T2 (de) Verfahren und vorrichtung zur verbesserung der fehlertoleranz eines netzwerkes
US6442706B1 (en) Resource allocation throttle for remote data mirroring system
DE69905594T2 (de) Protokoll für replizierte server
DE69907776T2 (de) Verfahren und Vorrichtung zur Identifizierung gefährdeter Bauteile in einem System mit redundanten Bauteilen
US7103797B1 (en) Resource allocation throttling in remote data mirroring system
DE19836347C2 (de) Fehlertolerantes Computersystem
DE3781486T2 (de) Verfahren zur stossfreien umschaltung von aktiven einheiten zu ersatzeinheiten in datenverarbeitungsanlagen und datenverarbeitungsanlage zur durchfuehrung dieses verfahrens.
DE69127417T2 (de) Universale Eingangs-/Ausgangsredundanzaufstellung in einem Prozessregelsystem
DE3879947T2 (de) Verteilte dateiserver-architektur.
DE69122713T2 (de) Fehlertolerantes rechnersystem
DE69807077T2 (de) Verfahren und vorrichtung zur wiederherstellung in einem verteilten datenbanksystem mit nicht global erreichbaren daten unter verwendung von gemeinsam genutzten virtuellen platten
DE69311797T2 (de) Fehlertolerantes computersystem mit vorrichtung fuer die bearbeitung von externen ereignissen
DE112011104471T5 (de) Verfahren zur Failover-Verwaltung von virtuellen Maschinen und System zum Unterstützen desselben
DE69407185T2 (de) Eine integrierte Produktionsumgebung mit PROGRAMM-ZU-PROGRAMM- KOMMUNIKATIONS-SERVER und zugehöriges Verfahren

Legal Events

Date Code Title Description
8364 No opposition during term of opposition