(57)【要約】    【課題】装置間通信を伴う処理に時間がかかってもチャネル側のインタフェース接続監視のタイムアウトエラーを発生させないようにする。    【解決手段】装置間通信監視部６２−１は、モジュール間通信を監視する所定の固定タイムアウト時間Ｔ２から経過時間Ｔを差し引いた可変タイムアウト時間（Ｔ２−Ｔ）を算出してモジュール間通信の経過時間を監視する。固定タイムアウト時間Ｔ２は、チャネル３４とのインタフェース接続を監視する所定のインタフェース接続チェック時間Ｔ１より短い時間である。装置間通信監視部６２−１は、モジュール間通信の経過時間Ｔが可変タイムアウト時間（Ｔ２−Ｔ）を越えた場合、チャネル３４にインタフェース接続の切り離しを要求し、その後に制御モジュール１８−２から終了応答が得られた際に、チャネル３４にインタフェース再接続を要求して終了応答を送信する。    【選択図】      図１
2007011672.tif 000002
【特許請求の範囲】
【請求項１】
ボリュームの入出力処理を実行する第１処理装置と第２処理装置を備え、上位装置とのインタフェース接続により前記第１処理装置で受信した処理要求を装置間通信により前記第２処理装置に送信して階層的に処理させ、第２処理装置から終了応答を前記第１処理装置を経由して前記上位装置に転送して前記インタフェース接続を解放させるＲＡＩＤ装置に於いて、
第１処理装置が上位装置から処理要求を受信してから装置間通信により第２処理装置に処理要求を送信するまでの経過時間を検出する経過時間検出部と、
前記第１処理装置と第２処理装置の装置間通信を監視する所定の固定タイムアウト時間から前記経過時間を差し引いた可変タイムアウト時間を算出して装置間通信の経過時間を監視する装置間通信監視部と、
を備えたことを特徴とするＲＡＩＤ装置。
【請求項２】
請求項１記載のＲＡＩＤ装置に於いて、前記装置間通信監視部は、前記装置間通信の経過時間が前記可変タイムアウト時間を越えた場合、前記上位装置にインタフェース接続の切り離しを要求し、その後に前記第２処理装置から終了応答が得られた際に、前記上位装置にインタフェース再接続を要求して前記終了応答を送信することを特徴とするＲＡＩＤ装置。
【請求項３】
請求項１記載のＲＡＩＤ装置に於いて、
前記経過時間検出部は、第１処理装置が上位装置から処理要求を受信してから装置間通信により第２処理装置に第１処理要求を送信して終了応答を得るまでの経過時間を検出し、
装置間通信監視部は、固定タイムアウト時間から前記経過時間を差し引いた可変タイムアウト時間を算出し、装置間通信により第２処理装置に第２処理要求を送信して終了応答を得るまでの経過時間を監視することを特徴とするＲＡＩＤ装置。
【請求項４】
ボリュームの入出力処理を実行する第１処理装置と第２処理装置を備え、上位装置とのインタフェース接続により前記第１処理装置で受信した処理要求を装置間通信により前記第２処理装置に送信して階層的に処理させ、第２処理装置から終了応答を前記第１処理装置を経由して前記上位装置に転送して前記インタフェース接続を解放させるＲＡＩＤ装置の通信接続監視方法に於いて、
第１処理装置が上位装置から処理要求を受信してから装置間通信により第２処理装置に処理要求を送信するまでの経過時間を検出する経過時間検出ステップと、
前記第１処理装置と第２処理装置の装置間通信を監視する所定の固定タイムアウト時間から前記経過時間を差し引いた可変タイムアウト時間を算出して装置間通信の経過時間を監視する装置間通信監視ステップと、
を備えたことを特徴とする通信接続監視方法。
【請求項５】
ボリュームの入出力処理を実行する第１処理装置と第２処理装置を備え、上位装置とのインタフェース接続により前記第１処理装置で受信した処理要求を装置間通信により前記第２処理装置に送信して階層的に処理させ、第２処理装置から終了応答を前記第１処理装置を経由して前記上位装置に転送して前記インタフェース接続を解放させるＲＡＩＤ装置に設けた前記第１処理装置のコンピュータに、
上位装置から処理要求を受信してから装置間通信により第２処理装置に処理要求を送信するまでの経過時間を検出する経過時間検出ステップと、
前記第１処理装置と第２処理装置の装置間通信を監視する所定の固定タイムアウト時間から前記経過時間を差し引いた可変タイムアウト時間を算出して装置間通信の経過時間を監視する装置間通信監視ステップと、
を実行させることを特徴とする通信接続監視プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、上位装置からの処理要求に対し複数の処理装置で階層的に処理を実行して応答する際の通信タイムアウト時間を監視するＲＡＩＤ装置、通信接続監視方法及びプログラムに関し、特に階層的処理に時間がかかっても上位装置のチャネル接続のタイムアウト時間をオーバーしないように応答するＲＡＩＤ装置、通信接続監視方法及びプログラムに関する。
【背景技術】
【０００２】
従来、グローバルサーバやオープンサーバ等のストレージ装置として使用されるＲＡＩＤ装置にあっては、複数の制御モジュール、チャネルアダプタ、デバイスアダプタ、ディスクエンクロージャ及びルータで構成されている。
【０００３】
制御モジュールには、ＣＰＵ及びキャッシュ等が搭載され、ストレージ装置全体の動作を制御する。チャネルアダプタは、ＲＡＩＤ装置と各種サーバとを接続するモジュールであり、ファイバチャネル、ｉＳＣＳＩ等のインタフェースを使用している。デバイスアダプタは、制御モジュールと複数の磁気ディスクドライブを搭載したドライブエンクロージャとを接続するモジュールであり、ファイバチャネルインタフェースを使用している。更に、ルータは制御モジュール、チャネルアダプタ及びデバイスアダプタの間を高速に接続するためのモジュールである。
【０００４】
このような従来のＲＡＩＤ装置にあっては、上位装置であるサーバのチャネルによるインタフェース接続により発行された入出力要求のコマンドを受信してボリュームに対する入出力処理をキャッシュを経由して実行している。
【０００５】
通常、チャネルとＲＡＩＤ装置とのインタフェース接続の通信時間は、インタフェース接続チェックＩＣＣ（Ｉｎｔｅｒｆａｃｅ  Ｃｏｎｎｅｃｔｉｏｎ  Ｃｈｅｃｋ）により監視されており、チャネルとＲＡＩＤ装置間が接続状態のまま一定時間経過した場合にＩＣＣタイムアウトエラーと判定し、チャネル側でＲＡＩＤ装置との接続を強制的に切り離し、ＲＡＩＤ装置の異常を判定してその後の入出力要求を抑止させるようにしている。
【０００６】
このようにチャネル側でインタフェース接続チェックＩＣＣのタイムアウトエラーが発生する要因の１つに、チャネルからの処理要求に対しＲＡＩＤ装置に設けた２つの制御モジュールで階層的に処理を実行する際のモジュール間通信（装置間通信）によって処理に時間がかかる場合が挙げられる。
【０００７】
そのため従来のＲＡＩＤ装置においては、２つの制御モジュールによる階層的処理のための装置間通信を監視するタイムアウト時間として、チャネル側のインタフェース接続チェックＩＣＣのタイムアウト時間よりも短い時間をタイマ値に設定し、２つの制御モジュールによる階層的処理に時間がかかる場合には、チャネルとの通信接続のタイムアウトエラーが発生する前に、２つの制御モジュールにおける装置間通信についてタイムアウトエラーを発生させ、チャネルに対しＲＡＩＤ装置側からインタフェース接続の切り離しを要求し、インタフェース接続チェックＩＣＣのエラーが判定される前にインタフェース接続を解除するようにしている。
【０００８】
図１１は従来のＲＡＩＤ装置における通信接続監視処理の説明図である。図１１において、チャネル２００は時刻ｔ１でＲＡＩＤ装置２０２に設けた制御モジュール２０４とのインタフェース接続を確立して処理要求２０８を送信する。制御モジュール２０４は処理要求２０８を解読し、制御モジュール２０６との間に装置間通信を確立して時刻ｔ２で処理要求２１０を送信する。
【０００９】
制御モジュール２０６は処理要求２１０に対応した処理実行２１５を行い、時刻ｔ４で正常終了の処理応答２１２を返し、これを受けて制御モジュール２０４は時刻ｔ６でチャネル２００に処理応答２１４を転送し、チャネル２００はＲＡＩＤ装置２０２との接続を解放する。
【００１０】
このときチャネル２００は時刻ｔ１でインタフェース接続チェック（ＩＣＣ）２１６のタイムアウト時間Ｔ１をタイマ値に設定し、タイムアウト時間Ｔ１内にＲＡＩＤ装置２０２から応答があるか否か監視している。
【００１１】
また制御モジュール２０４にあっては、時刻ｔ２で装置間通信を開始した際に、モジュール間通信チェック２１８として、チャネル側のタイムアウト時間Ｔ１より短い装置間通信のタイムアウト時間Ｔ２をタイマ値に設定して制御モジュール２０６から処理応答２１２が得られるか否か監視している。
【００１２】
図１１の場合、制御モジュール２０４，２０６による階層的処理に遅れはなく、装置間通信のタイムアウト時間Ｔ２によるエラー、及びチャネル２００側のインタフェース接続チェックＩＣＣのタイムアウト時間Ｔ１によるエラーはいずれも発生せず、処理を正常に終了させている。
【００１３】
図１２は制御モジュール２０６の階層的な処理に時間がかかった場合である。この場合には、時刻ｔ２から装置間通信を確立して制御モジュール２０６の処理実行２１５−１を開始しているが、その処理に時間がかり、時刻ｔ４で処理応答が出る前の時刻ｔ３でモジュール間通信チェック２１８によるタイムアウト時間Ｔ２がオーバーしてタイムアウトエラーとなり、チャネル２００に対し接続解除要求２２０を発行することで、チャネル２００とＲＡＩＤ装置２０２のインタフェース接続を解除し、インタフェース接続チェック２１６によるタイムアウト時間Ｔ１のオーバーによるタイムアウトエラーを発生させないようにしている。
【００１４】
また時刻ｔ３でモジュール間通信のタイムアウトエラーを判別してチャネル２００との接続を解除した場合には、制御モジュール２０６の処理実行２１５−１がエラーを起こしている可能性が高いので、時刻ｔ２で発行した処理要求２１０をキャンセルし、再度、同じ内容の処理要求２２２を装置間通信を確立して制御モジュールに２０６発行して同じ処理実行２１５−２を行い、制御モジュール２０６からの処理応答を待つ。時刻ｔ５で処理応答２１２が得られると、制御モジュール２０４は時刻ｔ６でチャネル２００に対しインタフェース再接続を要求し、接続が確立されると、処理応答２１４を転送し、一連の処理を終了している。
【００１５】
なお、タイムアウトエラー後に制御モジュール２０６から処理要求２１０に対する処理応答が得られたとしても、時刻ｔ２で発行した処理要求２１０はタイムアウトエラーの際にキャンセルされているため、処理応答は破棄される。
【特許文献１】特開２００３−２３３５１４号公報
【特許文献２】特開平０７−００６０５８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
しかしながら、このような従来のチャネル側のインタフェース接続チェックのタイムアウト時間Ｔ１より短いタイムアウト時間Ｔ２を設定した装置間通信の監視にあっては、装置間通信を開始するまでの処理に時間がかかった場合、チャネル側のインタフェース接続チェックによるタイムアウトエラーを発生させてしまう問題がある。
【００１７】
図１３は装置間通信を開始するまでの処理が遅延した場合である。図１３において、時刻ｔ１でチャネル２００から処理要求２０８を受信した制御モジュール２０４は何らかの原因により処理遅延２２４を起こし、経過時間Ｔ後の時刻ｔ２で制御モジュール２０６に処理要求２１０を発行している。
【００１８】
このため制御モジュール２０４において装置間通信のタイムアウト時間Ｔ２に時刻ｔ４で達する前の時刻ｔ３において、チャネル２００のタイムアウト時間Ｔ１に達し、インタフェース接続チェック２１６のタイムアウトエラー２２４となり、ＲＡＩＤ装置２０２とのインタフェース接続が切り離され、チャネル２００側がエラー終了し、その後のＲＡＩＤ装置２０２に対する要求や応答を受付けなくなってしまう問題がある。
【００１９】
本発明は、装置間通信を伴う処理に時間がかかってもチャネル側のインタフェース接続監視のタイムアウトエラーを発生させることのないＲＡＩＤ装置、通信接続監視方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００２０】
図１は本発明の原理説明図である。本発明は、ボリュームの入出力処理を実行する第１処理装置（制御モジュール１８−１）と第２処理装置（制御モジュール１８−２）を備え、上位装置（サーバ１２）とのインタフェース接続により第１処理装置で受信した処理要求を装置間通信により第２処理装置に送信して階層的に処理させ、第２処理装置から終了応答を第１処理装置を経由して上位装置に転送してインタフェース接続を解放させるＲＡＩＤ装置を対象とする。
【００２１】
このようなＲＡＩＤ装置につき本発明は、第１処理装置が上位装置から処理要求を受信してから装置間通信により第２処理装置に処理要求を送信するまでの経過時間を検出する経過時間検出部６０−１と、第１処理装置と第２処理装置の装置間通信を監視する所定の固定タイムアウト時間Ｔ２から経過時間Ｔを差し引いた可変タイムアウト時間Ｔｘ（＝Ｔ２−Ｔ）を算出して装置間通信の経過時間を監視する装置間通信監視部６２−１とを備えたことを特徴とする。
【００２２】
ここで、固定タイムアウト時間Ｔ２は、上位装置と第１処理装置とのインタフェース接続の経過時間を監視する所定のインタフェース接続チェック時間Ｔ１より短い時間である。
【００２３】
装置間通信監視部は、装置間通信の経過時間が可変タイムアウト時間を越えた場合、上位装置にインタフェース接続の切り離しを要求し、その後に第２処理装置から終了応答が得られた際に、上位装置にインタフェース再接続を要求して終了応答を送信する。
【００２４】
経過時間検出部は、第１処理装置が上位装置から処理要求を受信してから装置間通信により第２処理装置に第１処理要求（第１トランザクション要求）を送信して終了応答を得るまでの経過時間を検出し、装置間通信監視部は、固定タイムアウト時間から経過時間を差し引いた可変タイムアウト時間を算出し、装置間通信により第２処理装置に第２処理要求（第２トランザクション要求）を送信して終了応答を得るまでの経過時間を監視する。
【００２５】
第１処理装置が装置間通信により第２処理装置に送信する処理要求は、例えば入出力要求に伴う処理情報を２重化する処理要求である。
【００２６】
本発明は、ボリュームの入出力処理を実行する第１処理装置と第２処理装置を備え、上位装置とのインタフェース接続により第１処理装置で受信した処理要求を装置間通信により第２処理装置に送信して階層的に処理させ、第２処理装置から終了応答を第１処理装置を経由して上位装置に転送してインタフェース接続を解放させるＲＡＩＤ装置の通信接続監視方法を対象とする。
【００２７】
このようなＲＡＩＤ装置の通信接続監視方法として本発明は、
第１処理装置が上位装置から処理要求を受信してから装置間通信により第２処理装置に処理要求を送信するまでの経過時間Ｔを検出する経過時間検出ステップと、
第１処理装置と第２処理装置の装置間通信を監視する所定の固定タイムアウト時間Ｔ２から経過時間Ｔを差し引いた可変タイムアウト時間Ｔｘを算出して装置間通信の経過時間を監視する装置間通信監視ステップと、
を備えたことを特徴とする。
【００２８】
本発明は、ボリュームの入出力処理を実行する第１処理装置と第２処理装置を備え、上位装置とのインタフェース接続により第１処理装置で受信した処理要求を装置間通信により第２処理装置に送信して階層的に処理させ、第２処理装置から終了応答を第１処理装置を経由して上位装置に転送してインタフェース接続を解放させるＲＡＩＤ装置に設けた第１処理装置のコンピュータにより実行されるプログラムを対象とする。
【００２９】
このプログラムとして本発明は、ＲＡＩＤ装置に設けた第１処理装置のコンピュータに、  上位装置から処理要求を受信してから装置間通信により第２処理装置に処理要求を送信するまでの経過時間Ｔを検出する経過時間検出ステップと、
第１処理装置と第２処理装置の装置間通信を監視する所定の固定タイムアウト時間Ｔ２から経過時間Ｔを差し引いた可変タイムアウト時間Ｔｘを算出して装置間通信の経過時間を監視する装置間通信監視ステップと、
を実行させることを特徴とする。
【００３０】
なお、本発明による通信接続監視方法及びプログラムの詳細は、本発明による通信接続監視装置と基本的に同じになる。
【発明の効果】
【００３１】
本発明によれば、第１処理装置と第２処理装置の間で装置間通信を開始する前の処理に時間がかかっても、装置間通信を開始するまでの経過時間Ｔを検出し、この経過時間Ｔを予め定めた装置間通信を監視する固定タイムアウト時間Ｔ２から差し引いて可変タイムアウト時間Ｔｘを求め、可変タイムアウト時間Ｔｘにより装置間通信を監視しているため、上位装置側のインタフェース接続監視のタイムアウト時間Ｔ１に達する前に、ＲＡＩＤ装置側で装置間通信のタイムアウトエラーを発生して上位装置との接続を切り離し、上位装置側でのインタフェース接続監視によるタイムアウトエラーの発生を確実に防止することができる。
【００３２】
また本発明による通信接続監視を、ＲＡＩＤ装置に設けた２台の処理装置が装置間通信を用いて上位装置の処理要求に対し連続して異なる階層的処理、例えば２重化処理を２回実行する場合についても、１回目の装置間通信を伴う階層的処理の経過時間Ｔを検出し、２回目の装置間通信を伴う別の階層処理のタイムアウト時間として、装置間通信を監視する固定タイムアウト時間Ｔ２から１回目の経過時間Ｔを差し引いた可変タイムアウト時間Ｔｘを求めて装置間通信を監視しているため、同様に、１回目の階層的処理に時間がかかっても、上位装置側のインタフェース接続監視のタイムアウト時間Ｔ１に達する前に、ＲＡＩＤ装置側で装置間通信のタイムアウトエラーを発生して上位装置とインタフェース接続を切り離し、上位装置側でのインタフェース接続チェック（ＩＣＣ）によるタイムアウトエラーの発生を確実に防止することができる。
【発明を実施するための最良の形態】
【００３３】
図２は本発明が適用されるＲＡＩＤ装置のハードウェア構成のブロック図である。図２において、ＲＡＩＤ装置１０はチャネルアダプタ１６−１１〜１６−２２、制御モジュール１８−１，１８−２、ドライブエンクロージャ２０−１，２０−２を備えている。制御モジュール１８−１には例えばチャネルアダプタ１６−１１によって上位装置としてのサーバ１２が接続され、また制御モジュール１８−２にはチャネルアダプタ１６−２１によってサーバ１４が接続されている。ここでサーバ１２は例えばグローバルサーバであり、サーバ１４は例えばオープンサーバである。
【００３４】
制御モジュール１８−１，１８−２は同じ構成を有し、ＣＰＵ２２、デバイスインタフェース２６−１１，２６−１２，２６−２１、２６−２２、メモリ２８−１、２８−２、ＤＭＡ処理部３０−１，３０−２を設けている。
【００３５】
更にドライブエンクロージャ２０−１，２０−２には例えばハードディスクドライブを用いたディスク装置３２−１１〜３２−１５，３２−２１〜３２−２５が設けられている。尚、ＲＡＩＤ装置１０は最小構成を例にとっており、最大構成としては２つの制御モジュール１８−１，１８−２を８つに増設することができ、またドライブエンクロージャについても拡張筐体を使用することで必要に応じて更に増設することができる。
【００３６】
また制御モジュール１８−１，１８−２に設けたメモリ２８−１，１８−２にはキャッシュメモリとしての使用領域及び入出力制御に必要な制御テーブルの割り当て領域が確保されている。
【００３７】
図３は本発明によるＲＡＩＤ装置の機能構成のブロック図である。図３において、ＲＡＩＤ装置１０に設けた制御モジュール１８−１，１８−２は、チャネルアダプタ１６−１１，１６−２１によりサーバ１２のチャネル３４に接続されている。チャネル３４は、サーバ１２においてＲＡＩＤ装置１０に対する入出力要求が発生した際に、入出力要求に応じたコマンドをチャネルインタフェースの接続を確立した後に発行する。
【００３８】
チャネル３４はＲＡＩＤ装置１０に対しコマンドを発行した後、ＲＡＩＤ装置１０からの正常終了応答を待っており、インタフェース接続確立からの経過時間を検出し、これを予め設定したタイムアウト時間Ｔ１により監視するインタフェース接続チェックＩＣＣによる監視処理を行っている。
【００３９】
チャネル３４においてインタフェース接続チェックによるタイムアウト時間Ｔ１以内にＲＡＩＤ装置１０から発行コマンドに対する正常終了応答が得られない場合は、タイムアウトエラーと判定し、ＲＡＩＤ装置１０とのインタフェース接続を切り離し、エラー終了とし、それ以降の入出力処理を抑止することになる。
【００４０】
ＲＡＩＤ装置１０の制御モジュール１８−１，１８−２は同じ機能構成を備える。これを制御モジュール１８−１について説明すると、制御モジュール１８−１には入出力制御部３５−１が設けられ、入出力制御部３５−１に対しては論理的なボリューム３６−１が接続されている。
【００４１】
入出力制御部３５−１には、リソース処理部３８−１、コピー処理部４０−１、キャッシュ制御部４４−１、ＲＡＩＤ制御部４６−１が設けられている。
【００４２】
リソース処理部３８−１は上位装置であるサーバ１２からの入出力要求の排他や監視を行う。コピー処理部４０−１はＲＡＩＤ装置内部及び外部の別のＲＡＩＤ装置との間でボリューム単位でのコピー処理を行う。
【００４３】
キャッシュ制御部４４−１は、ユーザデータ管理とキャッシュ制御を行う。キャッシュ制御部４４−１におけるユーザデータ管理は、ボリューム３６−１に対し入出力処理が実行されたユーザファイルを、メモリ２８−１に設けたユーザデータ管理テーブル５２−１を使用して管理する。
【００４４】
ユーザデータ管理テーブル５２−１は２重化されており、同じ内容を持つテーブルが制御モジュール１８−２のメモリ２８−２にミラーテーブル５４−２として設けられている。この点は制御モジュール１８−２側についても同様であり、メモリ２８−２にユーザデータ管理テーブル５２−２が設けられ、これと同じ内容を持つミラーテーブル５４−１が制御モジュール１８−１のメモリ２８−１に設けられている。
【００４５】
このため、制御モジュール１８−１のキャッシュ制御部４４−１でユーザデータ管理テーブル５２−１を更新する際には、更新後にＤＭＡ３０−１，３０−２によるモジュール間通信を使用して、制御モジュール１８−２のメモリ２８−２に設けたミラーテーブル５４−２の内容も同時に更新することで、２重化している。
【００４６】
このようなユーザデータ管理テーブル５２−１，５２−２に対し同じ内容のミラーテーブル５４−１，５４−２を設けた二重化は、制御モジュール１８−１，１８−２のいずれか一方が故障により縮退した際に、正常な制御モジュール側で縮退前の処理を直ちに引き継ぐためである。
【００４７】
またキャッシュ制御部４４−１は、サーバ１２からのリード要求及びライト要求に対するキャッシュメモリの管理を行っており、リード要求またはライト要求に対するヒットとミスヒットの判定、及びステージングやライトバックなどのスケジュール処理を実行する。キャッシュ制御部４４−１が管理するメモリ２８−１のキャッシュ領域は、ローカルキャッシュ領域４８−１とミラー領域５０−１に分けられている。ローカルキャッシュ領域４８−１とミラー領域５０−１は、全キャッシュ領域の２分の１の領域をそれぞれ割り当てている。
【００４８】
ローカルキャッシュ領域４８−１にはサーバ１２の入出力要求に伴うユーザデータが格納され、ユーザデータはリードデータとライトデータ（ダーティデータ）に分類される。リードデータは、サーバ１２のリード要求によりボリューム３６−１からローカルキャッシュ領域４８−１にステージングされたデータである。またライトデータ（ダーティデータ）はサーバ１２のライト要求により書き込まれたデータであり、別の制御モジュール１８−２のミラー領域５０−２に対する同じデータの書込みにより２重化してデータの保証を行っている。
【００４９】
メモリ２８−１におけるローカルキャッシュ領域４８−１とミラー領域５０−１の関係は制御モジュール１８−２のメモリ２８−２についても同様であり、自分自身のローカルキャッシュ領域４８−２に対し、サーバ１２からの入出力要求に伴うリードデータとライトデータを格納しており、ライトデータについては別の制御モジュール１８−１のミラー領域５０−１に同じデータを格納して、２重化によりデータ保証を行っている。
【００５０】
ローカルキャッシュ領域４８−１，４８−２のライトデータのミラー領域５０−１，５０−２に対する書込みによる２重化は、制御モジュール１８−１，１８−２のいずれか一方が故障により縮退した際に、正常な制御モジュール側で縮退前のユーザデータをそのまま引き継ぐことを可能とする。
【００５１】
制御モジュール１８−１，１８−２におけるローカルキャッシュ領域４８−１，４８−２及びミラー領域５０−１，５０−２の関係は、ＲＡＩＤ装置１０に少なくとも３つの制御モジュールを設けた場合に有効に機能するサイクリック構成を採用している。
【００５２】
３つ以上の制御モジュールで構成されるサイクリック構成にあっては、複数の制御モジュールのうちの１つが故障により縮退した場合、縮退した制御モジュール上に存在したライトデータを、そのミラー領域を保持している正常な制御モジュールが引き継ぐことになる。３つ構成の制御モジュールで１つが縮退した場合、残り２つの制御モジュールで２重化構成が継続でき、更に１つが縮退すると、２重化は解除することになる。
【００５３】
ＲＡＩＤ制御部４６−１は、ＲＡＩＤレベル３、ＲＡＩＤレベル４、ＲＡＩＤレベル５といった各ＲＡＩＤレベルでのディスクエンクロージャ側に対する入出力処理を制御する。例えば制御モジュール１８−１にあっては、ボリューム３６−１に対しＲＡＩＤレベル４で入出力処理を実行しており、一方、制御モジュール１８−２のＲＡＩＤ制御部４６−２にあっては、ボリューム３６−２に対しＲＡＩＤレベル５で入出力処理を実行している。
【００５４】
更に入出力制御部３５−１には、本発明の装置間通信接続の監視、即ち制御モジュール１８−１，１８−２間のモジュール間通信接続を監視するための機能として、経過時間検出部６０−１と装置間通信監視部６２−１が設けられている。
【００５５】
経過時間検出部６０−１は、制御モジュール１８−１でサーバ１２のチャネル３４から処理要求を受信してから、ＤＭＡ３０−１，３０−２によるモジュール間通信接続の確立により、制御モジュール１８−２に対し階層的な処理要求を送信するまでの経過時間Ｔを検出する。
【００５６】
この制御モジュール１８−１，１８−２の間でモジュール間通信を必要とするサーバ１２のチャネル３４からの処理要求としては、ユーザデータ管理テーブル５２−１を２重化するユーザデータ管理処理のための処理要求、及びローカルキャッシュ領域４８−１に対するライトデータの書込みを２重化するためのライト要求がある。それ以外にも、制御モジュール１８−１に対する処理要求で、その下位に位置する制御モジュール１８−２に処理を要求し、制御モジュール１８−２の処理結果を応答する適宜の処理要求が含まれる。
【００５７】
装置間通信監視部６２−１は、制御モジュール１８−１，１８−２の間でモジュール間通信接続を確立して通信を開始した際に、モジュール間通信を監視する所定の固定タイムアウト時間Ｔ２から経過時間検出部６０−１で検出したＴを差し引いた可変タイムアウト時間Ｔｘを
Ｔｘ＝Ｔ２−Ｔ
として算出し、この可変タイムアウト時間Ｔｘにより、モジュール間通信の経過時間Ｔを監視する。
【００５８】
ここで制御モジュール１８−１，１８−２におけるモジュール間通信を開始するための固定タイムアウト時間Ｔ２は、チャネル３４側で行っているインタフェース接続チェックＩＣＣにおけるタイムアウト時間Ｔ１より短い時間を設定しており、サーバ１２のチャネル３４におけるインタフェース接続チェックのタイムアウト時間Ｔ１に達する前にＲＡＩＤ装置１０側でタイムアウト時間Ｔ２に達して、タイムアウトエラーによりチャネル３４との接続を開放する要求を行い、これによってチャネル３４側でのタイムアウトエラーが起きないようにしている。
【００５９】
装置間通信監視部６２−１は、算出した可変タイムアウト時間Ｔｘを使用してモジュール間通信接続の経過時間Ｔを監視している間に経過時間Ｔが可変タイムアウト時間Ｔｘに達しても制御モジュール１８−２側から処理の終了応答が得られない場合には、モジュール間通信接続のタイムアウトエラーを判定し、チャネル３４に対しインタフェース接続の切り離しを要求し、これによってチャネル３４側におけるインタフェース接続チェック（ＩＣＣ）によるタイムアウト時間Ｔ１がタイムオーバーとなることによるタイムアウトエラーの発生を防いでいる。
【００６０】
モジュール間通信接続の可変タイムアウト時間Ｔｘによるタイムアウトエラーにより、チャネル３４とのインタフェース接続を切り離した後については、処理依頼先となる制御モジュール１８−２からの正常終了応答の受信を監視しており、制御モジュール１８−２から正常終了応答が得られると、チャネル３４に対しインタフェースの接続要求を行い、これを受けてチャネル３４がインタフェースの再接続を確立すると、このとき制御モジュール１８−２から受けている正常終了応答を制御モジュール１８−１からチャネル３４に送信し、チャネル３４からの処理要求を正常終了させることになる。
【００６１】
このような制御モジュール１８−１側の機能構成は制御モジュール１８−２についても同様であり、入出力制御部３５−２にはリソース処理部３８−２、コピー処理部４０−２、キャッシュ制御部４４−２及びＲＡＩＤ制御部４６−２が設けられる。
【００６２】
また、制御モジュール１８−２に対しサーバ１２のチャネル３４から処理要求が行われた際のモジュール間通信接続を監視するため、経過時間検出部６０−２と装置間通信監視部６２−２が設けられている。更にメモリ２８−２については、自分自身のローカルキャッシュ領域４８−２に加え、制御モジュール１８−１側のローカルキャッシュ領域４８−１に対応したミラー領域５０−２を設けている。また自分自身のユーザデータ管理テーブル５２−２に加え、制御モジュール１８−１のユーザデータ管理テーブル５２−１を二重化するためのミラーテーブル５４−２を設けている。
【００６３】
図４は、ＲＡＩＤ装置１０に設けた制御モジュール１８−１がサーバ１２のチャネル３４からの処理要求を実行した際のモジュール間通信接続の監視処理を行う場合の機能構成である。図４において、サーバ１２のチャネル３４がＲＡＩＤ装置１０の制御モジュール１８−１に処理要求を行い、これに基づき制御モジュール１８−１がＤＭＡ３０−１，３０−２によるモジュール間通信接続を確立して、制御モジュール１８−２に階層的な処理を要求した場合のモジュール間通信接続の監視のため、制御モジュール１８−１の入出力制御部３５−１に設けている経過時間検出部６０−１と装置間通信監視部６２−１の機能が有効となる。
【００６４】
またサーバ１２のチャネル３４からの入出力要求がユーザデータのライト要求であった場合には、メモリ２８−１のローカルキャッシュ領域４８−１に対するライトデータの格納または更新が行われ、また、このユーザデータの更新に伴い、ユーザデータ管理テーブル５２−１の登録もしくは更新が行われることから、それぞれを有効な機能として示している。
【００６５】
また二重化のミラー先となる制御モジュール１８−２については、メモリ２８−２のローカルキャッシュ領域４８−１に対応したミラー領域５０−２が有効となり、またユーザデータ管理テーブル５２−１に対応したミラーテーブル５４−２が有効となることから、これらを有効な部分として示している。
【００６６】
図５は図４の機能構成につき、本発明によるモジュール間通信接続の監視処理の説明図である。図５において、チャネル３４及びＲＡＩＤ装置１０に設けた制御モジュール１８−１，１８−２の中の処理は、縦軸方向が経過時間ｔを表わしている。
【００６７】
チャネル３４において、時刻ｔ１でＲＡＩＤ装置１０に対する処理要求が発生すると、チャネルインタフェース状態６４を接続６５とし、ＲＡＩＤ装置１０の制御モジュール１８−１に処理要求６６を送信する。制御モジュール１８−１にあっては、処理要求６６をチャネル３４から受信した時刻ｔ１でタイマを起動し、時刻ｔ２で制御モジュール１８−１から制御モジュール１８−２に対しモジュール間通信接続を確立して処理要求７２を送信するまでの経過時間Ｔを検出する。
【００６８】
ここで、時刻ｔ１で処理要求６６を受信してから時刻ｔ２でモジュール間通信接続を確立して処理要求７２を発行するまでに何らかの理由により処理遅延７０が発生していたとすると、経過時間Ｔは、その分、長くなる。本発明にあっては、時刻ｔ２でモジュール間通信接続を確立した際に検出された経過時間Ｔに基づき、モジュール間通信について定めた所定の固定タイムアウト時間Ｔ２から、時刻ｔ１からｔ２までの経過時間Ｔを差し引いた可変タイムアウト時間Ｔｘを算出し、この可変タイムアウト時間Ｔｘを使用して時刻ｔ２以降のモジュール間通信チェック７４を実行する。
【００６９】
一方、チャネル３４にあっては、時刻ｔ１でインタフェース接続によりＲＡＩＤ装置１０に対し処理要求６６を発行すると同時に、所定のタイムアウト時間Ｔ１を設定してインタフェース接続チェック（ＩＣＣ）６８を行っている。ここで、時刻ｔ２で可変タイムアウト時間Ｔｘの算出に使用しているモジュール間通信の固定タイムアウト時間Ｔ２は、チャネル３４におけるインタフェース接続チェック６８のタイムアウト時間Ｔ１より短い時間である。
【００７０】
時刻ｔ２で制御モジュール１８−２に対し処理要求７２を発行し、制御モジュール１８−２で処理実行８２−１を行っている途中の時刻ｔ３でモジュール間通信接続の開始時刻ｔ２からの経過時間Ｔ２が可変タイムアウト時間Ｔｘを超えると、タイムアウトエラーが発生する。
【００７１】
このモジュール間通信チェック７４におけるタイムアウトエラーに基づき、制御モジュール１８−１はチャネル３４に対し接続解除要求７８を行う。これを受けてチャネル３４は、チャネルインタフェース状態６４を接続解除８０とする。このようにＲＡＩＤ装置１０側の制御モジュール１８−１における処理遅延７０により、モジュール間通信チェックにつきタイムアウトエラーが先に発生することで、チャネル３４にあっては、インタフェース接続チェック６８によるタイムアウト時間Ｔ１に達する時刻ｔ４以前の時刻ｔ３で接続解除要求７８が行われてインタフェース接続が切り離され、これによってＲＡＩＤ装置１０側で処理遅延があっても、チャネル３４におけるインタフェース接続チェック６８のタイムアウトエラーの発生を未然に防いでいる。
【００７２】
また時刻ｔ３でモジュール間通信のタイムアウトエラーを判別してチャネル３４との接続を解除した場合には、制御モジュール１８−２の処理実行８２−１がエラーを起こしている可能性が高いので、時刻ｔ２で発行した処理要求７２をキャンセルし、再度、同じ内容の処理要求７６を装置間通信を確立して制御モジュール１８−２発行して同じ処理実行８２−２を行い、制御モジュール１８−２からの処理応答を待つ。時刻ｔ５で処理応答８４が得られると、制御モジュール１８−１は時刻ｔ６でチャネル３４に対しインタフェース再接続を要求し、接続８６が確立されると、処理応答８５を転送し、一連の処理を終了している。
【００７３】
なお、タイムアウトエラー後に制御モジュール１８−２から処理実行８２−１の処理応答が得られたとしても、最初の処理要求７２はタイムアウトエラーの際にキャンセルされているため、この処理応答は破棄される。
【００７４】
図６は図５におけるモジュール間通信チェックによるタイムアウトエラーが発生した際のチャネルのインタフェース接続の解除と解除後の再接続の詳細を示した説明図である。図６において、制御モジュール１８−１でモジュール間通信の経過時間が可変タイムアウト時間Ｔｘを超えてタイムアウトエラー８８が発生すると、チャネル３４に対し接続解除要求７８が行われる。この接続解除要求７８を受けて、チャネル３４はチャネルインタフェース状態６４を、それまでの接続６５から接続解除８０とし、接続解除応答９０を制御モジュール１８−１に返す。
【００７５】
接続解除応答９０を受けた制御モジュール１８−１は、図５の時刻ｔ２の処理要求７２による制御モジュール１８−２の処理実行８２−１がエラーを起こしている可能性が高いので、時刻ｔ２で発行した処理要求７２をキャンセルし、再度、同じ内容の処理要求７６を装置間通信を確立して制御モジュール１８−２に発行して同じ内容の処理実行８２−２を行い、制御モジュール１８−２からの処理応答を待つ。
【００７６】
制御モジュール１８−２において、時刻ｔ５で処理実行８２が正常終了となると、制御モジュール１８−２は接続要求９２を制御モジュール１８−１に対し発行し、これを受けて制御モジュール１８−１は時刻ｔ５１でチャネル３４に対し接続要求９４を発行する。
【００７７】
このためチャネル３４は、時刻ｔ５２でチャネルインタフェース状態６４を接続８６としてインタフェース接続を確立し、接続応答９６を制御モジュール１８−１に返し、接続応答９６は更に、そのとき確立されているモジュール間通信を介して制御モジュール１８−２に伝えられる。
【００７８】
このチャネルからの接続応答９６を受けた制御モジュール１８−２は、正常終了の処理応答８４をモジュール間通信を介して制御モジュール１８−１に伝え、これを受けて制御モジュール１８−１は処理応答８５をインタフェース接続を介してチャネル３４に伝え、ＲＡＩＤ装置１０側のモジュール間通信でタイムアウトエラーが発生した後の処理正常終了をチャネル３４に割込み的に応答し、正常終了を判別したチャネル３４は、時刻ｔ７でインタフェース状態を接続解除９８とする。
【００７９】
図７は図５及び図６に対応した本発明によるモジュール間通信監視処理のフローチャートであり、図４に示した入出力制御部３５−１に設けた経過時間検出部６０−１と装置間通信監視部６２−１の処理機能として実行される。
【００８０】
図７において、モジュール間通信監視処理は、チャネルからの処理要求を受けた制御モジュール１８−１がステップＳ１でタイマＴをリセットスタートした後、ステップＳ２で受信コマンドを解読し、コマンド内容から制御モジュール１８−２に対するモジュール間通信を確立して処理を依頼する内容であることを認識する。
【００８１】
続いて、ステップＳ３で制御モジュール１８−２との間にモジュール間通信を確立して階層化処理を要求し、ステップＳ４でタイマＴを停止する。このときタイマＴには、チャネルから処理要求を受信した時刻からモジュール間通信を確立して階層化処理を要求するまでの経過時間が保持されている。
【００８２】
次にステップＳ５でモジュール間通信監視のための可変タイムアウト時間Ｔｘを
Ｔｘ＝Ｔ２−Ｔ
として算出する。続いてステップＳ６でタイマＴをリセットスタートし、ステップＳ７で階層処理の終了応答が制御モジュール１８−２からあるか否かチェックし、ない場合には、ステップＳ８で、経過時間ＴがステップＳ５で算出した可変タイムアウト時間Ｔｘ以上となったか否か監視している。
【００８３】
ここで、制御モジュール１８−１がチャネルからコマンドを受信してから制御モジュール１８−２にモジュール間通信を確立して階層処理要求を行うまでに処理遅れがなかった場合には、経過時間Ｔが可変タイムアウト時間Ｔｘに達する前に制御モジュール１８−２から階層処理の終了応答があり、これがステップＳ７で判別され、ステップＳ１５に進み、チャネルに対し正常終了を応答することになる。
【００８４】
一方、制御モジュール１８−１でチャネルからコマンドを受信してからモジュール間通信接続を確立して制御モジュール１８−２に階層的処理要求を発行するまでに処理が遅延して時間がかかった場合には、ステップＳ７で階層化処理の終了応答が得られる前に、ステップＳ８で経過時間Ｔが可変タイムアウト時間Ｔｘに達し、ステップＳ９に進んでモジュール間通信のタイムアウトエラーが判定される。
【００８５】
このタイムアウトエラーが判定された場合には、ステップＳ１０でチャネル３４に対しインタフェース接続の解除要求を行い、ステップＳ１１でチャネル３４からインタフェース接続解除応答が得られると、ステップＳ１２に進み、ステップＳ３の階層化処理の要求をキャンセルし、再度、階層化処理を制御モジュール１８−２に要求する。
【００８６】
ステップＳ１３では、制御モジュール１８−２からの階層的処理の終了応答の有無をチェックしており、制御モジュール１８−２から処理応答が得られると、ステップＳ１４に進み、チャネル３４に対しインタフェース接続を要求し、ステップＳ１５でチャネルからインタフェース接続応答が得られると、ステップＳ１６でチャネル３４に対し正常終了を応答することになる。
【００８７】
図８はサーバからの入出力要求に対しＲＡＩＤ装置の制御モジュール１８−１，１８−２でモジュール間通信により２重化処理を実行する本発明による通信接続監視処理の説明図である。
【００８８】
図８において、チャネル３４から時刻ｔ１にＲＡＩＤ装置１０の制御モジュール１８−１に対しユーザデータのライト要求などの入出力要求１００が発生したとする。この入出力要求１００の発生に伴い、チャネル３４においては、インタフェース接続チェック１０２の監視機能を有効とし、チャネルインタフェース接続状態６４の接続１０１につき、タイムアウト時間Ｔ１による接続経過時間の監視を開始している。
【００８９】
入出力要求１００を受けたＲＡＩＤ装置１０の制御モジュール１８−１は、時刻ｔ２から入出力処理１０４を実行する。この入出力処理１０４は、例えば入出力要求１００がライト要求であることから、図４のローカルキャッシュ領域４８−１に対するライトデータの書込み、または既に書き込んでいるライトデータの更新を実行する。
【００９０】
同時に、制御モジュール１８−２に対しモジュール間通信接続を確立し、入出力情報の２重化処理１０６のトランザクションを実行する。この入出力情報の２重化処理１０６は、ローカルキャッシュ領域４８−１に対応した制御モジュール１８−２のミラー領域５０−２に、同じライトデータを格納または更新する処理となる。
【００９１】
また制御モジュール１８−１にあっては、時刻ｔ２におけるモジュール間通信接続の確立時点でタイマＴを起動し、経過時間の検出を開始している。時刻ｔ３で制御モジュール１８−１の入出力処理１０４、及び制御モジュール１８−２における入出力情報２重化処理１０６が終了すると、タイマＴを停止することで、タイマＴには時刻ｔ２〜ｔ３の入出力処理１０４と入出力情報二重化処理１０６のトランザクションに要した経過時間Ｔが保持される。
【００９２】
そこで本発明にあっては、最初のトランザクションの経過時間Ｔに基づいて、次のユーザデータ管理に伴うトランザクションにおけるモジュール間通信接続を監視するための可変タイムアウト時間Ｔｘを、固定タイムアウト時間Ｔ２から経過時間Ｔを差し引くことで求め、時刻ｔ４で再びモジュール間通信接続を確立して制御モジュール１８−１でユーザデータ管理処理１１０−１を実行すると同時に、モジュール間通信を利用して制御モジュール１８−２でユーザデータ管理２重化処理１１２−１を実行する。
【００９３】
この時刻ｔ４からのユーザデータ管理のトランザクションの開始と同時に、タイマＴをスタートして経過時間を検出し、算出した可変タイムアウト時間Ｔｘによる監視を開始する。そして、時刻ｔ４のユーザデータ管理のトランザクション開始時刻からの経過時間Ｔが時刻ｔ５で可変タイムアウト時間Ｔｘに達すると、タイムアウトエラー１１６が判定され、チャネル３４に対しインタフェースに対する接続解除要求１１８が発行される。
【００９４】
これを受けてチャネル３４はチャネルインタフェース状態６４を接続解除１２０とする。このため、チャネル３４におけるインタフェース接続チェック１０２によるタイムアウト時間Ｔ１に、時刻ｔ６に達する前にＲＡＩＤ装置１０側のモジュール間通信接続チェックによるタイムアウトエラーでインタフェース接続が解除され、ＲＡＩＤ装置１０側でモジュール間通信を伴う２つのトランザクションが連続して行われることで、処理に時間が掛かってもチャネル３４においてインタフェース接続チェックによるタイムアウトエラーが発生することはない。
【００９５】
また時刻ｔ５でモジュール間通信接続についてのタイムアウトエラー１１６が判定されてチャネル３４との接続が解除された場合（チャネル３４から接続開錠応答が得られた場合）、制御モジュール１８−１によるユーザデータ管理処理１１０−１および制御モジュール１８−２によるユーザデータ管理２重化処理１１２−１はエラーを起こしている可能性が高いので、時刻ｔ４で開始したユーザデータ管理のトランザクションをキャンセルし、再度、ユーザデータ管理処理のトランザクションを開始し、ユーザデータ管理処理１１０−２を実行すると同時に、モジュール間通信を利用して制御モジュール１８−２でユーザデータ管理２重化処理１１２−２を実行する。
【００９６】
制御モジュール１８−２が時刻ｔ７で２重化処理を終了して正常終了の処理応答１２４を発行すると、これに基づき制御モジュール１８−１は時刻ｔ８でチャネル３４に対しインタフェースの接続要求１２６を行い、チャネルインタフェース状態６４が接続１２６に切り替わることによりチャネル３４における入出力要求１００を正常終了させることができる。
【００９７】
なお図８における時刻ｔ５の接続解除要求１１８と処理応答１６の詳細は、図６に示したのと同じになる。また、タイムアウトエラー後に制御モジュール１８−２からユーザデータ管理２重化処理１１２−１の処理応答が得られたとしても、時刻ｔ４における２重化処理のトランザクションはタイムアウトエラーの際にキャンセルされているため、この処理応答は破棄される。
【００９８】
図９及び図１０は、図８に対応した本発明によるモジュール間通信接続監視処理のフローチャートである。図９のフローチャートは、制御モジュール１８−１がチャネル３４からモジュール間通信による２重化処理を必要とする入出力要求、例えばライトコマンドを受信した際に起動する。
【００９９】
モジュール間通信接続監視処理において、まずステップＳ１でチャネル３４から受信したコマンドを解読した後、ステップＳ２で例えばライトデータをローカルキャッシュ領域に書き込むための入出力処理を実行する。続いてステップＳ３で２重化処理が必要か否かをチェックし、２重化処理が必要であれば、ステップＳ４でモジュール間通信を確立して、制御モジュール１８−２に対し入出力情報の２重化処理を要求する。
【０１００】
このときステップＳ５でタイマＴをリセットスタートして経過時間の検出を開始する。続いて、ステップＳ６で制御モジュール１８−２からのミラー領域に対するライトデータの格納についての２重化処理応答が判別されると、ステップＳ７でタイマＴを停止し、これによりタイマＴ２はライト要求に対するローカルキャッシュ領域の格納と２重化のためのミラー領域への格納に要する１回目のトランザクションに要した経過時間が保持される。
【０１０１】
続いてステップＳ８でモジュール間通信監視に使用する可変タイムアウト時間Ｔｘを固定タイムアウト時間Ｔ２から経過時間Ｔを差し引いて算出し、ステップＳ９でユーザデータ管理情報の更新を行った後、ステップＳ１０でモジュール間通信を確立してミラーテーブルに対するユーザ管理情報の２重化処理を要求する。このときステップＳ１１でタイマＴをリセットスタートし、経過時間を検出する。
【０１０２】
続いてステップＳ１２で、制御モジュール１８−２側における２重化終了応答、即ちミラーテーブルに対する２重化処理の終了応答の有無をチェックしており、終了応答がない場合には、ステップＳ１３で経過時間Ｔが可変タイムアウト時間Ｔｘに達したか否か判別している。
【０１０３】
経過時間Ｔ２が可変タイムアウト時間Ｔｘに達する前に制御モジュール１８−２側からユーザデータ管理に関する２重化終了応答がステップＳ１２で判別されると、図１０のステップＳ２１に進み、チャネル３４に対し正常終了を応答して一連の処理を終了する。
【０１０４】
これに対し、２重化終了応答が得られる前にステップＳ１３で経過時間Ｔが可変タイムアウト時間Ｔｘに達した場合には、図１０のステップＳ１４でモジュール間通信のタイムアウトエラーを判定し、ステップＳ１５でチャネル３４に対しインタフェースの接続解除要求を行う。
【０１０５】
続いて図１０のステップＳ１６に進み、チャネル３４からインタフェースの接続解除応答があると、ステップＳ１７に進み、ステップＳ９，Ｓ１０のユーザデータ管理情報の更新と２重化要求をキャンセルし、再度、ユーザデータ管理情報の更新と２重化要求を実行する。
【０１０６】
続いてステップＳ１８で制御モジュール１８−２からユーザデータ管理に関する２重化終了応答を待つ。制御モジュール１８−２から２重化終了応答があると、ステップＳ１９でチャネル３４に対しインタフェースの接続要求を行い、ステップＳ２０でチャネル３４からインタフェース接続が確立されて接続応答が得られると、ステップＳ２１で正常終了を応答して一連の処理を終了する。
【０１０７】
なお、ステップＳ３で受信コマンドから得られた入出力処理が２重化を必要としない処理、例えばリード要求であった場合には、ステップＳ２２でチャネル３４に対し正常終了を応答して一連の処理を終了することになる。
【０１０８】
また、図５〜図１０の実施形態にあっては、図４に示したように、制御モジュール１８−１に対しサーバ１２から入出力要求が行われ、制御モジュール１８−１がプライマリ、制御モジュール１８−２がセカンダリとなった場合のモジュール間通信を伴う処理を例に取るものであったが、サーバ１２が制御モジュール１８−２に対し入出力要求を発行した場合には、制御モジュール１８−２側がプライマリ、制御モジュール１８−１側がセカンダリとなり、この場合には図４における制御モジュール１８−１，１８−２のモジュール間通信接続監視のための処理機能は入れ替わることになる。具体的には、プライマリとなる図３の制御モジュール１８−２に設けている経過時間検出部６０−２と装置間通信監視部６２−２の機能が有効となる。
【０１０９】
また上記の実施形態は、上位装置としてのサーバからの入出力要求を処理するＲＡＩＤ装置に適用した場合のモジュール間通信の監視を例に取るものであったが、本発明はこれに限定されず、上位装置に対し複数の処理装置を接続し、複数の処理装置間で装置間接続を行って、特定の処理装置に対する上位装置の入出力要求に対し、別の処理装置に対し階層的に処理を要求する場合につき、全く同様に適用することができる。
【０１１０】
また本発明は、その目的と利点を損なうことのない適宜の変形を含み、更に上記の実施形態に示した数値による限定は受けない。
【０１１１】
ここで本発明の特徴をまとめて列挙すると次の付記のようになる。
（付記）
（付記１）
ボリュームの入出力処理を実行する第１処理装置と第２処理装置を備え、上位装置とのインタフェース接続により前記第１処理装置で受信した処理要求を装置間通信により前記第２処理装置に送信して階層的に処理させ、第２処理装置から終了応答を前記第１処理装置を経由して前記上位装置に転送して前記インタフェース接続を解放させるＲＡＩＤ装置に於いて、
第１処理装置が上位装置から処理要求を受信してから装置間通信により第２処理装置に処理要求を送信するまでの経過時間を検出する経過時間検出部と、
前記第１処理装置と第２処理装置の装置間通信を監視する所定の固定タイムアウト時間から前記経過時間を差し引いた可変タイムアウト時間を算出して装置間通信の経過時間を監視する装置間通信監視部と、
を備えたことを特徴とするＲＡＩＤ装置。（１）
【０１１２】
（付記２）
付記1記載のＲＡＩＤ装置に於いて、前記固定タイムアウト時間は、前記上位装置と第１処理装置とのインタフェース接続の経過時間を監視する所定のインタフェース接続チェック時間より短い時間であることを特徴とするＲＡＩＤ装置。
【０１１３】
（付記３）
付記１記載のＲＡＩＤ装置に於いて、前記装置間通信監視部は、前記装置間通信の経過時間が前記可変タイムアウト時間を越えた場合、前記上位装置にインタフェース接続の切り離しを要求し、その後に前記第２処理装置から終了応答が得られた際に、前記上位装置にインタフェース再接続を要求して前記終了応答を送信することを特徴とするＲＡＩＤ装置。（２）
【０１１４】
（付記４）
付記１記載のＲＡＩＤ装置に於いて、
前記経過時間検出部は、第１処理装置が上位装置から処理要求を受信してから装置間通信により第２処理装置に第１処理要求を送信して終了応答を得るまでの経過時間を検出し、
装置間通信監視部は、固定タイムアウト時間から前記経過時間を差し引いた可変タイムアウト時間を算出し、装置間通信により第２処理装置に第２処理要求を送信して終了応答を得るまでの経過時間を監視することを特徴とするＲＡＩＤ装置。（３）
【０１１５】
（付記５）
付記４記載のＲＡＩＤ装置に於いて、前記第１処理装置が装置間通信により第２処理装置に送信する処理要求は、前記入出力要求に伴う処理情報を２重化する処理要求であることを特徴とするＲＡＩＤ装置。
【０１１６】
（付記６）
上位装置とのインタフェース接続により前記第１処理装置で受信した処理要求を装置間通信により前記第２処理装置に送信して階層的に処理させ、第２処理装置から終了応答を前記第１処理装置を経由して前記上位装置に転送して前記インタフェース接続を解放させるシステムに於いて、
第１処理装置が上位装置から処理要求を受信してから装置間通信により第２処理装置に処理要求を送信するまでの経過時間を検出する経過時間検出部と、
前記第１処理装置と第２処理装置の装置間通信を監視する所定の固定タイムアウト時間から前記経過時間を差し引いた可変タイムアウト時間を算出して装置間通信の経過時間を監視する装置間通信監視部と、
を備えたことを特徴とするシステム。
【０１１７】
（付記７）
ボリュームの入出力処理を実行する第１処理装置と第２処理装置を備え、上位装置とのインタフェース接続により前記第１処理装置で受信した処理要求を装置間通信により前記第２処理装置に送信して階層的に処理させ、第２処理装置から終了応答を前記第１処理装置を経由して前記上位装置に転送して前記インタフェース接続を解放させるＲＡＩＤ装置の通信接続監視方法に於いて、
第１処理装置が上位装置から処理要求を受信してから装置間通信により第２処理装置に処理要求を送信するまでの経過時間を検出する経過時間検出ステップと、
前記第１処理装置と第２処理装置の装置間通信を監視する所定の固定タイムアウト時間から前記経過時間を差し引いた可変タイムアウト時間を算出して装置間通信の経過時間を監視する装置間通信監視ステップと、
を備えたことを特徴とする通信接続監視方法。（４）
【０１１８】
（付記８）
付記７記載の通信接続監視方法に於いて、前記固定タイムアウト時間は、前記上位装置と第１処理装置とのインタフェース接続の経過時間を監視する所定のインタフェース接続チェック時間より短い時間であることを特徴とする通信接続監視方法。
【０１１９】
（付記９）
付記７記載の通信接続監視方法に於いて、前記装置間通信監視ステップは、前記装置間通信の経過時間が前記可変タイムアウト時間を越えた場合、前記上位装置にインタフェース接続の切り離しを要求し、その後に前記第２処理装置から終了応答が得られた際に、前記上位装置にインタフェース再接続を要求して前記終了応答を送信することを特徴とする通信接続監視方法。
【０１２０】
（付記１０）
付記７記載の通信接続監視方法に於いて、
前記経過時間検出ステップは、第１処理装置が上位装置から処理要求を受信してから装置間通信により第２処理装置に第１処理要求を送信して終了応答を得るまでの経過時間を検出し、
装置間通信監視ステップは、固定タイムアウト時間から前記経過時間を差し引いた可変タイムアウト時間を算出し、装置間通信により第２処理装置に第２処理要求を送信して終了応答を得るまでの経過時間を監視することを特徴とする通信接続監視方法。
【０１２１】
（付記１１）
付記１０記載の通信接続監視方法に於いて、前記第１処理装置が装置間通信により第２処理装置に送信する処理要求は、前記入出力要求に伴う処理情報を２重化する処理要求であることを特徴とする通信接続監視方法。
【０１２２】
（付記１２）
上位装置とのインタフェース接続により前記第１処理装置で受信した処理要求を装置間通信により前記第２処理装置に送信して階層的に処理させ、第２処理装置から終了応答を前記第１処理装置を経由して前記上位装置に転送して前記インタフェース接続を解放させる通信接続監視方法に於いて、
第１処理装置が上位装置から処理要求を受信してから装置間通信により第２処理装置に処理要求を送信するまでの経過時間を検出する経過時間検出ステップと、
前記第１処理装置と第２処理装置の装置間通信を監視する所定の固定タイムアウト時間から前記経過時間を差し引いた可変タイムアウト時間を算出して装置間通信の経過時間を監視する装置間通信監視ステップと、
を備えたことを特徴とする通信接続監視方法。
【０１２３】
（付記１３）
ボリュームの入出力処理を実行する第１処理装置と第２処理装置を備え、上位装置とのインタフェース接続により前記第１処理装置で受信した処理要求を装置間通信により前記第２処理装置に送信して階層的に処理させ、第２処理装置から終了応答を前記第１処理装置を経由して前記上位装置に転送して前記インタフェース接続を解放させるＲＡＩＤ装置に設けた前記第１処理装置のコンピュータに、
上位装置から処理要求を受信してから装置間通信により第２処理装置に処理要求を送信するまでの経過時間を検出する経過時間検出ステップと、
前記第１処理装置と第２処理装置の装置間通信を監視する所定の固定タイムアウト時間から前記経過時間を差し引いた可変タイムアウト時間を算出して装置間通信の経過時間を監視する装置間通信監視ステップと、
を実行させることを特徴とする通信接続監視プログラム。（５）
【０１２４】
（付記１４）
付記1３記載の通信接続監視プログラムに於いて、前記固定タイムアウト時間は、前記上位装置と第１処理装置とのインタフェース接続の経過時間を監視する所定のインタフェース接続チェック時間より短い時間であることを特徴とする通信接続監視プログラム。
【０１２５】
（付記１５）
付記１３記載の通信接続監視プログラムに於いて、前記装置間通信監視ステップは、前記装置間通信の経過時間が前記可変タイムアウト時間を越えた場合、前記上位装置にインタフェース接続の切り離しを要求し、その後に前記第２処理装置から終了応答が得られた際に、前記上位装置にインタフェース再接続を要求して前記終了応答を送信することを特徴とする通信接続監視プログラム。
【０１２６】
（付記１６）
付記１３記載の通信接続監視プログラムに於いて、
前記経過時間検出ステップは、前記上位装置から処理要求を受信してから装置間通信により第２処理装置に第１処理要求を送信して終了応答を得るまでの経過時間を検出し、
装置間通信監視ステップは、固定タイムアウト時間から前記経過時間を差し引いた可変タイムアウト時間を算出し、装置間通信により第２処理装置に第２処理要求を送信して終了応答を得るまでの経過時間を監視することを特徴とする通信接続監視プログラム。
【０１２７】
（付記１７）
付記１６記載の通信接続監視プログラムに於いて、前記装置間通信により第２処理装置に送信する処理要求は、前記入出力要求に伴う処理情報を２重化する処理要求であることを特徴とする通信接続監視プログラム。
【０１２８】
（付記１８）
上位装置とのインタフェース接続により前記第１処理装置で受信した処理要求を装置間通信により前記第２処理装置に送信して階層的に処理させ、第２処理装置から終了応答を前記第１処理装置を経由して前記上位装置に転送して前記インタフェース接続を解放させるシステムに設けた前記第１処理装置のコンピュータに、
第１処理装置が上位装置から処理要求を受信してから装置間通信により第２処理装置に処理要求を送信するまでの経過時間を検出する経過時間検出スステップと、
前記第１処理装置と第２処理装置の装置間通信を監視する所定の固定タイムアウト時間から前記経過時間を差し引いた可変タイムアウト時間を算出して装置間通信の経過時間を監視する装置間通信監視ステップと、
を実行させることを特徴とする通信接続監視方法。
【図面の簡単な説明】
【０１２９】
【図１】本発明の原理説明図
【図２】本発明が適用されたＲＡＩＤ装置のハードウェア構成のブロック図
【図３】本発明によるＲＡＩＤ装置の機能構成のブロック図
【図４】モジュール間通信を必要とする処理要求を実行する際の本発明の機能構成のブロック図
【図５】本発明によるモジュール間通信接続の監視処理の説明図
【図６】図５におけるチャネルのインタフェース接続の解除と解除後の再接続の詳細を示した説明図
【図７】図５及び図６に対応した本発明によるモジュール間通信監視処理のフローチャート
【図８】モジュール間通信により２重化処理を実行する際の本発明による通信接続監視処理の説明図
【図９】図８に対応した本発明によるモジュール間通信監視処理のフローチャート
【図１０】図９に続くモジュール間通信監視処理のフローチャート
【図１１】従来のチャネル側のインタフェース接続チェックとＲＡＩＤ装置側のモジュール間通信接続監視の連携処理の説明図
【図１２】図１１の従来例でモジュール間通信接続がタイムアウトした場合の処理の説明図
【図１３】図１１の従来例でモジュール間通信接続がタイムアウトする前に、チャネルとのインタフェース接続チェックがタイムアウトする問題の説明図
【符号の説明】
【０１３０】
１０：ＲＡＩＤ装置
１２，１４：サーバ
１６−１１，１６−１２，１６−２１，１６−２２：チャネルアダプタ 
１８−１，１８−２：制御モジュール
２０−１，２０−２：ドライブエンクロージャ
２２，２２−１，２２−２：ＣＰＵ
２６−１１，２６−１２，２６−２１，２６−２２：デバイスインタフェース
２８−１，２８−２：メモリ
３０−１，３０−２：ＤＭＡ処理部
３２−１１〜３２−１５，３２−２１〜３２−２５：ディスク装置
３４：チャネル
３５−１，３５−２：入出力制御部
３６−１，３６−２：ボリューム
３８−１，３８−２：リソース処理部
４０−１，４０−２：コピー処理部
４２−１，４２−２：ユーザデータ管理部
４４−１，４４−２：キャッシュ制御部
４６−１，４６−２：ＲＡＩＤ制御部
４８−１，４８−２：ローカルキャッシュ領域
５０−１，５０−２：ミラー領域
５２−１，５２−２：ユーザデータ管理テーブル
６０−１，６０−２：経過時間検出部
５４−１，５４−２：ミラーテーブル
６２−１，６２−２：装置間通信監視部
６４：チャネルインタフェース状態
【図１】
2007011672.tif 000003
【図２】
2007011672.tif 000004
【図３】
2007011672.tif 000005
【図４】
2007011672.tif 000006
【図５】
2007011672.tif 000007
【図６】
2007011672.tif 000008
【図７】
2007011672.tif 000009
【図８】
2007011672.tif 000010
【図９】
2007011672.tif 000011
【図１０】
2007011672.tif 000012
【図１１】
2007011672.tif 000013
【図１２】
2007011672.tif 000014
【図１３】
2007011672.tif 000015
【手続補正書】
【提出日】平成17年9月20日(2005.9.20)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００３６
【補正方法】変更
【補正の内容】
【００３６】
また制御モジュール１８−１，１８−２に設けたメモリ２８−１，２８−２にはキャッシュメモリとしての使用領域及び入出力制御に必要な制御テーブルの割り当て領域が確保されている。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００９５
【補正方法】変更
【補正の内容】
【００９５】
また時刻ｔ５でモジュール間通信接続についてのタイムアウトエラー１１６が判定されてチャネル３４との接続が解除された場合（チャネル３４から接続応答が得られた場合）、制御モジュール１８−１によるユーザデータ管理処理１１０−１および制御モジュール１８−２によるユーザデータ管理２重化処理１１２−１はエラーを起こしている可能性が高いので、時刻ｔ４で開始したユーザデータ管理のトランザクションをキャンセルし、再度、ユーザデータ管理処理のトランザクションを開始し、ユーザデータ管理処理１１０−２を実行すると同時に、モジュール間通信を利用して制御モジュール１８−２でユーザデータ管理２重化処理１１２−２を実行する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００９６
【補正方法】変更
【補正の内容】
【００９６】
制御モジュール１８−２が時刻ｔ７で２重化処理を終了して正常終了の処理応答１２４を発行すると、これに基づき制御モジュール１８−１は時刻ｔ８でチャネル３４に対しインタフェースの接続要求１２６を行い、チャネルインタフェース状態６４が接続１２８に切り替わることによりチャネル３４における入出力要求１００を正常終了させることができる。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００９７
【補正方法】変更
【補正の内容】
【００９７】
なお図８における時刻ｔ５の接続解除要求１１８と処理応答１２６の詳細は、図６に示したのと同じになる。また、タイムアウトエラー後に制御モジュール１８−２からユーザデータ管理２重化処理１１２−１の処理応答が得られたとしても、時刻ｔ４における２重化処理のトランザクションはタイムアウトエラーの際にキャンセルされているため、この処理応答は破棄される。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０１００
【補正方法】変更
【補正の内容】
【０１００】
このときステップＳ５でタイマＴをリセットスタートして経過時間の検出を開始する。続いて、ステップＳ６で制御モジュール１８−２からのミラー領域に対するライトデータの格納についての２重化処理応答が判別されると、ステップＳ７でタイマＴを停止し、これによりタイマＴはライト要求に対するローカルキャッシュ領域の格納と２重化のためのミラー領域への格納に要する１回目のトランザクションに要した経過時間が保持される。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０１０３
【補正方法】変更
【補正の内容】
【０１０３】
経過時間Ｔが可変タイムアウト時間Ｔｘに達する前に制御モジュール１８−２側からユーザデータ管理に関する２重化終了応答がステップＳ１２で判別されると、図１０のステップＳ２２に進み、チャネル３４に対し正常終了を応答して一連の処理を終了する。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】０１１６
【補正方法】変更
【補正の内容】
【０１１６】
（付記６）
上位装置とのインタフェース接続により第１処理装置で受信した処理要求を装置間通信により第２処理装置に送信して階層的に処理させ、第２処理装置から終了応答を前記第１処理装置を経由して前記上位装置に転送して前記インタフェース接続を解放させるシステムに於いて、
第１処理装置が上位装置から処理要求を受信してから装置間通信により第２処理装置に処理要求を送信するまでの経過時間を検出する経過時間検出部と、
前記第１処理装置と第２処理装置の装置間通信を監視する所定の固定タイムアウト時間から前記経過時間を差し引いた可変タイムアウト時間を算出して装置間通信の経過時間を監視する装置間通信監視部と、
を備えたことを特徴とするシステム。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】０１２２
【補正方法】変更
【補正の内容】
【０１２２】
（付記１２）
上位装置とのインタフェース接続により第１処理装置で受信した処理要求を装置間通信により第２処理装置に送信して階層的に処理させ、第２処理装置から終了応答を前記第１処理装置を経由して前記上位装置に転送して前記インタフェース接続を解放させる通信接続監視方法に於いて、
第１処理装置が上位装置から処理要求を受信してから装置間通信により第２処理装置に処理要求を送信するまでの経過時間を検出する経過時間検出ステップと、
前記第１処理装置と第２処理装置の装置間通信を監視する所定の固定タイムアウト時間から前記経過時間を差し引いた可変タイムアウト時間を算出して装置間通信の経過時間を監視する装置間通信監視ステップと、
を備えたことを特徴とする通信接続監視方法。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】０１２８
【補正方法】変更
【補正の内容】
【０１２８】
（付記１８）
上位装置とのインタフェース接続により第１処理装置で受信した処理要求を装置間通信により第２処理装置に送信して階層的に処理させ、第２処理装置から終了応答を前記第１処理装置を経由して前記上位装置に転送して前記インタフェース接続を解放させるシステムに設けた前記第１処理装置のコンピュータに、
第１処理装置が上位装置から処理要求を受信してから装置間通信により第２処理装置に処理要求を送信するまでの経過時間を検出する経過時間検出スステップと、
前記第１処理装置と第２処理装置の装置間通信を監視する所定の固定タイムアウト時間から前記経過時間を差し引いた可変タイムアウト時間を算出して装置間通信の経過時間を監視する装置間通信監視ステップと、
を実行させることを特徴とする通信接続監視方法。
【手続補正１０】
【補正対象書類名】図面
【補正対象項目名】図５
【補正方法】変更
【補正の内容】
【図５】
2007011672.tif 000016