(57)【特許請求の範囲】
【請求項１】
ストレージ装置に備えられた複数のコントローラと複数のパスを介して接続される情報処理装置であって、
前記ストレージ装置に対して推奨パス問い合わせを発行する推奨パス確認部と、
前記ストレージ装置に対して発行するデータアクセス命令に関して、前記複数のコントローラ間におけるコントローラ間通信を用いるデータ通信による遅延時間の予測値である遅延予測時間と、前記ストレージ装置に対して前記推奨パス問い合わせを発行する場合の応答時間の予測値である応答予測時間とを比較する比較部と、
前記応答予測時間が前記遅延予測時間以上の場合に、前記推奨パス問い合わせの発行を抑止する抑止制御部と
を備えることを特徴とする、情報処理装置。
【請求項２】
前記推奨パス確認部が、
前記応答予測時間が前記遅延予測時間未満の場合に前記推奨パス問い合わせを発行する
ことを特徴とする、請求項１記載の情報処理装置。
【請求項３】
前記遅延予測時間を算出する基礎となる遅延基準値を取得し、前記遅延基準値に基づき、前記遅延予測時間を算出する第１の算出部を備える
ことを特徴とする、請求項１又は２記載の情報処理装置。
【請求項４】
前記ストレージ装置から前記遅延基準値及び前記応答予測時間を取得する取得部を備える
ことを特徴とする、請求項３記載の情報処理装置。
【請求項５】
前記ストレージ装置に対して前記複数のパスのそれぞれからデータアクセス命令を発行し、前記複数のパスのそれぞれにおける前記データアクセス命令に対する応答時間を測定し、前記応答時間の差に基づいて、前記遅延予測時間を算出する第２の算出部を備える
ことを特徴とする、請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
前記抑止制御部により前記推奨パス問い合わせの発行が抑止された場合において、前記ストレージ装置に対して前記データアクセス命令を発行した後に、前記推奨パス確認部が前記ストレージ装置に対して推奨パス問い合わせを発行し、前記ストレージ装置から当該推奨パス問い合わせに対して応答される推奨パス情報をパス情報キャッシュに格納する
ことを特徴とする、請求項１〜５のいずれか１項に記載の情報処理装置。
【請求項７】
ストレージ装置に備えられた複数のコントローラと複数のパスを介して接続される情報処理装置において、前記複数のパスを制御するマルチパス制御方法であって、
前記ストレージ装置に対して推奨パス問い合わせを発行する処理と、
前記ストレージ装置に対して発行するデータアクセス命令に関して、前記複数のコントローラ間におけるコントローラ間通信を用いるデータ通信による遅延時間の予測値である遅延予測時間と、前記ストレージ装置に対して前記推奨パス問い合わせを発行する場合の応答時間の予測値である応答予測時間とを比較する処理と、
前記応答予測時間が前記遅延予測時間以上の場合に、前記推奨パス問い合わせの発行を抑止する処理と
を備えることを特徴とする、マルチパス制御方法。
【請求項８】
ストレージ装置に備えられた複数のコントローラと複数のパスを介して接続されるコンピュータに、前記複数のパスを制御するマルチパス制御機能を実行させるプログラムであって、
前記ストレージ装置に対して推奨パス問い合わせを発行する処理と、
前記ストレージ装置に対して発行するデータアクセス命令に関して、前記複数のコントローラ間におけるコントローラ間通信を用いるデータ通信による遅延時間の予測値である遅延予測時間と、前記ストレージ装置に対して前記推奨パス問い合わせを発行する場合の応答時間の予測値である応答予測時間とを比較する処理と、
前記応答予測時間が前記遅延予測時間以上の場合に、前記推奨パス問い合わせの発行を抑止する処理と
を前記コンピュータに実行させることを特徴とする、マルチパス制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置，マルチパス制御方法及びマルチパス制御プログラムに関する。
【背景技術】
【０００２】
ストレージ装置として、ホスト装置との間を複数の通信経路（パス）で接続される、いわゆるマルチパス接続に対応するものがある。
また近年では、マルチパス接続において最適なパス選択となるようＴＰＧＳ（Target Port Group Support）を用いたマルチパス管理が知られている。
図７及び図８はＴＰＧＳを用いた従来のパス管理方法を説明するための図である。
【０００３】
ＴＰＧＳを使用したマルチパス管理では、ホスト装置のマルチパスドライバから任意のパスを介してREPORT TARGET PORT GROUPコマンドをストレージ装置に対して発行する。
ストレージ装置は、REPORT TARGET PORT GROUPコマンドを受信すると、論理ボリュームを担当するコントローラ（ＣＭ：Controller Module）に備えられているホストポートを推奨（Optimized）パスとすることで、ストレージ装置にとって適切なパス情報を報告する。
【０００４】
図７に示す例においては、コントローラＡが論理ボリュームＶＡ１を担当しており、この論理ボリュームＶＡ１を構成する物理領域としてはコントローラＡに接続された物理ボリュームＡが用いられている。
ホスト装置からコントローラＡに対してREPORT TARGET PORT GROUPコマンドが発行されると、コントローラＡは自身が備えるポートについて、アクセスステート（Access state）として“Active/Optimized”を応答する。
【０００５】
また、論理ボリュームＶＡ１を担当しないコントローラＢのポートについては、アクセスステートとして例えば、“Active/Non-optimized”が応答される。ホスト装置においては、応答された情報を元にアクティブパスを選択する。
また、近年では、記憶領域や管理費用を削減するために、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）技術にシンプロビジョニング（Thin Provisioning）機能を加えたストレージ装置が採用されている。シンプロビジョニング機能とは、ストレージシステムにおいて、物理ボリューム容量以上の容量をサーバに見せる技術であって、サーバ等の上位装置から見えるボリューム容量を仮想化する機能である。
【０００６】
ＴＰＧＳでは、論理ボリューム単位でパス情報を管理する。このため、シンプロビジョニングボリュームのような、論理ボリューム内で物理ブロック毎に担当コントローラが異なるケースには対応できない。
図８に示す例においては、シンプロビジョニングボリュームである論理ボリュームＶＡ２について示しており、その物理領域がコントローラＡに接続された物理ボリュームＡとコントローラＢに接続された物理ボリュームＢとに分散されている。すなわち、論理ボリュームＶＡ２を構成する物理領域の一部がコントローラＡに接続された物理ボリュームＡに存在し（符号ｂ１参照）、また、他の一部がコントローラＢに接続された物理ボリュームＢに存在している（符号ｂ２参照）。
【０００７】
このように構成された論理ボリュームＶＡ２の場合、ＴＰＧＳにおいて論理ボリューム単位で推奨ホストアクセスパスを通知すると、担当コントローラが異なるブロックについては、コントローラ間でデータの移動が必要となる。
図８に示す例においては、コントローラＢからコントローラＡに対して、物理ボリュームＢの物理ブロックｂ２のデータの移動が生じる。以下、このようなコントローラ間でデータの移動を行なうことをクロスアクセスという。
【０００８】
このようなクロスアクセスは、コマンド応答時間を遅延させ、ホストアクセスの性能低下の要因となる。
そこで、このようなクロスアクセスによる性能低下を防止するための手法として、リファラル（Referrals）仕様が知られている。
図９はリファラル仕様を説明するための図である。
【０００９】
リファラル仕様では、上述したREPORT TARGET PORT GROUPコマンドに合わせて、REPORT REFERRALSコマンドが使用される。すなわち、ホスト装置のマルチパスドライバがストレージ装置に対してREPORT REFERRALSコマンドを発行する。
ストレージ装置は、受信したREPORT REFERRLASコマンドに対して、ブロック（チャンク）単位での推奨パス情報を応答する。なお、チャンクとは、複数ブロックをまとめたものでブロック管理の制御単位となる。
【００１０】
ホスト装置においてマルチパスドライバは、チャンク単位でパス情報を管理し、チャンク単位でアクセスパスを選択する。
ホスト装置においては、REPORT REFERRALSコマンドを発行することによって取得した「チャンク単位のパス管理情報」を、そのメモリ上にパス情報キャッシュとして記憶しておく。
【００１１】
これにより、それ以降に同じチャンクに発行するＩＯ（入出力；Input Output）についてはREPORT REFERRALSを発行せずに、パス情報キャッシュを参照することで発行するべきパスを選択することが可能となる。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００５−３２１９５９号公報
【特許文献２】特開２０００−２９８５５５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
このような従来のストレージシステムにおいて、パス情報キャッシュで使用できるメモリサイズ以上に、ストレージ側がチャンク分割されることが考えられる。
パス情報キャッシュで使用できるメモリサイズ以上にストレージ側がチャンク分割されている場合には、ストレージの全てのチャンク情報をパス情報キャッシュに置くことができず、パス情報キャッシュにおいて古いものや使用頻度の低いものから上書きされる。
【００１４】
このようにパス情報キャッシュから削除されたチャンクにＩＯを発行する場合には、再びREPORT REFERRALSコマンドを発行し、再度パス情報を取得してからＩＯを発行することになる。
具体的には、パス情報キャッシュから削除されたチャンクへＩＯを発行する際には、ホスト装置のマルチパスドライバにおいて以下の（i）〜（iv）の処理が行なわれる。
【００１５】
（i）ＩＯ対象のチャンクをパス情報キャッシュにおいて検索
（ii）パス情報キャッシュにチャンクが存在しないため、ストレージにREPORT REFERRALSコマンドを発行
（iii）REPORT REFERRALSコマンドに対してストレージから応答された情報からパスを選択
（iv）ＩＯ発行
このように、パス情報キャッシュから削除されたチャンクへＩＯを発行する際には、特に上記（ii），（iii）の処理が実行されることにより、REPORT REFERRALSコマンドを発行することでＩＯ発行に時間を要することになる。
【００１６】
本来クロスアクセスによるＩＯ遅延を防止することを目的に導入されたリファラル仕様であるにもかかわらず、「REPORT REFERRALSに要する時間」が「クロスアクセスによる遅延時間」よりも大きくなりＩＯ遅延が生じる場合があるという課題がある。
１つの側面では、本発明は、ストレージ装置に対するデータアクセス命令を効率的に処理することを目的とする。
【課題を解決するための手段】
【００１７】
このため、この情報処理装置は、ストレージ装置に備えられた複数のコントローラと複数のパスを介して接続される情報処理装置であって、前記ストレージ装置に対して推奨パス問い合わせを発行する推奨パス確認部と、前記ストレージ装置に対して発行するデータアクセス命令に関して、前記複数のコントローラ間におけるコントローラ間通信を用いるデータ通信による遅延時間の予測値である遅延予測時間と、前記ストレージ装置に対して前記推奨パス問い合わせを発行する場合の応答時間の予測値である応答予測時間とを比較する比較部と、前記応答予測時間が前記遅延予測時間以上の場合に、前記推奨パス問い合わせの発行を抑止する抑止制御部とを備える。
【発明の効果】
【００１８】
一実施形態によれば、ストレージ装置に対するデータアクセス命令を効率的に処理することができる。
【図面の簡単な説明】
【００１９】
【図１】実施形態の一例としてのストレージシステムの機能構成を示す図である。
【図２】実施形態の一例としてのストレージシステムのハードウェア構成を示す図である。
【図３】実施形態の一例としてのストレージシステムの管理情報を例示する図である。
【図４】実施形態の一例としてのストレージシステムにおけるクロスアクセス発生確率を説明するための図である。
【図５】（ａ），（ｂ）は実施形態の一例としてのストレージシステムのシステム起動時におけるマルチパスドライバの処理を説明するためのフローチャートである。
【図６】（ａ），（ｂ）は実施形態の一例としてのストレージシステムのＩＯ処理発行時におけるマルチパスドライバの処理を説明するためのフローチャートである。
【図７】ＴＰＧＳを用いた従来のパス管理方法を説明するための図である。
【図８】ＴＰＧＳを用いた従来のパス管理方法を説明するための図である。
【図９】リファラル仕様を説明するための図である。
【発明を実施するための形態】
【００２０】
以下、図面を参照して本情報処理装置，マルチパス制御方法及びマルチパス制御プログラムに係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。又、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【００２１】
（Ａ）システム構成
図１は実施形態の一例としてのストレージシステム１の機能構成を示す図、図２はそのハードウェア構成を示す図である。
実施形態の一例としてのストレージシステム１は、図２に示すように、ホスト装置（情報処理装置）２に、複数のパス（経路）４を介して複数（図１に示す例では２つ）のストレージ装置３が通信可能に接続されている。
【００２２】
（Ａ−１）ストレージ装置
ストレージ装置３は、それぞれ、ホスト装置２に対して記憶領域を提供するものであり、例えば、ＲＡＩＤ装置である。
ストレージ装置３は、物理ボリュームを用いて仮想的なボリュームである論理ボリュームを構築し、この論理ボリュームを記憶領域としてホスト装置２に提供する。
【００２３】
ストレージ装置３は、論理ボリュームへのホスト装置２からのデータアクセス要求に応じて、論理ボリュームに対応する物理ボリューム（記憶装置１１１）に対するデータアクセスを行ない、また、ホスト装置２に対して応答を行なう。複数のストレージ装置３は同様の構成を有している。以下、図中、同一の符号は同一もしくは略同一の部分を示しているので、その詳細な説明は省略する。
【００２４】
ストレージ装置３は、図２に示すように、ＣＭ１００ａ，１００ｂ及びドライブエンクロージャ１１０を備える。
ドライブエンクロージャ１１０は、１以上（図２に示す例では２つ）の記憶装置（物理ディスク）１１１を搭載可能であり、これらの記憶装置１１１の記憶領域（物理ボリューム，実ボリューム）を、ストレージ装置３に対して提供する。
【００２５】
例えば、ドライブエンクロージャ１１０は、複数段のスロット（図示省略）をそなえ、これらのスロットに、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等の記憶装置１１１を挿入することにより、物理ボリューム容量を随時変更することができる。又、複数の記憶装置１１１を用いてＲＡＩＤを構成することができる。
ドライブエンクロージャ１１０は、ＣＭ１００ａのデバイスアダプタ（Device Adapter：ＤＡ）１０３，１０３とＣＭ１００ｂのＤＡ１０３，１０３とそれぞれ接続されている。そして、ドライブエンクロージャ１１０には、ＣＭ１００ａ，１００ｂのいずれからもアクセスして、データの書き込みや読み出しを行なうことができる。すなわち、ドライブエンクロージャ１１０の記憶装置１１１に対して、ＣＭ１００ａ，１００ｂのそれぞれを接続することにより、記憶装置へのアクセス経路が冗長化されている。
【００２６】
ＣＭ１００ａ，１００ｂは、ストレージ装置３内の動作を制御するコントローラ（ストレージ制御装置）であり、ホスト装置２から送信されるＩＯコマンドに従って、ドライブエンクロージャ１１０の記憶装置１１１へのアクセス制御等、各種制御を行なう。又、ＣＭ１００ａ，１００ｂは互いにほぼ同様の構成を有している。以下、ＣＭを示す符号としては、複数のＣＭのうち１つを特定する必要があるときには符号１００ａ，１００ｂを用いるが、任意のＣＭを指すときには符号１００を用いる。
【００２７】
ストレージ装置３において、ＣＭ１００ａ，１００ｂは二重化されており、通常は、ＣＭ１００ａがプライマリとして各種制御を行なう。しかし、このプライマリＣＭ１００ａの故障時には、セカンダリのＣＭ１００ｂがプライマリとしてＣＭ１００ａの動作を引き継ぐ。
ＣＭ１００ａ，１００ｂはチャネルアダプタ（Channel Adapter：ＣＡ）１０４を介して、それぞれホスト装置２に接続される。そして、これらのＣＭ１００ａ，１００ｂは、ホスト装置３から送信されるリード／ライト等のＩＯコマンドを受信し、ＤＡ１０３等を介して記憶装置１１１の制御を行なう。又、ＣＭ１００ａ，１００ｂは、ＰＣＩｅ（Peripheral Component Interconnect Express） 等の図示しないインタフェースを介して相互に接続されている。このインタフェースを介してＣＭ１００ａとＣＭ１００ｂと間で通信が行なわれることでクロスアクセスが行なわれる。
【００２８】
ＣＭ１００は、図１に示すように、複数（図２に示す例では２つ）のＣＡ１０４，１０４と複数（図１に示す例では２つ）のＤＡ１０３，１０３とをそなえるとともに、ＣＰＵ（Central Processing Unit）１１０，メモリ１０２をそなえる。
ＣＡ１０４は、ホスト装置２等から送信されたデータを受信したり、ＣＭ１００から出力するデータをホスト装置２等に送信する。すなわち、ＣＡ１０４は、ホスト装置２等の外部装置との間でのデータの入出力（ＩＯ）を制御する。ＣＡ１０４は、ホスト装置２と通信可能に接続するネットワークアダプタであり、例えば、ＬＡＮ（Local Area Network）インタフェース等である。
【００２９】
ＣＭ１００は、これらのＣＡ１０４により図示しない通信回線を介してホスト装置２等と接続され、ＩＯコマンドの受信やデータの送受信等を行なう。図２に示す例においては、ＣＭ１００ａ，１００ｂのそれぞれに２つのＣＡ１０４がそなえられている。
また、ＣＡ１０４は、例えば、ｉＳＣＳＩ（Internet Small Computer System Interface）インタフェースやＦＣ（Fibre Channel）インタフェースであってもよく、種々変形して実施することができる。
【００３０】
ＤＡ１０３は、ドライブエンクロージャ１１０や記憶装置１１１等と通信可能に接続するためのインタフェースである。ＤＡ１０３は、ドライブエンクロージャ１１０の記憶装置１１１が接続され、ＣＭ１００は、ホスト装置２から受信したＩＯコマンドに基づき、これらの記憶装置１１１に対するアクセス制御を行なう。
ＣＭ１００は、このＤＡ１０３を介して、記憶装置１１１に対するデータの書き込みや読み出しを行なう。又、図２に示す例においては、ＣＭ１００ａ，１００ｂのそれぞれに２つのＤＡ１０３，１０３がそなえられている。そして、ＣＭ１００ａ，１００ｂのそれぞれにおいて、各ＤＡ１０３にドライブエンクロージャ１１０が接続されている。
【００３１】
これにより、ドライブエンクロージャ１１０の記憶装置１１１には、ＣＭ１００ａ，１００ｂのいずれからもデータの書き込みや読み出しを行なうことができる。
メモリ１０２はＲＯＭ（Read Only Memory），ＲＡＭ（Random Access Memory）及び不揮発性メモリを含む記憶メモリである。メモリ１０２のＲＯＭには、ストレージ制御に係るソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ１０２上のソフトウェアプログラムは、ＣＰＵ１０１に適宜読み込まれて実行される。又、メモリ１０２のＲＡＭは、一次記憶メモリあるいはワーキングメモリとして利用される。
【００３２】
メモリ１０２の不揮発性メモリは、フラッシュメモリやＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）等の装置の電源断状態においても情報を保持する記憶装置であり、ＣＭ１００における種々の設定情報等を格納する。また、この不揮発性メモリには、図１に示すように、後述するクロスアクセス遅延情報１３１及びリポートリファラル応答予測時間１３２も記録される。
【００３３】
ＣＰＵ１０１は、種々の制御や演算を行なう処理装置である。ＣＰＵ１０１は、メモリ１０２等に格納されたＯＳやプログラムを実行することにより、ストレージ装置３としての種々の機能を実現する。
例えば、ＣＰＵ１０１は、ＲＡＩＤの実現やホスト装置２からのホストＩＯに応じた記憶装置１１１へのアクセス制御等、既知のディスクＲＡＩＤコントローラとしての種々の機能を実現する。
【００３４】
また、ＣＰＵ１０１は、図１に示すように、情報応答部１２１，リポートリファラル応答処理部１２２及びボリューム制御部１２３としての機能も備える。
そして、ＣＭ１００のＣＰＵ１０１が、制御プログラムを実行することにより、これらの情報応答部１２１，リポートリファラル応答処理部１２２及びボリューム制御部１２３として機能する。
【００３５】
なお、これらの情報応答部１２１，リポートリファラル応答処理部１２２及びボリューム制御部１２３としての機能を実現するためのプログラム（制御プログラム）は、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
【００３６】
情報応答部１２１，リポートリファラル応答処理部１２２及びボリューム制御部１２３としての機能を実現する際には、内部記憶装置（本実施形態ではメモリ１０２のＲＡＭやＲＯＭ）に格納されたプログラムがコンピュータのマイクロプロセッサ（本実施形態ではＣＰＵ１０１）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
【００３７】
ボリューム制御部１２３は、シンプロビジョニング型の論理ボリューム（仮想ボリューム）を構成し、この論理ボリュームをホスト装置２に提供する。
ボリューム制御部１２３は、ストレージ装置３にそなえられる記憶装置（物理ディスク）１１１をストレージプールとして管理する。すなわち、記憶装置１１１の記憶領域（物理領域）は共有のディスクプールとして管理され、論理ボリュームに書き込まれたデータ量に応じて割り当てられる。これにより、使用されない物理ディスクの無駄をなくし、効率的な運用が可能となる。
【００３８】
ボリューム制御部１２３は、ホスト装置２から論理ボリュームに対する新規データの書き込み要求を検出すると、この新規データを仮想ボリューム内の仮想領域に対応付ける。
論理ボリュームは、ホスト装置２からのアクセス対象となる仮想的な記憶部であり、シンプロビジョニング型のボリュームである。なお、論理ボリュームは、ホスト装置２に対して１つであっても良いし、２つ以上であっても良い。
【００３９】
ボリューム制御部１２３は、ホスト装置２に対しては、そのホスト装置２からの要求通りのサイズで論理（仮想）ボリュームを提供する。一方、ボリューム制御部１２３は、仮想ボリュームにアサインした容量を、初期はストレージ内部でアロケートせずに、ホスト装置２からの書き込み要求に応じて、プールボリュームから「チャンク」と呼ばれる所定の論理ブロックサイズの固まり単位で、論理ボリュームへアロケートする。一般にチャンクのサイズ（論理ブロックサイズ）は数百KBから数百MBの間で設定される。
【００４０】
シンプロビジョニング機能においては、上述のごとく、論理ボリューム（ＬＵＮ）をある論理ブロックサイズ（チャンク）ごとに分割し、各チャンクに物理領域を割り当てて管理している。シンプロビジョニング機能によりＬＵＮを作成した直後（初期状態）は、どのチャンクにも物理領域は割り当てられていない。ホスト装置２からライト要求が来たときは、そのライト範囲に含まれるチャンクに対して、ストレージプールのプール領域から物理領域を割り当て、その物理領域にデータを書き込む。
【００４１】
これにより、ホスト装置２が書き込みを行なった容量のみ記憶装置内部の容量を消費することになり、無駄なストレージ容量を削減することが可能となる。
なお、ボリューム制御部１０によるホスト装置２に対するシンプロビジョニング機能を用いた仮想ボリュームの提供手法は、既知の種々の手法で実現することができ、その説明は省略する。
【００４２】
情報応答部１２１は、後述するホスト装置２の情報取得部１２から送信される情報取得要求に応答して、ストレージ装置３の性能に関する以下の（ａ），（ｂ）の応答情報をホスト装置２に送信する。
（ａ）第１の応答情報として、情報応答部１２１は、当該ストレージ装置３に備えられたＣＭ１００ａとＣＭ１００ｂとの間に生じるクロスアクセスにおいて生じる遅延時間についての情報を送信する。具体的には、情報応答部１２１は、単位ＩＯサイズ（例えば512KB）あたりの遅延時間を、遅延基準値としてホスト装置２に送信する。以下、この遅延基準値をクロスアクセス遅延情報１３１という。
【００４３】
クロスアクセス遅延情報１３１は、例えば予め試験等を行なうことにより求められ、例えば、工場出荷時にメモリ１０２の不揮発性メモリに記録される。
（ｂ）第２の応答情報として、情報応答部１２１は、ホスト装置２からリポートリファラルが発行された場合において、ホスト装置２においてREPORT REFERRALSコマンドが発行されてから、その応答がホスト装置２に到達するまでに要する時間（予測値）をリポートリファラル応答予測時間１３２としてホスト装置２に送信する
このリポートリファラル応答予測時間１３２は、実績から知ることができ、試験等を行なうことにより求められる。また、リポートリファラル応答時間１３２は、例えば、工場出荷時にメモリ１０２の不揮発性メモリに記録される。
【００４４】
リポートリファラル応答処理部１２２は、後述するホスト装置２のリポートリファラル発行部１４から発行されるREPORT REFERRALSコマンドに応答して、ブロック（チャンク）単位での推奨パス情報を応答する。
なお、このREPORT REFERRALSコマンドに応答して推奨パス情報を応答する手法は既知であり、その説明は省略する。また、以下、REPORT REFERRALSコマンドを発行することを単にリポートリファラルを発行するという。また、REPORT REFERRALSコマンドに応答することを、単にリポートリファラルに応答するという。
【００４５】
（Ａ−２）ホスト装置
ホスト装置２は、接続されたストレージ装置３が提供する論理ボリュームにデータの書き込みや読み出しを行なう情報処理装置である。例えば、ホスト装置２はストレージ装置３が提供する論理ボリュームに対してリードやライトのデータアクセス要求を行なう。
ホスト装置２は、図２に示すように、ＣＰＵ１０，メモリ２０及び複数のホストバスアダプタ（Host Bus Adapter：ＨＢＡ）２１をそなえる。
【００４６】
ＨＢＡ２１は、ストレージ装置３等の外部機器と接続するアダプタである。各ＨＢＡ２１はそれぞれ通信ケーブル４を介して、各ストレージ装置３に複数備えられたＣＭ１００のＣＡ１０４と接続されている。以下、通信ケーブル４を介して接続された経路をパス４という場合がある。このように、本ストレージシステム１においては、ホスト装置２とストレージ装置３とが複数のパス４を介して通信可能に接続されている。
【００４７】
ＨＢＡ２１は、例えばＳＣＳＩアダプタ、ファイバチャネル（ＦＣ）アダプタ、シリアルＡＴＡアダプタなどである。或いは、ＨＢＡ２１は、ＩＤＥ、イーサネット（登録商標）、ＦｉｒｅＷｉｒｅ、ＵＳＢなどに準拠した機器を接続するデバイスであってもよい。
メモリ２０はＲＯＭ，ＲＡＭ及び不揮発性メモリを含む記憶メモリである。メモリ２０のＲＯＭには、ホスト装置２としての各種機能を実現するためのソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。本ストレージシステム１においては、後述するマルチパス管理機能を実現するためのソフトウェアプログラムであるマルチパスドライバ（マルチパス制御プログラム）５がメモリ２０のＲＯＭに格納されている。
【００４８】
このマルチパス管理機能においては、例えば、ホスト装置２とストレージ装置３との間を接続するパス４を管理し、複数のパス４の中からストレージ装置３の管理するデータにアクセスするための用いるパス４を選択する。
メモリ２０上のソフトウェアプログラムは、ＣＰＵ１０に適宜読み込まれて実行される。又、メモリ２０のＲＡＭは、一次記憶メモリあるいはワーキングメモリとして利用される。
【００４９】
メモリ２０の不揮発性メモリは、フラッシュメモリやＥＥＰＲＯＭ等の装置の電源断状態においても情報を保持する記憶装置であり、ホスト装置２における種々の設定情報等を格納する。
ＣＰＵ１０は、種々の制御や演算を行なう処理装置である。ＣＰＵ１０は、メモリ２０等に格納されたＯＳやプログラムを実行することにより、ホスト装置２としての種々の機能を実現する。
【００５０】
例えば、ＣＰＵ１０は、各種業務アプリケーションを実行することで業務機能を実現する。
また、ホスト装置２は、例えば、サーバ機能をそなえた情報処理装置であり、ストレージ装置３との間において、ＮＡＳ（Network Attached Storage）やＳＡＮ（Storage Area Network）のコマンドを送受信する。このホスト装置２は、例えば、ストレージ装置３に対してＮＡＳにおけるリード／ライト等のディスクアクセスコマンドを送信することにより、ストレージ装置３が提供する論理ボリュームにデータの書き込みや読み出しを行なう。
【００５１】
そして、ストレージ装置３は、ホスト装置２から論理ボリュームに対して行なわれる入出力要求（例えば、リードコマンドやライトコマンド）に応じて、この論理ボリュームの記憶領域に対応する実ストレージに対して、データの読み出しや書き込み等の処理を行なう。なお、ホスト装置２からの入出力要求のことをＩＯコマンドもしくはＩＯ要求という場合がある。
【００５２】
さらに、ＣＰＵ１０は、上述したマルチパスドライバ５を実行することで、図１に示すように、パス管理部１１，情報取得部１２，リポートリファラル判断部１３，リポートリファラル発行部１４及びＩＯ処理部１５としての機能を実現する。
そして、ホスト装置２のＣＰＵが、マルチパスドライバ５を実行することにより、これらのパス管理部１１，情報取得部１２，リポートリファラル判断部１３，リポートリファラル発行部１４及びＩＯ処理部１５として機能する。
【００５３】
なお、これらのパス管理部１１，情報取得部１２，リポートリファラル判断部１３，リポートリファラル発行部１４及びＩＯ処理部１５としての機能を実現するためのプログラム（マルチパスドライバ５）は、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
【００５４】
パス管理部１１，情報取得部１２，リポートリファラル判断部１３，リポートリファラル発行部１４及びＩＯ処理部１５としての機能を実現する際には、内部記憶装置（本実施形態ではメモリ２０のＲＡＭやＲＯＭ）に格納されたプログラムがコンピュータのマイクロプロセッサ（本実施形態ではＣＰＵ１０）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
【００５５】
情報取得部１２は、ストレージ装置３から各種情報を取得する。また、情報取得部１２は、取得した情報を及び管理情報２０３としてメモリ２０のＲＡＭに記憶する。
図３は実施形態の一例としてのストレージシステム１の管理情報２０３を例示する図である。
この図３に示す管理情報２０３は、リポートリファラル対応フラグ，クロスアクセス遅延時間及びリポートリファラル応答時間を管理する。なお、図３中においては、便宜上、管理情報２０３をテーブル状に示している。また、管理情報２０３に記録する情報はこれらに限定されるものではなく、適宜変更して実施することができる。例えば、管理情報２０３には、装置情報、パス情報、ＬＵＮ情報等を管理してもよい。
【００５６】
情報取得部１２は、ストレージ装置３がリポートリファラルに対応しているか否かを確認する。例えば、情報取得部１２はＳＣＳＩ（Small Computer System Interface）のInquiryコマンドを発行することで、ストレージ装置３がリポートリファラルに対応しているか否かを確認する。
情報取得部１２は、この確認の結果を、管理情報２０３においてリポートリファラル対応フラグに対応付けて記録する。例えば、ストレージ装置３がリポートリファラルに対応している場合には“１”を、またリポートリファラルに対応していない場合には“０”を記録する。
【００５７】
また、情報取得部１２は、ストレージ装置３に対して情報取得要求を発行することで、ホスト装置２からクロスアクセス遅延情報１３１とリポートリファラル応答予測時間１３２とを取得する。
この情報取得要求として、クロスアクセス遅延情報１３１及びリポートリファラル応答予測時間１３２の送信をストレージ装置３の情報応答部１２１に指示するコマンドを新たに作成してもよい。以下、このコマンドを特殊inquiryコマンドという場合がある。
【００５８】
この情報取得要求のコマンド（特殊inquiryコマンド）を受信したストレージ装置３の情報応答部１２１は、メモリ１０２に記録されているクロスアクセス遅延情報１３１及びリポートリファラル応答予測時間１３２をホスト装置２に送信する。
情報取得部１２は、受信したリポートリファラル応答予測時間１３２を、管理情報２０３においてリポートリファラル応答時間に対応付けて記録する。
【００５９】
また、情報取得部１２は、受信したクロスアクセス遅延情報１３１をメモリ２０のＲＡＭにおける所定の領域に記録する。
さらに、情報取得部１２は、ストレージ装置３から取得したクロスアクセス遅延情報１３１に基づき、ＣＭ１００ａとＣＭ１００ｂとの間におけるＣＭ間通信（コントローラ間通信）を用いてデータ通信を行なう場合、すなわち、クロスアクセスを行なう場合の遅延時間の予測値を算出する。以下、このクロスアクセスを行なう場合の遅延時間の予測値をクロスアクセス遅延時間という。
【００６０】
前述の如く、クロスアクセス遅延情報１３１は、単位ＩＯサイズ（例えば512KB）あたりの遅延時間を表す遅延基準値である。
そこで、情報取得部１２は、以下の式（１）を用いて、クロスアクセス遅延時間を算出する。
クロスアクセス遅延時間＝（ＩＯサイズ／単位ＩＯサイズ）×遅延基準値×クロスアクセス発生確率  ・・・（１）
ここで、ＩＯサイズはＩＯ処理対象のデータサイズである。また、クロスアクセス発生確率は、クロスアクセスが発生する確率を表す値であり、以下の式（２）により表される。
【００６１】
クロスアクセス発生確率＝（非担当ＣＭにつながっているパス数）÷（ホスト装置から見える全パス数）・・・（２）
図４は実施形態の一例としてのストレージシステム１におけるクロスアクセス発生確率を説明するための図である。
図４に示す例においては、ホスト装置２に４つのＣＭ１００ａ〜１００ｄが接続されており、ホスト装置２とＣＭ１００ａとが２本のパス４で接続されている。また、ホスト装置２とＣＭ１００ｂ〜１００ｄのそれぞれとは１本のパス４で接続されている。この場合において、ＣＭ１００ａが担当する論理ボリュームにＩＯを発行する場合には、ホスト装置から見える全パス数は“5”であり、非担当ＣＭにつながっているパス数は“3”である。
【００６２】
ＩＯアクセス対象の論理ボリュームはＣＭ１００ａが担当するものであるので、ホスト装置２につながっている５本のパス４のうち、ＣＭ１００ｂ〜１００ｄにつながっている３本のパス４が選択された場合には、クロスアクセスが発生することを表す。そして、ホスト装置２につながっている５本のパス４のうち、ＣＭ１００ａにつながっている２本のパス４が選択された場合には、クロスアクセスが発生しない。
【００６３】
従って、この図４に示す例において、クロスアクセス発生確率は“3/5”となる。
また、例えば、クロスアクセス遅延情報１３１が、「512KBのＩＯサイズでの遅延時間が10msである」ことを示す場合に、単位ＩＯサイズが512KBであり、遅延基準値が10msである。
なお、クロスアクセスによる遅延時間は、ストレージ装置３の性能や構成、ＩＯサイズ等に依存する。
【００６４】
このような場合に、例えば、ホスト装置２からＩＯサイズが1MBのデータのＣＭ１００ａが担当する論理ボリュームからリードを行なう場合には、クロスアクセス遅延時間は以下の式で求められる。
クロスアクセス遅延時間＝（1MB÷512KB）×10ms×3/5
＝（1048÷512）×20×3/5
≒12ms
なお、このクロスアクセス遅延時間が、複数のＣＭ１００間におけるＣＭ間通信を用いるデータ通信（クロスアクセス）による遅延時間の予測値である、遅延予測時間に相当する。
【００６５】
式（１）に示したように、クロスアクセス遅延時間は、ＩＯサイズのデータをクロスアクセスにより送信する場合の遅延時間にクロスアクセス発生確率を乗算して求められる値である。すなわち、クロスアクセス遅延時間は、クロスアクセスによる遅延時間の予測値であり、統計的な期待値である。
クロスアクセス発生確率を考慮しない場合に、仮にクロスアクセスで10msの遅延が発生し、また、リポートリファラルの取得には8ms要する場合には、リポートリファラルを発行した方が短時間でＩＯ処理を実行できる。
【００６６】
しかしながら、例えば、２つのパス４で接続され、クロスアクセス発生確率が1/2である場合に、クロスアクセスで遅延する期待値時間は10ms×1/2＝5msとなり、これはリポートリファラルを発行しない方が早いことが期待されることを示す。これはもちろん期待値であり、担当ＣＭ１００であれば遅延は発生せず、非担当ＣＭ１００であれば遅延は10msとなるが、全体で見ると平均化されるため期待値で考えてよい。
【００６７】
情報取得部１２は、上述の如く算出したクロスアクセス遅延時間を管理情報２０３においてクロスアクセス遅延時間に対応付けて記録する。
なお、上述した情報取得部１２が情報取得要求（特殊inquiryコマンド）をストレージ装置３に対して発行する手法においては、ストレージ装置３に、受信した特殊inquiryコマンドに対してクロスアクセス遅延情報１３１及びリポートリファラル応答予測時間１３２を応答する機能が備えられている必要がある。
【００６８】
このような機能を備えていないストレージ装置３に対しては、上述した特殊inquiryコマンドを発行する代わりに、情報取得部１２は以下の（i）〜（iv）に示す手法により、クロスアクセス遅延情報１３１及びリポートリファラル応答予測時間１３２を取得する。
（i）情報取得部１２は、ＩＯ処理部１５にホスト装置２に接続されている全パス４を介して、それぞれ所定の論理ボリュームの固定サイズ（例えば512KB）のリード要求を発行させる。
【００６９】
（ii）情報取得部１２は、（i）において発行したリード要求に対する各ストレージ装置３からの応答を受信し、各パス４において受信した応答時間の差を、メモリ２０に保存する。
例えば、パス“０”におけるストレージ装置３からの応答がリードＩＯ発行後20msであり、パス“１”におけるストレージ装置３からの応答がリードＩＯ発行後10msであった場合には、応答時間の差は、パス“０”とパス“１”との間で20-10＝10msとなる。
【００７０】
ここで、特定の論理ボリュームに対して各パスからリード要求を発行した場合に、最も早い応答が、当該論理ボリュームの担当ＣＭ１００からの応答であり、クロスアクセスの未発生時の応答時間と考えられる。一方、それよりも遅い応答は、クロスアクセスが発生した場合の応答時間と考えられる。従って、上述した応答時間の差はクロスアクセスによる遅延時間、すなわち、クロスアクセス遅延時間を表す。
【００７１】
情報取得部１２は、測定したクロスアクセス遅延時間を、管理情報２０３においてクロスアクセス遅延時間に対応付けて記録する。なお、情報取得部１２は、複数のパス４について得られたクロスアクセス遅延時間について、平均値を求めてもよく、また最大値や最小値を用いてもよく、適宜変更して実施することができる。
（iii）情報取得部１２は、上記（ii）の後のタイミング、または、上位アプリケーション等から初回のＩＯ要求を受信したタイミングで、リポートリファラル発行部１４にリポートリファラルを発行させる。
【００７２】
（iv）情報取得部１２は、上記（iii）で発行したリポートリファラルに対するストレージ装置３からの応答時間を測定する。このようにして測定された応答時間は、リポートリファラル応答予測時間１３２に相当する。情報取得部１２は、測定した応答時間を、管理情報２０３において、リポートリファラル応答時間に対応付けて記録する。
リポートリファラル判断部１３は、ホスト装置２に対してリポートリファラルを発行するか否かを判断する。
【００７３】
リポートリファラル判断部１３は、上述の如く算出したクロスアクセス遅延時間と、ストレージ装置３から取得したリポートリファラル応答予測時間１３２とを比較し、その比較結果に応じて、リポートリファラルを発行するか否かを判断する。
リポートリファラル応答予測時間１３２がクロスアクセス遅延時間よりも小さい場合には、リポートリファラルを発行してストレージ装置３から推奨パスの応答を受信するまでに要する時間の方が、クロスアクセスにより遅延する時間の期待値よりも短い。すなわち、リポートリファラルを発行した方が短時間でＩＯ処理を完了できることを意味する。そこで、この場合には、リポートリファラル判断部１３は、リポートリファラルを発行すると判断する。
【００７４】
これに対して、リポートリファラル応答予測時間１３２がクロスアクセス遅延時間以上である場合には、クロスアクセスにより遅延する時間の期待値の方が、リポートリファラルを発行してストレージ装置３から推奨パスの応答を受信するまでに要する時間よりも短い。すなわち、ＩＯ処理を行なった結果クロスアクセスが発生したとしても、リポートリファラルを発行してストレージ装置３から推奨パスの応答を受信するより短時間で処理が完了することを表す。そこで、リポートリファラル判断部１３は、リポートリファラルを発行しないと判断する。
【００７５】
リポートリファラル発行部１４は、ストレージ装置３に対してリポートリファラルを発行する。すなわち、リポートリファラル発行部１４は、ストレージ装置３に対して、リポートリファラル（推奨パス問い合わせ）を発行する推奨パス確認部として機能する。
このリポートリファラル発行部１４は、上述したリポートリファラル判断部１３がリポートリファラルを発行すると判断した場合に、リポートリファラルを発行する。
【００７６】
なお、このリポートリファラル発行部１４によるストレージ装置３に対するリポートリファラルの発行は既知の手法により実現でき、その説明は省略する。
また、リポートリファラル判断部１３がリポートリファラルを発行しないと判断した場合には、リポートリファラル発行部１４によるリポートリファラルの発行は抑止される。すなわち、上述したリポートリファラル判断部１３はリポートリファラルの発行を抑止する抑止制御部としての機能も備える。
【００７７】
パス管理部１１は、ホスト装置２とストレージ装置３との間を接続するパス４を管理する。例えば、パス管理部１１は、ホスト装置２に備えられた各ＨＢＡ２１について、通信ケーブル４を介して接続されているストレージ装置３のＣＡ１０４を確認することで、ホスト装置２とストレージ装置３との間におけるパス４を介した接続状態を把握し、マルチパスを構築する。なお、このようなホスト装置２とストレージ装置３との間におけるマルチパスの構築手法は既知であり、その説明は省略する。また、このマルチパスの構築は、例えば、ホスト装置２の起動時に行なわれる。
【００７８】
パス管理部１１はパス管理情報２０１を用いてパス４の管理を行なう。パス管理情報２０１は、論理ボリュームに対してＩＯコマンドを発行する際に用いられるパス４を管理する。以下、ＩＯコマンドを発行する際に用いられるパス４を担当パス４という場合がある。また、パス管理情報２０１においては、チャンク単位で担当パス４が管理される。
上述したリポートリファラル発行部１４が発行したリポートリファラルに対して、ストレージ装置３のリポートリファラル応答処理部１２２から推奨パス４が応答されると、この推奨パス４がパス管理部１１に担当パス４として記憶される。
【００７９】
また、パス管理情報２０１は、メモリ１０２のＲＡＭの所定の領域に格納される。
後述するＩＯ処理部１５がストレージ装置３に対してＩＯコマンド等を発行すると、パス管理部１１は、ＩＯ処理対象のチャンクや論理ボリュームについてパス管理情報２０１を参照する。そして、このパス管理情報２０１に推奨パス４が記憶されている場合（キャッシュヒット）には、パス管理部１１は、ホスト装置２に接続された複数のパス４の中から、このパス管理情報２０１に記憶されているパス４を担当パス４として選択する。以下、パス管理情報２０１をパス情報キャッシュ２０１という場合がある。
【００８０】
また、パス管理部１１は、パス情報キャッシュ２０１にＩＯ処理対象のチャンク（論理ボリューム）に対応する担当パス４が登録されていない場合（キャッシュミス）において、リポートリファラル発行部１４がリポートリファラルを発行した場合には、このリポートリファラルに対してストレージ装置３（リポートリファラル応答処理部１２２）から送信される応答に従い、その推奨パス４を担当パス４として選択する。
【００８１】
さらに、パス管理部１１は、パス情報キャッシュ２０１に宛先のチャンクに対応する担当パス４が登録されていない場合において、リポートリファラル発行部１４がリポートリファラルを発行しない場合には、例えば、予めデフォルトとして設定された所定のパス４を担当パス４として選択する。また、パス情報キャッシュ２０１において、宛先のチャンクに対応する担当パス４が登録されていないが論理ボリューム単位で担当パス４が記憶されている場合には、その論理ボリュームに対応する担当パス４を採用する。
【００８２】
ＩＯ処理部１５は、ストレージ装置３に対してＩＯコマンド等を発行することで、ストレージ装置３が提供する記憶領域へデータの書き込みや読み出しを行なう。
ＩＯ処理部１５は、パス管理部１１によって選択されたパス４を用いてＩＯコマンドを発行する。
なお、このＩＯ処理部１５によるストレージ装置３に対するＩＯ処理は既知の手法により実現でき、その説明は省略する。
【００８３】
（Ｂ)動作
上述の如く構成された実施形態の一例としてのストレージシステム１のシステム起動時におけるマルチパスドライバ５の処理を、図５（ａ），（ｂ）に示すフローチャートに従って説明する。なお、図５（ａ）はストレージ装置３の処理を示すフローチャート（ステップＢ１〜Ｂ４）、図５（ｂ）はホスト装置２のマルチパスドライバ５の処理を示すフローチャート（ステップＡ１〜Ａ８）である。
【００８４】
ホスト装置２において、パス管理部１１がマルチパスを管理する（ステップＡ１）。
ホスト装置２において、情報取得部１２が、ストレージ装置３にInquiryコマンドを発行する（ステップＡ２）。
ストレージ装置３において、情報応答部１２１が、受信したInquiryコマンドに対して、リポートリファラルに対応していることを応答する（ステップＢ１）。
【００８５】
ホスト装置２において、ストレージ装置３から送信された応答に基づき、情報取得部１２が、ストレージ装置３がリポートリファラルに対応しているか否かを確認する（ステップＡ３）。確認の結果、ストレージ装置３がリポートリファラルに対応していない場合には（ステップＡ３のＮＯルート参照）、マルチパスドライバ５による起動処理を終了し、ホスト装置２としての通常処理に移行する。
【００８６】
また、ステップＡ３における確認の結果、ストレージ装置３がリポートリファラルに対応している場合には（ステップＡ３のＹＥＳルート参照）、ステップＡ４に移行する。
ステップＡ４において、情報取得部１２は、ストレージ装置３に対して、特殊inquiryコマンドを発行する。
ストレージ装置３においては、情報応答部１２１が、自装置（ストレージ装置３）が特殊inquiryコマンドに対応しているか否かを確認する（ステップＢ２）。ストレージ装置３が特殊inquiryコマンドに対応していない場合には（ステップＢ２のＮＯルート参照）、情報応答部１２１はエラーを応答し（ステップＢ３）、処理を終了する。
【００８７】
一方、ストレージ装置３が特殊inquiryコマンドに対応している場合には（ステップＢ２のＹＥＳルート参照）、情報応答部１２１は、特殊inquiryコマンドに対して、クロスアクセス遅延情報１３１とリポートリファラル応答予測時間１３２とをホスト装置２に応答して（ステップＢ４）、処理を終了する。
ホスト装置２においては、ストレージ装置３からエラーが応答されたかを確認する（ステップＡ５）。
【００８８】
確認の結果、ホスト装置２がストレージ装置３からエラー応答を受信した場合には（ステップＡ５のＹＥＳルート参照）、ストレージ装置３が特殊inquiryコマンドに対応する機能を備えていない。
そこで、情報取得部１２は、ステップＡ６において、ホスト装置２に接続されている全パス４を介して所定の論理ボリュームの固定サイズ（例えば512KB）のリード要求を発行する。また、情報取得部１２は、発行したリード要求に対する各ストレージ装置３からの応答を受信し、各パス４において受信した応答時間の差を、メモリ１０２において管理情報２０３に、クロスアクセス遅延時間として記録する。
【００８９】
また、ステップＡ７において、情報取得部１２は、リポートリファラル発行部１４にリポートリファラルを発行させ、その応答時間を測定する。情報取得部１２は、測定した応答時間を、管理情報２０３において、リポートリファラル応答時間に対応付けて記録し（ステップＡ７）、処理を終了する。
また、ステップＡ５における確認の結果、エラー応答を受信しなかった場合には（ステップＡ５のＮＯルート参照）、ストレージ装置３が特殊inquiryコマンドに対応する機能を備えている。
【００９０】
そこで、ステップＡ８において、情報取得部１２は、受信したクロスアクセス遅延情報１３１に基づき、クロスアクセス遅延時間を算出し、このクロスアクセス遅延時間をメモリ１０２において管理情報２０３に、クロスアクセス遅延時間として記録する。
また、情報取得部１２は、ストレージ装置３から受信したリポートリファラル応答予測時間１３２を、メモリ１０２において管理情報２０３に、リポートリファラル応答時間１３２クロスアクセス遅延時間として記録する。その後、処理を終了する。
【００９１】
次に、上述の如く構成された実施形態の一例としてのストレージシステム１のＩＯ処理発行時におけるマルチパスドライバ５の処理を、図６（ａ），（ｂ）に示すフローチャートに従って説明する。
なお、図６（ａ）はストレージ装置３の処理を示すフローチャート（ステップＢ１１）、図６（ｂ）はホスト装置２のマルチパスドライバ５の処理を示すフローチャート（ステップＡ１１〜Ａ２０）である。
【００９２】
ホスト装置２において、ＩＯ処理部１５がストレージ装置３に対してＩＯコマンドを発行すると（ステップＡ１１）、パス管理部１１が、そのＩＯ処理対象のチャンクに基づいてパス情報キャッシュ２０１を検索する（ステップＡ１２）。
パス情報キャッシュ２０１においてキャッシュヒットしたか否かを確認する（ステップＡ１３）。キャッシュヒットした場合には（ステップＡ１３のＹＥＳルート参照）、パス管理部１１は、パス情報キャッシュ２０１に記録されている担当パス４を選択し、ＩＯ処理部１５はこの選択された担当パス４を介してＩＯコマンド等を送信し、処理を終了する。
【００９３】
一方、パス情報キャッシュ２０１においてキャッシュミスが生じた場合には（ステップＡ１３のＮＯルート参照）、ステップＡ１４に移行する。
ステップＡ１４において、ホスト装置２の情報取得部１２は、処理対象のＩＯサイズと、単位ＩＯサイズあたりの遅延時間であるクロスアクセス遅延情報１３１とに基づき、前述した式（１）を用いてクロスアクセス遅延時間を算出する。
【００９４】
ホスト装置２のリポートリファラル判断部１３は、算出したクロスアクセス遅延時間と、ストレージ装置３から取得したリポートリファラル応答予測時間１３２とを比較する（ステップＡ１５）。
比較の結果、リポートリファラル応答予測時間がクロスアクセス遅延時間よりも小さい場合には（ステップＡ１５のＹＥＳルート参照）、リポートリファラル判断部１３は、リポートリファラルを発行すると判断する。
【００９５】
ホスト装置２において、リポートリファラル発行部１４が、ストレージ装置３に対してリポートリファラルを発行する（ステップＡ１９）。
ストレージ装置３においては、リポートリファラル応答処理部１２２が、リポートリファラルに応答して、ブロック（チャンク）単位での推奨パス４を応答する（ステップＢ１１）。
【００９６】
ホスト装置２においては、パス管理部１１が、リポートリファラルに応答してストレージ装置３から応答された推奨パス４を担当パス４として選択し、ＩＯ処理部１５がこの担当パスに対してＩＯコマンドを発行する（ステップＡ２０）。また、パス管理部１１は、ホスト装置２から応答された推奨パス４をパス情報キャッシュ２０１に記録し、処理を終了する。
【００９７】
また、ステップＡ１５における比較の結果、リポートリファラル応答予測時間がクロスアクセス遅延時間以上の場合には（ステップＡ１５のＮＯルート参照）、リポートリファラル判断部１３は、リポートリファラルを発行しないと判断する。
これにより、ホスト装置２においては、パス管理部１１が、例えば、予めデフォルトとして設定された所定のパス４を担当パス４として選択し、ＩＯ処理部１５はこの選択された担当パス４を介してＩＯコマンドを発行する（ステップＡ１６）。
【００９８】
また、ホスト装置２において、ステップＡ１６におけるＩＯ処理部１５によるＩＯコマンドの発行とは非同期に、リポートリファラル発行部１４はストレージ装置３に対してリポートリファラルを発行する（ステップＡ１７）。
ストレージ装置３においては、リポートリファラル応答処理部１２２が、このリポートリファラルに応答して、ブロック（チャンク）単位での推奨パス４を応答する（ステップＢ１１）。
【００９９】
ホスト装置２においては、パス管理部１１が、リポートリファラルに応答してホスト装置２から応答された推奨パス４をパス情報キャッシュ２０１に記録する（ステップＡ１８）。これにより、パス情報キャッシュ２０１が更新され、同一のチャンクに対する以降に行なわれるＩＯ処理の処理速度を向上させることができる。その後、処理を終了する。
（Ｃ）効果
このように、実施形態の一例としてのストレージシステム１によれば、ホスト装置２からのＩＯ発行時に、クロスアクセス遅延時間とリポートリファラル応答予測時間とを比較することで、ホスト装置２に対してリポートリファラルを発行するか否かを判断する。
【０１００】
具体的には、リポートリファラル判断部１３は、リポートリファラル応答予測時間１３２がクロスアクセス遅延時間以上である場合には、リポートリファラル判断部１３は、リポートリファラルを発行しないと判断し、ＩＯ処理は、例えば、予めデフォルトとして設定された所定のパス４を用いてＩＯ処理を行なう。
これにより、リポートリファラルを発行することにより生じる遅延を排除し、効率的にＩＯ処理を行なうことができる。
【０１０１】
また、リポートリファラル判断部１３は、リポートリファラル応答予測時間１３２がクロスアクセス遅延時間より短い場合には、リポートリファラル判断部１３は、リポートリファラルを発行すると判断する。これにより、リポートリファラル発行部１４がリポートリファラルを発行し、ＩＯ処理は、このリポートリファラルに対してストレージ装置３（リポートリファラル応答処理部１２２）から応答される推奨パス４を用いてＩＯ処理を行なう。
【０１０２】
これにより、リポートリファラルにより通知された推奨パス４を介して効率的にＩＯ処理を行なうことができる。
シンプロビジョニング機能を備えるストレージ装置３において、シンプロビジョニングボリュームは、一般的に構成時や変更時に担当ＣＭ１００を意識することなく容易な構成が可能なことを重視するため、クロスアクセスは一般的に発生する。このようなシンプロビジョニング機能を備えるストレージ装置３において、チャンク毎に最適な手法でＩＯ処理を行なうことができる。
【０１０３】
また、リポートリファラル判断部１３がリポートリファラルを発行しないと判断した場合において、ＩＯ処理部１５がストレージ装置３にＩＯコマンドを発行した場合に、このＩＯコマンドの発行とは非同期に、リポートリファラル発行部１４がストレージ装置３に対してリポートリファラルを発行する。そして、ストレージ装置３のリポートリファラル応答処理部１２２が、このリポートリファラル対して応答する推奨パス４をパス情報キャッシュ２０１に登録することで、同一のチャンクに対する以降に行なわれるＩＯ処理の処理速度を向上させることができる。
【０１０４】
（Ｄ）その他
開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
例えば、上述した実施形態において、ストレージシステム１に備えられるストレージ装置３やストレージ装置３の数は、適宜変更して実施することができる。また、ストレージ装置３において備えられるＣＭ１００の数も、１つもしくは３つ以上備えてもよく適宜変更して実施することができる。
【０１０５】
また、応答情報によってストレージ装置３からホスト装置２に送信されるクロスアクセス遅延情報１３１について、その単位ＩＯのデータサイズは512KBに限定されるものではなく、種々変形して実施することができる。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
【０１０６】
（Ｅ）付記
（付記１）
ストレージ装置に備えられた複数のコントローラと複数のパスを介して接続される情報処理装置であって、
前記ストレージ装置に対して推奨パス問い合わせを発行する推奨パス確認部と、
前記ストレージ装置に対して発行するデータアクセス命令に関して、前記複数のコントローラ間におけるコントローラ間通信を用いるデータ通信による遅延時間の予測値である遅延予測時間と、前記ストレージ装置に対して前記推奨パス問い合わせを発行する場合の応答時間の予測値である応答予測時間とを比較する比較部と、
前記応答予測時間が前記遅延予測時間以上の場合に、前記推奨パス問い合わせの発行を抑止する抑止制御部と
を備えることを特徴とする、情報処理装置。
【０１０７】
（付記２）
前記推奨パス確認部が、
前記応答予測時間が前記遅延予測時間未満の場合に前記推奨パス問い合わせを発行する
ことを特徴とする、付記１記載の情報処理装置。
（付記３）
前記遅延予測時間を算出する基礎となる遅延基準値を取得し、前記遅延基準値に基づき、前記遅延予測時間を算出する第１の算出部を備える
ことを特徴とする、付記１又は２記載の情報処理装置。
【０１０８】
（付記４）
前記ストレージ装置から前記遅延基準値及び前記応答予測時間を取得する取得部を備える
ことを特徴とする、付記３記載の情報処理装置。
（付記５）
前記ストレージ装置に対して前記複数のパスのそれぞれからデータアクセス命令を発行し、前記複数のパスのそれぞれにおける前記データアクセス命令に対する応答時間を測定し、前記応答時間の差に基づいて、前記遅延予測時間を算出する第２の算出部を備える
ことを特徴とする、付記１〜４のいずれか１項に記載の情報処理装置。
【０１０９】
（付記６）
前記抑止制御部により前記推奨パス問い合わせの発行が抑止された場合において、前記ストレージ装置に対して前記データアクセス命令を発行した後に、前記推奨パス確認部が前記ストレージ装置に対して推奨パス問い合わせを発行し、前記ストレージ装置から当該推奨パス問い合わせに対して応答される推奨パス情報をパス情報キャッシュに格納する
ことを特徴とする、付記１〜５のいずれか１項に記載の情報処理装置。
【０１１０】
（付記７）
ストレージ装置に備えられた複数のコントローラと複数のパスを介して接続される情報処理装置において、前記複数のパスを制御するマルチパス制御方法であって、
前記ストレージ装置に対して推奨パス問い合わせを発行する処理と、
前記ストレージ装置に対して発行するデータアクセス命令に関して、前記複数のコントローラ間におけるコントローラ間通信を用いるデータ通信による遅延時間の予測値である遅延予測時間と、前記ストレージ装置に対して前記推奨パス問い合わせを発行する場合の応答時間の予測値である応答予測時間とを比較する処理と、
前記応答予測時間が前記遅延予測時間以上の場合に、前記推奨パス問い合わせの発行を抑止する処理と
を備えることを特徴とする、マルチパス制御方法。
【０１１１】
（付記８）
前記応答予測時間が前記遅延予測時間未満の場合に前記推奨パス問い合わせを発行する
処理を備えることを特徴とする、付記７記載のマルチパス制御方法。
（付記９）
前記遅延予測時間を算出する基礎となる遅延基準値を取得し、前記遅延基準値に基づき、前記遅延予測時間を算出する処理
を備えることを特徴とする、付記７又は８記載の情マルチパス制御方法。
【０１１２】
（付記１０）
前記ストレージ装置から前記遅延基準値及び前記応答予測時間を取得する処理
を備えることを特徴とする、付記９記載のマルチパス制御方法。
（付記１１）
前記ストレージ装置に対して前記複数のパスのそれぞれからデータアクセス命令を発行し、前記複数のパスのそれぞれにおける前記データアクセス命令に対する応答時間を測定し、前記応答時間の差に基づいて、前記遅延予測時間を算出する処理
を備えることを特徴とする、付記７〜１０のいずれか１項に記載のマルチパス制御方法。
【０１１３】
（付記１２）
前記推奨パス問い合わせの発行が抑止された場合において、前記ストレージ装置に対して前記データアクセス命令を発行した後に、前記ストレージ装置に対して推奨パス問い合わせを発行し、前記ストレージ装置から当該推奨パス問い合わせに対して応答される推奨パス情報をパス情報キャッシュに格納する処理
を備えることを特徴とする、付記７〜１１のいずれか１項に記載のマルチパス制御方法。
【０１１４】
（付記１３）
ストレージ装置に備えられた複数のコントローラと複数のパスを介して接続されるコンピュータに、前記複数のパスを制御するマルチパス制御機能を実行させるプログラムであって、
前記ストレージ装置に対して推奨パス問い合わせを発行する処理と、
前記ストレージ装置に対して発行するデータアクセス命令に関して、前記複数のコントローラ間におけるコントローラ間通信を用いるデータ通信による遅延時間の予測値である遅延予測時間と、前記ストレージ装置に対して前記推奨パス問い合わせを発行する場合の応答時間の予測値である応答予測時間とを比較する処理と、
前記応答予測時間が前記遅延予測時間以上の場合に、前記推奨パス問い合わせの発行を抑止する処理と
を前記コンピュータに実行させることを特徴とする、マルチパス制御プログラム。
【０１１５】
（付記１４）
前記応答予測時間が前記遅延予測時間未満の場合に前記推奨パス問い合わせを発行する
処理を
を前記コンピュータに実行させることを特徴とする、付記１３記載のマルチパス制御プログラム。
【０１１６】
（付記１５）
前記遅延予測時間を算出する基礎となる遅延基準値を取得し、前記遅延基準値に基づき、前記遅延予測時間を算出する処理
を前記コンピュータに実行させることを特徴とする、付記１３又は１４記載のマルチパス制御プログラム。
【０１１７】
（付記１６）
前記ストレージ装置から前記遅延基準値及び前記応答予測時間を取得する処理
を前記コンピュータに実行させることを特徴とする、付記１５記載のマルチパス制御プログラム。
（付記１７）
前記ストレージ装置に対して前記複数のパスのそれぞれからデータアクセス命令を発行し、前記複数のパスのそれぞれにおける前記データアクセス命令に対する応答時間を測定し、前記応答時間の差に基づいて、前記遅延予測時間を算出する処理
を前記コンピュータに実行させることを特徴とする、付記１３〜１６のいずれか１項に記載のマルチパス制御プログラム。
【０１１８】
（付記１８）
前記推奨パス問い合わせの発行が抑止された場合において、前記ストレージ装置に対して前記データアクセス命令を発行した後に、前記ストレージ装置に対して推奨パス問い合わせを発行し、前記ストレージ装置から当該推奨パス問い合わせに対して応答される推奨パス情報をパス情報キャッシュに格納する処理
を前記コンピュータに実行させることを特徴とする、付記１３〜１７のいずれか１項に記載のマルチパス制御プログラム。
【符号の説明】
【０１１９】
１    ストレージシステム
２    ホスト装置（情報処理装置）
１０    ＣＰＵ
５    マルチパスドライバ
１１    パス管理部
１２    情報取得部（比較部）
１３    リポートリファラル判断部（抑止制御部）
１４    リポートリファラル発行部（推奨パス確認部）
１５    ＩＯ処理部
２０    メモリ
２０１    パス管理情報
２０２    クロスアクセス遅延時間
２０３    管理情報
２１    ホストバスアダプタ
３    ストレージ装置
１００    ＣＭ
１０１    ＣＰＵ
１２１    情報応答部
１２２    リポートリファラル応答処理部
１２３    ボリューム制御部
１０２    メモリ
１３１    クロスアクセ遅延情報
１３２    リポートリファラル応答時間
１０３    デバイスアダプタ（ＤＡ）
１０４    チャネルアダプタ（ＣＡ）
１１０    ディスクエンクロージャ
１１１    記憶装置
４    パス
【図１】
0006409613.tif 000002
【図２】
0006409613.tif 000003
【図３】
0006409613.tif 000004
【図４】
0006409613.tif 000005
【図５】
0006409613.tif 000006
【図６】
0006409613.tif 000007
【図７】
0006409613.tif 000008
【図８】
0006409613.tif 000009
【図９】
0006409613.tif 000010