(57)【要約】【課題】パス異常の発生箇所に応じた効率的なパス切り替えを行なう。【解決手段】複数のパスのいずれかのパスにおける異常の発生を検知する異常検知部１２と、パスにおける異常の発生を検知すると、通信異常数とＩＯ数とに基づいて異常箇所を特定する特定部１３と、特定された前記異常箇所に応じて複数の上位装置もしくは中継装置のいずれかに、データ通信経路を異常の発生が検知されたパスから複数のパスのうちの他のパスへ切り替えるパス切り替えを行なう切替制御部１４とを備える。【選択図】図２
2015158702.tif 000002
【特許請求の範囲】
【請求項１】
複数の上位装置と中継装置を介した複数のパスで接続されるストレージ装置の制御装置であって、
前記複数のパスのいずれかのパスにおける異常の発生を検知する異常検知部と、
前記パスにおける異常の発生を検知すると、通信異常数とＩＯ数とに基づいて異常箇所を特定する特定部と、
特定された前記異常箇所に応じて前記複数の上位装置もしくは中継装置のいずれかに、データ通信経路を前記異常の発生が検知されたパスから前記複数のパスのうちの他のパスへ切り替えるパス切り替えを実行させる制御を行なう切替制御部と
を備えることを特徴とする、制御装置。
【請求項２】
前記異常箇所が前記中継装置と当該ストレージ装置との間である場合には、
前記切替制御部が、当該ストレージ装置における前記中継装置が接続される通信ポートを通信不可状態にするポート停止処理を実行して前記通信ポートを通信不可状態にすることで前記パス切り替えを実行させることを特徴とする、請求項１記載の制御装置。
【請求項３】
前記切替制御部が、
前記異常箇所が前記中継装置と当該ストレージ装置との間以外である場合には、前記ポート停止処理の実行を抑止することを特徴とする、請求項２記載の制御装置。
【請求項４】
前記異常箇所が中継装置と当該ストレージ装置との間以外であり、且つ、前記上位装置がパス切替制御機能を有している場合には、
前記切替制御部が、前記上位装置にパス切替指示を送信することで前記パス切り替えを実行させることを特徴とする、請求項３記載の制御装置。
【請求項５】
前記異常検知部が、通信異常通知信号の発行元の上位装置についてのＩＯ数に対する通信異常数の比率に基づいて前記パスにおける異常の発生を検知することを特徴とする、請求項１〜４のいずれか１項に記載の制御装置。
【請求項６】
前記特定部が、前記ストレージ装置の通信ポートを用いる全上位装置についてのＩＯ数に対する通信異常数の比率に基づいて異常箇所を特定することを特徴とする、請求項１〜５のいずれか１項に記載の制御装置。
【請求項７】
記憶装置を有するストレージ装置と複数の上位装置と中継装置とを備え、前記複数の上位装置が前記中継装置を介して複数のパスで前記ストレージ装置に接続されるストレージシステムにおいて、
前記複数のパスのいずれかのパスにおける異常の発生を検知する異常検知部と、
前記パスにおける異常の発生を検知すると、通信異常数とＩＯ数とに基づいて異常箇所を特定する特定部と、
特定された前記異常箇所に応じて前記複数の上位装置もしくは中継装置のいずれかに、データ通信経路を前記異常の発生が検知されたパスから前記複数のパスのうちの他のパスへ切り替えるパス切り替えを実行させる制御を行なう切替制御部と
を備えることを特徴とする、ストレージシステム。
【請求項８】
複数の上位装置と中継装置を介した複数のパスで接続されるストレージ装置において、
前記複数のパスのいずれかのパスにおける異常の発生を検知する処理と、
前記パスにおける異常の発生を検知すると、通信異常数とＩＯ数とに基づいて異常箇所を特定する処理と、
特定された前記異常箇所に応じて前記複数の上位装置もしくは中継装置のいずれかに、データ通信経路を前記異常の発生が検知されたパスから前記複数のパスのうちの他のパスへ切り替えるパス切り替えを実行させる制御を行なう処理と
をコンピュータに実行させることを特徴とする、制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム、制御装置及び制御プログラムに関する。
【背景技術】
【０００２】
図１１はＳＡＮ（Storage Area Network）環境のストレージシステムの構成を示す図である。
この図１１に示すストレージシステム４００においては、２つのホスト２００ａ，２００ｂがスイッチ３００ａ，３００ｂを介して、それぞれストレージ装置５００に接続されている。
【０００３】
具体的には、ストレージ装置５００のポート＃０（Port#0）にスイッチ３００ａが、又、ポート＃１（Port#１）にスイッチ３００ｂが、それぞれ接続されている。又、各スイッチ３００ａ，３００ｂには、それぞれホスト２００ａ，２００ｂが接続されている。
すなわち、ホスト２００ａとストレージ５００との間は、スイッチ３００ａ及びポート＃０を介してストレージ装置５００に接続されるパス（Path#0）と、スイッチ３００ｂ及びポート＃１を介してストレージ装置５００に接続されるパス（Path#1）との２つのパスで接続されている。
【０００４】
なお、ホスト２００ａをホスト＃０といい、又、ホスト２００ｂをホスト＃１という場合がある。同様に、スイッチ３００ａをスイッチ＃０と、又、スイッチ３００ｂをスイッチ＃１という場合がある。
図１１に示すように、ＳＡＮ環境のストレージシステムにおいては、ホストとストレージ装置との間を、複数のパス（マルチパス； Multi Path）で接続することにより冗長構成とすることが一般的である。
【０００５】
図１１に示すストレージシステム４００において、ホスト＃０に注目すると、スイッチ＃０を通過するパス（Path#0）とスイッチ＃１を通過するパス（Path#1）との冗長構成となっている。
ここで、ホスト＃０に関して、Path#0がアクティブパス（Active Path）であり、Path#1が待機パス（Standby Path）であるとする。ホスト＃０のマルチパスドライバ（図示省略）は、アクティブパスにおいて異常が検知された場合に待機パスに切り替える制御を行なう。具体的には、Path#0に異常が発生し、ホスト＃０のマルチパスドライバが、アクティブパスにおけるコマンドリトライタイムアウト（Command Retry Timeout）を検知すると、アクティブパス（Path#0）から待機パス（Path#1）に切り替える。
【０００６】
また、このアクティブパスから待機パスへの切り替えは、ストレージ装置５００の対象ポートをリンクダウン（Link Down）状態にすることにより行なわれる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−１０７１５１号公報
【特許文献２】特開２００２−２７８９０９号公報
【特許文献３】特開２００５−２５１０７８号公報
【特許文献４】特開２００８−２９９４３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、このような従来のストレージ装置においては、ホスト２００ａとストレージ装置５００との間のパスを切り替えるためにポートをリンクダウン状態にする。これにより、このポートを共用している他のホスト２００ｂも、このポートを用いるパスを利用することができなくなる。すなわち、ポートをリンクダウン状態にすることにより、他のホストにも影響を与えるという課題がある。
【０００９】
例えば、図１１に示す構成において、ホスト＃０とストレージ装置５００との通信において検知されたパス＃０の異常により、ストレージ装置５００のポート＃０をリンクダウン状態にさせる。これにより、このポート＃０を使用している他のホスト＃１もPath#0を使用できなくなる。
１つの側面では、本発明は、パス異常の発生箇所に応じた効率的なパス切り替えができるようにすることを目的とする。
【００１０】
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の１つとして位置付けることができる。
【課題を解決するための手段】
【００１１】
このため、この制御装置は、複数の上位装置と中継装置を介した複数のパスで接続されるストレージ装置の制御装置であって、前記複数のパスのいずれかのパスにおける異常の発生を検知する異常検知部と、前記パスにおける異常の発生を検知すると、通信異常数とＩＯ数とに基づいて異常箇所を特定する特定部と、特定された前記異常箇所に応じて前記複数の上位装置もしくは中継装置のいずれかに、データ通信経路を前記異常の発生が検知されたパスから前記複数のパスのうちの他のパスへ切り替えるパス切り替えを実行させる制御を行なう切替制御部とを備える。
【発明の効果】
【００１２】
一実施形態によれば、パス異常の発生箇所に応じた効率的なパス切り替えを行なうことができる。
【図面の簡単な説明】
【００１３】
【図１】実施形態の一例としてのストレージシステムのハードウェア構成を模式的に示す図である。
【図２】実施形態の一例としてのストレージシステムにおけるパス切替制御機能を実現するための機能構成を示す図である。
【図３】実施形態の一例としてのストレージシステムにおける管理テーブルを例示する図である。
【図４】実施形態の一例としてのストレージシステムにおける異常箇所を示す図である。
【図５】実施形態の一例としてのストレージシステムにおける異常箇所の特定方法を示す図である。
【図６】実施形態の一例としてのストレージシステムにおけるパス切り替え処理の概要を説明するフローチャートである。
【図７】実施形態の一例としてのストレージシステムにおけるパス切り替え処理の詳細を説明するフローチャートである。
【図８】実施形態の一例としてのストレージシステムにおけるＴＰＧＳパス閉塞処理を説明するフローチャートである。
【図９】実施形態の一例としてのストレージシステムにおけるセンスロスが発生した場合のＴＰＧＳパス閉塞処理を示すシーケンス図である。
【図１０】実施形態の一例としてのストレージシステムにおけるセンスロスが発生した場合のＴＰＧＳパス閉塞処理を示すシーケンス図である。
【図１１】ＳＡＮ環境のストレージシステムの構成を示す図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して本ストレージシステム、制御装置及び制御プログラムに係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。又、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【００１５】
図１は実施形態の一例としてのストレージシステム４のハードウェア構成を模式的に示す図である。
ストレージシステム４においては、ストレージ装置１と複数（図１に示す例では２つ）のホスト装置２ａ，２ｂとが冗長化された複数のパスを介して接続されている。
ストレージ装置１は、ドライブエンクロージャ（ＤＥ：Drive Enclosure）３０に格納された記憶装置３１を仮想化して、仮想ストレージ環境を形成する情報処理装置である。そしてストレージ装置１は、仮想ボリュームを上位装置であるホスト装置２ａ，２ｂに提供する。
【００１６】
ストレージ装置１は、ホスト装置２ａ，２ｂに対して通信可能に接続されている。ホスト装置２ａ，２ｂとストレージ装置１とは、後述するＣＡ（Communication Adapter）１０１ａ，１０１ｂにより接続されている。
ホスト装置２ａ，２ｂは、例えば、サーバ機能をそなえた情報処理装置であり、ストレージ装置１との間において、ＮＡＳ（Network Attached Storage）やＳＡＮのコマンドを送受信する。これらのホスト装置２ａ，２ｂは、同様の構成を有している。
【００１７】
以下、ホスト装置を示す符号としては、複数のホスト装置のうち１つを特定する必要があるときには符号２ａ，２ｂを用いるが、任意のホスト装置を指すときには符号２を用いる。又、ホスト装置２ａをホスト＃０と表す場合があり、又、ホスト装置２ｂをホスト＃１と表す場合がある。
ホスト装置２は、図示しないＣＰＵ（Central Processing Unit）やメモリを備え、ＣＰＵがメモリ等に格納されたＯＳ（Operating System）やプログラムを実行することで、種々の機能を実行する。
【００１８】
ホスト装置２は、例えば、ストレージ装置１に対してＮＡＳにおけるリード／ライト等のディスクアクセスコマンドを送信することにより、ストレージ装置１が提供するボリュームにデータの書き込みや読み出しを行なう。
そして、ストレージ装置１は、ホスト装置２からボリュームに対して行なわれる入出力要求（例えば、リードコマンドやライトコマンド）に応じて、このボリュームに対応する実ストレージに対して、データの読み出しや書き込み等の処理を行なう。なお、ホスト装置２からの入出力要求のことをＩＯコマンドもしくは単にＩＯという場合がある。
【００１９】
また、ホスト装置２は、ホスト装置２とストレージ装置１との間を複数のパス（マルチパス）で接続して冗長化する、マルチパスドライバを備える。
マルチパスドライバは、ストレージ装置１との間のパスにおけるリンクダウン（切断）及びリンクアップ（接続）の発生を検知する機能を備える。
例えば、ホスト装置２においては、その図示しない通信ポートにおいて、ストレージ装置１との間で通信できない状態が生じるとリンクダウンを検知する。例えば、ホスト装置２とストレージ装置１とがファイバチャネル（Fibre Channel：ＦＣ）で接続されている場合に、伝送光が所定時間以上継続して消灯したことを検知すると、リンクダウンが検知される。
【００２０】
なお、ホスト装置２におけるストレージ装置１との間のパスのリンクダウン及びリンクアップの検知は、既知の手法により実現することができ、その詳細な説明は省略する。
そして、マルチパスドライバは、ストレージ装置１との間にリンクダウンを検知すると、パスの切り替えを行なう機能を備える。すなわち、マルチパスドライバは、ホスト装置２とストレージ装置１との間を接続する複数のパスのうち、データ通信に用いられているアクティブパスのリンクダウンを検知すると、予め設定された他のパス（待機パス）を選択し、この待機パスを用いてデータ通信を行なうよう、パスの切り替えを行なう（第１のパス切り替え機能）。
【００２１】
なお、マルチパスドライバは公知の技術であり、その詳細な説明は省略する。又、このマルチパスドライバによるホスト装置２におけるパスの切り替えも、既知の手法により実現することができ、その詳細な説明は省略する。
また、マルチパスドライバとしては、ＴＰＧＳ（Target Port Group Support）対応のものと非対応のものがある。ＴＰＧＳは、ホスト装置２とストレージ装置１との間の最適なパスを特定するための機能であり、パス切替制御機能である。なお、このＴＰＧＳは公知の技術であり、その詳細な説明は省略する。
【００２２】
ＴＰＧＳ対応のマルチパスドライバは、ストレージ装置１からパス状態変更通知（パス切替指示，ＴＰＧＳパス閉塞指示）を受信すると、異常が生じているアクティブパスを閉塞させることにより、待機パスへのパス切り替えを行なう（第２のパス切り替え機能）。なお、ＴＰＧＳパス閉塞指示やＴＰＧＳによるパス閉塞処理については、図８を用いて後述する。
【００２３】
マルチパスドライバがＴＰＧＳ対応であるか否かは、ストレージ装置１からホスト装置２に対してマルチパス再構築のセンスを応答した後、ホスト装置２からＲＴＰＧ（Report Target Port Groups）コマンドを受信できるか否かで判定が可能である。すなわち、マルチパス再構築のセンスを応答した後、ホスト装置２からＲＴＰＧコマンドを受信できた場合には、このホスト装置２のマルチパスドライバはＴＰＧＳ対応であると判断することができる。
【００２４】
ストレージ装置１においては、ホスト装置２からＲＴＰＧコマンドを受信できたか否かの情報を予め採取して、ホスト装置２がＴＰＧＳに対応しているか否かを判定し、この判定結果を、後述する管理テーブル６３（図３参照）で管理する。
また、ホスト装置２は、ストレージ装置１に対してＩＯコマンドを発行後に所定時間内に応答がない場合には、発行したＩＯコマンドをキャンセルするために、ＡＢＴＳ（Abort Sequence）を発行する機能を有する。すなわち、ＡＢＴＳは、ホスト装置２においてＩＯ発行後になんらかのエラーが検知されたことを示す通信異常通知信号として機能する。
【００２５】
なお、このＡＢＴＳの発行は既知の手法で実現することができ、その詳細な説明は省略する。
スイッチ３ａ，３ｂは、ホスト装置２ａ，２ｂとＣＭ１００ａ，１００ｂとの通信を中継する中継装置である。各スイッチ３ａ，３ｂは、それぞれホスト装置２ａ，２ｂに接続されるとともに、スイッチ３ａはＣＭ１０１ａと、又、スイッチ３ｂはＣＭ１０１ｂと、それぞれ接続されている。
【００２６】
すなわち、ホスト装置２ａ，２ｂは、それぞれスイッチ３ａを介してＣＭ１０１ａに接続されるとともに、スイッチ３ｂを介してＣＭ１０１ｂにも接続されている。
図１に示す例においては、ＣＡ１０１ａに２つのポートＰ０，Ｐ１が、又、ＣＡ１０１ｂに２つのポートＰ２，Ｐ３が、それぞれ備えられている。そして、ポートＰ０にスイッチ３ａが、又、ポートＰ２にスイッチ３ｂが、それぞれ接続され、更に、各スイッチ３ａ，３ｂにそれぞれホスト装置２ａ，２ｂが接続されている。
【００２７】
すなわち、ホスト装置２ａ，２ｂは、それぞれスイッチ３ａを介してＣＡ１０１ａのポートＰ０に接続されるとともに、スイッチ３ｂを介してＣＡ１０１ｂのポートＰ２にも接続されている。
ストレージ装置１は、図１に示すように、複数（本実施形態では２つ）のＣＭ（Controller Module）１００ａ，１００ｂ及び１つ以上（図１に示す例では１つ）のドライブエンクロージャ３０をそなえる。
【００２８】
ドライブエンクロージャ３０は、１以上（図１に示す例では４つ）の記憶装置（物理ディスク）３１を搭載可能であり、これらの記憶装置３１の記憶領域（実ボリューム，実ストレージ）を、ストレージ装置１に対して提供する。
例えば、ドライブエンクロージャ３０は、複数段のスロット（図示省略）をそなえ、これらのスロットに、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等の記憶装置３１を挿入することにより、実ボリューム容量を随時変更することができる。又、複数の記憶装置３１を用いてＲＡＩＤ（Redundant Arrays of Inexpensive Disks）を構成することができる。
【００２９】
ドライブエンクロージャ３０は、ＣＭ１００ａのデバイスアダプタ（Device Adapter：ＤＡ）１０３，１０３とＣＭ１００ｂのＤＡ１０３，１０３とそれぞれ接続されている。そして、ドライブエンクロージャ３０には、ＣＭ１００ａ，１００ｂのいずれからもアクセスして、データの書き込みや読み出しを行なうことができる。すなわち、ドライブエンクロージャ３０の記憶装置３１に対して、ＣＭ１００ａ，１００ｂのそれぞれを接続することにより、記憶装置３１へのアクセス経路が冗長化されている。
【００３０】
コントローラエンクロージャ４０は、１以上（図１に示す例では２つ）のＣＭ１００ａ，１００ｂを備える。
ＣＭ１００ａ，１００ｂは、ストレージ装置１内の動作を制御するコントローラ（制御装置，ストレージ制御装置）であり、ホスト装置２から送信されるＩＯコマンドに従って、ドライブエンクロージャ３０の記憶装置３１へのアクセス制御等、各種制御を行なう。又、ＣＭ１００ａ，１００ｂは互いにほぼ同様の構成を有している。以下、ＣＭを示す符号としては、複数のＣＭのうち１つを特定する必要があるときには符号１００ａ，１００ｂを用いるが、任意のＣＭを指すときには符号１００を用いる。又、ＣＭ１００ａをＣＭ＃０と、ＣＭ１００ｂをＣＭ＃１と、それぞれ表す場合がある。
【００３１】
また、図中、同一の符号は同一もしくは略同一の部分を示しているので、その詳細な説明は省略する。
ＣＭ１００ａ，１００ｂは二重化されており、通常は、ＣＭ１００ａがプライマリとして各種制御を行なう。しかし、このプライマリＣＭ１００ａの故障時には、セカンダリのＣＭ１００ｂがプライマリとしてＣＭ１００ａの動作を引き継ぐ。
【００３２】
ＣＭ１００ａ，１００ｂはＣＡ１０１ａ，１０１ｂを介して、それぞれホスト装置２に接続される。そして、これらのＣＭ１００ａ，１００ｂは、ホスト装置２から送信されるリード／ライト等のＩＯコマンドを受信し、ＤＡ１０３等を介して記憶装置３１の制御を行なう。又、ＣＭ１００ａ，１００ｂは、通信線５０を介して相互に通信可能に接続されている。この通信線５０は、PCI Express（登録商標）等のインタフェースで接続されている。
【００３３】
ＣＭ１００ａ，１００ｂは、図１に示すように、ＣＡ１０１ａ，１０１ｂと複数（図１に示す例では２つ）のＤＡ１０３，１０３とをそなえるとともに、ＣＰＵ（Central Processing Unit）１１０，メモリ１０６，ＳＳＤ１０７及びＩＯＣ１０８をそなえる。
図１に示す例においては、ＣＭ１００ａにＣＡ１０１ａが、又、ＣＭ１００ｂにＣＡ１０１ｂが、それぞれそなえられている。以下、ＣＡを示す符号としては、複数のＣＡのうち１つを特定する必要があるときには符号１０１ａ，１０１ｂを用いるが、任意のＣＡを指すときには符号１０１を用いる。
【００３４】
ＣＡ１０１は、ホスト装置２等から送信されたデータを受信したり、ＣＭ１００から出力するデータをホスト装置２等に送信する。すなわち、ＣＡ１０１は、ホスト装置等の外部装置との間でのデータの入出力（ＩＯ）を制御する。
ＣＡ１０１は、ＮＡＳを介してホスト装置２と通信可能に接続するネットワークアダプタであり、例えば、ＬＡＮ（Local Area Network）インタフェースやｉＳＣＳＩ（internet Small Computer System Interface）インタフェース，ＦＣ（Fibre Channel）インタフェース等である。ＣＭ１００は、このＣＡ１０１により通信回線を介してホスト装置２等とＮＡＳにより接続され、ＩＯコマンドの受信やデータの送受信等を行なう。
【００３５】
また、ＣＡ１０１は１つ以上のポートを備え、このポートにホスト装置２と通信するための通信線が接続される。
図１に示す例においては、ＣＡ１０１ａに２つのポートＰ０，Ｐ１が、又、ＣＡ１０１ｂに２つのポートＰ２，Ｐ３が、それぞれ備えられている。そして、ポートＰ０にスイッチ３ａが、又、ポートＰ２にスイッチ３ｂが、それぞれ接続され、更に、各スイッチ３ａ，３ｂにそれぞれホスト装置２ａ，２ｂが接続されている。
【００３６】
すなわち、ホスト装置２ａ，２ｂは、それぞれスイッチ３ａを介してＣＡ１０１ａのポートＰ０に接続されるとともに、スイッチ３ｂを介してＣＡ１０１ｂのポートＰ２に接続されている。
ＤＡ１０３は、ドライブエンクロージャ３０や記憶装置３１等と通信可能に接続するためのインタフェースである。ＤＡ１０３は、ドライブエンクロージャ３０の記憶装置３１が接続され、ＣＭ１００は、ホスト装置２から受信したＩＯコマンドに基づき、これらの記憶装置３１に対するアクセス制御を行なう。
【００３７】
ＣＭ１００は、このＤＡ１０３を介して、記憶装置３１に対するデータの書き込みや読み出しを行なう。又、図１に示す例においては、ＣＭ１００ａ，１００ｂのそれぞれに２つのＤＡ１０３，１０３がそなえられている。そして、ＣＭ１００ａ，１００ｂのそれぞれにおいて、各ＤＡ１０３にドライブエンクロージャ３０が接続されている。
これにより、ドライブエンクロージャ３０の記憶装置３１には、ＣＭ１００ａ，１００ｂのいずれからもデータの書き込みや読み出しを行なうことができる。
【００３８】
ＳＳＤ１０７は、ＣＰＵ１１０が実行するプログラムや種々のデータ等を格納する記憶装置である。
メモリ１０６は、種々のデータやプログラムを一時的に格納する記憶装置であり、図示しないメモリ領域とキャッシュ領域とをそなえる。キャッシュ領域は、ホスト装置２から受信したデータや、ホスト装置２に対して送信するデータを一時的に格納する。メモリ領域には、ＣＰＵ１１０がプログラムを実行する際に、データやプログラムを一時的に格納・展開して用いる。
【００３９】
また、メモリ１０６には、後述する、ＩＯカウンタ値６１，ＡＢＴＳカウンタ値６２，管理テーブル６３の情報，第１閾値６４，第２閾値６５及び第３閾値６６が記憶領域に格納される。なお、第１閾値６４の値，第２閾値６５の値及び第３閾値６６の値を、それぞれＬ，Ｍ及びＮとし、以下、閾値Ｌ，閾値Ｍ及び閾値Ｎと表す場合もある。
ＩＯＣ（Input Output Controller）１０８は、ＣＭ１００内におけるデータ転送を制御する制御装置であり、例えば、メモリ１０６に格納されたデータをＣＰＵ１１０を介することなく転送させるＤＭＡ（Direct Memory Access）転送を実現する。
【００４０】
ＣＰＵ１１０は、種々の制御や演算を行なう処理装置であり、マルチコアプロセッサ（マルチＣＰＵ）である。ＣＰＵ１１０は、ＳＳＤ１０７等に格納されたＯＳやプログラムを実行することにより、種々の機能を実現する。
例えば、ＣＰＵ１１０は、制御プログラム（パス切替制御プログラム）を実行することにより、異常パスから待機パスへの切り替えを制御するパス切替制御機能を実現する。
【００４１】
すなわち、ＣＰＵ１１０が、制御プログラムを実行することにより、図２に示すような、ＩＯ管理部１１，異常検知部１２，特定部１３及び切替制御部１４として機能する。
図２は実施形態の一例としてのストレージシステム４におけるパス切替制御機能を実現するための機能構成を示す図である。
この図２に示すように、ストレージ装置１は、ＩＯ管理部１１，異常検知部１２，特定部１３及び切替制御部１４として機能する。
【００４２】
なお、これらのＩＯ管理部１１，異常検知部１２，特定部１３及び切替制御部１４としての機能を実現するためのプログラム（パス切替制御プログラム）は、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
【００４３】
ＩＯ管理部１１，異常検知部１２，特定部１３及び切替制御部１４としての機能を実現する際には、内部記憶装置（本実施形態ではメモリ１０６やＳＳＤ１０７）に格納されたプログラムがコンピュータのマイクロプロセッサ（本実施形態ではＣＰＵ１１０）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
【００４４】
ＩＯ管理部１１は、ホスト装置２との間で行なわれる通信を監視し、ＩＯカウンタ値６１，ＡＢＴＳカウンタ値６２及び管理テーブル６３を用いて管理する。
ＩＯ管理部１１は、ホスト装置２との間の通信状態を監視し、ストレージ装置１に備えられる各ポートＰ０〜Ｐ３毎に、通信実績（通信状態）を管理する。
具体的には、ＩＯ管理部１１は、ＣＡ１０１のポート毎に、ホスト装置２から受信したＩＯコマンドの数（ＩＯコマンド数）をＩＯカウンタ値６１を用いて計数する。又、ＩＯ管理部１１は、ホスト装置２から発行されるＡＢＴＳを受信した数（ＡＢＴＳ数）をＡＢＴＳカウンタ値６２を用いて計数する。
【００４５】
ＩＯカウンタ値６１は、ホスト装置２毎に備えられ、ＩＯ管理部１１は、各ＩＯカウンタ値６１を各ホスト装置２からのＩＯコマンドの受信を契機にカウントアップする。
ＡＢＴＳカウンタ値６２は、ホスト装置２毎に備えられ、ＩＯ管理部１１は、各ＡＢＴＳカウンタ値６２をホスト装置２からのＡＢＴＳ受信を契機にカウントアップする。
なお、図２中においては、便宜上、ＩＯカウンタ値６１及びＡＢＴＳカウンタ値６２を１つずつ示している。
【００４６】
ＩＯカウンタ値６１，ＡＢＴＳカウンタ値６２及び管理テーブル６３は、例えば、メモリ１０６に格納される。
図３は実施形態の一例としてのストレージシステム４における管理テーブル６３を例示する図である。
ＩＯ管理部１１は、各ポートについて、通信先のホスト装置２毎に、ＴＰＧＳ対応であるか否かの情報，ＩＯ数，ＡＢＴＳ数及びＡＢＴＳ割合を、管理テーブル６３において管理する。図３に例示する管理テーブル６３においては、これらの情報に対して、ホスト識別子及び内部管理番号を対応付けることにより、ホスト装置２に対応付けている。
【００４７】
ここで、ホスト識別子は、ホスト装置２を特定するための識別情報であり、例えば、ホスト装置２のＷＷＮ（World Wide Name）やＳＣＳＩネームが用いられる。
内部管理番号は、ホスト装置２を管理するために設定された番号である。ＴＰＧＳ対応であるか否かの情報としては、例えば、そのホスト装置２がＴＰＧＳに対応している場合には“１”を、又、ＴＰＧＳに対応していない場合には“０”が設定される。
【００４８】
ＩＯ数はホスト装置２から受信したＩＯの数であり、上述したＩＯカウンタ値６１が格納される。ＡＢＴＳ数はホスト装置２から受信したＡＢＴＳの数であり、上述したＡＢＴＳカウンタ値６２が格納される。
ＡＢＴＳ割合は、ホスト装置２から受信したＩＯ数に対するＡＢＴＳ数の割合であり、ＩＯ管理部１１により、前述したＩＯ数及びＡＢＴＳ数を用いて算出される。図３に示す例においては、ＡＢＴＳ割合として％値が設定されている。
【００４９】
ストレージ装置１においては、管理テーブル６３はＣＡ１０１のポート毎に備えられ、各ＣＭ１００においては、自身のＣＡ１０１に備えられる各ポートについての管理テーブル６３を作成する。すなわち、ＣＭ１００ａにおいては、ＩＯ管理部１１はポートＰ０，Ｐ１についての管理テーブル６３を作成し、ＣＭ１００ｂにおいては、ＩＯ管理部１１はポートＰ２，Ｐ３についての管理テーブル６３を作成する。
【００５０】
そして、各ＣＭ１００において作成された管理テーブル６３は、通信線５０を介して相互に通知されるとともに同期され、これにより、各ＣＭ１００は、他ＣＭ１００のポートを含む全ポートの通信実績を管理する。
異常検知部１２は、ストレージ装置１とホスト装置２との間のパスにおける異常（パス異常）の発生を検知する。
【００５１】
異常検知部１２は、ＡＢＴＳ割合と第２閾値６５の値Ｍとを比較することにより、パス異常の発生を判断する。すなわち、異常検知部１２は、判定対象のホスト装置２について、管理テーブル６３を参照し、そのＡＢＴＳ割合を読み出す。そして、異常検知部１２は、このＡＢＴＳ割合と閾値Ｍとを比較して、当該ホスト装置２との間のパスに異常が発生している（パス異常）か否かを判断する。異常検知部１２は、ＡＢＴＳ割合が閾値Ｍ以上の場合に、当該ホスト装置２との間のパスに異常が発生している（パス異常）と判断する。
【００５２】
このように、異常検知部１２は、ＡＢＴＳの発行元のホスト装置２についてのＩＯ数に対する通信異常数の比率（ＡＢＴＳ割合）に基づいてパス異常の発生を検知する。
また、異常検知部１２は、ＡＢＴＳカウンタ値６２が第１閾値６４の値Ｌ以上であると判断した場合に、上述したパス異常の有無の判断を開始する。
特定部１３は、異常検知部１２がパス異常の発生を検知すると、ＡＢＴＳ数とＩＯ数とに基づいて異常箇所を特定する。具体的には、特定部１３は、当該ストレージ装置１に備えられたポートＰ０〜Ｐ３を用いる全てのホスト装置２について、各ホスト装置２が発行したＩＯ数の合計（全ＩＯ数）に対する、各ホスト装置２が発行したＡＢＴＳ数の合計（全ＡＢＴＳ数）の比率（全ホストのＡＢＴＳ割合）を算出する。なお、全ホストのＡＢＴＳ割合の算出に用いるＩＯ数及びＡＢＴＳ数は、例えば、管理テーブル６３から読み出して取得する。
【００５３】
そして、特定部１３は、各ホスト装置２のＡＢＴＳ割合に基づいて、異常箇所を判定する。具体的には、特定部１３は、この算出した全ホストのＡＢＴＳ割合を第３の閾値Ｎと比較し、全ホストのＡＢＴＳ割合が閾値Ｎ以上である場合に、異常の発生箇所が、スイッチ３と当該ストレージ装置１との間にあると判断する。一方、特定部１３は、全ホストのＡＢＴＳ割合が閾値Ｎよりも小さい場合には、異常の発生箇所が、ホスト装置２とスイッチ３との間にあると判断する。
【００５４】
図４は実施形態の一例としてのストレージシステム４における異常箇所を示す図、図５はその異常箇所の特定方法を示す図である。これらの図４及び図５に示す例においては、ストレージ装置１のポートＰ０について示すものとする。
図４に例示するストレージシステム４において、ストレージ装置１とスイッチ３ａとの間の経路を符号Ａ、ホスト装置２ａとスイッチ３ａとの間の経路を符号Ｂ、ホスト装置２ｂとスイッチ３ａとの間の経路を符号Ｃで、それぞれ示す。
【００５５】
図５において、「接続ホストのＡＢＴＳ割合判定」は、ホスト装置２のＡＢＴＳ割合を上述した閾値Ｎと比較した結果を示しており、ＡＢＴＳ割合が閾値Ｎ未満である場合に“○”が、又、ＡＢＴＳ割合が閾値Ｎ以上である場合に“×”が、それぞれ設定されている。又、この図５においては、ホスト＃０及びホスト＃１の各ＡＢＴＳ割合の閾値Ｎとの比較結果の組み合わせに対応させて、異常箇所及びパス切り替え手段が、「判定」として設定されている。
【００５６】
異常箇所は、ストレージシステム４において異常が発生していると想定される位置であり、例えば、図４中における符号Ａ，Ｂ，Ｃで表されるいずれかの経路位置を示す。パス切り替え手段は、後述する切替制御部１４が、異常パスから待機パスへの切り替えを制御するための手段を示す。なお、このパス切り替え手段については後述する。
この図５に示す例においては、ホスト装置２ａ（ホスト＃０）及びホスト装置２ｂ（ホスト＃１）のいずれのＡＢＴＳ割合も閾値Ｎ以上である場合に、特定部１３は、異常箇所が、図４中におけるストレージ装置１とスイッチ３ａとの間の経路Ａであると判断することを示す。
【００５７】
また、ホスト＃０のＡＢＴＳ割合が閾値Ｎ以上であり、且つ、ホスト＃１のＡＢＴＳ割合が閾値Ｎ未満である場合には、特定部１３は、異常箇所が、図４中におけるホスト装置２ａとスイッチ３ａとの間の経路Ｂであると判断する。更に、ホスト＃０のＡＢＴＳ割合が閾値Ｎ未満であり、且つ、ホスト＃１のＡＢＴＳ割合が閾値Ｎ以上である場合には、特定部１３は、異常箇所が、図４中におけるホスト装置２ｂとスイッチ３ａとの間の経路Ｃであると判断する。
【００５８】
切替制御部１４は、異常が発生したアクティブパスから待機パスへデータ通信経路を切り替えるパス切り替えを、ホスト装置２に実行させるための制御を行なうものであり、特定部１３により特定された異常箇所に応じた切替手段で、パスの切り替え制御を行なう。
異常箇所がスイッチ３と当該ストレージ装置１との間である場合には、切替制御部１４は、当該ストレージ装置１における、異常パスが接続されているポート（対象ポート）を停止状態（ポート停止状態）にすることでリンクダウン状態を発生させる。これにより、ホスト装置２においては、マルチパスドライバが、このリンクダウンを検知し、ストレージ装置１との間のデータ通信を待機パスを用いて行なうようアクティブパスからパスの切り替えを行なう。
【００５９】
切替制御部１４は、例えば、対象ポートへの電力供給を抑止することにより、このポートを使用不可の状態（ポート停止状態）にして、異常パスを切断状態（リンクダウン状態）にする。なお、ポートをポート停止状態にすることをポート停止処理という。ポート停止処理は、対象ポートへの電力供給の抑止の他、既知の種々の手法で実現することができる。
【００６０】
また、異常パスをリンクダウンさせるには、既知の種々の手法を用いることができ、その詳細な説明は省略する。
一方、異常箇所がスイッチ３と当該ストレージ装置１との間以外である場合には、切替制御部１４は、対象ポートのリンクダウンを抑止する。そして、異常箇所がスイッチ３と当該ストレージ装置１との間以外であり、且つ、ホスト装置２がＴＰＧＳに対応している場合には、切替制御部１４は、ホスト装置２にＴＰＧＳパス閉塞（パス切替指示）を指示する。
【００６１】
なお、ホスト装置２がＴＰＧＳに対応しているか否かは、管理テーブル６３を参照することで判断することができる。
ストレージ装置１からＴＰＧＳパス閉塞指示を受信したホスト装置２は、ＴＰＧＳによるパス閉塞処理を行なう。これにより、異常パスから待機パスへのデータ通信経路の切り替えが行なわれる。
【００６２】
図５に示した例において、ホスト装置２ａ，２ｂはいずれもＴＰＧＳ対応であるものとする。図５においては、ホスト＃０及びホスト＃１の両方のＡＢＴＳ割合が閾値Ｎ以上である場合に、切替制御部１４は、対象のポートＰ０をリンクダウンさせることによりホスト装置２に対して待機パスへの切り替えを実行させることを示す。
また、ホスト装置＃０及びホスト＃１において、一方のＡＢＴＳ割合が閾値Ｎ未満であり、他方のＡＢＴＳ割合が閾値Ｎ以上である場合には、切替制御部１４は、ホスト装置２にＴＰＧＳパス閉塞を指示することで、ホスト装置２に対して異常パスから待機パスへのデータ通信経路の切り替えを実行させる。
【００６３】
上述の如く構成された実施形態の一例としてのストレージシステム４におけるパス切り替え処理の概要を、図６に示すフローチャート（ステップＡ１〜Ａ４）に従って説明する。
ステップＡ１において、異常検知部１２が、ストレージシステム４におけるパス状態を判定する。パス状態が正常である場合には（ステップＡ１の“正常”ルート参照）、処理を終了する。
【００６４】
一方、パス状態が異常であると判断した場合には（ステップＡ１の“異常”ルート参照）、ステップＡ２において、特定部１３が異常箇所を判定する。この判定の結果、異常箇所がホスト装置２とスイッチ３との間である場合において（ステップＡ２の“Host-SW間”ルート参照）、ホスト装置２がＴＰＧＳ対応である場合には、ステップＡ３において、切替制御部１４がホスト装置２に対してＴＰＧＳパス閉塞を行なわせることにより待機パスへの切り替えを実行させる。
【００６５】
また、異常箇所がスイッチ３と当該ストレージ装置１との間である場合には（ステップＡ２の“SW-Storage間”ルート参照）、切替制御部１４が、対象のパスをリンクダウン状態にすることにより、ホスト装置２に対して待機パスへの切り替えを実行させる。その後、処理を終了する。
次に、実施形態の一例としてのストレージシステム４におけるパス切り替え処理の詳細を、図７に示すフローチャート（ステップＢ１〜Ｂ１４）に従って説明する。
【００６６】
ストレージ装置１がホスト装置２からＡＢＴＳを受信すると、ステップＢ１において、ＩＯ管理部１１が、ＩＯカウンタ値６１及びＡＢＴＳカウンタ値６２をカウントアップして、管理テーブル６３に記録する。
ステップＢ２において、異常検知部１２はＡＢＴＳの送信元のホスト装置２（対象ホスト）について、そのＡＢＴＳ数を閾値Ｌと比較する。ＡＢＴＳ数が閾値Ｌ未満の場合には（ステップＢ２のＹＥＳルート参照）、パス異常判定の対象外であり、パスは正常であるとみなして処理を終了する。
【００６７】
一方、ＡＢＴＳ数が閾値Ｌ以上の場合には（ステップＢ２のＮＯルート参照）、パス異常判定の対象であるとして、ステップＢ３において、異常検知部１２は、ＩＯ数に対するＡＢＴＳ数の割合（ＡＢＴＳ割合）を計算する。
ステップＢ４において、異常検知部１２は、ステップＢ３において算出したＡＢＴＳ割合を閾値Ｍと比較する。この比較の結果、ＡＢＴＳ割合が閾値Ｍ未満である場合には（ステップＢ４のＹＥＳルート参照）、パスは正常であると判断し、ステップＢ５において、ＩＯカウンタ値６１及びＡＢＴＳカウンタ値６２がクリアされる。その後、処理を終了する。
【００６８】
また、ＡＢＴＳ割合が閾値Ｍ以上である場合には（ステップＢ４のＮＯルート参照）、異常検知部１２は、パス異常と判断し（ステップＢ６）、次に、特定部１３による異常箇所の特定が行なわれる。
ステップＢ７において、特定部１３は、当該ストレージ装置１に備えられたポートＰ０〜Ｐ３を用いる全てのホスト装置２でのＡＢＴＳ割合（全ホストのＡＢＴＳ割合）を算出する。
【００６９】
ステップＢ８において、特定部１３は、ステップＢ７で算出した全ホストのＡＢＴＳ割合を閾値Ｎと比較する。比較の結果、全ホストのＡＢＴＳ割合が閾値Ｎ以上の場合には（ステップＢ８のＮＯルート参照）、異常箇所はスイッチ３とストレージ装置１との間であると判断される。そこで、ステップＢ１３において、切替制御部１４は、当該ストレージ装置１における、異常パスが接続されているポート（対象ポート）をリンクダウン状態にする。これにより、ホスト装置２がこのリンクダウンを検知し、待機パスへの切り替えを行なう。
【００７０】
その後、ステップＢ１４において、ＩＯカウンタ値６１及ＡＢＴＳカウンタ値６２がクリアされて、処理を終了する。
一方、全ホストのＡＢＴＳ割合が閾値Ｎ未満の場合には（ステップＢ８のＹＥＳルート参照）、異常箇所はホスト装置２とスイッチ３との間であると判断される。そこで、ステップＢ９において、切替制御部１４は、管理テーブル６４を参照して、ＡＢＴＳの送信元であるホスト装置２がＴＰＧＳ対応であるか否かを確認する。
【００７１】
ホスト装置２がＴＰＧＳ対応である場合には（ステップＢ９のＹＥＳルート参照）、ステップＢ１０において、切替制御部１４は、そのホスト装置２に対してＴＰＧＳパス閉塞を指示する。ＴＰＧＳパス閉塞指示を受信したホスト装置２は、ＴＰＧＳによるパス閉塞処理を行ない、これにより、異常パスから待機パスへの切り替えが行なわれる。なお、このホスト装置２におけるＴＰＧＳパス閉塞処理の詳細は、図８を用いて後述する。
【００７２】
その後、ステップＢ１１において、ＩＯカウンタ値６１及ＡＢＴＳカウンタ値６２がクリアされて、処理を終了する。
また、ホスト装置２がＴＰＧＳ未対応である場合には（ステップＢ９のＮＯルート参照）、ステップＢ１２において、ＩＯカウンタ値６１及ＡＢＴＳカウンタ値６２がクリアされて、処理を終了する。
【００７３】
すなわち、ホスト装置２がＴＰＧＳ未対応である場合には、リンクダウン等をさせずに、パスが正常であるものとして取り扱う。リンクダウンを抑止することで、他のホスト装置２からのアクセスに影響を与えることがない。又、ＡＢＴＳを発行したホスト装置２によりＩＯコマンドの再発行（リトライ）が行なわれると、パス異常が一時的なものであった場合には、このリトライ時にはパス異常が解消していることも期待できる。
【００７４】
次に、実施形態の一例としてのストレージシステム４におけるＴＰＧＳパス閉塞処理を、図８に示すフローチャート（ステップＣ１〜Ｃ６）に従って説明する。このＴＰＧＳパス閉塞処理は、ホスト装置２がＴＰＧＳ対応である場合に行なわれ、図７に示すフローチャートのステップＢ１０の処理に対応する。
ステップＣ１において、切替制御部１４は、対象ホスト装置２のアフィニティグループ（Affinity Group）に登録されている全てのＬＵ（Logical Unit）を特定する。
【００７５】
ステップＣ２において、切替制御部１４は、対象ホスト装置２のアフィニティグループに登録されている全てのＬＵに対してマルチパス再構築のセンス（例えば、6/2A06のセンス）を登録（保持）／応答する。ホスト装置２においては、ストレージ装置１から6/2A06のセンスを受信すると、ＲＴＰＧコマンドを発行する仕様となっている。
そこで、ステップＣ３において、切替制御部１４は、ホスト装置２から送信されるコマンドを監視する。具体的には、切替制御部１４は、ホスト装置２から、6/2A06のセンスに対するＲＴＰＧコマンドを受信したか否かを確認する（ステップＣ４）。
【００７６】
ストレージ装置１がホスト装置２からＲＴＰＧコマンドを受信しない場合には（ステップＣ４のＮＯルート参照）、センスロスが発生したと判断され、ステップＣ６において、切替制御部１４は、移行のＩＯに対して6/2A06のセンスを応答し続ける。
本処理は、図７に示すフローチャートのステップＢ１０に対応するので、パス異常が発生していると判断される状況下で行なわれ、フレームロスが間欠的に発生するような、いわゆる不安定なパスを前提としている。従って、ホスト装置２からＲＴＰＧコマンドが送信されても、ストレージ装置１においてはこのＲＴＰＧコマンドをすぐには受信できないおそれがある。このため、ステップＣ４においてＲＴＰＧコマンドを受信していない場合に、ステップＣ６においてストレージ装置１から6/2A06のセンスを応答し続けるのである。
【００７７】
一方、ストレージ装置１がホスト装置２からＲＴＰＧコマンドを受信した場合には（ステップＣ４のＹＥＳルート参照）、センスロスが未発生であると判断される。ステップＣ５において、切替制御部１４は、この受信したＲＴＰＧコマンドに対してスタンバイステート（Standby State）を応答することでホスト装置２に待機パスへの切り替えを促す。これにより、スタンバイステートを受信したホスト装置２のマルチパスドライバは、アクティブパスを閉塞させることにより待機パスへの切り替えを実行する。なお、ホスト装置２においてスタンバイステートを受信して待機パスへ切り替える手法は既知であり、その説明は省略する。
【００７８】
図９は実施形態の一例としてのストレージシステム４におけるセンスロスが未発生の場合のＴＰＧＳパス閉塞処理を示すシーケンス図である。
なお、図９中において、ストレージ装置１のアダプタはＣＡ１０１に相当し、コントローラはＣＰＵ１１０に相当する。
この図９に示すように、ストレージ装置１のコントローラにおいて、対象ＬＵに6/2A06センスが登録される（符号Ｄ１参照）。その後、ホスト装置２からＩＯ（通常ＩＯ）が発行されると（符号Ｄ２参照）、アダプタからコントローラに対して当該ＩＯの処理依頼が行なわれる（符号Ｄ３参照）。
【００７９】
コントローラはアダプタに対してセンス応答指示を行ない（符号Ｄ４参照）、この指示に従って、アダプタはホスト装置２に対して6/2A06センス応答を行なう（符号Ｄ５参照）。
6/2A06センス応答がホスト装置２に到達すると、ホスト装置２はＲＴＰＧコマンドの発行を行ない（符号Ｄ６参照）、このＲＴＰＧコマンドを受信したアダプタはコマンド種を判定する。
【００８０】
アダプタは、コントローラに対して判定したコマンド（ＲＴＰＧコマンド）の処理を依頼し（符号Ｄ７参照）、コントローラはアダプタに対してデータ応答指示を行なう（符号Ｄ８参照）。アダプタは、この指示に従って、ホスト装置２に対して、ポートグループの状態（Asymmetric access state；非対称アクセス状態）として、スタンバイ（Standby）を応答する（符号Ｄ９参照）。このスタンバイ応答が、ストレージ装置１からホスト装置２へのパス状態変更通知として機能する。
【００８１】
この応答を受信したホスト装置２においては、マルチパスドライバが、アクティブパスを閉塞させて待機パスへ切り替える。
図１０は実施形態の一例としてのストレージシステム４におけるセンスロスが発生した場合のＴＰＧＳパス閉塞処理を示すシーケンス図である。この図１０に示すシーケンス図においては、パス異常の影響によりホスト装置２へのセンス応答がロスするケースを示す。
【００８２】
この図１０に示すシーケンス図においては、図９に示すシーケンスの各処理に加えて、符号Ｄ５１〜Ｄ５７で示す処理を備えるものであり、その他の部分は、図９に示す処理と同様である。図中、既述の符号と同一の符号は同様の処理を示しているので、その説明は省略する。
コントローラがアダプタに対してセンス応答指示を行ない（符号Ｄ４参照）、この指示に従って、アダプタはホスト装置２に対して6/2A06センス応答を行なう（符号Ｄ５１参照）。
【００８３】
しかしパスが不安定なため、この6/2A06センス応答がホスト装置２に到達せずにセンスロスが生じ（符号Ｄ５２参照）、ホスト装置２においては、通常ＩＯを発行してから所定時間が経過することでコマンドタイムアウトとなる（符号Ｄ５３参照）。
ホスト装置２はＩＯ（通常ＩＯ）を再発行し（符号Ｄ５４参照）、これを受けたアダプタからコントローラに対して当該ＩＯの処理依頼が行なわれる（符号Ｄ５５参照）。コントローラはアダプタに対してセンス応答指示を行ない（符号Ｄ５６参照）、この指示に従って、アダプタはホスト装置２に対して6/2A06センス応答を行なう（符号Ｄ５参照）。
【００８４】
上述した符号Ｄ５１〜Ｄ５６に示す処理は、ストレージ装置１がＲＴＰＧコマンドを受信するまで、繰り返し行なわれるのである（符号Ｄ５７参照）。
このように、実施形態の一例としてのストレージ装置１によれば、パス異常が検知されると、特定部１３が異常箇所を特定し、切替制御部１４がホスト装置２に対してこの異常箇所に応じたパス切り替えを実行させる。
【００８５】
すなわち、異常箇所がホスト装置２とスイッチ３との間である場合には、ホスト装置２に対してＴＰＧＳによるパス閉塞処理を行なわせる、もしくはパス正常とみなすことで、リンクダウンを阻止する。これにより、ＡＢＴＳの送信元のホスト装置２と同じポートを用いている他のホスト装置２から対象ポートへのアクセスを阻害することがない。すなわち、他のホスト装置２から対象ポートへのアクセスに影響を与えることがなく、安定したシステム運用を行なうことができる。
【００８６】
ＡＢＴＳを発行したホスト装置２によりＩＯのリトライが行なわれると、パス異常が一時的なものであった場合には、このリトライ時にはパス異常が解消していることが期待できる。これにより、リンクダウンさせることなくパス異常を解消することができ、ホスト装置２からストレージ装置１へのアクセスを阻害することがない。
異常箇所がスイッチ３とストレージ装置１との間である場合には、切替制御部１４が対象ポートのリンクダウンを行なう。これにより、このリンクダウンを検知したホスト装置２が待機パスへのパス切り替えを実行するので、待機パスに確実にパス切り替えを行なうことができ信頼性が向上する。
【００８７】
スイッチ３とストレージ装置１との間のパスは、各ホスト装置２からのポートアクセスに用いられるので、このパスが異常箇所である場合には、パス異常を早急に解消することが望ましい。従って、当該パスにかかる通信ポートを早急にポート停止状態にしてリンクダウン状態にすることで、迅速にパス切り替えが行なわれ、システムを早期に安定状態に戻すことができ、信頼性が向上する。
【００８８】
異常箇所がホスト装置２とスイッチ３との間である場合において、ホスト装置２がＴＰＧＳ対応である場合には、切替制御部１４は、ホスト装置２にＴＰＧＳによるパス閉塞処理を行なわせる。これにより、待機パスに確実にパス切り替えを行なうことができ信頼性が向上する。
異常箇所がホスト装置２とスイッチ３との間である場合において、ホスト装置２がＴＰＧＳ未対応である場合には、リンクダウン等をさせずに、パスが正常であるものとして取り扱うことでリンクダウンを抑止する。これにより、他のホスト装置２からのアクセスに影響を与えることがない。
【００８９】
フレームロスが間欠的に発生するような不安定なパスを検知し、正常なパスへ切り替えることで、安定したシステム運用が可能となる。
なお、上述した実施形態に関わらず、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、上述した実施形態においては、ストレージシステム４が２つのホスト装置２を備えるとともに２つのスイッチ３を備えているが、これに限定されるものではない。すなわち、３つ以上のホスト装置２や３つ以上のスイッチ３を備えてもよい。又、ストレージ装置１の構成も適宜変更して実施することができる。
【００９０】
また、上述した実施形態においては、ホスト装置２がリンクダウン検知や切替制御部１４からの指示に応じて、アクティブパスから待機パスへのパス切り替えを行なう例を示しているが、これに限定されるものではない。すなわち、ＴＰＧＳに対応するスイッチ（中継装置）３を備え、切替制御部１４がこのスイッチ３に対してパスの切り替え指示を発行することで、アクティブパスから待機パスへのパス切り替えを実行させてもよい。又、スイッチ３がリンクダウンの発生を検知し、アクティブパスから待機パスへのパス切り替えを行なってもよい。
【００９１】
さらに、上述した実施形態においては、ホスト装置２とストレージ装置１との間を接続する中継装置としてスイッチ３を備えているが、これに限定されるものではなく、ブリッジやルータ等の他の中継装置を用いてもよい。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
【００９２】
以上の実施形態に関し、更に以下の付記を開示する。
（付記１）
記憶装置を有するストレージ装置と複数の上位装置と中継装置とを備え、前記複数の上位装置が前記中継装置を介して複数のパスで前記ストレージ装置に接続されるストレージシステムにおいて、
前記複数のパスのいずれかのパスにおける異常の発生を検知する異常検知部と、
前記パスにおける異常の発生を検知すると、通信異常数とＩＯ数とに基づいて異常箇所を特定する特定部と、
特定された前記異常箇所に応じて前記複数の上位装置もしくは中継装置のいずれかに、データ通信経路を前記異常の発生が検知されたパスから前記複数のパスのうちの他のパスへの切り替えを実行させる制御を行なう切替制御部と
を備えることを特徴とする、ストレージシステム。
【００９３】
（付記２）
前記異常箇所が前記中継装置と前記ストレージ装置との間である場合には、
前記切替制御部が、前記ストレージ装置における前記中継装置が接続される通信ポートを通信不可状態にするポート停止処理を実行して前記通信ポートを通信不可状態にすることで前記パス切り替えを実行させることを特徴とする、付記１記載のストレージシステム。
【００９４】
（付記３）
前記切替制御部が、
前記異常箇所が前記中継装置と前記ストレージ装置との間以外である場合には、前記ポート停止処理の実行を抑止することを特徴とする、付記２記載のストレージシステム。
（付記４）
前記異常箇所が中継装置と前記ストレージ装置との間以外であり、且つ、前記上位装置がパス切替制御機能を有している場合には、
前記切替制御部が、前記上位装置にパス切替指示を送信することで前記パス切り替えを実行させることを特徴とする、付記３記載のストレージシステム。
【００９５】
（付記５）
前記異常検知部が、通信異常通知信号の発行元の上位装置についてのＩＯ数に対する通信異常数の比率に基づいて前記パスにおける異常の発生を検知することを特徴とする、付記１〜４のいずれか１項に記載のストレージシステム。
（付記６）
前記特定部が、前記ストレージ装置の通信ポートを用いる全上位装置についてのＩＯ数に対する通信異常数の比率に基づいて異常箇所を特定することを特徴とする、付記１〜５のいずれか１項に記載のストレージシステム。
【００９６】
（付記７）
複数の上位装置と中継装置を介した複数のパスで接続されるストレージ装置の制御装置であって、
前記複数のパスのいずれかのパスにおける異常の発生を検知する異常検知部と、
前記パスにおける異常の発生を検知すると、通信異常数とＩＯ数とに基づいて異常箇所を特定する特定部と、
特定された前記異常箇所に応じて前記複数の上位装置もしくは中継装置のいずれかに、データ通信経路を前記異常の発生が検知されたパスから前記複数のパスのうちの他の待機パスへ切り替えるパス切り替えを実行させる制御を行なう切替制御部と
を備えることを特徴とする、制御装置。
【００９７】
（付記８）
前記異常箇所が前記中継装置と前記ストレージ装置との間である場合には、
前記切替制御部が、前記ストレージ装置における前記中継装置が接続される通信ポートを通信不可状態にするポート停止処理を実行して前記通信ポートを通信不可状態にすることで前記待機パスへの切り替えを行なうことを特徴とする、付記７記載の制御装置。
【００９８】
（付記９）
前記切替制御部が、
前記異常箇所が前記中継装置と前記ストレージ装置との間以外である場合には、前記ポート停止処理の実行を抑止することを特徴とする、付記８記載の制御装置。
（付記１０）
前記異常箇所が中継装置と前記ストレージ装置との間以外であり、且つ、前記上位装置がパス切替制御機能を有している場合には、
前記切替制御部が、前記上位装置にパス切替指示を送信することで前記パス切り替えを実行させることを特徴とする、付記９記載の制御装置。
【００９９】
（付記１１）
前記異常検知部が、通信異常通知信号の発行元の上位装置についてのＩＯ数に対する通信異常数の比率に基づいて前記パスにおける異常の発生を検知することを特徴とする、付記７〜１０のいずれか１項に記載の制御装置。
（付記１２）
前記特定部が、前記ストレージ装置の通信ポートを用いる全上位装置についてのＩＯ数に対する通信異常数の比率に基づいて異常箇所を特定することを特徴とする、付記７〜１１のいずれか１項に記載の制御装置。
【０１００】
（付記１３）
複数の上位装置と中継装置を介した複数のパスで接続されるストレージ装置において、
前記複数のパスのいずれかのパスにおける異常の発生を検知する処理と、
前記パスにおける異常の発生を検知すると、通信異常数とＩＯ数とに基づいて異常箇所を特定する処理と、
特定された前記異常箇所に応じて前記複数の上位装置もしくは中継装置のいずれかに、データ通信経路を前記異常の発生が検知されたパスから前記複数のパスのうちの他のパスへ切り替えるパス切り替えを実行させる制御を行なう処理と
をコンピュータに実行させることを特徴とする、制御プログラム。
【０１０１】
（付記１４）
前記異常箇所が前記中継装置と当該ストレージ装置との間である場合には、
前記ストレージ装置における前記中継装置が接続される通信ポートを通信不可状態にするポート停止処理を実行して前記通信ポートを通信不可状態にすることで前記パス切り替えを実行させる
処理を前記コンピュータに実行させることを特徴とする、付記１３記載の制御プログラム。
【０１０２】
（付記１５）
前記異常箇所が前記中継装置と当該ストレージ装置との間以外である場合には、前記ポート停止処理の実行を抑止する
処理を前記コンピュータに実行させることを特徴とする、付記１４記載の制御プログラム。
【０１０３】
（付記１６）
前記異常箇所が中継装置と当該ストレージ装置との間以外であり、且つ、前記上位装置がパス切替制御機能を有している場合には、
前記上位装置にパス切替指示を送信することで前記パス切り替えを実行させる
処理を前記コンピュータに実行させることを特徴とする、付記１５記載の制御プログラム。
【０１０４】
（付記１７）
通信異常通知信号の発行元の上位装置についてのＩＯ数に対する通信異常数の比率に基づいて前記パスにおける異常の発生を検知する
処理を前記コンピュータに実行させることを特徴とする、付記１３〜１６のいずれか１項に記載の制御プログラム。
【０１０５】
（付記１８）
前記ストレージ装置の通信ポートを用いる全上位装置についてのＩＯ数に対する通信異常数の比率に基づいて異常箇所を特定する
処理を前記コンピュータに実行させることを特徴とする、付記１３〜１７のいずれか１項に記載の制御プログラム。
【０１０６】
（付記１９）
複数の上位装置と中継装置を介した複数のパスで接続されるストレージ装置において、
前記複数のパスのいずれかのパスにおける異常の発生を検知する処理と、
前記パスにおける異常の発生を検知すると、通信異常数とＩＯ数とに基づいて異常箇所を特定する処理と、
特定された前記異常箇所に応じて前記複数の上位装置もしくは中継装置のいずれかに、データ通信経路を前記異常の発生が検知されたパスから前記複数のパスのうちの他のパスへ切り替えるパス切り替えを実行させる制御を行なう処理と
をコンピュータに実行させることを特徴とする、制御プログラムを記録したコンピュータ読取可能な記録媒体。
【符号の説明】
【０１０７】
１    ストレージ装置
２，２ａ，２ｂ    ホスト装置（上位装置）
３，３ａ，３ｂ    スイッチ（中継装置）
４    ストレージシステム
１１    ＩＯ管理部
１２    異常検知部（検知部）
１３    特定部
１４    切替制御部
３０    ドライブエンクロージャ
３１    記憶装置
４０    コントローラエンクロージャ
６１    ＩＯカウンタ値
６２    ＡＢＴＳカウンタ値
６３    管理テーブル
６４    第１閾値
６５    第２閾値
６６    第３閾値
１００ａ，１００ｂ，１００    ＣＭ（制御装置）
１０１，１０１ａ，１０１ｂ    ＣＡ
１０３    ＤＡ
１０６    メモリ
１０７    ＳＳＤ
１０８    ＩＯＣ
１１０    ＣＰＵ
【図１】
2015158702.tif 000003
【図２】
2015158702.tif 000004
【図３】
2015158702.tif 000005
【図４】
2015158702.tif 000006
【図５】
2015158702.tif 000007
【図６】
2015158702.tif 000008
【図７】
2015158702.tif 000009
【図８】
2015158702.tif 000010
【図９】
2015158702.tif 000011
【図１０】
2015158702.tif 000012
【図１１】
2015158702.tif 000013