(57)【要約】      （修正有）【課題】複数の記憶装置を統合した統合記憶装置を備えた情報処理装置を多重化した多重化システムにおいて、冗長性の維持を改善することができる情報処理装置を提供する。【解決手段】情報処理装置は、統合記憶装置にアクセスするアクセス処理部と、統合記憶装置へのアクセスに対する応答が無いことが原因の場合を含むタイムアウトを検知するタイムアウト処理部と、系切替処理の要求が生じた場合に、多重化システムの系切替処理を系切替処理を実行する系切替処理部と、系切替処理が実行されると、検知されたタイムアウトが、アクセスに対する応答が無いことによるものでなければ即座に情報処理装置を停止させ、アクセスに対して応答が無いことによるものであれば、所定の回復待ち処理の間に応答がなければ情報処理装置を停止させ、回復待ち処理の間に応答があれば情報処理装置を停止させない停止処理部とを有する。【選択図】図５
2014203302.tif 000002
【特許請求の範囲】
【請求項１】
多重化されて多重化システムに組み込まれ、複数の記憶装置を統合管理する統合記憶装置を備えた情報処理装置であって、
前記統合記憶装置にアクセスするアクセス処理部と、
前記アクセス処理部による前記統合記憶装置へのアクセスに対する応答が無いことが原因の場合を含むタイムアウトを検知するタイムアウト処理部と、
系切替処理の要求が生じた場合に、前記多重化システムの系切替処理を実行する系切替処理部と、
前記系切替処理部にて前記系切替処理が実行されると、検知された前記タイムアウトが、前記アクセスに対する前記応答が無いことによるものでなければ即座に前記情報処理装置を停止させ、前記アクセスに対して前記応答が無いことによるものであれば、所定の回復待ち処理の間に前記応答がなければ前記情報処理装置を停止させ、前記回復待ち処理の間に前記応答があれば前記情報処理装置を停止させない停止処理部と、
を有する情報処理装置。
【請求項２】
前記系切替処理部は、さらに、前記多重化システムの他系の情報処理装置からのアライブ信号を監視しており、前記アライブ信号が受信されない時間が第１の閾値時間を超えた情報処理装置に対して、前記系切替処理の要求を送信する、請求項１に記載の情報処理装置。
【請求項３】
前記系切替処理部は、前記他系の情報処理装置に送信する前記系切替処理の要求において、送信先の情報処理装置への停止を指示する、請求項２に記載の情報処理装置。
【請求項４】
前記系切替処理部は、他系の情報処理装置から停止することを指示されると、自系の系切替処理を起動する、請求項３に記載の情報処理装置。
【請求項５】
前記回復待ち処理は、前記アクセス処理部が前記統合記憶装置に前記応答を再度要求して第２の閾値時間だけ待ち合わせるという処理を所定のリトライ回数繰り返す処理を含む、請求項１に記載の情報処理装置。
【請求項６】
前記タイムアウトが検知された場合に、前記系切替処理部は、前記系切替処理を実行する、
請求項１に記載の情報処理装置。
【請求項７】
複数の記憶装置を統合管理する統合記憶装置を備えた情報処理装置を多重化して組み込む多重化システムを稼働するための方法であって、
前記情報処理装置は、
前記統合記憶装置にアクセスし、
前記統合記憶装置へのアクセスに対する応答が無いことが原因の場合を含むタイムアウトを検知し、
系切替処理の要求が生じた場合に、前記多重化システムの系切替処理を実行し、
前記系切替処理が実行されると、検知された前記タイムアウトが、前記アクセスに対する前記応答が無いことによるものでなければ即座に前記情報処理装置を停止させ、前記アクセスに対して前記応答が無いことによるものであれば、所定の回復待ち処理の間に前記応答がなければ前記情報処理装置を停止させ、前記回復待ち処理の間に前記応答があれば前記情報処理装置を停止させない、
方法。
【請求項８】
多重化されて多重化システムに組み込まれ、複数の記憶装置を統合管理する統合記憶装置を備えた情報処理装置が有するプログラムであって、
前記統合記憶装置にアクセスするアクセス機能と、
前記統合記憶装置へのアクセスに対する応答が無いことが原因の場合を含むタイムアウトを検知するタイムアウト機能と、
系切替処理の要求が生じた場合に、前記多重化システムの系切替処理を実行する系切替処理機能と、
前記系切替処理が実行されると、検知された前記タイムアウトが、前記アクセスに対する前記応答が無いことによるものでなければ即座に前記情報処理装置を停止させ、前記アクセスに対して前記応答が無いことによるものであれば、所定の回復待ち処理の間に前記応答がなければ前記情報処理装置を停止させ、前記回復待ち処理の間に前記応答があれば前記情報処理装置を停止させない停止機能と、
を有するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のハードディスク等の記憶装置をまとめて管理する装置を備えた情報処理装置を用い、そのような情報処理装置を多重化した多重化システムに関し、特に、ＲＡＩＤ装置を備えた情報処理装置を多重化したシステムに関する。
【背景技術】
【０００２】
複数の記憶装置を統合して管理することにより、１つの記憶装置として振る舞うＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋ）装置が知られている。例えば、ＲＡＩＤ１は、２台の記憶装置に全く同じデータを書き込み、一方の記憶装置に障害が発生しても、他方の記憶装置によって全体のＲＡＩＤ装置として問題なく動作することを可能にする技術である。
【０００３】
近年の記憶装置の技術革新により、例えば記憶装置からのデータ読み取り処理が何等かの原因で正常に行えなかった場合、記憶装置は上位のハードウェアへ障害発生を報告する前に、記憶装置内部でデータ読み取り処理が正しく行えるよう処理をリトライする技術がある。これにより、データ読み取り処理が一時的に正常にできなかった場合にリトライにより問題なく処理を継続できるようになる。ただし、その一方で、例えば記憶装置に恒久的な故障が起きた場合に上位のハードウェアへ障害を報告するまでの時間は長くなる。
【０００４】
また、高い可用性が要求される用途では、情報処理装置自体を多重化することでシステムとしての可用性を向上する技術が知られている。多重化されたシステムの情報処理装置に実装されるソフトウェアは、データ読み取り処理に対する記憶装置の応答までの時間を監視しており、ソフトウェアが規定する時間までに記憶装置からの応答が得られないとき、タイムアウト処理を起動する。タイムアウト処理では、情報処理装置のソフトウェアは系切替えを行った後、情報処理装置自身をシャットダウンする。
【０００５】
また、このような多重化システムの各情報処理装置内に、上述したようなＲＡＩＤ装置が用いられることがある。
【０００６】
特許文献１には、運用系ノードと予備系ノードを有し、各運用系ノードは運用系メモリ領域と予備系メモリ領域とを含む共有メモリを有するシステムが開示されている。運用系ノードの障害検出で、予備系ノードは運用系ノードとなる。 障害が生じた運用系ノードが復旧した場合、障害から復旧したノードの障害状態の欄を正常にすると共に予備系に変更する。
【０００７】
特許文献２には、主系メモリと従系メモリに同じデータを書き込むシステムが開示されている。従系メモリに故障があることが分った場合には従系メモリを切離し、主系メモリのみにデータをリードライトする。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００７−２７４２５５号公報
【特許文献２】特開平０５−２７４１６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上述のように、ＲＡＩＤ装置を備えた情報処理装置は、一部の記憶装置が故障しても、ＲＡＩＤ装置により他の記憶装置で動作を継続することが可能である。そのため、ＲＡＩＤ装置を備えた情報処理装置を二重化したシステムの好ましい動作は、各情報処理装置内の一部の記憶装置が故障しても、主系および従系の両方の情報処理装置が動作している状態を維持することである。つまり、二重化システムの冗長性を維持することが好ましい。
【００１０】
しかし、実際には、片方の情報処理装置内の一部の記憶装置が故障した場合に、ＲＡＩＤ装置が正常な記憶装置への切り替えを完了する前に、その情報処理装置が二重化システムの系の切り替えを実行してしまうことがある。そうなると、一部の記憶装置が故障しただけの情報処理装置が、その装置自体をシャットダウンしてしまう。その結果、二重化システムの冗長性が維持されず、新たに運用系となった情報処理装置だけで運用している状態となる。
【００１１】
また、ＲＡＩＤ装置による切り替えの途中で情報処理装置自体がシャットダウンしてしまうので、原因を調査するときに故障個所の特定が困難となってしまう。そのため、実際には一部の記憶装置の交換で復旧できる障害であるにも関わらず、ＲＡＩＤ装置全体を交換しなければならない場合が生じる。
【００１２】
これは、ＲＡＩＤ装置が記憶装置の障害を判断し、記憶装置を切り替え、それを情報処理装置のソフトウェアに報告するまでにかかる時間が、情報処理装置のソフトウェアによる他系の生存監視がタイムアウトし、タイムアウト処理を実行するまでの時間を上回ることによる。
【００１３】
しかしながら、ソフトウェアのタイムアウト処理を起動する時間を長くするのは、システムとしての運用上好まいことではない。また、高度な処理を行うＲＡＩＤ装置が情報処理装置のソフトウェアに障害を報告するまでの時間を短縮することは困難な場合がある。
【００１４】
本発明の目的は、複数の記憶装置を統合した統合記憶装置を備えた情報処理装置を多重化した多重化システムにおいて冗長性の維持を改善する技術を提供することである。
【課題を解決するための手段】
【００１５】
本発明の一の観点による情報処理装置は、多重化されて多重化システムに組み込まれ、複数の記憶装置を統合管理する統合記憶装置を備えた情報処理装置である。情報処理装置は、統合記憶装置にアクセスするアクセス処理部と、アクセス処理部による統合記憶装置へのアクセスに対する応答が無いことが原因の場合を含むタイムアウトを検知するタイムアウト処理部と、系切替処理の要求が生じた場合に、多重化システムの系切替処理を実行する系切替処理部と、系切替処理部にて系切替処理が実行されると、検知されたタイムアウトが、アクセスに対する応答が無いことによるものでなければ即座に情報処理装置を停止させ、アクセスに対して応答が無いことによるものであれば、所定の回復待ち処理の間に応答がなければ情報処理装置を停止させ、回復待ち処理の間に応答があれば情報処理装置を停止させない停止処理部と、を有する。
【００１６】
系切替処理部は、さらに、多重化システムの他系の情報処理装置からのアライブ信号を監視しており、アライブ信号が受信されない時間が第１の閾値時間を超えた情報処理装置に対して、系切替処理の要求を送信してもよい。
【００１７】
系切替処理部は、他系の情報処理装置に送信する系切替処理の要求において、送信先の情報処理装置への停止を指示してもよい。
【００１８】
系切替処理部は、他系の情報処理装置から停止することを指示されると、自系の系切替処理を起動してもよい。
【００１９】
回復待ち処理は、アクセス処理部が統合記憶装置に応答を再度要求して第２の閾値時間だけ待ち合わせるという処理を所定のリトライ回数繰り返す処理を含む。
【００２０】
タイムアウトが検知された場合に、系切替処理部は、系切替処理を実行してもよい。
【００２１】
本発明の他の観点による、複数の記憶装置を統合管理する統合記憶装置を備えた情報処理装置を多重化して組み込む多重化システムを稼働するための方法は、統合記憶装置にアクセスし、統合記憶装置へのアクセスに対する応答が無いことが原因の場合を含むタイムアウトを検知し、系切替処理の要求が生じた場合に、多重化システムの系切替処理を実行し、系切替処理が実行されると、検知されたタイムアウトが、アクセスに対する応答が無いことによるものでなければ即座に情報処理装置を停止させ、アクセスに対して応答が無いことによるものであれば、所定の回復待ち処理の間に応答がなければ情報処理装置を停止させ、回復待ち処理の間に応答があれば情報処理装置を停止させない。
【００２２】
本発明の他の観点による、多重化されて多重化システムに組み込まれ、複数の記憶装置を統合管理する統合記憶装置を備えた情報処理装置が有するプログラムは、統合記憶装置にアクセスするアクセス機能と、統合記憶装置へのアクセスに対する応答が無いことが原因の場合を含むタイムアウトを検知しタイムアウト機能と、系切替処理の要求が生じた場合に、多重化システムの系切替処理を実行する系切替処理機能と、系切替処理が実行されると、検知されたタイムアウトが、アクセスに対する応答が無いことによるものでなければ即座に情報処理装置を停止させ、アクセスに対して応答が無いことによるものであれば、所定の回復待ち処理の間に応答がなければ情報処理装置を停止させ、回復待ち処理の間に応答があれば情報処理装置を停止させない停止機能と、を有する。
【発明の効果】
【００２３】
本発明によれば、複数の記憶装置を統合した統合記憶装置を備えた情報処理装置を多重化した多重化システムにおいて、冗長性の維持を改善することができる。
【図面の簡単な説明】
【００２４】
【図１】本実施形態に係る、情報処理装置を複数備えた多重化システムの構成図の一例である。
【図２】ディスクアクセス処理機能が起動されたときのフローチャートである。
【図３】ＨＤＤ１およびＨＤＤ２へのアクセス処理を説明するフローチャートである。
【図４】ＲＡＩＤ状態切替処理を説明するフローチャートである。
【図５】系切替処理の一例を示すフローチャートである。
【図６】系切替処理の他の例を示すフローチャートである
【発明を実施するための形態】
【００２５】
本発明の一つの実施形態について図面を参照して説明する。
【００２６】
図１は、本実施形態に係る情報処理装置を複数備えた多重化システムの構成図の一例である。
【００２７】
以下では、多重化システムとして、主系及び従系の情報処理装置を１台ずつ備え、ホットスタンバイ方式により主系と従系とが同じ状態で動作し、主系の情報処理装置１０Ａが故障した際に従系の情報処理装置１０Ｂが処理を引き継ぐことによりシステムとしての動作を継続させる事ができる二重化システム１について説明する。しかし、実施形態がこの構成に限られることはない。
【００２８】
情報処理装置は、主系の情報処理装置１０Ａ、従系の情報処理装置１０Ｂともに基本的な構成及び動作は同じである。このため、以下では、構成及び動作の同じものについては、代表して主系の情報処理装置１０Ａについて説明し、説明が必要な場合（例えば他系との関係性についての説明など）には、状況に合わせて、従系の情報処理装置１０Ｂについても適宜説明する。
【００２９】
情報処理装置１０Ａは、ソフトウェア部２００Ａと、ハードウェア部３００Ａとを有する。
【００３０】
ハードウェア部３００Ａは、ＣＰＵ３１０Ａと、ＬＡＮインターフェース３２０Ａと、統合記憶装置としてのＲＡＩＤ装置３３０Ａと、を備える。
【００３１】
ＣＰＵ３１０Ａは、ソフトウェア部２００Ａから指示された命令を実行する。
【００３２】
ＬＡＮインターフェース３２０Ａは、接続された他の装置のＬＡＮインターフェースと通信する。具体的には、例えば、主系のＬＡＮインターフェース３２０Ａと従系のＬＡＮインターフェース３２０Ｂとが接続されている。そして、これらＬＡＮインターフェース３２０Ａ、３２０Ｂを介して、主系のハードウェア部３００ＡのＣＰＵ３１０Ａと従系のハードウェア部３００ＢのＣＰＵ３１０Ｂとが通信を行う。
【００３３】
ＣＰＵ３１０Ａは、ＲＡＩＤ技術により、複数のＨＤＤ（３２２Ａ又は３２２Ｂ）を仮想的な１台のＨＤＤとして、ＲＡＩＤ装置３３０Ａを認識する。以下では、ＲＡＩＤ技術として、２台のＨＤＤに同じデータを反映させる（ミラーリング機能）ＲＡＩＤ１にて説明を行う。しかし、これに限定されない。
【００３４】
ＲＡＩＤ装置３３０Ａは、例えば、ＲＡＩＤコントローラ３３１ＡとＨＤＤ１（３３２Ａ）とＨＤＤ２（３３３Ａ）を備える。ＲＡＩＤコントローラ３３１Ａは、例えば、下記機能を有する。
（＊）新たなＨＤＤ（例えば、ＲＡＩＤを構築した事の無いＨＤＤ）が接続されたときに、二重化（ミラーリング）を構築する機能
（＊）ＣＰＵ３１０Ａから仮想的なＨＤＤへの、ソフトウェア部２００Ａからの後述のアクセス処理命令を受けると、ＨＤＤ１（３３２Ａ）及びＨＤＤ２（３３３Ｂ）へアクセス処理を行う機能
（＊）一方のＨＤＤ（３２２Ａ又は３２２Ｂ）が故障したときに、他方のＨＤＤ（３２２Ｂ又は３２２Ａ）のみへアクセス処理を行う機能
（＊）一方のＨＤＤ（３２２Ａ又は３２２Ｂ）が故障したときに、その故障したＨＤＤ（３２２Ａ又は３２２Ｂ）の接続を切り離し、ミラーリングを行わない機能
（＊）一方のＨＤＤ（３２２Ａ又は３２２Ｂ）が故障したときに、そのＨＤＤ（３２２Ａ又は３２２Ｂ）が故障したことをＣＰＵ３１０Ａへ通知する機能
（＊）故障したＨＤＤ（３２２Ａ又は３２２Ｂ）を新しいＨＤＤに交換したときに、故障のないＨＤＤ（３２２Ｂ又は３２２Ａ）と新しいＨＤＤとのミラーリングを構築しなおす機能
【００３５】
ソフトウェア部２００Ａは、アクセス処理部としてのディスクアクセス処理機能２１０Ａと、タイムアウト処理部としてのソフトウェアタイムアウト処理機能２２０Ａと、切替処理部としての系切替処理機能２３０Ａと、停止処理部としてのシャットダウン処理機能２４０Ａとを備える。
【００３６】
ディスクアクセス処理機能２１０Ａは、ＲＡＩＤ装置３３０Ａにアクセスする機能である。具体的には、例えば、ディスクアクセス処理機能２１０Ａの起動により、ＣＰＵ３１０Ａは、ＲＡＩＤ装置３３０ＡのＲＡＩＤコントローラ３３１Ａに対して、仮想的なＨＤＤの所定アドレスを指定したリード／ライト命令等のアクセス命令を発行する。
【００３７】
なお、アクセス命令を受信したＲＡＩＤコントローラ３３１Ａは、受信したアドレスからアクセス対象となる各ＨＤＤ（３３２Ａ及び３３３Ａ）のアドレスをそれぞれ算出し、それぞれのアドレスを指定したアクセスコマンドを各ＨＤＤ（３３２Ａ及び３３３Ａ）対して発行する。また、アクセスコマンドを受信した各ＨＤＤ（３３２Ａ及び３３３Ａ）は、これに従う処理を行い、それぞれＲＡＩＤコントローラ３３１Ａに応答を行う。そして、各ＨＤＤ（３３２Ａ及び３３３Ａ）の応答を受けたＲＡＩＤコントローラ３３１Ａは、ＣＰＵ３１０Ａのアクセス命令に対する応答を行う。
【００３８】
ソフトウェアタイムアウト処理機能２２０Ａは、ディスクアクセス処理機能２１０ＡによるＲＡＩＤ装置３３０Ａへのアクセスに対する応答が無いことが原因の場合を含むタイムアウトを検知する機能である。具体的には、例えば、ソフトウェアタイムアウト機能２２０Ａの起動により、ＣＰＵ３１０Ａは、ＲＡＩＤコントローラ３３１Ａのアクセス命令に対する応答が所定時間内にあるか否かを監視しており、所定時間内に応答がない場合のタイムアウトを検知する。この際、ＣＰＵ３１０Ａは、タイムアウトの原因がＲＡＩＤ装置３３０Ａへのアクセスに対する応答が無いことであるか否かの情報を保持するようにしてもよい。
【００３９】
系切替処理機能２３０Ａは、二重化システムの他系の情報処理装置からのアライブ信号を監視し、アライブ信号が受信されない時間が所定時間を超えた情報処理装置に対して、系切替処理の要求を送信する機能である。例えば、従系の情報処理装置１０Ｂの系切替処理機能２３０Ａの起動により、ＣＰＵ３１０Ｂは、二重化システムの主系の情報処理装置１０Ａから所定時間おきに発信されるアライブ信号Ｓ１を常に監視する。そして、主系の情報処理装置１０Ａからのアライブ信号Ｓ１が受信されなかった場合に、ＣＰＵ３１０Ｂは、系切替処理の要求Ｓ２として、主系の情報処理装置１０Ａへのシャットダウンを指示する。なお、アライブ信号は、主系の情報処理装置１０Ａだけが発信するのではなく、二重化システム１の全ての情報処理装置１０Ａ及び１０Ｂが互いに向けて所定時間おきに常に発信するものであってよい。この場合、アライブ信号の監視も、互いに行われる。
【００４０】
系切替処理機能２３０Ａは、さらに、二重化システムの他系の情報処理装置から、系切替処理の要求Ｓ２を受信した場合に、自系の系切替処理を実行する機能でもある。
【００４１】
シャットダウン処理機能２４０Ａは、系切替処理機能２３０Ａにて系切替処理が実行されるときに、以下のシャットダウン処理を行う機能である。
（＊）タイムアウトが、アクセスに対する応答が無いことによるものでなければ即座に情報処理装置１０Ａをシャットダウンする。
（＊）タイムアウトが、アクセスに対して応答が無いことによるものであり、回復待ち処理の間に応答がなければ情報処理装置１０Ａをシャットダウンする。
（＊）タイムアウトが、アクセスに対して応答が無いことによるものであり、回復待ち処理の間に応答があれば情報処理装置１０Ａをシャットダウンしない。
なお、回復待ち処理は、ディスクアクセス処理機能２１０ＡがＲＡＩＤ装置３３０Ａに応答を再度要求して、所定時間だけ待ち合わせるという処理を所定のリトライ回数繰り返す処理である。
【００４２】
図２は、ディスクアクセス処理機能が起動されたときのフローチャートである。
【００４３】
ステップＳ２１で、ＣＰＵ３１０Ａは、ＲＡＩＤ装置３３０ＡのＲＡＩＤコントローラ３３１Ａに対して、リード／ライトコマンド等のアクセス命令を発行する。
【００４４】
ステップＳ２２で、ＣＰＵ３１０Ａは、アクセス命令に対する応答待ちの経過時間（この時間を、以下の説明では「変数：Ｔｉｍｅ１」という場合がある）が、予めソフトウェアに規定された規定値以下であるか否かの判定を行う。なお、アクセス命令に対する応答時間の規定値は、予め又は適宜、設定又は変更され、図示しないメモリ等に記憶されていてもよい。
【００４５】
Ｓ２２の判定の結果、「変数：Ｔｉｍｅ１」が規定値以下である場合は（Ｓ２２でＹｅｓ）、ＣＰＵ３１０Ａは、ステップＳ２３に処理を進め、ＲＡＩＤコントローラ３３１Ａからのアクセス命令に対する応答があったか否かの判定を行う。
【００４６】
判定の結果、ＲＡＩＤコントローラ３３１Ａからの応答があった場合は（Ｓ２３でＹｅｓ）、処理を終了する（ＥＮＤ）。一方、判定の結果、ＲＡＩＤコントローラ３３１Ａからの応答が無かった場合には（Ｓ２３でＮｏ）、ＣＰＵ３１０Ａは、ステップＳ２２に処理を戻す。
【００４７】
Ｓ２２の判定の結果、「変数：Ｔｉｍｅ１」が規定値を超えた場合は（Ｓ２２でＮｏ）、タイムアウトであるとして、ＣＰＵ３１０Ａは、ステップＳ２４へ進め、「ＲＡＩＤ装置３３０Ａへのアクセス命令に対する応答が無いことが原因のタイムアウト」である旨の情報を図示しないメモリなどに保持して、処理を終了する（ＥＮＤ）。
【００４８】
上記処理により、予め決められた（規定値）時間を超えても、ＣＰＵ３１０Ａからのアクセス命令に対する応答がなかった場合に、これを原因としてタイムアウトしたことを情報として保持することができる。これにより、後述の系切替処理において、他系の情報処理装置より系切替処理の要求Ｓ２を受信した場合に、タイムアウトが、アクセス命令に対する応答の遅延であるか否かを即座に判定することができる。
【００４９】
図３は、ＨＤＤ１およびＨＤＤ２へのアクセス処理を説明するフローチャートである。
【００５０】
ステップＳ３１で、ＲＡＩＤコントローラ３３１Ａは、ＨＤＤ１およびＨＤＤ２に対するリード／ライトコマンド等のアクセスコマンドを発行する。具体的には、例えば、ディスクアクセス処理機能２１０Ａが起動され、ＣＰＵ３１０Ａからのアクセス命令を受信した場合に、ＲＡＩＤコントローラ３３１Ａは、受信したアクセス命令よりアクセス対象となる各ＨＤＤ（３３２Ａ及び３３３Ａ）のアドレスをそれぞれ算出し、それぞれのアドレスを指定したアクセスコマンドを各ＨＤＤ（３３２Ａ及び３３３Ａ）に対して発行する。
【００５１】
ステップＳ３２で、ＲＡＩＤコントローラ３３１Ａは、アクセスコマンドに対する応答待ちの経過時間（この時間を、以下の説明では「変数：Ｔｉｍｅ２」という場合がある）が、予めソフトウェアに規定された規定値以下であるか否かの判定を行う。なお、アクセスコマンドに対する応答時間の規定値は、予め又は適宜、設定又は変更され、図示しないメモリ等に記憶されてもよい。
【００５２】
Ｓ３２の判定の結果、「変数：Ｔｉｍｅ２」が規定値以下である場合は（Ｓ３２でＹｅｓ）、ＲＡＩＤコントローラ３３１Ａは、ステップＳ３３へ処理を進め、ＨＤＤ１及びＨＤＤ２からコマンドに対する応答があったか否かの判定を行う。
【００５３】
判定の結果、ＨＤＤ１及びＨＤＤ２の両方から応答があった場合は（Ｓ３３でＹｅｓ）、ＲＡＩＤコントローラ３３１Ａは、処理を終了する（ＥＮＤ）。一方、判定の結果、ＨＤＤ１及びＨＤＤ２の両方から応答が無かった場合、つまり、ＨＤＤ１（３３２Ａ）、ＨＤＤ２（３３３Ａ）のいずれか一方又は両方から応答がなかった場合には（Ｓ３３でＮｏ）、ＲＡＩＤコントローラ３３１Ａは、ステップＳ３２に処理を戻す。
【００５４】
Ｓ３２の判定の結果、「変数：Ｔｉｍｅ２」が規定値超えた場合は（Ｓ３２でＮｏ）、タイムアウトであるとして、ＲＡＩＤコントローラ３３１Ａは、ステップＳ３４へ処理を進め、ＲＡＩＤ状態切替処理を実行して処理を終了する（ＥＮＤ）。
【００５５】
上記処理により、予め規定された（規定値）時間を超えても、ＨＤＤ（３３２Ａ及び３３３Ａ）からのアクセスコマンドに対する応答がなかった場合に、個々のＨＤＤの動作を判断して切り離し処理を行う、ＲＡＩＤ状態切替処理に移行することができる。
【００５６】
図４は、ＲＡＩＤ状態切替処理を説明するフローチャートである。
【００５７】
ステップＳ４１で、ＲＡＩＤコントローラ３３１Ａは、発行したアクセスコマンドに対して応答が無かったＨＤＤ（３３２Ａ又は３３３Ａ）の判定を行う。判定の結果、ＨＤＤ１からの応答がなかった場合は（Ｓ４１でＨＤＤ１）、ＲＡＩＤコントローラ３３１Ａは、ステップＳ４２へ処理を進める。
【００５８】
ステップＳ４２で、ＲＡＩＤコントローラ３３１Ａは、ＨＤＤ１（３３２Ａ）をＲＡＩＤ装置３３０Ａから切り離し、ステップＳ４３へ処理を進める。
【００５９】
ステップＳ４３で、ＲＡＩＤコントローラ３３１Ａは、ＨＤＤ１（３３２Ａ）をＲＡＩＤ装置３３０Ａから切り離したことをＣＰＵ３１０Ａに通知し、処理を終了する（ＥＮＤ）。
【００６０】
ステップＳ４１の判定の結果、ＨＤＤ２からの応答がなかった場合は（Ｓ４１でＨＤＤ２）、ＲＡＩＤコントローラ３３１Ａは、ステップＳ４４へ処理を進める。
【００６１】
ステップＳ４４で、ＲＡＩＤコントローラ３３１Ａは、ＨＤＤ２（３３３Ａ）をＲＡＩＤ装置３３０Ａから切り離し、ステップＳ４５へ処理を進める。
【００６２】
ステップＳ４５で、ＲＡＩＤコントローラ３３１Ａは、ＨＤＤ２（３３３Ａ）をＲＡＩＤ装置３３０Ａから切り離したことをＣＰＵ３１０Ａに通知し、処理を終了する（ＥＮＤ）。
【００６３】
上記処理により、個々のＨＤＤ（３３２Ａ又は３３３Ａ）の動作を判断して、応答のないＨＤＤのみを切り離すことができる。また、ＨＤＤを切り離しことをＣＰＵ３１０Ａに通知するので、故障したＨＤＤを、迅速に新しいＨＤＤと交換することができる。
【００６４】
図５は、系切替処理の一例を示すフローチャートである。
【００６５】
ステップＳ５１で、ＣＰＵ３１０Ａは、従系のＣＰＵ３１０Ｂから、系切替処理の要求Ｓ２を受信したか否かの判定を行う。判定の結果、系切替処理の要求Ｓ２を受信していない場合には（Ｓ５１でＮｏ）、ＣＰＵ３１０Ａは、ステップＳ５１に処理を戻す。一方、判定の結果、系切替処理の要求Ｓ２を受信した場合には（Ｓ５１でＹｅｓ）、ＣＰＵ３１０Ａは、ステップＳ５２に処理を進める。
【００６６】
ステップＳ５２で、ＣＰＵ３１０Ａは、タイムアウトが、アクセス命令に対する応答がないことが原因か否かの判定を行う。判定の結果、タイムアウトが、アクセス命令に対する応答がないことが原因の場合は（Ｓ５２でＹｅｓ）、ＣＰＵ３１０Ａは、ステップＳ５３へ処理を進める。一方、判定の結果、タイムアウトが、アクセス命令に対する応答がないことが原因の場合は（Ｓ５２でＮｏ）、ＣＰＵ３１０Ａは、ステップＳ５６へ処理を進め、自系の情報処理装置１０Ａに対しシャットダウンを行い、処理を終了する（ＥＮＤ）。
【００６７】
ステップＳ５３で、ＣＰＵ３１０Ａは、アクセス命令に対するＲＡＩＤコントローラ３３１Ａからの応答があったか否かの判定を行う。判定の結果、ＲＡＩＤコントローラ３３１Ａから応答があった場合には（Ｓ５３でＹｅｓ）、ＣＰＵ３１０Ａは、処理を終了する（ＥＮＤ）。一方、判定の結果、ＲＡＩＤコントローラ３３１Ａからの応答が無かった場合には（Ｓ５３でＮｏ）、ＣＰＵ３１０Ａは、ステップＳ５５へ処理を進める。
【００６８】
ステップＳ５５で、ＣＰＵ３１０Ａは、ＲＡＩＤコントローラ３３１Ａに対して、アクセス命令に対する応答の再請求を送信するとともに、応答の再請求の送信回数をカウントし、ステップＳ５４へ処理を進める。
【００６９】
ステップＳ５４で、ＣＰＵ３１０Ａは、アクセス命令に対する応答の再請求の送信回数が、所定値（例えば４回）未満か否かを判定する。判定の結果、応答の再請求の送信回数が所定値未満である場合は（Ｓ５４でＹｅｓ）、ＣＰＵ３１０Ａは、ステップＳ５３に処理を戻す。一方、判定の結果、応答の再請求の送信回数が所定値以上である場合は（Ｓ５４でＮｏ）、ＣＰＵ３１０Ａは、ステップＳ５６へ処理を進め、自系の情報処理装置１０Ａのシャットダウンを行い、処理を終了する（ＥＮＤ）。
【００７０】
上記系切替処理により、他系の情報処理装置から系切替処理の要求を受信した場合には、自系の情報処理装置は、アクセス命令に対する応答がないことが原因のタイムアウトであったか否かを判断することができる。そして、タイムアウトが、アクセス命令に対する応答がないことが原因でなかった場合（つまり、ＨＤＤ以外の故障等が原因であった場合）には、自系の情報処理装置を即座にシャットダウンさせることができる。
【００７１】
一方、タイムアウトが、アクセス命令に対する応答がないことが原因であった場合には、アクセス命令の再請求を、所定回数送信する回復待ち処理を行うことができる。つまり、ＲＡＩＤ装置がＲＡＩＤ状態切替処理（ＨＤＤの切り離し処理（回復）処理）を行っていることが原因で、アクセス命令に対する応答がなくタイムアウトとなった場合には、回復待ち処理により、即座にシャットダウンせず、ＲＡＩＤ状態切替処理の間の待ち時間をとって自系の情報処理装置の運用を継続することができる。
【００７２】
上述の機能を備えたことにより、本実施形態に係る多重化システムにおいては、自系のアクセス命令に対する応答が遅延した場合に、理由に関わらず、タイムアウト処理によって系切替を行って、即座に、自系の情報処理装置をシャットダウンしていた従来の多重化システムに比べ、自系のアクセス命令に対する応答が遅延した場合に、理由を判断し、例えば、一部のＨＤＤが故障しただけであれば、即座にその情報処理装置をシャットダウンせずに、ＲＡＩＤ状態切替処理を待つことで、運用を継続することができる。
【００７３】
次に、本実施形態に係る多重化システムの系切替処理の他の例を説明する。図６は、系切替処理の他の例を示すフローチャートである。
【００７４】
ステップＳ６１で、ＣＰＵ３１０Ａは、従系のＣＰＵ３１０Ｂから、系切替処理の要求Ｓ２を受信したか否かの判定を行う。判定の結果、系切替処理の要求Ｓ２を受信していない場合には（Ｓ６１でＮｏ）、ＣＰＵ３１０Ａは、ステップＳ６１に処理を戻す。一方、判定の結果、系切替処理の要求Ｓ２を受信した場合には（Ｓ６１でＹｅｓ）、ＣＰＵ３１０Ａは、ステップＳ６２に処理を進める。
【００７５】
ステップＳ６２で、ＣＰＵ３１０Ａは、タイムアウトが、アクセス命令に対する応答がないことが原因か否かの判定を行う。判定の結果、タイムアウトが、アクセス命令応答がないことが原因の場合は（Ｓ６２でＹｅｓ）、ＣＰＵ３１０Ａは、ステップＳ６３へ処理を進める。一方、判定の結果、タイムアウトが、アクセス命令応答がないこと以外の原因の場合は（Ｓ６２でＮｏ）、ＣＰＵ３１０Ａは、ステップＳ６７へ処理を進め、自系の情報処理装置１０Ａをシャットダウンし、処理を終了する（ＥＮＤ）。
【００７６】
ステップＳ６３で、ＣＰＵ３１０Ａは、アクセス命令に対するＲＡＩＤコントローラ３３１Ａからの応答があったか否かの判定を行う。判定の結果、ＲＡＩＤコントローラ３３１Ａから応答があった場合には（Ｓ６３でＹｅｓ）、ＣＰＵ３１０Ａは、処理を終了する（ＥＮＤ）。一方、判定の結果、ＲＡＩＤコントローラ３３１Ａからの応答が無かった場合には（Ｓ６３でＮｏ）、ＣＰＵ３１０Ａは、ステップＳ６４へ処理を進める。
【００７７】
ステップＳ６４で、ＣＰＵ３１０Ａは、アクセス命令に対する応答待ちの経過時間（この時間を、以下の説明では「変数：Ｔｉｍｅ３」という場合がある）が、予め規定された規定値以下であるか否かの判定を行う。
【００７８】
Ｓ６４の判定の結果、「変数：Ｔｉｍｅ３」が規定値以下である場合は（Ｓ６４でＹｅｓ）、ＣＰＵ３１０Ａは、ステップＳ６３へ処理を戻す。
【００７９】
Ｓ６４の判定の結果、「変数：Ｔｉｍｅ３」が規定値を超えた場合は（Ｓ６４でＮｏ）、ＣＰＵ３１０Ａは、ステップＳ６５へ処理を進める。
【００８０】
ステップＳ６５で、ＣＰＵ３１０Ａは、ＲＡＩＤコントローラ３３１Ａに対して、アクセス命令に対する応答の再請求を送信するとともに、応答の再請求の送信回数をカウントし、ステップＳ６６へ処理を進める。
【００８１】
ステップＳ６６で、ＣＰＵ３１０Ａは、アクセス命令に対する応答の再請求の送信回数が、所定値（例えば４回）未満か否かを判定する。判定の結果、応答の再請求の送信回数が所定値未満である場合は（Ｓ６６でＹｅｓ）、ＣＰＵ３１０Ａは、ステップＳ６８で、「変数：Ｔｉｍｅ３」を０に戻し、ステップＳ６３に処理を戻す。
【００８２】
一方、判定の結果、応答の再請求の送信回数が所定値以上である場合は（Ｓ６６でＮｏ）、ＣＰＵ３１０Ａは、主系の情報処理装置１０Ａのシャットダウンを行い、処理を終了する（ＥＮＤ）。
【００８３】
上記処理では、図５の系切替処理に加えて、回復待ち処理について、アクセス命令の再請求を所定回数送信することに加え、再請求の間隔を所定時間設定した。これにより、回復待ち時間をより適切に設定することができる。
【００８４】
以上、本発明の実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
【００８５】
例えば、上記実施形態においては、従系の情報処理装置１０Ｂが主系の情報処理装置１０Ａに系切替処理の要求を送信し、系切替要求を受信した情報処理装置１０Ａが系切替処理を実行していたが、これに限られるものではない。一方の系の情報処理装置が主体となって系切替を行なってもよい。具体的には、例えば、主系の情報処理装置１０Ａにおいて、図２の処理においてステップＳ２２がＮｏの場合に、ＣＰＵ３１０Ａは、タイムアウトであるとして、運用系を、他系の情報処理装置１０Ｂから主系の情報処理装置１０Ａに移行させる系切替処理を自ら起動することにしてもよい。それ以降は、図５のＳ５２以降の処理、又は図６のＳ６２以降の処理となる。これにより、他系の情報処理装置から系切替処理の要求によらず、自系の情報処理装置の系切替処理を行うことが可能となる。
【００８６】
また例えば、上記実施形態においては、図５のＳ５６の処理（又は、図６のＳ６７の処理）についてシャットダウンを実行していたが、これに限られるものではない。例えば、ＣＰＵ３１０Ａはシャットダウンに代えて、リセットをしてもよいものである。
【符号の説明】
【００８７】
１              多重化システム
１０Ａ（Ｂ）    情報処理装置
２００Ａ（Ｂ）  ソフトウェア部
２１０Ａ（Ｂ）  ディスクアクセス処理機能
２２０Ａ（Ｂ）  ソフトウェアタイムアウト処理機能
２３０Ａ（Ｂ）  系切替処理機能
２４０Ａ（Ｂ）  シャットダウン処理機能
３００Ａ（Ｂ）  ハードウェア部
３１０Ａ（Ｂ）  ＣＰＵ
３２０Ａ（Ｂ）  ＬＡＮインターフェース
３３０Ａ（Ｂ）  ＲＡＩＤ装置
３３１Ａ（Ｂ）  ＲＡＩＤコントローラ
３３２Ａ（Ｂ）  ＨＤＤ１
３３３Ａ（Ｂ）  ＨＤＤ２
【図１】
2014203302.tif 000003
【図２】
2014203302.tif 000004
【図３】
2014203302.tif 000005
【図４】
2014203302.tif 000006
【図５】
2014203302.tif 000007
【図６】
2014203302.tif 000008