DE602005003490T2 - Verteiltes System mit Quorumredundanz und Verfahren dafür - Google Patents

Verteiltes System mit Quorumredundanz und Verfahren dafür Download PDF

Info

Publication number
DE602005003490T2
DE602005003490T2 DE602005003490T DE602005003490T DE602005003490T2 DE 602005003490 T2 DE602005003490 T2 DE 602005003490T2 DE 602005003490 T DE602005003490 T DE 602005003490T DE 602005003490 T DE602005003490 T DE 602005003490T DE 602005003490 T2 DE602005003490 T2 DE 602005003490T2
Authority
DE
Germany
Prior art keywords
processing elements
computer
processing
computers
distributed system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE602005003490T
Other languages
English (en)
Other versions
DE602005003490T8 (de
DE602005003490D1 (de
Inventor
Kotaro Endo
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Solutions Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Solutions Corp filed Critical Toshiba Solutions Corp
Publication of DE602005003490D1 publication Critical patent/DE602005003490D1/de
Application granted granted Critical
Publication of DE602005003490T2 publication Critical patent/DE602005003490T2/de
Publication of DE602005003490T8 publication Critical patent/DE602005003490T8/de
Active legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/183Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components
    • G06F11/184Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components where the redundant components implement processing functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1425Reconfiguring to eliminate the error by reconfiguration of node membership
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit

Description

  • Die vorliegende Erfindung bezieht sich auf ein verteiltes System und ein Redundanzsteuerungsverfahren, in dem der Prozess redundant ist um N (wobei N eine Ganzzahl 4 oder größer ist) Verarbeitungselemente, die typischerweise Computer sind, die an ein Netzwerk angeschlossen sind und in der Lage sind, miteinander zu kommunizieren.
  • In den letzten Jahren haben sich Computertechnologien und Netzwerktechnologien so bemerkenswert verbessert, dass sich die Computerisierung im Geschäftsbereich weit verbreitet hat. Für einige Geschäftsbereiche jedoch ist ein langes Aussetzen aufgrund eines Computerfehlers nicht erlaubt. Allgemein ist daher vor kurzem ein verteiltes System aufgebaut worden, um eine Vielzahl von Computern mittels eines Netzwerks zu verbinden. Ein verteiltes System, das aufgebaut ist aus einer Vielzahl von miteinander kommunizierbaren Verarbeitungselementen (Prozessausführungseinheiten), die gleichzeitig auf einem einzelnen Computer betrieben werden, ist ebenfalls bekannt. Diese Verarbeitungselemente sind in einem bekannten, durch ein Betriebssystem (OS, Englisch: Operating System) ausgeführten Vorgang der gegenseitigen Kommunikation mit eingeschlossen, um Nachrichten oder Datenpakete über eine gemeinsame Schnittstelle zu übertragen und zu empfangen. Nun wird eine Erklärung eines verteilten Systems mit einer Vielzahl von durch ein Netzwerk verbundenen Computern abgegeben.
  • Die Verarbeitung mit redundanten Computern ist als eines der Verfahren zum Betrieben eines verteilten Systems bekannt. In dem verteilten System könnte ein jeweiliger Computer unabhängig einen Fehler machen. In dem Fall, dass das gesamte System aufgrund eines Fehlers eines einzelnen Computers ausfällt, ist die Verfügbarkeit des Sys tems unter diejenige eines einzelnen Computers verringert. Um eine derartige Unannehmlichkeit zu verhindern, ist es erforderlich, dass der Prozess des gesamten Systems redundant ist. Durch einen Redundanzprozess des gesamten Systems kann die Verfügbarkeit des verteilten Systems über die eines einzelnen Computers hinaus vergrößert werden. Man betrachte beispielsweise ein aus zehn Computern aufgebautes, verteiltes System, wobei ein jeweiliger Computer mit einer Verfügbarkeit von 99% arbeitet. Nimmt man an, dass überhaupt keine Redundanz besteht, dann ist die Verfügbarkeit des gesamten Systems etwa 90%. Andererseits, unter der Voraussetzung, dass ein Ausfall von mehreren Punkten von bis zu drei Computern durch Redundanz toleriert werden kann, dann wird die Verfügbarkeit des gesamten Systems ungefähr 99,9998%.
  • [Ausfall-Übertragungsverfahren]
  • In dem verteilten System ist herkömmlich ein Verfahren des Redundanzprozesses von Computern bekannt, in dem der bestimmte Prozess beim Erkennen eines Computerfehlers auf einen anderen Computer übertragen wird. Dieses Verfahren ist als ein Ausfall-Übertragungs-Verfahren (Englisch: Fail-Over Method) bekannt.
  • In dem Ausfall-Übertragungs-Verfahren wird ein Computerfehler allgemein durch periodische Kommunikation zwischen den Computern zum Überprüfen der gegenseitigen Betriebsbedingungen erkannt. Diese Kommunikation wird der "Herzschlag" (Englisch: Heart Beat) genannt. Der Anhalte-Fehler eines Computers wird durch bzw. über den zeitlichen Ausfall des Herzschlags erkannt. Mit anderen Worten, ein Computer, der es versäumt, den Herzschlag während eines vorkonfiguriertes Zeitintervall auszusenden, wird als angehalten angesehen.
  • In einem verteilten System, das das Ausfall-Übertragungs-Verfahren benutzt, stellt ein gespaltenes Gehirn (Englisch: Split Brain) ein Problem dar. Das gespaltene Gehirn bzw. Split Brain wird definiert als die Tatsache, dass ein Ausführungskontext (Zustand) in zwei oder mehrere unterteilt wird. Das Split Brain tritt auf, wenn irrtümlicherweise ein Fehler erkannt wird. In dem Fall, dass zwei ein verteiltes System ausbildende Gruppen von Computern dahin kommen, dass sie es beispielsweise unterlassen, miteinander zu kommunizieren (Netzwerk-Unterteilung), dann erkennen die zwei Computergruppen den Fehler des jeweils anderen. In diesem Fall startet ein jeder der beiden Computergruppen die Operation unabhängig und daher tritt ein Split Brain auf. In einem anderen Fall wird die Übertragung des Herzschlags eines gegebenen Computers aufgrund einer abnormal großen Auslastung vorübergehend ausgesetzt und es wird ein Fehler erkannt. Selbst in dem Fall, das der Computer den Betrieb anschließend wieder aufnimmt, kann sich ein Split Brain fortsetzen.
  • In einem verteilten System ist der redundante Prozess allgemein ein wichtiger [Prozess]. Wenn einmal ein Split Brain auftritt, kommt es folglich dazu, dass dem Prozess die Gleichheit bzw. Konsistenz fehlt, was dem System als Ganzes einen fatalen Effekt verleiht.
  • [Mehrheitsabstimmungsverfahren]
  • Ein Verfahren, das die Abstimmung der Mehrheit benutzt (Mehrheitsabstimmungsverfahren) ist dafür bekannt, dass es das Problem des Split Brain in dem Ausfall-Übertragungs-Verfahren im Wesentlichen löst. In diesem Verfahren wird durch alle redundanten Computer derselbe Prozess ausgeführt, und in dem Fall, dass der Betrieb der Computer, die eine Mehrheit der Gesamtheit darstellen, miteinander geteilt (synchronisiert) werden kann, wird der Prozess unabhängig von dem Betrieb der verbleibenden Computer weitergeführt. Dieses Verfahren kann das Split Brain im Wesentlichen vermeiden.
  • Es sei beispielsweise angenommen, dass der Prozess durch drei Computer X, Y, Z redundant (verdreifacht) ist, und dass dessen Netzwerk in eine Gruppe A von zwei Computern X, Y und eine Gruppe B mit einem Computer Z unterteilt ist. Selbst in diesem Fall setzt Gruppe A den Prozess fort. Andererseits wird der Prozess der Gruppe B ausgesetzt. Die Aussetzung wird definiert als der Zustand, in dem der Prozess nicht fortgesetzt werden kann, bis die Anzahl der Computer, deren Betrieb miteinander geteilt werden kann, eine Mehrheit erreicht.
  • Nun wird angenommen, dass der Computer Z unter einer abnormal schweren Auslastung gehangen hat bzw. betrieben wurde. Der Prozess der Computergruppe (Gruppe A), die die verbleibende Mehrheit der Computer repräsentiert, wird unabhängig von dem Computer Z fortgesetzt. Nach der Wiederherstellung des Computers Z wird der Prozess des Computers Z, der es versäumt, eine Mehrheit zu bilden, nicht willkürlich ausgeführt. Mit anderen Worten, der Computer Z nimmt den Betrieb wieder auf, nachdem er mit dem Prozess der eine Mehrheit darstellenden Computergruppe neu synchronisiert worden ist.
  • [Mindestanzahlalgorithmus]
  • Das oben beschriebene Mehrheitsabstimmungsverfahren stellt einen der Mindestanzahlalgorithmen dar. Im Mindestanzahlalgorithmus führen alle redundanten Computer den gleichen Prozess aus, und wenn der Betrieb der die Mindestanzahl repräsentierenden Computer dahin kommt, das er miteinander geteilt ist, dann wird der Prozess unabhängig vom Betrieb der verbleibenden Computer weitergeführt. Die Japanische Patentanmeldungen KOKAI Veröffentlichungsnr. 2001-117895 (Absätze 0007, 0018 bis 0022, 1 bis 5) und 2003-67215 (Absätze 0056 bis 0064, 4) offenbaren ein verteiltes System, das den Mindestanzahlalgorithmus verwendet. Ein Beispiel für ein Mehrheitsabstimmungsverfahren mit einer Mindestanzahl, die eine Hälfte des Ganzen repräsentiert (d. h. die Anzahl ist mehr als eine Hälfte), wird in der Japanischen Patentanmeldung KOKAI Veröffentlichungsnr. 2001-117895 offenbart. In der Japanischen Patentanmeldung KOKAI Veröffentlichsnr. 2001-117895 wird ein verteiltes System offenbart, bei dem für den Fall, dass die Anzahl der Server (Computer), die eine Mehrheit repräsentieren, (d. h. die eine Mehrheitsgruppe bildende Anzahl) N ist, kann die Anzahl N so lange dynamisch verändert werden, wie die Server, die die Mindestanzahl (Mehrheit) von N repräsentieren, in Betrieb sind. Die der Druckschrift US 2002/0194276 entsprechende Japanische Patentanmeldung KOKAI Veröffentlichungsnr. 2003-67215 offenbart andererseits einen Algorithmus mit 2/3 Mindestanzahl, in dem die Mindestanzahl eine minimale Ganzzahl ist, die mehr als 2/3 des Gesamten repräsentiert. Der 2/3 Mindestanzahl-Algorithmus wird als ein Redundanzverfahren mit einer höheren Redundanz angesehen.
  • Die Druckschrift US-A-5884018 offenbart einen Mehrheitsabstimmungsprozess (eine Art Mindestanzahlabstimmungsprozess) zum Verhindern eines Split Brain. Es werden jedoch keine Einzelheiten angegeben hinsichtlich der Neu-Synchronisation des Zustands eines ausgeschlossenen Prozessors, der neu starten muss: Ebenfalls offenbart diese Druckschrift nicht das Merkmal des Neustartens eines Verarbeitungselements unter der Bedingung, dass dieses Ele ment mit mindestens F + 1 bereits synchronisierten Elementen kommunizieren kann.
  • Wie oben beschrieben, kann der Mindestanzahlalgorithmus, anders als das Ausfall-Übertragungs-Verfahren, das Split Brain im Wesentlichen vermeiden. Jedoch führt der Mindestanzahlalgorithmus zu einem anderen Problem, dass bei dem Ausfall-Übertragungs-Verfahren nicht angetroffen wird. Dieses Problem wird im Folgenden erläutert.
  • Man betrachte den Fall, dass eine Vielzahl von Computern Fehler machen, d. h. dass ein gleichzeitiger Ausfall an mehreren Punkten in einem verteilten System auftritt. Bei dem Ausfall-Übertragungs-Verfahren kann der Prozess bzw. die Verarbeitung solange weitergeführt werden, wie ein Computer in Betrieb ist. Andererseits kann bei dem Mindestanzahlalgorithmus die Verarbeitung weitergeführt werden, wenn und nur wenn die Mindestanzahl von Computern in Betrieb ist. Wenn einmal die Anzahl der Computer in Betrieb geringer als die Mindestanzahl ist, dann können die Prozesse in den in Betrieb befindlichen Computern nicht weiter laufen. In einem solchen Fall wird das System im Allgemeinen angehalten.
  • Jedoch gibt es eine andere Herangehensweise. Anstatt dass das System in dem Fall, dass die Anzahl der in Betrieb befindlichen Computer auf weniger als die Mindestanzahl verringert wird, angehalten wird, kann der Prozess bzw. die Verarbeitung vorübergehend bei dem bestimmten Zeitpunkt unterbrochen werden, und wenn einige der fehlerhaften Computer wiederhergestellt und hochgefahren sind, können sie mit der Verarbeitung der verbleibenden Computer neu synchronisiert werden, um dabei die Verarbeitung automatisch wiederaufzunehmen. Jedoch gab es ein technisches Problem des Verhinderns des Auftretens eines Split Brain auf der Zeitachse, wenn dieses Verfahren eingesetzt wird. Das Split Brain auf der Zeitachse wird definiert als die Art des Split Brain, die sich zwischen dem externen Eingabe-/Ausgabevorgang in dem Fall als eine Fehlanpassung entwickelt hat, dass ein Redundanzvorgang ab einem gegebenen Zeitpunkt wiederholt wird und erneut ausgeführt wird.
  • Das Split Brain auf der Zeitachse wird mit Verweis auf ein verteiltes System unter Benutzung des 2/3 Mindestanzahlentscheidungsalgorithmus des Redundanzvorgangs mit sieben Computern #1 bis #7, wie in 1 gezeigt, erläutert. In diesem Fall ist die Mindestanzahl 5. Zunächst sei angenommen, dass zu einem Zeitpunkt T1, wenn die Computer #1 bis #7 die Prozesse P1, P2, P3 abarbeiten, die Kommunikation zwischen einschließlich der zwei Computer #1 und #2 und den fünf Computern #3 bis #7 ausfällt. Mit anderen Worten, das Netzwerk wird in eine Computergruppe A, die die zwei Computer #1 und #2 enthält, und eine Computergruppe B, die die fünf Computer #3 bis #7 enthält, aufgeteilt. In diesem Fall setzen die Computer #3 bis #7 der Gruppe B, die die Mindestanzahl erfüllen, den Prozess fort. Andererseits unterbrechen die Computer #1 und #2 der Gruppe A, die die Mindestanzahl nicht erfüllen, die Verarbeitung. Es sei angenommen, dass zu einem Zeitpunkt T2 ein Fehler an mehreren, alle Computer #3 bis #7 der Gruppe B involvierenden Punkten auftritt, wenn die fünf Computer #3 bis #7 die auf den Prozess P3 folgenden Prozesse P4, P5, P6 abarbeiten. Es sei auch angenommen, dass die Computer #3 bis #7 der Gruppe B neu hochgefahren sind und die Unterteilung des Netzwerks zum Zeitpunkt T3 beseitigt ist.
  • Die neu hochgefahrenen Computer #3 bis #7 der Gruppe B werden mit den Computern #1 und #2 der Gruppe A neu synchronisiert. Die Verarbeitung der Computer #1 und #2 der Gruppe A ist zum Zeitpunkt T1, d. h. am Ende des Prozesses P3, unterbrochen. Die sieben Computer #1 bis #7 nehmen daher den Prozess P3 zum Zeitpunkt T3 ab dem Ende der Ausführung des Prozesses erneut auf. Infolgedessen führen die Computer #3 bis #7 den Prozess ab dem Zeitpunkt T1 bis T2 noch einmal aus. Im Hinblick auf die Tatsache, dass der ab dem Zeitpunkt T3 neu aufgenommene Prozess die Eingabe/Ausgabe von Signalen in eine bzw. aus einer externen Quelle involviert, kann jedoch eine Fehlanpassung, d. h. ein Split Brain auf der Zeitachse, auftreten zwischen den Prozessen P4', P5', P6', die auf den ab dem Zeitpunkt T3 wiederaufgenommenen Prozess P3 folgen und die den Prozessen P4, P5, P6, die ab den Zeitpunkten T1 bis T2 ausgeführt werden, folgen.
  • Diese Erfindung ist im Hinblick auf die oben beschriebene Situation erzielt worden, und ihre Aufgabe ist es, ein verteiltes System und ein Redundanzsteuerungsverfahren bereitzustellen, bei dem der Prozess redundant ist um N (N: eine Ganzzahl 4 oder mehr) Verarbeitungselemente, die in der Lage sind, in einer solchen Weise miteinander zu kommunizieren, dass sowohl das gespaltene Gehirn bzw. Split Brain verhindert werden kann als auch die Verfügbarkeit zum Zeitpunkt eines Ausfalls an mehreren Punkten zur gleichen Zeit sichergestellt werden kann.
  • Nach einem Aspekt der vorliegenden Erfindung wird ein verteiltes System bereitgestellt, das ein Mindestanzahlredundanzverfahren benutzt, in dem ein Redundanzprozess durch mindestens Q aus N Verarbeitungselementen ausgeführt wird, wobei N eine Ganzzahl 4 oder mehr ist, wobei die Verarbeitungselemente in der Lage sind, miteinander zu kommunizieren und wobei Q eine eine Mindestanzahl bezeichnende Ganzzahl ist, und zwar nur in dem Fall, wo die Betriebsabläufe der mindestens Q Verarbeitungselemente miteinander synchronisiert werden können, wobei ein jeweiliges der N Verarbeitungselemente dadurch gekennzeich net ist, dass es folgendes umfasst: Neusynchronisationsbestimmungsmittel zum Bestimmen, dass ein Ausführungszustand des Verarbeitungselements selbst mit einem aktuellsten Ausführungszustand in dem verteilten System neu synchronisiert werden kann in dem Fall, dass die Verarbeitungselemente mit mindestens F + 1 Elementen (F = N – Q), die von den N Verarbeitungselementen zum Zeitpunkt des Neustartens des Verarbeitungselements bereits synchronisiert sind, kommunizieren können; und Neusynchronisationsmittel zum Neusynchronisieren des Ausführungszustands des Verarbeitungselements selbst bis zum aktuellsten der Ausführungszustände der mindestens F + 1 Verarbeitungselemente gemäß dem Ergebnis der Bestimmung durch die Neusynchronisationsmittel.
  • Nach einem anderen Aspekt der vorliegenden Erfindung wird ein Redundanzsteuerungsverfahren des Redundanzprozesses in einem verteilten System bereitgestellt, wobei das verteilte System ein Mindestanzahlredundanzverfahren benutzt, in dem ein Redundanzvorgang von mindestens Q Verarbeitungselemente aus N Verarbeitungselementen, die mit in der Lage sind, miteinander zu kommunizieren, ausgeführt wird, wobei N eine Ganzzahl 4 oder mehr ist und Q eine eine Mindestanzahl bezeichnende Ganzzahl ist, und zwar nur in dem Fall, wo der Betrieb der mindestens Q Verarbeitungselemente miteinander synchronisiert werden kann, das Verfahren dadurch gekennzeichnet, dass es die folgenden Schritte umfasst: Bestimmen, ob ein neu gestartetes bzw. hochgefahrenes Verarbeitungselement mit mindestens F + 1 Verarbeitungselementen (F = N – Q), die von den N Verarbeitungselementen bereits synchronisiert sind, kommunizieren kann; Detektieren (S13, S14) eines Verarbeitungselements, das den aktuellsten Verarbeitungszustand der mindestens F + 1 Verarbeitungselemente in dem verteilten System bereithält, in dem Fall, dass das neu gestartete Verarbeitungselement mit den mindestens F + 1 Verarbeitungselementen kommunizieren kann; und Neusynchronisieren (S15) des Ausführungszustands der neu gestarteten Verarbeitungselemente bis zu dem Ausführungszustand des detektierten Verarbeitungselements.
  • In dieser Konfiguration bzw. in diesem Aufbau bezeichnet das Zeichen F [die Zahl] N – Q, die eine maximale Anzahl der Verarbeitungselemente ist, die niemals darin fehlschlägt, die Redundanzverarbeitung im Falle eines Fehlers auszuführen. Insbesondere wird, selbst in dem Fall, das ein Fehler an mehreren, F oder weniger Verarbeitungselemente involvierenden Punkten gleichzeitig auftritt, der Redundanzvorgang nicht unterbrochen, auch nicht vorübergehend. Andererseits versagt die Mindestanzahl Q in dem Fall eines Fehlers an mehreren, mehr als F Verarbeitungselemente involvierenden Punkten darin, erfüllt zu werden, und folglich wird das System aus dem Stand der Technik angehalten. Auch im Fall, dass der Redundanzvorgang unterbrochen wird und die von der Unterbrechung wiederhergestellten Verarbeitungselemente mit der Ausführung der bereits synchronisierten Verarbeitungselemente bedingungslos neu synchronisiert sind, wird auf der Zeitachse ein Split Brain verursacht.
  • In der vorgenannten Konfiguration wird andererseits die Neusynchronisation nur in dem Fall als möglich angesehen, dass eine Kommunikation zwischen den aus dem Versagen wiederhergestellten und neu gestarteten Verarbeitungselementen und den von all den N Verarbeitungselementen bereits synchronisierten mindestens F + 1 Verarbeitungselementen möglich ist. In diesem System wird, nur in dem Fall, dass der Betrieb der mindestens Q Verarbeitungselemente miteinander synchronisiert werden kann, der Vorgang durch die bestimmten Q Verarbeitungselemente fortgesetzt. In diesem System befinden sich mindestens Q Verarbeitungselemente im aktuellsten Ausführungszustand. Selbst in dem Fall, dass ein Fehler an mehreren, mehr als F (= N – Q) Verarbeitungselemente involvierenden Punkten auftritt, wird daher angenommen, dass die neu hochgefahrenen Verarbeitungselemente mit den von allen N Verarbeitungselementen bereits synchronisierten, mindestens F + 1 Verarbeitungselementen kommunizieren können. Dann hält mindestens eines der bestimmten F + 1 Verarbeitungselemente den aktuellsten Ausführungszustand. Um die Kommunikation mit mindestens F + 1 Verarbeitungselementen sicherzustellen, wird die erlaubbare Anzahl der in einem Fehler an mehreren Punkten involvierten Verarbeitungselemente als N – (F + 1) = (N – F) – 1 = Q – 1 angegeben.
  • In dieser Konfiguration werden daher neu hochgefahrene Verarbeitungselemente, so lange sie in der Lage sind, mit mindestens F + 1 Verarbeitungselementen zu kommunizieren, mit dem aktuellsten Ausführungszustand der mindestens F + 1 Verarbeitungselemente neu synchronisiert. Nach der Neusynchronisation nehmen die neu hochgefahrenen Verarbeitungselemente den aktuellsten Ausführungszustand in dem gesamten System ein. Folglich wird durch diese Neusynchronisation kein Split Brain verursacht.
  • Wie oben beschrieben, wird nach dieser Erfindung ein verteiltes System für ein Mindestanzahlredundanzverfahren bereitgestellt, bei dem nur im Fall, dass der Betrieb der mindestens Q (Q: eine Mindestanzahl) Verarbeitungselemente von allen N (N: eine Ganzzahl 4 oder mehr) Verarbeitungselementen synchronisiert werden kann, der Redundanzvorgang durch die bestimmten Q Verarbeitungselemente ausgeführt. Selbst im Fall eines Fehlers an mehreren, mehr als F (= N – Q) Verarbeitungselemente involvierenden Punkten sei angenommen, dass die Verarbeitungselemente, die aus den Fehlern wiederhergestellt und Neuhochgefahrenen sind, mit den mindestens F + 1 Verarbeitungselementen, die von allen N Verarbeitungselementen bereits syn chronisiert sind, kommunizieren können. Dann werden die so neu hochgefahrenen Verarbeitungselemente mit den letzten Ausführungszuständen der mindestens F + 1 Verarbeitungselemente automatisch neu synchronisiert. In der Stufe, wo mindestens Q Verarbeitungselemente dahinkommen, dass sie in dem System als ein Ganzes funktionieren, kann der Verarbeitungsprozess folglich automatisch neu hochgefahren werden auf der Grundlage des oben beschriebenen, aktuellsten Ausführungszustands. Infolgedessen wird sowohl das Split Brain verhindert als auch die Verfügbarkeit zum Zeitpunkt eines Fehlers an mehreren Punkten gleichzeitig hergestellt.
  • Diese Zusammenfassung der Erfindung beschreibt nicht notwendigerweise alle erforderlichen Merkmale, so dass die Erfindung auch eine Unterkombination dieser beschriebenen Merkmale sein kann.
  • Die Erfindung kann aus der folgenden ausführlichen Beschreibung vollständiger verstanden werden, wenn diese zusammen mit den beigefügten Zeichnungen genommen wird, für die gilt:
  • 1 ist ein Ablaufdiagramm, das die Verarbeitungsbedingungen eines jeweiligen Computers in dem Fall zeigt, dass ein gespaltenes Gehirn (Englisch: Split Brain) auf der Zeitachse durch bedingungsloses Ausführen des Neusynchronisationsprozesses zum Zeitpunkt des Neustartens des Systems auftritt;
  • 2 ist ein Blockdiagramm, das einen Aufbau eines verteilten Systems nach einer Ausführungsform der Erfindung zeigt;
  • 3 ist ein Flussdiagramm, das die Schritte des Redundanzsteuervorgangs gemäß der gleichen Ausführungsform zeigt;
  • 4 ist ein Flussdiagramm, das die Schritte des Neustartvorgangs einschließlich der Neusynchronisation nach der gleichen Ausführungsform zeigt; und
  • 5 ist ein Ablaufdiagramm, das die Verarbeitungsbedingungen eines jeweiligen Computers nach der gleichen Ausführungsform zeigt.
  • Eine Ausführungsform der Erfindung wird im Folgenden mit Verweis auf die Zeichnungen beschrieben.
  • 2 ist ein Blockdiagramm, das eine Konfiguration eines verteilten Systems nach einer Ausführungsform der Erfindung zeigt. Das in 2 gezeigte verteilte System ist aus N (N: eine Ganzzahl 4 oder mehr) oder 7 Computern 10-1 (#1) bis 10-7 (#7) aufgebaut. Die Computer 10-1 bis 10-7 sind Verarbeitungselemente, die in der Lage sind, miteinander zu kommunizieren. Die Computer 10-1 bis 10-7 sind untereinander durch ein Netzwerk 20 verbunden und so ausgebildet, dass sie in der Lage sind, über das Netzwerk 20 miteinander zu kommunizieren.
  • In dem in 2 gezeigten verteilten System ist der Prozess um die sieben Computer 10-1 bis 10-7 redundant. Auch wendet das in 2 gezeigte, verteilte System den herkömmlichen Mindestanzahlalgorithmus an, um den Redundanzvorgang zu steuern. Das Merkmal des verteilten Systems der 2, das den Mindestanzahlforum verwendet, wird erläutert. Zunächst wird die Anzahl der Computer, um die der Prozess redundant ist, durch N angegeben. Nach dieser Ausführungsform gilt: N = 7. Auch wird die Mindestanzahl durch Q angegeben. Wie dies wohl bekannt ist, wird in dem Mindestanzahlalgorithmus mit der Mindestanzahl von Q mit dem Prozess der N redundanten Computer angenommen, dass der Betrieb der mindestens Q Computer miteinander geteilt (synchronisiert) werden kann (d. h. in dem Fall, dass die Q Computer dieselbe Gruppe ausbilden). Nur in diesem Fall kann der Prozess trotz eines Fehlers, der durch einen beliebigen der anderen Computer bedingt werden kann, fortgesetzt werden. Im Fall, dass beispielsweise der 2/3 Mindestanzahlentscheidungsalgorithmus als ein Mindestanzahlalgorithmus eingesetzt wird, ist Q eine minimale Ganzzahl größer als 2/3 und 5 in dem Fall, dass N = 7. Auch wird der Wert N – Q durch F angegeben. Wie dies offensichtlich ist, ist F die maximale Anzahl von Computern, die den Redundanzvorgang in dem gesamten System sogar im Fall eines Ausfalls an mehreren Punkten weiterführen. In dem Fall, wo der 2/3 Mindestanzahlentscheidungsalgorithmus als ein Mindestanzahlalgorithmus für N = 7, Q = 5 und folglich F = 2 eingesetzt wird.
  • Das Merkmal dieser Ausführungsform liegt in den Bedingungen und dem Verfahren, durch das ein gegebener Computer #i aus einem Fehler (einer Fehlfunktion) wiederhergestellt, neu hochgefahren bzw. gestartet und mit dem Betrieb der verbleibenden Computer neu synchronisiert wird. Nach dieser Ausführungsform ist die Neusynchronisation definiert als der Prozess, in dem der aktuellste Zustand des Prozesses, der von einem beliebigen oder einer Vielzahl der verbleibenden, zum bestimmten Zeitpunkt bereits gestarteten Computer bereitgehalten wird, als der aktuellste Zustand des Prozesses aus sich selbst heraus in den Computer #i kopiert wird. Die Neusynchronisation wird unabhängig davon ausgeführt, wie viele Computer den aktuellsten Zustand des Prozesses bereithalten. Die für die Neusynchronisation nach dieser Ausführungsform erforderliche Bedingung ist die, dass es, wenn ein Computer #i neu gestartet wird, es mindestens F + 1 Computer gibt, die in der Lage sind, die gleiche Gruppe mit dem Computer #i auszubilden, d. h. in der Lage zu sein, mit dem Computer #i zu kommunizieren.
  • Der für diese oben beschriebene Ausführungsform eindeutige Neusynchronisationsprozess kann ein Split Brain auf der Zeitachse aus dem im Folgenden beschriebenen Grund verhindern. In diesem verteilten System nach dieser den Mindestanzahlalgorithmus einsetzenden Ausführungsform wird der Redundanzvorgang in dem Fall, dass mindestens Q Computer miteinander ohne Ausfall gruppiert werden, fortgesetzt. Der aktuellste Zustand des Prozesses in dem verteilten System wird daher durch mindestens Q Computer bereitgehalten. Wenn angenommen wird, dass die Anzahl der Computer, die den aktuellsten Zustand des Prozesses halten, das Minimum Q ist, dann ist die Anzahl der Computer, die den aktuellsten Zustand des Prozesses nicht halten, gleich der Anzahl der verbleibenden Computer, d. h. F = N – Q. In dem Fall, wo die Anzahl der Computer, die den aktuellsten Zustand des Prozesses halten, mehr als Q ist, ist andererseits die Anzahl der Computer, die den aktuellsten Zustand des Prozesses nicht halten, weniger als N – Q, d. h. weniger als F. Dies weist darauf hin, dass mindestens einer von beliebigen F + 1 Computern in dem System den aktuellsten Zustand des Prozesses hält. In dem Fall, dass der Computer #1 unter den oben beschriebenen Neusynchronisationsbedingungen neu synchronisiert wird, ist der Computer #1 daher immer in dem aktuellsten Zustand des Prozesses (der Ausführung), gesehen von dem System als ein Ganzes. Daher wird kein Split Brain bzw. geteiltes Gehirn auf der Zeitachse bewirkt.
  • Als nächstes wird mit Verweis auf 2 ein spezifischer Mechanismus der Neusynchronisation erläutert. Die Computer 10-1 (#1) bis 10-7 (#7) enthalten jeweils ein Programm 11, das die Schritte des um die bestimmten Computer 10-1 bis 10-7 redundant gemachten Vorgangs beschreibt, eine Ausführungszustand-Speichereinheit 12 zum Bereithalten des Ausführungszustands (Zustand des Prozesses) zum aktuellen Zeitpunkt in den Computern 10-1 bis 10-7, und eine Redundanzsteuereinheit 13 zum Steuern des Redundanzvorgangs (Redundanz mit der Mindestanzahl) gemäß dem Programm 11. Zur Erleichterung der Veranschaulichung werden jedoch das Pro gramm 11, die Ausführungszustand-Steuereinheit 12 und die Redundanzsteuereinheit 13 in den in 2 gezeigten Computern 10-3 bis 10-7 nicht gezeigt. Auch ist in einem jeweiligen der in 2 gezeigten Computer 10-i (i: 1 bis 7) die Speichereinheit, die den Speicherbereich zum Speichern des Programms 11 und die Speichereinheit zum Implementieren der Ausführungs-Zustandssteuereinheit 12 bereitstellt, nicht gezeigt.
  • Die Redundanzsteuereinheit 13 in einem jeweiligen Computer 10-i wird durch die Computer 10-i implementiert, die ein bestimmtes, in dem bestimmten Computer 10-i installiertes Softwareprogramm laden und ausführen. Dieses Programm kann dadurch verteilt werden, dass es zuvor in einem computerlesbaren Speichermedium, wie etwa einer Magnetscheibe, einschließlich einer Floppy(registrierter Handelsname)-Disc, einer optischen Scheibe, einschließlich einer CD-ROM oder einer DVD, oder einem Halbleiterspeicher, einschließlich eines Flash-Speichers, gespeichert wird. Auch kann das Programm dadurch verteilt werden, dass es durch ein Netzwerk heruntergeladen wird. Die Redundanzsteuereinheit 13 umfasst eine Sequenznummer-Bereithalteeinheit 131, eine Neusynchronisationsbestimmungseinheit 132 und eine Neusynchronisierungseinheit 133.
  • Die Sequenznummer-Bereithalteeinheit 131 wird verwendet, um die Sequenznummer als eine Fortgangsinformation, die einen Anzeiger des Fortgangs im Prozess in dem Computer 10-i bildet, bereitzuhalten. Die Inhalte der Sequenznummer-Bereithalteeinheit 131 werden beispielsweise jedes Mal dann um eins inkrementiert, wenn die Ausführung des Programms 11 einen Fortgang verzeichnet, oder jedes Mal, wenn der gespeicherte Zustand in der Ausführungszustands-Speichereinheit 12 aktualisiert wird.
  • Die Neusynchronisations-Bestimmungseinheit 132 bestimmt, ob der Computer 10-i, wenn er neu hochgefahren ist, mit dem Prozess eines den aktuellsten Ausführungszustand in dem System haltenden Computers neu synchronisiert werden kann. Die Neusynchronisierungseinheit 133 synchronisiert den Computer 10-i neu gemäß dem Ergebnis der Bestimmung in der Neusynchronisations-Bestimmungseinheit 132. Die Neusynchronisationseinheit 133 synchronisiert den Computer 10-i neu, indem sie die Inhalte der Ausführungszustandsspeichereinheit 12 in dem Computer 10-i mit dem aktuellsten Ausführungszustand aktualisiert. Der den aktuellsten Ausführungszustand in dem System haltende Computer kann durch Vergleich mit der in der Sequenznummer-Bereithalteeinheit 131 des Computers (die unter der später beschriebenen Redundanzsteuerung stehenden Computer) bereitgehaltenen Sequenznummern erkannt werden, wobei die Computer mit dem Computer 10-i synchronisiert sind und in der Lage sind, mit diesem zu kommunizieren.
  • Als nächstes wird der Betrieb des in 2 gezeigten Systems mit Verweis auf die Flussdiagramme der 3 und 4 und das Ablaufdiagramm der 5 erläutert.
  • Zunächst wird die Redundanzsteuerung erläutert. Die Redundanzsteuereinheiten 13 in den Computern 10-i (i: 1 bis 7) tauschen über ein Netzwerk 20 miteinander Informationen aus (Schritt S1). Dieser Informationsaustausch ermöglicht es der Redundanz-Steuereinheit 13 in einem jeweiligen Computer 10-i zu bestimmen, ob der Betrieb der mindestens Q Computer einschließlich des bestimmten Computers 10-i, miteinander geteilt (synchronisiert) werden kann (Schritt S2). Im Fall der Japanischen Patentanmeldung KOKAI Veröffentlichungsnummer 2003-67215 (Absätze 0056 bis 0064, 4) wird beispielsweise die Eingabe für den Vorgang Pj zwischen den Computern ausgetauscht und es wird bestimmt, ob die bestimmte Eingabe von mindestens Q Computern geteilt werden kann. Die Tatsache, dass die Eingabe für den Prozess Pj von mindestens Q Computern geteilt werden kann, ist äquivalent zu der Tatsache, dass der Betrieb der mindestens Q Computer, einschließlich des bestimmten Computers 10-i, miteinander geteilt werden kann.
  • In dem Fall, dass der Betrieb der mindestens Q Computer, einschließlich des Computers 10-i, miteinander geteilt werden kann (Schritt S2), erzeugt die Redundanzsteuereinheit 13 in dem Computer 10-i eine aus den mindestens Q Computern aufgebaute Gruppe und geht weiter zum Schritt S3. Im Schritt S3 führt die Redundanzsteuereinheit 13 in dem Computer 10-i von allen in dem Programm 11 beschriebenen Prozessen den Prozess Pj aus, der dem in der Ausführungszustandsspeichereinheit 12 gehaltenen, derzeitigen Ausführungszustand entspricht. Bei vollständiger Ausführung des Vorgangs Pj aktualisiert die Redundanzsteuereinheit 13 den in der Ausführungszustandssteuereinheit 12 gehaltenen Ausführungszustand in den Zustand, bei dem die Ausführung des Prozesses Pj abgeschlossen ist (Schritt S4). Auch inkrementiert die Redundanzsteuereinheit 13 die in der Sequenznummerhalteeinheit 131 gehaltene Sequenznummer um eins (Schritt S5). Die Redundanzsteuereinheit 13 wiederholt den Vorgang der Schritte S1 bis S5.
  • In dem Fall, dass andererseits der Betrieb der Q Computer, einschließlich des Computers 10-i, nicht miteinander geteilt werden können (Schritt S2), unterbricht die Redundanzsteuereinheit 13 in dem Computer 10-i die Ausführung des Prozesses des Programms 11. In diesem Fall wiederholt die Redundanzsteuereinheit 13 den Informationsaustausch mit den verbleibenden Computern im Schritt S1 und der Bestimmungsprozess im Schritt S2, bis der Betrieb der mindestens Q Computer dahin kommt, dass sie miteinander geteilt sind. Dieser wiederholte Vorgang in den Schritten S1 und S2 durch die Redundanzsteuereinheit 13 des Computers 10-i ist auch ein Teil des Redundanzsteuervorgangs. Insbesondere fährt, solange der Prozess der Schritte S1 und S2 wiederholt wird, der Computer 10-i fort, den Redundanzsteuervorgang nach dem Flussdiagramm der 3 auszuführen, obwohl ein neuer Prozess des Programms 11 durch den Computer 10-i nicht ausgeführt wird. Nachdem der Betrieb der Q Computer, einschließlich des Computers 10-i, dahin kommt, dass sie miteinander geteilt sind, kann der Computer 10-i unmittelbar mit einem neuen Prozess (Schritt S3) in Synchronizität mit dem Betrieb der anderen Computer, die den Vorgang des Programms 11 ausführen, fortfahren.
  • Nun wird angenommen, dass die Prozesse P1, P2, P3 des Programms 11 in allen Computern 10-1 bis 10-i in dem System ausgeführt werden, wie in 5 gezeigt. Zum Zeitpunkt T1, wenn der Prozess P3 abgeschlossen ist, wird angenommen, dass die Kommunikation der zwei Computer 10-1 (#1), 10-2 (#2) mit den fünf Computern 10-3 (#3) bis 10-7 (#7) ausfällt. Mit anderen Worten, es wird angenommen, dass die Computergruppe A, einschließlich der zwei Computer 10-1 (#1), 10-2 (#2), und die Computergruppe B, einschließlich der fünf Computer 10-3 (#3) bis 10-7 (#7), in zwei Netzwerkunterteilungen getrennt werden. In dem Fall, dass das System in 2 den 2/3 Mindestanzahlentscheidungsalgorithmus als einen Mindestanzahlalgorithmus einsetzt, gilt: N = 7, Q = 5 und F = 2.
  • In diesem Fall besteht die Computergruppe B aus fünf Computern 10-1 bis 10-7 und erfüllt daher die 2/3 Mindestanzahl Q. Die Computer 10-3 bis 10-7 führen daher den Prozess des Programms 11 nachfolgend auf den Prozess P3 fort, wie in 5 gezeigt. Andererseits versagen die Computer 10-1, 10-2 der Computergruppe A darin, Q (= 5) zu erfüllen, und unterbrechen daher den Prozess des Programms 11, ohne zu dem auf den Prozess P3 folgenden Prozess weiterzugehen, wie in 5 gezeigt.
  • Danach wird zu einem Zeitpunkt T2 bei der Vervollständigung der auf den Prozess P3 folgenden Prozesse P4, P5, P6 durch die Computer 10-3 bis 10-7 angenommen, dass beispielsweise vier Computer 10-4 bis 10-7 aus den Computern 10-3 bis 10-7 Fehler machen und möglicherweise anhalten. Selbst in dem Fall, dass die Unterteilung bzw. Abspaltung des Computers 10-3 von den Computern 10-1, 10-2 durch die Netzwerkunterteilung aufgehoben wird und dahin kommt, dass sie den Betrieb mit den Computern 10-1, 10-2 teilt, d. h. der Computer 10-3 kommt dahin, die gleiche Gruppe mit den Computern 10-1, 10-2 auszubilden, dann ist die 2/3 Mindestanzahl nicht erfüllt und folglich wird der Prozess ausgesetzt bzw. unterbrochen.
  • Nun wird angenommen, dass der Fehler der Computer 10-4 bis 10-7 vorübergehend ist und dass die Computer 10-4 bis 10-7 von dem Fehler wiederhergestellt und neu gestartet werden. Die Redundanzsteuereinheiten 13 in den Computern 10-4 bis 10-7 starten den Neustartprozess nach dem Flussdiagramm der 4.
  • Zunächst kommuniziert die Redundanzsteuereinheit 13 im Computer 10-j (j: 4 bis 7) mit den anderen Computern im System (Schritt S11). Die Neusynchronisationsbestimmungseinheit 132 der Redundanzsteuereinheit 13 im Computer 10-j bestimmt als Ergebnis der Kommunikation im Schritt S11, ob eine Kommunikation mit F + 1 oder mehr Computern (d. h. mindestens F + 1 Computern), die den Redundanzsteuervorgang ausführen (bereits synchronisiert sind) möglich ist (Schritt S12). In dem Fall, dass es F + 1 oder mehr Computer gibt, die mit dem Computer 10-j kommunizieren können und die den Redundanzsteuervorgang ausführen, bestimmt die Neusynchronisationsbestimmungseinheit 132, dass der Computer 10-j neu synchronisiert werden kann. In diesem Fall reicht die Neusynchronisationsbestimmungseinheit 132 den Steuervorgang wei ter an die Neusynchronisierungseinheit 133 in demselben Computer 10-j.
  • Nach dieser Ausführungsform (Q = 5), in dem das in 2 gezeigte System aus sieben Computern 10-1 bis 10-7 (N = 7) aufgebaut ist und den 2/3 Mindestanzahlentscheidungsalgorithmus als einen Mindestanzahlalgorithmus benutzt, gilt: F + 1 = (N – Q) + 1 = (7 – 5) + 1 = 3. Wie oben beschrieben, in dem Fall, dass es F + 1 (= 3) oder mehr Computer gibt, die den Redundanzsteuervorgang ausführen, hält mindestens einer der F + 1 (= 3) Computer den aktuellsten Ausführungszustand (Prozesszustand). Im Fall des in 5 gezeigten Abfolgediagramms ist die Anzahl der Computer, die den Redundanzsteuervorgang zum Zeitpunkt T3 ausführen, F + 1 (= 3) der Computer 10-1 bis 10-3. In diesem Fall hält mindestens einer der F + 1 (= 3) Computer 10-1 bis 10-3 den aktuellsten Ausführungszustand (den Zustand, in dem die Ausführung des Prozesses P6 abgeschlossen ist).
  • Die Neusynchronisierungseinheit 133 in dem Computer 10-j (j: 4 bis 7) erkennt einen Computer, der den aktuellsten Ausführungszustand bereithält, und führt den Vorgang zum Neusynchronisieren des Computers 10-j mit dem bestimmten, den aktuellsten Ausführungszustand haltenden Computer in der unten beschriebenen Weise aus. Zuerst holt der Computer 10-j die Sequenznummern, die von den Sequenznummerhalteeinheiten 131 der F + 1 oder mehr Computer gehalten werden, von den F + 1 oder mehr Computern ein (in diesem Fall, von den F + 1 = 3, d. h. drei Computern 10-1 bis 10-3) (Schritt S13). Die Sequenznummern können durch die Neusynchronisierungseinheit 133 im Computer 10-j beispielsweise dadurch eingeholt werden, dass die F + 1 oder mehr Computer angefordert werden, die Sequenznummern zu übertragen.
  • Die Neusynchronisierungseinheit 133 im Computer 10-j bestimmt die aktuellste Sequenznummer (in diesem Fall die Se quenznummer des größten Werts), indem sie die aus den F + 1 oder mehr Computern eingeholten Sequenznummern vergleicht (Schritt S14). Von allen Computern, die den Redundanzsteuervorgang ausführen, ist der die aktuellste Sequenznummer haltende Computer (im Folgenden als der Computer 10-k bezeichnet), der von den Computern 10-1 bis 10-3 in dem in 5 gezeigten Ablaufdiagramm enthaltene Computer 10-3. Die Neusynchronisierungseinheit 133 identifiziert diesen Computer 10-k, der die aktuellste Sequenznummer aufweist, und synchronisiert den Computer 10-j neu mit dem aktuellen Ausführungszustand des identifizierten Computers 10-k (Schritt S15). Im Fall der 7 ist der Computer 10-k der Computer 10-3 und folglich wird der Computer 10-j (j: 4 bis 7), d. h. die Computer 10-4 bis 10-7, mit dem Computer 10-3 neu synchronisiert. Diese Neusynchronisierung wird ausgeführt durch die Neusynchronisierungseinheit 133, die die Inhalte (den aktuellsten Ausführungszustand) der Ausführungszustandsspeichereinheit 12 des Computers 10-k (dem Computer, der die aktuellste Sequenznummer hält) an die Ausführungszustandspeichereinheit 12 des Computers 10-j kopiert. In diesem Neusynchronisierungsprozess wird die aktuellste Sequenznummer ebenfalls zu der Sequenznummerhalteeinheit 131 des Computers 10-j kopiert. Im Fall, dass die im Schritt S14 bestimmte, aktuellste Sequenznummer auch in der Sequenznummerhalteeinheit 131 des Computers 10-j bereitgehalten wird, kann der oben beschriebene Kopiervorgang ausgelassen werden, wenn angenommen bzw. betrachtet wird, dass die Neusynchronisierung abgeschlossen ist.
  • Der Computer 10-j (j: 4 bis 7) beginnt beim Vervollständigen der Neusynchronisierung mit dem Computer 10-j (10-3) den Redundanzsteuerbetrieb bzw. -vorgang gemäß dem in 3 gezeigten Flussdiagramm. Infolgedessen führt die Redundanzsteuereinheit 13 des Computers 10-j, sobald der Betrieb der Q Computer einschließlich seiner selbst dahin kommt, dass sie miteinander geteilt sind, den folgenden Prozess aus, basiert auf dem in der Ausführungszustandsspeichereinheit 12 gehaltenen, aktuellsten Ausführungszustand. Im Fall der 5 hat der Computer 10-k, d. h. der Computer 10-3, den Prozess bereits bis zu P6 zum Zeitpunkt T2 abgeschlossen, wenn die Computer 10-4 bis 10-7 Fehler machen. Danach wird angenommen, dass die Computer 10-4 bis 10-7 neu gestartet werden und die Kommunikation der Computer 10-1 bis 10-3 mit den Computern 10-4 bis 10-7 möglich wird, mit dem Ergebnis, dass die Computer 10-4 bis 10-7 mit den Computern 10-3 zum Zeitpunkt T3 neu synchronisiert werden können, wie in 5 gezeigt. In diesem Fall ist der Ausführungszustand der Computer 10-4 bis 10-7 gleich demselben aktuellsten Ausführungszustand wie dem des Computers 10-3. Auch sind die Computer 10-1, 10-2 aufgrund des Redundanzsteuervorgangs ebenfalls in dem gleichen, aktuellsten Ausführungszustand wie der Computer 10-3. Infolgedessen beginnen die Computer 10-1 bis 10-7 den Redundanzvorgang ab dem auf den Prozess P6 folgenden Prozess P7 zum Zeitpunkt T3, und folglich tritt kein Split Brain auf der Zeitachse auf.
  • Die Wirkungen der oben beschriebenen Ausführungsform werden im folgenden kurz zusammengefasst.
  • Zunächst verwendet diese Ausführungsform den Mindestanzahlalgorithmus (2/3 Mindestanzahlentscheidungsalgorithmus), indem der Prozess (Redundanzvorgang) in dem Fall weitergeführt wird, dass der Betrieb der mindestens Q (Q = 5) aus den das verteilte System ausbildenden N (N = 7) Computern miteinander geteilt werden können. In diesem Fall, wird, wenn F (F = N – Q = 2) oder weniger Computer Fehler machen, wie in dem in der Japanischen Patentanmeldung KOKAI Veröffentlichungsnummer 2003-67215 (Absätze 0056 bis 0064, 5) beschriebenen Stand der Technik, der Redundanzvorgang nicht ausgesetzt, auch nicht vorübergehend. Im Fall, dass F + 1 oder mehr, jedoch nicht mehr als Q – 1, Computer Fehler machen, wird andererseits das System nicht heruntergefah ren, und dann kann der Prozess, obwohl er vorübergehend ausgesetzt ist, automatisch wieder aufgenommen werden, solange einige der fehlerhaften Computer neu gestartet werden und Q oder mehr Computer dahin kommen, dass sie in ihrer Gesamtheit bzw. zusammen betrieben werden. Nach dieser Ausführungsform, bei der N = 7, Q = 5 und F = 2 ist, kann daher der Prozess automatisch wieder aufgenommen werden, selbst in dem Fall, dass die Computer mit den Nummern 3 (F + 1 = 3), die F übersteigt, bis 4 (Q – 1 = 4), Fehler machen. Es wird beispielsweise angenommen, dass vier Computer Fehler machen. Solange wie zwei von diesen neu gestartet werden, kann der Prozess durch Neusynchronisierung mit dem Prozess der verbleibenden drei F + 1 Computer automatisch wiederaufgenommen werden. Dieses automatische Neustarten des Prozesses durch die Neusynchronisierung ist in dem herkömmlich bekannten Mindestanzahlalgorithmus, bei dem es wahrscheinlich ist, dass ein Split Brain auf der Zeitachse auftritt, unmöglich.
  • Ein vorübergehender Hardwarefehler oder ein Fehler in der Software, wie etwa einem OS (Betriebssystem), nicht jedoch ein irreparabler oder ein permanenter Hardwarefehler, stellt einen Hauptanteil von Computerfehlern dar. Nach dieser Ausführungsform wird die Neusynchronisierung zum Zeitpunkt des Neustartens des Computers automatisch ausgeführt, und daher kann die Systemverfügbarkeit im Fall eines Fehlers an mehreren Punkten merklich verbessert werden.
  • Die oben beschriebene Ausführungsform setzt den 2/3 Mindestanzahlentscheidungsalgorithmus als einen Mindestanzahlalgorithmus ein. Dennoch ist diese Erfindung auch auf andere Mindestanzahlalgorithmen, wie etwa das Mehrheitenabstimmungsverfahren, und mit gleicher Wirkung anwendbar. In dem Fall, wo N eine ungerade Zahl ist, ist jedoch F + 1 = Q, und folglich ist die Anwendung des Neusynchronisierungsvorgangs zum Zeitpunkt des Neustartens des Systems nach der oben beschriebenen Ausführungsform nicht wirksam, wie im Folgenden erläutert. Als erstes ist im Fall, dass F + 1 = Q, die Bedingung für die Synchronisierung, d. h. die Tatsache, dass die mindestens F + 1 Computer den mehrfachen Steuervorgang ausführen, nichts als die Tatsache, dass mindestens Q Computer den Redundanzsteuervorgang ausführen, und daher wird der Redundanzvorgang nicht unterbrochen, auch nicht vorübergehend. In diesem Fall kann der Betrieb des Computers, der einen Fehler entwickelt hat, mit dem Betrieb des Computers mit dem aktuellsten Ausführungszustand in dem Redundanzsteuerverfahren gemäß dem Flussdiagramm der 3 geteilt werden, und folglich ist der Neusynchronisierungsvorgang zum Zeitpunkt des Neustartens nach dieser Ausführungsform nicht erforderlich. Im Fall, dass N eine gerade Zahl ist, gilt andererseits Q – F = 2, d. h. F + 1 < Q, und folglich ist die Neusynchronisierung zum Zeitpunkt des Neustartens des Systems nach dieser Ausführungsform sehr wirksam. Übrigens weist im Fall, dass N = 8 ist, das Mehrheitsabstimmungsverfahren folgendes auf: Q = 5, F = 3 und F + 1 = 4, wohingegen Q = 6, F = 2 und F + 1 = 3 für den 2/3 Mindestanzahlentscheidungsalgorithmus gilt.
  • Die Ausführungsformen werden oben mit Verweis auf einen Fall beschrieben, in dem die das verteilte System ausbildenden Verarbeitungselemente in der Lage sind, miteinander zu kommunizieren, Computer sind. Nichtsdestotrotz ist diese Erfindung auch auf den Fall anwendbar, dass die Verarbeitungselemente redundante Prozesse oder in dem Betriebssystem des Computers betriebene redundante Server sind, und dies mit der gleichen Wirkung.

Claims (6)

  1. Ein verteiltes System, das ein Mindestanzahl-Redundanzverfahren einsetzt, in dem ein Redundanzvorgang so ausgebildet ist, dass er durch mindestens Q Verarbeitungselemente von N Verarbeitungselementen, die zum Kommunizieren miteinander ausgebildet sind, wobei N eine Ganzzahl 4 oder mehr ist und Q eine eine Mindestanzahl angebende Ganzzahl ist, nur in dem Fall ausgeführt wird, dass die Betriebabläufe der mindestens Q Verarbeitungselemente miteinander synchronisiert werden können, wobei ein jeweiliges der N Verarbeitungselemente dadurch gekennzeichnet ist, dass es umfasst: Neusynchronisationsbestimmungsmittel (132), ausgebildet zum Bestimmen, dass ein Ausführungszustand des Verarbeitungselements selbst mit einem neuesten Ausführungszustand in dem verteilten System neu synchronisiert werden kann, und zwar in dem Fall, dass die Verarbeitungselemente mit mindestens F + 1 Elementen (F = N – Q), die aus den N Verarbeitungselementen zum Zeitpunkt eines Wiederhochfahrens der Verarbeitungselemente bereits synchronisiert sind, kommunizieren kann; und Neusynchronisationsmittel (133), ausgebildet zum Neusynchronisieren des Ausführungszustands des Verarbeitungselements selbst mit dem Neuesten der Verarbeitungszustände der mindestens F + 1 Verarbeitungselemente gemäß dem Ergebnis der Bestimmung durch die Neusynchronisationsmittel.
  2. Das verteilte System nach Anspruch 1, dadurch gekennzeichnet, dass ein jeweiliges der N Verarbeitungselemente ferner umfasst Ausführungszustandsspeichermittel (12), ausgebildet zum Halten eines neuesten Ausführungszustand des Verarbeitungselements selbst, und dass die Neusynchronisationsmittel ferner dazu ausgebildet sind, die Neusynchronisation auszuführen durch Kopieren des neuesten Ausführungszustands von dem Verarbeitungselement, das den neuesten Ausführungszustand in dem verteilten System der mindestens F + 1 Verarbeitungselemente hält, in das Ausführungszustandsspeichermittel des Verarbeitungselements selbst.
  3. Das verteilte System nach Anspruch 1, dadurch gekennzeichnet, dass ein jeweiliges der N Verarbeitungselemente ferner umfasst: Fortgangsinformationshaltermittel (131), ausgebildet zum Halten von Fortgangsinformation, die einen Indikator für einen Fortgang eines Prozesses in dem Verarbeitungselement selbst bildet, und wobei die Neusynchronisationsmittel ferner dazu ausgebildet sind, ein Verarbeitungselement, das den neuesten Ausführungszustand in dem verteilten System aus der in den Fortgangsinformationshaltemitteln der mindestens F + 1 Verarbeitungselemente gehaltenen Fortgangsinformation detektiert.
  4. Das verteilte System nach Anspruch 1, dadurch gekennzeichnet, dass das Fortgangsinformationshaltemittel ferner dazu ausgebildet ist, die Abfolgenummer, die jedes Mal, wenn der Prozess in dem entsprechenden einen der Verarbeitungselemente einen Fortschritt macht, um eins erhöht wird, als die Fortgangsinformation zu halten; und die Neusynchronisationsmittel ferner dazu ausgebildet sind, die Sequenznummern zu vergleichen, die als die Fortgangsinformation in den Fortgangsinformationshaltemitteln der mindestens F + 1 Verarbeitungselemente gehalten werden, und ein Verarbeitungselement zu erkennen, das die Fortgangsinformationshaltemittel zum Halten der Abfolgenummer mit dem größten Wert als ein den neuesten Verarbeitungszustand in dem verteilten System haltendes Verarbeitungselement aufweist.
  5. Das Verarbeitungssystem nach Anspruch 1, dadurch gekennzeichnet, dass Q die 2/3 Mindestanzahl ist, die mit der minimalen Ganzzahl, die größer als 2/3 von N ist, übereinstimmt.
  6. Ein Redundanzsteuerungsverfahren des Redundanzvorgangs in einem verteilten System, das ein Mindestanzahlredundanzverfahren verwendet, in dem ein Redundanzvorgang durch mindestens Q Verarbeitungselemente von N zum Kommunizieren miteinander ausgebildeten Verarbeitungselemente, wobei N eine Ganzzahl 4 oder mehr und Q eine eine Mindestanzahl angebende Ganzzahl ist, nur in dem Fall ausgeführt wird, dass die Betriebsabläufe der mindestens Q Verarbeitungselemente miteinander synchronisiert werden können, wobei das Verfahren dadurch gekennzeichnet ist, dass es die folgenden Schritte umfasst: Bestimmen (S12), ob ein wieder hochgefahrenes Verarbeitungselement mit mindestens F + 1 Verarbeitungselementen (F = N – Q), die aus den N Verarbeitungselementen bereits synchronisiert sind, kommunizieren kann; Detektieren (S13, S14) eines Verarbeitungselements, das den neuesten Ausführungszustand in dem verteilten System aus den mindestens F + 1 Verarbeitungselementen hält, und zwar in dem Fall, dass das wieder hochgefahrene Verarbeitungselement mit den mindestens F + 1 Verarbeitungselementen kommunizieren kann; und Neusynchronisieren (S15) des Ausführungszustands des wieder hochgefahrenen Verarbeitungselements in den Ausführungszustand des detektierten Verarbeitungselements.
DE602005003490T 2004-03-12 2005-03-09 Verteiltes System mit Quorumredundanz und Verfahren dafür Active DE602005003490T8 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004071494 2004-03-12
JP2004071494A JP3808874B2 (ja) 2004-03-12 2004-03-12 分散システム及び多重化制御方法

Publications (3)

Publication Number Publication Date
DE602005003490D1 DE602005003490D1 (de) 2008-01-10
DE602005003490T2 true DE602005003490T2 (de) 2008-10-09
DE602005003490T8 DE602005003490T8 (de) 2009-02-05

Family

ID=34824642

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602005003490T Active DE602005003490T8 (de) 2004-03-12 2005-03-09 Verteiltes System mit Quorumredundanz und Verfahren dafür

Country Status (5)

Country Link
US (1) US7620845B2 (de)
EP (1) EP1574956B1 (de)
JP (1) JP3808874B2 (de)
CN (1) CN100380364C (de)
DE (1) DE602005003490T8 (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100429596C (zh) * 2006-01-19 2008-10-29 吴胜华 集散型大容量现场高速实时数据冗余通信方法及其系统
US20070214314A1 (en) * 2006-03-07 2007-09-13 Reuter James M Methods and systems for hierarchical management of distributed data
KR101042908B1 (ko) * 2009-02-12 2011-06-21 엔에이치엔(주) 네트워크 분리 장애 상황에서 메이저 그룹을 결정하기 위한방법, 시스템, 및 컴퓨터 판독 가능한 기록 매체
US8327181B2 (en) * 2009-06-22 2012-12-04 Citrix Systems, Inc. Systems and methods for failover between multi-core appliances
JP4956603B2 (ja) * 2009-12-04 2012-06-20 株式会社東芝 分散システムおよび論理時間調整方法
US9755985B1 (en) * 2010-09-28 2017-09-05 Amazon Technologies, Inc. Utilizing multiple algorithms in a distributed-service environment
CN102176202B (zh) * 2010-12-29 2013-12-25 哈尔滨工业大学 一种星上商用器件冗余网络设计电路
US8578204B1 (en) * 2010-12-29 2013-11-05 Emc Corporation Witness facility for distributed storage system
US8745467B2 (en) * 2011-02-16 2014-06-03 Invensys Systems, Inc. System and method for fault tolerant computing using generic hardware
US8516355B2 (en) * 2011-02-16 2013-08-20 Invensys Systems, Inc. System and method for fault tolerant computing using generic hardware
US9152458B1 (en) * 2012-08-30 2015-10-06 Google Inc. Mirrored stateful workers
US9990414B2 (en) 2015-06-15 2018-06-05 International Business Machines Corporation Cognitive architecture with content provider managed corpus
JP2017016319A (ja) * 2015-06-30 2017-01-19 日本信号株式会社 多重化データ処理装置
JP6409812B2 (ja) * 2016-04-01 2018-10-24 横河電機株式会社 冗長化装置、冗長化システム、及び冗長化方法
JP6787239B2 (ja) * 2017-04-25 2020-11-18 横河電機株式会社 制御装置、制御方法、及び制御プログラム
US11544228B2 (en) 2020-05-07 2023-01-03 Hewlett Packard Enterprise Development Lp Assignment of quora values to nodes based on importance of the nodes
CN113110124B (zh) * 2021-03-11 2022-08-19 上海新时达电气股份有限公司 双mcu控制方法及控制系统
WO2023148976A1 (ja) * 2022-02-07 2023-08-10 株式会社Pfu ノード装置、クラスタ再構成方法、プログラム及びクラスタシステム

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4733353A (en) * 1985-12-13 1988-03-22 General Electric Company Frame synchronization of multiply redundant computers
AU616213B2 (en) * 1987-11-09 1991-10-24 Tandem Computers Incorporated Method and apparatus for synchronizing a plurality of processors
AU657685B2 (en) * 1990-06-14 1995-03-23 Fujitsu Limited A synchronization control system in a parallel computer
US6002851A (en) 1997-01-28 1999-12-14 Tandem Computers Incorporated Method and apparatus for node pruning a multi-processor system for maximal, full connection during recovery
US5903717A (en) * 1997-04-02 1999-05-11 General Dynamics Information Systems, Inc. Fault tolerant computer system
US6202067B1 (en) * 1998-04-07 2001-03-13 Lucent Technologies, Inc. Method and apparatus for correct and complete transactions in a fault tolerant distributed database system
US6223304B1 (en) * 1998-06-18 2001-04-24 Telefonaktiebolaget Lm Ericsson (Publ) Synchronization of processors in a fault tolerant multi-processor system
US6161196A (en) 1998-06-19 2000-12-12 Lucent Technologies Inc. Fault tolerance via N-modular software redundancy using indirect instrumentation
US6260124B1 (en) * 1998-08-13 2001-07-10 International Business Machines Corporation System and method for dynamically resynchronizing backup data
US6470462B1 (en) * 1999-02-25 2002-10-22 Telefonaktiebolaget Lm Ericsson (Publ) Simultaneous resynchronization by command for state machines in redundant systems
KR100324275B1 (ko) * 1999-07-14 2002-02-25 서평원 이중화된 프로세서의 이중화 상태 제어 방법
US6490693B1 (en) * 1999-08-31 2002-12-03 International Business Machines Corporation Dynamic reconfiguration of a quorum group of processors in a distributed computing system
US6542929B1 (en) 1999-08-31 2003-04-01 International Business Machines Corporation Relaxed quorum determination for a quorum based operation
EP1107119A3 (de) 1999-12-02 2005-07-20 Sun Microsystems, Inc. Erweiterung der Gruppenzugehörigkeit und Quorumsbestimmung zu intelligenten Speicherbereichsystemens
US7272632B2 (en) 2001-06-15 2007-09-18 Kabushiki Kaisha Toshiba Distributed system and multiplexing control method for the system
JP3655263B2 (ja) 2001-06-15 2005-06-02 株式会社東芝 分散システムおよび同システムの多重化制御方法
US7016946B2 (en) 2001-07-05 2006-03-21 Sun Microsystems, Inc. Method and system for establishing a quorum for a geographically distributed cluster of computers

Also Published As

Publication number Publication date
EP1574956A3 (de) 2006-10-04
JP2005258946A (ja) 2005-09-22
CN1667600A (zh) 2005-09-14
CN100380364C (zh) 2008-04-09
DE602005003490T8 (de) 2009-02-05
EP1574956B1 (de) 2007-11-28
EP1574956A2 (de) 2005-09-14
US7620845B2 (en) 2009-11-17
US20050204184A1 (en) 2005-09-15
DE602005003490D1 (de) 2008-01-10
JP3808874B2 (ja) 2006-08-16

Similar Documents

Publication Publication Date Title
DE602005003490T2 (de) Verteiltes System mit Quorumredundanz und Verfahren dafür
DE60302184T2 (de) Fehlertolerantes Computersystem, Verfahren zur Resynchronisierung desselben und zugehöriges Resynchronisierungs-Programm
DE112011100623B4 (de) Read-Other-Protokoll zur Aufrechterhaltung der Paritätskohärenz in einem Writeback-Datenspeichersystem mit verteilter Redundanz
DE69923621T2 (de) Verfahren und Vorrichtung zu korrekten und vollständigen Übertragungen in einem fehlertoleranten verteilten Datenbanksystem
DE60312746T2 (de) Wiederherstellung nach fehlern in datenverarbeitungsanlagen
DE60301702T2 (de) Fehlertolerantes Computersystem, Verfahren zur Resynchronisation desselben und Programm zur Resynchronisation desselben
DE112011103666B4 (de) Speicherverwaltung in Cluster-Datenverarbeitungssystemen
DE602004005344T2 (de) Verfahren, system und programm zur handhabung eines failover zu einem fernspeicherort
DE19836347C2 (de) Fehlertolerantes Computersystem
DE60004365T2 (de) System und verfahren zur überwachung von einem verteilten fehlertoleranten rechnersystem
EP3246771B1 (de) Verfahren zum betreiben eines redundanten automatisierungssystems
DE69919632T2 (de) Fehlertoleranz durch N-modulare Softwareredundanz unter Verwendung von indirekter Instrumentierung
DE112010004140B4 (de) Dynamischer Austausch von Replikat-Datenträgern in einem Verbund
DE102013218341B4 (de) Ersatzweise Verlagerung von Threads (Thread-Sparing) zwischen Berechnungskernen in einem Multithread-Prozessor
DE112006002531T5 (de) Anwendung virtueller Server für Lösungen mit hoher Verfügbarkeit und für Lösungen bei der Wiederherstellung nach Fehlern
DE112011104471T5 (de) Verfahren zur Failover-Verwaltung von virtuellen Maschinen und System zum Unterstützen desselben
EP1328867B1 (de) Vorrichtung und verfahren zur datenspiegelung
DE102013101863A1 (de) Hochverfügbares Hauptspeicher-Datenbanksystem, Arbeitsverfahren und deren Verwendungen
DE112011100112T5 (de) Pufferspeicher-platte in blitzkopie-kaskade
DE102004027672A1 (de) Speicherplattenarraysystem
DE112012001267T5 (de) Verfahren, Systeme und Computerprogrammprodukte zur abgestimmten Notfallwiederherstellung
DE10123067A1 (de) Synchrone Vervielfältigung von Transaktionen in einem verteilten System
DE602004003327T2 (de) Computersystem und Verfahren zum Wiederanlauf mittels entferntem Kopieren
DE1574598C3 (de) Steuereinrichtung für Fernmelde-, insbesondere Fernsprechvermittlungsanlagen
DE3328405A1 (de) Steuerorgane eines fehlertoleranten mehrrechnersystems

Legal Events

Date Code Title Description
8381 Inventor (new situation)

Inventor name: ENDO, KOTARO, MINATO-KU TOKYO, JP

8327 Change in the person/name/address of the patent owner

Owner name: TOSHIBA SOLUTIONS CORP., TOKYO, JP

Owner name: KABUSHIKI KAISHA TOSHIBA, MINATO-KU, TOKYO, JP

8364 No opposition during term of opposition