-
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.