DE69125840T2 - Fehlertolerierendes rechnersystem - Google Patents
Fehlertolerierendes rechnersystemInfo
- 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
Links
- 238000012545 processing Methods 0.000 claims abstract description 36
- 230000006854 communication Effects 0.000 claims abstract description 28
- 238000004891 communication Methods 0.000 claims abstract description 28
- 238000000034 method Methods 0.000 claims abstract description 22
- 230000008859 change Effects 0.000 claims abstract description 11
- 230000004044 response Effects 0.000 claims description 12
- 230000001360 synchronised effect Effects 0.000 claims description 12
- 230000007704 transition Effects 0.000 description 12
- 238000007726 management method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 4
- 230000036962 time dependent Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 235000003642 hunger Nutrition 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1675—Temporal synchronisation or re-synchronisation of redundant processing components
- G06F11/1687—Temporal synchronisation or re-synchronisation of redundant processing components at event level, e.g. by interrupt or result of polling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking by means of middleware or OS functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2071—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
- G06F11/2076—Synchronous techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1658—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2038—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2048—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant 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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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)
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)
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. |
-
1990
- 1990-09-24 US US07/586,807 patent/US5157663A/en not_active Expired - Lifetime
-
1991
- 1991-08-09 AT AT91915106T patent/ATE152261T1/de not_active IP Right Cessation
- 1991-08-09 RU RU93005211A patent/RU2108621C1/ru active
- 1991-08-09 EP EP91915106A patent/EP0550457B1/de not_active Expired - Lifetime
- 1991-08-09 WO PCT/US1991/005679 patent/WO1992005487A1/en active IP Right Grant
- 1991-08-09 DE DE69125840T patent/DE69125840T2/de not_active Expired - Lifetime
- 1991-08-09 KR KR1019930700894A patent/KR0137406B1/ko not_active IP Right Cessation
- 1991-08-09 AU AU84310/91A patent/AU660939B2/en not_active Expired
- 1991-08-09 CA CA002091993A patent/CA2091993C/en not_active Expired - Lifetime
- 1991-08-09 JP JP51451591A patent/JP3156083B2/ja not_active Expired - Lifetime
- 1991-08-09 BR BR919106875A patent/BR9106875A/pt not_active IP Right Cessation
-
1992
- 1992-10-20 US US07/964,077 patent/US5455932A/en not_active Expired - Lifetime
-
1993
- 1993-03-23 FI FI931276A patent/FI101432B/fi not_active IP Right Cessation
- 1993-03-23 NO NO931062A patent/NO302986B1/no not_active IP Right Cessation
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 |