(57)【要約】【課題】  インタミッテント障害の発生状態に応じてパスの切換を促し、ストレージシステムの応答性が低下等するのを防止する。【解決手段】    ホスト１がパスＰ１を用いてストレージ装置２と通信を行う場合において、パスＰ１上に通信タイムアウト等のインタミッテント障害が所定の閾値以上発生したとする。この場合、コントローラ３は、ホスト１からのアクセスへの応答として、ハードウェアエラー応答を返す。ストレージ装置２からのハードウェアエラー応答を受信すると、パス制御部１Ｂは、インタミッテント障害の検出されたパスＰ１（切換元パス）から、他の正常なパスＰ２（切換先パス）に切り換えて、コマンドアクセスを再度試みる。このように、インタミッテント障害の発生状態に応じて、通信パスを切り換えをホスト１に促すことができ、ストレージ装置２の応答性を維持することができる。【選択図】        図１
2006107151.tif 000002
【特許請求の範囲】
【請求項１】
複数の上位装置と、これら各上位装置と複数の通信パスを介してそれぞれ接続可能なストレージ装置とを備えたストレージシステムであって、
前記各上位装置と前記ストレージ装置との通信状態をそれぞれ監視するための通信状態監視部と、
少なくとも前記通信状態監視部により検出された前記各通信状態に基づいて、所定の軽度障害が発生したか否かを検知する障害検知部と、
前記障害検知部により検知された前記所定の軽度障害の発生状態に基づいて、通信パスの切換を要求する切換要求信号を出力する切換指示部と、
前記切換指示部からの前記切換要求信号に基づいて、使用する通信パスを選択するパス制御部と、を備えたストレージシステム。
【請求項２】
前記各上位装置は、前記ストレージ装置の通信ポートを共有可能であり、前記障害検知部は、前記各上位装置により共有された通信ポートについて前記所定の軽度障害が発生したか否かを検知するようになっている請求項１に記載のストレージシステム。
【請求項３】
前記所定の軽度障害とは、通信復旧の可能性を有する一時的な障害である請求項１に記載のストレージシステム。
【請求項４】
前記所定の軽度障害には、少なくとも通信タイムアウト状態が含まれている請求項１に記載のストレージシステム。
【請求項５】
前記障害検知部は、前記上位装置から所定のコマンドが発行された場合、または前記ストレージ装置内に所定の状態が検出された場合に、前記所定の軽度障害が発生したと判定する請求項１に記載のストレージシステム。
【請求項６】
前記障害検知部は、前記上位装置から処理中止コマンドまたはリセットコマンドの少なくともいずれか一方が発行された場合、または、前記ストレージ装置側で通信タイムアウト状態または通信信号の異常状態の少なくともいずれか一方が検出された場合に、前記所定の軽度障害が発生したと判定する請求項１に記載のストレージシステム。
【請求項７】
前記切換指示部は、前記上位装置からのアクセスに応じて、前記切換要求信号を出力する請求項１に記載のストレージシステム。
【請求項８】
前記切換指示部は、前記上位装置からのライトアクセスまたはリードアクセスに応じて、前記切換要求信号を出力し、前記上位装置からの状態問合せアクセスについては前記切換要求信号を出力しないようになっている請求項１に記載のストレージシステム。
【請求項９】
前記切換要求信号は、前記所定の軽度障害に関わる上位装置に対してのみ影響を与える信号である請求項１に記載のストレージシステム。
【請求項１０】
前記切換要求信号は、ハードウェアエラー応答である請求項１に記載のストレージシステム。
【請求項１１】
前記通信状態監視部と、前記障害検知部と、前記切換指示部とは、前記ストレージ装置内に設けられ、前記パス制御部は前記上位装置内に設けられている請求項１に記載のストレージシステム。
【請求項１２】
前記パス制御部は、前記上位装置と前記ストレージ装置との間に設けられた中継装置内に設けられている請求項１に記載のストレージシステム。
【請求項１３】
前記障害検知部は、前記上位装置内または前記中継装置内のいずれか一方に設けられている請求項１に記載のストレージシステム。
【請求項１４】
前記所定の軽度障害の種類毎にそれぞれ予め閾値が対応付けられており、前記切換指示部は、前記所定の軽度障害の種類毎にその発生回数をそれぞれ検出し、前記所定の軽度障害の種類のうちいずれか一つの所定の軽度障害の発生回数が、その閾値に達した場合は、前記切換要求信号を出力する請求項１に記載のストレージシステム。
【請求項１５】
前記パス制御部は、前記切換要求信号を検出した場合に、利用可能な通信パスが存在するか否かを判定し、利用可能な通信パスが存在すると判定したときに、その利用可能な通信パスを選択する請求項１に記載のストレージシステム。
【請求項１６】
前記パス制御部は、前記切換要求信号を検出した場合に、前記切換要求信号を前回検出したときに切り換えられた切換元の通信パスが存在するか否かを判定し、前記切換要求信号の検出によって切り換えられた切換元の通信パスが存在すると判定したとき、この切換元の通信パスを選択する請求項１に記載のストレージシステム。
【請求項１７】
複数の上位装置と複数の通信パスを介してそれぞれ接続可能なストレージ装置を備え、前記ストレージ装置の通信ポートを前記各上位装置が共有可能なストレージシステムの通信パスを制御するための制御方法であって、
前記各上位装置と前記ストレージ装置との通信状態をそれぞれ監視する監視ステップと、
前記検出された前記各通信状態に基づいて、所定の軽度障害が発生したか否かを検知する障害検知ステップと、
前記検知された前記所定の軽度障害の発生状態に基づいて、通信パスの切換を要求する切換要求信号を出力させる切換指示ステップと、
前記切換要求信号に基づいて、前記複数の通信パスのうち使用する通信パスを選択するパス選択ステップと、を含むストレージシステムの通信パス制御方法。
【請求項１８】
前記切換指示ステップは、前記所定の軽度障害に係る上位装置から前記ストレージ装置へのアクセスが発生したか否かを判定する判定ステップと、前記アクセスが発生したと判定された場合は前記上位装置に対して前記切換要求信号を出力させるステップと、を含んでいる請求項１７に記載のストレージシステムの通信パス制御方法。
【請求項１９】
前記切換要求信号を出力させるステップは、前記上位装置から前記ストレージ装置へのアクセスがライトアクセスまたはリードアクセスのいずれか一方である場合に、前記アクセス元の上位装置に対し前記切換要求信号を出力させる請求項１７に記載のストレージシステムの通信パス制御方法。
【請求項２０】
さらに、前記各上位装置と前記ストレージ装置との通信を中継する中継装置を備えており、前記パス選択ステップは、前記上位装置内または前記中継装置内の少なくともいずれか一方において、前記使用する通信パスを選択する請求項１７に記載のストレージシステムの通信パス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム及びストレージシステムの通信パス制御方法に関するものである。
【背景技術】
【０００２】
ストレージシステムは、それぞれ少なくとも一つ以上のホストコンピュータ（以下、「ホスト」）及びストレージ装置を備えており、ホストとストレージ装置とは、例えば、通信ケーブルやスイッチ等を介して接続される。ストレージ装置は、例えば、ハードディスクドライブ等のディスクドライブをアレイ状に配設し、RAID（Redundant Arrays of Inexpensive Disks）に基づく記憶領域を提供する。ホストは、ストレージ装置により提供される論理的な記憶領域にアクセスし、データの読み書きを行う。
【０００３】
ところで、ストレージシステムでは、高可用性を実現するために、データを冗長記憶したり、複数の通信パスを用意している。もしも、通信パスに障害が発生した場合は、この障害を検出して自動的に予備の通信パスに切り換えるようにしたストレージシステムも知られている（特許文献１）。
【特許文献１】特開２００２−２７８９０９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記文献に記載の技術は、ファブリックスイッチやストレージ装置の状態を管理するための管理パスを冗長化して自動的に切り換えるものであり、データ入出力に用いるＩ／Ｏネットワークの通信パスを制御するものではないが、管理パスに障害を検知した場合は、予備の管理パスに切り換える。
【０００５】
しかし、障害には様々な種類が存在し、大きく分けて２種類の障害が存在する。一つの種類の障害は、その障害が比較的長期間にわたって発生する連続的な障害（ソリッド障害）である。他の一つの種類は、その障害が比較的短時間で発生する一時的なまたは間欠的な障害（intermittent failure：インタミッテント障害）である。
【０００６】
例えば、機器の故障やケーブルの断線等のソリッド障害の場合は、その通信不能状態が長期間継続するため、他の正常な通信パスに切り換えても良い。しかし、インタミッテント障害の場合は、短時間後に機能を回復するため、他の通信パスに切り換える必要は必ずしもなく、機能の回復を待てばよい。一時的現象であるインタミッテント障害が発生するたびにパスを切り換えたのでは、頻繁なパス切換が行われることになり、ストレージシステム全体の性能が低下する。
【０００７】
しかし、インタミッテント障害の場合であっても、例えば、このインタミッテント障害が長期間継続する場合、ホストは、インタミッテント障害が発生している期間、ストレージ装置との間で正常なデータ入出力を行うことができない。従って、ホストが、クライアント端末に提供する情報処理サービスに影響を生じる場合がある。
【０００８】
また、ストレージ装置等の通信ポートを複数のホストが共有する場合、ポートを共有するあるホストとストレージ装置との間でインタミッテント障害が発生すると、そのポートを共有する他のホストへのストレージサービスに影響を生じることがある。
【０００９】
上記文献に記載の従来技術では、ソリッド障害の場合のみを考慮しており、パスが切り換えられないインタミッテント障害については、何ら考慮されていないため、インタミッテント障害が長時間継続する場合や、ストレージ装置のポートが共有されている場合の不具合に対応することができない。
【００１０】
そこで、本発明の一つの目的は、軽度障害であっても、その発生状態に応じて通信パスを切り換えることができるようにしたストレージシステム及びストレージシステムの通信パス制御方法を提供することにある。本発明の一つの目的は、軽度障害に起因して通信パスを切り換える場合に、その障害に関係する上位装置にのみパスの切換を促すことができるようにしたストレージシステム及びストレージシステムの通信パス制御方法を提供することにある。本発明の一つの目的は、比較的簡易な構成で、軽度障害の発生状態に応じて通信パスを切り換えることができるようにしたストレージシステム及びストレージシステムの通信パス制御方法を提供することにある。本発明の更なる目的は、後述する実施形態の記載から明らかになるであろう。
【課題を解決するための手段】
【００１１】
上記課題を解決すべく、本発明に係るストレージシステムは、複数の上位装置と、これら各上位装置と複数の通信パスを介してそれぞれ接続可能なストレージ装置とを備えており、さらに、各上位装置とストレージ装置との通信状態をそれぞれ監視するための通信状態監視部と、少なくとも通信状態監視部により検出された各通信状態に基づいて、所定の軽度障害が発生したか否かを検知する障害検知部と、障害検知部により検知された所定の軽度障害の発生状態に基づいて、通信パスの切換を要求する切換要求信号を出力する切換指示部と、切換指示部からの切換要求信号に基づいて、使用する通信パスを選択するパス制御部と、を備える。
【００１２】
ここで、各上位装置は、ストレージ装置の通信ポートを共有可能であり、障害検知部は、各上位装置により共有された通信ポートについて所定の軽度障害が発生したか否かを検知するように構成可能である。所定の軽度障害とは、例えば、通信復旧の可能性を有する一時的な障害であり、少なくとも通信タイムアウト状態を含めることができる。
【００１３】
障害検知部は、上位装置から所定のコマンドが発行された場合、または、ストレージ装置内に所定の状態が検出された場合に、所定の軽度障害が発生したと判定可能である。例えば、障害検知部は、上位装置から処理中止コマンドまたはリセットコマンドの少なくともいずれか一方が発行された場合、または、ストレージ装置側で通信タイムアウト状態または通信信号の異常状態の少なくともいずれか一方が検出された場合に、所定の軽度障害が発生したと判定することができる。
【００１４】
切換指示部は、上位装置からのアクセスに応じて、切換要求信号を出力可能である。例えば、切換指示部は、上位装置からのライトアクセスまたはリードアクセスに応じて、切換要求信号を出力し、上位装置からの状態問合せアクセスについては切換要求信号を出力しないように構成可能である。
【００１５】
ここで、切換要求信号は、所定の軽度障害に関わる上位装置に対してのみ影響を与える信号として構成できる。その一つの例として、ハードウェアエラー応答を切換要求信号として用いることができる。
【００１６】
切換指示部は、所定の軽度障害の種類に応じて、切換要求信号を出力するように構成することができる。例えば、所定の軽度障害の種類毎にそれぞれ予め閾値を対応付けておき、切換指示部は、所定の軽度障害の種類毎にその発生回数をそれぞれ検出し、所定の軽度障害の種類のうちいずれか一つの所定の軽度障害の発生回数が、その閾値に達した場合は、切換要求信号を出力することができる。
【００１７】
パス制御部は、切換要求信号を検出した場合に、利用可能な通信パスが存在するか否かを判定し、利用可能な通信パスが存在すると判定したときに、その利用可能な通信パスを選択することができる。あるいは、パス制御部は、切換要求信号を検出した場合に、切換要求信号を前回検出したときに切り換えられた切換元の通信パスが存在するか否かを判定し、切換要求信号の検出によって切り換えられた切換元の通信パスが存在すると判定したとき、この切換元の通信パスを選択することもできる。
【００１８】
通信状態監視部と、障害検知部と、切換指示部とは、ストレージ装置内に設けることができ、パス制御部は上位装置内に設けることができる。パス制御部は、上位装置とストレージ装置との間に設けられた中継装置内に設けることができる。障害検知部は、上位装置内または中継装置内のいずれか一方に設けることができる。
【００１９】
本発明の他の観点に従うストレージシステムの通信パス制御方法は、複数の上位装置と複数の通信パスを介してそれぞれ接続可能なストレージ装置を備え、ストレージ装置の通信ポートを各上位装置が共有可能なストレージシステムの通信パスを制御するための制御方法であって、各上位装置とストレージ装置との通信状態をそれぞれ監視する監視ステップと、検出された各通信状態に基づいて、所定の軽度障害が発生したか否かを検知する障害検知ステップと、検知された所定の軽度障害の発生状態に基づいて、通信パスの切換を要求する切換要求信号を出力させる切換指示ステップと、切換要求信号に基づいて、複数の通信パスのうち使用する通信パスを選択するパス選択ステップと、を含む。
【００２０】
本発明のさらに別の観点に従うストレージ装置は、少なくとも一つの上位装置と複数の通信パスを介して接続可能なストレージ装置であって、前記上位装置との間の通信を制御する上位インターフェース制御部と、前記上位装置により利用されるデータを格納する記憶デバイス群との間の通信を制御する下位インターフェース制御部と、を備え、前記上位インターフェース制御部は、前記上位装置との間の通信状態を監視する通信状態監視部と、前記検出された通信状態に基づいて、予め設定されている所定の軽度障害が発生したか否かを検知する障害検知部と、前記検知された所定の軽度障害の発生状態に基づいて、前記上位装置に対して通信パスの切換を要求するための切換要求信号を出力する切換指示部と、を備える。
【００２１】
さらに別の観点に従うストレージ装置は、少なくとも一つの上位装置と複数の通信パスを介して接続可能なストレージ装置であって、前記上位装置との間の通信を制御する上位インターフェース制御部と、前記上位装置により利用されるデータを格納する記憶デバイス群との間の通信を制御する下位インターフェース制御部と、前記上位インターフェース制御部及び前記下位インターフェース制御部とにより共有されるメモリと、を備え、前記上位インターフェース制御部により実現され、前記上位装置との間の通信状態を監視する通信状態監視部と、前記上位インターフェース制御部により実現され、前記検出された通信状態に基づいて、予め設定されている所定の軽度障害の種類毎にその発生回数をそれぞれカウントして前記メモリに記憶させる障害検知部と、前記上位インターフェース制御部により実現され、前記メモリに記憶された前記各種類の所定の軽度障害の発生回数が、予めそれぞれ設定された閾値に達したか否かを判定し、閾値に達した場合は、前記上位装置に対してハードウェアエラー応答を返すためのフラグ情報を前記メモリに記憶させる切換指示部と、前記上位インターフェース制御部により実現され、前記上位装置からライトアクセスまたはリードアクセスのいずれかを受信した場合に、前記メモリを参照して前記フラグ情報が記憶されているか否かを判定し、前記フラグ情報が記憶されている場合には、前記上位装置に対して前記ハードウェアエラー応答を返信するアクセス処理部と、を備えている。
【００２２】
本発明の手段、機能、ステップの少なくとも一部は、マイクロコンピュータにより読み込まれて実行されるコンピュータプログラムとして構成できる場合がある。このようなコンピュータプログラムは、例えば、ハードディスクや光ディスク等のような記憶媒体に固定して流通させることができる。または、インターネット等のような通信ネットワークを介して、コンピュータプログラムを供給することもできる。
【発明を実施するための最良の形態】
【００２３】
以下、図面に基づき、本発明の実施の形態を説明する。図１は、本実施形態の全体概念を示す説明図である。本実施形態のストレージシステムは、例えば、複数のホスト１と、少なくとも一つ以上のストレージ装置２と、ホスト１とストレージ装置２とを接続する通信ネットワーク５を備えて構成可能である。
【００２４】
ホスト１は、例えば、アプリケーションプログラム１Ａと、パス制御部１Ｂと、複数の通信部１Ｃとを備えることができる。アプリケーションプログラム１Ａは、例えば、電子メール処理プログラムやデータベース管理プログラムである。パス制御部１Ｂは、例えば、パス制御プログラムとして構成されるもので、複数の通信部１Ｃのうちいずれの通信部１Ｃを用いてストレージ装置２との間のデータ通信を制御する。通信部１Ｃは、例えば、ＦＣ（Fibre Channel）等の所定のプロトコルに基づいて、データ送受信を行う。
【００２５】
ホスト１は、例えば、いわゆるオープン系ホストとメインフレーム系ホストとに大別できる。オープン系ホストとしては、例えば、Windows（登録商標）やUNIX（登録商標）等の汎用的なOS（Operating System）を搭載し、ＦＣ（Fibre Channel）、iSCSI（Internet SCSI）、TCP/IP（Transmission Control Protocol/Internet Protocol）等の比較的汎用性のある通信プロトコルを介してストレージ装置２にアクセスするサーバマシンを挙げることができる。メインフレーム系ホストとしては、例えば、FICON（Fibre Connection：登録商標）、ESCON（Enterprise System Connection：登録商標）、ACONARC（Advanced Connection Architecture：登録商標）、FIBARC（Fibre Connection Architecture：登録商標）等の通信プロトコルを介してストレージ装置２にアクセスするメインフレームマシンを挙げることができる。
【００２６】
ホスト１とストレージ装置２とは、通信ネットワーク５を介して接続されている。通信ネットワーク５は、例えば、複数のスイッチ６等によってファブリックに構成することができる。
【００２７】
ストレージ装置２は、例えば、それぞれ少なくとも一つのコントローラ３及びボリューム４を備えて構成することができる。コントローラ３は、ストレージ装置２の動作を制御するもので、ホスト１からのライトアクセスやリードアクセス、状態問合せ等に応じて、所定の処理を実行し、その結果を応答する。
【００２８】
コントローラ３は、例えば、複数の通信部３Ａと、通信状態監視部３Ｂと、軽度障害検知部３Ｃと、切換指示部３Ｄ及び軽度障害管理テーブル３Ｅとを備えることができる。通信部３Ａは、ホスト１の通信部１Ｃとのデータ送受信を行う。通信状態監視部３Ｂは、通信部３Ａの通信状態を監視する。軽度障害検知部３Ｃは、通信状態監視部３Ｂの監視結果に基づいて、予め設定されている所定の軽度障害が発生した否かを検知する。
【００２９】
軽度障害管理テーブル３Ｅには、複数種類の軽度障害について、それぞれの発生回数及び閾値が対応付けられている。軽度障害検知部３Ｃは、軽度障害の発生を検知すると、軽度障害管理テーブル３Ｅの発生回数を更新させる。切換指示部３Ｄは、軽度障害が閾値に達した場合に、ホスト１に対して、現在使用中の通信パスを他の通信パスに切り換えさせるための切換要求信号を出力する。
【００３０】
ここで、軽度障害とは、例えば、所定時間以上通信が途絶えた場合（通信タイムアウト状態）、通信タイムアウトに起因してホスト１からコマンド処理の中止が要求された場合（アボート要求）、ホスト１からリセットコマンドが発行された場合（リセット要求）、通信信号に異常が生じた場合、ストレージ装置２の応答性が低下した場合等を挙げることができる。
【００３１】
各種類の障害は、それぞれの重要性に応じて、異なる閾値が設定されている。例えば、アボート要求の場合はその閾値を低めに設定することができ、リセット要求の場合はアボート要求のそれよりも高めに設定することができる。また、これらの閾値は、ホスト１毎にそれぞれ変えることも可能である。例えば、優先の高いホストと優先度の低いホストとでは、同一種類の軽度障害であっても、それぞれ異なる閾値を設定可能である。
【００３２】
切換指示部３Ｄは、ある種類の軽度障害の発生回数が閾値に達した場合に、その軽度障害が発生しているホスト１に対し、積極的に又は消極的に切換要求信号を出力する。積極的に切換要求信号を出力するとは、例えば、軽度障害の発生回数が閾値に達した時に、明示の切換要求信号をホスト１に送信するような場合を意味する。消極的に切換要求信号を出力するとは、例えば、軽度障害の発生回数が閾値に達した後、ホスト１からのアクセスを待ち、そのアクセスに対する応答として、パスの切換を促す信号を出力するような場合を意味する。なお、切換要求信号は、電圧や電流あるいは光の強弱等のような物理量の変化に限らず、コマンドやデータ等の情報によっても実現可能である。
【００３３】
本実施形態では、既存の構成を利用して、軽度障害の発生に関わるホスト１にのみパスの切換を要求すべく、ハードウェアエラー応答を切換要求信号として採用する。ハードウェアエラー応答とは、ハードウェアに何らかのエラーが生じていることを示す状態であり、ホスト１のパス制御部１Ｂは、ハードウェアエラー応答を検出すると、パスの切換を行うようになっている。
【００３４】
例えば、ホスト１がパスＰ１を用いてストレージ装置２とデータ通信を行っていた場合において、パスＰ１上に通信タイムアウト等のインタミッテント障害が所定の閾値以上発生したとする。この場合、コントローラ３は、ホスト１からのライトアクセスやリードアクセスへの応答として、ハードウェアエラー応答を返す。このハードウェアエラー応答を受信すると、パス制御部１Ｂは、インタミッテント障害の検出されたパスＰ１（切換元パス）から、他の正常なパスＰ２（切換先パス）に切り換えて、コマンドアクセスを再度試みる。
【００３５】
もしも、パスＰ２に所定の閾値以上のインタミッテント障害が発生し、ストレージ装置２がハードウェアエラー応答をホスト１に返した場合、パス制御部１Ｂは、例えば、以下に述べる複数種類の方法でパスを制御することができる。例えば、第１の方法として、パス制御部１Ｂは、パスＰ１，Ｐ２以外の他の正常なパスが存在するか否かを判定し、正常な（未使用の）パスが存在する場合は、このパスに切り換えることができる。また、例えば、第２の方法として、パス制御部１Ｂは、ハードウェアエラー応答を検出した場合でも、パスＰ２をそのまま継続して使用することもできる。さらに、例えば、第３の方法として、パス制御部１Ｂは、切換先パスＰ２から切換元パスＰ１に戻すこともできる。なお、これらの各切換方法（切換モード）を組み合わせて用いることもできるし、予め設定された運用ポリシー等に応じて、使い分けることもできる。
【００３６】
また、後述の実施例からも明らかなように、インタミッテント障害の検知やパスの切換制御等は、インテリジェント化されたスイッチ６内で実行することもできる。
【００３７】
このように、本実施形態では、インタミッテント障害の発生状態に応じて、通信パスを切り換えることができる。従って、インタミッテント障害が長期間継続するような場合に、パスの切換を促して、ストレージ装置２の応答性を維持することができる。また、例えば、ストレージ装置のあるポートが複数のホストによって共有されている場合に、あるホストで発生したインタミッテント障害によって、そのポートを共有する他のホストに悪影響（応答性の低下）が及ぶのを防止することができる。従って、本実施形態によれば、ストレージシステムの応答性能を維持することができ、使い勝手も改善される。
【実施例１】
【００３８】
図２は、ストレージシステムの機能構成に着目したブロック図である。ストレージシステムは、例えば、それぞれ後述するように、複数のホスト１０Ａ，１０Ｂと、複数のスイッチ２０を含む通信ネットワークＣＮ１と、ストレージ装置１００と、管理端末３０とを備えて構成することができる。ストレージ装置１００は、通信ネットワークＣＮ１を介して、複数のホスト１０Ａ，１０Ｂにそれぞれ接続される。
【００３９】
ホスト１０Ａは、例えば、アプリケーションプログラム群（以下、「アプリケーション群」）１１Ａと、パス制御部１２Ａと、HBA（Host Bus Adapter）１３Ａとを備えて構成することができる。アプリケーション群１１Ａは、例えば、電子メール処理プログラム等のようなプログラムであり、図外のクライアント端末に対して情報処理サービスを提供するようになっている。HBA１３Ａは、所定のプロトコルに基づいてストレージ装置１００とのデータ通信を担当する。パス制御部１２Ａは、これら複数のHBA１３ＡのうちいずれのHBAを用いてデータ通信を行うか等を制御する。パス制御部１２Ａは、複数のHBA１３Ａを用いて通信負荷を分散させたり、あるいは後述のように、障害を回避するためにパスを切り換える。
【００４０】
ホスト１０Ｂも、ホスト１０Ａと同様に、アプリケーション群１１Ｂと、パス制御部１２Ｂと、複数のHBA１３Ｂとを備えて構成可能である。これら各部の機能は、ホスト１０Ａで述べたと同様であるので、詳細を割愛する。
【００４１】
以下の説明において、両ホスト１０Ａ，１０Ｂを特に区別しない場合は、「ホスト１０」と呼ぶ場合がある。同様に、各ホスト１０Ａ，１０Ｂのアプリケーション群１１Ａ，１１Ｂを「アプリケーション群１１」と、パス制御部１２Ａ，１２Ｂを「パス制御部１２」と、HBA１３Ａ，１３Ｂを「HBA１３」と、それぞれ呼ぶ場合がある。
【００４２】
ここで、ストレージシステムには、２つ以上のホストを設けることができるし、また、例えば、メインフレーム系ホストとオープン系ホストとのように、複数種類のホストをストレージシステム内に混在させることもできる。
【００４３】
オープン系ホスト１０Ａは、例えば、ファイバチャネルプロトコル（ＦＣ）、iSCSI、TCP/IP等に基づいてデータ転送を行う。これらのオープン系ホストは、例えば、サーバマシン、パーソナルコンピュータ、ワークステーション、携帯情報端末等のようなコンピュータ装置として構成可能である。一方、メインフレーム系ホストの場合は、例えば、ESCON、FICON、ACONARC、FIBARC等の専用プロトコルを介して、ストレージ装置１００とデータ通信を行うことができる。
【００４４】
ホスト１０とストレージ装置１００とは、通信ネットワークＣＮ１を介して双方向通信可能に接続されている。通信ネットワークＣＮ１は、例えば、それぞれ複数のポート２１を備えた複数のファブリックスイッチ２０を結合させることにより、ファブリックに構成することができる。従って、ホスト１０は、スイッチ２０内の経路変更等により、複数の論理的なパスを介して、ストレージ装置１００のポートとの間で、データ授受を行うことができる。
【００４５】
管理端末３０は、後述のサービスプロセッサ（SVP）１７０を介して、ストレージ装置１００の各種情報を収集したり、ストレージ装置１００に必要な指令を与えるための装置である。管理端末３０は、例えば、LAN（Local Area Network）等の通信ネットワークＣＮ２を介して、SVP１７０に接続されている。管理端末３０は、例えば、ウェブブラウザをベースとしたGUI（Graphical User Interface）を備えており、SVP１７０が提供するWWW（World Wide Web）サーバにログインすることにより、各種情報の収集と指令の入力とを行う。
【００４６】
ストレージ装置１００は、例えば、複数のチャネルアダプタ（以下、「CHA」）１１０と、複数のディスクアダプタ（以下、「DKA」）１２０と、キャッシュメモリ１３０と、共有メモリ１４０と、接続制御部１５０と、記憶部１６０と、SVP１７０とを備えて構成することができる。
【００４７】
ストレージ装置１００には、複数のCHA１１０を設けることができる。各CHA１１０は、各ホスト１０との間のデータ転送をそれぞれ制御するためのパッケージである。各CHA１１０は、例えば、通信ポート１１１Ａを有するポート制御部１１１と、チャネルプロセッサ（以下、「CHP」）１１２と、ローカルメモリ１１３と、を備えて構成することができる。ポート制御部１１１は、所定のプロトコルに基づいてデータ授受を行うものである。CHP１１２は、CHA１１０の動作を制御する。ローカルメモリ１１３には、CHA１１０を制御するために必要な制御情報や管理情報等が記憶される。
【００４８】
後述のように、一つのポート１１１Ａには、複数のＬＵ（Logical Unit）１６４を対応付けることができ、一つのポート１１１Ａを複数のホスト１０Ａ，１０Ｂにより共有することができる。そして、CHA１１０は、ホスト１０とのパスの状態を監視し、閾値以上のインタミッテント障害を検出した場合には、ホスト１０に対してハードウェアエラー応答を返すようになっている。
【００４９】
ストレージ装置１００には、複数のDKA１２０を設けることができる。各DKA１２０は、記憶部１６０とのデータ転送をそれぞれ制御するものである。各DKA１２０は、例えば、ホスト１０から指定された論理ブロックアドレス（LBA）を物理ディスクのアドレスに変換等することにより、各ディスクドライブ１６１にアクセスし、データの読出しまたはデータの書込みを行う。
【００５０】
キャッシュメモリ１３０は、ホスト１０から書き込まれたライトデータや、ホスト１０に読み出されたリードデータを記憶するものである。キャッシュメモリ１３０は、例えば、揮発または不揮発のメモリから構成可能である。キャッシュメモリ１３０が揮発性メモリを含んで構成される場合、図示せぬバッテリ電源等によりメモリバックアップを行うことが好ましい。
【００５１】
キャッシュメモリ１３０は、例えば、リードキャッシュ領域とライトキャッシュ領域との２つの領域から構成することができる。ライトキャッシュ領域は、ライトデータを多重記憶（冗長記憶）することができる。
【００５２】
共有メモリ（あるいは制御メモリとも呼ばれる）１４０は、例えば、不揮発メモリから構成可能であるが、揮発メモリから構成してもよい。共有メモリ１４０には、例えば、制御情報や管理情報等が記憶される。これらの制御情報等の情報は、複数のメモリ１４０により多重管理することができる。
【００５３】
共有メモリ１４０及びキャッシュメモリ１３０は、それぞれ別々のメモリパッケージとして構成することもできるし、同一のメモリパッケージ内にキャッシュメモリ１３０及び共有メモリ１４０を設けてもよい。また、メモリの一部をキャッシュ領域として使用し、他の一部を制御領域として使用することもできる。つまり、共有メモリとキャッシュメモリとは、同一のメモリまたはメモリ群として構成することもできる。
【００５４】
接続制御部１５０は、各CHA１１０と、各DKA１２０と、キャッシュメモリ１３０と、共有メモリ１４０とをそれぞれ相互に接続するものである。これにより、全てのCHA１１０，DKA１２０は、キャッシュメモリ１３０及び共有メモリ１４０にそれぞれ個別にアクセス可能である。接続制御部１５０は、例えば、超高速クロスバスイッチ等として構成することができる。
【００５５】
なお、CHA１１０，DKA１２０，キャッシュメモリ１３０及び共有メモリ１４０を一つまたは複数のコントローラに集約することもできる。
【００５６】
記憶部１６０は、多数のディスクドライブ１６１を備えて構成される。記憶部１６０は、各CHA１１０及び各DKA１２０等のコントローラ部分と共に同一の筐体内に設けることもできるし、コントローラ部分とは別の筐体内に設けることもできる。
【００５７】
記憶部１６０は、例えば、複数種類のディスクドライブ１６１を混在させて構成することができる。ディスクドライブ１６１としては、例えば、ＦＣディスク（ファイバチャネルディスク）、SCSI（Small Computer System Interface）ディスク、SATA（Serial AT Attachment）ディスク等を用いることができる。なお、ディスクの種類は、上記のものに限定されず、例示したディスクドライブと同等の記憶デバイスまたは将来開発されるであろう記憶デバイスを利用可能な場合もある。
【００５８】
ここで、一般的には、ＦＣディスク、SCSIディスク、SATAディスクの順番で、データ処理性能が低下する。現在最もデータ処理性能が高いのは、ＦＣディスクである。データ処理性能には、例えば、IOPS（input/output per second）性能やMB/秒性能、データへのアクセス時間等を含めることができる。例えば、高性能で信頼性の高いＦＣディスクは、ミッションクリティカルなデータに高速にアクセスする必要がある場合に使用され、ＦＣディスクほど高性能ではないSATAディスクは、高速アクセス等が要求されないアーカイブデータの保存等に使用される。
【００５９】
記憶部１６０には、複数のパリティグループ（RAIDグループとも呼ばれる）１６２を設けることができる。各パリティグループ１６２は、同一種類の物理ディスク１６１からそれぞれ構成される。即ち、あるパリティグループ１６２は、ＦＣディスクのみから構成され、他のパリティグループ１６２は、SATAディスクのみから構成される。また、あるパリティグループ１６２は、SCSIディスクのみから構成される。
【００６０】
そして、詳細はさらに後述するが、各パリティグループ１６２がそれぞれ提供する論理的な記憶領域には、少なくとも一つ以上の論理ボリューム（LDEVとも呼ぶ）１６３を設けることができる。この論理ボリューム１６３をＬＵ（Logical Unit）１６４に対応付けることにより、オープン系のホスト１０は、物理的な記憶デバイスとして認識し、利用することができる。なお、オープン系ホスト１０のアクセス対象ボリュームはＬＵであるが、メインフレーム系ホストのアクセス対象は、論理ボリューム（LDEV）となる。
【００６１】
ところで、ストレージ装置１００が使用する記憶資源は、全てストレージ装置１００内に存在する必要はない。ストレージ装置１００は、ストレージ装置１００の外部に存在する記憶資源を、あたかも自己の記憶資源であるかのように取り込んで、利用することもできる。即ち、例えば、ストレージ装置１００は、ホスト１０を介さずに、外部に設置された自社の又は他社のストレージ装置（不図示）とSAN（Storage Area Network）等を介して直接的に接続することができる。そして、ストレージ装置１００は、外部のストレージ装置が有する論理ボリュームを、自己のＬＵやLDEVあるいは中間ボリュームにマッピングすることにより、外部の論理ボリュームを取り込むことができる。
【００６２】
SVP１７０は、LAN等の内部ネットワークＣＮ３を介して、各CHA１１０及び各DKA１２０とそれぞれ接続されている。SVP１７０は、ストレージ装置１００内部の各種状態を収集し、そのままで又は加工して、管理端末３０に提供する。
【００６３】
図３は、ストレージ装置１００の記憶構造に着目した構成説明図である。例えば、４個１組等のような所定数のディスクドライブ１６１によって形成される記憶領域上には、論理ボリューム１６３を少なくとも一つ以上設定することができる。これらの論理ボリューム１６３の一つまたは複数がＬＵ１６４に割り当てられる。そして、ＬＵ１６４は、一つまたは複数のポート１１１Ａに接続される。
【００６４】
ホスト１０は、所定のポート１１１Ａを介して所望のＬＵ１６４にアクセスし、データの読出し、又はデータの書込みを行う。図示の例では、説明の便宜上簡略化して表示しているが、例えば、ホスト１０Ａは、パスＰＡ１を介してポート＃０に接続されており、ポート＃０に接続されたＬＵ＃１にアクセス可能である。また、ホスト１０Ａは、別のパスＰＡ２を介してポート＃１に接続されており、ポート＃１からもＬＵ＃１にアクセス可能となっている。つまり、ホスト１０ＡとＬＵ＃１との間には、複数のパスＰＡ１，ＰＡ２が設定されており、いずれのパスによってアクセス可能となっている。
【００６５】
一方、ホスト１０Ｂは、パスＰＢを介してポート＃０に接続されており、ポート＃０に接続されたＬＵ＃０にアクセス可能となっている。即ち、図示の例では、ストレージ装置１００のポート＃０は、複数のホスト１０Ａ，１０Ｂにより共用されている。
【００６６】
もしも、ホスト１０ＡがパスＰＡ１を介してＬＵ＃１を利用している間に、インタミッテント障害が頻発すると、ストレージ装置１００の応答性が低下し、この結果、ホスト１０Ａにおける情報処理サービスに悪影響を与える可能性がある。また、ポート＃０を共有する他のホスト１０Ｂにとっても、ホスト１０Ａにインタミッテント障害が頻繁に生じると、ストレージ装置１００からの応答が遅れてしまい、ホスト１０Ｂの提供する情報処理サービスに影響を与える可能性がある。そこで、ストレージ装置１００は、ホスト１０Ａに対し、パスの切換を要求するハードウェアエラー応答を返すことにより、使用するパスをＰＡ１からＰＡ２に切り換えさせる。
【００６７】
図４は、パス管理情報Ｔ１の一例を示す説明図である。パス管理情報Ｔ１は、各ホスト１０のメモリ（不図示）に記憶されており、パス制御部１２によって利用される。パス管理情報Ｔ１は、例えば、現在使用中のパス（正）か予備のパス（副）であるかを区別するための情報と、パス識別情報及び接続先ＬＵの識別情報と、パスの状態（正常状態かエラー状態か）等を対応付けることにより、構成することができる。なお、図中では、１つのＬＵについて２つのパスが設定されている場合を示すが、３つ以上のパスを１つのＬＵに対応付けてもよい。また、パス状態として、ハードウェアエラー応答が返された状態を示すハードウェアエラー応答状態を含めてもよい。
【００６８】
図５は、インタミッテント障害管理テーブルＴ２の一例を示す説明図である。インタミッテント障害管理テーブルＴ２は、例えば、ストレージ装置１００の共有メモリ１４０に記憶される。インタミッテント障害管理テーブルＴ２は、Ｔ２Ａ〜Ｔ２Ｃとして示すように、各ホスト毎にそれぞれ用意される。各CHA１１０のローカルメモリ１１３には、そのCHA１１０を利用するホストに関するインタミッテント障害管理テーブルＴ２がコピーされている。
【００６９】
インタミッテント障害管理テーブルＴ２は、例えば、エラータイプと、そのエラータイプの発生回数と、その発生回数の閾値とを対応付けることにより構成可能である。エラータイプとは、予め設定されているインタミッテント障害の種別を示す。本実施例では、短時間後に機能を回復する一時的、間欠的な軽度の障害を、インタミッテント障害として管理する。
【００７０】
エラータイプとしては、例えば、ホスト１０からコマンド中止処理（アボート要求）が発行された場合、ホスト１０からリセット処理（リセット要求）が発行された場合、ホスト１０からの応答が所定時間以上無かった場合（通信タイムアウト）、通信信号に異常が生じた場合、ストレージ装置１００の応答時間が所定時間よりも長くなった場合等を挙げることができる。なお、各ホスト毎に、監視対象のエラータイプをそれぞれ変えることも可能である。
【００７１】
ここで、コマンド中止処理及びリセット処理は、例えば、ホスト１０がストレージ装置１００からの応答を所定時間以上受信できなかった場合（通信タイムアウト）に、ホスト１０からストレージ装置１００に向けて発行される。通信信号に異常が生じた場合とは、例えば、ストレージ装置１００に到着するはずのフレームが消失したり（フレーム番号の脱落）、CRC（Cyclic Redundancy Check）等のエラー検出用情報の信頼性が失われたような場合である。
【００７２】
発生回数とは、例えば、現在使用中のパスにおいて、そのエラータイプが発生した回数を示す。発生回数は、例えば、その日一日に発生した累計回数、ある時刻からある時刻までの間に発生した累計回数等のように、カウントされる。また、発生回数は、所定時間が経過するたびにリセットすることもできるし、システム管理者等が手動でリセットすることもできる。
【００７３】
そして、各エラータイプ毎に、それぞれ閾値Ｔｈが予め設定されている。閾値Ｔｈは、エラータイプ毎にそれぞれ異なる値を設定可能である。例えば、コマンド中止処理の閾値は、リセット処理の閾値よりも少ない値に設定することができる。各エラータイプ毎の発生回数を適宜設定することにより、エラータイプ毎に重み付けして、ホスト１０にパスの切換を促すタイミングを決定することができる。
【００７４】
図６は、障害検知処理の概要を示すフローチャートである。本処理は、例えば、各CHA１１０によりそれぞれ実行される。CHA１１０は、接続されているホストとの間の通信状態を随時取得する（Ｓ１１）。この通信状態には、例えば、ホスト１０から受信したコマンドの種類（コマンド中止処理要求、リセット処理要求等）や、ホスト１０からの無応答時間等が含まれる。
【００７５】
CHA１１０は、取得した通信状態に基づいて、インタミッテント障害管理テーブルＴ２に登録されているエラータイプであるか否かを判定する。例えば、第１のエラータイプが検出されたか否かを判定し（Ｓ１２）、第１のエラータイプが検出された場合は（S12：YES）、第１のエラータイプの発生回数を１つ増加させ（Ｓ１３）、インタミッテント障害管理テーブルＴ２を更新させる（Ｓ１４）。そして、CHA１１０は、第１のエラータイプの発生回数が、予め設定された閾値に達したか否かを判定する（Ｓ１５）。CHA１１０は、第１のエラータイプの発生回数が閾値に達した場合（S15：YES）、そのホスト１０について、エラー応答フラグ管理テーブルＴ３中のハードウェアエラー応答フラグ（図中では、「エラー応答フラグ」と略記）をオンにセットする（Ｓ１６）。第１のエラータイプの発生回数が閾値に達していない場合（S15：NO）、CHA１１０は、本処理を終了し、適当な時間をおいて再びＳ１１のステップを実行する。なお、エラー応答管理テーブルＴ３は、共有メモリ１４０内に記憶され、また必要な部分が各CHA１１０のローカルメモリ１１３にコピーされる。
【００７６】
第１のエラータイプが検出されなかった場合（S12：NO）、第２のエラータイプが検出されたか否かを判定し（Ｓ１７）、Ｓ１３〜Ｓ１６と同様の処理を行う。即ち、CHA１１０は、第２のエラータイプが検出された場合（S17：YES）、そのホスト１０に関連付けられたインタミッテント障害管理テーブルＴ２において、第２のエラータイプの発生回数を１つだけ増加させ（Ｓ１８）、このインタミッテント障害管理テーブルＴ２を更新させる（Ｓ１９）。そして、CHA１１０は、第２のエラータイプの発生回数が予め設定された閾値に達した場合は（S20：YES）、このホスト１０についてハードウェアエラー応答フラグをオンにセットする（Ｓ２１）。
【００７７】
後述のように、あるホスト１０についてハードウェアエラー応答フラグがオンにセットされている場合、CHA１１０は、そのホスト１０からの特定のアクセスに対して、実際にハードウェアエラーが発生しているといないとに関わらず、ハードウェアエラー応答を返す。
【００７８】
以上のように、CHA１１０は、予めインタミッテント障害管理テーブルＴ２に登録されている各エラータイプ毎にその発生回数をそれぞれカウントし、それぞれの発生回数が予め設定されている閾値に達したか否かを判定する。そして、CHA１１０は、インタミッテント障害の発生回数が閾値に達した場合、その障害発生に係るホストについて、ハードウェアエラー応答フラグをオンにセットする。
【００７９】
なお、図６に示す処理は一例であって、本発明はこれに限定されない。図６では、２つのエラータイプについてのみ示しているが、CHA１１０は、インタミッテント障害管理テーブルＴ２に登録された全てのエラータイプについて、それぞれ判定する。
【００８０】
図７は、ホスト１０からのアクセスを処理するための応答処理の概略を示すフローチャートである。本処理は、例えば、CHA１１０により実行される。CHA１１０は、ホスト１０からのコマンドを受信すると（S31：YES）、ハードウェアエラー応答フラグ管理テーブルＴ３を参照し、アクセスを要求したホスト１０についてハードウェアエラー応答フラグがオンにセットされているか否かを判定する（Ｓ３２）。
【００８１】
そのホスト１０にハードウェアエラー応答フラグがオンにセットされていない場合（S32：NO）、CHA１１０は、受信したコマンドに応じた処理を行い、その結果をホスト１０に返す（Ｓ３３）。即ち、例えば、リードアクセスの場合は、要求されたリードデータをキャッシュメモリ１３０またはディスクドライブ１６１のいずれかから取得して、このリードデータをホスト１０に送信する。また、例えば、ライトアクセスの場合は、ライトデータをキャッシュメモリ１３０に記憶させた後、このライトデータをディスクドライブ１６１に記憶させる。
【００８２】
アクセスを要求するホスト１０について、ハードウェアエラー応答フラグがオンにセットされている場合（S32：YES）、CHA１１０は、リードアクセスが要求されているか否かを判定する（Ｓ３４）。リードアクセスの場合（S34：YES）、CHA１１０は、そのホスト１０に対してハードウェアエラー応答を返す（Ｓ３５）。
【００８３】
リードアクセスが要求されていない場合（S34：NO）、CHA１１０は、ライトアクセスが要求されているか否かを判定する（Ｓ３６）。ライトアクセスが要求されている場合（S36：YES）、CHA１１０は、そのホスト１０に対して、ハードウェアエラー応答を返す（Ｓ３５）。
【００８４】
即ち、ハードウェアエラー応答フラグがオンにセットされているホスト１０からリードアクセスまたはライトアクセスのいずれかを要求された場合、CHA１１０は、このホスト１０に対してハードウェアエラー応答を返す。ホスト１０のパス制御部１２は、ハードウェアエラー応答を受信すると、後述のように、パスの切換を試みる。
【００８５】
ハードウェアエラー応答フラグがオンにセットされているホスト１０であっても、リードアクセスまたはライトアクセス以外のアクセスの場合（S34:NO  かつS36：NO）、CHA１１０は、正常な応答を返すことができる（Ｓ３７）。リードアクセスまたはライトアクセス以外のコマンドとしては、例えば、inquiryコマンド等のようなストレージ装置１００の各種状態を問い合わせるコマンド等を挙げることができる。なお、前記フラグがオンにセットされたホスト１０からの全てのアクセスに対して、一律にハードウェアエラー応答を返す構成としてもよい。
【００８６】
図８は、パス制御処理の概略を示すフローチャートである。本処理は、例えば、ホスト１０のパス制御部１２により実行される。ホスト１０は、ストレージ装置１００からの応答が正常応答であるか否かを判定する（Ｓ４１）。
【００８７】
正常応答の場合（S41：YES）、本処理は終了する。正常応答でない場合（S41：NO）、ホスト１０は、ストレージ装置１００からの応答がハードウェアエラー応答であるか否かを判定する（Ｓ４２）。ハードウェアエラー応答の場合（S42：YES）、ホスト１０は、パス管理情報Ｔ１を参照し（Ｓ４３）、予備の交替パス（副パス）を正パスとして、パスを切り換えさせ（Ｓ４４）、パス管理情報Ｔ１を更新する（Ｓ４５）。なお、ストレージ装置１００からの応答がハードウェアエラー応答以外の場合、そのエラー応答に応じたエラー処理を行うことができる（Ｓ４６）。
【００８８】
このように、ホスト１０は、ストレージ装置１００からハードウェアエラー応答が返されると、パス管理情報Ｔ１を参照して他のパスに切り換える。そして、ホスト１０は、パスを切り換えた後に、再びストレージ装置１００に対してアクセスする。
【００８９】
図９は、パス切換に関するストレージシステムの全体動作の概略を示すフローチャートである。図９では、ホスト１０Ａを代表させて説明する。図９には、上述した各処理の一部をが示されている。
【００９０】
パスにインタミッテント障害が発生する前のある時点において、ホスト１０Ａがライトアクセスを行うと（Ｓ１０１）、ストレージ装置１００は、ライトデータをキャッシュメモリ１３０に格納させた後で、または、ライトデータをディスクドライブ１６１に書き込んだ後で、書込み完了をホスト１０Ａに報告する（Ｓ１０２）。
【００９１】
ホスト１０Ａが別のライトアクセスを試みた後（Ｓ１０３）、何らかの原因によりストレージ装置１００からの応答が所定時間内に到達しなかったとする（S104：YES）。ホスト１０Ａ側で通信タイムアウトが検出されると、ホスト１０Ａは、例えば、リセットコマンドを発行する（Ｓ１０５）。
【００９２】
ストレージ装置１００は、ホスト１０Ａからのリセットコマンドを受信すると、先に受信したライトコマンドの処理をリセットし、リセット処理が完了した旨をホスト１０Ａに応答する（Ｓ１０６）。
【００９３】
また、ストレージ装置１００は、ホスト１０Ａに対応付けられているインタミッテント障害管理テーブルＴ２を参照し、リセットコマンドの受信がインタミッテント障害として登録されているか否かを判定する。リセットコマンドの受信がインタミッテント障害管理テーブルＴ２に登録されている場合、ストレージ装置１００は、インタミッテント障害の発生を検知し（Ｓ１０７）、リセットコマンドの発生回数を１つインクリメントさせてインタミッテント障害管理テーブルＴ２を更新させる（Ｓ１０８）。
【００９４】
ストレージ装置１００は、リセットコマンドの受信回数が閾値に達したか否かを判定し（Ｓ１０９）、閾値に達した場合（S109：YES）、ホスト１０Ａについてハードウェアエラー応答フラグをオンにセットする（Ｓ１１０）。
【００９５】
そして、ホスト１０Ａが再びストレージ装置１００にライトアクセスを試みると（Ｓ１１１）、ストレージ装置１００は、ホスト１０Ａに対してハードウェアエラー応答を返す（Ｓ１１２）。ホスト１０Ａは、ストレージ装置１００からハードウェアエラー応答を受信すると、別のパスに切り換える（Ｓ１１３）。
【００９６】
本実施例は上述のように構成されるので、以下の効果を奏する。本実施例では、通常は自然な機能の回復が待たれるインタミッテント障害の場合でも、その発生状態に応じて、パスの切換を促す信号をホスト１０に送信する構成とした。従って、インタミッテント障害が継続的に発生するような場合に、早期にパスの切換を促すことができ、ホスト１０の情報処理サービスに悪影響が及ぶのを防止することができる。
【００９７】
本実施例では、インタミッテント障害管理テーブルＴ２に予め登録された障害についてのみ、その発生頻度を監視してパスの切換を促す構成とした。従って、例えば、ストレージシステムの保守履歴等を参照することにより、各インタミッテント障害のうち、継続的に発生しうるインタミッテント障害のみを監視対象とすることができる。
【００９８】
本実施例では、ホスト１０にパスの切換を促す信号の一例として、ハードウェアエラー応答を用いる構成とした。従って、インタミッテント障害に係るホスト１０についてのみ、パスの切換を促すことができる。また、既存のハードウェアエラー応答を利用してホスト１０にパスの切換を促す構成のため、コストの増加を抑制しつつストレージシステムの応答性を改善することができる。
【００９９】
本実施例では、ストレージ装置１００内でインタミッテント障害の発生状態を監視し、パスの切換を要求する構成のため、ホスト１０やスイッチ２０の構成を何ら変更することなく、ストレージシステムの応答性や使い勝手を改善することができる。
【実施例２】
【０１００】
図１０に基づいて、本発明の第２実施例を説明する。以下に述べる各実施例は、第１実施例の変形例に相当する。図１０は、本実施例によるパス制御処理のフローチャートであって、ホスト１０は、ストレージ装置１００からの応答が正常応答であるか否かを判定し（Ｓ５１）、正常応答の場合（S51：YES）、本処理は終了する。
【０１０１】
正常応答でない場合（S51：NO）、ホスト１０は、ハードウェアエラー応答であるか否かを判定し（Ｓ５２）、ハードウェアエラー応答の場合（S52：YES）、パス管理情報Ｔ１を参照し（Ｓ５３）、正常な交替パスが存在するか否かを判定する（Ｓ５４）。正常な交替パスが存在しない場合（S54：NO）、ホスト１０は、パスを切り換えることなく、本処理を終了する。従って、この場合、ホスト１０は、インタミッテント障害からの回復を消極的に待つことになる。
【０１０２】
これに対し、正常な交替パスが存在する場合（S54：YES）、ホスト１０は、その正常な交替パスを正パスとして、パスを切り換えさせ（Ｓ５５）、パス管理情報Ｔ１を更新させる（Ｓ５６）。なお、ストレージ装置１００からの応答がハードウェアエラー応答以外の場合、そのエラー応答に応じたエラー処理を行うことができる（Ｓ５７）。
【０１０３】
このように、正常な交替パスが残っていない場合、ホスト１０は、現在使用中のパスをそのまま継続して使用する。
【実施例３】
【０１０４】
図１１は、第３実施例に係るパス制御処理のフローチャートである。本処理では、図１０と共に述べた処理とほぼ同様の処理を行うが、Ｓ５４に対応するＳ６４の処理内容が相違する。
【０１０５】
ホスト１０は、ストレージ装置１００からの応答が正常応答であるか否かを判定し（Ｓ６１）、正常応答の場合（S61：YES）、本処理は終了する。正常応答でない場合（S61：NO）、ホスト１０は、ハードウェアエラー応答であるか否かを判定し（Ｓ６２）、ハードウェアエラー応答の場合（S62：YES）、パス管理情報Ｔ１を参照し（Ｓ６３）、ハードウェアエラー応答を返された交替パスが存在するか否かを判定する（Ｓ６４）。
【０１０６】
ハードウェアエラー応答を返された交替パスが存在しない場合（S64：NO）、ホスト１０は、パスを切り換えることなく、本処理を終了する。従って、この場合、ホスト１０は、インタミッテント障害からの回復を消極的に待つことになる。
【０１０７】
これに対し、ハードウェアエラー応答を返された交替パスが存在する場合（S64：YES）、ホスト１０は、その正常な交替パスを正パスとして、パスを切り換えさせ（Ｓ６５）、パス管理情報Ｔ１を更新させる（Ｓ６６）。なお、ストレージ装置１００からの応答がハードウェアエラー応答以外の場合、そのエラー応答に応じたエラー処理を行うことができる（Ｓ６７）。
【０１０８】
インタミッテント障害は継続的に発生する可能性もあるが、時間の経過によって自然に解消する可能性もある。そこで、本実施例では、新たにハードウェアエラー応答が検出された場合は、過去のハードウェアエラー応答によって切り換えられたパス（切換元パス）に、再び切り換えるようになっている。
【０１０９】
なお、図１０と図１１の処理を組合せることもできる。例えば、ホスト１０は、正常な交替パスが残っているか否かを判定し（Ｓ５４）、正常な交替パスが残っている場合はそのパスに切り換える。正常な交替パスが残っていない場合（S54：NO）、ホスト１０は、ハードウェアエラー応答状態となっている他のパスが存在するか否かを判定し（Ｓ６４）、ハードウェアエラー応答状態となっているパスが存在する場合は、そのパスに切り換えることができる。
【実施例４】
【０１１０】
図１２は、本発明の第４実施例に係るストレージシステムの全体構成を示すブロック図である。本実施例では、インテリジェント化された高機能のスイッチ２０によって、インタミッテント障害の発生状態を監視し、パスを切り換えるようになっている。
【０１１１】
スイッチ２０は、例えば、複数のポート２１と、各ポートの接続を制御する接続制御部２２とを備えて構成することができる。接続制御部２２は、例えば、スイッチング処理部２３と、プロトコル処理部２４と、スイッチ管理部２５と、パス管理情報テーブルＴ１及びインタミッテント障害管理テーブルＴ２とを備えることができる。
【０１１２】
スイッチング処理部２３は、各ポート２１間の接続を行う。プロトコル処理部２４は、所定のプロトコルに基づいてデータ転送に必要な処理を行う。スイッチ管理部２５は、スイッチ２０内で検出される通信状態に基づいて、インタミッテント障害の発生状態を監視し、必要に応じてパスの切換要求信号をスイッチング処理部２３に出力する。
【０１１３】
なお、図中に点線で示すように、ストレージ装置１００内の状態を監視する状態監視部１８０から、スイッチ管理部２５に対して、ストレージ装置１００の応答時間等の各種状態の情報を送信することもできる。状態監視部１８０には、例えば、SVP１７０を用いることができる。状態監視部１８０は、FC_SANを介して内部状態をスイッチ２０に送信することもできるし、LAN等の別のネットワークを介して送信することもできる。
【０１１４】
また、インタミッテント障害の監視機能及びパス切換を要求する機能は、第１実施例と同様にストレージ装置１００内に設け、パスの切換のみをスイッチ２０内で実行させる構成としてもよい。
【実施例５】
【０１１５】
図１３は、本発明の第５実施例に係るストレージシステムのブロック図である。本実施例では、インタミッテント障害の監視及びパスの切換を、各ホスト１０内でそれぞれ実行する。
【０１１６】
ホスト１０Ａを例に挙げると、そのパス制御部１２Ａ１は、パス管理情報Ｔ１及びインタミッテント障害管理テーブルＴ２を利用可能となっている。これらの各情報Ｔ１，Ｔ２は、ホスト１０Ａの備えるローカルメモリやローカルディスクに記憶される。
【０１１７】
そして、パス制御部１２Ａ１は、インタミッテント障害の発生状況を監視し、所定の閾値以上のインタミッテント障害が発生した場合は、パスの切換を行う。従って、本実施例においては、パス制御部１２Ａ１自身が、自己に対してパスの切換を促す。
【実施例６】
【０１１８】
図１４は、第６実施例に係る障害検知処理のフローチャートである。本処理では、図６と共に述べた障害検知処理と同様の処理を行うが、最初のステップＳ１１Ａの内容が相違する。
【０１１９】
即ち、本処理では、複数のホスト１０によって共有されているポート１１１Ａについてのみ、通信状態を取得して（Ｓ１１Ａ）、インタミッテント障害の発生状態を監視するようになっている。例えば、ポート管理テーブルＴ４には、各ポート番号と、LUNと、そのポートを利用するホストの識別情報とが対応付けられており、CHA１１０は、ポート管理テーブルＴ４を参照することにより、複数のホスト１０により共有されているポートを検出することができる。
【０１２０】
このように、共有ポートについてのみインタミッテント障害の発生状態を監視し、パスの切換を要求することにより、一つのホスト１０で生じたインタミッテント障害による悪影響が、他のホスト１０に及ぶのを防止することができ、また、監視処理の負担を低減することができる。
【０１２１】
なお、本発明は、上述した実施の形態に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。
【図面の簡単な説明】
【０１２２】
【図１】本発明の実施形態の概念を示す説明図である。
【図２】ストレージ装置のハードウェア構成に着目したブロック図である。
【図３】ストレージ装置の論理的構成に着目した説明図である。
【図４】パス管理情報の一例を示す説明図である。
【図５】インタミッテント障害管理テーブルの一例を示す説明図である。
【図６】障害検知処理の概要を示すフローチャートである。
【図７】応答処理の概要を示すフローチャートである。
【図８】パス制御処理の概要を示すフローチャートである。
【図９】ストレージシステムの全体動作の概略を示すフローチャートである。
【図１０】第２実施例に係るパス制御処理の概要を示すフローチャートである。
【図１１】第３実施例に係るパス制御処理の概要を示すフローチャートである。
【図１２】第４実施例に係るストレージシステムのブロック図である。
【図１３】第５実施例に係るストレージシステムのブロック図である。
【図１４】第６実施例に係る障害検知処理の概要を示すフローチャートである。
【符号の説明】
【０１２３】
１…ホスト、１Ａ…アプリケーションプログラム、１Ｂ…パス制御部、１Ｃ…通信部、２…ストレージ装置、３…コントローラ、３Ａ…通信部、３Ｂ…通信状態監視部、３Ｃ…軽度障害検知部、３Ｄ…切換指示部、３Ｅ…軽度障害管理テーブル、４…ボリューム、５…通信ネットワーク、６…スイッチ、１０，１０Ａ，１０Ｂ…ホスト、１１，１１Ａ，１１Ｂ…アプリケーション群、１２，１２Ａ，１２Ｂ…パス制御部、２０…スイッチ、２１…ポート、２２…接続制御部、２３…スイッチング処理部、２４…プロトコル処理部、２５…スイッチ管理部、３０…管理端末、１００…ストレージ装置、１１０…チャネルアダプタ（CHA）、１１１…ポート制御部、１１１Ａ…ポート、１１２…チャネルプロセッサ（CHP）、１１３ ローカルメモリ、１３０…キャッシュメモリ、１４０…共有メモリ、１５０…接続制御部、１６０…記憶部、１６１…ディスクドライブ、１６２…パリティグループ、１６３…論理ボリューム（LDEV）、１６４…論理ユニット（LU）、１７０…サービスプロセッサ（SVP）、１８０…状態監視部、ＣＮ１〜CN３…通信ネットワーク、Ｐ１，Ｐ２，ＰＡ１，ＰＡ２…パス、Ｔ１…パス管理情報、Ｔ２…インタミッテント障害管理テーブル、Ｔ３…ハードウェアエラー応答フラグ管理テーブル、Ｔ４…ポート管理テーブル
【図１】
2006107151.tif 000003
【図２】
2006107151.tif 000004
【図３】
2006107151.tif 000005
【図４】
2006107151.tif 000006
【図５】
2006107151.tif 000007
【図６】
2006107151.tif 000008
【図７】
2006107151.tif 000009
【図８】
2006107151.tif 000010
【図９】
2006107151.tif 000011
【図１０】
2006107151.tif 000012
【図１１】
2006107151.tif 000013
【図１２】
2006107151.tif 000014
【図１３】
2006107151.tif 000015
【図１４】
2006107151.tif 000016