(57)【要約】      （修正有）【課題】記憶装置への入出力経路を多重化した場合の記憶装置へのデータ入出力要求を各入出力経路に振り分ける処理に関わる技術を提供する。【解決手段】記憶デバイスへデータ入出力要求を送信するために、前記記憶デバイスとの間に論理的な経路である論理パス１３１，１３５を複数設定する手段と、前記データ入出力要求が前記記憶デバイスの記憶領域に対する排他制御に関するデータ入出力要求であるかどうかに応じて、前記データ入出力要求を前記記憶デバイスに送信するための前記論理パス１３１，１３５を決定する手段と、を備える情報処理装置１００を提供する。【選択図】      図５
2004185093.tif 000002
【特許請求の範囲】
【請求項１】
記憶デバイスへデータ入出力要求を送信するために、前記記憶デバイスとの間に論理的な経路である論理パスを複数設定する手段と、
前記データ入出力要求が前記記憶デバイスの記憶領域に対する排他制御に関するデータ入出力要求であるかどうかに応じて、前記データ入出力要求を前記記憶デバイスに送信するための前記論理パスを決定する手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置において、
前記論理パスを決定する手段は、
前記データ入出力要求が前記記憶デバイスの記憶領域に対する排他制御に関するデータ入出力要求である場合にそのデータ入出力要求を特定の前記論理パスにより送信するように前記論理パスを決定する手段であること、
を特徴とする情報処理装置。
【請求項３】
請求項１に記載の情報処理装置において、
前記データ入出力要求には、その処理の対象となる前記記憶デバイス上の記憶領域を指定するための記憶領域指定情報が含まれており、
前記データ入出力要求が前記記憶デバイスの記憶領域に対する排他制御に関するデータ入出力要求であるかどうかを前記記憶領域指定情報に応じて判断すること、
を特徴とする情報処理装置。
【請求項４】
請求項１に記載の情報処理装置において、
前記論理パスは、ハードウエアまたはソフトウエアの少なくともいずれか一方の組合せにより設定され、
前記複数の論理パスのそれぞれは、前記ハードウエアまたは前記ソフトウエアの前記組み合わせが異なること、
を特徴とする情報処理装置。
【請求項５】
記憶デバイスに接続された情報処理装置に、
前記記憶デバイスへデータ入出力要求を送信するために、前記記憶デバイスとの間に論理的な経路である論理パスを複数設定する機能と、
前記データ入出力要求が前記記憶デバイスの記憶領域に対する排他制御に関するデータ入出力要求であるかどうかに応じて、前記データ入出力要求を前記記憶デバイスに送信するための前記論理パスを決定する機能と、
を実現させるためのプログラム。
【請求項６】
請求項５に記載のプログラムにおいて、
前記論理パスを決定する機能は、
前記データ入出力要求が前記記憶デバイスの記憶領域に対する排他制御に関するデータ入出力要求である場合にそのデータ入出力要求を特定の前記論理パスにより送信するように前記論理パスを決定する機能であること、
を特徴とするプログラム。
【請求項７】
請求項５に記載のプログラムにおいて、
前記データ入出力要求には、その処理の対象となる前記記憶デバイス上の記憶領域を指定するための記憶領域指定情報が含まれており、
前記データ入出力要求が前記記憶デバイスの記憶領域に対する排他制御に関するデータ入出力要求であるかどうかを前記記憶領域指定情報に応じて判断すること、
を特徴とするプログラム。
【請求項８】
請求項５に記載のプログラムにおいて、
前記論理パスは、ハードウエアまたはソフトウエアの少なくともいずれか一方の組合せにより設定され、
前記複数の論理パスのそれぞれは、前記ハードウエアまたは前記ソフトウエアの前記組み合わせが異なること、
を特徴とするプログラム。
【請求項９】
記憶デバイスと、前記記憶デバイスにデータを記憶する情報処理装置とを備えて構成される情報処理システムであって、
前記情報処理装置は、
前記記憶デバイスへデータ入出力要求を送信するために、前記記憶デバイスとの間に論理的な経路である論理パスを複数設定する手段と、
前記データ入出力要求が前記記憶デバイスの記憶領域に対する排他制御に関するデータ入出力要求であるかどうかに応じて、前記データ入出力要求を前記記憶デバイスに送信するための前記論理パスを決定する手段と、
を備えることを特徴とする情報処理システム。
【請求項１０】
記憶デバイスと、前記記憶デバイスにデータを記憶する情報処理装置とを備えて構成される情報処理システムにおける前記情報処理装置の制御方法であって、
前記情報処理装置は、
前記記憶デバイスへデータ入出力要求を送信するために、前記記憶デバイスとの間に論理的な経路である論理パスを複数設定し、
前記データ入出力要求が前記記憶デバイスの記憶領域に対する排他制御に関するデータ入出力要求であるかどうかに応じて、前記データ入出力要求を前記記憶デバイスに送信するための前記論理パスを決定すること、
を特徴とする情報処理装置の制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、情報処理装置、プログラム、情報処理システム、及び情報処理装置の制御方法に関する。
【０００２】
【従来の技術】
近年コンピュータシステムで取り扱われるデータ量が増大しており、記憶装置の大容量化が進んでいる。大容量の記憶装置では記憶容量に見合うだけの入出力性能を確保することが必要である。またシステムの信頼性を向上させることも求められている。このため、記憶装置への入出力経路を多重化（冗長化）する技術が開発されている。
【０００３】
記憶装置への入出力経路を多重化した場合、コンピュータでは、記憶装置へのデータ入出力要求を各入出力経路に振り分ける処理を行うことが必要となる。従来の技術では、各入出力経路にかかる負荷を分散させるために、各入出力経路に均等にデータ入出力要求を振り分けるようにしていた。振り分け方法としては、各入出力経路を順番に指定するラウンドロビン方式が採用されていた。
【０００４】
【特許文献１】
特開２００１−３２５２０７号公報
【０００５】
【発明が解決しようとする課題】
ところで、複数の情報処理装置が一台の記憶装置で稼働するデータベースにアクセスするデータベースシステムなどにおいては、アクセス多重度を上げるため、ディスクアレイ装置などの記憶デバイスの記憶領域に設定される論理ユニットレベルでの排他制御だけでなく、データ単位での局所的な排他制御も行っている。そして、このようなシステムにおける記憶装置へのデータ入出力要求には、記憶デバイスの記憶領域に対するデータの書き込みや読み出しを行うためのデータ入出力要求（以下、「Ｉ／Ｏ要求」と称する）に加えて、記憶デバイスの記憶領域について局所的な排他制御を行うための指示命令や記憶領域指定情報などからなるデータ入出力要求（以下、「排他要求」と称する）が含まれている。
【０００６】
ここで排他要求による排他の取得はＩ／Ｏ要求に対応する処理よりも前の時点で実行されている必要がある。しかしながら、従来、データ入出力要求の入出力経路への割り当てに際してはこのような排他要求の特性は配慮されておらず、これがコンピュータシステムの処理性能を低下させる要因となることがあった。
【０００７】
本発明は、このような観点からなされたもので、情報処理装置、プログラム、情報処理システム、及び情報処理装置の制御方法を提供することを主たる目的とする。
【０００８】
【課題を解決するための手段】
本発明の主たる発明である情報処理装置は、
記憶デバイスへデータ入出力要求を送信するために、前記記憶デバイスとの間に論理的な経路である論理パスを複数設定する手段と、
前記データ入出力要求が前記記憶デバイスの記憶領域に対する排他制御に関するデータ入出力要求であるかどうかに応じて、前記データ入出力要求を前記記憶デバイスに送信するための前記論理パスを決定する手段と、
を備えることとする。
なお、本発明の他の特徴については、本明細書及び添付図面の記述により明らかにする。
【０００９】
【発明の実施の形態】
＝＝＝情報処理システムの全体構成＝＝＝
図１に本実施の形態に係る情報処理システム（コンピュータシステム）の全体構成を示している。２台の情報処理装置（ホスト）が、１台の記憶装置（記憶デバイス、ストレージ、ディスクアレイ装置）に接続している。情報処理装置１００はＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やメモリを備え、各種アプリケーションプログラムを実行する。例えば銀行の自動預金預け払いシステムや航空機の座席予約システム等のプログラムを実行する。
【００１０】
情報処理装置１００は、上記アプリケーションプログラムを実行する際に記憶装置２００が記憶しているデータにアクセスする。上記データアクセスは、情報処理装置１００と記憶装置２００とを接続するハードウエアにより物理的に構成されるデータ転送路である物理パスに対応付けられている論理パスを転送経路として行われる。情報処理装置１００と記憶装置２００とを接続する接続部３０１乃至３０８は、上記物理パスを構成する。ＩＦ（Ｉｎｔｅｒ  Ｆａｃｅ）１４１乃至１４８は、例えば、１以上のＨＰｏｒｔ（Ｈｏｓｔ  ｂｕｓ  ａｄａｐｔｅｒ  Ｐｏｒｔ）を有するＨＢＡ（Ｈｏｓｔ  Ｂｕｓ  Ａｄａｐｔｏｒ）である。
【００１１】
記憶装置２００は、論理ユニット２２０、ディスク制御部２１０を備える。論理ユニット２２０は、情報処理装置１００に提供される記憶資源に論理的に設定される記憶領域である。図１においてはＬＵ（Ｌｏｇｉｃａｌ  Ｕｎｉｔ）１（２２１）とＬＵ２（２２２）の２つの論理ユニットが記されている。記憶資源としては、例えばハードディスク装置やフレキシブルディスク装置、半導体記憶装置等様々なものを用いることができる。ディスク制御部２１０は情報処理装置１００からのデータ入出力要求を受け、論理ユニット２２０に記憶されているデータのアクセスを制御する。ディスク制御部２１０は図１に示すように記憶装置２００と一体型とすることもできるし、別体型とすることもできる。また図１においては２つの論理ユニットが記されているが、１つの論理ユニット２２０を複数のパーティションに分割した形態とすることもできる。パーティションとは論理ユニット２２０を論理的に区分して構成される記憶領域のことである。
【００１２】
情報処理装置１００においては様々なアプリケーションプログラム１１０が実行される。アプリケーションプログラム１１０は共に記憶装置２００に記憶されているデータへのアクセスを適宜行いながら処理を実行する。アプリケーションプログラム１１０にはアクセス可能な論理ユニット２２０が割り当てられている。
【００１３】
＝＝＝論理パスについて＝＝＝
アプリケーションプログラム１１０から記憶装置２００へのデータ入出力要求求は、後述するパス管理フィルタドライバ１２０の制御により論理パスを転送経路として送信される。ここで論理パスは、情報処理装置１００、記憶装置２００、および情報処理装置１００と記憶装置２００とを結ぶ通信経路を構成するハードウエアもしくはソフトウエアの少なくともいずれかの組合せにより定義される。
【００１４】
図２に論理パス８０１乃至８０８を定義するための要素の具体例を示している。この図のように、論理パスはＨＬＵ（Ｈｏｓｔ  Ｌｏｇｉｃａｌ  Ｕｎｉｔ）２２３、ＴＩＤ（Ｔａｒｇｅｔ  ＩＤ）１８１、Ｂｕｓ１８２、ＨＰｏｒｔ（Ｈｏｓｔ  ｂｕｓ  ａｄａｐｔｅｒ  Ｐｏｒｔ）１８０、ＤＰｏｒｔ（Ｄｉｓｋ  ｃｏｎｔｒｏｌｌｅｒ  Ｐｏｒｔ）２３０、ディスク制御部２１０、及びＬＵ２２０などのハードウエアやソフトウエアを特定することにより定義される。ＨＬＵ２２３、ＴＩＤ１８１、Ｂｕｓ１８２、ＨＰｏｒｔ１８０はＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｆａｃｅ）通信規格で用いられる概念であり、それぞれホスト論理ユニット、ターゲットＩＤ、論理バス、ホストバスアダプタ側ポートを示す。ＤＰｏｒｔ２３０はディスク制御部２１０のポートを示す。論理パスの定義は必ず上記要素によらなければならない訳ではなく、システムにより上記要素のいずれかを不要とすることもできるし、上記以外の要素を加えて論理パスを定義することもできる。
【００１５】
＝＝＝パス管理フィルタドライバ＝＝＝
パス管理フィルタドライバ１２０は、情報処理装置１００と記憶装置２００との間のデータ転送経路を多重化するためのソフトウエアである。パス管理フィルタドライバ１２０は、情報処理装置１００と記憶装置２００との間を複数の論理パス３００で接続しデータ転送経路を多重化することにより、データアクセスにおけるボトルネックを解消しデータ入出力処理性能を向上させる。パス管理フィルタドライバ１２０はデータ入出力要求を各入出力経路へ適宜振り分けることによって負荷分散も行う。またパス管理フィルタドライバ１２０はデータ転送経路に障害が発生した場合に、当該データ転送経路を閉塞し正常なデータ転送経路により記憶装置２００へのデータアクセスを継続する機能も有し、これによりデータ転送経路障害によるサービス停止を回避しシステムの信頼性を高められる。
【００１６】
なお、情報処理装置１００で実行されるオペレーティングシステムによっては、記憶装置２００との間を複数の論理パスで接続されることに対する考慮がなされていないものがある。このようなオペレーティングシステムを情報処理装置１００で実行している場合に、情報処理装置１００と記憶装置２００との間を複数の論理パスで接続すると、アプリケーションプログラム１１０には、記憶装置２００上に存在する１つの論理ユニット２２０が論理パス毎に存在するかのように見えてしまうという問題が生じる。これを回避するため、パス管理フィルタドライバ１２０は、論理パス毎に見える本来一つの論理ユニット２２０を一つに統合してアプリケーションプログラム１１０に見せる機能も有している。
【００１７】
＝＝＝データ入出力要求について＝＝＝
図１に示す情報処理システムは、例えば、複数の情報処理装置１００が一台の記憶装置２００で稼働するデータベースにアクセスするデータベースシステムに適用される。このような情報処理システムでは、アクセス多重度を向上させる等の目的で記憶デバイスの記憶領域の一部に対して局所的な排他制御を行えるようになっている。ここでこのような局所的な排他制御のために情報処理装置１００から記憶装置２００に送信されるデータ入出力要求には、記憶デバイスの記憶領域に対するデータの書き込みや読み出しを行うためのデータ入出力要求（以下、「Ｉ／Ｏ要求」と称する）に加え、記憶デバイスの記憶領域について局所的な排他制御を行うための指示命令や記憶領域指定情報などからなるデータ入出力要求（以下、「排他要求」と称する）が含まれている。上記のデータ入出力要求は、一般に排他を取得するための排他要求と、排他を開放するための排他要求との間に、１以上のＩ／Ｏ要求が介在する構成をとる。なお、記憶領域の排他を取得するとは、その記憶領域へのデータ入出力要求を自分のみが行えるように独占状態とすることであり、排他を開放するとはそのような独占状態を解除することである。
【００１８】
＝＝＝論理パスの割り当てについて＝＝＝
上記排他要求およびＩ／Ｏ要求の論理パスへの割り当てについて説明する。この割り当ては例えばパス管理フィルタドライバ１２０の作用により行われる。図３は情報処理装置１００がデータ入出力要求を記憶装置２００に送信するための論理パスとして、各情報処理装置１００が単一の論理パス１３４，１３５のみを提供する場合におけるデータ入出力要求の取扱いを説明している。図３において、符号が付されていない数字はＩ／Ｏ要求を示している。「＋」記号が付されている数字は記憶領域の排他を取得する指示を行うための排他要求を示している。「−」記号が付されている数字は記憶領域の排他を終了する指示を行うための排他要求を示している。排他要求とＩ／Ｏ要求の同じ数字からなる一群のデータ入出力要求により、１のデータ入出力要求が構成される。図中、数字の小さい時系列順にデータ入出力要求が発生している。
【００１９】
図４は、複数の論理パスが利用できる環境でのパス管理フィルタドライバ１２０によるデータ入出力要求の論理パスへの割り当ての様子を示している。例えば、複数のＨＢＡが実装される多重化された情報処理装置１００ではこのような構成となる。各論理パス１３１乃至１３８へのデータ入出力要求の割り当てはラウンドロビン方式で行われる。このように複数の論理パスに分散してデータ入出力要求が割り当てられることで、複数のデータ入出力要求を並行処理することが可能となり、情報処理システムの処理性能の向上が図られる。
【００２０】
ところで、Ｉ／Ｏ要求に関する処理は、排他を取得するための排他要求についての処理が完了するまで開始することができない。従って、排他要求に関する処理はこれを早めに行っておくことでＩ／Ｏ要求についての処理を迅速に進めることができる。図５はこのような観点に基づいて行われる、データ入出力要求の論理パスの割り当て方法の一例を説明している。図５はデータ入出力要求を送信するための論理パスとして複数の論理パスが利用できる点で図４と同様の構成であるが、各情報処理装置１００が、特定の論理パス１３１および１３５を排他要求専用の論理パスとしている点で図４と異なる。ここで排他要求を送信した場合における記憶装置２００からの応答時間は、Ｉ／Ｏ要求を送信した場合の応答時間よりも一般に短い。これは排他要求が排他命令や排他の対象となる記憶領域を指定するアドレスなどの比較的サイズの小さいデータで構成されるのに対し、Ｉ／Ｏ要求には書き込みデータや読み出しデータが含まれ、記憶装置２００側の処理負荷が大きいからである。従って、このように特定の論理パス１３１および１３５を排他要求専用の論理パスとすることで、排他要求専用に割り当てられた論理パスに割り当てられている排他要求についての処理が、Ｉ／Ｏ要求の処理の応答待ちのために待たされることが無くなり、排他要求についての処理が迅速に行われることになる。そしてその結果、Ｉ／Ｏ要求についての処理の迅速化が図られて情報処理システムの処理性能が改善される。なお、図５では特定の論理パスを固定的に割り当てているが、必ずしも固定的でなくてもよい。例えば、各論理パスの使用状況に応じて特定の論理パスを変更するようにしてもよい。
【００２１】
＝＝＝排他データ領域について＝＝＝
ところで、例えば、図５に示す仕組みを実施する場合には、データ入出力要求が排他要求であるのかＩ／Ｏ要求であるのかを判断する必要があるが、パス管理フィルタドライバ１２０は、この判断をデータ入出力要求に指定されている記憶領域指定情報に基づいて行う。なお、記憶領域指定情報とは、データ入出力要求の処理対象となる記憶デバイスの記憶領域を指定する情報である。
【００２２】
パス管理フィルタドライバ１２０は、論理ユニット２２０の記憶領域を、データ入出力要求の対象となるデータが記憶されるデータ領域２２１と、排他制御に関するデータが記憶される排他データ領域２２２とに区分して管理している。なお、排他制御に関するデータとは、例えば、データ領域内に区画設定された記憶領域について、データ入出力要求により排他が確保されている状態にあるかどうかを示すデータである。パス管理フィルタドライバ１２０は、記憶装置２００により提供される記憶領域のどの領域が排他データ領域であるかを、論理ユニット２２０および論理ユニット２２０の記憶領域を指定するアドレスに対応させて、図６に示す排他データ領域管理テーブル１５０に管理している。
【００２３】
＝＝＝論理パス状態管理テーブル＝＝＝
パス管理フィルタドライバ１２０は、論理パスを論理パス状態管理テーブルに管理している。図７に論理パス状態管理テーブルの一例を示す。論理パス状態管理テーブル１９０には、論理パスに対応させて、論理ユニット番号（ＬＵ番号）、および論理ユニットの記憶領域を指定するＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）が登録されている。ＨＢＡ（Ｈｏｓｔ  Ｂｕｓ  Ａｄａｐｔｏｒ）番号はその論理パスを構成しているＨＢＡの番号、パーティションＩＤはその論理パスに対応づけられている論理ユニットに設定されているパーティションのＩＤである。
【００２４】
図７において、「○」の記号は、データ入出力要求に指定される論理ユニット番号およびＬＢＡに対応させて、データ入出力要求が論理パスを利用可能であることを示しており、「×」の記号は利用不可であることを示している。なお、「−」の記号は未定義であることを意味する。図７の場合、例えば、論理ユニット番号が「＃０」、ＬＢＡが「００００ｈ〜ＦＦＦＦｈ（ｈは１６進数であることを示す）」であるデータ入出力要求の場合、ＩＤが「１」、「３」、「５」、「７」の論理パスが利用可能である。
【００２５】
パス管理フィルタドライバ１２０は、図７の論理パス状態管理テーブル１９０を参照してデータ入出力要求を送信する論理パスを割り当てる。図７の論理パス状態管理テーブル１９０は、例えば、図４に示す論理パスの割り当てにおいて用いられる。図８はデータ入出力要求を論理パスに割り当てる際に、図７に示すパス管理ＩＤごとに編成されるリスト構造（双方向リスト）を示している。図８では、利用可能な論理パスごとに矩形枠が設けられている。矩形枠内の上段には次の論理パスのエントリポインタが、下段には前の論理パスのエントリポインタがそれぞれ示されている。
【００２６】
図８において、例えば、あるデータ入出力要求が、ＩＤが「１」の論理パスに割り当てられると、つぎのデータ入出力要求はＩＤが「１」の矩形枠において指定されている次の論理ポインタで指定される論理パス（ここでは、ＩＤが「３」の論理パス）に送信される。同様にしてつぎのデータ入出力要求は、ＩＤが「５」の論理パスに送信される。このようにしてデータ入出力要求は同じパス管理ＩＤに所属する利用可能な論理パスにラウンドロビン方式で順番に割り当てられていく。
【００２７】
図９は論理パス状態管理テーブル１９０の他の態様である。この図では、論理ユニット番号（ＬＵ番号）が「＃０」であり、ＬＢＡが「００００ｈ〜１０００ｈ」であるデータ入出力要求の場合、ＩＤが「７」の論理パスが利用可能である。また、論理ユニット番号が「＃０」であり、ＬＢＡが「１００１ｈ〜ＦＦＦＦｈ」であるデータ入出力要求の場合、ＩＤが「１」、「３」、「５」の論理パスが利用可能である。図９に示す論理パス状態管理テーブル１９０は、例えば、パス管理フィルタドライバ１２０が排他要求を特定の論理パスに割り当てる図５の場合に用いられる。図９に示す論理パス状態管理テーブル１９０は、前述の特定の論理パスをＩＤが「７」の論理パスとし、排他データ領域管理テーブル１５０にＬＢＡが「００００ｈ〜１０００ｈ」で指定される領域が排他データ領域として設定されている場合に用いられる。すなわち、パス管理フィルタドライバ１２０は、データ入出力要求の処理対象となる記憶領域としてそのＬＢＡに「００００ｈ〜１０００ｈ」の範囲内の記憶領域が指定されている場合、そのデータ入出力要求を送信するための特定の論理パスとして、ＩＤが「７」の論理パスを設定する。また、「００００ｈ〜１０００ｈ」の範囲外の記憶領域が指定されている場合には、そのデータ入出力要求を送信するための論理パスとして、ＩＤが「１」、「３」、「５」の論理パスのうちのいずれかを設定する。
【００２８】
なお、図９において、ＬＢＡが「１００１ｈ〜ＦＦＦＦｈ」で論理パスＩＤが「７」の論理パスＩＤの欄に「△」の記号が設定されているが、この「△」の記号は、本来利用不可であるが状況によっては、臨機応変に利用可能とされるという意味であり、例えば、排他要求専用に割り当てた特定の論理パスの処理負荷が下がった場合には、その論理パスにもＩ／Ｏ要求を割り当てるといった形で利用される。
【００２９】
図１０はデータ入出力要求を論理パスに割り当てる際に、図９に示すパス管理ＩＤごとに編成されるリスト構造を示している。図１０では、「Ｑ１」のパス管理ＩＤについては、ＩＤが「７」である論理パスのみが利用可能であるので、ＬＢＡとして「００００ｈ〜１０００ｈ」が指定されているデータ入出力要求を送信する論理パスは固定的にＩＤ「７」の論理パスに設定される。一方、「Ｑ２」のパス管理ＩＤについては、ＩＤが「１」、「３」、「５」の３つの論理パスが利用可能な論理パスであるので、ＬＢＡとして「１００１ｈ〜ＦＦＦＦｈ」が指定されているデータ入出力要求を送信する論理パスとしてこれらの３つの論理パスのうちの一つがラウンドロビン方式により順番に設定される。
【００３０】
パス管理フィルタドライバ１２０は、論理パス状態管理テーブルに、閉塞状態にある論理パスや、障害の生じている論理パスを管理している。ここで閉塞状態にある論理パスとは、オペレータなどにより意図的に利用できないように指定した論理パスである。図１１に示す論理パス状態管理テーブル１９０では、閉塞状態にある論理パス（ＩＤが「３」の論理パス）、障害の生じている論理パス（ＩＤが「５」の論理パス）が存在する。
【００３１】
図１２は、図１１はデータ入出力要求を論理パスに割り当てる際に、図１０に示すパス管理ＩＤごとに編成されるリスト構造を示している。図１１では、「Ｑ１」のパス管理ＩＤについては、ＩＤが「１」の論理パスが、「Ｑ２」のパス管理ＩＤについてはＩＤが「７」の論理パスが利用可能である。また、ＩＤが「３」の論理パスは、閉塞状態にある論理パスが管理される「ＱＩ」のパス管理ＩＤに、ＩＤが「５」の論理パスは、障害の生じている論理パスが管理される「ＱＥ」のパス管理ＩＤに所属している。なお、図１２に示すように、各パス管理ＩＤには論理パスが１つずつしか所属していないので、矩形枠のエントリポインタには「ＮＵＬＬ」値が設定されている。
【００３２】
＝＝＝論理パス状態管理テーブルの管理＝＝＝
つぎに、以上に説明した論理パス状態管理テーブルの管理に関する仕組みについて説明する。図１３は、以上に説明した論理パス状態管理テーブルの更新処理を説明するフローチャートである。
パス管理フィルタドライバ１２０は、論理パス状態管理テーブル１９０の更新要求を受け付ける（Ｓ１３１１）と、論理パス状態管理テーブル１９０についての排他を取得し（Ｓ１３１２）、受け付けた更新要求とともに指定された設定内容に従って論理パス状態管理テーブル１９０の内容を更新する（Ｓ１３１３）。
つぎにパス管理フィルタドライバ１２０は、対象論理ユニットを、論理ユニット番号が「＃０」の論理ユニットとし（Ｓ１３１４）、その対象論理ユニットに対する処理を開始する（Ｓ１３１５）。
まず、パス管理フィルタドライバ１２０は、対象論理ユニットについての排他を取得する（Ｓ１３１６）。また、対象論理ユニットに対する１つめのＬＢＡ範囲を対象ＬＢＡ範囲に設定し（Ｓ１３１７）、設定した対象ＬＢＡ範囲に対する処理を開始する（Ｓ１３１８）。
【００３３】
まずパス管理フィルタドライバ１２０は、ＩＤが「１」の論理パスを対象論理パスに設定し（Ｓ１３１９）、対象論理パスに対する処理を開始する（Ｓ１３２０）。
ここで対象論理パスが「○」の状態ならば、その対象論理パスを現在のキューから外し、対象ＬＢＡ範囲あるいは閉塞パス用のパス管理ＩＤに追加する（Ｓ１３２１）。
ここでパス管理フィルタドライバ１２０は、次の論理パスが存在する場合には、その論理パスを対象論理パスに設定し、（Ｓ１３２０）の処理に進む（Ｓ１３２２）。一方、次の論理パスが存在しない場合には次のＬＢＡ範囲があればそのＬＢＡ範囲を対象ＬＢＡ範囲に設定し（Ｓ１３２３）、その後（Ｓ１３１８）の処理に進む。
【００３４】
一方、（Ｓ１３２３）において、次のＬＢＡ範囲がない場合には対象論理ユニットについての排他を開放する（Ｓ１３２４）。そして、次の論理ユニットがある場合にはその論理ユニットを対象論理ユニットに設定し（Ｓ１３２５）、その後は（Ｓ１３１５）からの処理に戻る。（Ｓ１３２５）において、次の論理ユニットがない場合には論理パス状態管理テーブル１９０の排他を開放する（Ｓ１３２６）。
【００３５】
図１４は論理パスに障害が発生した場合における論理パス状態管理テーブル１９０の更新処理を説明するフローチャートである。
パス管理フィルタドライバ１２０は、オペレーティングシステムやアプリケーションプログラム１１０などのソフトウエアから論理パスの障害報告を受信すると（Ｓ１４１１）、論理パス状態管理テーブル１９０の排他を取得する（Ｓ１４１２）。つぎにパス管理フィルタドライバ１２０は論理パス状態管理テーブル１９０を参照し、障害が報告された論理パスが既に閉塞中であるかどうかを調べる（Ｓ１４１３）。
【００３６】
ここでその論理パスが閉塞中でない場合（すなわち、閉塞状態の論理パスが管理されるパス管理ＩＤに所属していない場合）には、つぎにその論理パスが障害中でないかどうか（すなわち、障害の生じている論理パスが管理されるパス管理ＩＤに所属しているかどうか）を調べ（Ｓ１４１４）、その結果障害中でない場合には障害が発生している論理パスを対象論理パスとし（Ｓ１４１５）、またその論理パスを現在のパス管理ＩＤから外して障害の生じている論理パスが管理されるパス管理ＩＤに所属させる（Ｓ１４１６）。そして、対象パスに対応する論理パス状態管理テーブルの欄を障害状態「○」に設定し（Ｓ１４１７）、論理パス状態管理テーブルの排他を開放する（Ｓ１４１８）。
【００３７】
（Ｓ１４１３）において、その論理パスが閉塞中でない場合、および、（Ｓ１４１４）において、論理パスが論理パス状態管理テーブル１９０において既に障害状態であった場合（Ｓ１４１５）には、論理パス状態管理テーブル１９０の排他を開放する（Ｓ１４１８）。
【００３８】
＝＝＝論理パスを決定する処理の説明＝＝＝
つぎに、図１５に示すフローチャートとともに、パス管理フィルタドライバ１２０が、論理パス状態管理テーブル１９０を参照してデータ入出力要求を送信するための論理パスを設定する処理を説明する。なお、図１５ではこの処理がパス管理フィルタドライバ１２０が有する（もしくは利用する）サブルーチンにより実行されるものとして説明している。
【００３９】
サブルーチンは、パス管理フィルタドライバ１２０が受信したデータ入出力要求の送信先となる論理パスについての問い合わせを受信すると（Ｓ１５１１）、データ入出力要求に指定されている対象論理ユニットおよび対象ＬＢＡを取得する（Ｓ１５１２、Ｓ１５１３）。つぎにサブルーチンは対象論理ユニットに対する排他を取得する（Ｓ１５１４）。なお、論理ユニットについて排他を取得するとは、その論理ユニットへのデータ入出力要求を自分のみが行えるように独占することである。
【００４０】
つぎにサブルーチンは対象論理ユニットおよび対象ＬＢＡを、論理パス状態管理テーブル１９０に対照し、対応するパス管理ＩＤを特定する（Ｓ１５１５）。
ここで対応するパス管理ＩＤが存在しない場合には、サブルーチンは処理を停止する（Ｓ１５１６）。また、サブルーチンはパス管理ＩＤに所属する利用可能な論理パスのうちラウンドロビン方式で決定される１の論理パスを、データ入出力要求を送信する論理パスとして、当該サブルーチンを呼び出したプログラム（もしくは引渡し先のプログラム）に返答する（Ｓ１５１７）。
【００４１】
つぎに、サブルーチンは、パス管理ＩＤが指し示すパスの「次のエントリポインタ」が「ＮＵＬＬ」値であるかどうかを調（Ｓ１５１８）べ、「ＮＵＬＬ」値である場合には利用可能なパスが存在しないので、パス管理ＩＤに所属する割り当て対象の論理パスを変更しない（Ｓ１５１９）。
一方、「０」でない場合には、パス管理ＩＤが指し示す論理パスの「次のエントリポインタ」によって指定される論理パスを、割り当て対象の論理パスに設定する（Ｓ１５２０）。
以上の処理の後、サブルーチンは対象論理ユニットに対して排他開放を実施する（Ｓ１５２１）。
【００４２】
なお、以上のように、記憶デバイスの記憶領域に対する排他制御に関するデータ入出力要求が排他制御に関するデータ入出力要求であるかどうかに応じて、そのデータ入出力要求を記憶デバイスに送信するための論理パスが決定される。このため排他制御に関するデータ入出力要求とそれ以外のデータ入出力要求の論理パスの割り当てを区別して取り扱うことが可能となり、排他要求とＩ／Ｏ要求のそれぞれの特性に配慮されて論理パスが決定され、情報処理処理システムの処理性能が改善されることになる。
【００４３】
＝＝＝情報処理装置の詳細な構成例＝＝＝
つぎに、本実施の形態に係る情報処理装置１００の詳細な構成例を図１６に示す。
アプリケーションプログラム１１０は、ファイルシステム２４０を介して記憶装置２００に設定されている論理ユニット２２０にアクセスする。ファイルシステム２４０は通常オペレーティングシステムの持つ機能の一つとして提供され、記憶装置２００により提供される記憶領域を管理するソフトウエアをいう。すなわち、記憶装置２００により提供される記憶領域上の論理ブロック内にファイルという抽象概念を実現し、ファイルに対するデータ入出力要求を論理ブロックアドレス単位のデータ入出力要求に対応させる。
【００４４】
パス管理フィルタドライバ１２０は、ファイルシステム２４０を介してアプリケーションプログラム１１０から出されたデータ入出力要求をＩＦ１（１４１）乃至ＩＦ４（１４４）の各ＨＰｏｒｔに振り分ける。振り分けられたデータ入出力要求は、ディスクドライバ１６０及びＩＦドライバ１７０を介してＩＦ１（１４１）乃至ＩＦ４（１４４）から記憶装置２００に送信される。ディスクドライバ１６０はブロックモードのデバイスを論理ディスクとして抽象化する。ＩＦドライバ１７０はデータ入出力要求を所定の通信プロトコルのパケットに変換・復元する。通信プロトコルとしては例えばファイバチャネルを採用することができる。
【００４５】
ドライバ管理プログラム１２１は、ドライバＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）プログラム１２２及びドライバＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）プログラム１２３と共に、パス管理フィルタドライバ１２０を管理する。ドライバＵＩプログラム１２２は、ドライバ管理プログラム１２１を介してパス管理フィルタドライバ１２０の設定を行う際のユーザインタフェースを提供するためのプログラムである。ドライバＡＰＩプログラム１２３は、ドライバＵＩプログラム１２２を用いてパス管理フィルタドライバ１２０を設定する際に使用可能な命令や関数を集めたプログラムである。
【００４６】
図１６に示した情報処理装置１００と一部構成の異なるものを図１７に示す。図１６における情報処理装置１００では、ディスクドライバ１６０はパス管理フィルタドライバ１２０からデータ入出力要求を受け取り、ブロックモードのデバイスを論理ディスクとして抽象化した後にＩＦドライバ１７０に引き渡す。しかしながらオペレーティングシステムによっては、ディスクドライバ１６０をファイルシステム２４０とパス管理フィルタドライバ１２０との間に介在させる必要のあるものもある。図１７に示したのはかかる場合の例である。図１６の形態と図１７の形態とはオペレーティングシステムの違いによって生じるものであって、どちらの形態も本発明の実施形態の一つである。
【００４７】
以上、本発明に係る情報処理装置等について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれることは勿論である。
【００４８】
【発明の効果】
本発明によれば、情報処理装置、プログラム、情報処理システム、及び情報処理装置の制御方法を提供することができる。
【図面の簡単な説明】
【図１】本発明の一実施例による情報処理システムの全体構成を示す図である。
【図２】本発明の一実施例による論理パスを説明する図である。
【図３】データ入出力要求の取扱いを説明する図である。
【図４】データ入出力要求の論理パスへの割り当ての様子を示す図である。
【図５】本発明の一実施例によるデータ入出力要求の論理パスへの割り当ての様子を示す図である。
【図６】本発明の一実施例による、排他データ領域管理テーブルを示す図である。
【図７】本発明の一実施例による、論理パス状態管理テーブルを示す図である。
【図８】本発明の一実施例による、データ入出力要求を論理パスに割り当てる際に編成されるリスト構造を示す図である。
【図９】本発明の一実施例による、論理パス状態管理テーブルを示す図である。
【図１０】本発明の一実施例による、データ入出力要求を論理パスに割り当てる際に編成されるリスト構造を示す図である。
【図１１】本発明の一実施例による、論理パス状態管理テーブルを示す図である。
【図１２】本発明の一実施例による、データ入出力要求を論理パスに割り当てる際に編成されるリスト構造を示す図である。
【図１３】本発明の一実施例による、論理パス状態管理テーブルの更新処理を説明するフローチャートを示す図である。
【図１４】本発明の一実施例による、論理パスに障害が発生した場合における論理パス状態管理テーブルの更新処理を説明するフローチャートを示す図である。
【図１５】本発明の一実施例による、パス管理フィルタドライバが、論理パス状態管理テーブルを参照してデータ入出力要求を送信するための論理パスを設定する処理を説明するフローチャートを示す図である。
【図１６】本発明の一実施例による、情報処理装置の詳細な構成例を示す図である。
【図１７】本発明の一実施例による、情報処理装置の他の構成例を示す図である。
【符号の説明】
１００  情報処理装置
１１０  アプリケーションプログラム
１２０  パス管理フィルタドライバ
１３１〜１３８  論理パスに割り当てられるデータ入出力のキュー
１４１〜１４８  インタフェース部
１５０  排他データ領域管理テーブル
１９０  論理パス状態管理テーブル
２１０  ディスク制御部
２２０  論理ユニット
【図１】
2004185093.tif 000003
【図２】
2004185093.tif 000004
【図３】
2004185093.tif 000005
【図４】
2004185093.tif 000006
【図５】
2004185093.tif 000007
【図６】
2004185093.tif 000008
【図７】
2004185093.tif 000009
【図８】
2004185093.tif 000010
【図９】
2004185093.tif 000011
【図１０】
2004185093.tif 000012
【図１１】
2004185093.tif 000013
【図１２】
2004185093.tif 000014
【図１３】
2004185093.tif 000015
【図１４】
2004185093.tif 000016
【図１５】
2004185093.tif 000017
【図１６】
2004185093.tif 000018
【図１７】
2004185093.tif 000019