(57)【要約】      （修正有）【課題】効率よくデータ入出力要求に応じた処理を記憶装置に行なわせることが可能な情報処理装置を提供する。【解決手段】複数のデータ入出力要求を論理的に設定された複数の論理パスを通じて受信し、前記論理パスごとに順次前記データ入出力要求に応じた処理を実行し、前記データ入出力要求により指定された記憶領域上の領域と前記領域に後続する領域のデータを先読みしてキャッシュメモリに記憶する機能を備えた記憶装置に送信するための前記データ入出力要求を前記複数の論理パスに適宜割り当てる手段と、第一の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域と、第二の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域とが連続する場合に、前記第二のデータ入出力要求を前記第一のデータ入出力要求を割り当てた前記論理パスと同一の前記論理パスに割り当てる手段と、を備える。【選択図】      図４
2005011110.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータ入出力要求を論理的に設定された複数の論理パスを通じて受信し、前記論理パスごとに順次前記データ入出力要求に応じた処理を実行し、前記データ入出力要求により指定された記憶領域上の領域と前記領域に後続する領域のデータを先読みしてキャッシュメモリに記憶する機能を備えた記憶装置に送信するための前記データ入出力要求を前記複数の論理パスに適宜割り当てる手段と、
第一の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域と、第二の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域とが連続する場合に、前記第二のデータ入出力要求を前記第一のデータ入出力要求を割り当てた前記論理パスと同一の前記論理パスに割り当てる手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
複数のデータ入出力要求を論理的に設定された複数の論理パスを通じて受信し、前記論理パスごとに順次前記データ入出力要求に応じた処理を実行し、前記データ入出力要求により指定された記憶領域上の領域と前記領域に後続する領域のデータを先読みしてキャッシュメモリに記憶する機能を備えた記憶装置に送信するための前記複数のデータ入出力要求を登録するための待ちキューと、
前記待ちキューに登録された前記複数のデータ入出力要求を順次前記複数の論理パスに適宜割り当てる手段と、
前記論理パスに割り当てた第一の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域と、前記待ちキューに登録しようとしている第二の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域とが連続する場合に、前記第二のデータ入出力要求を前記待ちキューに登録せずに、前記第一のデータ入出力要求を割り当てた前記論理パスと同一の前記論理パスに割り当てる手段と、
を備えることを特徴とする情報処理装置。
【請求項３】
複数のデータ入出力要求を論理的に設定された複数の論理パスを通じて受信し、前記論理パスごとに順次前記データ入出力要求に応じた処理を実行し、前記データ入出力要求により指定された記憶領域上の領域と前記領域に後続する領域のデータを先読みしてキャッシュメモリに記憶する機能を備えた記憶装置に送信するための前記複数のデータ入出力要求を登録するための待ちキューと、
前記待ちキューに登録された前記複数のデータ入出力要求を順次前記複数の論理パスに適宜割り当てる手段と、
前記待ちキューに登録されている第一の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域と、前記待ちキューに登録しようとしている第二の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域とが連続する場合に、前記第一のデータ入出力要求と前記第二のデータ入出力要求とを連続して同一の前記論理パスに割り当てる手段と、
を備えることを特徴とする情報処理装置。
【請求項４】
複数のデータ入出力要求を論理的に設定された複数の論理パスを通じて受信し、前記論理パスごとに順次前記データ入出力要求に応じた処理を実行する記憶装置に送信するための前記複数のデータ入出力要求を前記複数の論理パスに適宜割り当てる手段と、
第一の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域と、第二の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域とが連続する場合には、第一の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域と、第二の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域とからなる領域を指定する第三の前記データ入出力要求を作成する手段と、
前記第三のデータ入出力要求を前記論理パスに割り当てる手段と、
を備えることを特徴とする情報処理装置。
【請求項５】
複数のデータ入出力要求を論理的に設定された複数の論理パスを通じて受信し、前記論理パスごとに順次前記データ入出力要求に応じた処理を実行し、前記データ入出力要求により指定された記憶領域上の領域と前記領域に後続する領域のデータを先読みしてキャッシュメモリに記憶する機能を備えた記憶装置に送信するための前記データ入出力要求を前記複数の論理パスに適宜割り当てるように制御し、
第一の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域と、第二の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域とが連続する場合に、前記第二のデータ入出力要求を前記第一のデータ入出力要求を割り当てた前記論理パスと同一の前記論理パスに割り当てるように制御すること、
を特徴とする情報処理装置の制御方法。
【請求項６】
複数のデータ入出力要求を論理的に設定された複数の論理パスを通じて受信し、前記論理パスごとに順次前記データ入出力要求に応じた処理を実行し、前記データ入出力要求により指定された記憶領域上の領域と前記領域に後続する領域のデータを先読みしてキャッシュメモリに記憶する機能を備えた記憶装置に送信するための前記複数のデータ入出力要求を登録するための待ちキューを備える情報処理装置において、
前記待ちキューに登録された前記複数のデータ入出力要求を順次前記複数の論理パスに適宜割り当てるように制御し、
前記論理パスに割り当てた第一の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域と、前記待ちキューに登録しようとしている第二の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域とが連続する場合に、前記第二のデータ入出力要求を前記待ちキューに登録せずに、前記第一のデータ入出力要求を割り当てた前記論理パスと同一の前記論理パスに割り当てるように制御すること、
を特徴とする情報処理装置の制御方法。
【請求項７】
複数のデータ入出力要求を論理的に設定された複数の論理パスを通じて受信し、前記論理パスごとに順次前記データ入出力要求に応じた処理を実行し、前記データ入出力要求により指定された記憶領域上の領域と前記領域に後続する領域のデータを先読みしてキャッシュメモリに記憶する機能を備えた記憶装置に送信するための前記複数のデータ入出力要求を登録するための待ちキューを備える情報処理装置において、
前記待ちキューに登録された前記複数のデータ入出力要求を順次前記複数の論理パスに適宜割り当てるように制御し、
前記待ちキューに登録されている第一の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域と、前記待ちキューに登録しようとしている第二の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域とが連続する場合に、前記第一のデータ入出力要求と前記第二のデータ入出力要求とを連続して同一の前記論理パスに割り当てるように制御すること、
を特徴とする情報処理装置の制御方法。
【請求項８】
複数のデータ入出力要求を論理的に設定された複数の論理パスを通じて受信し、前記論理パスごとに順次前記データ入出力要求に応じた処理を実行する記憶装置に送信するための前記複数のデータ入出力要求を前記複数の論理パスに適宜割り当てるように制御し、
第一の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域と、第二の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域とが連続する場合には、第一の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域と、第二の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域とからなる領域を指定する第三の前記データ入出力要求を作成し、
前記第三のデータ入出力要求を前記論理パスに割り当てるように制御すること、
を特徴とする情報処理装置の制御方法。
【請求項９】
複数のデータ入出力要求を論理的に設定された複数の論理パスを通じて受信し、前記論理パスごとに順次前記データ入出力要求に応じた処理を実行し、前記データ入出力要求により指定された記憶領域上の領域と前記領域に後続する領域のデータを先読みしてキャッシュメモリに記憶する機能を備えた記憶装置に送信するための前記データ入出力要求を前記複数の論理パスに適宜割り当てる機能と、
第一の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域と、第二の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域とが連続する場合に、前記第二のデータ入出力要求を前記第一のデータ入出力要求を割り当てた前記論理パスと同一の前記論理パスに割り当てる機能と、
を情報処理装置に実現させるためのプログラム。
【請求項１０】
複数のデータ入出力要求を論理的に設定された複数の論理パスを通じて受信し、前記論理パスごとに順次前記データ入出力要求に応じた処理を実行し、前記データ入出力要求により指定された記憶領域上の領域と前記領域に後続する領域のデータを先読みしてキャッシュメモリに記憶する機能を備えた記憶装置に送信するための前記複数のデータ入出力要求を登録するための待ちキューを備える情報処理装置において、
前記待ちキューに登録された前記複数のデータ入出力要求を順次前記複数の論理パスに適宜割り当てる機能と、
前記論理パスに割り当てた第一の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域と、前記待ちキューに登録しようとしている第二の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域とが連続する場合に、前記第二のデータ入出力要求を前記待ちキューに登録せずに、前記第一のデータ入出力要求を割り当てた前記論理パスと同一の前記論理パスに割り当てる機能と、
を情報処理装置に実現させるためのプログラム。
【請求項１１】
複数のデータ入出力要求を論理的に設定された複数の論理パスを通じて受信し、前記論理パスごとに順次前記データ入出力要求に応じた処理を実行し、前記データ入出力要求により指定された記憶領域上の領域と前記領域に後続する領域のデータを先読みしてキャッシュメモリに記憶する機能を備えた記憶装置に送信するための前記複数のデータ入出力要求を登録するための待ちキューを備える情報処理装置において、
前記待ちキューに登録された前記複数のデータ入出力要求を順次前記複数の論理パスに適宜割り当てる機能と、
前記待ちキューに登録されている第一の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域と、前記待ちキューに登録しようとしている第二の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域とが連続する場合に、前記第一のデータ入出力要求と前記第二のデータ入出力要求とを連続して同一の前記論理パスに割り当てる機能と、
を情報処理装置に実現させるためのプログラム。
【請求項１２】
複数のデータ入出力要求を論理的に設定された複数の論理パスを通じて受信し、前記論理パスごとに順次前記データ入出力要求に応じた処理を実行する記憶装置に送信するための前記複数のデータ入出力要求を前記複数の論理パスに適宜割り当てる機能と、
第一の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域と、第二の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域とが連続する場合には、第一の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域と、第二の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域とからなる領域を指定する第三の前記データ入出力要求を作成する機能と、
前記第三のデータ入出力要求を前記論理パスに割り当てる機能と、
を情報処理装置に実現させるためのプログラム。
【請求項１３】
複数のデータ入出力要求を論理的に設定された複数の論理パスを通じて受信し、前記論理パスごとに順次前記データ入出力要求に応じた処理を実行し、前記データ入出力要求により指定された記憶領域上の領域と前記領域に後続する領域のデータを先読みしてキャッシュメモリに記憶する機能を備えた記憶装置と、
前記記憶装置に送信するための前記データ入出力要求を前記複数の論理パスに適宜割り当てる手段と、第一の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域と、第二の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域とが連続する場合に、前記第二のデータ入出力要求を前記第一のデータ入出力要求を割り当てた前記論理パスと同一の前記論理パスに割り当てる手段とを備えた情報処理装置と、
を備えることを特徴とする情報処理システム。
【請求項１４】
複数のデータ入出力要求を論理的に設定された複数の論理パスを通じて受信し、前記論理パスごとに順次前記データ入出力要求に応じた処理を実行し、前記データ入出力要求により指定された記憶領域上の領域と前記領域に後続する領域のデータを先読みしてキャッシュメモリに記憶する機能を備えた記憶装置と、
前記記憶装置に送信するための前記複数のデータ入出力要求を登録するための待ちキューと、前記待ちキューに登録された前記複数のデータ入出力要求を順次前記複数の論理パスに適宜割り当てる手段と、前記論理パスに割り当てた第一の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域と、前記待ちキューに登録しようとしている第二の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域とが連続する場合に、前記第二のデータ入出力要求を前記待ちキューに登録せずに、前記第一のデータ入出力要求を割り当てた前記論理パスと同一の前記論理パスに割り当てる手段とを備えた情報処理装置と、
を備えることを特徴とする情報処理システム。
【請求項１５】
複数のデータ入出力要求を論理的に設定された複数の論理パスを通じて受信し、前記論理パスごとに順次前記データ入出力要求に応じた処理を実行し、前記データ入出力要求により指定された記憶領域上の領域と前記領域に後続する領域のデータを先読みしてキャッシュメモリに記憶する機能を備えた記憶装置と、
前記記憶装置に送信するための前記複数のデータ入出力要求を登録するための待ちキューと、前記待ちキューに登録された前記複数のデータ入出力要求を順次前記複数の論理パスに適宜割り当てる手段と、前記待ちキューに登録されている第一の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域と、前記待ちキューに登録しようとしている第二の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域とが連続する場合に、前記第一のデータ入出力要求と前記第二のデータ入出力要求とを連続して同一の前記論理パスに割り当てる手段とを備えた情報処理装置と、
を備えることを特徴とする情報処理システム。
【請求項１６】
複数のデータ入出力要求を論理的に設定された複数の論理パスを通じて受信し、前記論理パスごとに順次前記データ入出力要求に応じた処理を実行する手段を備えた記憶装置と、
前記記憶装置に送信するための前記複数のデータ入出力要求を前記複数の論理パスに適宜割り当てる手段と、第一の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域と、第二の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域とが連続する場合には、第一の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域と、第二の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域とからなる領域を指定する第三の前記データ入出力要求を作成する手段と、前記第三のデータ入出力要求を前記論理パスに割り当てる手段とを備えた情報処理装置と、
を備えることを特徴とする情報処理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置、情報処理装置の制御方法、プログラム、及び情報処理システムに関する。
【０００２】
【従来の技術】
近年、情報処理システムで取り扱われるデータ量が増大しており、記憶装置の大容量化が進んでいる。大容量の記憶装置では記憶容量に見合うだけの入出力性能と信頼性を確保することが必要である。そのため記憶装置への論理パス（入出力経路）を多重化し、情報処理装置には、記憶装置へのデータ入出力要求を論理パスに適宜割り当てる仕組みが開発されている。
【０００３】
【非特許文献１】
Ｗ．Ｃｕｒｔｉｓ  Ｐｒｅｓｔｏｎ著，金崎裕己監訳，豊沢聡訳「ＳＡＮ＆ＮＡＳストレージネットワーク管理」オライリー・ジャパン，２００２年１０月３０日，ｐ．６６−６７
【０００４】
【発明が解決しようとする課題】
ところで、データ入出力要求を受信した記憶装置においては、受信した順にデータ入出力要求に応じた処理がなされている。
しかしながら、記憶装置が受信するデータ入出力要求には個々のデータ入出力要求において関連性があるものがあり、これらのデータ入出力要求に着目したデータ入出力要求に応じた処理の効率化を図る仕組みについては開発されていなかった。
そこで、本発明者らは、個々のデータ入出力要求の関連性に着目し、効率よくデータ入出力要求に応じた処理を記憶装置に行わせることが可能な、情報処理装置、情報処理装置の制御方法、プログラム、及び情報処理システムを提供することを主たる目的とする。
【０００５】
【課題を解決するための手段】
上記主たる目的を達成するための発明である情報処理装置は、
複数のデータ入出力要求を論理的に設定された複数の論理パスを通じて受信し、前記論理パスごとに順次前記データ入出力要求に応じた処理を実行し、前記データ入出力要求により指定された記憶領域上の領域と前記領域に後続する領域のデータを先読みしてキャッシュメモリに記憶する機能を備えた記憶装置に送信するための前記データ入出力要求を前記複数の論理パスに適宜割り当てる手段と、
第一の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域と、第二の前記データ入出力要求により指定された前記記憶装置の記憶領域上の領域とが連続する場合に、前記第二のデータ入出力要求を前記第一のデータ入出力要求を割り当てた前記論理パスと同一の前記論理パスに割り当てる手段と、
を備えることを特徴とする。
このように、本発明の情報処理装置は、個々のデータ入出力要求の関連性に基づいて、個々のデータ入出力要求を複数の論理パスに割り当てることが可能となり、効率よくデータ入出力要求に応じた処理を記憶装置に行わせることが可能となる。
【０００６】
なお、本発明の他の特徴については、本明細書及び添付図面の記述により明らかにする。
【０００７】
【発明の実施の形態】
以下、本発明の実施の形態について図面を用いて詳細に説明する。
＝＝＝全体構成例＝＝＝
＜ストレージシステム＞
まず、本実施の形態に係る情報処理システムの全体構成を示すブロック図を図１に示す。
情報処理システムは、１台の情報処理装置１００と１台の記憶装置２００とを含んで構成される。情報処理システムは、例えば、銀行のオンラインや経理等の業務、商社、物流会社などにおける在庫管理、鉄道会社や航空会社における座席予約などに運用されるシステムである。なお、本実施の形態においては、１台の情報処理装置１００と１台の記憶装置２００とを備える情報処理システムについて説明するが、１又は複数台の情報処理装置１００と１又は複数台の記憶装置２００とを備える情報処理システムであってもよい。
【０００８】
情報処理装置１００には、例えばＳＡＮを介して記憶装置２００が接続されている。ＳＡＮは、例えばファイバチャネルプロトコル（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  Ｐｒｏｔｏｃｏｌ）に従って通信が行われ、情報処理装置１００と記憶装置２００とを接続するネットワークである。ＳＡＮを介して行われる情報処理装置１００と記憶装置２００との間の通信は、一般にファイバチャネルプロトコルに従って行われる。情報処理装置１００からは、記憶装置２００に対して、ファイバチャネルプロトコルに従ってブロック単位のデータアクセス要求が送信される。なお、情報処理装置１００と記憶装置２００とは、必ずしもＳＡＮのような通信手段で接続される必要はなく、ＬＡＮなどのネットワークを介して接続されるようにしてもよいし、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｆａｃｅ）規格の通信線等のように直接接続されるようにしてもよい。
【０００９】
情報処理装置１００と記憶装置２００とを接続するＳＡＮには、複数の通信経路（以下、「論理パス」と称する）３０１乃至３０４が設定されており、情報処理装置１００は複数の論理パス３０１乃至３０４を通じて記憶装置２００が記憶しているデータにアクセスする。論理パス３０１乃至３０４は、情報処理装置１００と記憶装置２００とを接続するハードウェアにより物理的に構成されるデータ転送路である物理パスに対応づけられている。
【００１０】
＜記憶装置＞
記憶装置２００は、情報処理装置１００から送信されてくるデータ書き込み要求やデータ読み出し要求などのデータ入出力要求に応じてデータの入出力処理を行う。記憶装置２００は、例えば、ディスクアレイ装置や半導体記憶装置などである。
【００１１】
記憶装置２００は、ディスク制御部２１０、論理デバイス２２０などを備える。論理デバイス（以下、「ＬＤＥＶ（Ｌｏｇｉｃａｌ  Ｄｅｖｉｃｅ）」と称する）２２０は、情報処理装置１００に提供する記憶資源を論理的に設定した記憶領域である。図１において、記憶装置２００は、ＬＤＥＶ１（２２１）とＬＤＥＶ２（２２２）の２つの論理デバイスを備えることとしているが、複数の論理デバイスを備えていてもよい。記憶資源としては、例えばハードディスク装置やフレキシブルディスク装置、半導体記憶装置等様々なものを用いることができる。ディスク制御部２１０は情報処理装置１００から送信されてくるデータ入出力要求を受け、論理デバイス２２０に記憶されているデータのアクセスを制御する。
【００１２】
ディスク制御部２１０は、データバッファ２１１を備えている。データバッファ２１１は、例えば、ＬＤＥＶ２２０に書き込まれるデータやＬＤＥＶ２２０から読み出されたデータを一時的に記憶するために利用される。
【００１３】
論理パス３０１乃至３０４を通じて情報処理装置１００からデータ書き込み要求が送信されてきた場合には、例えば、記憶装置２００ではデータバッファ２１１上でリード・モディファイ・ライト（ｒｅａｄ／ｍｏｄｉｆｙ／ｗｒｉｔｅ）処理が行われる場合がある。データの書き込み処理が終了すると、記憶装置２００は同一の論理パス３０１乃至３０４を通じて情報処理装置１００にデータ書き込み要求の処理終了通知を送信する。すなわち、情報処理装置１００への終了通知は、ＬＤＥＶ２２０への実際のデータの書き込み動作とは非同期に行われる。その後、ディスク制御部２１０は、データバッファ２１１に書き込まれたデータをＬＤＥＶ２２０に書き込む。以上のようにしてデータ書き込み要求に応じたＬＤＥＶ２２０へのデータの書き込みが行われる。
【００１４】
一方、論理パス３０１乃至３０４を通じて情報処理装置１００からデータ読み出し要求が送信されてきた場合には、記憶装置２００はデータバッファ２１１に読み出し対象のデータが存在するか否かを判断する。データバッファ２１１に読み出し対象のデータが存在する場合には、記憶装置２００はデータバッファ２１１に存在する読み出し対象のデータを情報処理装置１００に転送する。データバッファ２１１に読み出し対象のデータが存在しない場合には、ディスク制御部２１０は、データ読み出し要求に指定されている読み出し対象のデータをＬＤＥＶ２２０から読み出して、読み出したデータをデータバッファ２１１に書き込む。記憶装置２００は、データバッファ２１１に書き込まれた読み出し対象のデータを情報処理装置１００に転送する。以上のようにしてデータ読み出し要求に応じた処理が行われる。
【００１５】
データバッファ２１１に対するデータの読み出し、書き込み速度は、ＬＤＥＶ２２０と比較して高速であり、ＬＤＥＶ２２０に対して入出力するデータを一時的にデータバッファ２１１に記憶することにより、情報処理装置１００からのデータ入出力要求に対する処理効率を向上させている。
【００１６】
なお、本実施の形態においては、記憶装置２００に先読みキャッシュ機能を備えることとしている。この先読みキャッシュ機能とは、記憶装置２００が受信したデータ入出力要求により指定されたＬＤＥＶ２２０上の領域が、それ以前に、同一の論理パスを通じて受信したデータ入出力要求により指定されたＬＤＥＶ２２０上の領域と連続している場合に、データ入出力要求により指定されたＬＤＥＶ２２０上の領域に後続する領域（シーケンシャル領域）のデータをＬＤＥＶ２２０から先読みし、データバッファ２１１に記憶させる機能をいう。これにより、同一の論理パスを通じて情報処理装置１００からＬＤＥＶ２２０上の連続した領域を指定するデータ入出力要求を受信した場合に、データバッファ２１１に存在するデータを有効に利用することが可能となり、データ入出力の処理に要する時間を短縮することができる。
【００１７】
なお、ディスク制御部２１０は図１に示すように記憶装置２００と一体型とすることもできるし、別体型とすることもできる。また、図１においては論理デバイス２２０が記されているが、記憶デバイス２２０を記憶資源により提供される記憶領域である論理ユニットとすることもできるし、論理ユニットを複数のパーティションに分割した形態とすることもできる。
【００１８】
＜情報処理装置＞
情報処理装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やメモリなどを備え、各種アプリケーションプログラムを実行する。例えば銀行の自動預金預け払いシステムや航空機の座席予約システム等のプログラムを実行する。情報処理装置１００は、パーソナルコンピュータ、ワークステーション、メインフレームコンピュータなどのコンピュータであってもよいし、ルータ、ハブなどのネットワーク装置であってもよい。以下、情報処理装置１００がコンピュータである場合について説明する。
【００１９】
情報処理装置１００は、図１に示すように、アプリケーション１１０、パス管理部１２０、複数のＩＯ処理部１３１乃至１３４、複数のアダプタ１４１乃至１４４などを備えている。
【００２０】
アプリケーション１１０は、情報処理装置１００において実行される様々なアプリケーションプログラムである。アプリケーションプログラムは記憶装置２００に記憶されているデータへのアクセスを適宜行いながら処理を実行する。
【００２１】
情報処理装置１００のアダプタ１４１乃至１４４は、記憶装置２００との間で通信を行うためのインタフェースであり、例えば、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）、アダプタ、ファイバチャネルアダプタなどのＨＢＡ（Ｈｏｓｔ  Ｂｕｓ  Ａｄａｐｔｅｒ）である。これにより、記憶装置２００との間でデータ入出力要求等を授受する機能を実現することが可能となる。
【００２２】
ＩＯ処理部１３１乃至１３４は、上記アダプタ１４１乃至１４４を制御するためのドライバやソフトウェアなどである。ＩＯ処理部１３１乃至１３４は、例えば、ＳＣＳＩドライバなどである。ＩＯ処理部１３１乃至１３４は、パス管理部１２０から通知されたデータ入出力要求を順次処理する。ＩＯ処理部１３１乃至１３４は、データ入出力要求を所定の通信プロトコルのパケットに変換し、アダプタ１４１乃至１４４を介して記憶装置２００に送信する。通信プロトコルとしては、例えば、ファイバチャネル、ＴＣＰ／ＩＰなどのプロトコルを採用することができる。
【００２３】
パス管理部１２０は、情報処理装置１００と記憶装置２００との間の論理パス３０１乃至３０４を管理するための機能を備えている。パス管理部１２０は、記憶装置２００へのデータ入出力要求を送信する論理パス３０１乃至３０４を多重化することにより、データアクセスにおけるボトルネックを解消し、データ入出力処理性能を向上させる。パス管理部１２０はデータ入出力要求を各論理パス３０１乃至３０４へ適宜振り分けることによって負荷分散も行う。さらに、パス管理部１２０は、ある論理パス３０１乃至３０４に障害が発生した場合に当該論理パス３０１乃至３０４を切り離して、正常な論理パス３０１乃至３０４を通じて記憶装置２００にデータアクセスを継続する機能も有している。これにより、論理パス障害によるサービス停止を回避しシステムの信頼性を高めている。
【００２４】
＝＝＝データ入出力要求について＝＝＝
データのアクセスは、例えば、データ書き込み要求又はデータ読み出し要求などのデータ入出力要求（以下、「ＩＯ要求」と称する）により行われる。このＩＯ要求は様々なアプリケーション１１０により発行される。図２に、ＩＯ要求のフォーマットの一例を示す。ＩＯ要求には、ヘッダ、記憶装置、ＬＤＥＶ（Ｌｏｇｉｃａｌ  Ｄｅｖｉｃｅ）、アドレス、データ長などが指定されている。ヘッダには、ＩＯ要求を送信する情報処理装置１００の識別子などの情報が記録されている。記憶装置には、ＩＯ要求の処理対象となる記憶装置の識別子が記録されている。ＬＤＥＶには、ＩＯ要求の処理対象となるＬＤＥＶの識別子が記録されている。アドレスには、データの読み出し又は書き込みなどの開始位置（先頭アドレス）が記録されている。また、データ長には読み出し対象又は書き込み対象のデータのサイズが記録されている。なお、ＩＯ要求がデータの書き込み要求である場合には、ＩＯ要求に書き込み対象のデータが付加される。
【００２５】
アプリケーション１１０からのＩＯ要求は、パス管理部１２０で均等に論理パス３０１乃至３０４に分散され、記憶装置２００に送信される。図３に、パス管理部１２０がＩＯ要求を各論理パス３０１乃至３０４に分散させるイメージ例を示す。図３に示すように、アプリケーション１１０から発行されたＩＯ要求▲１▼〜▲８▼は、パス管理部１２０により各論理パス３０１乃至３０４に均等に割り当てられる。このように、複数のＩＯ要求を並列処理することにより、情報処理システムの処理性能の向上を図ることが可能となる。なお、本実施の形態に係るパス管理部１２０は、同一ＬＤＥＶ２２０上の連続した領域を対象とする複数のＩＯ要求を同一の論理パス３０１乃至３０４を通じて記憶装置２００に送信する機能を有している。以下、この機能について詳述することとする。
【００２６】
＝＝＝パス管理部１２０の詳細な構成例＝＝＝
まず、本実施の形態に係るパス管理部１２０の構成について説明する。図４は、本発明の一実施例として説明するパス管理部１２０の構成を示す図である。図４に示すように、パス管理部１２０は、ＩＯ要求受付部１２１、ＩＯ終了通知部１２２、シーケンシャル判定部１２３、ＩＯ割り当て待ちキュー１２４、ＩＯ情報記録部１２５、ディスク情報記録部１２６、ＩＯ割り当て部１２７などを備えている。
【００２７】
ＩＯ要求受付部１２１は、アプリケーション１１０が発行するＩＯ要求を順次受け取る。ＩＯ終了通知部１２２は、アプリケーション１１０から受け取ったＩＯ要求に対する処理が終了した場合にその旨をアプリケーション１１０に通知する。
【００２８】
シーケンシャル判定部１２３は、ＩＯ要求受付部１２１がアプリケーション１１０から受け取ったＩＯ要求（以下、「第二のＩＯ要求」と称する）がシーケンシャルＩＯ要求であるかを判定する。具体的には、ＩＯ要求受付部１２１が第二のＩＯ要求に指定された記憶領域が、第二のＩＯ要求を受け取る以前に既にアプリケーション１１０から受け取っているＩＯ要求（以下、「第一のＩＯ要求」と称する）に指定された記憶領域に後続するか否かを判定する。この判定は、（１）第二のＩＯ要求と第一のＩＯ要求とが指定する記憶装置が一致するか、（２）第二のＩＯ要求と第一のＩＯ要求とが指定しているＬＤＥＶが一致するか、（３）第一のＩＯ要求に指定されているアドレスからデータ長分進んだアドレスが、第二のＩＯ要求に指定されているアドレスと一致するか、の判断を後述するＩＯ情報テーブル２１００に登録されている全ての第一のＩＯ要求に対して行う。
【００２９】
これらの判断の結果、全ての条件を満たすＩＯ要求（以下、「判定条件を満たすＩＯ要求」と称する）が存在した場合には、シーケンシャル判定部１２３は、第二のＩＯ要求をシーケンシャルＩＯ要求であると判定する。一方、上記判断の結果、全ての条件を満たすＩＯ要求が存在しなかった場合には、シーケンシャル判定部１２３は、第二のＩＯ要求をランダムＩＯ要求であると判定する。なお、このシーケンシャルＩＯ要求の判定は、第二のＩＯ要求がデータ読み出し要求である場合にはデータ読み出し要求である第一のＩＯ要求に対して行われ、第二のＩＯ要求がデータ書き込み要求である場合にはデータ書き込み要求である第一のＩＯ要求に対して行われる。なお、シーケンシャルＩＯ要求であるかの判定条件には、上記以外の条件を追加するようにすることもできる。
【００３０】
ＩＯ情報記録部１２５は、ＩＯ情報テーブル２１００を保持している。図５にＩＯ情報テーブル２１００の一例を示す。ＩＯ情報テーブル２１００には、アプリケーション１１０からＩＯ要求受付部１２１が受け取ったＩＯ要求の情報が登録されている。
【００３１】
ＩＯ情報テーブル２１００のＩＤの欄には、ＩＯ要求の情報を登録する際に割り当てられる識別子（例えば、番号など）が記録されている。ＩＯ情報テーブル２１００の対象装置の欄、対象ＬＤＥＶの欄、先頭アドレスの欄、及びデータ長の欄には、ＩＯ要求により指定された記憶装置の識別名称、ＬＤＥＶの識別子、アドレス、及びデータ長が記録されている。
【００３２】
ＩＯ情報テーブル２１００の処理状態の欄には、現在のＩＯ要求の処理状態が記録される。ＩＯ要求がいずれかのＩＯ処理部１３１乃至１３４においてデータの書き込みや読み出しなどの処理が実行されている場合には「処理中」が記録される。ＩＯ要求が未だ処理されていない場合、すなわち、ＩＯ割り当て待ちキュー１２４にＩＯ要求が登録されている場合には「処理待ち」が記録される。ＩＯ要求に対するデータの書き込みや読み出しなどの処理が既に終了している場合には「終了」が記録される。
【００３３】
ＩＯ情報テーブル２１００の処理後経過時間の欄には、ＩＯ要求の処理状態が「処理中」から「終了」に更新されてからの経過時間が記録される。ＩＯ情報テーブル２１００の割り当てＩＯ処理部の欄には、ＩＯ要求を処理しているＩＯ処理部１３１乃至１３４、もしくはＩＯ要求を割り当てる予定のＩＯ処理部１３１乃至１３４の識別名称が記録される。
【００３４】
ＩＯ情報テーブル２１００の種別の欄には、後述するシーケンシャルＩＯ要求の判定により判定された結果を示すフラグが記録される。ＩＯ情報テーブル２１００の後続ＩＯの欄には、各ＩＯ要求に指定された記憶領域に後続する記憶領域を処理対象とするＩＯ要求のＩＤが記録される。これにより、パス管理部１２０はどのＩＯ要求にどのＩＯ要求が後続するかを把握することが可能となる。
【００３５】
なお、ＩＯ情報テーブル２１００に登録されている上記ＩＯ要求に関する情報は、ＩＯ情報テーブル２１００の終了後経過時間が一定値を越えた場合に削除される。また、ＩＯ情報テーブル２１００に登録できる数以上のＩＯ要求を受け取った場合には、ＩＯ情報テーブル２１００の終了後経過時間が最も長いＩＯ要求の情報をＩＯ情報テーブル２１００から削除することとしてもよい。なお、ＩＯ情報テーブル２１００の処理状態の欄を「処理中」から「終了」に更新する際に、ＩＯ情報テーブル２１００の後続ＩＯの欄にＩＯ要求のＩＤが記録されている場合には、当該ＩＯ要求の処理状態の欄を「処理中」から「終了」に更新せずにＩＯ要求の情報を削除する。
【００３６】
ＩＯ割り当て待ちキュー１２４には、処理待ちのＩＯ要求が登録されている。このＩＯ割り当て待ちキュー１２４へのＩＯ要求の登録は、シーケンシャル判定部１２３により行われる。
【００３７】
ディスク情報記録部１２６は、ディスク情報テーブル２２００を保持している。図６にディスク情報テーブル２２００の一例を示す。ディスク情報テーブル２２００には、ディスクの種別及び先読みデータサイズが記録されている。ディスクの種別の欄には記憶装置２００の識別名称が記録されており、先読みデータサイズの欄には記憶装置２００が有する先読みキャッシュ機能により先読み可能なデータサイズが記録されている。このディスク情報テーブル２２００により、情報処理装置１００は、記憶装置２００が１つのＩＯ要求によりデータの読み出しが可能なデータサイズを把握することが可能となる。なお、ディスク情報テーブル２２００における情報は、例えば、オペレータ等が予め登録することとしてもよいが、情報処理装置１００が各記憶装置２００に問い合わせることにより取得できるようにしてもよい。
【００３８】
ＩＯ割り当て部１２７は、ＩＯ割り当て待ちキュー１２４から取得したＩＯ要求を割り当てるＩＯ処理部１３１乃至１３４を決定する。ＩＯ要求の割り当ては、例えば、ＩＯ要求を処理していないＩＯ処理部１３１乃至１３４、又はＩＯ要求の処理が終了したＩＯ処理部１３１乃至１３４に割り当てる方式を採用することができる。なお、ＩＯ要求を処理していないＩＯ処理部１３１乃至１３４が複数存在する場合には、最も長い間未稼働であったＩＯ処理部１３１乃至１３４に割り当てることとしてもよい。
【００３９】
＝＝＝実施例１＝＝＝
次に、パス管理部１２０がアプリケーション１１０から第二のＩＯ要求を受け取った場合の情報処理装置１００におけるＩＯ要求の割り当て処理の仕組みについて図７及び図８を用いて説明する。
【００４０】
＜ＩＯ割り当て待ちキュー１２４への登録＞
図７は、アプリケーション１１０から受け取った第二のＩＯ要求をＩＯ割り当て待ちキュー１２４に登録するまでの処理の一例を説明するフローチャートである。
【００４１】
パス管理部１２０のＩＯ要求受付部１２１がアプリケーション１１０から第二のＩＯ要求を受け取ると（Ｓ７００）、シーケンシャル判定部１２３は第二のＩＯ要求がシーケンシャルＩＯ要求であるかを判定する（Ｓ７０１）。この判定の結果（Ｓ７０２）、シーケンシャル判定部１２３が第二のＩＯ要求をランダムＩＯ要求であると判定した場合（ランダムＩＯ要求）には、シーケンシャル判定部１２３は、第二のＩＯ要求に識別子を割り当て、その情報をＩＯ情報テーブル２１００に登録する。そして、割り当てられた識別子をＩＯ要求のヘッダに記録し、ＩＯ割り当て待ちキュー１２４の末尾にＩＯ要求を登録する（Ｓ７０４）。
【００４２】
第二のＩＯ要求がシーケンシャルＩＯ要求であるかを判定した結果（Ｓ７０２）、シーケンシャルＩＯ要求であると判定した場合（シーケンシャルＩＯ要求）には、第二のＩＯ要求を判定条件を満たすＩＯ要求と同じＩＯ処理部１３１乃至１３４に処理させるために、判定条件を満たすＩＯ要求を処理した又は処理しているＩＯ処理部１３１乃至１３４、あるいは判定条件を満たすＩＯ要求を処理する予定のＩＯ処理部１３１乃至１３４を指定する情報を第二のＩＯ要求に付加する（Ｓ７０３）。第二のＩＯ要求に付加する、ＩＯ処理部１３１乃至１３４を指定する情報は、例えば、判定条件を満たすＩＯ要求に対応するＩＯ情報テーブル２１００の割り当てＩＯ処理部の欄に記録されているＩＯ処理部１３１乃至１３４の識別名称などである。なお、ＩＯ情報テーブル２１００の割り当てＩＯ処理部の欄にＩＯ処理部１３１乃至１３４の識別名称が記録されていない場合には、例えば、判定条件を満たすＩＯ要求と第二のＩＯ要求を同一のＩＯ処理部１３１乃至１３４に処理させるために、同一のＩＯ処理部１３１乃至１３４を指定する情報をそれぞれのＩＯ要求に付加することとしてもよい。
【００４３】
その後、シーケンシャル判定部１２３は、第二のＩＯ要求の情報をＩＯ情報テーブル２１００に登録し、判定条件を満たすＩＯ要求に対応するＩＯ情報テーブル２１００の後続ＩＯの欄に第二のＩＯ要求の識別子を記録する。そして、割り当てられた識別子を第二のＩＯ要求のヘッダに記録し、ＩＯ割り当て待ちキュー１２４の末尾に第二のＩＯ要求を登録する（Ｓ７０４）。
【００４４】
＜ＩＯ要求の割り当て処理＞
次に、ＩＯ割り当て待ちキュー１２４に登録されたＩＯ要求をＩＯ処理部１３１乃至１３４に割り当てる処理の流れを示すフローチャートを図８に示す。
ＩＯ割り当て部１２７は、ＩＯ割り当て待ちキュー１２４からＩＯ要求を受け取ると（Ｓ８００）、ＩＯ割り当て部１２７は、ＩＯ要求にＩＯ処理部１３１乃至１３４を指定する情報が付加されているかを確認する（Ｓ８０１）。
【００４５】
確認の結果（Ｓ８０２）、ＩＯ処理部１３１乃至１３４を指定する情報が付加されていない場合（指定無し）には、ＩＯ割り当て部１２７は未稼働であるＩＯ処理部１３１乃至１３４にＩＯ要求を割り当てる（Ｓ８０３）と共に、ＩＯ要求のヘッダに記録されている識別子に基づいて、ＩＯ情報テーブル２１００の処理状態の欄を「処理待ち」から「処理中」に更新する。また、ＩＯ情報テーブル２１００の割り当てＩＯ処理部の欄にＩＯ要求を割り当てたＩＯ処理部の識別名称を登録し、処理を終了させる。なお、未稼働であるＩＯ処理部１３１乃至１３４が複数存在する場合には、最も長い時間未稼働であったＩＯ処理部１３１乃至１３４に割り当てることとしてもよい。
【００４６】
一方、確認の結果（Ｓ８０２）、ＩＯ処理部１３１乃至１３４を指定する情報が付加されている場合（指定あり）には、当該情報により指定されているＩＯ処理部１３１乃至１３４にＩＯ要求を割り当てる（Ｓ８０４）。また、それと同時にＩＯ要求のヘッダに記録されている識別子に基づいて、ＩＯ情報テーブル２１００の処理状態の欄を「処理待ち」から「処理中」に更新する。
【００４７】
ＩＯ要求を取得したＩＯ処理部１３１乃至１３４は、ＩＯ要求を所定の通信プロトコルのパケットに変換し、対応するアダプタ１４１乃至１４４を介して記憶装置２００に送信する。記憶装置２００は、情報処理装置１００から送信されてくるＩＯ要求を受信すると、そのＩＯ要求に応じた処理（データ書き込み処理又はデータ読み出し処理）を開始する。
【００４８】
記憶装置２００は、情報処理装置１００から送信されてくるＩＯ要求に応じた処理を終了すると、情報処理装置１００に対してＩＯ要求の処理終了通知を行う。情報処理装置１００のＩＯ処理部１３１乃至１３４は、記憶装置２００からアダプタ１４１乃至１４４を介してＩＯ要求の処理完了通知を受信すると、パス管理部１２０にその旨を通知する。
【００４９】
＜ＩＯ要求の処理終了通知を受信した後の処理＞
図９は、ＩＯ要求の処理終了通知を受信した後の処理について説明するフローチャートである。
【００５０】
ＩＯ処理部１３１乃至１３４からＩＯ要求の処理終了が通知されると（Ｓ９００）、ＩＯ割り当て部１２７は当該ＩＯ要求に対応するＩＯ情報テーブル２１００の処理状態の欄を「処理中」から「終了」に更新する。この更新により、ＩＯ情報テーブル２１００の処理後経過時間のカウントが開始される。
また、ＩＯ割り当て部１２７は、ＩＯ終了通知部１２２にＩＯ要求の処理終了を通知する（Ｓ９０１）。この通知を受信したＩＯ終了通知部１２２は、アプリケーション１１０にＩＯ要求の処理終了を通知する（Ｓ９０２）。
以上のように、記憶装置２００のＬＤＥＶ２２０上の連続した領域を対象とした複数のＩＯ要求を同一の論理パスに割り当てることが可能となり、記憶装置が有する先読みキャッシュ機能を有効活用することができ、効率よくＩＯ要求に応じた処理を記憶装置に行わせることが可能となる。
【００５１】
本実施例においては、ＩＯ割り当て待ちキュー１２４に登録された順番でＩＯ要求をＩＯ処理部１３１乃至１３４に割り当てることとしたが、ＬＤＥＶ２２０上の連続した領域に対する複数のＩＯ要求を特定のＩＯ処理部１３１乃至１３４に割り当てることとしてもよい。また、ＩＯ割り当て部１２７が、ＬＤＥＶ２２０上の連続した領域に対する複数のＩＯ要求をＩＯ割り当て待ちキュー１２４から取得し、これらのＩＯ要求を連続させてＩＯ処理部１３１乃至１３４に割り当てることとしてもよい。
【００５２】
なお、ＩＯ処理部１３１乃至１３４において、判定条件を満たすＩＯ要求の処理がなされている場合や、判定条件を満たすＩＯ要求の処理が既に終了している場合には、第二のＩＯ要求をＩＯ割り当て待ちキュー１２４には登録せずに、優先的に第二のＩＯ要求を同一のＩＯ処理部１３１乃至１３４に割り当てることとしてもよい。詳細については実施例２で説明することとする。
また、判定条件を満たすＩＯ要求がＩＯ割り当て待ちキュー１２４に登録されており、未だ処理されていない場合には、それらのＩＯ要求を結合してＩＯ処理部１３１乃至１３４に割り当てることとしてもよい。詳細については実施例３で説明することとする。
【００５３】
＝＝＝実施例２＝＝＝
次に、シーケンシャルＩＯ要求を優先的にＩＯ処理部１３１乃至１３４に割り当てる処理の仕組みについて図１０を用いて説明する。
【００５４】
＜ＩＯ割り当て待ちキュー１２４への登録＞
図１０は、アプリケーション１１０から受け取った第二のＩＯ要求をＩＯ割り当て待ちキュー１２４に登録するまでの処理の一例を説明するフローチャートである。
【００５５】
パス管理部１２０のＩＯ要求受付部１２１がアプリケーション１１０から第二のＩＯ要求を受け取ると（Ｓ１０００）、シーケンシャル判定部１２３は第二のＩＯ要求がシーケンシャルＩＯ要求であるかどうかを判定する（Ｓ１００１）。判定の結果（Ｓ１００２）、ランダムＩＯ要求であると判定した場合（ランダムＩＯ要求）には、シーケンシャル判定部１２３は、第二のＩＯ要求に識別子を割り当て、ＩＯ要求の情報をＩＯ情報テーブル２１００に登録する。そして、割り当てられた識別子をＩＯ要求のヘッダに記録し、ＩＯ割り当て待ちキュー１２４の末尾に第二のＩＯ要求を登録する（Ｓ１００３）。
【００５６】
一方、判定の結果（Ｓ１００２）、シーケンシャルＩＯ要求であると判定した場合（シーケンシャルＩＯ要求）には、シーケンシャル判定部１２３は、第二のＩＯ要求に識別子を付加して、第二のＩＯ要求の情報をＩＯ情報テーブル２１００に登録する。なお、第二のＩＯ要求の情報を登録する際に、ＩＯ情報テーブル２１００の処理状態の欄に判定条件を満たすＩＯ要求を処理した又は処理しているＩＯ処理部１３１乃至１３４の識別名称も登録する。また、シーケンシャル判定部１２３は、判定条件を満たすＩＯ要求に対応するＩＯ情報テーブル２１００の後続ＩＯの欄に第二のＩＯ要求の識別子を記録する。そして、シーケンシャル判定部１２３は、ＩＯ割り当て待ちキュー１２４に他のＩＯ要求が登録されていても、それらのＩＯ要求より先に第二のＩＯ要求を、判定条件を満たすＩＯ要求を処理した又は処理しているＩＯ処理部１３１乃至１３４に処理させるために、第二のＩＯ要求をＩＯ割り当て待ちキュー１２４に登録せずに、判定条件を満たすＩＯ要求を処理した又は処理しているＩＯ処理部１３１乃至１３４に直接割り当てる（Ｓ１００４）。
【００５７】
＜ＩＯ要求の割り当て処理＞
次に、ＩＯ割り当て待ちキュー１２４に登録されたＩＯ要求の割り当て処理について説明する。図１１は、ＩＯ割り当て待ちキュー１２４に登録されたＩＯ要求の割り当て処理の一例を説明するフローチャートである。ＩＯ割り当て待ちキュー１２４に登録されたＩＯ要求は、登録された順で処理が行われる。
【００５８】
ＩＯ割り当て部１２７は、ＩＯ割り当て待ちキュー１２４からＩＯ要求を受け取ると（Ｓ１１００）、未稼働であるＩＯ処理部１３１乃至１３４にＩＯ要求を割り当てる（Ｓ１１０１）。それと同時に、ＩＯ要求のヘッダに記録されている識別子に基づいて、ＩＯ情報テーブル２１００の処理状態の欄を「処理待ち」から「処理中」に更新する。また、ＩＯ情報テーブル２１００の割り当てＩＯ処理部の欄にＩＯ要求を割り当てたＩＯ処理部の識別名称を登録し、処理を終了させる。なお、未稼働のＩＯ処理部１３１乃至１３４が複数存在する場合には、最も長い間未稼働であったＩＯ処理部１３１乃至１３４にＩＯ要求を割り当てることとしてもよい。
【００５９】
ＩＯ処理部１３１乃至１３４は、ＩＯ割り当て部１２７からＩＯ要求を受け取ると、所定の通信プロトコルのパケットに変換し、アダプタ１４１乃至１４４を介して記憶装置２００に送信する。記憶装置２００は、情報処理装置１００から送信されてくるＩＯ要求を受信すると、そのＩＯ要求に対する処理を開始する。
【００６０】
記憶装置２００は、情報処理装置１００から送信されてくるＩＯ要求に対する処理を完了すると、情報処理装置１００に対してＩＯ要求の処理終了を通知する。情報処理装置１００のＩＯ処理部１３１乃至１３４は、記憶装置２００からアダプタ１４１乃至１４４を介してＩＯ要求の処理終了通知を受信すると、パス管理部１２０にそれを通知する。
【００６１】
なお、上述においては、ＩＯ割り当て部１２７がＩＯ割り当て待ちキュー１２４からＩＯ要求を受け取った場合の処理について説明したが、ＩＯ割り当て部１２７がシーケンシャル判定部１２３からＩＯ要求を受け取った場合においても同様の処理が行われる。
【００６２】
＜ＩＯ要求の処理終了通知を受信した後の処理＞
図１２は、ＩＯ割り当て部１２７にＩＯ処理部１３１乃至１３４からＩＯ要求の処理終了が通知された場合の処理の一例を説明するフローチャートである。
【００６３】
ＩＯ処理部１３１乃至１３４からＩＯ要求の処理終了が通知されると（Ｓ１２００）、ＩＯ割り当て部１２７は、そのＩＯ要求のヘッダに記録されている識別子に基づいて、ＩＯ情報テーブル２１００の処理状態の欄を「処理中」から「終了」に更新する。そして、ＩＯ割り当て部１２７は、ＩＯ情報テーブル２１００の終了後経過時間のカウントを開始させ、ＩＯ終了通知部１２２にＩＯ要求の処理終了を通知する（Ｓ１２０１）。この通知を受信したＩＯ終了通知部１２２は、アプリケーション１１０にＩＯ要求の処理終了を通知する（Ｓ１２０２）。
【００６４】
以上のように、第二のＩＯ要求をＩＯ割り当て待ちキュー１２４に登録せずに、判定条件を満たすＩＯ要求を処理した又は処理しているＩＯ処理部１３１乃至１３４に第二のＩＯ要求を優先的に割り当てることにより、同一の論理パス３０１乃至３０４を通じて記憶装置２００に送信することが可能となる。従って、第二のＩＯ要求により指定されたデータが記憶装置２００のデータバッファ２１１に存在する場合には、記憶装置２００が有する先読みキャッシュ機能を有効利用することができるので、効率よくＩＯ要求に応じた処理を記憶装置２００に行わせることが可能となる。
【００６５】
＝＝＝実施例３＝＝＝
次に、シーケンシャル領域に対するＩＯ要求を結合してＩＯ処理部１３１乃至１３４に割り当てる処理の仕組みについて図１３及び図１４を用いて説明する。
【００６６】
＜ＩＯ割り当て待ちキュー１２４への登録＞
図１３は、アプリケーション１１０から受け取った第二のＩＯ要求をＩＯ割り当て待ちキュー１２４に登録するまでの処理の一例を説明するフローチャートである。
【００６７】
パス管理部１２０のＩＯ要求受付部１２１がアプリケーション１１０から第二のＩＯ要求を受け取ると（Ｓ１３００）、シーケンシャル判定部１２３は第二のＩＯ要求がシーケンシャルＩＯ要求であるかどうかを判定する（Ｓ１３０１）。判定の結果（Ｓ１３０２）、ランダムＩＯ要求であると判定した場合（ランダムＩＯ要求）には、シーケンシャル判定部１２３は、第二のＩＯ要求に識別子を割り当て、第二のＩＯ要求の情報をＩＯ情報テーブル２１００に登録する。そして、割り当てられた識別子をＩＯ要求のヘッダに記録し、ＩＯ割り当て待ちキュー１２４の末尾に第二のＩＯ要求を登録する（Ｓ１３０６）。
【００６８】
一方、判定の結果（Ｓ１３０２）、シーケンシャルＩＯ要求であると判定した場合（シーケンシャルＩＯ要求）には、シーケンシャル判定部１２３は、判定条件を満たすＩＯ要求と第二のＩＯ要求との結合を行うか否かを判定する（Ｓ１３０３）。この判定は、判定条件を満たすＩＯ要求が処理されているかどうかを判断することにより行われる。具体的には、判定条件を満たすＩＯ要求に対応するＩＯ情報テーブル２１００の処理状態の欄を参照することにより行われる。判定条件を満たすＩＯ要求の処理状態が「終了」又は「処理中」である場合には、判定条件を満たすＩＯ要求と第二のＩＯ要求を結合しないと判定する。一方、判定条件を満たすＩＯ要求の処理状態が「処理待ち」である場合には、判定条件をみたすＩＯ要求と第二のＩＯ要求を結合すると判定する。
【００６９】
なお、第二のＩＯ要求がデータ読み出し要求である場合には、判定条件を満たすＩＯ要求と第二のＩＯ要求とのデータ長の合計がＩＯ要求の処理対象となる記憶装置２００の先読み可能なデータサイズであるかどうかの判断も行う。この判断は、データの読み出し処理の遅延を防止するために行われる。
【００７０】
例えば、記憶装置２００が先読み可能なデータサイズを超えてデータの読み出し要求をした場合について考えてみる。この場合には、先読み可能なデータサイズを超えるデータ部分がデータバッファ２１１上に存在しない場合があり、その結果ＬＤＥＶ２２０に対する読み出し処理が発生して、処理が遅延してしまう可能性があるためである。従って、上記判断を行うことにより、必要なデータが全てデータバッファ２１１に存在することになるため、ＩＯ要求の処理遅延を防止することが可能となる。
【００７１】
なお、判定条件を満たすＩＯ要求と第二のＩＯ要求とのデータ長の合計は、ＩＯ情報テーブル２１００を参照して計測される。また、記憶装置２００の先読みデータサイズは、ディスク情報テーブル２００を参照することにより把握することができる。
【００７２】
判定条件を満たすＩＯ要求と第二のＩＯ要求との結合を行うか否かを判定した結果（Ｓ１３０４）、ＩＯ要求を結合しないと判定した場合には第二のＩＯ要求に識別子を割り当て、第二のＩＯ要求の情報をＩＯ情報テーブル２１００に登録する。第二のＩＯ要求の情報を登録する際に、シーケンシャル判定部１２３は、判定条件を満たすＩＯ要求を処理する予定のＩＯ処理部１３１乃至１３４の識別名称をＩＯ情報テーブル２１００の割り当てＩＯ処理部の欄に記録する。
【００７３】
また、シーケンシャル判定部１２３は、第二のＩＯ要求を判定条件を満たすＩＯ要求と同じＩＯ処理部１３１乃至１３４に処理させるために、判定条件を満たすＩＯ要求を処理した又は処理しているＩＯ処理部１３１乃至１３４、あるいは判定条件を満たすＩＯ要求を処理する予定のＩＯ処理部１３１乃至１３４を指定する情報を第二のＩＯ要求に付加する（Ｓ１３０５）。第二のＩＯ要求に付加する、ＩＯ処理部１３１乃至１３４を指定する情報は、例えば、判定条件を満たすＩＯ要求に対応するＩＯ情報テーブル２１００の割り当てＩＯ処理部の欄に記録されているＩＯ処理部１３１乃至１３４の識別名称などである。なお、ＩＯ情報テーブル２１００の割り当てＩＯ処理部の欄にＩＯ処理部１３１乃至１３４の識別名称が記録されていない場合には、例えば、判定条件を満たすＩＯ要求と第二のＩＯ要求を同一のＩＯ処理部１３１乃至１３４に処理させるために、同一のＩＯ処理部１３１乃至１３４を指定する情報をそれぞれのＩＯ要求に付加することとしてもよい。
【００７４】
その後、シーケンシャル判定部１２３は、第二のＩＯ要求に割り当てられた識別子をＩＯ要求のヘッダに記録し、ＩＯ割り当て待ちキュー１２４の末尾に第二のＩＯ要求を登録する（Ｓ１３０６）。なお、実施例２に記載のように、ＩＯ割り当て待ちキュー１２４に他のＩＯ要求が登録されていても、それらのＩＯ要求より先に第二のＩＯ要求を、判定条件を満たすＩＯ要求を処理した又は処理しているＩＯ処理部１３１乃至１３４に処理させるために、第二のＩＯ要求をＩＯ割り当て待ちキュー１２４に登録せずに、判定条件を満たすＩＯ要求を処理した又は処理しているＩＯ処理部１３１乃至１３４に直接割り当てることとしてもよい。
【００７５】
一方、判定条件を満たすＩＯ要求と第二のＩＯ要求との結合を行うか否かを判定した結果（Ｓ１３０４）、ＩＯ要求の結合をすると判定した場合には、判定条件を満たすＩＯ要求に対応するＩＯ情報テーブル２１００のデータ長に、第二のＩＯ要求で指定されているデータ長を加算し、第二のＩＯ要求を判定条件を満たすＩＯ要求に連結するようにＩＯ割り当て待ちキュー１２４に要求する（Ｓ１３０７）。
【００７６】
＜ＩＯ要求の割り当て処理＞
次に、ＩＯ割り当て待ちキュー１２４に登録されたＩＯ要求をＩＯ処理部１３１乃至１３４に割り当てる処理の流れを示すフローチャートを図１４に示す。
ＩＯ割り当て部１２７は、ＩＯ割り当て待ちキュー１２４からＩＯ要求を受け取ると（Ｓ１４００）、当該ＩＯ要求に連結されたＩＯ要求が存在するか否かを確認する（Ｓ１４０１）。確認の結果（Ｓ１４０２）、連結されたＩＯ要求が存在しない場合には、ＩＯ要求にＩＯ処理部１３１乃至１３４を指定する情報が付加されているかどうかを確認する（Ｓ１４０４）。
【００７７】
一方、確認の結果（Ｓ１４０２）、連結されたＩＯ要求が存在する場合には、連結された全てのＩＯ要求の結合を行う（Ｓ１４０３）。ＩＯ要求を結合して１つのＩＯ要求にした後、結合したＩＯ要求のヘッダに当該ＩＯ要求に割り当てられた識別子を記録する。ＩＯ割り当て部１２７は当該ＩＯ要求にＩＯ処理部１３１乃至１３４を指定する情報が付加されているかどうかを確認する（Ｓ１４０４）。なお、ＩＯ割り当て部１２７は、結合した全てのＩＯ要求の情報をＩＯ割り当て部１２７のＩＯ結合情報記録部１２８が保持するＩＯ結合情報管理テーブル２３００に登録する。図１５にＩＯ結合情報管理テーブル２３００の一例を示す。ＩＯ結合情報管理テーブル２３００には、順序、ＩＯ要求、データサイズなどが記録されている。順序の欄にはＩＯ要求の連結順序を示す識別子が記録されており、ＩＯ要求の欄には各ＩＯ要求に対する参照情報が記録されており、データサイズの欄には各ＩＯ要求により指定されたデータ長が記録されている。
【００７８】
ＩＯ結合情報テーブル２３００は、結合したＩＯ情報ごとに一つのＩＯ結合情報テーブル２３００を作成する。各ＩＯ結合情報テーブル２３００には、関連するＩＯ情報を識別するため、当該ＩＯ要求の識別子を付加する。
【００７９】
（Ｓ１４０４）において、ＩＯ要求にＩＯ処理部１３１乃至１３４を指定する情報が付加されているかどうかを確認した結果（Ｓ１４０５）、ＩＯ処理部１３１乃至１３４を指定する情報が付加されていない場合（指定無し）には、ＩＯ割り当て部１２７は未稼働であるＩＯ処理部１３１乃至１３４にＩＯ要求を割り当てる（Ｓ１４０６）。そして、ＩＯ要求のヘッダに記録されている識別子に基づいてＩＯ情報テーブル２１００の処理状態の欄を「処理待ち」から「処理中」に更新し、処理を終了させる。なお、未稼働であるＩＯ処理部１３１乃至１３４が複数存在する場合には、最も長い時間未稼働であったＩＯ処理部１３１乃至１３４に割り当てることとしてもよい。
【００８０】
一方、確認の結果（Ｓ１４０５）、ＩＯ処理部１３１乃至１３４を指定する情報が付加されている場合（指定あり）には、当該情報により指定されているＩＯ処理部１３１乃至１３４にＩＯ要求を割り当てる（Ｓ１４０７）。そして、ＩＯ要求のヘッダに記録されている識別子に基づいてＩＯ情報テーブル２１００の処理状態の欄を「処理待ち」から「処理中」に更新し、処理を終了させる。
【００８１】
ＩＯ要求を取得したＩＯ処理部１３１乃至１３４は、ＩＯ要求を所定の通信プロトコルのパケットに変換し、対応するアダプタ１４１乃至１４４を介して記憶装置２００に送信する。記憶装置２００は、情報処理装置１００から送信されてくるＩＯ要求を受信すると、そのＩＯ要求に応じた処理（データ書き込み処理又はデータ読み出し処理）を開始する。
【００８２】
記憶装置２００は、情報処理装置１００から送信されてくるＩＯ要求に応じた処理を終了すると、情報処理装置１００に対してＩＯ要求の処理終了を通知する。情報処理装置１００のＩＯ処理部１３１乃至１３４は、記憶装置２００からアダプタ１４１乃至１４４を介してＩＯ要求の処理終了通知を受信すると、パス管理部１２０にそれを通知する。
【００８３】
＜ＩＯ要求の処理終了通知を受信した後の処理＞
図１６は、ＩＯ割り当て部１２７にＩＯ処理部１３１乃至１３４からＩＯ要求の処理終了が通知された場合の処理の一例を説明するフローチャートである。
ＩＯ処理部１３１乃至１３４からＩＯ要求の処理終了が通知されると（Ｓ１６００）、ＩＯ割り当て部１２７は当該ＩＯ要求が結合されたＩＯ要求であるか否かを確認する（Ｓ１６０１）。この確認は、ＩＯ要求のヘッダに記録された識別子が付加されたＩＯ結合情報管理テーブル２３００が存在するか否かを確認することにより行われる。確認の結果（Ｓ１６０２）、ＩＯ要求が結合されたＩＯ要求でない場合（結合されていない）には、ＩＯ要求のヘッダに記録された識別子に基づいてＩＯ情報テーブル２１００の処理状態の欄を「処理中」から「終了」に更新する。そして、ＩＯ割り当て部１２７は、ＩＯ情報テーブル２１００の終了後経過時間のカウントを開始させ、ＩＯ終了通知部１２２にＩＯ要求の処理終了を通知する（Ｓ１６０４）。
【００８４】
一方、確認の結果（Ｓ１６０２）、ＩＯ要求が結合されたＩＯ要求である場合（結合されている）には、ＩＯ結合情報管理テーブル２３００を参照してＩＯ要求の分解を行う（Ｓ１６０３）。また、ＩＯ割り当て部は、ＩＯ要求のヘッダに記録された識別子に基づいてＩＯ情報テーブル２１００の処理状態の欄を「処理中」から「終了」に更新する。そして、ＩＯ割り当て部１２７は、分解したＩＯ要求ごとにＩＯ終了通知部１２２にＩＯ要求の処理終了を通知する（Ｓ１６０４）。
ＩＯ処理通知部１２２は、ＩＯ要求の処理終了通知を受信すると、アプリケーション１１０にそのＩＯ要求の処理終了を通知する（Ｓ１６０５）。
【００８５】
以上のように、記憶装置２００のＬＤＥＶ２２０上の連続した領域に対する複数のＩＯ要求を結合して１つのＩＯ要求とし、そのＩＯ要求を論理パス３０１乃至３０４を通じて記憶装置２００に送信することにより、個別のＩＯ要求に対する処理（例えば、キャッシュの確保、記憶領域の確保などの処理）が削減され、効率よくＩＯ要求に応じた処理を記憶装置２００に行わせることが可能となる。
【００８６】
なお、本実施例においては、（Ｓ１３０４）にてシーケンシャル判定部１２３が結合すると判定した場合には、判定条件を満たすＩＯ要求と第二のＩＯ要求との結合を行い、ＩＯ処理部１３１乃至１３４に割り当てることとしているが、判定条件を満たすＩＯ要求と第二のＩＯ要求とを同一のＩＯ処理部１３１乃至１３４に連続して処理させるように、判定条件を満たすＩＯ要求と第二のＩＯ要求とを順次、同一のＩＯ処理部１３１乃至１３４に割り当てることとしてもよい。この場合には、判定条件を満たすＩＯ要求が処理されたＩＯ処理部１３１乃至１３４に他のＩＯ要求が割り当てられることなく、第二のＩＯ要求が割り当てられることとなるので、記憶装置２００が有する先読みキャッシュ機能を確実に有効利用することができ、効率よくＩＯ要求に応じた処理を記憶装置２００に行わせることが可能となる。
【００８７】
以上本実施の形態について説明したが、上記実施例は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明はその趣旨を逸脱することなく変更、改良され得ると共に、本発明にはその等価物も含まれる。
【００８８】
【発明の効果】
本発明によれば、効率よくデータ入出力要求に応じた処理を記憶装置に行わせることが可能な、情報処理装置、情報処理装置の制御方法、プログラム、及び情報処理システムを提供することができる。
【図面の簡単な説明】
【図１】本実施の形態に係る情報処理システムの全体構成を示すブロック図である。
【図２】本実施の形態に係るＩＯ要求のフォーマットを示す図である。
【図３】パス管理部がＩＯ要求を各論理パスに分散させるイメージ例を示す図である。
【図４】本発明の一実施例として説明するパス管理部の構成を示す図である。
【図５】本実施の形態に係るＩＯ情報テーブルを示す図である。
【図６】本実施の形態に係るディスク情報テーブルを示す図である。
【図７】本実施の形態に係る、アプリケーション１１０から受け取ったＩＯ要求をＩＯ割り当て待ちキューに登録するまでの処理を説明するフローチャートである。
【図８】本実施の形態に係る、ＩＯ要求をＩＯ処理部に割り当てる処理の流れを示すフローチャートである。
【図９】本実施の形態に係る、ＩＯ処理部からＩＯ要求の処理終了が通知された場合の処理を説明するフローチャートである。
【図１０】本実施の形態に係る、アプリケーションから受け取ったＩＯ要求をＩＯ割り当て待ちキューに登録するまでの処理を説明するフローチャートである。
【図１１】本実施の形態に係る、ＩＯ要求の割り当て処理を説明するフローチャートである。
【図１２】本実施の形態に係る、ＩＯ処理部からＩＯ要求の処理終了が通知された場合の処理を説明するフローチャートである。
【図１３】本実施の形態に係る、アプリケーションから受け取ったＩＯ要求をＩＯ割り当て待ちキューに登録するまでの処理を説明するフローチャートである。
【図１４】本実施の形態に係る、ＩＯ要求をＩＯ処理部に割り当てる処理の流れを示すフローチャートである。
【図１５】本実施の形態に係る、ＩＯ結合情報管理テーブルを示す図である。
【図１６】本実施の形態に係る、ＩＯ処理部からＩＯ要求の処理終了が通知された場合の処理を説明するフローチャートである。
【符号の説明】
１００    情報処理装置              １１０    アプリケーション
１２０    パス管理部                １２１    ＩＯ要求受付部
１２２    ＩＯ終了通知部            １２３    シーケンシャル判定部
１２４    ＩＯ割り当て待ちキュー    １２５    ＩＯ情報記録部
１２６    ディスク情報記録部        １２７    ＩＯ割り当て部
１２８    ＩＯ結合情報記録部        １３１〜１３４    ＩＯ処理部
１４１〜１４４    アダプタ          ２００    記憶装置
２１０    ディスク制御部            ２１１    データバッファ
２２０    論理デバイス              ２２１    ＬＤＥＶ１
２２２    ＬＤＥＶ２                ３０１〜３０４    論理パス
【図１】
2005011110.tif 000003
【図２】
2005011110.tif 000004
【図３】
2005011110.tif 000005
【図４】
2005011110.tif 000006
【図５】
2005011110.tif 000007
【図６】
2005011110.tif 000008
【図７】
2005011110.tif 000009
【図８】
2005011110.tif 000010
【図９】
2005011110.tif 000011
【図１０】
2005011110.tif 000012
【図１１】
2005011110.tif 000013
【図１２】
2005011110.tif 000014
【図１３】
2005011110.tif 000015
【図１４】
2005011110.tif 000016
【図１５】
2005011110.tif 000017
【図１６】
2005011110.tif 000018