JP5556086B2 - 二重化システム、及び、二重化方法 - Google Patents

二重化システム、及び、二重化方法 Download PDF

Info

Publication number
JP5556086B2
JP5556086B2 JP2009194053A JP2009194053A JP5556086B2 JP 5556086 B2 JP5556086 B2 JP 5556086B2 JP 2009194053 A JP2009194053 A JP 2009194053A JP 2009194053 A JP2009194053 A JP 2009194053A JP 5556086 B2 JP5556086 B2 JP 5556086B2
Authority
JP
Japan
Prior art keywords
data
memory
dma
cpu
data link
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009194053A
Other languages
English (en)
Other versions
JP2011048441A (ja
Inventor
裕一 両角
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 JP2009194053A priority Critical patent/JP5556086B2/ja
Publication of JP2011048441A publication Critical patent/JP2011048441A/ja
Application granted granted Critical
Publication of JP5556086B2 publication Critical patent/JP5556086B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Hardware Redundancy (AREA)

Description

本発明は、二重化同期動作前と二重化同期動作期間中のいずれにおいてもデータリンクパスの正常動作確認を容易に行うために好適な二重化システム、及び、二重化方法に関する。
近年、コンピュータシステムの多機能化、複雑化、大規模化が進んでいる。そのため、障害発生時においても、継続して動作させることが要求されている。そのため、多くのコンピュータシステムでは、系を二重化することにより、仮に障害が発生したとしても被害を最小限に止めたりあるいは障害を起こりにくくしたりするためのフォールトトレランス技術が取り入れられている。
フォールトトレランス技術のひとつに、2つの系でクロックを同期させて全く同一の動作を行う二重化システムがある。二重化システムでは、一方のサーバにハードウェア障害が発生したりソフトウェアエラーが発生したりして同一動作性が崩れ、同期外れが発生することがある。
例えば特許文献1には、同期外れが検出されたときに、再同期化処理を開始する前に同期外れの要因を特定するフォールトトレラントコンピュータが開示されている。また、例えば特許文献2には、記憶装置への記憶内容の複写を高速に行うシステムが開示されている。
特開2006−178636号公報 特開平05−265789号公報
しかし、従来技術では、二重化同期動作前および二重化同期動作期間中に、系間のデータ転送に使用するデータリンクパスが正常に動作しているかどうかセルフチェックをする手段がないという問題があった。特に、二重化同期動作期間中では、セルフチェックのためにメインメモリへ書き込むことができないという制限や、両系とも同期動作しているために片方の系のみ使用することができないという制限があるため、データリンクパスのセルフチェックができないという問題があった。
本発明はこのような課題を解決するものであり、二重化同期動作前と二重化同期動作期間中のいずれにおいてもデータリンクパスの正常動作確認を容易に行うために好適な二重化システム、及び、二重化方法を提供することを目的とする。
以上の目的を達成するため、本発明の第1の観点に係る二重化システムは、2つの系(以下、それぞれ「自系」、「他系」という。)が複数のデータリンクパスで接続され二重化して構成される二重化システムであって、
前記2つの系のそれぞれは、
CPU(Central Processing Unit)と、
データを記憶するメモリと、
自系の前記メモリに記憶されるデータをDMA(Direct Memory Access)転送により自系又は他系に入力するDMAコントローラと、
自系の前記メモリに記憶される第1のデータと、他系の前記メモリから他系の前記DMAコントローラ又は自系の前記DMAコントローラによりDMA転送される第2のデータと、を取得し、当該取得した第1のデータと当該取得した第2のデータとが一致するか否かを判別し、当該第1のデータと当該第2のデータとが一致しない場合、自系の前記CPUにエラーを通知するコンパレータと、
を備え、
前記2つの系が二重化を開始する前、
(a)自系の前記DMAコントローラが、自系の前記メモリに記憶されているデータを当該第1のデータとして自系の前記コンパレータにDMA転送するとともに、当該第1のデータを他系の前記メモリに格納し、
(b)自系の前記DMAコントローラが、前記複数のデータリンクパスのうちいずれか1つのデータリンクパスを経由して、他系の前記メモリに格納された当該第1のデータを当該第2のデータとして自系の前記コンパレータにDMA転送する、
ことを特徴とする。
本発明の第2の観点に係る二重化システムは、2つの系(以下、それぞれ「自系」、「他系」という。)が複数のデータリンクパスで接続され二重化して構成される二重化システムであって、
前記2つの系のそれぞれは、
CPU(Central Processing Unit)と、
データを記憶するメモリと、
自系の前記メモリに記憶されるデータをDMA(Direct Memory Access)転送により自系又は他系に入力するDMAコントローラと、
自系の前記メモリに記憶される第1のデータと、他系の前記メモリに記憶される第2のデータと、を取得し、当該取得した第1のデータと当該取得した第2のデータとが一致するか否かを判別し、当該第1のデータと当該第2のデータとが一致しない場合、自系の前記CPUにエラーを通知するコンパレータと、
を備え、
前記2つの系が二重化を開始した後、他系の前記DMAコントローラが、
(x)他系の前記メモリに記憶されている第1のデータを他系の前記コンパレータにDMA転送し、
(y)前記複数のデータリンクパスのうちいずれか1つのデータリンクパスを経由して、自系の前記メモリに記憶されている第2のデータを他系の前記コンパレータにDMA転送する、
ことを特徴とする。
本発明の第3の観点に係る二重化方法は、2つの系(以下、それぞれ「自系」、「他系」という。)が複数のデータリンクパスで接続され二重化して構成される二重化システムにて実行される二重化方法であって、
前記2つの系のそれぞれが、データを記憶するメモリを有し、
前記2つの系のそれぞれにおいて、
自系の前記メモリに記憶されるデータをDMA(Direct Memory Access)転送により自系又は他系に入力する入力ステップと、
自系の前記メモリに記憶される第1のデータと、他系の前記メモリから自系又は他系にDMA転送される第2のデータと、を取得し、当該取得した第1のデータと当該取得した第2のデータとが一致するか否かを判別し、当該第1のデータと当該第2のデータとが一致しない場合、エラーを通知する通知ステップと、
を備え、
前記2つの系が二重化を開始する前、
(a)自系が、自系の前記メモリに記憶されているデータを当該第1のデータとして自系にDMA転送するとともに、当該第1のデータを他系の前記メモリに格納し、
(b)自系が、前記複数のデータリンクパスのうちいずれか1つのデータリンクパスを経由して、他系の前記メモリに格納された当該第1のデータを当該第2のデータとして自系にDMA転送する、
ことを特徴とする。
本発明の第4の観点に係る二重化方法は、2つの系(以下、それぞれ「自系」、「他系」という。)が複数のデータリンクパスで接続され二重化して構成される二重化システムにて実行される二重化方法であって、
前記2つの系のそれぞれが、データを記憶するメモリを有し、
前記2つの系のそれぞれにおいて、
自系の前記メモリに記憶されるデータをDMA(Direct Memory Access)転送により自系又は他系に入力する入力ステップと、
自系の前記メモリに記憶される第1のデータと、他系の前記メモリに記憶される第2のデータと、を取得し、当該取得した第1のデータと当該取得した第2のデータとが一致するか否かを判別し、当該第1のデータと当該第2のデータとが一致しない場合、自系にエラーを通知する通知ステップと、
を備え、
前記2つの系が二重化を開始した後、他系が、
(x)他系の前記メモリに記憶されている第1のデータを他系内でDMA転送し、
(y)前記複数のデータリンクパスのうちいずれか1つのデータリンクパスを経由して、自系の前記メモリに記憶されている第2のデータを自系から他系にDMA転送する、
ことを特徴とする。
本発明によれば、二重化同期動作前と二重化同期動作期間中のいずれにおいてもデータリンクパスの正常動作確認を容易に行うために好適な二重化システム、及び、二重化方法を提供することができる。
二重化システムの構成を説明するための図である。 二重化同期動作前におけるデータリンクパス14B,15Aの正常確認処理を示すフローチャートである。 データリンクパス14B,15Aの正常確認処理を説明するための図である。 データリンクパス15Bの正常確認処理を説明するための図である。 データリンクパス14Aの正常確認処理を説明するための図である。 二重化同期動作期間中におけるデータリンクパス15Aの正常確認処理を示すフローチャートである。 データリンクパス15Aの正常確認処理を説明するための図である。 データリンクパス15Bの正常確認処理を説明するための図である。 データリンクパス14Aの正常確認処理を説明するための図である。 データリンクパス14Bの正常確認処理を説明するための図である。
以下、本発明の実施形態について説明する。
図1は、本実施形態に係る二重化システムの構成を示す図である。二重化システムは2つのシステム(それぞれ「系」ともいう。)1A,1Bを二重化した構成である。以下、一方のシステム1Aを“A系システム”と呼び、他方のシステム1Bを“B系システム”と呼ぶ。
A系システム1Aは、制御LSI(Large Scale Integrated)2A、CPU(Central Processing Unit)3A、メインメモリ4Aを備える。同様に、B系システム1Bは、制御LSI2B、CPU3B、メインメモリ4Bを備える。A系システム1AとB系システム1Bは同等のハードウェア構成を有する。
A系システム1AとB系システム1Bは、データリンクパス14A,14B,15A,15Bで接続されている。A系システム1AとB系システム1Bは互いに同期信号を送受信して同一の動作を行っている。
データリンクパス14A,14B,15A,15Bは、A系システム1Aの制御LSI2AとB系システム1Bの制御LSI2Bの間のデータ転送に用いられる。A系システム1A内の内部クロックとは非同期に動作するシリアルリンクが一般に使用される。各データリンクパスのアクセス方向は次の通りである。
データリンクパス14A:A系システム→B系システム方向のインバウンド(I/O→CPU・メモリ方向)用データリンクパス。
データリンクパス15A:A系システム→B系システム方向のアウトバウンド(CPU・メモリ→I/O方向)用データリンクパス。
データリンクパス14B:B系システム→A系システム方向のインバウンド(I/O→CPU・メモリ方向)用データリンクパス。
データリンクパス15B:B系システム→A系システム方向のアウトバウンド(CPU・メモリ→I/O方向)用データリンクパス。
A系システム1Aの制御LSI2Aは、CPUコントローラ5A、メモリコントローラ6A、ルータ7A、I/O(Input/Output)コンパレータ8A、I/Oコントローラ9A、DMA(Direct Memory Access)エンジン(「DMAコントローラ」とも言う。)10A、インバウンド(以下「IB」(In Bound)という。)リンクコントローラ11A、アウトバンド(以下「OB」(Out Bound)という。)リンクコントローラ12A、テストコンパレータ13Aを備える。
同様に、B系システム1Bの制御LSI2Bは、CPUコントローラ5B、メモリコントローラ6B、ルータ7B、I/Oコンパレータ8B、I/Oコントローラ9B、DMAエンジン10B、IBリンクコントローラ11B、OBリンクコントローラ12B、テストコンパレータ13Bを備える。
次に、A系システム1AとB系システム1Bの上記各構成要素の動作について説明する。以下、A系システム1A内の構成要素の動作について説明するが、B系システム1B内の構成要素も同様の動作を行う。A系システム1Aを「自系」、B系システム1Bを「他系」と呼ぶこともある。
CPU3Aは、A系システム1A全体を制御する。メインメモリ4Aは、RAM(Random Access Memory)、ROM(Read Only Memory)、ハードディスク装置などから構成される。CPU3Aは、メインメモリ4Aに任意のデータを随時書き込み可能であり、また、メインメモリ4Aから任意のデータを随時読み出し可能である。
CPUコントローラ5Aは、制御LSI2AとCPU3Aとの間のCPUバスの動作状態を監視し、その監視結果を示すCPUバス動作情報を他系のCPUコントローラ5Bに送信する。また、CPUコントローラ5Aは、自系のCPUバス動作情報と他系のCPUバス動作情報とを比較し、一致しない場合、同期外れが発生したことを検出する。そして、CPUバス動作情報の不一致を検出すると、CPUコントローラ5Aは、CPUバス動作情報の不一致を示す信号をルータ7A経由でDMAエンジン10Aに通知する。なお、CPUコントローラ5Aは、CPUバスが動作していない状態も含め、常にCPUバス動作情報を送信している。また、CPUバス自体のバンド幅が大きいため、CPUバス動作情報は、CPUコントローラ5AによりCRC(Cyclic Redundancy Check)コード変換が施されてデータ量が削減された情報となっている。
また、CPUコントローラ5Aは、メインメモリ4Aのアドレス/ページを指定してメモリコントローラ6Aにメインメモリ4Aへの書き込みを指示する。この書き込み指示は、DMAエンジン10Aにも通知される。また、CPUコントローラ5Aは、DMAエンジン10Aからの指示を受けた場合等において、メインメモリ4Aのアドレス/ページを指定してメモリコントローラ6Aにメインメモリ4Aへの読み出しを指示する。
メモリコントローラ6Aは、CPUコントローラ5Aからの書き込み指示、又は、読み出し指示を受けて、メインメモリ4Aの該当するアドレス/ページへの書き込み、又は、メインメモリ4Aの該当するアドレス/ページからの読み出しを行う。
ルータ7Aは、各構成要素の間でデータを中継する。ルータ7Aは、ターゲットID(相手先を示す識別情報)によりコマンドやデータをフォワーディングする(送信する)。
I/Oコンパレータ8Aは、運用動作時に自系のアウトバウンドアクセスと他系からのアウトバウンドアクセスを比較する。
I/Oコンパレータ8Aは、自系のCPU3Aから自系のI/Oコントローラ9Aへのアクセス内容と、他系のCPU3Bから自系のI/Oコントローラ9Aへのアクセス内容とを比較する。両者の不一致を検出すると、I/Oコンパレータ8Aは、その旨を示す信号をルータ7A経由でCPU3Aに割り込みで通知する。このとき、自系のCPU3Aからのアクセスが内部パスのみを介して行われるのに対して、他系のCPU3Bからのアクセスは外部パスを介して行われるため、他系のCPU3Bからのアクセスは到着時間が遅れる。そのため、I/Oコンパレータ8Aの入力段にはバッファ(図示せず)が設けられており、自系のCPU3Aからのアクセスデータをバッファで一時的に格納してからI/Oコンパレータ8Aに出力する。このようにして、アクセスデータの順序の入れ替えを調節することができるとともに、両系からのアクセスが到着するまでアクセス不一致を判定せずに待機することができる。
また、I/Oコンパレータ8Aは、バッファの使用容量が所定値を超えたことを検出すると、その旨を示す信号をルータ7A経由でCPU3Aに割り込みで通知する。
I/Oコントローラ9Aは、制御LSI2AとI/Oデバイス(図示せず)との間の接続バスを制御する。I/Oコントローラ9Aは、自系のCPU3Aと他系のCPU3Bの双方からアクセスを受ける。この2つのアクセスは、A系システム1AとB系システム1Bが同期動作中である場合、同一のアクセスとなる。また、I/Oコントローラ9Aは、自系のCPU3Aと他系のCPU3Bの双方へアクセスする。
DMAエンジン10Aは、自系のCPU3Aから入力されるコマンドに従い、メインメモリ4Aに予め記憶されるテストデータを、他系のメインメモリ4B、又は、自系のテストコンパレータ13A、又は、他系のテストコンパレータ13BにDMA転送する。また、DMAエンジン10Aは、他系のCPU3Bから入力されるコマンドに従い、メインメモリ4Aに予め記憶されるテストデータを他系のメインメモリ4BにDMA転送する。DMAエンジン10Aは、CPU3A又はCPU3Bから入力されるコマンドに従い、使用するデータリンクパスを変更する。
DMAエンジン10Aは、CPUコントローラ5Aからメインメモリ4Aへの書き込み指示に基づいて、データが書き込まれたメインメモリ4Aのアドレス/ページを示す情報を、メモリアクセストレースメモリ(図示せず)にFIFO(First In First Out)形式で格納する。この動作は、CPUコントローラ5AからCPUバス不一致を示す信号が通知されてから開始される。なお、DMAエンジン10AからCPUコントローラ5Aへの指示によりメインメモリ4Aへの書き込みが行われる場合もあるが、この場合にはDMAエンジン10Aはメインメモリ4Aのトレースを行わない。CPUコントローラ5Aにおいて、メインメモリ4Aへの書き込み指示に所定のマークを付ける等の処理を行うことが望ましい。
DMAエンジン10Aは、メモリアクセストレースメモリの使用容量が所定値を超えたことを検出すると、その旨を示す信号をルータ7A経由で自系のCPU3Aに割り込みで通知するとともに、データリンクパス14A経由で他系のCPU3Bに割り込みで通知する。
DMAエンジン10Aは、メモリアクセストレースメモリに格納されているアドレス/ページ情報に基づくメインメモリ4Aの該当するアドレス/ページのデータを自系のメインメモリ4A及び他系のメインメモリ4Bの双方にDMA転送する。この動作はCPU3Aにより実行されるソフトウェアプログラムによる指示を受けて開始される。
IBリンクコントローラ11Aは、他系と接続しているデータリンクパス14A,15Bを制御する。
OBリンクコントローラ12Aは、同様に他系と接続しているデータリンクパス14B,15Aを制御する。
テストコンパレータ13Aは、自系のメインメモリ4Aに記憶され、CPU3Aの制御により入力されるテストデータと、他系のメインメモリ4Bに記憶され、CPU3Bの制御により入力されるテストデータと、を比較し、これら2つのテストデータが一致しない場合、自系のCPU3Aにエラー(コンペアエラー)を通知する。
次に、上記構成を有するA系システム1AとB系システム1Bの二重化同期動作前に行われる処理について説明する。
(データリンクパス14B,15Aの正常確認処理;二重化同期動作前)
まず、二重化システムの二重化同期動作前におけるデータリンクパス14B,15Aの正常確認処理について、図2と図3を用いて説明する。
A系システム1AのCPU3Aは、自系のメインメモリ4Aに予め格納されるテストデータを、自系のテストコンパレータ13Aと他系のメインメモリ4Bに書き込むように、自系のDMAエンジン10Aに指示する。
A系システム1AのCPU3Aは、自系のDMAエンジン10Aを制御して、自系のメインメモリ4Aに予め格納されるテストデータを、A系システム1Aのテストコンパレータ13Aに書き込む(図2のステップS11、図3の矢印<1>)。
また、CPU3Aは、自系のDMAエンジン10Aと他系のDMAエンジン10Bを制御して、自系のメインメモリ4Aに予め格納されるテストデータを、OBリンクコントローラ12A→データリンクパス15A→他系のIBリンクコントローラ11B→他系のDMAエンジン10B→他系のメインメモリ4Bという経路で、B系システム1Bのメインメモリ4Bに書き込む(図2のステップS12、図3の矢印<2>)。
次に、CPU3Aは、自系のDMAエンジン10Aと他系のDMAエンジン10Bを制御して、他系のメインメモリ4Bに書き込んだテストデータを、他系のDMAエンジン10B→他系のIBリンクコントローラ11B→データリンクパス14B→自系のOBリンクコントローラ12A→自系のテストコンパレータ13Aという経路で、A系システム1Aのテストコンパレータ13Aに書き込む(図2のステップS13、図3の矢印<3>)。
そして、テストコンパレータ13Aは、ステップS11で書き込まれたテストデータと、ステップS13で書き込まれたテストデータとが一致するか否かを判別する(ステップS14)。
2つのテストデータが一致すると判別した場合(ステップS14;YES)、テストコンパレータ13Aは、データリンクパス14B,15Aが正常であると判断し、その旨をCPU3Aに通知する(ステップS15)。
2つのテストデータが一致しないと判別した場合(ステップS14;NO)、テストコンパレータ13Aは、データリンクパス14B,15Aのうち少なくともどちらか一方が正常ではないと判断し、その旨(コンペアエラー)をCPU3Aに通知する(ステップS16)。
このように、CPU3Aは、二重化同期動作前に、データリンクパス14B,15Aが正常に機能しているかどうかをセルフチェックにより把握することができる。
(データリンクパス15Bの正常確認処理;二重化同期動作前)
次に、二重化システムの二重化同期動作前におけるデータリンクパス15Bの正常確認処理について、図4を用いて説明する。
A系システム1AのCPU3Aは、上記ステップS11,S12と同様の処理を行い、自系のメインメモリ4Aに予め格納されるテストデータを、自系のテストコンパレータ13Aと他系のメインメモリ4Bに書き込む。
上記ステップS13において、CPU3Aは、自系のDMAエンジン10Aと他系のDMAエンジン10Bを制御して、他系のメインメモリ4Bに書き込んだテストデータを、他系のOBリンクコントローラ12B→データリンクパス15B→自系のIBリンクコントローラ11A→自系のDMAエンジン10A→自系のテストコンパレータ13Aという経路で、A系システム1Aのテストコンパレータ13Aに書き込む(図4の矢印<4>)。
上記ステップS14において、テストコンパレータ13Aは、ステップS11で書き込まれたテストデータと、図4の矢印<4>の経路で書き込まれたテストデータとが一致するか否かを判別する。
2つのテストデータが一致すると判別した場合、テストコンパレータ13Aは、データリンクパス15Bが正常であると判断し、その旨をCPU3Aに通知する。
2つのテストデータが一致しないと判別した場合、テストコンパレータ13Aは、データリンクパス15Bが正常ではないと判断し、その旨(コンペアエラー)をCPU3Aに通知する。
このように、CPU3Aは、二重化同期動作前に、データリンクパス15Bが正常に機能しているかどうかをセルフチェックにより把握することができる。
(データリンクパス14Aの正常確認処理;二重化同期動作前)
次に、二重化システムの二重化同期動作前におけるデータリンクパス14Aの正常確認処理について、図5を用いて説明する。
A系システム1AのCPU3Aは、上記ステップS11と同様、自系のDMAエンジン10Aを制御して、自系のメインメモリ4Aに予め格納されるテストデータを、A系システム1Aのテストコンパレータ13Aに書き込む(図5の矢印<5>)。
また、CPU3Aは、自系のDMAエンジン10Aと他系のDMAエンジン10Bを制御して、自系のメインメモリ4Aに予め格納されるテストデータを、IBリンクコントローラ11A→データリンクパス14A→他系のOBリンクコントローラ12B→他系のメインメモリ4Bという経路で、B系システム1Bのメインメモリ4Bに書き込む(図5の矢印<6>)。
次に、CPU3Aは、自系のDMAエンジン10Aと他系のDMAエンジン10Bを制御して、他系のメインメモリ4Bに書き込んだテストデータを、他系のOBリンクコントローラ12B→データリンクパス15B→自系のIBリンクコントローラ11A→自系のDMAエンジン10A→自系のテストコンパレータ13Aという経路で、A系システム1Aのテストコンパレータ13Aに書き込む(図5の矢印<7>)。
そして、テストコンパレータ13Aは、矢印<5>の経路で書き込まれたテストデータと、矢印<7>の経路で書き込まれたテストデータとが一致するか否かを判別する。
2つのテストデータが一致すると判別した場合、テストコンパレータ13Aは、データリンクパス14Aが正常であると判断し、その旨をCPU3Aに通知する。
2つのテストデータが一致しないと判別した場合、テストコンパレータ13Aは、データリンクパス14Aが正常ではないと判断し、その旨(コンペアエラー)をCPU3Aに通知する。
このように、CPU3Aは、二重化同期動作前に、データリンクパス14Aが正常に機能しているかどうかをセルフチェックにより把握することができる。
なお、CPU3Aは、データリンクパス15Bの正常確認処理を行ってデータリンクパス15Bが正常であると判断された後に実行することにより、本正常確認処理によってデータリンクパス14Aが正常に機能しているかどうかを判断することができる。
次に、上記構成を有するA系システム1AとB系システム1Bの二重化同期動作期間中に行われる処理について説明する。
(データリンクパス15Aの正常確認処理;二重化同期動作期間中)
まず、二重化システムの二重化同期動作期間中におけるデータリンクパス15Aの正常確認処理について、図6と図7を用いて説明する。
A系システム1AのCPU3Aは、自系のDMAエンジン10Aを制御して、自系のメインメモリ4Aに予め格納されているテストデータを、自系のOBリンクコントローラ12A→データリンクパス15A→他系のIBリンクコントローラ11B→他系のDMAエンジン10B→他系のテストコンパレータ13Bという経路で、B系システム1Bのテストコンパレータ13Bに書き込む(図6のステップS21、図7の矢印<8>)。
また、CPU3Aは、他系のDMAエンジン10Bを制御して、他系のメインメモリ4Bに予め格納されているテストデータを、B系システム1Bのテストコンパレータ13Bに書き込む(図6のステップS22、図7の矢印<9>)。
そして、テストコンパレータ13Bは、ステップS21で書き込まれたテストデータと、ステップS22で書き込まれたテストデータとが一致するか否かを判別する(ステップS23)。
2つのテストデータが一致すると判別した場合(ステップS23;YES)、テストコンパレータ13Bは、データリンクパス15Aが正常であると判断し、その旨をCPU3Aに通知する。
2つのテストデータが一致しないと判別した場合(ステップS23;NO)、テストコンパレータ13Bは、データリンクパス15Aが正常ではないと判断し、その旨(コンペアエラー)をCPU3Aに通知する。
このように、CPU3Aは、二重化同期動作期間中に、データリンクパス15Aが正常に機能しているかどうかをセルフチェックにより把握することができる。
(データリンクパス15Bの正常確認処理;二重化同期動作期間中)
次に、二重化システムの二重化同期動作期間中におけるデータリンクパス15Bの正常確認処理について、図8を用いて説明する。
B系システム1BのCPU3Bは、他系のDMAエンジン10Bを制御して、他系のメインメモリ4Bに予め格納されているテストデータを、他系のOBリンクコントローラ12B→データリンクパス15B→自系のIBリンクコントローラ11A→自系のDMAエンジン10A→自系のテストコンパレータ13Aという経路で、A系システム1Aのテストコンパレータ13Aに書き込む(図8の矢印<10>)。
また、CPU3Bは、自系のDMAエンジン10Aを制御して、自系のメインメモリ4Aに予め格納されているテストデータを、A系システム1Aのテストコンパレータ13Aに書き込む(図8の矢印<11>)。
そして、テストコンパレータ13Aは、図8の矢印<10>の経路で書き込まれたテストデータと、図8の矢印<11>の経路で書き込まれたテストデータとが一致するか否かを判別する。
2つのテストデータが一致すると判別した場合、テストコンパレータ13Aは、データリンクパス15Bが正常であると判断し、その旨をCPU3Bに通知する。
2つのテストデータが一致しないと判別した場合、テストコンパレータ13Aは、データリンクパス15Bが正常ではないと判断し、その旨(コンペアエラー)をCPU3Bに通知する。
このように、CPU3Bは、二重化同期動作期間中に、データリンクパス15Bが正常に機能しているかどうかをセルフチェックにより把握することができる。
二重化同期動作期間中では、A系システム1AのCPU3AとB系システム1BのCPU3Bは、それぞれDMAエンジン10A,10Bに同じコマンドを発行するため、図7に示すデータリンクパス15Aの正常確認処理と図8に示すデータリンクパス15Bの正常確認処理は並行して実行される。
本実施形態のA系システム1AとB系システム1Bからなる二重化システムは、二重化同期動作期間中においても、メインメモリ4A,4Bにデータを書き込むことなく、データリンクパス15A,15Bの動作確認が可能になる。
(データリンクパス14Aの正常確認処理;二重化同期動作期間中)
次に、二重化システムの二重化同期動作期間中におけるデータリンクパス14Aの正常確認処理について、図9を用いて説明する。
A系システム1AのCPU3Aは、自系のDMAエンジン10Aと他系のDMAエンジン10Bを制御して、自系のメインメモリ4Aに予め記憶されているテストデータを、自系のIBリンクコントローラ11A→データリンクパス14A→他系のOBリンクコントローラ12B→他系のDMAエンジン10B→他系のテストコンパレータ13Bという経路で、B系システム1Bのテストコンパレータ13Bに書き込む(図9の矢印<12>)。
また、CPU3Aは、他系のDMAエンジン10Bを制御して、他系のメインメモリ4Bに予め記憶されているテストデータを、他系のテストコンパレータ13Bに書き込む(図9の矢印<13>)。
そして、テストコンパレータ13Bは、図9の矢印<12>の経路で書き込まれたテストデータと、図9の矢印<13>の経路で書き込まれたテストデータとが一致するか否かを判別する。
2つのテストデータが一致すると判別した場合、テストコンパレータ13Bは、データリンクパス14Aが正常であると判断し、その旨をCPU3Aに通知する。
2つのテストデータが一致しないと判別した場合、テストコンパレータ13Bは、データリンクパス14Aが正常ではないと判断し、その旨(コンペアエラー)をCPU3Aに通知する。
このように、CPU3Aは、二重化同期動作期間中に、データリンクパス14Aが正常に機能しているかどうかをセルフチェックにより把握することができる。
(データリンクパス14Bの正常確認処理;二重化同期動作期間中)
次に、二重化システムの二重化同期動作期間中におけるデータリンクパス14Bの正常確認処理について、図10を用いて説明する。
B系システム1BのCPU3Bは、他系のDMAエンジン10Bと自系のDMAエンジン10Aを制御して、他系のメインメモリ4Bに予め記憶されているテストデータを、他系のIBリンクコントローラ11B→データリンクパス14B→自系のOBリンクコントローラ12A→自系のDMAエンジン10A→自系のテストコンパレータ13Aという経路で、A系システム1Aのテストコンパレータ13Aに書き込む(図10の矢印<14>)。
また、CPU3Bは、自系のDMAエンジン10Aを制御して、自系のメインメモリ4Aに予め記憶されているテストデータを、自系のテストコンパレータ13Aに書き込む(図10の矢印<15>)。
そして、テストコンパレータ13Aは、図10の矢印<14>の経路で書き込まれたテストデータと、図10の矢印<15>の経路で書き込まれたテストデータとが一致するか否かを判別する。
2つのテストデータが一致すると判別した場合、テストコンパレータ13Aは、データリンクパス14Bが正常であると判断し、その旨をCPU3Bに通知する。
2つのテストデータが一致しないと判別した場合、テストコンパレータ13Aは、データリンクパス14Bが正常ではないと判断し、その旨(コンペアエラー)をCPU3Bに通知する。
このように、CPU3Bは、二重化同期動作期間中に、データリンクパス14Bが正常に機能しているかどうかをセルフチェックにより把握することができる。
二重化同期動作期間中では、A系システム1AのCPU3AとB系システム1BのCPU3Bは、それぞれDMAエンジン10A,10Bに同じコマンドを発行するため、図9に示すデータリンクパス14Aの正常確認処理と図10に示すデータリンクパス14Bの正常確認処理は並行して実行される。
本実施形態のA系システム1AとB系システム1Bからなる二重化システムは、二重化同期動作期間中においても、メインメモリ4A,4Bにデータを書き込むことなく、データリンクパス14A,14Bの動作確認が可能になる。
本実施形態では、一方の系(自系)は、自系のDMAエンジンだけでなく他方の系(他系)のDMAエンジンも使用してデータを転送する。そのため、自系のDMAエンジンのみを使用してデータをコピーする従来技術のように、自系のDMAエンジンが故障した場合には系間のデータ書き込みができない、というようなことがない。すなわち、片系のDMAエンジンの故障が発生してもデータリンクパスの動作チェックができる。
以上説明したように、本発明によれば、二重化同期動作前と二重化同期動作期間中のいずれにおいてもデータリンクパスの正常動作確認を容易に行うために好適な二重化システム、及び、二重化方法を提供することができる。
1A A系システム
1B B系システム
2A, 2B 制御LSI
3A, 3B CPU
4A, 4B メインメモリ
5A, 5B CPUコントローラ
6A, 6B メモリコントローラ
7A, 7B ルータ
8A, 8B I/Oコンパレータ
9A, 9B I/Oコントローラ
10A,10B DMAエンジン
11A,11B インバウンド(IB)リンクコントローラ
12A,12B アウトバンド(OB)リンクコントローラ
13A,13B テストコンパレータ
14A,14B,15A,15B データリンクパス

Claims (7)

  1. 2つの系(以下、それぞれ「自系」、「他系」という。)が複数のデータリンクパスで接続され二重化して構成される二重化システムであって、
    前記2つの系のそれぞれは、
    CPU(Central Processing Unit)と、
    データを記憶するメモリと、
    自系の前記メモリに記憶されるデータをDMA(Direct Memory Access)転送により自系又は他系に入力するDMAコントローラと、
    自系の前記メモリに記憶される第1のデータと、他系の前記メモリから他系の前記DMAコントローラ又は自系の前記DMAコントローラによりDMA転送される第2のデータと、を取得し、当該取得した第1のデータと当該取得した第2のデータとが一致するか否かを判別し、当該第1のデータと当該第2のデータとが一致しない場合、自系の前記CPUにエラーを通知するコンパレータと、
    を備え、
    前記2つの系が二重化を開始する前、
    (a)自系の前記DMAコントローラが、自系の前記メモリに記憶されているデータを当該第1のデータとして自系の前記コンパレータにDMA転送するとともに、当該第1のデータを他系の前記メモリに格納し、
    (b)自系の前記DMAコントローラが、前記複数のデータリンクパスのうちいずれか1つのデータリンクパスを経由して、他系の前記メモリに格納された当該第1のデータを当該第2のデータとして自系の前記コンパレータにDMA転送する、
    ことを特徴とする二重化システム。
  2. 2つの系(以下、それぞれ「自系」、「他系」という。)が複数のデータリンクパスで接続され二重化して構成される二重化システムであって、
    前記2つの系のそれぞれは、
    CPU(Central Processing Unit)と、
    データを記憶するメモリと、
    自系の前記メモリに記憶されるデータをDMA(Direct Memory Access)転送により自系又は他系に入力するDMAコントローラと、
    自系の前記メモリに記憶される第1のデータと、他系の前記メモリに記憶される第2のデータと、を取得し、当該取得した第1のデータと当該取得した第2のデータとが一致するか否かを判別し、当該第1のデータと当該第2のデータとが一致しない場合、自系の前記CPUにエラーを通知するコンパレータと、
    を備え、
    前記2つの系が二重化を開始した後、他系の前記DMAコントローラが、
    (x)他系の前記メモリに記憶されている第1のデータを他系の前記コンパレータにDMA転送し、
    (y)前記複数のデータリンクパスのうちいずれか1つのデータリンクパスを経由して、自系の前記メモリに記憶されている第2のデータを他系の前記コンパレータにDMA転送する、
    ことを特徴とする二重化システム。
  3. 前記2つの系が二重化を開始した後、他系の前記DMAコントローラの代わりに、自系の前記DMAコントローラが、
    (x’)自系の前記メモリに記憶されている当該第2のデータを自系の前記コンパレータにDMA転送し、
    (y’)前記複数のデータリンクパスのうちいずれか1つのデータリンクパスを経由して、他系の前記メモリに記憶されている当該第1のデータを自系の前記コンパレータにDMA転送する、
    ことを特徴とする、請求項に記載の二重化システム。
  4. 他系の前記DMAコントローラが当該第1のデータと当該第2のデータを他系の前記コンパレータにDMA転送する処理と、自系の前記DMAコントローラが当該第1のデータと当該第2のデータを自系の前記コンパレータにDMA転送する処理は、並行して行われる、
    ことを特徴とする、請求項に記載の二重化システム。
  5. 前記複数のデータリンクパスは、自系から他系の向きにデータを送信する第1のインバウンド用データリンクパス及び第1のアウトバウンド用データリンクパスと、他系から自系の向きにデータを送信する第2のインバウンド用データリンクパス及び第2のアウトバウンド用データリンクパスと、から構成される、
    ことを特徴とする、請求項1乃至のいずれか1項に記載の二重化システム。
  6. 2つの系(以下、それぞれ「自系」、「他系」という。)が複数のデータリンクパスで接続され二重化して構成される二重化システムにて実行される二重化方法であって、
    前記2つの系のそれぞれが、データを記憶するメモリを有し、
    前記2つの系のそれぞれにおいて、
    自系の前記メモリに記憶されるデータをDMA(Direct Memory Access)転送により自系又は他系に入力する入力ステップと、
    自系の前記メモリに記憶される第1のデータと、他系の前記メモリから自系又は他系にDMA転送される第2のデータと、を取得し、当該取得した第1のデータと当該取得した第2のデータとが一致するか否かを判別し、当該第1のデータと当該第2のデータとが一致しない場合、エラーを通知する通知ステップと、
    を備え、
    前記2つの系が二重化を開始する前、
    (a)自系が、自系の前記メモリに記憶されているデータを当該第1のデータとして自系にDMA転送するとともに、当該第1のデータを他系の前記メモリに格納し、
    (b)自系が、前記複数のデータリンクパスのうちいずれか1つのデータリンクパスを経由して、他系の前記メモリに格納された当該第1のデータを当該第2のデータとして自系にDMA転送する、
    ことを特徴とする二重化方法。
  7. 2つの系(以下、それぞれ「自系」、「他系」という。)が複数のデータリンクパスで接続され二重化して構成される二重化システムにて実行される二重化方法であって、
    前記2つの系のそれぞれが、データを記憶するメモリを有し、
    前記2つの系のそれぞれにおいて、
    自系の前記メモリに記憶されるデータをDMA(Direct Memory Access)転送により自系又は他系に入力する入力ステップと、
    自系の前記メモリに記憶される第1のデータと、他系の前記メモリに記憶される第2のデータと、を取得し、当該取得した第1のデータと当該取得した第2のデータとが一致するか否かを判別し、当該第1のデータと当該第2のデータとが一致しない場合、自系にエラーを通知する通知ステップと、
    を備え、
    前記2つの系が二重化を開始した後、他系が、
    (x)他系の前記メモリに記憶されている第1のデータを他系内でDMA転送し、
    (y)前記複数のデータリンクパスのうちいずれか1つのデータリンクパスを経由して、自系の前記メモリに記憶されている第2のデータを自系から他系にDMA転送する、
    ことを特徴とする二重化方法。
JP2009194053A 2009-08-25 2009-08-25 二重化システム、及び、二重化方法 Expired - Fee Related JP5556086B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009194053A JP5556086B2 (ja) 2009-08-25 2009-08-25 二重化システム、及び、二重化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009194053A JP5556086B2 (ja) 2009-08-25 2009-08-25 二重化システム、及び、二重化方法

Publications (2)

Publication Number Publication Date
JP2011048441A JP2011048441A (ja) 2011-03-10
JP5556086B2 true JP5556086B2 (ja) 2014-07-23

Family

ID=43834721

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009194053A Expired - Fee Related JP5556086B2 (ja) 2009-08-25 2009-08-25 二重化システム、及び、二重化方法

Country Status (1)

Country Link
JP (1) JP5556086B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5575086B2 (ja) * 2011-10-20 2014-08-20 三菱電機株式会社 電子制御装置
CN107430590B (zh) 2015-01-12 2020-12-08 微福斯有限责任公司 用于数据比较的***和方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH083796B2 (ja) * 1988-06-20 1996-01-17 富士通株式会社 二重化装置内の通信方法
JPH0680493B2 (ja) * 1989-08-10 1994-10-12 株式会社京三製作所 並列2重系の処理装置および運転方法
JPH05265789A (ja) * 1992-03-19 1993-10-15 Fujitsu Ltd メモリ複写方式
JPH11317745A (ja) * 1998-05-01 1999-11-16 Fujitsu Ltd ネットワークシステム
JP2000181736A (ja) * 1998-12-16 2000-06-30 Nippon Signal Co Ltd:The フェールセーフ照合装置
US6802023B2 (en) * 2001-03-15 2004-10-05 Hewlett-Packard Development Company, L.P. Redundant controller data storage system having hot insertion system and method
JP2005293315A (ja) * 2004-03-31 2005-10-20 Nec Corp データミラー型クラスタシステム及びデータミラー型クラスタシステムの同期制御方法
JP2006178550A (ja) * 2004-12-21 2006-07-06 Nec Corp 二重化同期システム、及び二重化同期システムの動作方法
JP2006178636A (ja) * 2004-12-21 2006-07-06 Nec Corp フォールトトレラントコンピュータ、およびその制御方法
WO2008004569A1 (fr) * 2006-07-06 2008-01-10 Nec Corporation Système à configuration en grappe, grappe pour serveur, élément de grappe, procédé permettant de rendre un élément de grappe redondant, et procédé de distribution de la charge

Also Published As

Publication number Publication date
JP2011048441A (ja) 2011-03-10

Similar Documents

Publication Publication Date Title
US7500139B2 (en) Securing time for identifying cause of asynchronism in fault-tolerant computer
JP5107880B2 (ja) データ転送処理装置及び方法
JP6029737B2 (ja) 制御装置
EP1672506A2 (en) A fault tolerant computer system and a synchronization method for the same
US9141485B2 (en) Storage device, control device and data protection method
US9477559B2 (en) Control device, control method and recording medium storing program thereof
US7568054B2 (en) Duplicate synchronization system and method of operating duplicate synchronization system
JP2005293315A (ja) データミラー型クラスタシステム及びデータミラー型クラスタシステムの同期制御方法
JP2006178615A (ja) フォールトトレラントシステム、これで用いる制御装置、アクセス制御方法、及び制御プログラム
JP6083480B1 (ja) 監視装置、フォールトトレラントシステムおよび方法
JP5556086B2 (ja) 二重化システム、及び、二重化方法
JP5186779B2 (ja) コンピュータシステム、ホストコンピュータ
JP2009098988A (ja) フォルトトレラントコンピュータシステム
JPWO2010100757A1 (ja) 演算処理システム、再同期方法、およびファームプログラム
JP2007280313A (ja) 冗長化システム
JPWO2008120352A1 (ja) 情報処理装置、エラー処理方法
JP5748214B2 (ja) 二重化情報処理システム
JP2018160030A (ja) 制御装置、制御方法、及び、フォールトトレラント装置
JP2008250936A (ja) 二重化制御装置、及びそのトラッキング方法
EP3327521B1 (en) Duplexing process control device
JP2007323190A (ja) データ通信を行う計算制御システム及びその通信方法
JP2010072888A (ja) Dma転送制御システム
CN114253766A (zh) 运行冗余的自动化***的方法
JP2014235503A (ja) 情報処理装置、情報処理システム、ハードディスク障害検知方法、サービス継続方法、ハードディスク障害検知プログラム、サービス継続プログラム
US9323472B2 (en) Storage controlling device and controlling method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120709

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140410

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: 20140507

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140520

R150 Certificate of patent or registration of utility model

Ref document number: 5556086

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees