(57)【要約】      （修正有）【課題】シーケンシャルＩＯを同一パスで処理することによって、先読みキャッシュを有効に利用して、効率よくＩＯ要求を処理する。【解決手段】物理デバイスに論理的に設定された論理ユニット220を備える記憶装置200と、記憶装置200に対してデータ入出力を要求する情報処理装置100と、を備え、論理ユニット220に対する通信経路となる論理パス301〜304を経由してデータ入出力を要求する情報処理システムにおいて、情報処理装置100は、論理ユニット220を分割して設けられた複数のブロック221〜224の構成を管理するパス選択情報管理部124を備え、記憶装置200に送信されるデータ入出力要求を論理パスに割り当てるＩＯ割当部123と、データ入出力要求を所定のプロトコルにてＩＯ割当部123によって割り当てられた論理パスに送信するＩＯ処理部とを備え、パス選択情報管理部124は少なくとも一つのブロックには一つの論理パスを割り当てる。【選択図】  図２
2005149276.tif 000002
【特許請求の範囲】
【請求項１】
物理デバイスに論理的に設定された論理ユニットを備える記憶装置と、
前記記憶装置に対してデータ入出力を要求する情報処理装置と、を備え、
前記論理ユニットに対する通信経路となる論理パスを経由してデータ入出力を要求する情報処理システムにおいて、
前記データ入出力要求の対象となる前記物理デバイスの領域と連続する領域のデータを先読みして記憶するキャッシュメモリが設けられ、
前記情報処理装置は、
前記論理ユニットを分割して設けられた複数のブロックの構成を管理するパス選択情報管理部を備え、
前記記憶装置に送信されるデータ入出力要求を前記論理パスに割り当てるＩＯ割当部と、
前記データ入出力要求を所定のプロトコルにて前記ＩＯ割当部によって割り当てられた論理パスに送信するＩＯ処理部と、を備え、
前記パス選択情報管理部は、少なくとも一つの前記ブロックには一つの前記論理パスを割り当てることを特徴とする情報処理システム。
【請求項２】
前記ＩＯ割当部は、前記論理パスの障害を検出するパス障害検知部と、前記論理パスの障害の回復を検出するパス障害回復検知部とを備え、
前記パス選択情報管理部は、前記パス障害検知部によって前記論理パスの障害が検出され、又は、前記パス障害回復検知部によって前記論理パスの障害の回復が検出されたときに、前記ブロックのサイズ及び／又は前記ブロックに割り当てるパス数を変更して、前記ブロックの構成を再設定することを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記キャッシュメモリは、前記記憶装置に備わるディスク制御部に設けられることを特徴とする請求項１に記載の情報処理システム。
【請求項４】
前記キャッシュメモリは、前記ＩＯ処理部に設けられることを特徴とする請求項１に記載の情報処理システム。
【請求項５】
前記パス選択情報管理部は、
前記情報処理装置の起動時に認識することができた前記論理パスに関する情報が記載されるパス情報管理テーブルを作成するパス情報管理部と、
前記パス情報管理テーブルを参照して、前記論理ユニットに関する情報が記載されるＬＵ情報管理テーブルを作成するブロック分割情報管理部と、
前記ＬＵ情報管理テーブルを参照して、前記ブロックに関する情報が記載されるブロック情報管理テーブルを作成するブロック情報管理部とを備え、
前記パス選択情報管理部は、前記ブロック情報管理テーブルを参照して、前記論理ユニットを複数のブロックに分割し、前記ブロックに前記論理パスを割り当てることを特徴とすることを特徴とする請求項１に記載の情報処理システム。
【請求項６】
物理デバイスに論理的に設定された論理ユニットを備えた記憶装置に対して、前記論理ユニットに対する通信経路となる論理パスを経由してデータ入出力を要求する情報処理装置において、
前記論理ユニットを分割して設けられた複数のブロックの構成を管理するパス選択情報管理部と、
前記記憶装置に送信されるデータ入出力要求を前記論理パスに割り当てるＩＯ割当部と、
前記データ入出力要求を所定のプロトコルにて前記ＩＯ割当部によって割り当てられた論理パスに送信するＩＯ処理部と、を備え、
前記パス選択情報管理部は、少なくとも一つの前記ブロックには一つの前記論理パスを割り当てることを特徴とする情報処理装置。
【請求項７】
前記記憶装置又は前記情報処理装置には、前記データ入出力要求の対象となる前記物理デバイスの領域と連続する領域のデータを先読みして記憶するキャッシュメモリが設けられることを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記ＩＯ割当部は、前記論理パスの障害を検出するパス障害検知部と、前記論理パスの障害の回復を検出するパス障害回復検知部とを備え、
前記パス選択情報管理部は、前記パス障害検知部によって前記論理パスの障害が検出され、又は、前記パス障害回復検知部によって前記論理パスの障害の回復が検出されたときに、前記ブロックのサイズ及び／又は前記ブロックに割り当てるパス数を変更して、前記ブロックの構成を再設定することを特徴とする請求項６に記載の情報処理装置。
【請求項９】
前記キャッシュメモリは、前記ＩＯ処理部に設けられることを特徴とする請求項６に記載の情報処理装置。
【請求項１０】
前記パス選択情報管理部は、
前記情報処理装置の起動時に認識することができた前記論理パスに関する情報が記載されるパス情報管理テーブルを作成するパス情報管理部と、
前記パス情報管理テーブルを参照して、前記論理ユニットに関する情報が記載されるＬＵ情報管理テーブルを作成するブロック分割情報管理部と、
前記ＬＵ情報管理テーブルを参照して、前記ブロックに関する情報が記載されるブロック情報管理テーブルを作成するブロック情報管理部とを備え、
前記パス選択情報管理部は、前記ブロック情報管理テーブルを参照して、前記論理ユニットを複数のブロックに分割し、前記ブロックに前記論理パスを割り当てることを特徴とする請求項６に記載の情報処理装置。
【請求項１１】
物理デバイスに論理的に設定された論理ユニットを備えた記憶装置に対して、前記論理ユニットに対する通信経路となる論理パスを経由してデータ入出力を要求する情報処理装置において、前記論理ユニットを分割して設けられたブロックの構成を設定する情報処理装置の制御方法であって、
前記情報処理装置の起動時に、認識することができた前記論理パスに関する情報に基づいてパス情報管理テーブルを作成し、
前記パス情報管理テーブルを参照して、前記論理ユニットに関する情報が記載されるＬＵ情報管理テーブルを作成し、
前記ＬＵ情報管理テーブルを参照して、前記ブロックに関する情報が記載されるブロック情報管理テーブルを作成し、
前記ブロック情報管理テーブルを参照して、前記論理ユニットを複数のブロックに分割し、
少なくとも一つの前記ブロックには一つの前記論理パスを割り当てることを特徴とする制御方法。
【請求項１２】
前記論理パスの障害が検出され、又は、前記論理パスの障害の回復が検出されたときに、前記ブロックのサイズ及び／又は前記ブロックに割り当てるパス数を変更して、前記ブロックの構成を再設定することを特徴とする請求項１１に記載の制御方法。
【請求項１３】
物理デバイスに論理的に設定され、複数のブロックに分割された論理ユニットを備える記憶装置に対して、前記論理ユニットに対する通信経路となる論理パスを経由してデータ入出力を要求する情報処理装置の制御方法であって、
前記データ入出力要求に基づいて、当該データ入出力要求に係るデータが存在するブロックに割り当てられているＩＯ処理部を選択し、
前記選択されたＩＯ処理部に当該データ入出力要求を処理させる情報処理装置の制御方法。
【請求項１４】
物理デバイスに論理的に設定され、複数のブロックに分割された論理ユニットを備えた記憶装置に対して、前記論理ユニットに対する通信経路となる論理パスを経由してデータ入出力を要求する情報処理装置の制御方法であって、
前記データ入出力要求に係るデータがキャッシュメモリに記憶されているか否かを判定し、
前記データ入出力要求に係るデータが前記キャッシュメモリに記憶されていれば、前回のデータ入出力要求と同じＩＯ処理部を選択してキャッシュメモリを機能させると共に、
前記データ入出力要求に係るデータが前記キャッシュメモリに記憶されていなければ、当該データ入出力要求に係るデータが存在するブロックに割り当てられているＩＯ処理部を選択し、
前記選択されたＩＯ処理部に当該データ入出力要求を処理させる情報処理装置の制御方法。
【請求項１５】
物理デバイスに論理的に設定された論理ユニットを備えた記憶装置に対して、前記論理ユニットに対する通信経路となる論理パスを経由してデータ入出力を要求する情報処理装置を機能させるプログラムであって、
前記情報処理装置の起動時に、認識することができた前記論理パスに関する情報に基づいて情報管理テーブルを作成する手段と、
前記パス情報管理テーブルを参照して、前記論理ユニットに関する情報が記載されるＬＵ情報管理テーブルを作成する手段と、
前記ＬＵ情報管理テーブルを参照して、前記ブロックに関する情報が記載されるブロック情報管理テーブルを作成する手段と、
前記ブロック情報管理テーブルを参照して、前記論理ユニットを複数のブロックに分割する手段と、
少なくとも一つの前記ブロックには一つの前記論理パスを割り当てる手段として機能させることを特徴とするプログラム。
【請求項１６】
前記論理パスの障害が検出され、又は、前記論理パスの障害の回復が検出されたときに、前記ブロックのサイズ及び／又は前記ブロックに割り当てるパス数を変更して、前記ブロックの構成を再設定する手段として機能させることを特徴とする請求項１５に記載のプログラム。
【請求項１７】
物理デバイスに論理的に設定された論理ユニットを備えた記憶装置に対して、前記論理ユニットに対する通信経路となる論理パスを経由してデータ入出力を要求する情報処理装置を機能させるプログラムであって、
前記論理ユニットを分割して設けられた複数のブロックの構成を管理する手段と、
前記記憶装置に送信されるデータ入出力要求を前記論理パスに割り当てる手段と、
前記データ入出力要求を所定のプロトコルにて前記ＩＯ割当部によって割り当てられた論理パスに送信する手段と、
少なくとも一つの前記ブロックには一つの前記論理パスを割り当てる手段として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理装置の制御方法、プログラム及び情報処理システムに関し、特に、記憶装置からデータを読み出す際のキャッシュメモリを有効に利用する情報処理装置に関する。
【背景技術】
【０００２】
近年、情報処理システムで取り扱われるデータ量が増大している。大容量化した記憶装置では記憶容量に見合うだけの入出力性能と信頼性を確保する必要がある。そのため記憶装置への論理パス（入出力経路）を多重化し、記憶装置へのデータ入出力要求（ＩＯ要求）を論理パスに適宜割り当てるものが開発されている。
【非特許文献１】Ｗ．Ｃｕｒｔｉｓ  Ｐｒｅｓｔｏｎ著，金崎裕己監訳，豊沢聡訳「ＳＡＮ＆ＮＡＳストレージネットワーク管理」，オライリー・ジャパン，２００２年１０月３０日，ｐ．６６−６７
【発明の開示】
【発明が解決しようとする課題】
【０００３】
前述した従来技術では、記憶装置は、情報処理装置からのＩＯ要求を受信した順にＩＯ要求に応じた処理を実行している。
【０００４】
しかし、記憶装置が受信するＩＯ要求には互いに関連するものがあり、これらのＩＯ要求の特性に着目し、ＩＯ要求に応じた処理の効率化を図る仕組みは開発されていなかった。特に、負荷分散機能を機能させている場合に、ＩＯ要求は各パスに均等に分散され、シーケンシャルＩＯであっても異なるパスに割り当てられることがある。また、記憶装置側ではシーケンシャルアクセスであることを認識することができず、記憶装置側の先読みキャッシュ機能が有効に機能せず、アクセス性能が悪くなることがあった。
【０００５】
さらに、シーケンシャルアクセスの場合には同一パスを使用してＩＯ処理をする方法も提案されているが、複数のアプリケーションで同一論理ユニットにアクセスしている場合はＩＯ要求がシリアライズ化されるため、一つのアプリケーションからはシーケンシャルアクセスが要求されているとしても、論理ユニットへのアクセスは連続した領域に対するものとなるとは限らない。この場合、先読みキャッシュが有効に機能せず、アクセス性能が悪くなることがある。
【０００６】
本発明は、シーケンシャルＩＯを同一パスで処理することによって、先読みキャッシュを有効に利用して、ＩＯ処理を効率よく行わせることが可能な情報処理システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、物理デバイスに論理的に設定された論理ユニットを備える記憶装置と、前記記憶装置に対してデータ入出力を要求する情報処理装置と、を備え、前記論理ユニットに対する通信経路となる論理パスを経由してデータ入出力を要求する情報処理システムにおいて、前記データ入出力要求の対象となる前記物理デバイスの領域と連続する領域のデータを先読みして記憶するキャッシュメモリが設けられ、前記情報処理装置は、前記論理ユニットを分割して設けられた複数のブロックの構成を管理するパス選択情報管理部を備え、前記記憶装置に送信されるデータ入出力要求を、前記論理パスに割り当てるＩＯ割当部と、前記データ入出力要求を、所定のプロトコルにて前記ＩＯ割当部によって割り当てられた論理パスに送信するＩＯ処理部と、を備え、前記パス選択情報管理部は、少なくとも一つの前記ブロックには一つの前記論理パスを割り当てることを特徴とする。
【発明の効果】
【０００８】
本発明では、論理ユニットを分割して設けられた複数のブロックの構成を管理するパス選択情報管理部が、少なくとも一つの前記ブロックには一つの前記論理パスを割り当てるので、先読みキャッシュを有効に利用することができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施の形態を図面を参照して説明する。
【００１０】
図１は、本実施の形態の情報処理システムの全体構成を示すブロック図である。
【００１１】
情報処理システムは、少なくとも１台の情報処理装置１００及び少なくとも１台の記憶装置２００を含んで構成される。なお、本実施の形態においては、１台の情報処理装置１００と１台の記憶装置２００とを備える情報処理システムについて説明するが、２台以上の情報処理装置１００及び２台以上の記憶装置２００を備える情報処理システムであってもよい。
【００１２】
情報処理装置１００には、ネットワーク（例えば、ＳＡＮ（Storage Area Network））を介して記憶装置２００が接続されている。情報処理装置１００と記憶装置２００との間のＳＡＮを介する通信は、一般にファイバチャネルプロトコル（Fibre Channel Protocol）に従って行われる。すなわち、情報処理装置１００からは、記憶装置２００に対して、ファイバチャネルプロトコルに従ってブロック単位のデータアクセス要求が送信される。なお、情報処理装置１００と記憶装置２００とは、必ずしもＳＡＮで接続される必要はなく、ＬＡＮ等のネットワークを介して接続されてもよいし、ＳＣＳＩ（Small Computer System Interface）インターフェースによって直接接続されてもよい。
【００１３】
情報処理装置１００と記憶装置２００との間を接続するＳＡＮには、複数の通信経路（論理パス）３０１〜３０４が設定されている。情報処理装置１００は、複数の論理パス３０１〜３０４を通じて記憶装置２００が記憶しているデータにアクセスする。論理パス３０１〜３０４は、情報処理装置１００と記憶装置２００とを接続するハードウェアによって物理的に構成されるデータ転送路である物理パスに対応づけられている。
【００１４】
情報処理装置１００は、ＣＰＵ（Central Processing Unit）やメモリ等を備え、各種アプリケーションプログラムを実行する。情報処理装置１００は、アプリケーション１１０、パス管理部１２０、複数のＩＯ処理部１３１〜１３４、複数のアダプタ１４１〜１４４等を備えている。
【００１５】
アプリケーション１１０は、情報処理装置１００において実行される様々なアプリケーションプログラム（例えば、銀行の自動預金預け払いシステムや航空機の座席予約システム等のプログラム）である。アプリケーションプログラムは記憶装置２００に記憶されているデータヘアクセスをしながら処理を実行する。
【００１６】
アダプタ１４１〜１４４は、記憶装置２００との間で通信を行うためのインタフェースであり、例えば、ＳＣＳＩ（Small Computer System Interface）アダプタ、ファイバチャネルアダプタ等のＨＢＡ（Host Bus Adapter）である。情報処理装置１００は、アダプタ１４１〜１４４によって、記憶装置２００との間でデータ入出力要求（ＩＯ要求）等を授受することができる。
【００１７】
ＩＯ処理部１３１〜１３４は、アダプタ１４１〜１４４を制御するドライバやソフトウェア等（例えば、ＳＣＳＩドライバ）によって実現される。ＩＯ処理部１３１〜１３４は、パス管理部１２０から通知されたＩＯ要求を順次処理する。ＩＯ処理部１３１〜１３４は、ＩＯ要求を所定の通信プロトコル（ファイバチャネル、ＴＣＰ／ＩＰ等）のパケットに変換し、アダプタ１４１〜１４４を介して記憶装置２００に送信する。なお、以下に説明する実施の形態では、記憶装置２００側にデータバッファ２１１を設けているが、ＩＯ処理部１３１〜１３４や、アダプタ１４１〜１４４にデータバッファを設けてもよい。
【００１８】
パス管理部１２０では、パス管理ソフトウェアが動作しており、情報処理装置１００と記憶装置２００との間の論理パス３０１〜３０４を管理する。パス管理部１２０は、記憶装置２００へのＩＯ要求を送信する論理パス３０１〜３０４を多重化して、帯域幅を拡大することによって、データアクセスにおけるボトルネックを解消し、データ入出力処理性能を向上させる。また、パス管理部１２０はＩＯ要求を各論理パス３０１〜３０４へ適宜振り分けることによって負荷分散処理も行う。さらに、パス管理部１２０は、ある論理パス３０１〜３０４に障害が発生した場合に当該論理パス３０１〜３０４を切り離して、正常な論理パス３０１〜３０４を通じて記憶装置２００へのデータアクセスを継続する機能も有している。これにより、論理パス障害によるサービス停止を回避しシステムの信頼性を高めている。
【００１９】
なお、本実施の形態では、情報処理装置１００がコンピュータ（パーソナルコンピュータ、ワークステーション、メインフレームコンピュータ等）である場合について説明したが、情報処理装置１００が、ルータ、ハブ等のネットワーク装置であってもよい。
【００２０】
記憶装置２００に記憶されているデータへの、情報処理装置１００からのアクセスは、例えば、データ書き込み要求又はデータ読み出し要求等のＩＯ要求によって行われる。このＩＯ要求は、様々なアプリケーション１１０により発行される。ＩＯ要求には、ヘッダ、記憶装置、論理ユニット（Logical Unit）、アドレス、データ長等が指定されている。ヘッダには、ＩＯ要求を送信する情報処理装置１００の識別子が記録されている。記憶装置には、ＩＯ要求の処理対象となる記憶装置の識別子が記録されている。論理ユニットには、ＩＯ要求の処理対象となる記憶装置の論理ユニットの識別子が記録されている。アドレスには、データの読み出し又は書き込み等の開始位置（先頭アドレス）が記録されている。また、データ長には、読み出し対象又は書き込み対象となるデータのサイズ（データ長）が記録されている。なお、ＩＯ要求がデータの書き込み要求である場合には、ＩＯ要求に書き込まれるデータの内容が付加される。
【００２１】
アプリケーション１１０から発行されたＩＯ要求は、パス管理部１２０によって各論理パス３０１〜３０４に分散され（例えば、均等に割り当てられ）、記憶装置２００に送信される。このように、複数のＩＯ要求を並列処理することによって、情報処理システムの処理性能を向上させることができる。
【００２２】
記憶装置２００は、ディスク制御部２１０、論理ユニット（ＬＵ：LogicaI Unit）２２０等を備え、情報処理装置１００から送信されてくるＩＯ要求に応じてデータの入出力を処理する。
【００２３】
論理ユニット２２０は、情報処理装置１００に提供する記憶資源（物理デバイス）を論理的に設定した記憶領域である。図１において、記憶装置２００は、一つの論理ユニットによって構成されているが、２以上の論理ユニットを備えてもよい。また、論理ユニット２２０は複数のブロック２２１〜２２４に分割されており、分割されたブロック２２１〜２２４に１対１に対応して論理パス３０１〜３０４が設定されている。記憶資源としては、ハードディスク装置（ディスクアレイ装置）の他、フレキシブルディスク装置や半導体記憶装置等、様々な記憶媒体を用いることができる。
【００２４】
ディスク制御部２１０は情報処理装置１００から送信されてくるＩＯ要求を受け、論理ユニット２２０に記憶されているデータへのアクセスを制御する。ディスク制御部２１０は、データバッファ２１１を備えている。データバッファ２１１は論理パス３０１〜３０４に共通に設けられているが、論理パス３０１〜３０４毎に設けてもよい。データバッファ２１１は、論理ユニット２２０に書き込まれるデータや論理ユニット２２０から読み出されたデータを一時的に記憶するキャッシュメモリとして機能する。
【００２５】
なお、本実施の形態においては、記憶装置２００に先読みキャッシュ機能を備えている。この先読みキャッシュ機能とは、記憶装置２００が受信したＩＯ要求によって指定された論理ユニット２２０上の領域が、それ以前に、同一の論理パスを通じて受信したＩＯ要求によって指定された論理ユニット２２０上の領域と連続している場合に、ＩＯ要求によって指定された論理ユニット２２０上の領域に後続する領域（シーケンシャル領域）のデータを論理ユニット２２０から先読みし、データバッファ２１１に記憶させる機能である。これにより、同一の論理パスを通じて情報処理装置１００から論理ユニット２２０上の連続した領域を指定するＩＯ要求を受信した場合に、データバッファ２１１に存在するデータを有効に利用することが可能となり、データ入出力の処理に要する時間を短縮することができる。
【００２６】
論理パス３０１〜３０４を通じて情報処理装置１００からデータ書き込み要求が送信された場合には、記憶装置２００ではデータバッファ２１１上で読み出し（read）、変更（modify）、書き込み（write）等の処理が行われる。
【００２７】
例えば、論理パス３０１〜３０４を通じて情報処理装置１００からデータ書き込み要求が送信された場合には、記憶装置２００はデータバッファ２１１にデータを書き込む。そして、記憶装置２００は、データバッファ２１１へのデータの書き込み処理が終了すると、論理ユニット２２０へのデータの書き込みが終了しているか否かにかかわらず、データ書き込み要求（ＩＯ要求）が送信されたものと同一の論理パス３０１〜３０４を通じて、データ書き込み要求の処理終了通知（ＩＯ終了通知）を、情報処理装置１００に送信する。すなわち、情報処理装置１００へのＩＯ終了通知は、論理ユニット２２０に対する実際のデータの書き込み動作とは同期することなく行われる。その後、ディスク制御部２１０は、データバッファ２１１に書き込まれたデータを論理ユニット２２０に書き込む。
【００２８】
また、論理パス３０１〜３０４を通じて、情報処理装置１００からデータ読み出し要求が送信された場合には、記憶装置２００はデータバッファ２１１に読み出し対象のデータが存在するか否かを判定する。データバッファ２１１に読み出し対象のデータが存在する場合には、ディスク上からデータを読み出すことなく、データバッファ２１１からデータを読み出して、記憶装置２００はデータバッファ２１１に存在する読み出し対象のデータを情報処理装置１００に転送する。
【００２９】
一方、データバッファ２１１に読み出し対象のデータが存在しない場合には、ディスク制御部２１０は、データ読み出し要求の対象となる領域のデータを論理ユニット２２０から読み出して、当該読み出したデータを情報処理装置１００に転送する。
【００３０】
このとき、受信した読み出し要求の対象となる論理ユニット２２０上の領域のデータを読み出すと共に、当該読み出し要求の対象となる領域と連続する領域（シーケンシャル領域）が存在する場合に、後続するシーケンシャル領域のデータ（シーケンシャルデータ）を論理ユニット２２０から読み出し、読み出したデータ（読み出し対象のデータ及びシーケンシャルデータ）をデータバッファ２１１に記憶させている。
【００３１】
以上説明した先読みキャッシュ機能によって、論理ユニット２２０の同一ブロックの連続した領域に対する情報処理装置１００からのＩＯ要求は同一の論理パスを通じてを送受信されるので、データバッファ２１１に存在するデータを利用することが可能となり、ＩＯ処理の実行時間を短縮することができる。
【００３２】
ディスク制御部２１０は、図１に示すように記憶装置２００と一体に構成することもできるし、別体に構成することもできる。また、論理ユニットを複数のパーティションに分割して構成することもできる。
【００３３】
図２は、図１に示した情報処理システムについてパス管理部１２０を詳細に表したブロック図である。
【００３４】
パス管理部１２０は、ＩＯ要求受付部１２１、ＩＯ終了通知部１２２、ＩＯ割り当て部１２３、パス選択情報管理部１２４、シーケンシャル判定部１２３、ブロック分割情報作成／通知部１２７及びアクセス情報表示部１２８等を備えている。
【００３５】
ＩＯ要求受付部１２１は、アプリケーション１１０によって発行されるＩＯ要求を受け取る。ＩＯ終了通知部１２２は、ＩＯ要求受付部１２１がアプリケーション１１０から受け取ったＩＯ要求に対する処理が終了した旨をアプリケーション１１０に通知する。
【００３６】
シーケンシャル判定部１２３は、ＩＯ要求受付部１２１がアプリケーション１１０から受け取ったＩＯ要求がシーケンシャルＩＯ要求であるかを判定する。具体的には、シーケンシャル判定部１２３は、受け取ったＩＯ要求（第二のＩＯ要求）に指定された記憶領域が、第二のＩＯ要求を受け取る前にアプリケーション１１０から受け取ったＩＯ要求（第一のＩＯ要求）に指定された記憶領域に後続するものであるか否かを判定する。この判定は、
（１）第二のＩＯ要求と第一のＩＯ要求とが指定する記憶装置が一致するか、
（２）第二のＩＯ要求と第一のＩＯ要求とが指定する論理ユニットが一致するか、
（３）第二のＩＯ要求に指定されているアドレスが、第一のＩＯ要求に指定されているアドレスからデータ長分進んだアドレスと一致するか、
をデータバッファ２１１に記録されている全ての第一のＩＯ要求に対して判定する。
【００３７】
シーケンシャル判定部１２３は、ＩＯ要求が前述した（１）〜（３）の全ての判定条件を満たす場合には、第二のＩＯ要求をシーケンシャルＩＯ要求であると判定する。一方、ＩＯ要求が前述した（１）〜（３）のいずれかの条件を満たさない場合には、第二のＩＯ要求をランダムＩＯ要求であると判定する。なお、このシーケンシャルＩＯ要求であるかの判定は、第二のＩＯ要求がデータ読み出し要求である場合にはデータ読み出し要求である第一のＩＯ要求に対して行われ、第二のＩＯ要求がデータ書き込み要求である場合にはデータ書き込み要求である第一のＩＯ要求に対して行われる。
【００３８】
ＩＯ割当待ちキュー１２６には、シーケンシャル判定部１２３によって判定された処理待ちのＩＯ要求が登録されている。
【００３９】
ＩＯ割当部１２３は、ＩＯ割当待ちキュー１２６に登録されているＩＯ要求を割り当てるＩＯ処理部１３１〜１３４を決定して、当該ＩＯ要求に使用されるパス３０１〜３０４を選択する。ＩＯ処理部はパスに固有に設けられており、パスに割り当てられたＩＯ要求を処理し、記憶装置２００に対してアクセスする。
【００４０】
ＩＯ割当部１２３によるＩＯ要求の割り当ては、ＩＯアクセス要求に係るデータが存在するブロック（ＩＯアクセス要求に係るデータのアドレスを含むブロック）に割り当てられるパスが選択される。また、ＩＯ割当部１２３は、負荷分散機能によって、ＩＯ要求を各パスに均等に分散させて割り当ている。例えば、ＩＯ要求を処理していないＩＯ処理部１３１〜１３４、又は、ＩＯ要求の処理が終了しているＩＯ処理部１３１〜１３４に割り当てる。
【００４１】
また、ＩＯ割当部１２３は、パス障害検知部１２３ａ及びパス障害回復検知部１２３ｂを備えており、これらによって記憶装置２００に対するパス状態の変更を検出するパス状態確認機能を実現している。具体的には、パス障害検知部１２３ａは、ユーザが
パスをoffline状態（パスに障害が発生しＩＯ要求が正常に処理できない閉塞状態）にする操作をした、又は、ＩＯ要求の処理中にパス障害を検出した場合に、パスの状態が変更されたものとして、パス情報管理部１２４ａに通知する。また、パス障害回復検知部１２３ｂは、ＩＯ処理部１３１〜１３４に備わるパス状態自動回復機能によってパスの状態が回復すると、該パス障害の回復を検出して、パス情報管理部１２４ａに通知する。このパス状態自動回復機能は、パス障害検知部が有する機能であって、ユーザが稼働状態でないパスを、明示的に稼働状態にする操作を行うことなく、予め設定されたタイミング（例えば一定期間毎に稼働状態でないパスに対してＩＯ処理を行い、正常に処理できたか否かで、障害が回復しているかを確認し、自動的にパスの状態を稼働状態に変更する機能である。
【００４２】
パス選択情報管理部１２４は、パス情報管理部１２４ａ、ブロック分割情報管理部１２４ｂ及びブロック情報管理部１２４ｃを備えている。パス情報管理部１２４ａは、パス情報管理テーブル２１００（図４）を作成する。ブロック分割情報管理部１２４ｂは、パス情報管理テーブル２１００を参照して、ＬＵ情報管理テーブル２２００（図５）を作成する。ブロック情報管理部１２４ｃは、ＬＵ情報管理テーブル２２００を参照して、ブロック情報管理テーブル２３００（図６）を作成する。
【００４３】
ブロック分割情報作成／通知部１２７は、後述する可変分割方式において設けられ、ブロック分割情報作成／通知部１２７は、操作者の入力に基づいて、ブロック分割指定テーブル２４００を作成し、保持している。
【００４４】
アクセス情報表示部１２８は、各ブロックに対するシーケンシャルアクセスＩＯ回数及びランダムアクセスＩＯ回数を出力する。例えば、利用者による設定変更に必要な情報（シーケンシャル／ランダム別のアクセス回数等）を表示する。なお、この場合、利用者は論理ユニットのブロック分割を意識して設定を変更する必要がある。
【００４５】
図３は、本発明の実施の形態の各種テーブルの作成を説明する機能ブロック図である。
【００４６】
パス情報管理部１２４ａは、パス管理ソフトウェアの起動時にパス情報管理テーブル２１００を作成する。パス情報管理テーブル２１００には、パス管理ソフトウェアの起動時に認識することができたパス数分のエントリが記載される。
【００４７】
また、パス情報管理部１２４ａは、正常に処理されたＩＯ要求がシーケンシャルアクセスであるかランダムアクセスであるかをシーケンシャル判定部１２３が判定した結果に基づいて、シーケンシャルＩＯ回数２１０４又はランダムＩＯ回数２１０５を更新する。
【００４８】
さらに、パス情報管理部１２４ａは、パス障害検知部１２３ａ又はパス障害回復検知部１２３ｂからパスの状態の変更を検出した旨の通知を受けると、パス情報管理テーブル２１００のパス状態２１０３を更新する。そして、パス情報管理部１２４ａは、パス情報管理テーブル２１００の更新を完了すると、ブロック分割情報管理部１２４ｂに対して、ＬＵ情報管理テーブル２２００の更新を要求するＬＵ情報更新要求を送信する。また、このとき、ブロック分割情報管理部１２４ｂに対し、パスの障害が発生した又は障害が回復したパスのＩＤも通知する。
【００４９】
なお、後述する可変分割方式においては、パス情報管理部１２４ａは、パス情報管理テーブル２１００の作成又は更新を完了すると、ブロック分割情報作成／通知部１２７に対して、ブロック分割指定テーブル２４００の作成を要求する分割情報作成要求を送信する。
【００５０】
ブロック分割情報管理部１２４ｂは、パス情報管理部１２４ａからＬＵ情報管理テーブル２２００の作成要求を受け付けると、パス情報管理部１２４ａが作成したパス情報管理テーブル２１００を参照して、ＬＵ情報管理テーブル２２００を作成する。
【００５１】
また、ブロック分割情報管理部１２４ｂは、パス情報管理部１２４ａからＬＵ情報管理テーブル２２００の更新要求を受け付けると、当該ＬＵ情報管理テーブル更新要求と共に通知された障害が発生又は回復したパスＩＤの情報に基づいてＬＵ情報管理テーブル２２００を更新する。
【００５２】
具体的には、パス障害検知部１２３ａからパスの障害が通知された場合は、ＬＵ情報管理テーブル２２００を参照して障害が通知されたパスを抽出し、当該パスが接続されている論理ユニットを求め、ＬＵ情報管理テーブル２２００の当該論理ユニットのパス数２２０３から１を減算する。また、該当論理ユニットのパスＩＤ欄２２０４から、ＬＵ情報管理テーブル更新要求によって通知された障害が発生したパスＩＤを削除する。
【００５３】
また、パス障害回復検知部１２３ｂからパス障害の回復が通知された場合は、パス情報管理テーブル２１００を参照して、障害の回復が通知されたパスが接続されている論理ユニットを求め、ＬＵ情報管理テーブル２２００の当該論理ユニットのパス数２２０３に１を加算する。また、該当論理ユニットのパスＩＤ欄２２０４に、ＬＵ情報管理テーブル更新要求によって通知された障害が回復したパスＩＤを追加する。
【００５４】
ブロック分割情報管理部１２４ｂは、ＬＵ情報管理テーブル２２００の作成を完了すると、ブロック情報管理部１２４ｃに対して、ブロック情報管理テーブル２３００の作成を要求する。また、ブロック分割情報管理部１２４ｂは、ＬＵ情報管理テーブル２２００の更新を完了すると、ブロック情報管理部１２４ｃに対して、ブロック情報管理テーブル２３００の更新を要求する。
【００５５】
ブロック情報管理部１２４ｃは、ブロック分割情報管理部１２４ｂからブロック情報管理テーブル２３００の作成又は更新の要求を受けると、ブロック分割情報管理部１２４ｂが作成したＬＵ情報管理テーブル２２００を参照して、ブロック情報管理テーブル２３００を作成又は更新する。例えば、パス管理ソフトウェアが起動した時にブロック情報管理テーブルの作成要求が発行され、ブロック情報管理テーブル２３００が作成される。
【００５６】
さらに、ブロック情報管理部１２４ｃは、ＩＯ割り当て部１２３に対し、各ブロックにアクセスするために用いられるパスＩＤを通知する。
【００５７】
図４には、本発明の実施の形態のパス情報管理テーブルを示す。
【００５８】
パス情報管理テーブル２１００は、パス管理ソフトウェアの起動時に認識することができたパスに関する情報を、常に最新の状態に更新して保持している。すなわち、パス情報管理テーブル２１００は、パス管理ソフトが起動したときに新たに作成され、パスに障害が発生したとき又はパスの障害が回復したときに情報が更新される。
【００５９】
パス情報管理テーブル２１００は、均等分割方式及び可変両分割方式の双方において作成される。均等分割方式は、論理ユニットを稼動状態のパス数によって均等の容量（サイズ）で複数のブロックに分割し、１ブロックに１パスを割り当てるものである。一方、可変分割方式は、ブロック分割指定テーブル２４００（図７）に基づいて、論理ユニットを複数のブロックに分割するものである。
【００６０】
パス情報管理テーブル２１００は、パス情報管理部１２４ａによって作成され、ブロック分割情報管理部１２４ｂがＬＵ情報管理テーブル２２００を作成（又は更新）する際に参照される。なお、パス情報管理テーブル２１００は、パス管理ソフトウェアが起動している間は、常に保持されている。
【００６１】
パス情報管理テーブル２１００には、パスＩＤ２１０１、論理ユニット（ＬＵ）２１０２、パス状態２１０３、シーケンシャルＩＯ回数２１０４、及び、ランダムＩＯ回数２１０５の情報が含まれており、これらの情報がパスＩＤ毎に記憶されている。
【００６２】
パスＩＤ２１０１は、パス管理部１２０によって、パス毎に割り当てられる識別子であり、論理パスに１対１で対応している。論理ユニット（ＬＵ）２１０２は、記憶装置の論理ユニット毎に割り当てられる識別子であり、一つの論理ユニットには１又は複数のパスが設定されており、一つの論理ユニットに対して１又は複数のパスＩＤが対応する。
【００６３】
パス状態２１０３は、パスＩＤ２１０１に記載される各パスが使用可能であるのか、使用不可能であるのかを示している。すなわち、当該パスがＩＯ要求が正常に処理できる稼動状態であれば、”online”と記載されている。一方、当該パスに障害が発生し、ＩＯ要求が正常に処理できない閉塞状態であれば、”offline”と記載されている。
【００６４】
シーケンシャルＩＯ回数２１０４は、シーケンシャル判定部１２３がＩＯ要求をシーケンシャルアクセスかランダムアクセスかを判定した結果、当該パスで処理されたシーケンシャルアクセスＩＯの合計回数が記載されている。ランダムＩＯ回数２１０５は、シーケンシャル判定部１２３がＩＯ要求をシーケンシャルアクセスかランダムアクセスかを判定した結果、当該パスで処理されたランダムアクセスＩＯの合計回数が記載されている。なお、シーケンシャルＩＯ回数２１０４及びランダムＩＯ回数２１０５の初期値は”０”に設定される。
【００６５】
図５には、本発明の実施の形態のＬＵ情報管理テーブルを示す。
【００６６】
ＬＵ情報管理テーブル２２００は、各論理ユニットの状態を保持しており、ブロック分割情報管理部１２４ｂによって、パス情報管理テーブル２１００を参照して作成（又は更新）される。ＬＵ情報管理テーブル２２００は、パス情報管理テーブル２１００が作成（又は更新）された後に、ブロック情報管理部１２４ｃがブロック情報管理テーブル２３００を作成（又は更新）する際に参照される。なお、ＬＵ情報管理テーブル２２００は、均等分割方式及び可変両分割方式の双方において作成される。
【００６７】
ＬＵ情報管理テーブル２２００には、論理ユニット（ＬＵ）２２０１、論理ユニットの記憶容量（ＬＵサイズ）２２０２、稼動状態となっているパス数２２０３、及び、稼動状態になっているパスＩＤ２２０４の情報が含まれており、これらの情報が論理ユニット毎に記憶されている。
【００６８】
論理ユニット（ＬＵ）２２０１は、パス情報管理テーブル２１００に記載された論理ユニット２１０２について、同一ＬＵに関する情報の重複を排除して記載したものである。論理ユニットの記憶容量（ＬＵサイズ）２２０２は、論理ユニット２２０１に記載されている論理ユニットの記憶容量である。
【００６９】
パス数２２０３は、論理ユニット２２０１に記載された論理ユニットに接続されているパスのうち稼動状態となっているパスの総数である。このパス数２２０３は、パス情報管理テーブル２１００のパス状態２１０３が稼動状態（online）となっているパスの数を集計して求められる。なお、パス数２２０３に記載される稼動状態となっているパス数は、各パスの障害の発生状況に応じて減少させ、パス数を変更して、ＬＵ情報管理テーブル２２００に記載される。
【００７０】
パスＩＤ２２０４は、論理ユニット２２０１に記載された論理ユニットに接続されているパスのうち稼動状態となっているパスのパスＩＤが全て登録されている。なお、可変分割方式においては、ＬＵ情報管理テーブル２２００にパスＩＤ２２０４を記載する必要はない。
【００７１】
図６には、本発明の実施の形態のブロック情報管理テーブルを示す。
【００７２】
ブロック情報管理テーブル２３００は、適切なパスを選択するための情報を提供する。すなわち、アプリケーション１１０から送信されたＩＯ要求から論理ユニットとその先頭アドレスの情報を取り出し、ＩＯ割当部１２３がブロック単位にＩＯを振り分ける際に参照される。ブロック情報管理テーブル２３００は、ブロック情報管理部１２４ｃによって、ＬＵ情報管理テーブル２２００を参照して作成される。
【００７３】
ブロック情報管理テーブル２３００には、ブロックＩＤ２３０１、ブロックサイズ２３０２、論理ユニット（ＬＵ）２３０３、先頭アドレス２３０４、パスＩＤ２３０５、シーケンシャルＩＯ回数２３０６、及び、ランダムＩＯ回数２３０７の情報が含まれており、これらの情報がブロックＩＤ毎に記憶されている。
【００７４】
ブロックＩＤ２３０１は、パス管理部１２０によって、ブロック毎に割り当てられる識別子であり、分割されたブロックに１対１で対応している。
【００７５】
ブロックサイズ２３０２は、ブロックＩＤ２３０１に記載されるブロックの長さであり、ブロック情報管理部１２４ｃがＬＵ情報管理テーブル２２００を参照し、算出したサイズである。
【００７６】
論理ユニット（ＬＵ）２３０３は、論理ユニット毎に割り当てられる識別子であり、パス情報管理テーブル２１００に記載されているパスＩＤ２２０３に対応する論理ユニット２１０２の識別子である。
【００７７】
先頭アドレス２３０４は、ブロック情報管理部１２４ｃによって求められた各ブロックの先頭アドレスである。
【００７８】
パスＩＤ２３０５は、当該ブロックヘアクセスするために用いられるパスＩＤであり、ブロック情報管理部１２４ａから通知されるものであって、現在使用することができるパスＩＤのみが登録されている。なお、１ブロックに１パスを割り当てる場合は、パスＩＤ２３０５の欄は１つになるが、ブロックに複数のパスを割り当てる場合は、複数のパスＩＤ２３０５欄が設けられる。
【００７９】
シーケンシャルＩＯ回数２３０６は、シーケンシャル判定部１２３がＩＯ要求をシーケンシャルアクセスかランダムアクセスかを判定した結果、当該ブロック（当該パス）で処理されたシーケンシャルアクセスＩＯの合計回数が記載されている。ランダムＩＯ回数２３０７は、シーケンシャル判定部１２３がＩＯ要求をシーケンシャルアクセスかランダムアクセスかを判定した結果、当該ブロック（当該パス）で処理されたランダムアクセスＩＯの合計回数が記載されている。なお、シーケンシャルＩＯ回数２３０６及びランダムＩＯ回数２３０７の初期値は”０”に設定されている。
【００８０】
前述した均等分割方式においては、論理ユニットを稼動状態のパス数によって均等の容量（サイズ）で複数のブロックに分割するので、パス障害発生時又はパス障害回復時には、起動時と同じ手順でブロック情報管理テーブルが更新される。すなわち、パス障害が発生した場合には、ブロック数が減少するので、ブロックサイズが大きくなる。一方、パス障害が回復した場合には、ブロック数が増加するので、ブロックサイズが小さくなる（つまり、パス障害発生前の分割形態に戻る）。
【００８１】
図７は、本発明の別の実施の形態の各種テーブルの作成を説明する機能ブロック図である。
【００８２】
図７に示す実施の形態は、図３に示す実施の形態のような論理ユニット２２０をブロックに分割する際に、論理ユニットを各ブロックに均等に分割する均等分割方式ではなく、ブロック分割指定テーブル２４００に定められたルールに基づいて、論理ユニットを複数のブロックに分割する可変分割方式である。よって、ブロック分割情報作成／通知部１２７には、分割される各ブロックの情報が記載されるブロック分割指定テーブル２４００が保持されている。なお、均等分割方式では、ブロック分割情報作成／通知部１２７及びブロック分割指定テーブル２４００は設けられない。
【００８３】
可変分割方式においては、パス管理ソフトウェアの起動時は均等分割方式によって情報処理システムの動作が開始するが、アクセス情報表示部１２８によって出力されるシーケンシャルアクセスＩＯ回数及びランダムアクセスＩＯ回数に基づいて操作者が分割状態を指定し、ブロック分割情報作成／通知部１２７が指定内容に基づいてブロック分割指定テーブル２４００を作成することによって、可変分割方式によって情報処理システムの動作が開始する。パス障害発生時又はパス障害回復時には、ブロック分割指定テーブル２４００を参照し、現時点で稼動状態となっているパス数と合致する各ブロックのブロックサイズ及び各ブロックに割り当てるパス数を抽出し、ブロック情報管理テーブル２３００を作成する。
【００８４】
なお、操作者が分割状態を指定することなく、ブロック分割情報作成／通知部１２７がシーケンシャルアクセスＩＯ回数及びランダムアクセスＩＯ回数を解析することによってブロック分割指定テーブル２４００を自動的に作成し、ブロック分割指定テーブル２４００を最適化するようにしてもよい。
【００８５】
パス情報管理部１２４ａは、図３と同様の処理によって、パス情報管理テーブル２１００を作成（又は更新）して、ブロック分割情報管理部１２４ｂに対して、ＬＵ情報管理テーブル２２００の作成（又は更新）を要求する。
【００８６】
ブロック分割情報管理部１２４ｂは、図３と同様の処理によって、パス情報管理テーブル２１００を参照して、ＬＵ情報管理テーブル２２００を作成又は更新して、ブロック情報管理部１２４ｃに対して、ブロック情報管理テーブル２３００の作成又は更新を要求する。
【００８７】
ブロック情報管理部１２４ｃは、ブロック分割情報管理部１２４ｂからブロック情報管理テーブルの作成又は更新の要求を受けると、ブロック分割情報管理部１２４ｂが作成したＬＵ情報管理テーブル２２００、及び、ブロック分割情報作成／通知部１２７が作成したブロック分割指定テーブル２４００を参照して、ブロック情報管理テーブル２３００を作成又は更新する。
【００８８】
図８は、本発明の実施の形態のうち、図７に示す可変分割方式における、各種テーブルの作成を説明する機能ブロック図である。
【００８９】
ブロック分割情報作成／通知部１２７は、分割情報作成要求を受けると、ブロック分割指定テーブル２４００を作成する。また、ブロック分割情報作成／通知部１２７は、分割情報更新要求を受けると、ブロック分割指定テーブル２４００をを更新する。
【００９０】
ブロック情報管理部１２４ｃは、ブロック分割情報作成／通知部１２７からブロック情報管理テーブルの作成又は更新の要求を受けると、ブロック分割情報管理部１２４ｂが作成したＬＵ情報管理テーブル２２００、及び、ブロック分割情報作成／通知部１２７が作成したブロック分割指定テーブル２４００を参照して、ブロック情報管理テーブル２３００を作成又は更新する。
【００９１】
図９には、可変分割方式（図７、図８）において用いられる、本発明の実施の形態のブロック分割指定テーブルを示す。
【００９２】
ブロック分割指定テーブル２４００は、アクセス情報表示部などの情報に基づいて、論理ユニットのアクセス頻度やアクセスの種別（シーケンシャルアクセスかランダムアクセスか）に応じて、自動的に（又は、ユーザによる入力に基づいて）、ブロック分割情報作成／通知部１２７によって作成される。ブロック情報管理部１２４ｃは、ブロック分割指定テーブル２４００が存在する場合は、ブロック分割指定テーブル２４００を参照し、ブロック情報管理テーブル２３００を作成する。ブロック分割指定テーブル２４００は、使用可能な論理ユニットをどのようにブロックに分割し、各ブロックに対し現在稼動状態となっているどのパスを割り当てるかが記載されている。
【００９３】
ブロック分割指定テーブル２４００には、論理ユニット（ＬＵ）２４０１、論理ユニットで使用可能な稼働パス数２４０２、先頭アドレス２４０３、ブロックに設定される割当パス数２４０４の情報が含まれており、これらの情報が論理ユニット毎に記憶されている。
【００９４】
論理ユニット（ＬＵ）２４０１は、パス情報管理テーブル２１００に記載されている論理ユニット２１０２のうち、可変分割方式の対象となる論理ユニットの識別子が記載されている。
【００９５】
稼働パス数２４０２は、各論理ユニットで使用可能な稼動パス数が記載されており、ブロックの分割方法を決定する際の分割情報の検索キーとなる。
【００９６】
先頭アドレス２４０３は、指定されたパス数に応じてブロックを分割した際に、論理ユニット内の各ブロックに割り当てられたアドレスの先頭番地が記載されている。
【００９７】
割当パス数２４０４は、各論理ユニットをブロックに分割した際に、各ブロックに割り当てる割り当てるパス数が記載されている。
【００９８】
なお、ＩＯモニタを設け、ＩＯモニタによってＩＯ情報を集計して自動的に分割方法を選択してパス数を決定してもよい。例えば、ランダムアクセスが多いブロックには本発明によるパス割り当てを適用することなく、各パスの負荷が均等になるようにＩＯ要求を割り当てる通常の負荷分散方法を適用することもできる。
【００９９】
なお、ＯＳ（operating sysytem）で定まるパーティションに対応して、論理ユニットをブロックごとに分割するようにブロック分割指定テーブルを規定してもよい。
【０１００】
図１０は、本発明の実施の形態のパス情報管理テーブル作成処理のフローチャートであり、パス管理ソフトウェアの起動時に、パス情報管理部１２４ａによって実行される。
【０１０１】
まず、ＩＯ割当部１２３によって認識されているパス数を取得し、それぞれに固有のパスＩＤを割り当てる（Ｓ１００１）。例えば、パスの情報を取得した順に”０”からパスＩＤを割り当てることができる。そして、ＩＯ割当部１２３から各パスが設定されている論理ユニットのＩＤを取得する（Ｓ１００２）。このパスＩＤと論理ユニットのＩＤとはｎ対１で対応している。
【０１０２】
そして、取得したパスＩＤ及び論理ユニットのＩＤを、各々パス情報管理テーブル２１００のパスＩＤ欄２１０１及び論理ユニット（ＬＵ）欄２１０２に登録する（Ｓ１００３）。そして、パス情報テーブルのシーケンシャルＩＯ回数２１０４及びランダムＩＯ回数２１０５を”０”に初期化し（Ｓ１００４）、各パスの状態２１０３を”online”に初期化する（Ｓ１００５）。
【０１０３】
そして、ブロック分割情報管理部１２４ｂに対し、ＬＵ情報管理テーブル２２００の作成を要求する（Ｓ１００６）。
【０１０４】
すなわち、パス情報管理部１２４ａは、パス管理ソフトウェアの起動時に、ホスト１００側で認識している全てのパス、及び、そのパスを介してアクセスしている論理ユニットの情報を取得し、パス情報管理テーブル２１００を作成し、ブロック分割情報管理部１２４ｂに対し、ＬＵ情報管理テーブル２２００の作成を要求する。
【０１０５】
図１１は、本発明の実施の形態のパス情報管理テーブル更新処理のフローチャートであり、パス情報管理部１２４ａによって実行される。
【０１０６】
パス情報管理部１２４ａは、パス障害検知部１２３ａ及びパス障害回復検知部１２３ｂからの通知を監視している。そして、パス障害検知部１２３ａからパス障害発生通知を受けると（Ｓ１１０１）、パス情報管理テーブル２１００の当該パスの状態２１０３を”offline”に更新する（Ｓ１１０２）。そして、ブロック分割情報管理部１２４ｂに対し、ＬＵ情報管理テーブル２２００の更新を要求する（Ｓ１１０３）。なお、ＬＵ情報管理テーブル更新要求の発行と共にパス障害が発生したパスＩＤも通知する。
【０１０７】
また、パス障害回復検知部１２３ｂからパス障害回復発生通知を受けると（Ｓ１１０４）、パス情報管理テーブル２１００の当該パスの状態２１０３を”online”に更新する（Ｓ１１０５）。そして、ブロック分割情報管理部１２４ｂに対し、ＬＵ情報管理テーブル２２００の更新を要求する（Ｓ１１０６）。なお、ＬＵ情報管理テーブル更新要求の発行と共にパス障害が回復したパスＩＤも通知する。
【０１０８】
図１２は、本発明の実施の形態のＬＵ情報管理テーブル更新処理のフローチャートであり、ブロック分割情報管理部１２４ｂによって実行される。
【０１０９】
ブロック分割情報管理部１２４ｂは、パス情報管理部１２４ａが発行したＬＵ情報管理テーブル更新要求を受信すると、パス障害の発生に基づく通知であるか否かを判定する（Ｓ１２０１）。この判定は、ＬＵ情報管理テーブル更新要求に障害発生／回復の情報を含めるか、又は、パス情報管理テーブル２１００を参照して、ＬＵ情報管理テーブル更新要求によって通知されたパスＩＤを用いて当該パスの状態を取得することによって行う。
【０１１０】
その結果、パス障害の発生に基づく通知であれば、ＬＵ情報管理テーブル２２００のパス数を”１”減算する（Ｓ１２０２）。そして、ＬＵ情報管理テーブル更新要求と共に通知されたパス障害が発生したパスＩＤをパスＩＤ欄２２０４から削除する（Ｓ１２０３）。そして、ブロック情報管理部１２４ｃに対し、ブロック情報管理テーブル２３００の更新を要求する（Ｓ１２０４）。
【０１１１】
また、ブロック分割情報管理部１２４ｂは、パス情報管理部１２４ａが発行したＬＵ情報管理テーブル更新要求を受信すると、パス障害の回復に基づく通知であるか否かを判定する（Ｓ１２０５）。その結果、パス障害の発生に基づく通知であれば、ＬＵ情報管理テーブル２２００のパス数を”１”加算する（Ｓ１２０６）。
【０１１２】
そして、ＬＵ情報管理テーブル更新要求と共に通知されたパス障害が回復したパスＩＤをパスＩＤ欄２２０４に追加する（Ｓ１２０７）。このとき、パス情報管理テーブル２１００を参照して、パス障害が回復したパスＩＤがどの論理ユニットに関連するのかの情報を取得する。
【０１１３】
そして、ブロック情報管理部１２４ｃに対し、ブロック情報管理テーブル２３００の更新を要求する（Ｓ１２０８）。
【０１１４】
図１３は、本発明の実施の形態のブロック情報管理部１２４ｃの動作を示すフローチャートである。
【０１１５】
ブロック情報管理部１２４ｃは、ブロック分割情報管理部１２４ｂからのブロック情報管理テーブル作成要求を監視している。そして、ブロック情報管理テーブル作成要求を受信すると（Ｓ１３０１）、ＬＵ情報管理テーブル２２００を参照して、各論理ユニットに設定されている稼動状態のパス数、及び、各論理ユニットの容量（サイズ）を取得する（Ｓ１３０２、Ｓ１３０３）。その後、ブロック分割指定テーブル２４００が存在するか否かを判定する（Ｓ１３０４）。
【０１１６】
ブロック分割指定テーブル２４００が存在すれば、可変分割方式であると判定し、ブロック分割指定テーブル２４００に記載された内容に従って分割するブロック数を決定し、ブロックＩＤを割り当てる（Ｓ１３０５）。例えば、ブロック分割指定テーブル２４００に記載された先頭アドレスの順に”０”からブロックＩＤを割り当てることができる。
【０１１７】
そして、ブロック分割指定テーブル２４００を参照して、各ブロックの先頭アドレスを決定する（Ｓ１３０６）。よって、各ブロックは当該ブロックの先頭アドレスと隣接するブロックの先頭アドレスとによって定まる容量に分割される。その後、各論理ユニットに設定されているパスを各ブロックに割り当てて、各ブロックにパスＩＤを割り当てる（Ｓ１３０７）。
【０１１８】
一方、ブロック分割指定テーブル２４００が存在していなければ、均等分割方式であると判定し、各論理ユニットを稼動状態のパス数によって複数のブロックに分割し、ブロックＩＤを割り当てる（Ｓ１３０８）。そして、論理ユニットの容量を分割するブロック数（パス数）で除算して、各ブロックのサイズを算出する（Ｓ１３０９）。よって、各ブロックは均等の容量に分割される。
【０１１９】
そして、Ｓ１３０９にて算出した各ブロックのサイズに基づいて、各部ブロックの先頭アドレスを決定する（Ｓ１３１０）。そして、当該論理ユニットに設定されているパスを各ブロックに割り当てて、各ブロックにパスＩＤを割り当てる（Ｓ１３１１）。
【０１２０】
すなわち、ブロック情報管理部１２４ｃは、パス管理ソフトウェアの起動時に、ブロック分割情報管理部１２４ｂからブロック情報管理テーブルの作成要求を受け付けると、ＬＵ情報管理テーブル２２００（必要に応じてブロック分割指定テーブル２１００）を参照し、ブロック情報管理テーブル２３００を作成する。均等分割方式であって、ブロック分割指定テーブル２４００が作成されていない場合は、各論理ユニットを稼動状態のパス数分で均等に分割してブロック情報管理テーブル２３００を作成する。なお、均等分割方式において、ブロック情報管理テーブルを作成（又は更新）するために必要な情報は全てＬＵ情報管理テーブルに格納されている。
【０１２１】
以上説明した図１０、図１２、図１３に示す処理が、パス管理ソフトウェアの起動時に順次実行され、パス情報管理テーブル２１００、ＬＵ情報管理テーブル２２００及びブロック情報管理テーブル２３００が作成される。
【０１２２】
図１４は、本発明の実施の形態のＩＯ処理のフローチャートであり、パス管理部１２０によって実行される。
【０１２３】
ＩＯ要求受付部１２１がＩＯ要求を受け付けると、シーケンシャル判定部１２３は、当該ＩＯ要求がシーケンシャルアクセスＩＯかランダムアクセスＩＯかを判定する（Ｓ１４０１、Ｓ１４０２）。この判定は、当該ＩＯ要求より先に行われた同種のＩＯ要求（前のＩＯ要求）において指定された領域と連続している領域に対するアクセスかを判定する。そして判定の終了したＩＯ要求は、ＩＯ割り当て待ちキュー１２６に登録される。
【０１２４】
そして、シーケンシャル判定部１２３による判定の結果、シーケンシャルアクセスＩＯであると判定されたとき、ＩＯ割り当て部１２３は、当該ＩＯ要求を前のＩＯ要求と同一のパスで処理するように当該ＩＯ要求を割り当てるＩＯ処理部１３１〜１３４を特定し、ＩＯ処理部特定情報に設定する（Ｓ１４０３）。このＩＯ処理部特定情報は、論理ユニット内のアドレスと、そのＩＯ処理の際に使用したパスＩＤを記憶したテーブルであって、要求されたＩＯ処理の開始アドレスが、テーブルに記載のアドレスに続くもの（又は、特定の範囲内のもの）であれば、シーケンシャルアクセスであると判定し、このテーブル（ＩＯ処理部特定情報）に記載のパスＩＤでＩＯを処理する。正常にＩＯ処理が完了した場合は、テーブルに記載されているアドレスに、今回のＩＯ処理によって処理されたデータサイズを加える。なお、使用したパスＩＤはテーブルに記載されているパスＩＤと一致するため、このパスＩＤを更新する必要はない。また要求されたＩＯ処理の開始アドレスが、テーブルに記載されているアドレスと連続するもの（あるいは特定の範囲内のもの）でなければ、ランダムアクセスであると判定し、ブロック情報管理テーブル２３００を参照して使用するパスを求める。
【０１２５】
一方、シーケンシャル判定部１２３による判定の結果、ランダムアクセスＩＯであると判定されたとき、当該ＩＯ要求から論理ユニットの情報及びアクセスすべき先頭アドレスの情報を抽出する（Ｓ１４０４）。なお、ランダムアクセスＩＯかシーケンシャルアクセスＩＯかを判定することなく（すなわち、Ｓ１４０１〜Ｓ１４０３の処理を行うことなく）、すべてのＩＯ要求に対してＳ１４０４の処理を実行し、ＩＯ要求から論理ユニットの情報及びアクセスすべき先頭アドレスの情報を抽出してもよい。
【０１２６】
そして、ブロック情報管理テーブル２３００を参照し、論理ユニットの情報からアクセス対象となる論理ユニットを特定し、先頭アドレスからアクセス対象となるブロックを特定する。そして、ブロック情報管理テーブル２３００のパスＩＤ欄から当該ブロックに割り当てられているパスを特定する。すなわち、当該ブロックに割り当てられているパスにＩＯ要求を送信するためのＩＯ処理部１３１〜１３４を特定し、ＩＯ処理部特定情報を設定する（Ｓ１４０５）。
【０１２７】
その後、特定されたＩＯ処理部にＩＯ要求を送り、当該特定されたＩＯ処理部１３１〜１３４によって当該ＩＯ要求を処理する（Ｓ１４０６）。そして、当該ＩＯ処理が成功したか否かを判定する（Ｓ１４０７）。そして、当該ＩＯ処理が成功すればこの処理を終了する。一方、当該ＩＯ処理が成功しなければ、パス障害検出部１２３ａが障害が発生したパスＩＤを検出し、当該パスＩＤをパス情報管理部１２４に通知する（Ｓ１４０８）。
【０１２８】
以上説明したように、本発明の実施の形態では、論理ユニットをブロックに分割し、データ入出力要求の対象となる物理デバイスの領域と連続する領域のデータを先読みして記憶するキャッシュメモリが設けられており、同一ブロックヘのシーケンシャルアクセスは同一の論理パスを使用するので、負荷分散機能が動作しているときでも、先読みキャッシュ機能を有効に利用することができる。よって、同一ブロックヘのシーケンシャルアクセスは同一パスを使用するので、負荷分散機能が動作しているときでも、先読みキャッシュ機能を有効に利用することができる。
【０１２９】
また、シーケンシャルアクセス中に、一時的にランダムアクセスが発生しても、そのランダムアクセスが異なるブロックヘのアクセスならば、異なるパスを使用する。よって、再度前回シーケンシャルアクセスしていた領域に連続したＩＯ要求であれば、前回のキャッシュ内容を利用することができる。特に、複数アプリケーションが同一の論理ユニットに同時にアクセスする場合で、異なるブロックヘのシーケンシャルなアクセスが交互に要求される場合であっても、キャッシュ内容を有効に利用することができる。
【０１３０】
さらに、前述した効果が最大限に得られるよう、ブロック分割のサイズ、ブロックに割り当てるパス数を変更することができ、論理ユニットへのアクセス性能を向上させることができる。すなわち、ブロックサイズを変更することによって、各パスヘのＩＯ要求を均等化し、アクセス性能の向上を図ることができる。また、ブロックに割り当てるパス数を複数にして、ブロック内において負荷分散機能を有効に動作させることができる。このブロック内の負荷分散機能は、１ブロックヘのアクセスにランダムアクセスが多い場合に有効となる。
【０１３１】
また、論理パスの障害が検出され又は論理パスの障害の回復が検出されたときに、論理ユニットを分割して設けられた複数のブロックの構成を再設定する（例えば、前記ブロックに割り当てられるサイズ及び／又は前記ブロックに割り当てるパス数を変更する）ので、論理パスの状態に応じて、ＩＯ処理を効率よく行わせるように、ブロックの構成を設定することができる。
【図面の簡単な説明】
【０１３２】
【図１】本発明の実施の形態の情報処理システムの全体構成を示すブロック図である。
【図２】本発明の実施の形態の情報処理システムのパス管理部の詳細な構成を示すブロック図である。
【図３】本発明の実施の形態の均等分割方式における各種テーブルの作成を説明する機能ブロック図である。
【図４】本発明の実施の形態のパス情報管理テーブルの説明図である。
【図５】本発明の実施の形態のＬＵ情報管理テーブルの説明図である。
【図６】本発明の実施の形態のブロック情報管理テーブルの説明図である。
【図７】本発明の実施の形態の可変分割方式における各種テーブルの作成を説明する機能ブロック図である。
【図８】本発明の実施の形態の可変分割方式における各種テーブルの作成を説明する機能ブロック図である。
【図９】本発明の実施の形態のブロック分割指定テーブルの説明図である。
【図１０】本発明の実施の形態のパス情報管理テーブル作成処理のフローチャートである。
【図１１】本発明の実施の形態のパス情報管理テーブル更新処理のフローチャートである。
【図１２】本発明の実施の形態のＬＵ情報管理テーブル更新処理のフローチャートである。
【図１３】本発明の実施の形態のブロック情報管理部の動作を示すフローチャートである。
【図１４】本発明の実施の形態のＩＯ処理のフローチャートである。
【符号の説明】
【０１３３】
１００    情報処理装置
１１０    アプリケーション
１２０    パス管理部
１２１    ＩＯ要求受付部
１２２    ＩＯ終了通知部
１２３    ＩＯ割り当て部
１２４    パス選択情報管理部
１２４ａ  パス情報管理部
１２４ｂ  ブロック分割情報管理部
１２４ｃ  ブロック情報管理部
１２５    シーケンシャル判定部
１２６    ＩＯ割り当て待ちキュー
１２７    ブロック分割情報作成／通知部
１２８    アクセス情報表示部
１３１〜１３４    ＩＯ処理部
１４１〜１４４    アダプタ
２００    記憶装置
２１０    ディスク制御部
２１１    データバッファ
２２０    論理ユニット（論理ユニット）
３０１〜３０４    論理パス
【図１】
2005149276.tif 000003
【図２】
2005149276.tif 000004
【図３】
2005149276.tif 000005
【図４】
2005149276.tif 000006
【図５】
2005149276.tif 000007
【図６】
2005149276.tif 000008
【図７】
2005149276.tif 000009
【図８】
2005149276.tif 000010
【図９】
2005149276.tif 000011
【図１０】
2005149276.tif 000012
【図１１】
2005149276.tif 000013
【図１２】
2005149276.tif 000014
【図１３】
2005149276.tif 000015
【図１４】
2005149276.tif 000016