JP2013206278A - 冗長化システム、冗長化方法、冗長化システムの可用性向上方法、及びプログラム - Google Patents

冗長化システム、冗長化方法、冗長化システムの可用性向上方法、及びプログラム Download PDF

Info

Publication number
JP2013206278A
JP2013206278A JP2012076294A JP2012076294A JP2013206278A JP 2013206278 A JP2013206278 A JP 2013206278A JP 2012076294 A JP2012076294 A JP 2012076294A JP 2012076294 A JP2012076294 A JP 2012076294A JP 2013206278 A JP2013206278 A JP 2013206278A
Authority
JP
Japan
Prior art keywords
failure
systems
redundant
failed
occurred
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012076294A
Other languages
English (en)
Other versions
JP6098778B2 (ja
Inventor
Yasushi Takemori
康 竹森
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2012076294A priority Critical patent/JP6098778B2/ja
Priority to US13/828,751 priority patent/US9195553B2/en
Publication of JP2013206278A publication Critical patent/JP2013206278A/ja
Application granted granted Critical
Publication of JP6098778B2 publication Critical patent/JP6098778B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component

Landscapes

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

Abstract

【課題】冗長化システムにおいて、障害発生時にシステムを縮退した後、更に別の箇所に障害が発生した時でも動作を継続できるようにする。
【解決手段】2つの系で互いにロックステップ動作する冗長化サーバのいずれかが、障害発生時に、通常は障害が発生した系の中の障害デバイスを特定し、OS動作を一時的に停止し、プロセッサのコンテキストデータを退避し、障害デバイスに対応する二重化対象のデバイスが使用しているデータを、別のデバイス上にコピーし、退避したコンテキストデータを使用しない構成情報に変更し、正常に動作している系の情報を、障害が発生した系にコピーし、両系のプロセッサに対して同時にリセットをかけ、両系のプロセッサで、同時に初期化を開始し、退避していたコンテキストデータを読み込み、障害デバイスを使用しない構成でOS動作を復帰し、同期状態を維持したまま障害デバイスを切り離して動作する。
【選択図】図1

Description

本発明は、冗長化システムに関し、特に冗長化システムの可用性向上方法に関する。
システムを構成する装置を多重化(冗長化)した冗長化システムの1つとして、フォールトトレラント(FT:Fault Torerant)システムが知られている。
フォールトトレラントシステムは、多重化(冗長化)された装置を、運用系(Active)と待機系(Standby)とに分け、運用系と待機系とを切り替えることで、システムに障害(異常)が発生した場合でも正常な動作を保ち続ける能力を持つ。
一般的に、フォールトトレラントシステムは、CPU(Central Processing Unit)を備える情報処理装置(フォールトトレラントサーバ等)を複数台使って構成され、CPUの冗長性を確保するため、複数の情報処理装置のCPUをクロックレベルで同期して動作させている。
もし、何らかの理由により、CPU間で同期が取れない状態(同期ずれ)となった場合、異常が発生したCPUを同期動作から切り離すことにより、そのCPUの属する情報処理装置をフォールトトレラントシステムから切り離し、フォールトトレラントシステム自体は正常に稼動させ続ける仕組みとなっている。
このように、フォールトトレラントシステムでは、通常の障害発生時には、障害が発生した片側の系を切り離し、正常な残りの系のみで動作を継続する。しかし、片側の系を切り離した場合、冗長性が失われてしまい、更に障害が発生した時にはシステムが停止してしまうという問題がある。
関連する技術として、特許文献1(特開平11−134210号公報)にシステムの冗長化方法が開示されている。この関連技術では、各モジュールを少なくとも二重の冗長化とし、モジュール内の各機能を複数に分割してブロック化するか、各機能要素を複数個備え、モジュール内のいずれかの機能の一部に障害が発生した場合は、障害の発生したブロック又は障害を起こしている機能要素のみを切り離して縮退動作させ、更に平行運転している正常な冗長モジュールも、障害を起こして縮退動作を行っているモジュールと同一構成になるように縮退させて平行運転させる。
特開平11−134210号公報
本発明の目的は、従来と異なる構成・手順で、障害が発生した箇所のみを縮退させて二重化動作に復帰する冗長化システムを提供することである。
冗長化システムは、第1の系の冗長化サーバと、第2の系の冗長化サーバとを含む。第1の系の冗長化サーバ及び第2の系の冗長化サーバの各々は、互いにロックステップ(Lockstep)動作し、障害発生時に、通常は(基本的には)一旦障害が発生した系を切り離して動作を維持し、ユーザポリシーでの選択に従って、障害が発生した箇所を縮退させた構成で二重化動作に復帰する。なお、ロックステップ動作とは、2つのプロセッサで全く同じ処理を実行して結果を比較し、エラーを判定する動作である。なお、ロックステップ動作とは、2つのプロセッサで全く同じ処理を実行して結果を比較し、エラーを判定する動作である。
本発明に係る冗長化サーバは、2つの系で互いにロックステップ動作する処理機構と、障害発生時に、通常は一旦障害が発生した系を切り離して動作を維持する処理機構と、ユーザポリシーでの選択に従って、障害が発生した箇所を縮退させた構成で二重化動作に復帰する処理機構とを具備する。
本発明に係る冗長化システムの可用性向上方法は、冗長化サーバが、2つの系で互いにロックステップ動作することと、障害発生時に、通常は一旦障害が発生した系を切り離して動作を維持することと、ユーザポリシーでの選択に従って、障害が発生した箇所を縮退させた構成で二重化動作に復帰することとを含む。
本発明に係るプログラムは、冗長化サーバ用のプログラムであって、2つの系で互いにロックステップ動作するステップと、障害発生時に、通常は一旦障害が発生した系を切り離して動作を維持するステップと、ユーザポリシーでの選択に従って、障害が発生した箇所を縮退させた構成で二重化動作に復帰するステップとを冗長化サーバに実行させるためのプログラムである。なお、本発明に係るプログラムは、記憶装置や記憶媒体に格納することが可能である。
冗長化システムにおいて、障害発生時にシステムを縮退した後、更に別の箇所に障害が発生した時でも動作を継続できる。
本発明に係るフォールトトレラントシステムの構成例を示すブロック図である。 本発明に係るフォールトトレラントシステムの障害発生時の動作を説明するためのフローチャートである。
本発明は、冗長化システムを対象としている。ここでは、冗長化システムの1つであるフォールトトレラントシステムを例に説明する。但し、実際には、フォールトトレラントシステムに限定されない。例えば、クラスタシステムや、その他の冗長化システムでも良い。
<実施形態>
以下に、本発明の実施形態について添付図面を参照して説明する。
[システム構成]
図1を参照して、本発明に係るフォールトトレラントシステムの構成例について説明する。
本発明に係るフォールトトレラントシステムは、フォールトトレラントサーバ10と、フォールトトレラントサーバ20を含む。
ここでは、フォールトトレラントサーバ10は、第1の系(A系)のコンピュータシステムである。また、フォールトトレラントサーバ20は、第2の系(B系)のコンピュータシステムである。
第1の系のフォールトトレラントサーバ10と第2の系のフォールトトレラントサーバ20は、冗長化構成のため、全く同じ構成であると好適である。少なくとも、冗長化に対応した構成要素については、全く同じ構成となる。
第1の系のフォールトトレラントサーバ10と第2の系のフォールトトレラントサーバ20は、互いにロックステップ(Lockstep)動作し、障害発生時に、通常は(基本的には)一旦障害が発生した系を切り離して動作を維持し、ユーザポリシーでの選択に従って、障害が発生した箇所を縮退させた構成で二重化動作に復帰する。なお、ロックステップ動作とは、2つのプロセッサで全く同じ処理を実行して結果を比較し、エラーを判定する動作である。
「ユーザポリシーでの選択に従って」とは、以下の(ポリシー1)又は(ポリシー2)のいずれかをユーザが選択できるようにすることを意味している。
(ポリシー1)障害が発生した時に、従来のフォールトトレラントシステムのように、冗長性は失われるが、モジュール毎に切り離しを行い、縮退動作をせずに動作を継続する。
(ポリシー2)冗長性を重視して、障害が発生した箇所のみを縮退させて二重化動作に復帰する。
ここでは、障害発生時に、通常は(ポリシー1)に従って、一旦障害が発生した系を切り離して動作を維持する。そして、ユーザにより(ポリシー2)が選択された場合に、障害が発生した箇所のみを縮退させて二重化動作に復帰する。無論、反対に、通常は(ポリシー2)に従って、障害が発生した箇所のみを縮退させて二重化動作に復帰し、ユーザにより(ポリシー1)が選択された場合に、一旦障害が発生した系を切り離して動作を維持するようにすることも可能である。
[フォールトトレラントサーバの構成]
次に、第1の系のフォールトトレラントサーバ10及び第2の系のフォールトトレラントサーバ20の各々の構成例について説明する。
第1の系のフォールトトレラントサーバ10は、CPU11(11−a、a=1〜x:xは任意)と、メモリ12(12−b、b=1〜y:yは任意)と、チップセット13と、FT(Fault Torerant)制御チップ14と、IO(Input/Output:入出力)コントローラ15を備える。
同様に、第2の系のフォールトトレラントサーバ20は、CPU21(21−a、a=1〜x:xは任意)と、メモリ22(22−b、b=1〜y:yは任意)と、チップセット23と、FT制御チップ24と、IOコントローラ25を備える。
CPU11(11−a、a=1〜x)の各々は、メモリ12(12−b、b=1〜y)のいずれかと接続されている。同様に、CPU21(21−a、a=1〜x)の各々は、メモリ22(22−b、b=1〜y)のいずれかと接続されている。
チップセット13は、CPU11(11−a、a=1〜x)と接続されている。同様に、チップセット23は、CPU21(21−a、a=1〜x)と接続されている。
FT制御チップ14は、チップセット13及びCPU11(11−a、a=1〜x)と接続されている。FT制御チップ14は、チップセット13及びCPU11(11−a、a=1〜x)に、信号141を送信する。同様に、FT制御チップ24は、チップセット23及びCPU21(21−a、a=1〜x)と接続されている。FT制御チップ24は、チップセット23及びCPU21(21−a、a=1〜x)に、信号241を送信する。ここでは、FT制御チップ14とFT制御チップ24は、クロスリンクを介して互いに接続されており、第1の系のフォールトトレラントサーバ10と第2の系のフォールトトレラントサーバ20の間のデータ転送を行う。なお、クロスリンクとは、相互接続のための通信経路である。
IOコントローラ15は、FT制御チップ14と接続されている。同様に、IOコントローラ25は、FT制御チップ24と接続されている。IOコントローラ15及びIOコントローラ25は、入出力装置や補助記憶装置(DISK等)等の外部装置と接続することが可能である。
図示しないが、ここでは、本体用のファームウェアである本体BIOS(Basic Input/Output System)が、FT制御チップ14に接続されているフラッシュメモリや、FT制御チップ24に接続されているフラッシュメモリに格納されている。また、本体用のソフトウェア(SW:Software)が、IOコントローラ15に接続されている補助記憶装置や、IOコントローラ25に接続されている補助記憶装置に格納されている。FT制御チップ14やFT制御チップ24は、これらの本体BIOSやソフトウェアを利用することができる。
[同期リセットの動作]
次に、同期リセット(SyncReset)の動作について説明する。
第1の系のフォールトトレラントサーバ10のFT制御チップ14及び第2の系のフォールトトレラントサーバ20のFT制御チップ24は、本体BIOSの同期リセット(SyncReset)コマンドを発行する。
第1の系のフォールトトレラントサーバ10内において、FT制御チップ14は、チップセット13及びCPU11(11−a、a=1〜x)を介して、メモリ12(12−b、b=1〜y)の各々をセルフリフレッシュモードに移行させる。同様に、第2の系のフォールトトレラントサーバ20内において、FT制御チップ24は、チップセット23及びCPU21(21−a、a=1〜x)を介して、メモリ12(12−b、b=1〜y)の各々をセルフリフレッシュモードに移行させる。なお、FT制御チップ14及びFT制御チップ24は、一方が本体BIOSの同期リセット(SyncReset)コマンドを発行した場合、クロスリンクを介して、他方に当該同期リセット(SyncReset)コマンドを通知/転送するようにしても良い。
次に、第1の系のフォールトトレラントサーバ10内において、FT制御チップ14は、チップセット13及びCPU11(11−a、a=1〜x)に対して、信号141として、同期リセット(SyncReset)信号を送信し、同期リセット(SyncReset)をアサート(assert)する。すなわち、チップセット13及びCPU11(11−a、a=1〜x)に対して、同期リセット(SyncReset)をアクティブな(有効な/論理的に真の)状態にする。同様に、第2の系のフォールトトレラントサーバ20内において、FT制御チップ24は、チップセット23及びCPU21(21−a、a=1〜x)に対して、信号241として、同期リセット(SyncReset)信号を送信し、同期リセット(SyncReset)をアサートする。なお、FT制御チップ14及びFT制御チップ24は、一方が同期リセット(SyncReset)信号を送信する場合、クロスリンクを介して、他方に当該同期リセット(SyncReset)信号を通知/転送するようにしても良い。
[クロスリンクによる同期処理]
なお、第1の系のフォールトトレラントサーバ10のFT制御チップ14及び第2の系のフォールトトレラントサーバ20のFT制御チップ24は、クロスリンクを介して互いに同期を取っている。したがって、FT制御チップ14及びFT制御チップ24は、上記の同期リセット(SyncReset)の動作を同時に実行する。
[CPUの初期化処理のロックステップ動作]
更に、第1の系のフォールトトレラントサーバ10のCPU11及び第2の系のフォールトトレラントサーバ20のCPU21は、全ての処理についてロックステップ動作するため、同期リセット(SyncReset)による初期化処理自体もロックステップ動作する。
[セルフリフレッシュ動作によるメモリ内のデータ維持]
また、第1の系のフォールトトレラントサーバ10のCPU11及び第2の系のフォールトトレラントサーバ20のCPU21は、リセット処理期間中において、メモリ12(12−b、b=1〜y)の各々及びメモリ22(22−b、b=1〜y)の各々に格納されたデータを、セルフリフレッシュ動作により維持している。
[同期リセットの解除の動作]
また、上記の同期リセット(SyncReset)の動作と同様に、同期リセット(SyncReset)の解除の動作も同時に実行する。
以下に、同期リセット(SyncReset)の解除の動作について説明する。同期リセット(SyncReset)の解除の動作は、基本的に、上記の同期リセット(SyncReset)の動作と同じ手順で行われる。
第1の系のフォールトトレラントサーバ10のFT制御チップ14及び第2の系のフォールトトレラントサーバ20のFT制御チップ24は、本体BIOSの同期リセット(SyncReset)解除コマンドを発行する。
第1の系のフォールトトレラントサーバ10内において、FT制御チップ14は、チップセット13及びCPU11(11−a、a=1〜x)を介して、メモリ12(12−b、b=1〜y)の各々をアクティブモードに移行させる。同様に、第2の系のフォールトトレラントサーバ20内において、FT制御チップ24は、チップセット23及びCPU21(21−a、a=1〜x)を介して、メモリ12(12−b、b=1〜y)の各々をアクティブモードに移行させる。なお、FT制御チップ14及びFT制御チップ24は、一方が本体BIOSの同期リセット(SyncReset)解除コマンドを発行した場合、クロスリンクを介して、他方に当該同期リセット(SyncReset)解除コマンドを通知/転送するようにしても良い。
次に、第1の系のフォールトトレラントサーバ10内において、FT制御チップ14は、チップセット13及びCPU11(11−a、a=1〜x)に対して、信号141として、同期リセット(SyncReset)解除信号を送信し、同期リセット(SyncReset)をネゲート(negate)する。すなわち、チップセット13及びCPU11(11−a、a=1〜x)に対して、同期リセット(SyncReset)をインアクティブな(無効な/論理的に偽の)状態にする。同様に、第2の系のフォールトトレラントサーバ20内において、FT制御チップ24は、チップセット23及びCPU21(21−a、a=1〜x)に対して、信号241として、同期リセット(SyncReset)解除信号を送信し、同期リセット(SyncReset)をネゲートする。同期リセット(SyncReset)解除信号の例として、同期リセット(SyncReset)信号のビットを反転した信号等が考えられる。なお、FT制御チップ14及びFT制御チップ24は、一方が同期リセット(SyncReset)解除信号を送信する場合、クロスリンクを介して、他方に当該同期リセット(SyncReset)解除信号を通知/転送するようにしても良い。
[障害発生時の動作]
次に、図2のフローチャートを参照して、図1の回路の動作について説明する。
ここでは、第1の系のフォールトトレラントサーバ10の「メモリ12−6」と第2の系のフォールトトレラントサーバ20の「メモリ22−6」を「待機メモリ」として、OS(Operating System)では「未使用の状態」で動作させている時に、第2の系のフォールトトレラントサーバ20の「メモリ22−5」で障害が発生した場合の動作について説明する。
(1)ステップS1
第1の系のフォールトトレラントサーバ10のFT制御チップ14及び第2の系のフォールトトレラントサーバ20のFT制御チップ24は、二重化動作中において、CPUやメモリ等のデバイスに障害が発生したか確認する。なお、第1の系のフォールトトレラントサーバ10のFT制御チップ14及び第2の系のフォールトトレラントサーバ20のFT制御チップ24は、障害が発生していない場合(ステップS1でNo)、監視を継続する。
(2)ステップS2
第1の系のフォールトトレラントサーバ10のFT制御チップ14及び第2の系のフォールトトレラントサーバ20のFT制御チップ24は、障害が発生した場合(ステップS1でYes)、障害が発生した系を切り離すことを決定する。ここでは、第2の系のフォールトトレラントサーバ20のメモリ22−5で障害が発生している。したがって、正常に動作している第1の系のフォールトトレラントサーバ10のFT制御チップ14は、障害が発生した第2の系のフォールトトレラントサーバ20を切り離すことを決定する。
(3)ステップS3
正常に動作している第1の系のフォールトトレラントサーバ10のFT制御チップ14は、ソフトウェア制御により、クロスリンクを使用して、障害が発生した第2の系のフォールトトレラントサーバ20のメモリ22−5の障害を認識する。
(4)ステップS4
第1の系のフォールトトレラントサーバ10のFT制御チップ14は、ソフトウェア(SW)制御により、信号141として、システム管理割り込み(SMI:System Management Interrupts)信号を発生して、クロスリンクを使用して、障害が発生した第2の系のフォールトトレラントサーバ20のCPU21(21−a、a=1〜x)で動作しているOSの動作を一時停止する。例えば、第1の系のフォールトトレラントサーバ10のFT制御チップ14は、クロスリンクを使用して、第2の系のフォールトトレラントサーバ20のFT制御チップ24に、システム管理割り込み(SMI)信号を通知する。或いは、システム管理割り込み(SMI)信号の発生を要求する。第2の系のフォールトトレラントサーバ20のFT制御チップ24は、クロスリンクを使用して第1の系のフォールトトレラントサーバ10のFT制御チップ14からシステム管理割り込み信号/当該信号の発生要求を受信した際、信号241として、システム管理割り込み信号を発生して、CPU21(21−a、a=1〜x)で動作しているOSの動作を一時停止する。
(5)ステップS5
第1の系のフォールトトレラントサーバ10のFT制御チップ14は、ソフトウェア(SW)制御により、第2の系のフォールトトレラントサーバ20のCPU21(21−a、a=1〜x)のコンテキストデータ(構成情報)を、FT制御チップ14の内部にある記憶領域に退避する。但し、実際には、コンテキストデータの退避先は、前述の記憶領域に限定されない。コンテキストデータの例として、レジスタ等のハードウェア(HW:Hardware)の設定情報や、CPUの状態情報、プログラム/プロセス/タスク等の実行に必要な各種情報等が考えられる。
(6)ステップS6
また、第1の系のフォールトトレラントサーバ10のFT制御チップ14は、ソフトウェア(SW)制御により、障害が発生したメモリに対応する二重化対象のメモリのデータを、別のメモリ(待機メモリ)にコピー(複写)する。ここでは、障害が発生したメモリ22−5に対応する二重化対象のメモリ12−5のデータを、メモリ12−6にコピーする。これにより、FT制御チップ14は、正常に動作している第1の系のフォールトトレラントサーバ10が、障害が発生した第2の系のフォールトトレラントサーバ20を切り離し可能な状態にする。
(7)ステップS7
また、第1の系のフォールトトレラントサーバ10のFT制御チップ14は、ソフトウェア(SW)制御により、退避したコンテキストデータを、メモリ12−5を使用しない代わりにメモリ12−6を使用する構成情報に変更する。
(8)ステップS8
また、第1の系のフォールトトレラントサーバ10のFT制御チップ14は、ソフトウェア(SW)制御により、クロスリンクを使用して、正常に動作している第1の系のフォールトトレラントサーバ10の全情報を、障害が発生した第2の系のフォールトトレラントサーバ20のFT制御チップ24にコピーする。
(9)ステップS9
そして、第1の系のフォールトトレラントサーバ10のFT制御チップ14及び第2の系のフォールトトレラントサーバ20のFT制御チップ24は、本体BIOSの同期リセット(SyncReset)コマンドを発行する。すなわち、上記の「同期リセット(SyncReset)の動作」を行う。これにより、第1の系のフォールトトレラントサーバ10のCPU11及び第2の系のフォールトトレラントサーバ20のCPU21は、同期リセット(SyncReset)により、初期化処理を開始する。
(10)ステップS10
第1の系のフォールトトレラントサーバ10のFT制御チップ14及び第2の系のフォールトトレラントサーバ20のFT制御チップ24は、同期リセット(SyncReset)による初期化処理中に退避していたコンテキストデータを、第1の系のフォールトトレラントサーバ10のCPU11及び第2の系のフォールトトレラントサーバ20のCPU21に読み込ませる。
(11)ステップS11
第1の系のフォールトトレラントサーバ10のCPU11及び第2の系のフォールトトレラントサーバ20は、読み込みによるコンテキストデータの復旧により、当該コンテキストデータの示す状態を復元し、障害メモリを切り離した状態で、システム管理割り込み(SMI)から処理に復帰し、停止していたOSの動作を再開する。なお、障害メモリを切り離した状態とは、障害が発生したメモリ22−5と、それに対応する二重化対象のメモリ12−5と、を使用しない状態である。
<ハードウェアの例示>
以下に、本発明に係るフォールトトレラントシステムを実現するための具体的なハードウェアの例について説明する。
第1の系のフォールトトレラントサーバ10や第2の系のフォールトトレラントサーバ20の例として、PC(パソコン)、アプライアンス(appliance)、シンクライアントサーバ、ワークステーション、メインフレーム、スーパーコンピュータ等の計算機を想定している。なお、実際には、計算機に限らず、中継機器や周辺機器、その他の電子機器でも良い。
また、本発明に係るフォールトトレラントシステムの実施例として、ラックマウントサーバ(rack mount server)が考えられる。この場合、第1の系のフォールトトレラントサーバ10や第2の系のフォールトトレラントサーバ20の例として、ラックマウント型のハードウェア(PC、RAIDストレージ、ファイアウォール専用機等)が考えられる。
また、第1の系のフォールトトレラントサーバ10や第2の系のフォールトトレラントサーバ20は、計算機等に搭載される拡張ボードや、物理マシン上に構築された仮想マシン(VM:Virtual Machine)でも良い。
なお、CPU11やCPU21は、プロセッサの例示に過ぎない。プロセッサの例として、CPUの他にも、ネットワークプロセッサ(NP:Network Processor)、マイクロプロセッサ(microprocessor)、マイクロコントローラ(microcontroller)、或いは、専用の機能を有する半導体集積回路(LSI:Large Scale Integration)等が考えられる。また、CPU11やCPU21は、上記のようなプロセッサを有する電子回路等でも良い。
また、メモリ12やメモリ22は、メモリの例示に過ぎない。メモリの例として、RAM(Random Access Memory)、ROM(Read Only Memory)、EEPROM(Electrically Erasable and Programmable Read Only Memory)やフラッシュメモリ等の半導体記憶装置等が考えられる。現在の市場で使用されているメモリの殆どは、DRAM(Dynamic Random Access Memory)である。DRAMは、駆動方式の違いにより、「SDRAM」(Synchronous DRAM)、「DDR SDRAM」(Double Data Rate SDRAM)、「DDR2 SDRAM」(Double Data Rate 2 SDRAM)、「DDR3 SDRAM」(Double Data Rate 3 SDRAM)等に分類することができる。また、バッファ(buffer)やレジスタ(register)等でも良い。
なお、上記のプロセッサ及び上記のメモリは、一体化していても良い。例えば、近年では、マイコン等の1チップ化が進んでいる。一例として、「CPU、メモリ、ノースブリッジ、及びBIOSを搭載したCPUモジュール」等が存在する。したがって、電子機器等に搭載される1チップマイコンが、上記のプロセッサ及び上記のメモリを備えている事例も考えられる。
また、FT制御チップ14とFT制御チップ24のクロスリンクのために使用するインターフェースの例として、リンク回線に接続されるリンクポートの他にも、ネットワーク通信に対応した基板(マザーボード、I/Oボード)やチップ等の半導体集積回路、NIC(Network Interface Card)等のネットワークアダプタや同様の拡張カード、アンテナ等の通信装置、接続口(コネクタ)等の通信ポート等が考えられる。
また、リンク回線の例として、データバス、シリアル通信回線、インターネット、LAN(Local Area Network)、無線LAN(Wireless LAN)、WAN(Wide Area Network)、バックボーン(Backbone)、ケーブルテレビ(CATV)回線、固定電話網、携帯電話網、WiMAX(IEEE 802.16a)、3G(3rd Generation)、専用線(lease line)、IrDA(Infrared Data Association)、Bluetooth(登録商標)等が考えられる。
IOコントローラ15やIOコントローラ25の例として、プロセッサとファームウェアを内蔵したモジュールを想定している。また、IOコントローラ15やIOコントローラ25は、サウスブリッジの機能を持ったチップでも良い。また、IOコントローラ15やIOコントローラ25は、独立した装置(計算機等)でも良い。
但し、実際には、これらの例に限定されない。
<本発明の特徴>
本発明は、2つの系で互いにロックステップ動作するフォールトトレラントサーバにおいて、通常は(基本的には)障害発生時に片側の系を切り離して動作を維持するが、ユーザポリシーでの選択に従って、障害が発生した箇所のみを縮退させて二重化動作に復帰することを特徴としている。
具体的には、フォールトトレラントサーバにおいて、CPUやメモリの障害発生時に、一旦障害が発生した系の切り離しを行う。
正常に動作している系は、系間の通信経路を使用して障害が発生した系の中の障害デバイスを特定する。
そして、OS動作を一時的に停止し、CPUのコンテキストデータ(レジスタ等のHW設定情報)を退避する。
そして、正常に動作している系のデバイスのうち、特定した障害デバイスに対応する二重化対象のデバイスが使用しているデータを、別のデバイス上にコピーして切り離し可能な状態をつくる。
そして、退避したコンテキストデータを、障害デバイスを使用しない構成情報に変更する。
そして、系間の通信経路を使用して正常に動作している系の全情報を、障害が発生した系にコピーする。
そして、両系のメモリ内のデータに対してはリセットをかけず、両系のCPUに対して同時に/同じタイミングでリセットをかける。
両系のCPUは同時に初期化を開始し、退避していたコンテキストデータを読み込み、情報を復帰する。
これにより、障害デバイスを使用しない構成でOS動作を復帰することになり、同期状態を維持したまま、障害発生部分(障害デバイス)を切り離して動作することが可能となる。
本発明では、障害が発生した箇所のみを縮退させて二重化動作に復帰しているので、更に別の箇所に障害が発生した時でも動作を継続できる。
<備考>
以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
10、20… フォールトトレラントサーバ
11、21… CPU
12、22… メモリ
13、23… チップセット
14、24… FT制御チップ
141、241… 信号
15、25… IOコントローラ

Claims (8)

  1. 第1の系の冗長化サーバと、
    第2の系の冗長化サーバと
    を含み、
    前記第1の系の冗長化サーバ及び前記第2の系の冗長化サーバの各々は、互いにロックステップ動作し、障害発生時に、通常は一旦障害が発生した系を切り離して動作を維持し、ユーザポリシーでの選択に従って、障害が発生した箇所を縮退させた構成で二重化動作に復帰する
    冗長化システム。
  2. 請求項1に記載の冗長化システムであって、
    前記第1の系の冗長化サーバ及び前記第2の系の冗長化サーバの各々は、
    障害発生時に、正常に動作している系である場合、系間の通信経路を使用して、障害が発生した系の中の障害デバイスを特定する手段と、
    OS動作を一時的に停止し、プロセッサのコンテキストデータを退避する手段と、
    正常に動作している系のデバイスのうち、前記障害デバイスに対応する二重化対象のデバイスが使用しているデータを、別のデバイス上にコピーする手段と、
    退避したコンテキストデータを、前記障害デバイスを使用しない構成情報に変更する手段と、
    系間の通信経路を使用して、正常に動作している系の情報を、障害が発生した系にコピーする手段と、
    両系のメモリ内のデータに対してはリセットをかけず、両系のプロセッサに対して同時にリセットをかける手段と、
    両系のプロセッサで、同時に初期化を開始し、退避していたコンテキストデータを読み込み、前記障害デバイスを使用しない構成でOS動作を復帰し、同期状態を維持したまま前記障害デバイスを切り離して動作する手段と
    を具備する
    冗長化システム。
  3. 2つの系で互いにロックステップ動作する手段と、
    障害発生時に、通常は一旦障害が発生した系を切り離して動作を維持する手段と、
    ユーザポリシーでの選択に従って、障害が発生した箇所を縮退させた構成で二重化動作に復帰する手段と
    を具備する
    冗長化サーバ。
  4. 請求項3に記載の冗長化サーバであって、
    障害発生時に、正常に動作している系である場合、系間の通信経路を使用して、障害が発生した系の中の障害デバイスを特定する手段と、
    OS動作を一時的に停止し、プロセッサのコンテキストデータを退避する手段と、
    正常に動作している系のデバイスのうち、前記障害デバイスに対応する二重化対象のデバイスが使用しているデータを、別のデバイス上にコピーする手段と、
    退避したコンテキストデータを、前記障害デバイスを使用しない構成情報に変更する手段と、
    系間の通信経路を使用して、正常に動作している系の情報を、障害が発生した系にコピーする手段と、
    両系のメモリ内のデータに対してはリセットをかけず、両系のプロセッサに対して同時にリセットをかける手段と、
    両系のプロセッサで、同時に初期化を開始し、退避していたコンテキストデータを読み込み、前記障害デバイスを使用しない構成でOS動作を復帰し、同期状態を維持したまま前記障害デバイスを切り離して動作する手段と
    を更に具備する
    冗長化サーバ。
  5. 冗長化サーバが、
    2つの系で互いにロックステップ動作することと、
    障害発生時に、通常は一旦障害が発生した系を切り離して動作を維持することと、
    ユーザポリシーでの選択に従って、障害が発生した箇所を縮退させた構成で二重化動作に復帰することと
    を含む
    冗長化システムの可用性向上方法。
  6. 請求項5に記載の冗長化システムの可用性向上方法であって、
    前記冗長化サーバが、
    障害発生時に、正常に動作している系である場合、系間の通信経路を使用して、障害が発生した系の中の障害デバイスを特定することと、
    OS動作を一時的に停止し、プロセッサのコンテキストデータを退避することと、
    正常に動作している系のデバイスのうち、前記障害デバイスに対応する二重化対象のデバイスが使用しているデータを、別のデバイス上にコピーすることと、
    退避したコンテキストデータを、前記障害デバイスを使用しない構成情報に変更することと、
    系間の通信経路を使用して、正常に動作している系の情報を、障害が発生した系にコピーすることと、
    両系のメモリ内のデータに対してはリセットをかけず、両系のプロセッサに対して同時にリセットをかけることと、
    両系のプロセッサで、同時に初期化を開始し、退避していたコンテキストデータを読み込み、前記障害デバイスを使用しない構成でOS動作を復帰し、同期状態を維持したまま前記障害デバイスを切り離して動作することと
    を更に含む
    冗長化システムの可用性向上方法。
  7. 冗長化サーバ用のプログラムであって、
    2つの系で互いにロックステップ動作するステップと、
    障害発生時に、通常は一旦障害が発生した系を切り離して動作を維持するステップと、
    ユーザポリシーでの選択に従って、障害が発生した箇所を縮退させた構成で二重化動作に復帰するステップと
    を冗長化サーバに実行させるための
    プログラム。
  8. 請求項7に記載のプログラムであって、
    障害発生時に、正常に動作している系である場合、系間の通信経路を使用して、障害が発生した系の中の障害デバイスを特定するステップと、
    OS動作を一時的に停止し、プロセッサのコンテキストデータを退避するステップと、
    正常に動作している系のデバイスのうち、前記障害デバイスに対応する二重化対象のデバイスが使用しているデータを、別のデバイス上にコピーするステップと、
    退避したコンテキストデータを、前記障害デバイスを使用しない構成情報に変更するステップと、
    系間の通信経路を使用して、正常に動作している系の情報を、障害が発生した系にコピーするステップと、
    両系のメモリ内のデータに対してはリセットをかけず、両系のプロセッサに対して同時にリセットをかけるステップと、
    両系のプロセッサで、同時に初期化を開始し、退避していたコンテキストデータを読み込み、前記障害デバイスを使用しない構成でOS動作を復帰し、同期状態を維持したまま前記障害デバイスを切り離して動作するステップと
    を更に冗長化サーバに実行させるための
    プログラム。
JP2012076294A 2012-03-29 2012-03-29 冗長化システム、冗長化方法、冗長化システムの可用性向上方法、及びプログラム Active JP6098778B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012076294A JP6098778B2 (ja) 2012-03-29 2012-03-29 冗長化システム、冗長化方法、冗長化システムの可用性向上方法、及びプログラム
US13/828,751 US9195553B2 (en) 2012-03-29 2013-03-14 Redundant system control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012076294A JP6098778B2 (ja) 2012-03-29 2012-03-29 冗長化システム、冗長化方法、冗長化システムの可用性向上方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2013206278A true JP2013206278A (ja) 2013-10-07
JP6098778B2 JP6098778B2 (ja) 2017-03-22

Family

ID=49236727

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012076294A Active JP6098778B2 (ja) 2012-03-29 2012-03-29 冗長化システム、冗長化方法、冗長化システムの可用性向上方法、及びプログラム

Country Status (2)

Country Link
US (1) US9195553B2 (ja)
JP (1) JP6098778B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015194847A (ja) * 2014-03-31 2015-11-05 日本電気株式会社 フォールトトレラントサーバ、同期化方法、及びプログラム
JP2016031651A (ja) * 2014-07-29 2016-03-07 富士通株式会社 情報処理システム及び方法
JP2016035626A (ja) * 2014-08-01 2016-03-17 ルネサスエレクトロニクス株式会社 半導体装置
JP2019159609A (ja) * 2018-03-09 2019-09-19 Necプラットフォームズ株式会社 基盤装置、情報処理システム、制御方法及び情報処理システムの構成方法。
JP2021184131A (ja) * 2020-05-21 2021-12-02 Necプラットフォームズ株式会社 フォールトトレラントシステム、フォールトトレラント制御方法、及び、フォールトトレラント制御プログラム

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9235485B2 (en) * 2013-07-22 2016-01-12 International Business Machines Corporation Moving objects in a primary computer based on memory errors in a secondary computer
JP6083480B1 (ja) * 2016-02-18 2017-02-22 日本電気株式会社 監視装置、フォールトトレラントシステムおよび方法
JP6880795B2 (ja) * 2017-02-08 2021-06-02 オムロン株式会社 制御装置およびその制御方法
US10606764B1 (en) * 2017-10-02 2020-03-31 Northrop Grumman Systems Corporation Fault-tolerant embedded root of trust using lockstep processor cores on an FPGA
CN108832661A (zh) * 2018-07-13 2018-11-16 华南师范大学 一种多冗余型的光伏并网发电系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11134210A (ja) * 1997-10-29 1999-05-21 Nec Corp システムの冗長化方法
JPH11134211A (ja) * 1997-10-30 1999-05-21 Nec Corp 二重化コンピュータシステムおよびその運用方法
US6279119B1 (en) * 1997-11-14 2001-08-21 Marathon Technologies Corporation Fault resilient/fault tolerant computing
JP2004046599A (ja) * 2002-07-12 2004-02-12 Nec Corp フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム
JP2006178659A (ja) * 2004-12-21 2006-07-06 Nec Corp フォールト・トレラント・コンピュータシステムと、そのための割り込み制御方法
JP2008046942A (ja) * 2006-08-18 2008-02-28 Nec Corp フォールトトレラントコンピュータ、そのトランザクション同期制御方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6928583B2 (en) * 2001-04-11 2005-08-09 Stratus Technologies Bermuda Ltd. Apparatus and method for two computing elements in a fault-tolerant server to execute instructions in lockstep
US8117495B2 (en) * 2007-11-26 2012-02-14 Stratus Technologies Bermuda Ltd Systems and methods of high availability cluster environment failover protection
US8635492B2 (en) * 2011-02-15 2014-01-21 International Business Machines Corporation State recovery and lockstep execution restart in a system with multiprocessor pairing

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11134210A (ja) * 1997-10-29 1999-05-21 Nec Corp システムの冗長化方法
JPH11134211A (ja) * 1997-10-30 1999-05-21 Nec Corp 二重化コンピュータシステムおよびその運用方法
US6279119B1 (en) * 1997-11-14 2001-08-21 Marathon Technologies Corporation Fault resilient/fault tolerant computing
JP2004046599A (ja) * 2002-07-12 2004-02-12 Nec Corp フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム
JP2006178659A (ja) * 2004-12-21 2006-07-06 Nec Corp フォールト・トレラント・コンピュータシステムと、そのための割り込み制御方法
JP2008046942A (ja) * 2006-08-18 2008-02-28 Nec Corp フォールトトレラントコンピュータ、そのトランザクション同期制御方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015194847A (ja) * 2014-03-31 2015-11-05 日本電気株式会社 フォールトトレラントサーバ、同期化方法、及びプログラム
JP2016031651A (ja) * 2014-07-29 2016-03-07 富士通株式会社 情報処理システム及び方法
JP2016035626A (ja) * 2014-08-01 2016-03-17 ルネサスエレクトロニクス株式会社 半導体装置
JP2019159609A (ja) * 2018-03-09 2019-09-19 Necプラットフォームズ株式会社 基盤装置、情報処理システム、制御方法及び情報処理システムの構成方法。
JP7120599B2 (ja) 2018-03-09 2022-08-17 Necプラットフォームズ株式会社 情報処理システム及び制御方法
JP2021184131A (ja) * 2020-05-21 2021-12-02 Necプラットフォームズ株式会社 フォールトトレラントシステム、フォールトトレラント制御方法、及び、フォールトトレラント制御プログラム

Also Published As

Publication number Publication date
JP6098778B2 (ja) 2017-03-22
US20130262917A1 (en) 2013-10-03
US9195553B2 (en) 2015-11-24

Similar Documents

Publication Publication Date Title
JP6098778B2 (ja) 冗長化システム、冗長化方法、冗長化システムの可用性向上方法、及びプログラム
CN106776159B (zh) 具有故障转移的快速外围元件互连网络系统与操作方法
EP1078317B1 (en) Method for switching between multiple system processors
US8990617B2 (en) Fault-tolerant computer system, fault-tolerant computer system control method and recording medium storing control program for fault-tolerant computer system
EP2175371B1 (en) Synchronization control apparatuses, information processing apparatuses, and synchronization management methods
JP2006178616A (ja) フォールトトレラントシステム、これで用いる制御装置、動作方法、及び動作プログラム
US6161197A (en) Method and system for controlling a bus with multiple system hosts
CA2333220A1 (en) Method for switching between multiple system hosts
US11573737B2 (en) Method and apparatus for performing disk management of all flash array server
CA2530013A1 (en) A fault tolerant computer system and a synchronization method for the same
US11409471B2 (en) Method and apparatus for performing data access management of all flash array server
JP4182948B2 (ja) フォールト・トレラント・コンピュータシステムと、そのための割り込み制御方法
JP5287974B2 (ja) 演算処理システム、再同期方法、およびファームプログラム
JPH07182189A (ja) 計算機システム及びプロセッサチップ及び障害復旧方法
JP4165499B2 (ja) コンピュータシステム及びそれを用いたフォールトトレラントシステム並びにその動作制御方法
JP5733384B2 (ja) 情報処理装置
JP2012014239A (ja) フォールトトレラントの計算機システム、複数の物理サーバとストレージ装置とに接続されるスイッチ装置、及び、サーバ同期制御方法
JP7056057B2 (ja) 情報処理装置、情報処理方法、情報処理システム、及び、コンピュータ・プログラム
JP5970846B2 (ja) 計算機システム及び計算機システムの制御方法
US11216348B2 (en) All flash array server and control method thereof
JP7209784B1 (ja) 冗長化システム及び冗長化方法
CN112486868B (zh) 基于cpld存储双控同步系统、方法、设备及存储介质
JP6449671B2 (ja) コアi/oフェールオーバー制御システムおよびコアi/oフェールオーバー制御方法
CN113342260A (zh) 伺服器与应用于伺服器的控制方法
JPH0816533A (ja) フォールトトレラントコンピュータ及びそのプロセッサモジュールとオンライン拡張方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150212

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160308

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160506

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161102

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161215

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170125

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170207

R150 Certificate of patent or registration of utility model

Ref document number: 6098778

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150