(57)【要約】      （修正有）【課題】ストレージ装置に対するＩＯ発行時の応答時間を短縮する。【解決手段】情報処理装置２は、ストレージ装置１０と複数の経路３０を介して接続され、複数の経路３０の各経路３０のタイムアウト時間に関する管理情報を記憶する記憶部４と、ストレージ装置１０に対する入出力の発行先の経路３０及び他の経路３０について、前記記憶部から該経路に応じたタイムアウト時間を記憶部４から取得する取得部６と、をそなえる。【選択図】図１
2014120125.tif 000002
【特許請求の範囲】
【請求項１】
ストレージ装置と複数の経路を介して接続され、
前記複数の経路の各経路のタイムアウト時間に関する管理情報を記憶する記憶部と、
前記ストレージ装置に対する入出力の発行先の経路及び他の経路について、前記記憶部から該経路に応じたタイムアウト時間を取得する取得部と、
をそなえることを特徴とする情報処理装置。
【請求項２】
前記管理情報を収集し、前記記憶部に記憶する収集部と、
前記取得部によって取得されたタイムアウト時間を用いて前記ストレージ装置に対して入出力を発行する発行部と、をそなえることを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記収集部は、前記複数の経路に対する複数の入出力タイムアウト時間を前記管理情報として前記ストレージ装置から収集し、
前記取得部は、前記複数の経路のうちの第１の経路に対する第１の入出力タイムアウト時間を取得し、
前記第１の経路への前記入出力でタイムアウトエラーが発生した場合に、前記複数の経路のうちの前記第１の経路とは異なる第２の経路に対する、前記第１の入出力タイムアウト時間よりも長い第２の入出力タイムアウト時間を取得することを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記第１の入出力タイムアウト時間は前記複数の経路のうちの最終経路以外の経路に対するタイムアウト時間であり、
前記第２の入出力タイムアウト時間は前記複数の経路のうちの最終経路に対するタイムアウト時間であることを特徴とする請求項３記載の情報処理装置。
【請求項５】
前記取得部は、前記第１の経路への前記入出力でタイムアウトエラーが発生した場合に、前記第２の経路に前記入出力を発行する前に、前記複数の経路のうちの前記第１及び第２の経路とは異なる第３の経路に対する、前記第１の入出力タイムアウト時間よりも長く前記第２の入出力タイムアウト時間よりも短い第３の入出力タイムアウト時間を取得することを特徴とする請求項４記載の情報処理装置。
【請求項６】
前記収集部は、前記ストレージ装置において前記複数の入出力タイムアウト時間が変更されると、変更後の前記複数の入出力タイムアウト時間を前記管理情報として収集することを特徴とする請求項２〜５のいずれか１項に記載の情報処理装置。
【請求項７】
情報処理装置と複数の経路を介して接続され、
前記複数の経路に対する複数の入出力タイムアウト時間を格納している格納部と、
前記情報処理装置から前記複数の入出力タイムアウト時間を要求されると、前記情報処理装置に前記複数の入出力タイムアウト時間を送信する送信部と、
をそなえることを特徴とするストレージ装置。
【請求項８】
情報処理装置と、
前記情報処理装置と複数の経路を介して接続されたストレージ装置と、
前記複数の経路の各経路のタイムアウト時間に関する管理情報を記憶する記憶部と、
前記情報処理装置から前記ストレージ装置に対する入出力の発行先の経路及び他の経路について、前記記憶部から該経路に応じたタイムアウト時間を取得する取得部と、
をそなえることを特徴とする情報処理システム。
【請求項９】
情報処理装置に複数の経路を介して接続されたストレージ装置における入出力方法であって、
前記複数の経路の各経路のタイムアウト時間に関する管理情報を記憶し、
前記ストレージ装置に対する入出力の発行先の経路及び他の経路について、前記記憶部から該経路に応じたタイムアウト時間を取得することを特徴とする入出力方法。
【請求項１０】
情報処理装置に複数の経路を介して接続されたストレージ装置における入出力プログラムであって、
前記複数の経路の各経路のタイムアウト時間に関する管理情報を記憶し、
前記ストレージ装置に対する入出力の発行先の経路及び他の経路について、前記記憶部から該経路に応じたタイムアウト時間を取得する
処理を前記情報処理装置に実行させることを特徴とする入出力プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、情報処理装置、ストレージ装置、情報処理システム、入出力方法及び入出力プログラムに関する。
【背景技術】
【０００２】
近年、技術の進歩により、物理動作のないソリッドステートドライブ（solid state drive：ＳＳＤ）や高性能なストレージが開発されている。
又、新しい情報は高速なディスクに、古い情報は低速の低価格なディスクに置くという情報ライフサイクル管理（Information Lifetime management：ＩＬＭ）、階層化や仮想化などの技術の登場により、ストレージ装置内に複数の種類のディスクを混在させることが一般的となっている。このため、ストレージ装置に、例えばＳＳＤなどの高速アクセス可能なストレージと、アクセス速度の低いハードディスクドライブ（hard disk drive；ＨＤＤ）とが共存しているケースが多い。
【０００３】
図１３は、従来のストレージシステム１０１を示す図である。
このストレージシステム１０１は、図１３に示すように、サーバ１０２に、パス（経路）１３０−１〜１３０−６を介して複数（図１３に示す例では２つ）のストレージ装置１１０，１２０が通信可能に接続されている。
サーバ１０２は、接続されたストレージ装置１１０，１２０のボリュームにデータの書き込みや読み出しを行なう情報処理装置である。例えば、サーバ１０２はストレージ装置１１０，１２０のボリュームに対してリードやライトのデータアクセス要求を行なう。ストレージ装置１１０，１２０は、このデータアクセス要求に応じてボリュームに対するデータアクセスを行ない、サーバ１０２に対して応答を行なう。サーバ２は、例えば、図示しないCentral Processing Unit（ＣＰＵ）やRandom Access Memory（ＲＡＭ）、Read Only Memory（ＲＯＭ）等をそなえる。又、サーバ１０２は、マルチパスドライバ部１０３、Logical Unit Number（ＬＵＮ）情報１０７−１〜１０７−６、及びホストバスアダプタ（Host Bus Adaptor：ＨＢＡ）１０９−１〜１０９−６をそなえる。
【０００４】
マルチパスドライバ部１０３は、ストレージ装置１１０，１２０へのパスが複数存在するマルチパス環境において、ＩＯ（Input/Output）タイムアウトの発生時にアクセスパスを切り替えてＩＯをリトライする。ＩＯタイムアウトとは、ＩＯを発行してからそのＩＯに対する応答が返されるまでの最大待機時間であるタイムアウト時間（タイムアウト値とも呼ぶ）を超えることを指す。
【０００５】
ＬＵＮ情報１０７−１〜１０７−６は、サーバ１０２に接続されているストレージ装置１１０，１２０のＬＵＮに関する情報である。ＬＵＮ情報１０７−１〜１０７−６には、ＬＵＮ毎に、例えば、当該ＬＵＮのディスク種別（例えば、“ＳＳＤ”）や装置識別情報（例えば、“Ａ４０００−６Ａ０２９８”）などが格納される。
ＨＢＡ１０９−１〜１０９−６は、サーバ１０２とストレージ機器等の外部機器とを接続するアダプタである。ＨＢＡ１０９−１〜１０９−６は、例えばＳＣＳＩアダプタ、ファイバチャネル（ＦＣ）アダプタ、シリアルＡＴＡアダプタなどである。或いは、ＨＢＡ１０９−１〜１０９−６は、ＩＤＥ、イーサネット（登録商標）、ＦｉｒｅＷｉｒｅ（登録商標）、Universal Serial Bus（ＵＳＢ）などに準拠した機器を接続するデバイスであってもよい。
【０００６】
ストレージ装置１１０は、サーバ１０２に対して記憶領域を提供するものであり、例えば、ＲＡＩＤ装置である。ストレージ装置１１０は、図中の例では、装置名として“Ａ４０００”、ＩＤとして“６Ａ０２９８”を有する。ストレージ装置１１０は、Controller Module（ＣＭ）１１１−１，１１１−２、及びディスク１１３−１〜１１３−４をそなえる。
【０００７】
ＣＭ１１１−１は、Channel Adapter（ＣＡ）１１２−１，１１２−２のほか不図示のＣＰＵやメモリ、キャッシュメモリ等をそなえ、ＩＯ処理を行なう。
ＣＭ１１１−２は、ＣＡ１１２−３，１１２−４のほか不図示のＣＰＵやメモリ、キャッシュメモリ等をそなえ、ＩＯ処理を行なう。
ここで、ＣＭ１１１−１とＣＭ１１１−２とは、同様に構成されている。また、ＣＡ１１２−１〜ＣＡ１１２−４は同様に構成されている。
【０００８】
ＣＡ１１２−１〜１１２−４は、サーバ１０２と通信可能に接続するインタフェースコントローラであり、例えば、ファイバチャネルアダプタである。ＣＡ１１２−１，１１２−２，１１２−４は、それぞれパス１３０−１〜１３０−３経由でサーバのＨＢＡ１０９−１〜１０９−３と接続されている。
パス１３０−１〜１３０−３は、サーバ１０２とストレージ装置１１０とを接続するパスであり、例えばＦＣである。
【０００９】
ディスク１１３−１〜１１３−４は、情報を記憶可能な記憶装置であり、例えば、ニアラインドライブ（以下、ニアラインと呼ぶ）１１３−１、ＨＤＤ１１３−２，１１３−３、及びＳＳＤ１１３−４をそなえる。ＳＳＤは厳密にはディスクではないが、以下、説明の便宜上ＳＳＤもニアラインやＨＤＤのようにディスクとして扱う。
ニアライン１１３−１は、磁性体を塗布した円盤を記録媒体として使用し、磁気ヘッドを移動させ、高速回転している円盤に対して情報の読み書きを行なうストレージドライブである。ニアライン１１３−１は、一般的にＨＤＤ１１３−２，１１３−３よりも大容量であるが、アクセスが低速である。
【００１０】
ＨＤＤ１１３−２，１１３−３は、磁性体を塗布した円盤を記録媒体として使用し、磁気ヘッドを移動させ、高速回転している円盤に対して情報の読み書きを行なうストレージドライブである。
ＳＳＤ１１３−４、半導体素子メモリを記憶装置として使用するストレージドライブであり、シリコンディスクドライブ、半導体ディスクドライブともよばれる。一般に、ＳＳＤ３３は、ニアライン１１３−１やＨＤＤ１１３−２，１１３−３のような磁気ヘッドの移動に伴うヘッドシークタイムがないため、これらよりも高速なランダムアクセスが可能である。その一方、半導体メモリを使用するので、一般的にニアライン１１３−１やＨＤＤ１１３−２，１１３−３よりも高価である。
【００１１】
ストレージ装置１２０も、サーバ１０２に対して記憶領域を提供するものであり、例えば、ＲＡＩＤ装置である。ストレージ装置１２０は、図中の例では、装置名として“Ａ３０００”、ＩＤとして“４Ａ０２９０”を有する。ストレージ装置１２０は、ＣＭ１２１−１，１２１−２及びディスク１２３−１，１２３−２をそなえる。
ＣＭ１２１−１は、ＣＡ１２２−１，１２２−２のほか不図示のＣＰＵやメモリ、キャッシュメモリ等をそなえ、ＩＯ処理を行なう。
【００１２】
ＣＭ１２１−２は、ＣＡ１２２−３，１２２−４のほか不図示のＣＰＵやメモリ、キャッシュメモリ等をそなえ、ＩＯ処理を行なう。
ＣＡ１２２−１〜１２２−４は、サーバ１０２と通信可能に接続するインタフェースコントローラであり、例えば、ファイバチャネルアダプタである。ＣＡ１２２−１，１２２−２，１２２−４は、それぞれパス１３０−４〜１３０−６経由でサーバのＨＢＡ１０９−４〜１０９−６と接続されている。
【００１３】
ここで、ＣＭ１２１−１とＣＭ１２１−２とは、同様に構成されている。また、ＣＡ１２２−１〜ＣＡ１２２−４は同様に構成されている。
パス１３０−４〜１３０−６は、サーバ１０２とストレージ装置１２０とを接続するパスであり、例えばＦＣである。
ディスク１２３−１，１２３−２は、情報を記憶可能な記憶装置であり、例えば、ＨＤＤ１２３−１，１２３−２である。
【００１４】
ＨＤＤ１２３−１，１２３−２は、磁性体を塗布した円盤を記録媒体として使用し、磁気ヘッドを移動させ、高速回転している円盤に対して情報の読み書きを行なうストレージドライブである。
ストレージシステム１０１においては、サーバ１０２からストレージ装置１１０，１２０に対して、ＩＯアクセスが発生する。
【００１５】
このような構成においては、サーバ１０２側で、サーバ１０２がＩＯを発行後、ストレージ装置１１０，１２０からの応答を待つ最大時間であるタイムアウト時間（以下、このタイムアウト時間を「ＩＯタイムアウト時間」と呼ぶ）を設定している。
ストレージ装置１１０，１２０の故障等により、ＩＯタイムアウト時間を超えてもストレージ装置１１０，１２０から応答がない場合、サーバ１０２は、タイムアウトエラーが発生したとして、エラー処理を行なう。
【００１６】
なお、サーバ１０２がストレージ装置１１０，１２０にＩＯを発行してから、ストレージ装置１１０，１２０が応答するまでのレイテンシは、ＩＯ要求転送時間、ディスクシークタイム、ｒｅａｄ／ｗｒｉｔｅ時間、ＩＯ転送時間などの総計となる。
サーバ１０２でＩＯタイムアウト時間を短く設定すれば、ストレージ装置１１０，１２０の故障時のエラー検出やパス切替時間を短くできる。一方、ＩＯタイムアウト時間が短い場合、ストレージ装置１１０，１２０が正常に動作している場合でも、ストレージ装置１１０，１２０の負荷が一時的に高くなるなどの原因によりレイテンシ値が通常より長くなると、タイムアウトが検出されてしまう。
【００１７】
サーバ１０２は、ＩＯタイムアウト時間を１つ設定できる。例えば、Ｓｏｌａｒｉｓ（登録商標）標準ドライバではＩＯタイムアウト時間のデフォルト値が６０秒である。この値を変更するには、ユーザが定義を書き換え、サーバ１０２を再起動する。
【先行技術文献】
【特許文献】
【００１８】
【特許文献１】特開２００６−２３５８４３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１９】
ＳＳＤ１１３−４はアクセス時間が短いので、ＩＯタイムアウト時間を短い値に設定することができる。
しかし、前述の如く、従来のストレージ装置１１０，１２０においては、設定されるＩＯタイムアウト値は１つである。従って、最新のディスク１１３、旧型のディスク１１３のいずれにも同じＩＯタイムアウト値が使用され、ＳＳＤに合わせてＩＯタイムアウト時間を６０秒未満の値に設定すると、低速のディスクでＩＯタイムアウトが頻発するおそれがある。
【００２０】
さらに、ＩＯの切り替え先パスが存在する場合でも、タイムアウトするまで一定時間待ってからパスの切り替えが行なわれるので、別パスに切り替えてＩＯを直ちに再発行することもできない。
１つの側面では、本発明は、ストレージ装置に対するＩＯ発行時の応答時間を短縮することを目的とする。
【００２１】
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の１つとして位置付けることができる。
【課題を解決するための手段】
【００２２】
このため、情報処理装置は、ストレージ装置と複数の経路を介して接続され、前記複数の経路の各経路のタイムアウト時間に関する管理情報を記憶する記憶部と、前記ストレージ装置に対する入出力の発行先の経路及び他の経路について、前記記憶部から該経路に応じたタイムアウト時間を取得する取得部と、をそなえる。
又、ストレージ装置は、情報処理装置と複数の経路を介して接続され、前記複数の経路に対する複数の入出力タイムアウト時間を格納している格納部と、前記情報処理装置から前記複数の入出力タイムアウト時間を要求されると、前記情報処理装置に前記複数の入出力タイムアウト時間を送信するコントローラと、をそなえる。
【００２３】
さらに、情報処理システムは、情報処理装置と、前記情報処理装置と複数の経路を介して接続されたストレージ装置と、前記複数の経路の各経路のタイムアウト時間に関する管理情報を記憶する記憶部と、前記情報処理装置から前記ストレージ装置に対する入出力の発行先の経路及び他の経路について、前記記憶部から該経路に応じたタイムアウト時間を取得する取得部と、をそなえる。
【００２４】
なおさらに、情報処理装置に複数の経路を介して接続されたストレージ装置における入出力方法は、前記複数の経路の各経路のタイムアウト時間に関する管理情報を記憶し、前記ストレージ装置に対する入出力の発行先の経路及び他の経路について、前記記憶部から該経路に応じたタイムアウト時間を取得する。
又、情報処理装置に複数の経路を介して接続されたストレージ装置における入出力プログラムは、前記複数の経路の各経路のタイムアウト時間に関する管理情報を記憶し、前記ストレージ装置に対する入出力の発行先の経路及び他の経路について、前記記憶部から該経路に応じたタイムアウト時間を取得する処理を前記情報処理装置に実行させる。
【発明の効果】
【００２５】
開示の技術によれば、ストレージ装置に対するＩＯ発行時の応答時間を短縮することができる。
【図面の簡単な説明】
【００２６】
【図１】実施形態の一例としてのストレージシステムの構成を示す図である。
【図２】実施形態の一例としてのサーバ側タイムアウトテーブルの初期状態を例示する図である。
【図３】実施形態の一例としてのストレージ装置の識別後のサーバ側タイムアウトテーブルを例示する図である。
【図４】図３のサーバ側タイムアウトテーブルにレコードをさらに追加した例を示す図である。
【図５】実施形態の一例としてのストレージ装置側のタイムアウトテーブルを例示する図である。
【図６】実施形態の一例としてのタイムアウト上限テーブルを例示する図である。
【図７】実施形態の一例としての初期化処理を示すフローチャートである。
【図８】実施形態の一例としてのＩＯ発行及び応答時の処理を示すフローチャートである。
【図９】実施形態の一例としてのタイムアウト値の更新処理を示すフローチャートである。
【図１０】実施形態の第１変形例におけるサーバ側タイムアウトテーブルを例示する図である。
【図１１】実施形態の第４変形例におけるサーバ側タイムアウトテーブルを例示する図である。
【図１２】実施形態の第５変形例におけるＬＵＮ管理テーブルを例示する図である。
【図１３】従来のストレージシステムを示す図である。
【発明を実施するための形態】
【００２７】
以下、図面を参照して本ストレージシステム、サーバ、ストレージ装置、入出力方法、及び入出力プログラムに係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。
【００２８】
（Ａ）システム構成
図１は実施形態の一例としてのストレージシステム（情報処理システム）１の構成を示す図である。
実施形態の一例としてのストレージシステム１は、図１に示すように、サーバ（情報処理装置）２に、パス（経路）３０−１〜３０−６を介して複数（図１に示す例では２つ）のストレージ装置１０，２０が通信可能に接続されている。
【００２９】
サーバ２は、接続されたストレージ装置１０，２０のボリュームにデータの書き込みや読み出しを行なう情報処理装置である。例えば、サーバ２はストレージ装置１０，２０のボリュームに対してリードやライトのデータアクセス要求を行なう。ストレージ装置１０，２０は、このデータアクセス要求に応じてボリュームに対するデータアクセスを行ない、サーバ２に対して応答を行なう。サーバ２は、例えば、図示しないＣＰＵやＲＡＭ、ＲＯＭ等をそなえる。又、サーバ２は、マルチパスドライバ部３、サーバ側タイムアウトテーブル（記憶部）４、ＬＵＮ情報７−１〜７−６、及びＨＢＡ９−１〜９−６をそなえる。
【００３０】
マルチパスドライバ部３は、ストレージ装置１０からタイムアウト情報を取得すると共に、マルチパス環境において、ＩＯタイムアウトの発生時にアクセスパスを切り替えてＩＯをリトライする。マルチパスドライバ部３は、タイムアウトテーブル収集部（収集部）５、タイムアウト時間取得部（取得部）６、及びＩＯ発行部（発行部）８をそなえる。
タイムアウトテーブル収集部５は、外部からＩＯタイムアウト値を設定可能なストレージ装置１０から、後述するタイムアウトテーブル１４を取得する。そして、取得したタイムアウトテーブル１４のデータを、サーバ側タイムアウトテーブル４に記録する。このとき、タイムアウトテーブル収集部５は、例えば、ストレージ装置１０のモデル名、シリアル番号等の情報を、装置識別情報としてサーバ側タイムアウトテーブル４に追加する。
【００３１】
なお、以下、サーバ２等の外部からＩＯタイムアウト値を設定可能なストレージ装置を「タイムアウト対応ストレージ装置」と呼ぶ。一方、タイムアウト値を設定できないストレージ装置を「タイムアウト非対応ストレージ装置」と呼ぶ。図１に示す例においては、ストレージ装置１０がタイムアウト対応ストレージ装置、ストレージ装置２０がタイムアウト非対応ストレージ装置である。
【００３２】
タイムアウト時間取得部６は、ストレージ装置１０，２０にＩＯを発行する際に、後述のサーバ側タイムアウトテーブル４を参照して、当該ＩＯに設定するタイムアウト時間を読み出して取得する。タイムアウト非対応のストレージ装置２０の場合、タイムアウト時間取得部６は、デフォルトのタイムアウト時間（例えば４０秒）を読み出す。
ＩＯ発行部８は、タイムアウト時間取得部６が取得したタイムアウト値を使用してＩＯを発行する。又、ＩＯ発行部８は、図８を用いて説明するように、ＩＯ発行後に当該ＩＯがタイムアウトとなったか、正常終了したか、或いはタイムアウト以外の原因で異常終了したかを判定する。
【００３３】
サーバ側タイムアウトテーブル４は、サーバ２に接続されているストレージ装置１０のディスク毎のタイムアウト時間を記憶するテーブルである。サーバ側タイムアウトテーブル４は、例えば、サーバ２の不図示のメモリに格納される。このサーバ側タイムアウトテーブル４については、図２〜図４を用いて後述する。
ＬＵＮ情報７−１〜７−６は、サーバ２に接続されているストレージ装置１０，２０のＬＵＮに関する情報である。ＬＵＮ情報７−１〜７−６には、ＬＵＮ毎に、例えば、当該ＬＵＮのディスク種別（例えば、“ＳＳＤ”）や装置識別情報（例えば、“Ｅ４０００−６Ａ０２９９”）などが格納される。
【００３４】
ＨＢＡ９−１〜９−６は、サーバ２とストレージ機器等の外部機器とを接続するアダプタである。ＨＢＡ９−１〜９−６は、例えばＳＣＳＩアダプタ、ファイバチャネル（ＦＣ）アダプタ、シリアルＡＴＡアダプタなどである。或いは、ＨＢＡ９−１〜９−６は、ＩＤＥ、イーサネット、ＦｉｒｅＷｉｒｅ、ＵＳＢなどに準拠した機器を接続するデバイスであってもよい。
【００３５】
なお、以下、ＬＵＮ情報を示す符号としては、複数のＬＵＮ情報のうち１つを特定する必要があるときには符号７−１〜７−６を用いるが、任意のＬＵＮ情報を指すときには符号７を用いる。
ストレージ装置１０は、サーバ２に対して記憶領域を提供するものであり、例えば、ＲＡＩＤ装置である。ストレージ装置１０は、外部からＩＯタイムアウト値を設定可能なタイプのストレージ装置である。又、図中の例では、装置名として“Ｅ４０００”、ＩＤとして“６Ａ０２９９”を有する。ストレージ装置１０は、ＣＭ（送信部）１１−１，１１−２、ディスク１３−１〜１３−４、タイムアウトテーブル（格納部）１４、タイムアウト時間変更部（変更部）１５、及びタイムアウト上限テーブル１６をそなえる。
【００３６】
ＣＭ１１−１は、ＣＡ１２−１，１２−２のほか不図示のＣＰＵやメモリ、キャッシュメモリ等をそなえ、ＩＯ処理を行なう。
ＣＭ１１−２は、ＣＡ１２−３，１２−４のほか不図示のＣＰＵやメモリ、キャッシュメモリ等をそなえ、ＩＯ処理を行なう。
ＣＡ１２−１〜１２−４は、サーバ２と通信可能に接続するインタフェースコントローラであり、例えば、ファイバチャネルアダプタである。ＣＡ１２−１，１２−２，１２−４は、それぞれパス３０−１〜３０−３経由でサーバのＨＢＡ９−１〜９−３と接続されている。
【００３７】
ここで、ＣＭ１１−１とＣＭ１１−２とは、同様に構成されている。また、ＣＡ１２−１〜ＣＡ１２−４は同様に構成されている。
パス３０−１〜３０−３は、サーバ２とストレージ装置１０とを接続するパスであり、例えばＦＣである。
ディスク１３−１〜１３−４は、情報を記憶可能な記憶装置であり、例えば、ニアライン１３−１、ＨＤＤ１３−２，１３−３、及びＳＳＤ１３−４をそなえる。
【００３８】
ニアライン１３−１は、磁性体を塗布した円盤を記録媒体として使用し、磁気ヘッドを移動させ、高速回転している円盤に対して情報の読み書きを行なうストレージドライブである。ニアライン１３−１は、一般的にＨＤＤ１３−２，１３−３よりも大容量であるが、アクセスが低速である。
ＨＤＤ１３−２，１３−３は、磁性体を塗布した円盤を記録媒体として使用し、磁気ヘッドを移動させ、高速回転している円盤に対して情報の読み書きを行なうストレージドライブである。
【００３９】
ＳＳＤ１３−４、半導体素子メモリを記憶装置として使用するストレージドライブであり、シリコンディスクドライブ、半導体ディスクドライブともよばれる。一般に、ＳＳＤ３３は、ニアライン１３−１やＨＤＤ１３−２，１３−３のような磁気ヘッドの移動に伴うヘッドシークタイムがないため、これらよりも高速なランダムアクセスが可能である。その一方、半導体メモリを使用するので、一般的にニアライン１３−１やＨＤＤ１３−２，１３−３よりも高価である。
【００４０】
タイムアウトテーブル１４は、ストレージ装置１０にそなえられているディスク１３毎のタイムアウト時間を記憶するテーブルである。タイムアウトテーブル１４は、例えば、ＣＭ１１−１，１１−２の不図示のメモリに格納される。このタイムアウトテーブル１４については、図５を用いて後述する。
なお、ストレージ装置１０の高負荷などの原因により処理遅延が発生しているときに、ＩＯタイムアウトエラーが頻発するのは好ましくない。
【００４１】
そこで、タイムアウト時間変更部１５は、ストレージ装置１０の負荷状態を監視し、ストレージ装置１０の保守や高負荷などによりタイムアウトの発生が予測される場合に、タイムアウトテーブル１４に設定されているタイムアウト時間の値を上げる。このとき、タイムアウト時間変更部１５は、後述するタイムアウト上限テーブル１６に設定されている上限値を上限としてタイムアウト時間を各パス３０に対して設定する。又、タイムアウト時間変更部１５は、ｓｅｎｓｅを用いてタイムアウトテーブル１４の更新をサーバ２に通知する。
【００４２】
ここで、ｓｅｎｓｅとは、ストレージ装置１０，２０が、サーバ２からのＩＯに対して、応答する際にサーバ２に通知するために用いられるメッセージである。ｓｅｎｓｅは当業界において周知の手法であるためその説明は省略する。
又、タイムアウト時間変更部１５は、ストレージ装置１０の高負荷状態が解消されたときやファームウェアの更新時にも、タイムアウトテーブル１４に設定されている値を変更する。このときも、タイムアウト時間変更部１５は、タイムアウトテーブル１４に更新が行なわれた旨を、ｓｅｎｓｅを用いてサーバ２に通知する。
【００４３】
これらのタイムアウト時間の変更及びサーバ２への通知処理については図９を用いて後述する。
タイムアウト上限テーブル１６は、ストレージ装置１０にそなえられているディスク１３及びパス３０毎に設定可能なタイムアウト値の上限値を記憶するテーブルである。このタイムアウト上限テーブル１６については、図６を用いて後述する。
【００４４】
ストレージ装置２０も、サーバ２に対して記憶領域を提供するものであり、例えば、ＲＡＩＤ装置である。ストレージ装置２０は、外部からタイムアウト値を設定できないタイプのストレージ装置である。又、図中の例では、装置名として“Ｅ３０００”、ＩＤとして“４Ａ０２９１”を有する。ストレージ装置２０は、ＣＭ２１−１，２１−２及びディスク２３−１，２３−２をそなえる。
【００４５】
ＣＭ２１−１は、ＣＡ２２−１，２２−２のほか不図示のＣＰＵやメモリ、キャッシュメモリ等をそなえ、ＩＯ処理を行なう。
ＣＭ２１−２は、ＣＡ２２−３，２２−４のほか不図示のＣＰＵやメモリ、キャッシュメモリ等をそなえ、ＩＯ処理を行なう。
ＣＡ２２−１〜２２−４は、サーバ２と通信可能に接続するインタフェースコントローラであり、例えば、ファイバチャネルアダプタである。ＣＡ２２−１，２２−２，２２−４は、それぞれパス３０−４〜３０−６経由でサーバのＨＢＡ９−４〜９−６と接続されている。
【００４６】
ここで、ＣＭ２１−１とＣＭ２１−２とは、同様に構成されている。また、ＣＡ２２−１〜ＣＡ２２−４は同様に構成されている。
パス３０−４〜３０−６は、サーバ２とストレージ装置２０とを接続するパスであり、例えばＦＣである。
ディスク２３−１，２３−２は、情報を記憶可能な記憶装置であり、例えば、ＨＤＤ２３−１，２３−２である。
【００４７】
ＨＤＤ２３−１，２３−２は、磁性体を塗布した円盤を記録媒体として使用し、磁気ヘッドを移動させ、高速回転している円盤に対して情報の読み書きを行なうストレージドライブである。
なお、以下、ストレージ装置１０にそなえられたＣＭを示す符号としては、複数のＣＭのうち１つを特定する必要があるときには符号１１−１，１１−２を用いるが、任意のＣＭを指すときには符号１１を用いる。
【００４８】
又、ストレージ装置１０にそなえられたＣＡを示す符号としては、複数のＣＡのうち１つを特定する必要があるときには符号１２−１〜１２−４を用いるが、任意のＣＡを指すときには符号１２を用いる。
さらに、ストレージ装置１０にそなえられたディスクを示す符号としては、複数のディスクのうち１つを特定する必要があるときには符号１３−１〜１３−４を用いるが、任意のディスクを指すときには符号１３を用いる。
【００４９】
さらに、ストレージ装置２０にそなえられたＣＭを示す符号としては、複数のＣＭのうち１つを特定する必要があるときには符号２１−１，２１−２を用いるが、任意のＣＭを指すときには符号２１を用いる。
又、ストレージ装置２０にそなえられたＣＡを示す符号としては、複数のＣＡのうち１つを特定する必要があるときには符号２２−１〜２２−４を用いるが、任意のＣＡを指すときには符号２２を用いる。
【００５０】
さらに、ストレージ装置２０にそなえられたディスクを示す符号としては、複数のディスクのうち１つを特定する必要があるときには符号２３−１，２３−２を用いるが、任意のディスクを指すときには符号２３を用いる。
さらに、パスを示す符号としては、複数のパスのうち１つを特定する必要があるときには符号３０−１〜３０−６を用いるが、任意のパスを指すときには符号３０を用いる。
【００５１】
なお、図１に示す例においては、ストレージ装置１０に２つのＣＭ１２がそなえられているが、これに限定されるものではなく、３以上のＣＭ１２をそなえてもよい。
又、ストレージ装置１０に４つのディスク１３がそなえられているが、これに限定されるものではなく、３以下又は５以上のディスク１３をそなえてもよい。
さらに、図１に示す例においては、ストレージ装置２０に２つのＣＭ２２がそなえられているが、これに限定されるものではなく、３以上のＣＭ２２をそなえてもよい。
【００５２】
又、ストレージ装置２０に２つのディスク２３がそなえられているが、これに限定されるものではなく、３以上のディスク２３をそなえてもよい。
次に、図２〜図４を参照して、サーバ２にそなえられているサーバ側タイムアウトテーブル４について説明する。
図２は、本実施形態の一例としてのサーバ側タイムアウトテーブル４の初期状態を例示する図である。又、図３は、本実施形態の一例としてのストレージ装置１０，２０の識別後のサーバ側タイムアウトテーブル４を例示する図である。図４は、図３のサーバ側タイムアウトテーブル４にレコードをさらに追加した例を示す図である。
【００５３】
サーバ側タイムアウトテーブル４は、装置識別情報４１、ディスク種別４２、ＣＭ係数４３、先頭パスのタイムアウト時間４４、中間パスのタイムアウト時間４５、最終パスのタイムアウト時間４６、及び上限４７の各フィールドを有する。
装置識別情報フィールド４１は、ストレージ装置１０を識別する情報を示す。例えば、装置識別情報フィールド４１には、ストレージ装置１０のモデル名とシリアル番号とを連結した文字列が格納される。
【００５４】
ディスク種別フィールド４２は、ストレージ装置１０にそなえられた各ディスク１３の種別を示す。例えば、ディスク種別フィールド４２には、図３に示すように、“ＨＤＤ１００００”、“ＨＤＤ１５０００”、“ＳＳＤ”、“ＮＥＡＲＬＩＮＥ”などのディスクの性能や特性を表わす文字列が格納される。“ＨＤＤ１００００”は、回転速度が１０，０００ＲＰＭのＨＤＤを示し、“ＨＤＤ１５０００”は、回転速度が１５，０００ＲＰＭのＨＤＤを示す。“ＳＳＤ”はＳＳＤを示し、“ＮＥＡＲＬＩＮＥ”はニアラインを示す。
【００５５】
先頭パスのタイムアウト時間フィールド４４は、マルチパス環境の場合に先頭パスに使用するタイムアウト時間を格納している。
中間パスのタイムアウト時間フィールド４５は、マルチパス環境の場合に先頭パス以外であり、且つ最終パス以外のパス（以降、このようなパスを「中間パス」と呼ぶ）におけるタイムアウト時間を格納している。
【００５６】
最終パスのタイムアウト時間フィールド４６は、マルチパス環境の場合に最終パスに使用するタイムアウト時間を格納している。
なお、ここでの「先頭パス」、「中間パス」、「最終パス」は、パスの物理的な番号と必ずしも一致しない。ここでは、ＩＯ発行時に最初にアクセスされるパスを「先頭パス」、先頭パスがエラーとなり、リトライ時に使用されるパスを「中間パス」、最終リトライ時（最大リトライ回数でのリトライ）に使用されるパスを「最終パス」（又は最終経路）と呼ぶ。また、先頭パスと中間パスとを「最終パス以外のパス」（又は最終経路以外の経路）と呼ぶ。
【００５７】
なお、一般に、ＩＯアクセス時には、ＩＯ発行時点で最も負荷の低いパスが選択されてそのパスにＩＯが発行される。
例えば、物理パス＃１〜＃４の４パス構成の場合を考える。
（１）初回のＩＯは、物理パス＃１〜＃４のうち、そのとき負荷が最も低い物理パス＃２に発行される。
（２）物理パス＃２がエラーとなり、パスを切り替えて１回目（初回）のリトライを行なう。物理パス＃１，＃３，＃４のうち、そのとき負荷の少ない物理パス＃１が選択される。
（３）物理パス＃１もエラーとなり、２回目のリトライでは物理パス＃４が選択される。
（４）物理パス＃４もエラーとなり、３回目のリトライは物理パス＃３が選択される。
【００５８】
上記の例は４パス構成であるので、物理パス＃３でのリトライが最後となる。
この場合、先頭パスは物理パス＃２、中間パスは、１回目及び２回目のリトライで選択された物理パス＃１及び＃４、最終パスは最終リトライで選択された物理パス＃３となる。
なお、最大リトライ回数よりもパス３０の数のほうが多い場合は、たとえまだリトライしていないパス３０が残存していても、最大リトライ回数でのリトライが最終リトライとなる。
【００５９】
タイムアウト時間フィールド４４〜４６に、先頭パス、中間パス及び最終パスのタイムアウト時間を設定する理由を以下に説明する。
ＩＯのタイムアウトは、パス３０の高負荷や故障によるものと、ストレージ装置１０の高負荷や故障など、ストレージ装置１０に共通に発生するものとがある。
パス３０に依存するタイムアウトが発生した場合はパスを切り替えるほうが好ましい。これに対し、ストレージ装置１０の高負荷によるタイムアウトが発生した場合は待機するほうが好ましい。ストレージ装置１０の故障の場合は、ＩＯは成功しないので、直ちにＩＯエラーとするほうが好ましい。
【００６０】
しかし、タイムアウトの原因が、パスであるか、或いはストレージ装置１０の高負荷であるか故障であるかを、サーバ２からは判断することができない。
そこで、本実施形態においては、ストレージ装置１０のタイムアウトテーブル１４に、１つのタイムアウト時間を設定する代わりに、先頭パス、中間パス、最終パスのそれぞれに対して個別にタイムアウト時間Ｔ１，Ｔ２，Ｔ３を設定する。その際、先頭パス、中間パス、最終パスのそれぞれのタイムアウト時間の間に、Ｔ１≧Ｔ２＞Ｔ３の関係が成立するように、それぞれのタイムアウト時間を設定する。
【００６１】
詳細には、先頭パスのタイムアウト時間Ｔ１は、パスの異常を考慮して短い値に設定して、パスを短時間で切り替える。
中間パスのタイムアウト時間Ｔ２は、２パス目以降でもストレージ装置１０に起因するタイムアウトの可能性を考慮して短い値に設定にする。これにより、ストレージ装置１０の高負荷時に、先頭パスと２パス目との合計時間応答を待機することになり、ＩＯエラーの発生を回避できる可能性が高くなる。ストレージ装置１０の故障の場合でも、タイムアウト時間が短く設定されるので、待ち時間全体を短縮することができる。
【００６２】
最終パスのタイムアウト時間Ｔ３は、高負荷状態を想定し、もう少し待機すればＩＯが成功する可能性があるのでＴ１，Ｔ２よりも長い値に設定する。
上限フィールド４７は、ストレージ装置１０，２０のタイムアウト時間の上限値を示す。
ＣＭ係数フィールド４３は、ストレージ装置１０が担当ＣＭ型の場合に、待機ＣＭを経由するパスにＩＯを発行する際に使用するＣＭ係数（≧１）を格納している。
【００６３】
ここで、ストレージ装置１０，２０には、各ＬＵＮに対する通常のアクセスパスが一方のＣＭ１１，２１に固定されているストレージ装置と、固定されていないストレージ装置とが存在する。このようにアクセスパスが固定されているストレージ装置を「担当ＣＭ型」、固定されていないストレージ装置を「非担当ＣＭ型」と呼ぶ。
担当ＣＭ型のストレージ装置１０，２０では、一方のＣＭ１１，２１に接続されたパスがアクティブ状態となり、他方のＣＭ１１，２１に接続されたパスは待機状態となる。通常のアクセスはアクティブ状態のパスのみが使用され、待機状態のパスは使用されない。アクティブ状態となるパスに接続されるＣＭを「担当ＣＭ」、待機状態となるパスに接続されるＣＭを「待機ＣＭ」と呼ぶ。
【００６４】
これに対し、非担当ＣＭ型のストレージ装置１０，２０では、全てのパスがアクティブ状態となり、通常アクセスに全パスが使用される。
このように、担当ＣＭ型のストレージ装置１０，２０では、ＣＭ１１，２１が担当ＣＭか待機ＣＭかによって性能に差が生じるため、タイムアウト時間についても、ＣＭ１１，２１が担当ＣＭか否かを考慮する。
【００６５】
この性能差はストレージ装置１０，２０毎に異なるが、予め既知の情報であるので、その性能差の割合に応じたＣＭ係数をＣＭ係数フィールド４３に格納する。
サーバ２は、アクセスするパスが担当ＣＭ経由か否かがわかる。このため、待機ＣＭにＩＯを発行するときは、後述するタイムアウトフィールド４４〜４６のタイムアウト時間にＣＭ係数を乗算して、担当ＣＭ経由のパスよりもタイムアウト時間を長めの値に設定する。
【００６６】
例えば、４パス構成を有し、うち２パスが担当ＣＭ１１に接続され、残り２パスが待機ＣＭ１１に接続され、ＳＳＤ１３−４にアクセスする場合を考える。
図４の５行目を参照すると、ＳＳＤでは、先頭パスのタイムアウト時間には１０秒、２パス目のタイムアウト時間には１５秒が使用される。
担当ＣＭ１１に接続されている先頭パス、２パス目いずれもＩＯエラーが発生した場合、非担当ＣＭ１１に接続されている３パス目が使用される。
【００６７】
このとき、待機ＣＭ側の３パス目のタイムアウト時間には、図４の中間パスのタイムアウト時間フィールド４５の値“１５”とＣＭ係数フィールド４３の値“１．４”とから、１５×１．４＝２１秒が設定される。最終パスである４パス目のタイムアウト時間は、２０×１．４＝２８秒であるが、上限フィールド４７の値“２５”を超えているので、上限値の２５秒が設定される。
【００６８】
サーバ２が起動されると、タイムアウトテーブル収集部５により、図２に示すサーバ側タイムアウトテーブル４が、サーバ２の不図示のメモリに確保される。初期状態のサーバ側タイムアウトテーブル４には、タイムアウト非対応のストレージ装置２０に使用されるデフォルトのタイムアウト時間である“４０”が全パスに対して設定される。
その後、ストレージ装置１０，２０が認識されると、タイムアウトテーブル収集部５は、ストレージ装置１０の認識時にｉｎｑｕｉｒｙコマンド等を使用してストレージ装置１０からタイムアウトテーブル１４を取得し、データをサーバ側タイムアウトテーブル４に追加する。
【００６９】
ここで、ｉｎｑｕｉｒｙコマンドとは、ＳＣＳＩ装置の種類と構成をＳＣＳＩ装置に問い合わせるために使用されるＳＣＳＩコマンドであり、その機能は公知であるため、ここでの説明を省略する。なお、マルチパスドライバ部３がほかのコマンドを使用してストレージ装置１０，２０に対して問い合わせを行なってもよい。
前述のように、このとき、タイムアウトテーブル収集部５は、例えば、ストレージ装置１０のモデル名、シリアル番号の情報を、サーバ側タイムアウトテーブル４に装置識別情報として追加する。例えば、タイムアウトテーブル収集部５により、サーバ側タイムアウトテーブル４に、図２に示すようなレコードが追加される。
【００７０】
例えば、その後別のストレージ装置（不図示）が認識されると、サーバ側タイムアウトテーブル４に図２に示すようなレコードが追加される。
又、前述のように、ストレージ装置１０側にもタイムアウトテーブル１４がそなえられている。
図５は、本実施形態の一例としてのストレージ装置１０側のタイムアウトテーブル１４を例示する図である。
【００７１】
タイムアウトテーブル１４は、ディスク種別１４２、ＣＭ係数１４３、先頭パスのタイムアウト時間１４４、中間パスのタイムアウト時間１４５、最終パスのタイムアウト時間１４６、及び上限１４７の各フィールドを有する。
ディスク種別フィールド１４２は、ストレージ装置１０内のディスクの種別を示す。例えば、ディスク種別フィールド１４２には、図５に示すように、“ＨＤＤ１００００”、“ＨＤＤ１５０００”、“ＳＳＤ”、“ＮＥＡＲＬＩＮＥ”などのディスクの性能や特性を表わす文字列が格納される。“ＨＤＤ１００００”は、回転速度が１０，０００ＲＰＭのＨＤＤを示し、“ＨＤＤ１５０００”は、回転速度が１５，０００ＲＰＭのＨＤＤを示す。“ＳＳＤ”はＳＳＤを示し、“ＮＥＡＲＬＩＮＥ”はニアラインを示す。
【００７２】
ＣＭ係数フィールド１４３は、ストレージ装置１０が担当ＣＭ型の場合に、待機ＣＭにＩＯを発行する際に使用するＣＭ係数を格納している。
先頭パスのタイムアウト時間フィールド１４４は、マルチパス環境の場合に先頭パスに使用するタイムアウト時間を格納している。
中間パスのタイムアウト時間フィールド１４５は、マルチパス環境の場合に先頭パスにおけるタイムアウト時間を格納している。
【００７３】
最終パスのタイムアウト時間フィールド１４６は、マルチパス環境の場合に最終パスに使用するタイムアウト時間を格納している。
上限フィールド１４７は、ストレージ装置１０の高負荷などの際に、ストレージ装置１０のタイムアウト時間を変更可能な範囲の上限値を示す。
上記のフィールド１４４〜１４７には、ストレージ装置１０の性能等の特性に合わせ、ストレージ装置１０の工場出荷時に最適な値がそれぞれ事前に設定されている。又、フィールド１４４〜１４７の各値は、後からオペレータ等が変更可能としてもよい。
【００７４】
図６は、本実施形態の一例としてのタイムアウト上限テーブル１６を例示する図である。
タイムアウトテーブル１６は、ディスク種別フィールド１６２と上限フィールド１６７とを有する。
ディスク種別フィールド１６２は、ストレージ装置１０内のディスクの種別を示す。例えば、ディスク種別フィールド１６２には、図６に示すように、“ＨＤＤ１００００”、“ＨＤＤ１５０００”、“ＳＳＤ”、“ＮＥＡＲＬＩＮＥ”などのディスクの性能や特性を表わす文字列が格納される。“ＨＤＤ１００００”は、回転速度が１０，０００ＲＰＭのＨＤＤを示し、“ＨＤＤ１５０００”は、回転速度が１５，０００ＲＰＭのＨＤＤを示す。“ＳＳＤ”はＳＳＤを示し、“ＮＥＡＲＬＩＮＥ”はニアラインを示す。
【００７５】
上限フィールド１６７は、ストレージ装置１０の高負荷などの際に、ストレージ装置１０のタイムアウト時間を変更可能な範囲の上限値を示す。
上記の上限フィールド１６７には、ストレージ装置１０の性能等の特性に合わせ、ストレージ装置１０の工場出荷時に最適な値が事前に設定されている。又、上限フィールド１６７は、後からオペレータ等が変更可能としてもよい。
【００７６】
なお、サーバ２において、マルチパスドライバ部３、タイムアウトテーブル収集部５、タイムアウト時間取得部６、及びＩＯ発行部８としての機能を実現するためのプログラムは、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置又は外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
【００７７】
又、ストレージ装置１０において、タイムアウト時間変更部１５としての機能を実現するためのプログラムは、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置又は外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
【００７８】
マルチパスドライバ部３、タイムアウトテーブル収集部５、タイムアウト時間取得部６、及びＩＯ発行部８としての機能を実現する際には、内部記憶装置（本実施形態ではサーバ２の不図示のＲＡＭやＲＯＭ）に格納されたプログラム（入出力プログラム）がコンピュータのマイクロプロセッサ（本実施形態ではサーバ２の不図示のＣＰＵ）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
【００７９】
又、タイムアウト時間変更部１５としての機能を実現する際には、内部記憶装置（本実施形態ではストレージ装置１０の不図示のＲＡＭやＲＯＭ）に格納されたプログラムがコンピュータのマイクロプロセッサ（本実施形態ではストレージ装置１０のＣＭ１１）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
【００８０】
なお、本実施形態において、コンピュータとは、ハードウェアとＯＳとを含む概念であり、ＯＳの制御の下で動作するハードウェアを意味している。又、ＯＳが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、ＣＰＵ等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえており、本実施形態においては、サーバ２及びＣＭ１１がコンピュータとしての機能を有しているのである。
【００８１】
（Ｂ）動作
次に、図７〜図９を参照して、ストレージシステム１の動作について説明する。
まず、図７を参照して、マルチパスドライバ部３の起動時の処理について説明する。
図７は、本実施形態の一例としての初期化処理を示すフローチャート（ステップＳＡ1からＳＡ１１，ＳＢ１，ＳＢ２）である。
【００８２】
ステップＳＡ１において、サーバ２が起動されて、マルチパスドライバ部３がロードされ、例えばサーバ２の不図示のメモリにサーバ側タイムアウトテーブル４が確保される。
次にステップＳＡ２において、マルチパスドライバ部３は、ストレージ装置１０，２０のＬＵＮの認識とマルチパスの構築とを行なう。このとき、マルチパスドライバ部３は、ストレージ装置１０，２０のディスク種別をｉｎｑｕｉｒｙコマンドなどで取得する。そして、ＬＵＮ情報７（図１参照）に、取得したディスク種別を記録する。
【００８３】
次に、タイムアウトテーブル収集部５は、以下のステップＳＡ３〜ＳＡ１１の処理を、サーバ２に接続されているストレージ装置１０，２０のそれぞれに対して実行する。
まず、ステップＳＡ４において、タイムアウトテーブル収集部５は、ストレージ装置１０，２０に、例えばｉｎｑｕｉｒｙコマンドを発行し、ストレージ装置１０，２０がタイムアウト対応かどうかを問い合わせる。
【００８４】
ステップＳＢ１において、ストレージ装置１０は、ｉｎｑｕｉｒｙコマンドの応答として、タイムアウト対応であることを示す情報を返す。一方、タイムアウト非対応のストレージ装置２０はこのような情報を返さない。
ステップＳＡ５において、タイムアウトテーブル収集部５は、ストレージ装置１０，２０からタイムアウト対応を示す応答が返されたかどうかを判定する。
【００８５】
タイムアウト対応を示す応答が返された場合（ステップＳＡ５のＹＥＳルート参照）、ステップＳＡ６において、タイムアウトテーブル収集部５は、タイムアウトテーブル１４を取得するためのコマンドをストレージ装置１０に対して発行する。
ステップＳＢ２において、ストレージ装置１０はサーバ２にタイムアウトテーブル１４を送信する。
【００８６】
ステップＳＡ７において、タイムアウトテーブル収集部５はストレージ装置１０からタイムアウトテーブル１４を受け取り、取得したタイムアウトテーブル１４のデータを、ステップＳＡ１で確保したサーバ側タイムアウトテーブル４に追加する。
次にステップＳＡ８において、タイムアウトテーブル収集部５は、ストレージ装置１０の各ＬＵＮに対しｉｎｑｕｉｒｙコマンドを発行し、装置名とディスク種別とを取得する。
【００８７】
ステップＳＡ９において、タイムアウトテーブル収集部５は、ステップＳＡ８で取得した装置名とディスク種別とをタイムアウトテーブル収集部５のＬＵＮ情報７に追加する。
一方、タイムアウト対応を示す応答が返されない場合（ステップＳＡ５のＮＯルート参照）、非対応のストレージ装置２０であるので、ステップＳＡ１０において、ストレージ装置２０にデフォルトのタイムアウト値を使うようにＬＵＮ情報７にフラグを立てる。
【００８８】
タイムアウトテーブル収集部５は、上記のステップＳＡ３〜ＳＡ１１の処理を、サーバ３に接続されている全ストレージ装置１０，２０に実行して、全ストレージ装置１０，２０の情報を取得する。
次に、図８を参照して、ＩＯ発行及び応答時の処理について説明する。
図８は、本実施形態の一例としてのＩＯ発行及び応答時の処理を示すフローチャート（ステップＳＣ１〜ＳＣ１６）である。
【００８９】
ステップＳＣ１において、タイムアウト時間取得部６は、ＩＯを発行しようとしているストレージ装置１０，２０が、タイムアウト対応ストレージ装置かどうかを判別する。その際、タイムアウト時間取得部６は、ＬＵＮ情報７に装置情報とディスク種別とが存在するかどうかを調べ、これらが存在する場合はタイムアウト対応ストレージ装置であると判定する。
【００９０】
タイムアウト対応ストレージ装置の場合（ステップＳＣ１のＹＥＳルート参照）、ステップＳＣ２において、タイムアウト時間取得部６は、サーバ側タイムアウトテーブル４を参照して、タイムアウト値を取得する。詳細には、タイムアウト時間取得部６は、ＬＵＮ情報７のストレージ装置１０及びＬＵＮのディスク１３の情報に基づいて、サーバ側タイムアウトテーブル４のレコードを参照する。例えば、ＩＯの発行先のＬＵＮが“Ｅ４０００−６Ａ０２９９”であり、ディスク種別が“ＳＳＤ”である場合、タイムアウト時間取得部６は、図４のサーバ側タイムアウトテーブル４を参照して、初回のＩＯのタイムアウト時間として“１０秒”を取得する。
【００９１】
一方、タイムアウトテーブル１４を持たず、外部からタイムアウト値を設定できないストレージ装置２０の場合（ステップＳＣ１のＮＯルート参照）、ステップＳＣ３において、タイムアウト時間取得部６は、デフォルト用のレコードを参照し、そのタイムアウト値を取得する。例えば、タイムアウト時間取得部６は、タイムアウト時間として“４０秒”を取得する。
【００９２】
次に、ステップＳＣ４において、タイムアウト時間取得部６は、ＩＯを発行可能なパスが他に存在するかどうかを確認する。
ＩＯを発行可能なパスが他に存在する場合（ステップＳＣ４のＹＥＳルート参照）、ステップＳＣ５において、タイムアウト時間取得部６は、ＩＯが初回かリトライかを判別する。
【００９３】
ＩＯが初回の場合（ステップＳＣ５のＹＥＳルート参照）、ステップＳＣ６において、タイムアウト時間取得部６は、ステップＳＣ２又はステップＳＣ３で参照したレコードの、先頭パスのタイムアウト時間をＩＯに設定する。前述のように、最初のＩＯを発行するときは、タイムアウト時間取得部６は、先頭パスの短いタイムアウト時間を使用する。このタイムアウト時間は、短いが、通常のＩＯ性能ではタイムアウトと誤検出しない程度に長い値である。
【００９４】
ＩＯがリトライの場合（ステップＳＣ５のＮＯルート参照）、ステップＳＣ７において、タイムアウト時間取得部６は、ステップＳＣ２又はステップＳＣ３で参照したレコードの、中間パスのタイムアウト時間をＩＯに設定する。このとき、ＩＯの発行先のパス３０が待機ＣＭ１１を経由するパスの場合、タイムアウトテーブル１４のＣＭ係数フィールド４７の値をタイムアウト時間に乗算する。
【００９５】
一方、ＳＣ４でＩＯを発行可能なパスが他にない、つまり最終パスの場合（ステップＳＣ４のＮＯルート参照）、ステップＳＣ８において、タイムアウト時間取得部６は、ＳＣ２又はＳＣ３で選択したレコードの、最終パスのタイムアウト値をＩＯに設定する。このときも、ＩＯの発行先のパス３０が待機ＣＭ１１を経由するパスの場合、タイムアウトテーブル１４のＣＭ係数フィールド４７の値をタイムアウト時間に乗算する。
【００９６】
ステップＳＣ９において、ＩＯ発行部８がＩＯを発行する。
ステップＳＣ１０において、ＩＯ発行部８は、ＩＯの応答が返され、タイムアウト以外のエラーが発生したかどうかを判定する。
タイムアウト以外のエラーの場合（ステップＳＣ１０のＹＥＳルート参照）、ステップＳＣ１１において、ＩＯ発行部８は、必要に応じてＩＯをリトライする。
【００９７】
一方、タイムアウトエラーの場合（ステップＳＣ１０のＮＯルート参照）、ステップＳＣ１２において、ＩＯ発行部８は、タイムアウトしたかどうかを判定する。
タイムアウトした場合（ステップＳＣ１２のＹＥＳルート参照）、ステップＳＣ１３において、ＩＯ発行部８は、代替パスがあり、かつ最大リトライ回数を超えていない（リトライアウトしていない）かどうかを判定する。
【００９８】
代替パスがあり、かつリトライ回数を超えていない場合（ステップＳＣ１３のＹＥＳルート参照）、ステップＳＣ１４において、ＩＯ発行部８は、パスを換えてＩＯをリトライするためにステップＳＣ４に戻る。
一方、ステップＳＣ１３で代替パスがないか、或いはリトライ回数を超えている場合（ステップＳＣ１３のＮＯルート参照）、ステップＳＣ１６において、ＩＯ発行部８は、ＩＯがエラー終了したと判定する。
【００９９】
ステップＳＣ１２でタイムアウトしていない場合（ステップＳＣ１２のＹＥＳルート参照）、ステップＳＣ１５において、ＩＯ発行部８はＩＯが正常終了したと判定する。
次に、図９を参照して、ディスク１３，２３のタイムアウト値が更新され、ストレージ装置１０，２０のタイムアウトテーブル１４が更新されたときの処理について説明する。
前述のように、タイムアウトテーブル１４の更新は、図７を参照して説明したストレージ装置１０の認識時以外にも行なわれることがある。このようなケースとして、ストレージ装置１０がファームアップされて性能が向上した場合などが挙げられる。
【０１００】
このような場合、ストレージ装置１０は、特定のｓｅｎｓｅ情報などを用いて、タイムアウトテーブル１４の更新をマルチパスドライバ部３に通知する。マルチパスドライバ部３はｉｎｑｕｉｒｙコマンド等を用いて、更新されたタイムアウトテーブル１４を取得し、サーバ側タイムアウトテーブル４を更新する。
図９は、本実施形態の一例としてのタイムアウト値の更新処理を示すフローチャート（ステップＳＤ１〜ＳＤ４，ＳＥ１〜ＳＥ６）である。
【０１０１】
ステップＳＤ１において、ストレージ装置１０のタイムアウト時間変更部１５は、ファームウェアの更新や、ディスク１３，２３の高負荷又は負荷の解消等を検出し、タイムアウトテーブル１４のタイムアウト値を変更する。
ステップＳＤ２において、タイムアウト時間変更部１５は、タイムアウト時間の更新をサーバ２に通知するためのｓｅｎｓｅをセット（準備）する。
【０１０２】
前述のように、ｓｅｎｓｅとは、ストレージ装置１０，２０が、サーバ２からのＩＯに対して、応答する際にサーバ２に通知するために用いられるメッセージである。このため、サーバ２からＩＯが発行されない限り、ストレージ装置１０のタイムアウト時間変更部１５がサーバ２にタイムアウトテーブル１４の更新を通知することはない。
ステップＳＥ１において、サーバ２のアプリケーション等から通常ＩＯが発行される。
【０１０３】
ステップＳＤ３において、ストレージ装置１０のタイムアウト時間変更部１５は、ステップＳＤ２で設定したｓｅｎｓｅをサーバＩＯに応答する。
ステップＳＥ２において、サーバ２のＩＯ発行部８は、ステップＳＥ１で発行したＩＯの応答と共にｓｅｎｓｅメッセージを受信する。
ステップＳＥ３において、サーバ２のＩＯ発行部８は、ＩＯが正常応答したと判定し、ＩＯの処理を終了する。
【０１０４】
ステップＳＥ４において、サーバ２のタイムアウトテーブル収集部５は、タイムアウトテーブル取得コマンドをストレージ装置１０に対して発行する。
ステップＳＤ４において、ストレージ装置１０のタイムアウト時間変更部１５は更新後のタイムアウトテーブル１４をサーバ２に送信する。
ステップＳＥ５において、サーバ２のタイムアウトテーブル収集部５は、タイムアウトテーブル１４を取得し、取得したタイムアウトテーブル１４を用いて、サーバ側タイムアウトテーブル４を更新する。
【０１０５】
ステップＳＥ６において、サーバ２のＩＯ発行部８は、更新されたタイムアウト値を使用してＩＯを発行する。
（Ｃ）変形例
（Ｃ−１）第１変形例
上記の実施形態においては、先頭パス、中間パス、最終パスのそれぞれに対して、タイムアウト時間を設定していた。
【０１０６】
しかし、上記の実施形態の第１の変形例として、図２〜図４に示した先頭パスと中間パスとを「代替パスありの場合」としてまとめて、処理を簡略化してもよい。
図１０に、先頭パスと中間パスとを「代替パスありの場合」としてまとめた場合のサーバ側タイムアウトテーブル２０４を示す。
図１０は、本実施形態の第１変形例におけるサーバ側タイムアウトテーブル２０４を例示する図である。
【０１０７】
サーバ側タイムアウトテーブル２０４は、上記の実施形態におけるサーバ側タイムアウトテーブル４の先頭パスのタイムアウト時間４４及び中間パスのタイムアウト時間４５に代えて、代替パスありの場合のタイムアウト時間フィールド４８を有する。
代替パスありの場合のタイムアウト時間フィールド４８は、マルチパス環境の場合に最終パス以外のパスに使用するタイムアウト時間を格納している。
【０１０８】
なお、サーバ側タイムアウトテーブル２０４のその他のフィールドについては前述の実施形態と同じであるため、その説明を省略する。
又、特に図示はしないが、上記の実施形態の第１の変形例においては、ストレージ装置１０側のタイムアウトテーブル１４も、タイムアウト時間フィールド１４４〜１４５に代えて、代替パスありの場合のタイムアウト時間フィールドを有する。
【０１０９】
タイムアウト時間取得部６は、サーバ側タイムアウトテーブル２０４を参照して、最終パス以外のパスに対しては、タイムアウト時間フィールド４８に設定されている値を設定してＩＯを発行する。最終パスの場合は、最終パスのタイムアウト時間フィールド４６に設定されている値を使用してＩＯを発行する。
（Ｃ−２）第２変形例
或いは、本実施形態の第２変形例として、タイムアウト時間取得部６が、図１０のサーバ側タイムアウトテーブル２０４を使用して、先頭パスにはタイムアウト時間フィールド４８に設定されている値を設定してＩＯを発行してもよい。そして、２パス目、３パス目…と少しずつ長めの値を設定していってもよい。
（Ｃ−３）第３変形例
或いは、本実施形態の第３変形例として、サーバ側タイムアウトテーブル４に複数のタイムアウト時間を設定する代わりに、サーバ側タイムアウトテーブル４のタイムアウト時間を１つだけにしてしてもよい。この場合、タイムアウト時間取得部６は、リトライ可能な残パス数に応じた係数（＞１）を掛けて、タイムアウト時間を短くしてもよい。この係数はマルチパスドライバ部３が独自に持ってもよい。
（Ｃ−４）第４変形例
或いは、本実施形態の第４変形例として、図１１に示すように、サーバ側タイムアウトテーブル２０４に、先頭パス、２パス目、…、Ｎパス目（Ｎは２以上の整数）と、全パスのタイムアウト時間を設定してもよい。
【０１１０】
図１１に、全てのパスのタイムアウト時間を設定したサーバ側タイムアウトテーブル３０４を示す。
図１１は、本実施形態の第４変形例におけるサーバ側タイムアウトテーブル３０４を例示する図である。
サーバ側タイムアウトテーブル３０４は、先頭パス、２パス目、…、Ｎパス目のそれぞれに対するタイムアウト時間フィールド４４、４５−１〜４５−（Ｎ−２）、４６を有する。
（Ｃ−５）第５変形例
又、ストレージ装置１０によっては、ＬＵＮが複数種類のストレージで構築されている場合もある。このような例として、ＬＵＮコンカチネーションやシンプロビジョニングがある。ＬＵＮコンカチネーションやシンプロビジョニングでは、１つのＬＵＮの中に複数のＲＡＩＤグループやディスク種別が混在している。
【０１１１】
そこで、本実施形態の第５変形例として、マルチパスドライバ部３が、ｉｎｑｕｉｒｙコマンドを用いてストレージ装置１０，２０からＬＵＮ単位のディスク種別と共に、論理ブロックアドレス（Logical Block Address：ＬＢＡ）範囲も取得する。そして、マルチパスドライバ部３は、取得したこれらの情報を、図１２に示すようなＬＵＮ管理テーブル５０に記憶する。このＬＵＮ管理テーブル５０はＬＵＮ毎に作成される。
【０１１２】
図１２は、実施形態の第５変形例におけるＬＵＮ管理テーブル５０を例示する図である。
ＬＵＮ管理テーブル５０は、装置識別情報フィールド５１、ディスク種別フィールド５２、開始ＬＢＡフィールド５３、及び終了ＬＢＡフィールド５４を有する。
装置識別情報フィールド５１は、ストレージ装置１０を識別する情報を示す。例えば、装置識別情報フィールド５１には、ストレージ装置１０のモデル名とシリアル番号とを連結した文字列が格納される。
【０１１３】
ディスク種別フィールド５２は、ストレージ装置１０内のディスクの種別を示す。例えば、ディスク種別フィールド５２には、“ＨＤＤ１００００”、“ＨＤＤ１５０００”、“ＳＳＤ”、“ＮＥＡＲＬＩＮＥ”などのディスクの性能や特性を表わす文字列が格納される。“ＨＤＤ１００００”は、回転速度が１０，０００ＲＰＭのＨＤＤを示し、“ＨＤＤ１５０００”は、回転速度が１５，０００ＲＰＭのＨＤＤを示す。“ＳＳＤ”はＳＳＤを示し、“ＮＥＡＲＬＩＮＥ”はニアラインを示す。
【０１１４】
開始ＬＢＡフィールド５３は、ディスク種別フィールド５２のディスクの先頭のＬＢＡを示す。
終了ＬＢＡフィールド５３は、ディスク種別フィールド５２のディスクの末尾のＬＢＡを示す。
そして、タイムアウト時間取得部６は、タイムアウトテーブル４とＬＵＮ管理テーブル５０とを参照して、ＩＯの発行位置によってタイムアウト時間を変更させる。
【０１１５】
例えば、図１２に示すＬＵＮは、１００００ＬＢＡ毎に２種類のディスク１３，２３でコンカチネーションされている例を示す。
この例の場合、タイムアウト時間取得部６は、ＬＢＡ０〜９９９９の範囲にＩＯアクセスする場合は、ＨＤＤ１５０００に設定されているタイムアウト値を使用する。一方、ＬＢＡ１００００〜１９９９９の範囲にアクセスがあった場合は、ＨＤＤ１００００に設定されているタイムアウト値を使用する。
【０１１６】
又、ＬＢＡ９９９９と１００００との間をまたぐＩＯの場合は、タイムアウト時間取得部６は、タイムアウト時間が長い方のＨＤＤ１００００に設定されているタイムアウト値を使用して、ＨＤＤ１００００が多少遅れてもタイムアウトが発生しないようにする。
（Ｄ）効果
前述の如く、本実施形態の一例及びその各変形例においては、マルチパス環境において代替パスが存在する場合、サーバからストレージ装置へのＩＯ発行時に短いタイムアウト時間を設定してＩＯを発行する。当該ＩＯでタイムアウトが発生した場合、パスを切り替えて前回よりも長いタイムアウト時間を設定してＩＯをリトライすることで、ＩＯの応答時間を短縮することができる。これにより、異常が発生したときエラー応答やパス切替が発生するまでの時間を短くでき、最終的にＩＯ応答時間を短縮することが可能となる。
【０１１７】
詳細には、本実施形態の一例及びその各変形例においては、ストレージ装置１０にディスク１３の種類や最適なＩＯタイムアウト時間の情報を予め記憶させておき、サーバ２がストレージ装置１０を認識した際にその情報がサーバ２に渡される。そして、マルチパスドライバ部３のタイムアウト時間取得部６は、ＩＯ発行時に、ストレージ装置１０から受け取ったタイムアウトテーブル１４に基づいて、最適なＩＯタイムアウト時間を取得する。これにより、マルチパスドライバ部３は、ストレージ装置１０のディスク１３の種別及び残りパス数を考慮して最適なＩＯタイムアウト時間を設定することができる。
【０１１８】
さらに、本実施形態の一例及びその各変形例においては、タイムアウトテーブル４，１４にＣＭ係数４３，１４３を持っているので、ストレージ装置１０のＣＭの性能（担当ＣＭか否か）を考慮して適切なタイムアウト時間を設定することができる。
なおさらに、本実施形態の一例及びその各変形例においては、ストレージ装置１０のタイムアウト時間変更部１５が高負荷や故障等を検出して、タイムアウトテーブル１４のタイムアウト時間を長めに設定する。これにより、ＩＯ応答時間を短縮することが可能となる。
【０１１９】
その際、タイムアウト時間変更部１５はｓｅｎｓｅを用いてサーバ２にタイムアウト値の変更を通知するため、ストレージ装置１０側でのタイムアウト値の更新時にネットワーク負荷が上昇するのを抑えることができる。
(Ｅ）その他
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
【０１２０】
例えば、上記の実施形態及びその各変形例においては、ｉｎｑｕｉｒｙコマンドを使用して、ストレージ装置１０，２０からタイムアウト対応／非対応の状況やタイムアウトテーブル１４を取得している。しかし、ほかのコマンドを使用してこれらの情報を取得してもよい。
或いは、上記の実施形態及びその各変形例においては、ＣＭが担当ＣＭ、非担当ＣＭかに応じてＣＭ係数を設定していたが、パスが、サーバ２からみて担当パスか非担当パスかに応じて「パス係数」を設定してもよい。
【０１２１】
又、上記の実施形態及びその各変形例においては、ストレージ装置１０のタイムアウト時間変更部１５がサーバ２に対してｓｅｎｓｅを用いてタイムアウトテーブル１４が更新された旨を通知していた。しかし、ほかの手法を用いて更新の通知を行なってもよい。又、ストレージ装置１０がタイムアウトテーブル１４を更新すると直ちに、ストレージ装置１０はサーバ２にタイムアウトテーブル１４を送信してもよい。
（Ｆ）付記
以上の実施形態に関し、更に以下の付記を開示する。
【０１２２】
（付記１）
ストレージ装置と複数の経路を介して接続され、
前記複数の経路の各経路のタイムアウト時間に関する管理情報を記憶する記憶部と、
前記ストレージ装置に対する入出力の発行先の経路及び他の経路について、前記記憶部から該経路に応じたタイムアウト時間を取得する取得部と、
をそなえることを特徴とする情報処理装置。
【０１２３】
（付記２）
前記管理情報を収集し、前記記憶部に記憶する収集部と、
前記取得部によって取得されたタイムアウト時間を用いて前記ストレージ装置に対して入出力を発行する発行部と、をそなえることを特徴とする付記１記載の情報処理装置。
（付記３）
前記収集部は、前記複数の経路に対する複数の入出力タイムアウト時間を前記管理情報として前記ストレージ装置から収集し、
前記取得部は、前記複数の経路のうちの第１の経路に対する第１の入出力タイムアウト時間を取得し、
前記第１の経路への前記入出力でタイムアウトエラーが発生した場合に、前記複数の経路のうちの前記第１の経路とは異なる第２の経路に対する、前記第１の入出力タイムアウト時間よりも長い第２の入出力タイムアウト時間を取得することを特徴とする付記２記載の情報処理装置。
【０１２４】
（付記４）
前記第１の入出力タイムアウト時間は前記複数の経路のうちの最終経路以外の経路に対するタイムアウト時間であり、
前記第２の入出力タイムアウト時間は前記複数の経路のうちの最終経路に対するタイムアウト時間であることを特徴とする付記３記載の情報処理装置。
【０１２５】
（付記５）
前記取得部は、前記第１の経路への前記入出力でタイムアウトエラーが発生した場合に、前記第２の経路に前記入出力を発行する前に、前記複数の経路のうちの前記第１及び第２の経路とは異なる第３の経路に対する、前記第１の入出力タイムアウト時間よりも長く前記第２の入出力タイムアウト時間よりも短い第３の入出力タイムアウト時間を取得することを特徴とする付記４記載の情報処理装置。
【０１２６】
（付記６）
前記収集部は、前記ストレージ装置において前記複数の入出力タイムアウト時間が変更されると、変更後の前記複数の入出力タイムアウト時間を前記管理情報として収集することを特徴とする付記２〜５のいずれか１項に記載の情報処理装置。
（付記７）
情報処理装置と複数の経路を介して接続され、
前記複数の経路に対する複数の入出力タイムアウト時間を格納している格納部と、
前記情報処理装置から前記複数の入出力タイムアウト時間を要求されると、前記情報処理装置に前記複数の入出力タイムアウト時間を送信する送信部と、
をそなえることを特徴とするストレージ装置。
【０１２７】
（付記８）
前記複数の経路の状況に応じて前記複数の入出力タイムアウト時間を変更する変更部をさらにそなえ、
前記送信部は、前記情報処理装置から入出力を受けると、前記変更部によって変更された前記複数の入出力タイムアウト時間を前記情報処理装置に送信することを特徴とする付記７記載のストレージ装置。
【０１２８】
（付記９）
情報処理装置と、
前記情報処理装置と複数の経路を介して接続されたストレージ装置と、
前記複数の経路の各経路のタイムアウト時間に関する管理情報を記憶する記憶部と、
前記情報処理装置から前記ストレージ装置に対する入出力の発行先の経路及び他の経路について、前記記憶部から該経路に応じたタイムアウト時間を取得する取得部と、
をそなえることを特徴とする情報処理システム。
【０１２９】
（付記１０）
前記管理情報を収集し、前記記憶部に記憶する収集部と、
前記取得部によって取得されたタイムアウト時間を用いて前記情報処理装置から前記ストレージ装置に対して入出力を発行する発行部と、をそなえることを特徴とする付記９記載の情報処理システム。
【０１３０】
（付記１１）
前記収集部は、前記複数の経路に対する複数の入出力タイムアウト時間を前記管理情報として前記ストレージ装置から収集し、
前記取得部は、前記複数の経路のうちの第１の経路に対する第１の入出力タイムアウト時間を取得し、
前記第１の経路への前記入出力でタイムアウトエラーが発生した場合に、前記複数の経路のうちの前記第１の経路とは異なる第２の経路に対する、前記第１の入出力タイムアウト時間よりも長い第２の入出力タイムアウト時間を取得することを特徴とする付記１０記載の情報処理システム。
【０１３１】
（付記１２）
前記第１の入出力タイムアウト時間は前記複数の経路のうちの最終経路以外の経路に対するタイムアウト時間であり、
前記第２の入出力タイムアウト時間は前記複数の経路のうちの最終経路に対するタイムアウト時間であることを特徴とする付記１１記載の情報処理システム。
【０１３２】
（付記１３）
前記取得部は、前記第１の経路への前記入出力でタイムアウトエラーが発生した場合に、前記第２の経路に前記入出力を発行する前に、前記複数の経路のうちの前記第１及び第２の経路とは異なる第３の経路に対する、前記第１の入出力タイムアウト時間よりも長く前記第２の入出力タイムアウト時間よりも短い第３の入出力タイムアウト時間を取得することを特徴とする付記１２記載の情報処理システム。
【０１３３】
（付記１４）
前記収集部は、前記ストレージ装置において前記複数の入出力タイムアウト時間が変更されると、変更後の前記複数の入出力タイムアウト時間を前記管理情報として収集することを特徴とする付記１０〜１３のいずれか１項に記載の情報処理システム。
（付記１５）
情報処理装置に複数の経路を介して接続されたストレージ装置における入出力方法であって、
前記複数の経路の各経路のタイムアウト時間に関する管理情報を記憶し、
前記ストレージ装置に対する入出力の発行先の経路及び他の経路について、前記記憶部から該経路に応じたタイムアウト時間を取得することを特徴とする入出力方法。
【０１３４】
（付記１６）
情報処理装置に複数の経路を介して接続されたストレージ装置における入出力プログラムであって、
前記複数の経路の各経路のタイムアウト時間に関する管理情報を記憶し、
前記ストレージ装置に対する入出力の発行先の経路及び他の経路について、前記記憶部から該経路に応じたタイムアウト時間を取得する
処理を前記情報処理装置に実行させることを特徴とする入出力プログラム。
【符号の説明】
【０１３５】
１                            ストレージシステム（情報処理システム）
１０                  ストレージ装置
１１−１，１１−２（１１）    ＣＭ（送信部）
１２−１〜１２−４（１２）    ＣＡ
１３−１〜１３−４（１３）    ディスク
１４                          タイムアウトテーブル（格納部）
１５                          タイムアウト時間変更部（変更部）
１６                          タイムアウト上限テーブル
２                            サーバ（情報処理装置）
２０                          ストレージ装置
３                            マルチパスドライバ部
３０−１〜３０−６（３０）    パス（経路）
４                            サーバ側タイムアウトテーブル（記憶部）
５                            タイムアウトテーブル収集部（収集部）
５０                          ＬＵＮ管理テーブル
６                            タイムアウト時間取得部（取得部）
７                            ＬＵＮ情報
８                            ＩＯ発行部（発行部）
【図１】
2014120125.tif 000003
【図２】
2014120125.tif 000004
【図３】
2014120125.tif 000005
【図４】
2014120125.tif 000006
【図５】
2014120125.tif 000007
【図６】
2014120125.tif 000008
【図７】
2014120125.tif 000009
【図８】
2014120125.tif 000010
【図９】
2014120125.tif 000011
【図１０】
2014120125.tif 000012
【図１１】
2014120125.tif 000013
【図１２】
2014120125.tif 000014
【図１３】
2014120125.tif 000015