(57)【要約】【課題】  記憶ユニットに対する複数のコントローラのアクセス性能が異なるストレージ装置に対する、アクセス時に経由するコントローラを障害により変更する場合の、アクセス性能の低下を軽減するパス制御装置を提供する。【解決手段】  本発明のパス制御装置は、記憶ユニットとホスト装置とに接続され、前記記憶ユニットと前記ホスト装置との間のデータ転送を行う複数のコントローラのそれぞれと、前記ホスト装置との間の通信の障害の有無を検出する監視手段と、前記コントローラの各々の優先順位を記憶する優先順位記憶手段と、通信の障害が検出されない前記コントローラで、前記優先順位が最も高い前記コントローラを選択する選択手段と、前記記憶ユニットに対するアクセスを、識別子を通知された前記コントローラを経由して行う前記ホスト装置に、選択された前記コントローラの識別子を通知する通知手段とを含む。【選択図】      図１１
2014146180.tif 000002
【特許請求の範囲】
【請求項１】
記憶ユニットとホスト装置とに接続され、前記記憶ユニットと前記ホスト装置との間のデータ転送を行う複数のコントローラのそれぞれと、前記ホスト装置との間の通信の障害の有無を検出する監視手段と、
前記コントローラの各々の優先順位を記憶する優先順位記憶手段と、
通信の障害が検出されない前記コントローラで、前記優先順位が最も高い前記コントローラを選択する選択手段と、
前記記憶ユニットに対するアクセスを、識別子を通知された前記コントローラを経由して行う前記ホスト装置に、選択された前記コントローラの識別子を通知する通知手段と
を含むパス制御装置。
【請求項２】
複数の前記コントローラは、それぞれ、複数の前記ホスト装置に接続され、前記記憶ユニットと複数の前記ホスト装置との間でデータを転送し、
前記監視手段は、前記コントローラと複数の前記ホスト装置の間の通信の障害の有無を検出し、
前記選択手段は、前記複数のホスト装置のいずれに対しても通信の障害が検出されない前記コントローラで、前記優先順位が最も高い前記コントローラを選択する
請求項１に記載のパス制御装置。
【請求項３】
前記記憶ユニットに対するアクセス性能を計測する前記コントローラの各々から、計測された前記アクセス性能を取得し、取得された前記アクセス性能が高いほど前記優先順位が高くなるよう、前記コントローラの各々の前記優先順位を決定し、前記コントローラ毎の決定された前記優先順位を前記優先順位記憶手段に格納する優先順位決定手段
を含む請求項１又は２に記載のパス制御装置。
【請求項４】
前記記憶ユニットと、前記ホスト装置と、請求項１乃至３にいずれかに記載のパス制御装置とを含む情報処理システム。
【請求項５】
記憶ユニットとホスト装置とに接続され、前記記憶ユニットと前記ホスト装置との間のデータ転送を行う複数のコントローラのそれぞれと、前記ホスト装置との間の通信の障害の有無を検出し、
前記コントローラの各々の優先順位を優先順位記憶手段に記憶し、
通信の障害が検出されない前記コントローラで、前記優先順位が最も高い前記コントローラを選択し、
前記記憶ユニットに対するアクセスを、識別子を通知された前記コントローラを経由して行う前記ホスト装置に、選択された前記コントローラの識別子を通知する
パス制御方法。
【請求項６】
それぞれ、複数の前記ホスト装置に接続された複数の前記コントローラで、前記記憶ユニットと複数の前記ホスト装置との間でデータを転送し、
前記コントローラと複数の前記ホスト装置の間の通信の障害の有無を検出し、
前記複数のホスト装置のいずれに対しても通信の障害が検出されない前記コントローラで、前記優先順位が最も高い前記コントローラを選択する
請求項５に記載のパス制御方法。
【請求項７】
前記記憶ユニットに対するアクセス性能を計測する前記コントローラの各々から、計測された前記アクセス性能を取得し、取得された前記アクセス性能が高いほど前記優先順位が高くなるよう、前記コントローラの各々の前記優先順位を決定し、前記コントローラ毎の決定された前記優先順位を前記優先順位記憶手段に格納する
請求項５又は６に記載のパス制御方法。
【請求項８】
コンピュータを、
記憶ユニットとホスト装置とに接続され、前記記憶ユニットと前記ホスト装置との間のデータ転送を行う複数のコントローラのそれぞれと、前記ホスト装置との間の通信の障害の有無を検出する監視手段と、
前記コントローラの各々の優先順位を記憶する優先順位記憶手段と、
通信の障害が検出されない前記コントローラで、前記優先順位が最も高い前記コントローラを選択する選択手段と、
前記記憶ユニットに対するアクセスを、識別子を通知された前記コントローラを経由して行う前記ホスト装置に、選択された前記コントローラの識別子を通知する通知手段と
して動作させるパス制御プログラム。
【請求項９】
コンピュータを、
それぞれ、複数の前記ホスト装置に接続され、前記記憶ユニットと複数の前記ホスト装置との間でデータを転送する、複数の前記コントローラの各々と、複数の前記ホスト装置の間の通信の障害の有無を検出する前記監視手段と、
前記複数のホスト装置のいずれに対しても通信の障害が検出されない前記コントローラで、前記優先順位が最も高い前記コントローラを選択する前記選択手段と
して動作させる請求項８に記載のパス制御プログラム。
【請求項１０】
コンピュータを、
前記記憶ユニットに対するアクセス性能を計測する前記コントローラの各々から、計測された前記アクセス性能を取得し、取得された前記アクセス性能が高いほど前記優先順位が高くなるよう、前記コントローラの各々の前記優先順位を決定し、前記コントローラ毎の決定された前記優先順位を前記優先順位記憶手段に格納する優先順位決定手段
して動作させる請求項８又は９に記載のパス制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はパス制御装置、パス制御方法、およびパス制御プログラムに関し、特に、マルチパス構成のストレージ装置におけるパス制御装置、パス制御方法、およびパス制御プログラムに関する。
【背景技術】
【０００２】
ホスト装置に接続される複数のコントローラを備えることで冗長性を確保するストレージ装置において、コントローラに障害が発生した場合に、コントローラの切り替えを行うストレージ装置の例が、例えば特許文献１や特許文献２に記載されている。
【０００３】
特許文献１の記憶装置システムは、記憶装置のグループに対して、フェールオーバー可能なインタフェース装置群を含む。あるインタフェース装置に障害が発生した場合、そのインタフェース装置と同一のインタフェース装置群に含まれるインタフェース装置が処理を引き継ぐ。インタフェース装置群に含まれる全てのインタフェース装置に対して、そのインタフェース装置群に含まれる他の１台のインタフェース装置が、処理を引き継ぐインタフェース装置として設定されている。処理を引き継ぐインタフェース装置は、障害が発生したインタフェース装置の処理を引き継ぐインタフェース装置として設定されているインタフェース装置である。あるいは、処理を引き継ぐインタフェース装置は、障害が発生したインタフェース装置が含まれるインタフェース装置群の中で最も稼働率が低い正常なインタフェース装置である。
【０００４】
特許文献２には、２つのパスでホストに接続されたストレージ装置が記載されている。ストレージ装置のコントローラは、タイムアウト、アボート、リセットなどの軽度障害の発生回数をカウントする。そしえｔ、ストレージ装置のコントローラは、通信に使用中のパスで所定の閾値以上の回数の軽度障害が発生した場合、ホストからのアクセスに対する応答としてハードウェアエラーを返す。ハードウェアエラーを受信したホストは、通信パスを他方のパスに切り替える。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−２０８３６２号公報
【特許文献２】特開２００６−１０７１５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ホスト装置から記憶ユニットへのアクセスを中継する複数のコントローラと、複数の記憶ユニットを含むストレージ装置には、記憶ユニットへのアクセス性能がコントローラによって異なるストレージ装置がある。
【０００７】
しかし、特許文献１および特許文献２の装置は、各コントローラの記憶ユニットへのアクセス性能の違いには関係なく、コントローラの切り替えを行う。従って、特許文献１及び特許文献２の装置は、記憶ユニットに対する複数のコントローラのアクセス性能が異なるストレージ装置に対する、アクセス時に経由するコントローラを障害により変更する場合の、アクセス性能の低下を軽減することができない。
【０００８】
本発明の目的は、記憶ユニットに対する複数のコントローラのアクセス性能が異なるストレージ装置に対する、アクセス時に経由するコントローラを障害により変更する場合の、アクセス性能の低下を軽減するパス制御装置を提供することにある。
【課題を解決するための手段】
【０００９】
本発明のパス制御装置は、記憶ユニットとホスト装置とに接続され、前記記憶ユニットと前記ホスト装置との間のデータ転送を行う複数のコントローラのそれぞれと、前記ホスト装置との間の通信の障害の有無を検出する監視手段と、前記コントローラの各々の優先順位を記憶する優先順位記憶手段と、通信の障害が検出されない前記コントローラで、前記優先順位が最も高い前記コントローラを選択する選択手段と、前記記憶ユニットに対するアクセスを、識別子を通知された前記コントローラを経由して行う前記ホスト装置に、選択された前記コントローラの識別子を通知する通知手段とを含む。
【００１０】
本発明のパス制御方法は、記憶ユニットとホスト装置とに接続され、前記記憶ユニットと前記ホスト装置との間のデータ転送を行う複数のコントローラのそれぞれと、前記ホスト装置との間の通信の障害の有無を検出し、前記コントローラの各々の優先順位を優先順位記憶手段に記憶し、通信の障害が検出されない前記コントローラで、前記優先順位が最も高い前記コントローラを選択し、前記記憶ユニットに対するアクセスを、識別子を通知された前記コントローラを経由して行う前記ホスト装置に、選択された前記コントローラの識別子を通知する。
【００１１】
本発明のパス制御プログラムは、コンピュータを、記憶ユニットとホスト装置とに接続され、前記記憶ユニットと前記ホスト装置との間のデータ転送を行う複数のコントローラのそれぞれと、前記ホスト装置との間の通信の障害の有無を検出する監視手段と、前記コントローラの各々の優先順位を記憶する優先順位記憶手段と、通信の障害が検出されない前記コントローラで、前記優先順位が最も高い前記コントローラを選択する選択手段と、前記記憶ユニットに対するアクセスを、識別子を通知された前記コントローラを経由して行う前記ホスト装置に、選択された前記コントローラの識別子を通知する通知手段として動作させる。
【発明の効果】
【００１２】
本発明には、記憶ユニットに対する複数のコントローラのアクセス性能が異なるストレージ装置に対する、アクセス時に経由するコントローラを障害により変更する場合の、アクセス性能の低下を軽減することができるという効果がある。
【図面の簡単な説明】
【００１３】
【図１】図１は、第１の実施形態の情報処理システム１００の構成を表す図である。
【図２】図２は、コントローラ２０の構成の例を表す図である。
【図３】図３は、第１の実施形態の本実施形態のパス制御装置１の、優先順位決定時の動作の例を表すフローチャートである。
【図４】図４は、優先順位記憶部１１が記憶する各コントローラ２０の優先順位の例を表す図である。
【図５】図５は、第１の実施形態のパス制御装置１の、障害検出時の動作の例を表すフローチャートである。
【図６】図６は、コントローラ２０が記憶する、管理テーブルの例を表す図である。
【図７】図７は、コントローラ２０が記憶する、管理テーブルの例を表す図である。
【図８】図８は、コントローラ２０が記憶する、管理テーブルの例を表す図である。
【図９】図９は、コントローラ２０が記憶する、管理テーブルの例を表す図である。
【図１０】図１０は、コントローラ２０が記憶する、管理テーブルの例を表す図である。
【図１１】図１１は、第２の実施形態のパス制御装置１Ａの構成を表す図である。
【発明を実施するための形態】
【００１４】
次に、本発明の第１の実施の形態について図面を参照して詳細に説明する。
【００１５】
図１は、本実施形態の情報処理システム１００の構成を表す図である。
【００１６】
図１を参照すると、情報処理システム１００は、パス制御装置１と、ストレージシステム２と、ホスト装置３を含む。情報処理システム１００は、ストレージシステム２に接続された保守端末５を含んでいてもよい。
【００１７】
パス制御装置１は、監視部１０と、優先順位記憶部１１と、選択部１２と、通知部１３と、優先順位決定部１４を含む。
【００１８】
ストレージシステム２は、複数のコントローラ２０と、記憶装置２２を含む。記憶装置２２は、１個以上の、ハードディスクドライブやその他の物理的な記憶装置で構成される。記憶装置２２は、記憶ユニット２１を含む。記憶装置２２は、複数の記憶ユニット２１を含んでいてもよい。記憶ユニット２１は、前述の物理的な記憶装置であっても、１個以上の物理的な記憶装置上に構成された論理的なボリュームであってもよい。
【００１９】
それぞれのコントローラ２０とそれぞれのホスト装置３は、互いにアクセスすることができるよう接続されている。コントローラ２０とホスト装置３は、直接接続されていてもよい。コントローラ２０とホスト装置３は、例えばスイッチ装置４を介して接続されていてもよい。複数のスイッチ装置４が、コントローラ２０とホスト装置３の間に接続されていてもよい。コントローラ２０とホスト装置３は、ネットワークを介して接続されていてもよい。
【００２０】
それぞれのコントローラ２０とそれぞれの記憶ユニット２１は、コントローラ２０が各記憶ユニット２１にアクセスできるよう接続されている。
【００２１】
コントローラ２０は、各ホスト装置３と、各記憶ユニット２１との間の、データの転送を中継する。
【００２２】
本実施形態では、記憶ユニット２１に対するアクセス性能は、記憶ユニット２１とその記憶ユニット２１へのアクセス時に経由するコントローラ２０の組み合わせによって異なる。ストレージシステム２は、記憶ユニット２１への最適な経路として、通常、その記憶ユニット２１へのアクセス性能が最も高いコントローラ２０の識別子を、記憶ユニット２１毎に保持している。後述のように、パス制御装置１が最適な経路の設定を行う。各ホスト装置３は、ストレージシステム２に対して、記憶ユニット２１へのアクセスの最適な経路の問い合わせを行う。ストレージシステム２は、問い合わせを行ったホスト装置３に対して、その記憶ユニット２１への最適な経路として設定されているコントローラ２０の識別子を送信する。ホスト装置３は、上述の問い合わせを、例えば、ストレージシステム２の全てのコントローラ２０に対して送信する。そして、例えば、最適な経路として設定されているコントローラ２０が、識別子の返送を行う。ホスト装置３は、識別子を受信したコントローラ２０を経由して、記憶ユニット２１へのアクセスを行う。
【００２３】
パス制御装置１は、ストレージシステム２に含まれていてもよい。パス制御装置１は、いずれか又は全てのコントローラ２０に含まれていてもよい。パス制御装置１が複数のコントローラ２０に含まれている場合、所定のコントローラ２０に含まれるパス制御装置１が、後述の動作を行えばよい。この場合、例えば、動作中のパス制御装置１を含むコントローラ２０の障害の有無を他のコントローラ２０が監視し、障害が検出されると、障害を検出したコントローラ２０が含むパス制御装置１が動作を引き継げばよい。動作を引き継ぐパス制御装置１を含むコントローラ２０の選択の方法は、任意でよい。例えば、各コントローラ２０に、パス制御装置１の動作を引き継ぐ順番を設定しておけばよい。
【００２４】
パス制御装置１は、監視部１０と、優先順位記憶部１１と、選択部１２と、通知部１３と、優先順位決定部１４を含む。
【００２５】
監視部１０は、記憶ユニット２１とホスト装置３との間のデータ転送を行う複数のコントローラ２０のそれぞれと、ホスト装置３との間の通信の障害の有無を、コントローラ２０毎に検出する。
【００２６】
優先順位記憶部１１は、コントローラ２０の各々の優先順位を、記憶ユニット２１毎に記憶する。
【００２７】
選択部１２は、ホスト装置３の各々に対して通信の障害が検出されないコントローラ２０で、優先順位が最も高いコントローラ２０を、記憶ユニット２１毎に選択する。
【００２８】
通知部１３は、ホスト装置３に、記憶ユニット２１に対するアクセスを、選択されたコントローラ２０を経由して行うよう通知する。
【００２９】
いずれかのホスト装置３とコントローラ２０との間に通信の障害が発生している場合、そのコントローラ２０を経由する、他のホスト装置３と記憶ユニット２１との間のデータ転送に支障をきたすおそれがある。従って、選択部１２は、いずれかのホスト装置３に対する通信に障害が検出されたコントローラ２０を、記憶ユニット２１に対するアクセスの際経由するコントローラ２０として選択しない。
【００３０】
優先順位決定部１４は、記憶ユニット２１の各々に対するアクセス性能を計測するコントローラ２０の各々から、計測されたアクセス性能を取得する。そして、優先順位決定部１４は、取得されたアクセス性能が高いほど優先順位が高くなるよう、記憶ユニット２１毎に、コントローラ２０の各々の優先順位を決定する。優先順位決定部１４は、記憶ユニット２１の識別子とコントローラ２０毎の決定された優先順位を対応付けて、優先順位記憶部１１に格納する。優先順位決定部１４は、さらに、記憶ユニット２１毎の各コントローラ２０の優先順位を、各コントローラ２０に送信してもよい。
【００３１】
図２は、コントローラ２０の構成の例を表す図である。
【００３２】
図２を参照すると、コントローラ２０は、第１のインタフェース部２０１と、転送部２０２と、第２のインタフェース部２０３と、管理テーブル記憶部２０４と、アクセス性能測定部２０５を含む。
【００３３】
第１のインタフェース部２０１は、転送部２０２と各ホスト装置３との間で、データの転送を行う。
【００３４】
転送部２０２は、第１のインタフェース部２０１と第２のインタフェース部２０３との間のデータの転送を中継する。また、転送部２０２は、コントローラ２０と各ホスト装置３の間の通信の障害の有無を検出する。転送部２０２は、各ホスト装置３からコントローラ２０に送信されるコマンドの有無にを検出することにより、通信の障害の有無を検出すればよい。転送部２０２は、例えば、過去の所定時間内にホスト装置３からのコマンドが検出された場合、そのホスト装置３とコントローラ２０の間に通信の障害がないと判定する。また、転送部２０２は、例えば、過去の所定時間内にホスト装置３からのコマンドが検出されない場合、そのホスト装置３とコントローラ２０の間に通信の障害があると判定する。そして、転送部２０２は、ホスト装置３毎の、検出された通信の障害の有無を、管理テーブル記憶部２０４に格納する。転送部２０２が検出するコマンドは、最適な経路の問い合わせ、データの書き込み、データの読み出しなどのコマンドを含んでいればよい。
【００３５】
第２のインタフェース部２０３は、転送部２０２と各記憶ユニット２１との間で、データの転送を行う。
【００３６】
管理テーブル記憶部２０４は、ホスト装置３毎に、ホスト装置３とコントローラ２０との間の障害の有無を記憶する。また、管理テーブル記憶部２０４は、ホスト装置３毎に、ホスト装置３によるストレージシステム２の使用の有無を記憶する。さらに、管理テーブル記憶部２０４は、記憶ユニット２１毎に、コントローラ２０を経由する経路が、記憶ユニット２１に対する最適なアクセス経路であるか、非最適なアクセス経路であるかを記憶する。コントローラ２０は、ホスト装置３から、記憶ユニット２１に対する最適な経路の問い合わせを受信すると、例えば自身が最適である場合に、問い合わせを行ったホスト装置３に、返答を行う。管理テーブル記憶部２０４は、記憶ユニット２１毎に、コントローラ２０の優先順位を記憶してもよい。
【００３７】
管理テーブル記憶部２０４が記憶する優先順位は、例えば、管理者により管理端末５から入力される。あるいは、管理テーブル記憶部２０４が記憶する優先順位は、例えば、パス制御装置１の通知部１３により入力される。
【００３８】
前述の監視部１０は、例えば、管理テーブル記憶部２０４から各ホスト装置３に対応する障害の有無を読み出すことにより、コントローラ２０と各ホスト装置３の間の通信の障害を検出する。
【００３９】
アクセス性能測定部２０５は、記憶ユニット２１毎に、コントローラ２０と記憶ユニット２１の間のアクセス性能を測定する。そして、アクセス性能測定部２０５は、測定された記憶ユニット２１毎のアクセス性能を、優先順位決定部１４に送信する。アクセス性能は、アクセス性能の高さを表す指標であれば、任意の指標であってよい。アクセス性能は、例えば、スループットである。アクセス性能は、例えば、単位時間当たりの入出力命令の処理回数であってもよい。アクセス性能測定部２０５は、記憶ユニット２１毎の、測定したアクセス性能を、管理テーブル記憶部２０４に格納してもよい。
【００４０】
パス制御装置１が、ストレージシステム２やコントローラ２０に含まれている場合、管理テーブル記憶部２０４が優先順位記憶部１１を兼ねていてもよい。
【００４１】
次に、優先順位決定時のパス制御装置１の動作について、図面を参照して詳細に説明する。
【００４２】
図３は、優先順位決定時のパス制御装置１の動作の例を表すフローチャートである。
【００４３】
図３を参照すると、まず、優先順位決定部１４が、各コントローラ２０に対して、各記憶ユニット２１に対するアクセス性能の送信を要求する（ステップＳ１０１）。
【００４４】
各コントローラ２０は、各記憶ユニット２１に対するアクセス性能を測定する。各コントローラ２０は、予め測定し管理テーブル記憶部２０４に格納しておいた各記憶ユニット２１に対するアクセス性能を、管理テーブル記憶部２０４から読み出してもよい。各コントローラ２０は、各記憶ユニット２１に対するアクセス性能を、優先順位決定部１４に送信する。
【００４５】
優先順位決定部１４は、各コントローラ２０から、各記憶ユニット２１に対するアクセス性能を取得する（ステップＳ１０２）。
【００４６】
優先順位決定部１４は、記憶ユニット２１毎に、各コントローラ２０の優先順位を決定する（ステップＳ１０３）。優先順位決定部１４は、記憶ユニット２１に対するアクセス性能が高いコントローラ２０ほど、優先順位が高くなるように、優先順位を決定する。
【００４７】
優先順位決定部１４は、記憶ユニット２１毎の、各コントローラ２０の優先順位を、優先順位記憶部１１に格納する（ステップＳ１０４）。
【００４８】
図４は、優先順位記憶部１１が記憶する各コントローラ２０の優先順位の例を表す図である。
【００４９】
次に、パス制御装置１の障害検出時の動作について、図面を参照して詳細に説明する。
【００５０】
図５は、本実施形態のパス制御装置１の、障害検出時の動作の例を表すフローチャートである。
【００５１】
ストレージシステム２が動作を開始すると、監視部１０は、各コントローラ２０と各ホスト装置３の間の通信の障害を検出する（ステップＳ２０１）。
【００５２】
前述のように、各コントローラ２０は、例えばコントローラ２０が所定時間内に各ホスト装置３から受信したコマンドの有無を、障害の有無として管理テーブル記憶部２０４に格納すればよい。監視部１０は、各コントローラ２０から、コントローラ２０と各ホスト装置３の間の通信の障害の有無を取得することで、検出を行えばよい。監視部１０は、管理テーブル２０４から、障害の有無を読み出してもよい。
【００５３】
図６は、コントローラ２０の管理テーブル記憶部２０４が記憶する、管理テーブルの例を表す図である。図６は、例えば、識別子がコントローラＡであるコントローラ２０の管理テーブル２０４が記憶する管理テーブルである。
【００５４】
図６の管理テーブルは、各ホスト装置３との間の通信の障害の有無を含む。また、図６の管理テーブルは、各ホスト装置３による、ストレージシステム２の使用の有無を含む。図６の例では、ホスト装置３を識別するための識別子であるホスト識別子がホストｍであるホスト装置３とコントローラ２０の間の通信で、障害が「有」である。しかし、パス制御装置１やコントローラ２０は、ストレージシステム２を不使用のホスト装置３に対して検出された障害は、通信の障害として扱わない。図６の例では、ホストｍは、ストレージシステム２を使用していない。従って、図６の例では、コントローラ２０との間の通信に障害があるホスト装置３は存在しない。
【００５５】
また、図６の例では、記憶ユニットａに対するコントローラＡの優先順位は１である。また、コントローラＡは、ホスト装置３による記憶ユニットａに対するアクセス時の最適な経路として設定されている。ホスト装置３による記憶ユニットａに対するアクセスの最適な経路の問い合わせに対して、ストレージシステム２は、コントローラＡの識別子を返信する。返信を受信したホスト装置３は、記憶ユニットａに対して、コントローラＡを経由してアクセスを行う。
【００５６】
障害が検出されたコントローラ２０に変化が無い場合（ステップＳ２０２、Ｎ）、処理はステップＳ２０１に戻る。
【００５７】
図７から図１０は、コントローラ２０の管理テーブル記憶部２０４が記憶する、管理テーブルの例を表す図である。図７は、例えば、識別子がコントローラＡであるコントローラ２０の管理テーブル２０４が記憶する管理テーブルである。コントローラＡの記憶ユニットａに対する優先順位は１である。図７の例は、図６とは異なり、ホスト識別子がホスト２であるホスト装置３とコントローラＡとの間の通信に、障害が存在する。コントローラＡは記憶ユニットａに対する最適な経路として選択されている。
【００５８】
図８は、例えば、識別子がコントローラＢであるコントローラ２０の管理テーブル２０４が記憶する管理テーブルである。コントローラＢの記憶ユニットａに対する優先順位は２である。コントローラＢは記憶ユニットａに対する最適な経路として選択されていない。また、コントローラＢの記憶ユニットａに対する優先順位は１である。また、コントローラＢは記憶ユニットａに対する最適な経路として選択されている。
【００５９】
本実施形態では、他のコントローラ２０の記憶ユニットａに対する優先順位は、コントローラＡ及びコントローラＢの記憶ユニットａに対する優先順位より低い。コントローラＡ及びコントローラＢのコントローラ２０の管理テーブルは省略されている。
【００６０】
コントローラＡとコントローラＢが記憶する管理テーブルが、それぞれ図７及び図８の例である場合、コントローラＡとホスト識別子がホスト２であるホスト装置３との間に障害があるので、監視部１０は、障害を検出する。
【００６１】
例えば、コントローラＡの管理テーブルが、図６から図７に変化した場合、コントローラＡに新たに障害が検出される。すなわち、ホスト装置３とコントローラ２０の間の通信の障害の検出結果が変化する（ステップＳ２０２、Ｙ）。
【００６２】
この場合、選択部１２は、いずれのホスト装置３との間にも障害が検出されないコントローラ２０で、最も優先順位が高いコントローラ２０を、記憶ユニット２１毎に選択する（ステップＳ２０３）。選択部１２は、ホスト装置３からストレージシステム２に、記憶ユニット２１へのアクセスの経路の変更命令が送信した場合に、ステップＳ２０３移行の動作を行ってもよい。このような変更命令は、例えば、ＳＣＳＩコマンドのSet Target Port Groupsである。また、この場合、変更命令を受信したストレージシステム２のいずれかのコントローラ２０が、パス制御装置１に、変更命令の受信を通知すればよい。
【００６３】
図７及び図８の例では、記憶ユニットａに対して最も優先順位が高い、いずれのホスト装置３との間にも障害が検出されないコントローラ２０は、コントローラＢである。従って、選択部１２は、記憶ユニットａに対して、コントローラＢを選択する。同様に、記憶ユニットｂに対して最も優先順位が高い、いずれのホスト装置３との間にも障害が検出されないコントローラ２０は、コントローラＢである。従って、選択部１２は、記憶ユニットｂに対して、コントローラＢを選択する。
【００６４】
次に、通知部１３が、各ホスト装置３に、記憶ユニット２１毎に選択されたコントローラ２０を経由する経路で、記憶ユニット２１にアクセスする指示を送信する（ステップＳ２０４）。
【００６５】
通知部１３は、例えば、各コントローラ２０の管理テーブルを変更することで、各ホスト装置３に記憶ユニット２１毎の経路の指示を行えばよい。すなわち、通知部１３は、記憶ユニット２１毎に、選択されたコントローラ２０の管理テーブルに「最適」を設定し、選択されないコントローラ２０の管理テーブルに「非最適」を設定すればよい。各ホスト装置３は、例えば定期的に、記憶ユニット２１に対する最適な経路を、各コントローラ２０に問い合わせる。「最適」が設定されているコントローラ２０は、記憶ユニット２１に対する最適な経路の問い合わせを受信すると、問い合わせの送信元のホスト装置３に、例えば自装置の識別子を特定可能な返答を行う。ホスト装置２０は、例えば、受信した返答の送信元のアドレスにより、「最適」が設定されているコントローラ２０を特定することができる。例えば送信される返答が、「最適」が設定されているコントローラ２０の識別子を含んでいてもよい。ホスト装置２０は、問い合わせに対する返答で特定されるコントローラ２０を経由して、記憶ユニット２１にアクセスを行う。
【００６６】
通知部１３は、例えば、記憶ユニット２１の識別子と、その記憶ユニット２１に対して選択されたコントローラ２０の識別子との組を、上述の指示としてホスト装置３に直接送信してもよい。記憶ユニット２１の識別子とコントローラ２０の識別子との組を受信したホスト装置３は、受信した組に識別子が含まれる記憶ユニット２１にアクセスする際、同じ組に識別子が含まれるコントローラ２０を経由してアクセスを行えばよい。
【００６７】
図７及び図８の例では、記憶ユニットａに対する最適な経路として選択されている、記憶ユニットａに対する優先順位が最も高いコントローラＡに、障害が発生している。コントローラＡは、記憶ユニットａに対するアクセス性能が最も高いコントローラ２０である。一方、記憶ユニットａに対する優先順位が２であるコントローラＢには、障害がない。コントローラＢは、記憶ユニットａに対するアクセス性能が、コントローラＡの次に高いコントローラ２０である。
【００６８】
ストレージシステム２は、コントローラＡとコントローラＢの管理テーブルを、ステップＳ２０３及びステップＳ２０４の動作によって、それぞれ、図９及び図１０の例のように変更する。
【００６９】
図９は、通知部１３による書き換えが行われた後の、識別子がコントローラＡであるコントローラ２０の管理テーブル２０４が記憶する管理テーブルである。図９では、記憶ユニットａに対して、「非最適」が設定されている。
【００７０】
図１０は、通知部１３による書き換えが行われた後の、識別子がコントローラＢであるコントローラ２０の管理テーブル２０４が記憶する管理テーブルである。図９では、記憶ユニットａに対して、「最適」が設定されている。
【００７１】
図９及び図１０の例では、記憶ユニットａに対する最適な経路として、全てのホスト装置３に対して障害が無いコントローラ２０の中で、記憶ユニットａに対する優先順位が最も高いコントローラＢが通知される。コントローラＢは、全てのホスト装置３に対して障害が無いコントローラ２０の中で、記憶ユニットａに対するアクセス性能が最も高いコントローラ２０である。すなわち、記憶ユニットａに対する最適な経路が、ホスト２に対して障害があるコントローラＡから、全てのホスト装置３に対して障害が無いコントローラ２０の中で、記憶ユニットａに対する優先順位が最も高いコントローラＢに変更されている。
【００７２】
ストレージシステム２は、ホスト装置３からの、記憶ユニットａに対する最適な経路の問い合わせに対して、コントローラＢの識別子を返送する。問い合わせを行ったホスト装置３は、コントローラＡではなくコントローラＢを経由して、記憶ユニットａにアクセスを行う。
【００７３】
記憶ユニットｂに対する最適な経路は、記憶ユニットｂに対する優先順位が最も高く、記憶ユニットｂに対するアクセス性能が最も高いコントローラＢのままである。
【００７４】
一方、コントローラＡとホスト２の間の通信に生じていた障害が解消した場合、監視部１０による検出結果に、コントローラＡとホスト２との間の通信に障害が検出されなくなるという変化が生じる（ステップＳ２０２、Ｙ）。
【００７５】
この場合、選択部１２は、ステップＳ２０３で、記憶ユニットａに対する最適な経路として、コントローラＡを選択する。そして、ステップＳ２０４で、通知部１３は、記憶ユニットａに対する最適な経路として、コントローラＡを、各ホスト装置３に通知する。すなわち、通知部１３は、コントローラＡの管理テーブルに、記憶ユニットａに対して「最適」を設定する。設定後、ストレージシステム２が、いずれかのホスト装置３から、記憶ユニットａへのアクセス時に経由するコントローラ２０の問い合わせを受信した場合、例えばコントローラＡが、問い合わせを行ったホスト装置３に対して、自身を経由するよう通知を行う。コントローラＡは、この通知を、例えば、コントローラＡの識別子を送信することで行う。通知を受信したホスト装置３は、コントローラＡを経由して記憶ユニットａにアクセスする。通知の受信前はコントローラＢを経由して記憶ユニットａにアクセスを行っていたホスト装置３は、通知の受信後、記憶ユニットａへのアクセスで経由するコントローラ２０を、コントローラＡに変更する。
【００７６】
以上で説明した本実施形態には、複数のコントローラ２０の記憶ユニット２１に対するアクセス性能が異なるストレージシステム２に対する、アクセス時に経由するコントローラ２０を障害により変更する場合の、アクセス性能の低下を軽減することができるという効果がある。
【００７７】
その理由は、選択部１２が、各記憶ユニット２１に対して、全てのホスト装置３との間の通信に障害がないコントローラ２０の中で、記憶ユニット２１に対する優先順位が最も高いコントローラ２０を選択するからである。各記憶ユニット２１に対して選択されたコントローラ２０は、その記憶ユニット２１に対するアクセス性能が最も高いコントローラ２０である。そして、通知部１３が、各記憶ユニット２１に対して選択されたコントローラ２０を、その記憶ユニット２１に対する最適な経路として、各ホスト装置３に通知する。
【００７８】
（構成例）
次に、第１の実施形態の構成例について、図面を参照して詳細に説明する。
【００７９】
本構成例では、各ホスト装置３は、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）コマンドを、いずれかのコントローラ２０を介して、記憶ユニット２１（ＬＵＮ、Ｌｏｇｉｃａｌ  Ｕｎｉｔ  Ｎｕｍｂｅｒ）に送信することで、記憶ユニット２１にアクセスする。本構成例の情報処理システム１００では、第１の実施形態と同様に、各記憶ユニット２１へのアクセスの性能は、アクセス時に経由するパスによって、すなわち、アクセス時に経由するコントローラ２０によって、記憶ユニット２１毎に異なる。このような構成は、ＡＬＵＡ（Ａｓｙｍｍｅｔｒｉｃ  Ｌｏｇｉｃａｌ  Ｕｎｉｔ  Ａｃｃｅｓｓ）構成と呼ばれる。ＡＬＵＡに対応したシステムでは、ＡＬＵＡを制御するＳＣＳＩコマンドにより、ホストとストレージ間のパスの切り替え制御が行われる。ホスト装置３がＬＵＮにアクセスする際のパスは、そのパスが経由するコントローラ２０によって特定される。すなわち、ＬＵＮへのアクセスの際経由するコントローラ２０の識別子が、パスを表す。
【００８０】
コントローラ２０が２個の場合、ＬＵＮに対するアクセス性能が優れている方のコントローラ２０を経由するパスがPreferredパスと呼ばれる。この場合、優先順位記憶部１１は、いずれのコントローラ２０を経由するパスがPreferredパスであるかを記憶する。この場合、経由するパスPreferredパスであることを表す値と、経由するパスPreferredパスでないことを表す値が優先順位に相当する。ただし、経由するパスがPreferredパスであるコントローラ２０の優先順位が、経由するパスがPreferredパスでないコントローラ２０より優先順位より高い。コントローラ２０が３個以上存在する場合、優先順位記憶部１１は、ＬＵＮ毎に、各コントローラ２０の優先順位を記憶する。コントローラ２０が２個の場合も、優先順位記憶部１１は、ＬＵＮ毎に、各コントローラ２０の優先順位を記憶していてよい。本構成例では、優先順位記憶部１１が記憶する優先順位は、保守端末５を使用する管理者により設定される。
【００８１】
各ホスト装置３がＬＵＮへのアクセスの際経由するパスが、Active/Optimizedパスである。Active/Optimizedパスが、上述の最適が設定されているコントローラ２０を経由するパスである。Active/Optimizedパス以外のパスが、Active/Non-Optimizedパスである。Active/Non-Optimizedパスが、上述の非最適が設定されているコントローラ２０を経由するパスである。ホスト装置３から、ＡＬＵＡ制御用のＳＣＳＩコマンドであるReport Target Port Groupsを受信すると、コントローラ２０は、Active/Optimizedパスの情報を、ホスト装置３に送信する。Active/Optimizedパスの情報は、例えば、Active/Optimizedパスにおいて経由するコントローラ２０の識別子である。Report Target Port Groupsのコマンドに対する応答は、例えば、Active/Optimizedパスにおいて経由するコントローラ２０が行えばよい。
【００８２】
また、ホスト装置３は、ＬＵＮへのアクセスに使用していたパスに障害が発生し、接続が切断された場合、ＡＬＵＡ制御用のＳＣＳＩコマンドであるSet Target Port Groupsを各コントローラ２０に送信する。Set Target Port Groupsを受信したコントローラ２０は、パス制御装置１に、Set Target Port Groupsを受信したことを通知する。この通知を受信したパス制御装置１は、上述の第１の実施形態のように、コントローラ２０を選択する。パス制御装置１は、選択したコントローラ２０を経由するパスをActive/Optimizedパスに設定する。パス制御装置１は、選択されなかったコントローラ２０を経由するパスを、Active/Non-Optimizedパスに設定する。
【００８３】
本構成例の転送部２０２は、例えば後述するように管理テーブル記憶部２０４に検出結果を格納する前の所定時間内の、ホスト装置３からのＳＣＳＩコマンドの受信の有無を検出する。転送部２０２は、例えば所定時間毎に、各ホスト装置３からの所定時間内のＳＣＳＩコマンドの受信の有無を、管理テーブル記憶部２０４に格納する。本構成例の管理テーブル記憶部２０４は、管理テーブル内に、所定時間内のＳＣＳＩコマンドの受信の有無を、ホスト装置３とコントローラ２０の間の通信の障害の有無として記憶する。転送部２０２は、所定時間内にＳＣＳＩコマンドを受信した場合、ホスト装置３とコントローラ２０との間の通信に障害が無いと判定する。転送部２０２は、所定時間内にＳＣＳＩコマンドを受信しない場合、ホスト装置３とコントローラ２０との間の通信に障害があると判定する。また、管理テーブル記憶部２０４が管理テーブル内に記憶するホスト識別子は、ホスト装置３のＷＷｎ（Ｗｏｒｌｄ  Ｗｉｄｅ  ｎａｍｅ）であればよい。例えば情報処理装置１００の管理者が、管理端末５を使用して、ホスト装置３毎に、ストレージシステム２の使用の有無を設定する。ストレージシステム２は、設定された使用の有無を、管理テーブル記憶部２０４の管理テーブルに記憶する。第１の実施形態と同様に、パス制御装置１は、コントローラ２０の管理テーブルの「使用の有無」に「不使用」が設定されているホスト装置３がある場合、そのコントローラ２０とホスト装置３の間の通信を障害の監視の対象から除外する。
【００８４】
次に、本構成例の動作について説明する。
【００８５】
情報処理システム１００のユーザや管理者が、いずれかのホスト装置３または保守端末５を使用して、それぞれのホスト装置３によるストレージシステム２の使用の有無を入力する。ストレージシステム２は、例えば各コントローラ２０の管理テーブル記憶部２０４の管理テーブルに、ホスト装置３の識別子であるWWnと入力された使用状況である使用または未使用を、対応付けて記憶する。
【００８６】
各コントローラ２０は、定期的に、各ホスト装置３によるSCSIコマンドの発行の有無を検出し、検出結果をホスト装置３のWWnに対応付けて、管理テーブル記憶部２０４の管理テーブルに記憶させる。
【００８７】
パス制御装置１の監視部１０は、各コントローラ２０の管理テーブル記憶部２０４の管理テーブルを監視し、所定時間内にSCSIコマンドを発行していないホスト装置３を検出することで、コントローラ２０とホスト装置３の間の通信の障害を検出する。ただし、監視部１０は、管理テーブルに不使用が設定されているホスト装置３を、監視対象から排除する。コントローラ２０が、監視対象であるホスト装置３から所定時間内にSCSIコマンドを受信している場合、監視部１０は、そのコントローラ２０とホスト装置３の間のパスは有効であり、障害がないと判定する。
【００８８】
各ホスト装置３は、記憶ユニット２１毎にReport Target Port Groupsコマンドを発行することで、記憶ユニット２１にアクセスする最適な経路の問い合わせを行う。各ホスト装置３とストレージシステム２の間の通信が正常である場合、Report Target Port Groupsコマンドに対して、ストレージシステム２は、Active/Optimizedパスとして、優先順位が最も高いコントローラ２０の識別子を返却する。すなわち、ストレージシステム２は、記憶ユニット２１にアクセスするのに最適な経路として、優先順位が最も高いコントローラ２０の識別子を返却する。ストレージシステム２が含むコントローラ２０が２個である場合、ストレージシステム２は、Preferredパスに設定されているコントローラ２０の識別子を返却する。ホスト装置３は、識別子が返却されたコントローラ２０を経由して、記憶ユニット２１にアクセスする。
【００８９】
以下の説明では、コントローラＡが、記憶ユニット２１の一つであるLUN0のPreferredパスである。あるいは、コントローラＡが、LUN0へのアクセスにおける優先順位が最も高いコントローラ２０である。コントローラＡに障害が発生すると、コントローラＡと各ホスト装置３の間のパスが消失する。この場合、コントローラＡを経由してストレージシステム２にアクセスするホスト装置３のいずれかが、コントローラＡを経由するパスの消失を検出する。パスの消失を検出したホスト装置３は、Set Target Port Groupsコマンドを発行して、LUN0へのアクセスのActive/Optimizedパスを変更する。ストレージシステム２がSet Target Port Groupsコマンドを受信した場合、パス制御装置１は、上述のように、LUN0へのアクセスのActive/Optimizedパスを、障害がないコントローラ２０の中で、最も優先順位が高いコントローラ２０に変更する。LUN0へのアクセスのActive/Optimizedパスが、例えばコントローラＢに変更されると、ホスト装置３は、コントローラＢを経由して、LUN0へのアクセスを継続する。その後、コントローラＡの障害が回復すると、各ホスト装置３は、コントローラＡ、コントローラＢのどちらを経由しても、LUN0にアクセスすることができるようになる。
【００９０】
監視部１０がコントローラＡと各ホスト装置３との間の通信の障害が解消したことを検出すると、選択部１２は、LUN毎に、障害がないコントローラ２０の中で最も優先順位が高いコントローラ２０を選択する。コントローラＡのLUN0へのアクセスにおける優先順位が最も高いので、選択部１２は、LUN0に対してコントローラＡを選択する。
【００９１】
各コントローラ２０がパス制御装置１を含む場合、例えば、各コントローラ２０のパス制御装置１の選択部１２が、前述のコントローラ２０の選択を行えばよい。そして、自身を選択したコントローラ２０のパス制御装置１が、以下の動作を行えばよい。
【００９２】
通知部１３は、あるLUNに対して選択部１２が選択したコントローラ２０が記憶する管理テーブルを書き換えて、選択されたコントローラ２０をそのLUNに対するActive/Optimizedパスに設定する。また、通知部１３は、選択されなかったコントローラ２０が記憶する管理テーブルを書き換えて、選択されなかったコントローラ２０をそのLUNに対するActive/Non-Optimizedパスに設定する。
【００９３】
上述のようにコントローラＡの障害が回復し、コントローラＡ及びコントローラＢのどちらを経由しても、LUN0にアクセスすることができる場合、通知部１３は、コントローラＡをLUN0のActive/Optimizedパスに設定する。そして、通知部１３は、コントローラＢをLUN0のActive/Non-Optimizedパスに設定する。
【００９４】
これらの設定後にReport Target Port Groupsコマンドを発行したホスト装置３は、LUN0に対するActive/Optimizedパスとして、コントローラＡの識別子を受信する。コントローラＡの識別子を受信したホスト装置３は、コントローラＡを経由してLUN0にアクセスする。
【００９５】
次に、本発明の第２の実施形態について、図面を参照して詳細に説明する。
【００９６】
図１１は、本実施形態のパス制御装置１Ａの構成を表すブロック図である。
【００９７】
図１１を参照すると、本実施形態のパス制御装置１Ａは、記憶ユニット２１とホスト装置３とに接続され、前記記憶ユニット２１と前記ホスト装置３との間のデータ転送を行う複数のコントローラ２０のそれぞれと、前記ホスト装置３との間の通信の障害の有無を検出する監視部１０と、前記コントローラ２０の各々の優先順位を記憶する優先順位記憶部１１と、通信の障害が検出されない前記コントローラ２０で、前記優先順位が最も高い前記コントローラ２０を選択する選択部１２と、前記記憶ユニット２１に対するアクセスを、識別子を通知された前記コントローラ２０を経由して行う前記ホスト装置３に、選択された前記コントローラ２０の識別子を通知する通知部１３とを含む。
【００９８】
以上で説明した本実施形態には、第１の実施形態と同じ効果がある。
【００９９】
パス制御装置１、パス制御装置１Ａ、ストレージシステム２は、それぞれ、コンピュータ及びコンピュータを制御するプログラム、専用のハードウェア、又は、コンピュータ及びコンピュータを制御するプログラムと専用のハードウェアの組合せにより実現することができる。
【０１００】
監視部１０、選択部１２、通知部１３、優先順位決定部１４、第１のインタフェース部２０１、転送部２０２、第２のインタフェース部２０３、アクセス性能測定部２０５は、例えば、プログラムを記憶する記録媒体からメモリに読み込まれた、各部の機能を実現するための専用のプログラムと、そのプログラムを実行するプロセッサにより実現することができる。また、優先順位記憶部１１、管理テーブル記憶部２０４は、コンピュータが含むメモリやハードディスク装置により実現することができる。あるいは、監視部１０、優先順位記憶部１１、選択部１２、通知部１３、優先順位決定部１４、第１のインタフェース部２０１、転送部２０２、第２のインタフェース部２０３、管理テーブル記憶部２０４、アクセス性能測定部２０５の一部又は全部を、各部の機能を実現する専用の回路によって実現することもできる。
【０１０１】
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【０１０２】
１、１Ａ    パス制御装置
２    ストレージシステム
３    ホスト装置
４    スイッチ装置
５    保守端末
１０    監視部
１１    優先順位記憶部
１２    選択部
１３    通知部
１４    優先順位決定部
２０    コントローラ
２１    記憶ユニット
２２    記憶装置
１００    情報処理システム
２０１    第１のインタフェース部
２０２    転送部
２０３    第２のインタフェース部
２０４    管理テーブル記憶部
２０５    アクセス性能測定部
【図１】
2014146180.tif 000003
【図２】
2014146180.tif 000004
【図３】
2014146180.tif 000005
【図４】
2014146180.tif 000006
【図５】
2014146180.tif 000007
【図６】
2014146180.tif 000008
【図７】
2014146180.tif 000009
【図８】
2014146180.tif 000010
【図９】
2014146180.tif 000011
【図１０】
2014146180.tif 000012
【図１１】
2014146180.tif 000013