(57)【要約】【課題】  本発明は、外部記憶装置への入出力制御方法に関する。従来の外部記憶装置への入出力制御方法では、正常時の入出力の応答時間は１秒未満であるのに対し、タイムアウトエラーの場合は数十秒から数百秒である。タイムアウトエラー発生時の入出力の応答時間を数秒に高速化する外部記憶装置への入出力制御方法を提供することにある。【解決手段】  本発明は上記目的を達成するために、入出力発行元から発行された入出力を受けた計算機があるパスを使って外部記憶装置に対してその入出力を要求し一定時間を経過しても応答がない場合に、別のパスを使って外部記憶装置に対して同じ入出力を要求し、最初に応答のあったパスの結果を入出力発行元に返し、他のパスで要求中の入出力を取り消すことで、入出力命令が成功するまでの時間を短縮する手段を提供する。【選択図】  図１
2005331999.tif 000002
【特許請求の範囲】
【請求項１】
ある計算機が複数のＦＣ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）アダプタを搭載しており、各
ＦＣアダプタに接続されたＦＣケーブルが、１台以上のＦＣスイッチにより構成されるＦ
Ｃケーブル群を介して、外部記憶装置に接続されたシステムの入出力制御方法において、
あるＦＣアダプタ経由のパスで要求した入出力の応答が一定時間ない場合に、他のＦＣ
アダプタ経由のパスで同様の入出力を要求することを特徴とする入出力制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部記憶装置への入出力制御方法に関する。
【背景技術】
【０００２】
従来の外部記憶装置への入出力制御方法では、入出力を行うパスに障害が発生した場合
などに入出力要求の応答が永久に戻ってこないことがあるため、タイムアウト時間を設定
している。ある入出力要求の応答がタイムアウト時間を経過しても戻ってこない場合に、
その入出力要求に対してタイムアウトエラーとして応答を戻している。
【０００３】
また、高可用性が求められるシステムでは、外部記憶装置へのパスを複数準備し、ある
パスで入出力を行い、そのパスに障害が発生した場合には、別のパスを使用して入出力を
続行する。
【０００４】
なお、特許文献１に記載された外部記憶装置への入出力制御方法では、複数の計算機と外部記憶装置が接続されているシステムにおいて、入出力要求が失敗した情報を蓄積し、その情報から障害を分析することにより、タイムアウト時間を短縮している。
【０００５】
【特許文献１】特開２０００−１３２４１３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来の入出力制御方法では、正常時の入出力の応答時間は１秒未満であるのに対し、タ
イムアウトエラーの場合は数十秒から数百秒である。特開２０００−１２２３１３号公報
に記載された外部記憶装置への入出力制御方法によりタイムアウト時間の短縮を試みても
、外部記憶装置が要求する一般的には数十秒の値よりもタイムアウト時間を短縮すること
はできない。したがって、タイムアウトエラー発生時には数十秒間、システムが停止する
ことになる。
【０００７】
本発明の目的は、タイムアウトエラー発生時の入出力の応答時間を数秒に高速化する外
部記憶装置への入出力制御方法を提供することにある。
【課題を解決するための手段】
【０００８】
本発明は上記目的を達成するために、入出力発行元から発行された入出力を受けた計算
機があるパスを使って外部記憶装置に対してその入出力を要求し一定時間を経過しても応
答がない場合に、別のパスを使って外部記憶装置に対して同じ入出力を要求し、最初に応
答のあったパスの結果を入出力発行元に返し、他のパスで要求中の入出力を取り消すこと
で、入出力命令が成功するまでの時間を短縮する手段を提供する。
【発明の効果】
【０００９】
本発明によれば、タイムアウトエラー発生時の入出力の応答時間を高速化できるという
効果がある。
【発明を実施するための最良の形態】
【００１０】
次に本発明について図面を参照して説明する。
【００１１】
図１は本発明の外部記憶装置への入出力制御方法の実施例を実行する構成例を示すブロ
ック図である。
【００１２】
図１において、本実施例は計算機１と、計算機１で使用される外部記憶装置２と、計算
機１と外部記憶装置２を接続するＦＣ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）ケーブル群３によ
って構成される。計算機１はＦＣアダプタ群４を有する。ＦＣアダプタ群４は複数のＦＣ
アダプタから構成される。ＦＣケーブル群３は少なくとも１つのＦＣスイッチを有する。
これはＦＣケーブル群４の全ＦＣアダプタが外部記憶装置の同一ポートへのパスを持つた
めに必要である。計算機１は、入出力命令を発行する入出力発行元７と、その入出力命令
を処理するインタフェース的役割を果たす入出力Ｉ／Ｆ（ＩｎｔｅｒＦａｃｅ）部６と、
ＦＣアダプタ群４のそれぞれのＦＣアダプタを使って入出力を行う入出力制御部群５とか
ら構成される。入出力制御部群５の各入出力制御部は、ＦＣアダプタ群４の各ＦＣアダプ
タに１対１で存在する。ここで、入出力制御部１はＦＣアダプタ１を、入出力制御部２は
ＦＣアダプタ２を、入出力制御部ｎはＦＣアダプタｎをそれぞれ使用して入出力を行う。
入出力制御部群５は外部記憶装置２に対して、入出力を要求する他に外部記憶装置が現在
要求されている入出力を全てキャンセルすることができる。また、入出力Ｉ／Ｆ部６はパ
ス管理表８と入出力管理表９を有する。
【００１３】
図２はパス管理表８の使用法について説明するものであり、図２（ａ）でそのテーブル
構造について説明する。パス管理表８は、パス欄２１と入出力制御部欄２２と優先度欄２
３を持つ。パス欄２１には、パスＩＤが入る。パスＩＤとは入出力を行うパスを識別する
ための識別子である。入出力制御部欄２２には、入出力制御部ＩＤが入る。入出力制御部
ＩＤは、入出力制御部群５の入出力制御部１、入出力制御部２、入出力制御部ｎの“１、
２、ｎ”の部分である。パスＩＤと入出力制御部ＩＤを照合することで、どのパスでどの
入出力制御部が入出力を行うかが判断できる。優先度欄２３には、優先順位が入る。優先
順位は小さいほど優先度が高いと判断できる。優先順位が同じパスは存在しない。入出力
Ｉ／Ｆ部６はパス管理表８を利用し、優先度が高いパスを使って入出力を行う。パス欄２
１と入出力制御部欄２２の値は固定であり、優先度欄２３の値は、状況によって変化する
。図２（ｂ）はその使用例である。この例ではパスＩＤ“１”のパスが最も優先度が高く
、パスＩＤ“ｎ”のパスが最も優先度が低いことを表す。
【００１４】
図３は入出力管理表９の使用法について説明するものであり、図３（ａ）でそのテーブ
ル構造について説明する。入出力管理表９は、入出力欄３１とパス欄３２と時間欄３３を
持つ。入出力欄３１には、入出力ＩＤが入る。入出力ＩＤとは入出力命令を識別するため
の識別子である。パス欄３２には、パスＩＤが入る。このパスＩＤは、パス管理表８のパ
スＩＤと同じものである。入出力ＩＤとパスＩＤを照合することで、どの入出力命令がど
のパスで入出力を行っているかが判断できる。またパス欄３２には、パスＩＤを複数入れ
ることもできる。時間欄３３には、入出力命令を受け取ってからの経過時間がミリ秒単位
で入る。または経過時間を計算しないことを表す“−”を入れることもできる。図３（ｂ
）はその使用例である。入出力ＩＤ“１”の入出力は、パスＩＤ“１”と“２”のパスで
同時に行われていて、経過時間を計算していないことを表す。入出力ＩＤ“２”の入出力
は、パスＩＤ“１”のパスで行われていて、経過時間が１５ミリ秒であることを表す。
【００１５】
このような構成において、本実施例の外部記憶装置への入出力制御方法について図４、
図５、図６、図７を用いて説明する。
【００１６】
図４は入出力Ｉ／Ｆ部６が入出力発行元７から入出力命令を取得した時の処理の流れを
表す。入出力発行元７から入出力命令を取得すると（ステップ４１）、その入出力命令に
入出力ＩＤ“Ａ”を割り当て（ステップ４２）、パス管理表８から優先度が１のパスＩＤ
“Ｂ”を取得し（ステップ４３）、パスＩＤ“Ｂ”の入出力制御部に入出力を要求し（ス
テップ４４）、入出力管理表９に入出力ＩＤ“Ａ”、パスＩＤ“Ｂ”、経過時間0ミリ秒
のエントリを追加する（ステップ４５）。
【００１７】
図５は入出力Ｉ／Ｆ部の通常処理の流れを表す。入出力Ｉ／Ｆ部６が外部からデータを
取得していなければ（ステップ５１）、１ミリ秒経過するまで待機し（ステップ５２）、
入出力管理表のエントリが空の間は何もせず、エントリが空でない場合は以下の処理を行
う（ステップ５３）。入出力管理表９の全エントリ中で時間欄３３の値が“−”でないエ
ントリについて1ミリ秒加算し（ステップ５４）、その結果１０００ミリ秒を越えなけれ
ば何もせず１０００ミリ秒を越えればそのエントリ“Ａ”についてさらに以下の処理を行
う（ステップ５５）。パス管理表８からエントリ“Ａ”のパスＩＤ以外で、優先度が最も
低いパスＩＤ“Ｂ”を取得し（ステップ５６）、パスＩＤ“Ｂ”の入出力制御部にエント
リ“Ａ”の入出力を要求し（ステップ５７）、エントリ“Ａ”のパス欄３２にパスＩＤ“
Ｂ”を追加し時間欄３３を“−”に変更する（ステップ５８）。もしステップ５１で外部
からデータを取得していれば以下の処理を行う。取得したデータが入出力発行元からの入
出力命令であるなら図４の処理を行い、取得したデータが入出力制御部からの入出力要求
の結果であるなら、その結果が成功かどうかを判断し（ステップ５９）、成功なら図６の
処理を、失敗なら図７の処理を行う。
【００１８】
図６は入出力Ｉ／Ｆ部が入出力要求の結果を取得しその結果が成功だった時の処理の流
れである。パスＩＤ“Ａ”の入出力制御部から入出力ＩＤ“Ｂ”の結果を取得しその結果
が成功であった場合に以下の処理を行う（ステップ６１）。入出力管理表９から入出力Ｉ
Ｄ“Ｂ”のエントリ“Ｃ”を取得し（ステップ６２）、エントリ“Ｃ”のパス欄３２にパ
スＩＤ“Ａ”以外のパスＩＤが存在しなければ以下の処理を行う（ステップ６３）。入出
力管理表９からエントリ“Ｃ”を削除し（ステップ６４）、入出力発行元に入出力命令の
結果を返す（ステップ６５）。もしステップ６３でエントリ“Ｃ”のパス欄３２にパスＩ
Ｄ“Ａ”以外のパスＩＤ“Ｄ”が存在すれば以下の処理を行う。パス管理表８の全エント
リ中でパスＩＤ“Ｄ”より優先度欄２３の値が大きいものを１減算した後パスＩＤ“Ｄ”
の優先順位を全エントリ中の最大値にし（ステップ６６）、入出力管理表からエントリ“
Ｃ”を削除し（ステップ６７）、パスＩＤ“Ａ”の入出力制御部に、外部記憶装置が現在
要求されている入出力を全てキャンセルさせ（ステップ６８）、入出力管理表９の全エン
トリの時間欄３３を“０”に変更しパス欄３２にパスＩＤ“Ｄ”があれば“Ｄ”を削除し
“Ａ”を追加し（ステップ６９）、入出力管理表９の全エントリの入出力ＩＤについてパ
ス欄３２のパスＩＤの入出力制御部に入出力を要求する（ステップ７０）。
【００１９】
図７は入出力Ｉ／Ｆ部が入出力要求の結果を取得しその結果が失敗だった時の処理の流
れである。パスＩＤ“Ａ”の入出力制御部から入出力ＩＤ“Ｂ”の結果を取得しその結果
が失敗であった場合に以下の処理を行う（ステップ７１）。パス管理表８の全エントリ中
でパスＩＤ“Ａ”より優先順位が大きいものを１減算しパスＩＤ“Ａ”の優先順位を全エ
ントリ中の最大値にし（ステップ７２）、入出力管理表９から入出力ＩＤ“Ｂ”のエント
リ“Ｃ”を取得し（ステップ７３）、エントリ“Ｃ”のパス欄３２にパスＩＤ“Ａ”以外
のパスが存在すれば以下の処理を行う（ステップ７４）。エントリ“Ｃ”のパス欄３２か
らパスＩＤ“Ａ”を削除する（ステップ７５）。もしステップ７４でエントリ“Ｃ”のパ
ス欄３２にパスＩＤ以外のパスＩＤ“Ｄ”が存在しなければ以下の処理を行う。入出力管
理表９からエントリ“Ｃ”を削除し（ステップ７６）、入出力発行元に結果を返す（ステ
ップ７７）。
【図面の簡単な説明】
【００２０】
【図１】実施例の説明図である。
【図２】パス管理表の説明図である。
【図３】入出力管理表の説明図である。
【図４】入出力Ｉ／Ｆ部が入出力命令を取得した時の処理の説明図である。
【図５】入出力Ｉ／Ｆ部の通常処理の説明図である。
【図６】入出力Ｉ／Ｆ部が入出力の結果を取得しその結果が成功だった時の処理の説明図である。
【図７】入出力Ｉ／Ｆ部が入出力の結果を取得しその結果が失敗だった時の処理の説明図である。
【符号の説明】
【００２１】
１…計算機、２…外部記憶装置、３…ＦＣケーブル群、４…ＦＣアダプタ群、５…入出
力制御部群、６…入出力Ｉ／Ｆ部、７…入出力発行元、８…パス管理表、９…入出力管理
表。
【図１】
2005331999.tif 000003
【図２】
2005331999.tif 000004
【図３】
2005331999.tif 000005
【図４】
2005331999.tif 000006
【図５】
2005331999.tif 000007
【図６】
2005331999.tif 000008
【図７】
2005331999.tif 000009