(57)【要約】【課題】サーバのフェイルオーバ後も通信オーバヘッドの最小なパスへアクセスする。【解決手段】ストレージ装置１は、記憶装置１ａと制御部１ｂを備える。制御部１ｂは、サーバ２０ａから記憶装置１ａへの第１のアクセス数と、サーバ２０ｂから記憶装置１ａへの第２のアクセス数とを監視して、第２のアクセス数が第１のアクセス数を超える場合、サーバ２０ａからサーバ２０ｂへの切り替えを検出する。また、制御部１ｂは、サーバ切り替えの検出後、記憶装置１ａとサーバ２０ｂとの位置関係を示す位置情報にもとづいて、記憶装置１ａが配置されるサイトＳａと、サーバ２０ｂが配置されるサイトＳｂとを検出する。制御部１ｂは、サイトＳａ、Ｓｂが異なる場合、サイトＳｂに配置される記憶装置１ｃへアクセス先の変更依頼をサーバ２０ｂへ通知する。【選択図】図１
2019125075.tif 000002
【特許請求の範囲】
【請求項１】
第１の記憶装置と、
第１のサーバから前記第１の記憶装置への第１のアクセス数と第２のサーバから前記第１の記憶装置への第２のアクセス数とを監視して、前記第２のアクセス数が前記第１のアクセス数を超える場合に、前記第１のサーバから前記第２のサーバへの切り替えを検出し、前記第１の記憶装置と前記第２のサーバとの位置関係を示す位置情報にもとづいて前記第１の記憶装置が配置される第１のサイトと、前記第２のサーバが配置される第２のサイトとを検出し、前記第１のサイトと前記第２のサイトが異なる場合に、前記第２のサーバに対して、前記第２のサイトに配置される第２の記憶装置へアクセス先を変更させる制御部と、
を有するストレージ装置。
【請求項２】
前記第１の記憶装置は、記憶領域がグループ化された第１のグループを含み、
前記第２の記憶装置は、記憶領域がグループ化された第２のグループを含み、
前記制御部は、前記第１のサーバのアクセス元の前記第１のグループから、前記第２のサーバの前記第２のグループへアクセス先を変更させる請求項１記載のストレージ装置。
【請求項３】
前記制御部は、前記第１のサーバが前記第１の記憶装置へアクセスしている場合、前記第１の記憶装置から前記第２の記憶装置への第１のミラーリングを行い、前記第１のサーバから前記第２のサーバへの切り替えを検出した場合、前記第１のミラーリングを反転して、前記第２の記憶装置から前記第１の記憶装置への第２のミラーリングを行う請求項１記載のストレージ装置。
【請求項４】
第１の記憶装置と制御部とを含む第１のストレージ装置と、
第２の記憶装置を含む第２のストレージ装置と、
を備え、
前記制御部は、
第１のサーバから前記第１の記憶装置への第１のアクセス数と第２のサーバから前記第１の記憶装置への第２のアクセス数とを監視して、前記第２のアクセス数が前記第１のアクセス数を超える場合に、前記第１のサーバから前記第２のサーバへの切り替えを検出し、前記第１の記憶装置と前記第２のサーバとの位置関係を示す位置情報にもとづいて前記第１の記憶装置が配置される第１のサイトと、前記第２のサーバが配置される第２のサイトとを検出し、前記第１のサイトと前記第２のサイトが異なる場合に、前記第２のサーバに対して、前記第２のサイトに配置される第２の記憶装置へアクセス先を変更させる、
を有するストレージシステム。
【請求項５】
コンピュータに、
第１のサーバから第１の記憶装置への第１のアクセス数と第２のサーバから前記第１の記憶装置への第２のアクセス数とを監視し、
前記第２のアクセス数が前記第１のアクセス数を超える場合に、前記第１のサーバから前記第２のサーバへの切り替えを検出し、
前記第１の記憶装置と前記第２のサーバとの位置関係を示す位置情報にもとづいて前記第１の記憶装置が配置される第１のサイトと、前記第２のサーバが配置される第２のサイトとを検出し、
前記第１のサイトと前記第２のサイトが異なる場合に、前記第２のサーバに対して、前記第２のサイトに配置される第２の記憶装置へアクセス先を変更させる、
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置、ストレージシステムおよびプログラムに関する。
【背景技術】
【０００２】
ストレージシステムは、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等の記憶装置、および記憶装置の制御を行うコントローラモジュールを含むストレージ装置と、記憶装置へＩ／Ｏを発行するサーバとを有して、情報処理で扱う大量のデータを記録管理する。
【０００３】
また、ストレージシステムでは、信頼性の確保のため冗長構成が組まれており、例えば、サーバ間やストレージ装置間でクラスタリングが行われ、また、サーバとストレージ装置間のパスはマルチパスが形成される。
【０００４】
このようなストレージシステムに対して、障害発生時には、冗長構成への切り替えを行って障害を回避し、運用を継続する技術が開発されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際特開第２０１６／０１３１１６号
【特許文献２】特開２００７−７２５７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
サーバは、ＡＬＵＡ（Asymmetric Logical Unit Access）と呼ばれるプロトコルを利用することで、複数のパスのうち通信オーバヘッドの最も小さなパス（最適パス）に優先的にアクセスする。
【０００７】
ＡＬＵＡは、サーバとストレージ装置間で最適パスを特定するためのプロトコルであり、ストレージ装置からサーバへ現状のパス状態の通知が行われ、サーバはパス状態にもとづき複数のパスから最適パスを選択してアクセスする。
【０００８】
一方、クラスタリングされているサーバのうち、サーバに障害等が生じると、障害が生じたサーバから正常なサーバへ稼動状態が切り替わるフェイルオーバが実施される。
このようなサーバのフェイルオーバが実施された場合、システム構成によっては、ストレージ装置側がサーバのフェイルオーバを検出することが困難な場合がある。このような状態では、サーバのフェイルオーバ後のパス状態がストレージ装置によってサーバ側へ通知されないので、フェイルオーバ後のサーバは最適パスを選択することができず、可用性や信頼性の低下が生じてしまう。
【０００９】
１つの側面では、本発明は、サーバのフェイルオーバ後も通信オーバヘッドの最小なパスへのアクセスを可能にしたストレージ装置、ストレージシステムおよびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、ストレージ装置が提供される。ストレージ装置は、第１の記憶装置と制御部を備える。制御部は、第１のサーバから第１の記憶装置への第１のアクセス数と第２のサーバから第１の記憶装置への第２のアクセス数とを監視して、第２のアクセス数が第１のアクセス数を超える場合に、第１のサーバから第２のサーバへの切り替えを検出し、第１の記憶装置と第２のサーバとの位置関係を示す位置情報にもとづいて第１の記憶装置が配置される第１のサイトと第２のサーバが配置される第２のサイトとを検出し、第１のサイトと第２のサイトが異なる場合に、第２のサーバに対して、第２のサイトに配置される第２の記憶装置へアクセス先を変更させる。
【００１１】
また、上記課題を解決するために、上記ストレージ装置と同様の制御を実行するストレージシステムが提供される。
さらに、上記課題を解決するために、コンピュータに上記ストレージ装置と同様の制御を実行させるプログラムが提供される。
【発明の効果】
【００１２】
１側面によれば、サーバのフェイルオーバ後も通信オーバヘッドの最小なパスへのアクセスが可能になる。
【図面の簡単な説明】
【００１３】
【図１】ストレージ装置の構成の一例を示す図である。
【図２】単一ストレージのストレージシステムの構成の一例を示す図である。
【図３】複数ストレージのストレージシステムの構成の一例を示す図である。
【図４】同一サイト内でクラスタリングが行われたストレージシステムの構成の一例を示す図である。
【図５】遠隔サイト間でクラスタリングが行われたストレージシステムの構成の一例を示す図である。
【図６】遠隔サイト間でクラスタリングが行われたストレージシステムの構成の一例を示す図である。
【図７】アクティブのサーバとスタンバイのサーバを含むストレージシステムの構成の一例を示す図である。
【図８】サーバのフェイルオーバが行われた場合のストレージシステムの構成の一例を示す図である。
【図９】ストレージシステムの構成の一例を示す図である。
【図１０】ＣＭのハードウェア構成の一例を示す図である。
【図１１】ＣＭの機能ブロックの一例を示す図である。
【図１２】ストレージ位置情報テーブルの一例を示す図である。
【図１３】サーバ位置情報テーブルの一例を示す図である。
【図１４】Ｉ／Ｏ回数テーブルの一例を示す図である。
【図１５】ストレージシステムの動作の一例を示す図である。
【図１６】ストレージシステムの動作の一例を示す図である。
【図１７】サイト内でマルチパスが形成されるストレージシステムの構成の一例を示す図である。
【図１８】Ｉ／Ｏ処理におけるＣＭの動作を示すフローチャートである。
【図１９】定期監視処理の動作を示すフローチャートである（マスタ側）。
【図２０】定期監視処理の動作を示すフローチャートである（スレーブ側）。
【図２１】ストレージシステムの装置間の通信シーケンスの一例を示す図である。
【発明を実施するための形態】
【００１４】
以下、本実施の形態について図面を参照して説明する。
［第１の実施の形態］
第１の実施の形態について図１を用いて説明する。図１はストレージ装置の構成の一例を示す図である。ストレージ装置１は、記憶装置１ａ（第１の記憶装置）と、制御部１ｂを含む。
【００１５】
〔ステップＳ１〕制御部１ｂは、サーバ２０ａ（第１のサーバ）から記憶装置１ａへの第１のアクセス数と、サーバ２０ｂ（第２のサーバ）から記憶装置１ａへの第２のアクセス数とを監視する。
【００１６】
〔ステップＳ２〕制御部１ｂは、第２のアクセス数が第１のアクセス数を超えることを判定した場合、サーバ２０ａからサーバ２０ｂへの切り替えがあったことを検出する。
〔ステップＳ３〕制御部１ｂは、記憶装置１ａと、サーバ２０ｂとの位置関係を示す位置情報にもとづいて、記憶装置１ａが配置されるサイトＳａ（第１のサイト）と、サーバ２０ｂが配置されるサイトＳｂ（第２のサイト）とを検出する。
【００１７】
〔ステップＳ４〕制御部１ｂは、サイトＳａとサイトＳｂとが異なる場合、サイトＳｂに配置される記憶装置１ｃ（第２の記憶装置）へアクセス先を変更させる情報をサーバ２０ｂへ通知する。
【００１８】
〔ステップＳ５〕サーバ２０ｂは、該情報を受信すると、記憶装置１ａから記憶装置１ｃへアクセスを変更し、記憶装置１ｃに対してアクセスを実施する。
このように、ストレージ装置１は、サーバ２０ａ、２０ｂのアクセス数にもとづき、サーバ２０ａからサーバ２０ｂへの切り替えを検出し、サーバ切り替えに連動して、記憶装置１ａから記憶装置１ｃへアクセスパスを変更させる。これにより、ストレージ装置１は、サーバ２０ａのフェイルオーバ後も、サーバ２０ｂに対して通信オーバヘッドの最小なパスへのアクセスを可能にさせる。
【００１９】
次にマルチパス構成のストレージシステムについて説明する。図２は単一ストレージのストレージシステムの構成の一例を示す図である。ストレージシステム２−１は、単一ストレージに対するマルチパス構成のシステムであって、サーバ２、スイッチｓｗ１、ｓｗ２およびストレージ３０を備える。スイッチｓｗ１、ｓｗ２は、例えば、ＳＡＮ（Storage Area Network）スイッチである。
【００２０】
サーバ２には、ＨＢＡ（Host Bus Adapter）＃０、＃１が搭載される。ストレージ３０は、コントローラモジュール（ＣＭ：Controller Module）＃０、＃１およびＬＵＮ（Logical Unit Number）＃０、・・・、＃３を有する。またストレージ３０には、ＣＡ（Channel Adapter）＃０、・・・、＃３が搭載される。以下、コントローラモジュールはＣＭと表記する。
【００２１】
なお、ＨＢＡは、サーバ側に搭載されて、スイッチを介してＣＡとのインタフェースを行うアダプタである。ＣＡは、ストレージ側に搭載されて、スイッチを介してＨＢＡとのインタフェースを行うアダプタである。ＣＭは、プロセッサやキャッシュメモリ等を含み、ストレージ内の動作を制御するモジュールである。
【００２２】
各構成要素の接続関係を示すと、スイッチｓｗ１は、ＨＢＡ＃０とＣＡ＃０に接続し、スイッチｓｗ２は、ＨＢＡ＃１とＣＡ＃２に接続し、また、スイッチｓｗ１、ｓｗ２は互いに接続する。
【００２３】
ＣＭ＃０上には、ＣＡ＃０、＃１が搭載され、ＣＭ＃１上には、ＣＡ＃２、＃３が搭載され、ＣＭ＃０、＃１は互いに接続する。また、ＣＭ＃０はＬＵＮ＃０、＃１を管理下に置き、ＣＭ＃１はＬＵＮ＃２、＃３を管理下に置く。
【００２４】
ここで、サーバとストレージ間のデータ転送方式には、ＳＣＳＩ（Small Computer System Interface）が広く使用されている。ＳＣＳＩは、サーバとストレージ間のアクセスパスを複数設定することができる。また、サーバは、フェイルオーバの機能により、故障時には別のサーバへの切り替えを行ってストレージへのアクセスを継続する。
【００２５】
ストレージシステム２−１では、ＬＵＮ＃０に対するアクセスパスは４パスを設定することができる。すなわち、ＨＢＡ＃０−ＣＡ＃０のパス、ＨＢＡ＃０−ＣＡ＃２のパス、ＨＢＡ＃１−ＣＡ＃０のパス、ＨＢＡ＃１−ＣＡ＃２のパスの４つのパスである。
【００２６】
ＨＢＡ＃０−ＣＡ＃０のパスは、ＨＢＡ＃０、スイッチｓｗ１、ＣＡ＃０、ＣＭ＃０を経由するパスであり、ＨＢＡ＃０−ＣＡ＃２のパスは、ＨＢＡ＃０、スイッチｓｗ１、スイッチｓｗ２、ＣＡ＃２、ＣＭ＃１、ＣＭ＃０を経由するパスである。
【００２７】
また、ＨＢＡ＃１−ＣＡ＃０のパスは、ＨＢＡ＃１、スイッチｓｗ２、スイッチｓｗ１、ＣＡ＃０、ＣＭ＃０を経由するパスであり、ＨＢＡ＃１−ＣＡ＃２のパスは、ＨＢＡ＃１、スイッチｓｗ２、ＣＡ＃２、ＣＭ＃１、ＣＭ＃０を経由するパスである。
【００２８】
一方、サーバ２は、上述したＡＬＵＡを利用することで、複数のアクセスパスのうち最適パスに優先的にアクセスすることができる。例えば、ストレージシステム２−１において、ＬＵＮ＃０は、ＣＭ＃０の管理下にあるため、ＣＡ＃０を経由するアクセスパスは、ＣＭ＃０からＬＵＮ＃０へ直接アクセスすることができる。
【００２９】
これに対し、ＣＡ＃２を経由するアクセスパスは、ＣＭ＃１からＣＭ＃０に通信を行ったうえでＬＵＮ＃０へアクセスすることになり、通信オーバヘッドが生じる。
そのため、ＣＭ＃０は、ＣＡ＃０を経由するパスのアクセス状態を最適パス（Active／Optimized）としてサーバ２に通知する。また、ＣＭ＃０は、ＣＡ＃２を経由するパスのアクセス状態を性能劣化が生じる可能性のあるパス（Active／Non-Optimized）としてサーバ２に通知する。
【００３０】
この通知は、サーバ２から送信されたReport Target Port Groups（Report ＴＰＧＳ）と呼ばれるコマンドへの応答として行われる。ＡＬＵＡをサポートしているサーバ２は、Report Target Port Groupsコマンドを用いて各パスのアクセス状態を取得すると、Active／Optimizedパスに対して優先的にＩ／Ｏを発行する。
【００３１】
なお、ＬＵＮ＃０への上記の４つのパスのうち、ＨＢＡ＃０−ＣＡ＃０のパスとＨＢＡ＃１−ＣＡ＃０のパスは、ＬＵＮ＃０に対して直接パスとなるためActive／Optimizedパスになる。
【００３２】
また、ＨＢＡ＃０−ＣＡ＃２のパスと、ＨＢＡ＃１−ＣＡ＃２のパスは、ＬＵＮ＃０に対して、ＣＭ＃１を介する迂回パスとなるため、Active／Non-Optimizedパスになる。
次にマルチパスを利用したActive-Active方式のストレージクラスタについて説明する。図３は複数ストレージのストレージシステムの構成の一例を示す図である。ストレージシステム２−２は、図２で上述したストレージ単体でのマルチパス構成を複数ストレージに拡張したものである。
【００３３】
ストレージシステム２−２は、サーバ２、スイッチｓｗ１、ｓｗ２およびストレージ３０ａ、３０ｂを備える。サーバ２には、ＨＢＡ＃０、＃１が搭載される。
ストレージ３０ａは、ＣＭ＃０およびＬＵＮ＃０、・・・、＃ｎを有し、またストレージ３０ａには、ＣＡ＃０、＃１と、ＲＡ（Remote Adapter）＃０が搭載される。ストレージ３０ｂは、ＣＭ＃１およびＬＵＮ＃０、・・・、＃ｎを有し、またストレージ３０ｂには、ＣＡ＃２、＃３と、ＲＡ＃１が搭載される。
【００３４】
なお、ＲＡは、ストレージのリモート・アドバンスト・コピー用のインタフェースとなるアダプタである。
各構成要素の接続関係を示すと、スイッチｓｗ１は、ＨＢＡ＃０とＣＡ＃０に接続し、スイッチｓｗ２は、ＨＢＡ＃１とＣＡ＃２に接続し、また、スイッチｓｗ１、ｓｗ２は互いに接続する。
【００３５】
ＣＭ＃０上には、ＣＡ＃０、＃１と、ＲＡ＃０が搭載され、ＣＭ＃１上には、ＣＡ＃２、＃３と、ＲＡ＃１が搭載され、ＲＡ＃０、＃１は互いに接続する。また、ＣＭ＃０はＬＵＮ＃０、・・・、＃ｎを管理下に置き、ＣＭ＃１はＬＵＮ＃０、・・・、＃ｎを管理下に置く。
【００３６】
ストレージシステム２−２は、ストレージがクラスタリングされてActive-Active方式で動作する（ストレージ３０ａ、３０ｂが常時動作）。このようなシステムでは、以下の（１）から（４）に示すような制御が行われる。
【００３７】
（１）ストレージ３０ａ、３０ｂそれぞれにＬＵＮ＃０、・・・、＃ｎが生成され、フェイルオーバ時にデータが失われないように、生成されたＬＵＮ間でデータのミラーリングが行われる。図３の例では、ストレージ３０ａのＬＵＮ＃０、・・・、＃ｎからストレージ３０ｂのＬＵＮ＃０、・・・、＃ｎへデータのミラーリングが行われている。
【００３８】
（２）ストレージ３０ｂ側のＬＵＮの識別子（例えば、ＬＵＮ＿ＩＤ、Ｐｒｏｄｕｃｔ＿ＩＤ、ＳｅｒｉａｌＮｕｍｂｅｒ等）は、ストレージ３０ａのＬＵＮの識別子と同一にしてサーバ２に応答する。すなわち、ストレージ３０ａ側のＬＵＮの識別子と、ストレージ３０ｂ側のＬＵＮの識別子とを一致させる。
【００３９】
この仕組みにより、ストレージ３０ａ側のＬＵＮに対するパスと、ストレージ３０ｂ側のＬＵＮに対するパスとは、同一ＬＵＮに対するマルチパスとしてサーバ２に認識される。すなわち、ストレージ３０ａのＬＵＮと、ストレージ３０ｂのＬＵＮとを同一ボリュームとしてサーバ２に見せることができる。
【００４０】
（３）Report Target Port Groupsコマンドの応答では、マルチパスに組まれたパスすべての情報をサーバ２へ返すことが求められる。このため、ストレージ３０ａとストレージ３０ｂの両方のパスを含んだアクセス状態をReport Target Port Groupsコマンドの応答とする。
【００４１】
（４）ライトＩ／Ｏによる更新データは、ストレージ３０ａ、３０ｂのいずれのパスからもアクセス可能とするため（ストレージ３０ａ、３０ｂ間でミラーリングを行っているため）、ストレージ３０ａ、３０ｂ両方のＬＵＮに反映される。
【００４２】
また、ストレージ３０ａへのライトＩ／Ｏと、ストレージ３０ｂへのライトＩ／Ｏとが競合した場合、排他制御はミラーリングのコピー元装置で行う。この例ではストレージ３０ａがコピー元装置なのでストレージ３０ａが排他制御を行うことになる。
【００４３】
次に同一サイト内でクラスタリングが行われたストレージシステムについて説明する。図４は同一サイト内でクラスタリングが行われたストレージシステムの構成の一例を示す図である。ストレージシステム２−３は、図３に示したストレージシステム２−２と構成は同じであるが、システム全体が１つのサイトＳ０（例えば、ビルの同一フロア等）に含められる構成としている。
【００４４】
ストレージシステム２−３では、ストレージ３０ａ、３０ｂが同一のサイトＳ０内に配置されるので、ストレージ３０ａ、３０ｂでＩ／Ｏアクセス性能に大きな違いはない。このため、ストレージ３０ａ、３０ｂ両方に対して負荷分散が行われた方が効率的である。したがって、ストレージ３０ａ、３０ｂ両方のパスがActive／Optimizedとして応答される。
【００４５】
次に遠隔サイト間でクラスタリングが行われたストレージシステムについて図５、図６を用いて説明する。図５は遠隔サイト間でクラスタリングが行われたストレージシステムの構成の一例を示す図である。ストレージシステム２−４は、ネットワーク（例えば、ＷＡＮ（Wide Area Network））ｎｗ１、ｎｗ２を介して接続されるサイトＳａ、Ｓｂを有する。サイトＳａ、Ｓｂは遠隔に配置されているとする。
【００４６】
サイトＳａには、サーバ２０ａ、スイッチｓｗ１およびストレージ３０ａが含まれる。サーバ２０ａには、ＨＢＡ＃０、＃１が搭載される。ストレージ３０ａは、ＣＭ＃０およびＬＵＮ＃０、・・・、＃ｎを有し、またストレージ３０ａには、ＣＡ＃０、＃１と、ＲＡ＃０が搭載される。
【００４７】
サイトＳｂには、スイッチｓｗ２およびストレージ３０ｂが含まれる。ストレージ３０ｂは、ＣＭ＃１およびＬＵＮ＃０、・・・、＃ｎを含み、またストレージ３０ｂには、ＣＡ＃２、＃３と、ＲＡ＃１が搭載される。
【００４８】
各構成要素の接続関係を示すと、スイッチｓｗ１は、ＨＢＡ＃０、ＣＡ＃０およびネットワークｎｗ１に接続する。スイッチｓｗ２は、ネットワークｎｗ１およびＣＡ＃２に接続する。
【００４９】
ＣＭ＃０上には、ＣＡ＃０、＃１と、ＲＡ＃０が搭載され、ＣＭ＃１上には、ＣＡ＃２、＃３と、ＲＡ＃１が搭載される。ＲＡ＃０は、ネットワークｎｗ２に接続し、ＲＡ＃１はネットワークｎｗ２に接続する。また、ＣＭ＃０はＬＵＮ＃０、・・・、＃ｎを管理下に置き、ＣＭ＃１はＬＵＮ＃０、・・・、＃ｎを管理下に置く。
【００５０】
ここで、ストレージシステム２−４では、遠隔サイトＳａ、Ｓｂ間でのクラスタリングでサーバ２０ａがサイトＳａのみに配置されている。この場合、サーバ２０ａからストレージ３０ｂへのアクセスは、ストレージ３０ａのアクセスよりも通信オーバヘッドが大きい。このため、ストレージ３０ａへのパスをActive／Optimized、ストレージ３０ｂへのパスをActive／Non-Optimizedとして応答される。
【００５１】
図６は遠隔サイト間でクラスタリングが行われたストレージシステムの構成の一例を示す図である。ストレージシステム２−５は、ネットワークｎｗ１、ｎｗ２を介して接続されるサイトＳａ、Ｓｂを有する。
【００５２】
サイトＳａには、サーバ２０ａ、スイッチｓｗ１およびストレージ３０ａが含まれる。サイトＳｂには、サーバ２０ｂ、スイッチｓｗ２およびストレージ３０ｂが含まれる。図５のシステムとの違いは、サイトＳｂにもサーバ（サーバ２０ｂ）が含まれる構成としている。
【００５３】
ここで、ストレージシステム２−５において、パスのアクセス状態はサーバ毎に応答内容を変える。このため、ストレージ３０ａは、サーバ２０ａに対するパスはActive／Optimized、サーバ２０ｂに対するパスはActive／Non-Optimizedとして応答する。
【００５４】
Report Target Port Groupsコマンドの応答として、ストレージ３０ａは、例えば、サーバ２０ａのＨＢＡ＃０と、ＣＡ＃０とを経由するパスはActive／Optimizedとしてサーバ２０ａ、２０ｂに応答する。また、ストレージ３０ａは、サーバ２０ｂのＨＢＡ＃０と、ＣＡ＃０とを経由するパスはActive／Non-Optimizedとしてサーバ２０ａ、２０ｂへ応答する。
【００５５】
一方、ストレージ３０ｂは、サーバ２０ａに対するパスはActive／Non-Optimized、サーバ２０ｂに対するパスはActive／Optimizedとして応答する。
Report Target Port Groupsコマンドの応答として、ストレージ３０ｂは、例えば、サーバ２０ａのＨＢＡ＃０と、ＣＡ＃２とを経由するパスはActive／Non-Optimizedとしてサーバ２０ａ、２０ｂに応答する。また、ストレージ３０ｂは、サーバ２０ｂのＨＢＡ＃０と、ＣＡ＃２とを経由するパスはActive／Optimizedとしてサーバ２０ａ、２０ｂへ応答する。
【００５６】
次にクラスタリングされているサーバ間でサーバの切り替えが行われた場合のパス制御の問題点について図７、図８を用いて説明する。図７はアクティブのサーバとスタンバイのサーバを含むストレージシステムの構成の一例を示す図である。
【００５７】
ストレージシステム２−６は、図６に示す構成と同じであるが、サーバ２０ａをアクティブとし、サーバ２０ｂをスタンバイとした場合を示している（サーバ２０ａ、２０ｂはActive−Standby状態）。
【００５８】
サーバ２０ａがアクティブの場合、サーバ２０ａと同一のサイトＳａ内のストレージ３０ａに優先的にアクセスするのが望ましいため、ストレージ３０ａは、ストレージ３０ａ側のパスをActive／Optimized、ストレージ３０ｂ側のパスをActive／Non-Optimizedとして応答する。
【００５９】
また、サーバをクラスタリングしている場合、クラスタリングされる複数のサーバは、同一サーバのように扱われる。このため、ストレージ３０ｂは、サーバ２０ｂに対してもストレージ３０ａ側のパスをActive／Optimized、ストレージ３０ｂ側のパスをActive／Non-Optimizedとして応答する。
【００６０】
図８はサーバのフェイルオーバが行われた場合のストレージシステムの構成の一例を示す図である。ストレージシステム２−７は、サーバ２０ａに障害が発生してダウンすることにより（または負荷分散が機能することにより）、サーバ２０ｂがスタンバイからアクティブに切り替わった状態である。
【００６１】
フェイルオーバ直後はサーバ２０ｂからストレージ３０ａへのアクセスとなり、遠隔のサイト間通信となるため通信オーバヘッドが生じる。このように、離れたサイト間でのクラスタリングでは、どちらのストレージにアクセスするかによってＩ／Ｏレスポンス性能が大きく変化する。そこで、ストレージ３０ａとしては、サーバのフェイルオーバを検出した場合、フェイルオーバ検出に連動して最適パスの通知をサーバ２０ｂに行うことが望ましい。
【００６２】
サーバのフェイルオーバを検出する場合、サーバとストレージが直結された構成であればパスのリンクダウンにより検出することが可能である。しかし、ストレージシステム２−７のような構成では、ネットワークｎｗ１、ｎｗ２を経由してサイトＳａ、Ｓｂが遠隔に位置しているために、ストレージ３０ａは、パスのリンクダウンを検出することが困難である。
【００６３】
この場合、フェイルオーバ後のパス状態が、ストレージ３０ａによってサーバ２０ａ、２０ｂ側へ通知されないので、フェイルオーバ後のサーバ２０ｂは、通信オーバヘッドの最小なパスを選択することができず、可用性や信頼性の低下が生じてしまう。
【００６４】
本発明はこのような点に鑑みてなされたものであり、サーバのフェイルオーバ後も通信オーバヘッドの最小なパスへのアクセスを可能にしたストレージ装置、ストレージシステムおよびプログラムを提供するものである。
【００６５】
［第２の実施の形態］
次に第２の実施の形態について説明する。まず、システム構成について説明する。図９はストレージシステムの構成の一例を示す図である。ストレージシステム１−１は、ネットワークｎｗ１、ｎｗ２を介して接続されるサイトＳａ、Ｓｂを有する。サイトＳａ、Ｓｂは遠隔に位置する。
【００６６】
サイトＳａには、サーバ２０ａ、スイッチｓｗ１およびストレージ装置１０ａが含まれる。サーバ２０ａには、ＨＢＡ＃０、＃１が搭載される。なお、図中のＸＸＸは、サーバ２０ａのＨＢＡ＃０のポート識別子、ＹＹＹは、サーバ２０ａのＨＢＡ＃１のポート識別子である。
【００６７】
ストレージ装置１０ａは、ＣＭ１１ａおよびストレージ部１２ａを有し、ストレージ部１２ａは、記憶領域としてＬＵＮ＃０、・・・、＃ｎを含む。またストレージ装置１０ａには、ＣＡ＃０、＃１と、ＲＡ＃０が搭載される。
【００６８】
サイトＳｂには、サーバ２０ｂ、スイッチｓｗ２およびストレージ装置１０ｂが含まれる。サーバ２０ｂには、ＨＢＡ＃０、＃１が搭載される。なお、図中のＺＺＺは、サーバ２０ｂのＨＢＡ＃０のポート識別子、ＶＶＶは、サーバ２０ｂのＨＢＡ＃１のポート識別子である。
【００６９】
ストレージ装置１０ｂは、ＣＭ１１ｂおよびストレージ部１２ｂを有し、ストレージ部１２ｂは、記憶領域としてＬＵＮ＃０、・・・、＃ｎを含む。またストレージ装置１０ｂには、ＣＡ＃２、＃３と、ＲＡ＃１が搭載される。
【００７０】
ストレージ部１２ａのＬＵＮ＃０、・・・、＃ｎは、ＦＯグループｇ１に含まれ、ストレージ部１２ｂのＬＵＮ＃０、・・・、＃ｎは、ＦＯグループｇ２に含まれる。ＦＯグループは、複数のＬＵＮをフェイルオーバ単位にグループ化したものであり、同じＦＯグループに所属するＬＵＮのフェイルオーバは一括で行われるものとする。
【００７１】
なお、ストレージ装置１０ａ、１０ｂは、図１のストレージ装置１の機能を有し、ＣＭ１１ａ、１１ｂは、図１の制御部１ｂの機能を有する。また、ストレージ部１２ａ、１２ｂは、図１の記憶装置１ａに該当する。
【００７２】
各構成要素の接続関係を示すと、スイッチｓｗ１は、サーバ２０ａのＨＢＡ＃０、ＨＢＡ＃１、ＣＡ＃０およびネットワークｎｗ１に接続する。スイッチｓｗ２は、サーバ２０ｂのＨＢＡ＃０、ＨＢＡ＃１、ネットワークｎｗ１およびＣＡ＃２に接続する。
【００７３】
ＣＭ１１ａ上には、ＣＡ＃０、＃１と、ＲＡ＃０が設置され、ＣＭ１１ｂ上には、ＣＡ＃２、＃３と、ＲＡ＃１が設置される。ＲＡ＃０は、ネットワークｎｗ２に接続し、ＲＡ＃１はネットワークｎｗ２に接続する。
【００７４】
また、ＣＭ１１ａはストレージ部１２ａのＬＵＮ＃０、・・・、＃ｎを管理下に置き、ＣＭ１１ｂはストレージ部１２ｂのＬＵＮ＃０、・・・、＃ｎを管理下に置く。
なお、以降の説明でＣＭ１１ａ、１１ｂを総称する際はＣＭ１１、ストレージ部１２ａ、１２ｂを総称する際はストレージ部１２と呼ぶ場合がある。また、サーバ２０ａ、２０ｂを総称する際はサーバ２０と呼ぶ場合がある。
【００７５】
＜ハードウェア構成＞
図１０はＣＭのハードウェア構成の一例を示す図である。ＣＭ１１は、プロセッサ１００によって装置全体が制御されている。すなわち、プロセッサ１００は、ＣＭ１１の制御部として機能する。
【００７６】
プロセッサ１００には、バス１０３を介してメモリ１０１と複数の周辺機器が接続されている。プロセッサ１００は、マルチプロセッサであってもよい。プロセッサ１００は、例えば、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。またプロセッサ１００は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００７７】
メモリ１０１は、ＣＭ１１の主記憶装置として使用される。メモリ１０１には、プロセッサ１００に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ１０１には、プロセッサ１００による処理に要する各種メッセージが格納される。
【００７８】
また、メモリ１０１は、ＣＭ１１の補助記憶装置としても使用され、ＯＳのプログラム、アプリケーションプログラム、および各種メッセージが格納される。メモリ１０１は、補助記憶装置として、フラッシュメモリやＳＳＤ等の半導体記憶装置やＨＤＤ等の磁気記録媒体を含んでもよい。
【００７９】
バス１０３に接続されている周辺機器としては、入出力インタフェース１０２およびネットワークインタフェース１０４がある。入出力インタフェース１０２は、プロセッサ１００からの命令にしたがってＣＭ１１の状態を表示する表示装置として機能するモニタ（例えば、ＬＥＤ（Light Emitting Diode）やＬＣＤ（Liquid Crystal Display）等）が接続されている。
【００８０】
また、入出力インタフェース１０２は、キーボードやマウス等の情報入力装置を接続可能であって、情報入力装置から送られてくる信号をプロセッサ１００に送信する。
入出力インタフェース１０２は、周辺機器を接続するための通信インタフェースとして機能する。例えば、入出力インタフェース１０２は、レーザ光等を利用して、光ディスクに記録されたメッセージの読み取りを行う光学ドライブ装置を接続することができる。
【００８１】
光ディスクは、光の反射によって読み取り可能なようにメッセージが記録された可搬型の記録媒体である。光ディスクには、Ｂｌｕ−ｒａｙＤｉｓｃ（登録商標）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（Rewritable）等がある。
【００８２】
また、入出力インタフェース１０２は、メモリ装置やメモリリーダライタを接続することができる。メモリ装置は、入出力インタフェース１０２との通信機能を搭載した記録媒体である。メモリリーダライタは、メモリカードへのメッセージの書き込み、またはメモリカードからのメッセージの読み出しを行う装置である。メモリカードは、カード型の記録媒体である。
【００８３】
ネットワークインタフェース１０４は、図９に示したＣＡ＃０、・・・、＃３やＲＡ＃０、＃１を介してネットワークｎｗ１、ｎｗ２とのインタフェース制御や、サーバ２０ａ、２０ｂとのインタフェース制御を行う。
【００８４】
ネットワークインタフェース１０４は、例えば、ＮＩＣ（Network Interface Card）、無線ＬＡＮ（Local Area Network）カード等の機能を有する。ネットワークインタフェース１０４で受信された信号やメッセージ等は、プロセッサ１００に出力される。ストレージインタフェース１０５は、図９に示したストレージ部１２ａ、１２ｂとのインタフェース制御を行う。
【００８５】
以上のようなハードウェア構成によって、ＣＭ１１の処理機能を実現することができる。例えば、ＣＭ１１は、プロセッサ１００が読み取り可能な記録媒体に記録されたプログラムを実行することで、本発明の制御を行うことができる。
【００８６】
ＣＭ１１に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、ＣＭ１１に実行させるプログラムを補助記憶装置に格納しておくことができる。
【００８７】
プロセッサ１００は、補助記憶装置内のプログラムの少なくとも一部を主記憶装置にロードし、プログラムを実行する。また、光ディスク、メモリ装置、メモリカード等の可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えば、プロセッサ１００からの制御により、補助記憶装置にインストールされた後、実行可能となる。またプロセッサ１００が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００８８】
＜機能ブロック＞
図１１はＣＭの機能ブロックの一例を示す図である。ＣＭ１１は、制御部１１−１、記憶部１１−２およびインタフェース部１１−３を含む。制御部１１−１は、サーバフェイルオーバ検出部１１−１ａ、サイト検出部１１−１ｂおよびパス状態通知部１１−１ｃを含む。
【００８９】
サーバフェイルオーバ検出部１１−１ａは、サーバ２０ａからストレージ部１２ａへの第１のアクセス数と、サーバ２０ｂからストレージ部１２ａへの第２のアクセス数とを監視する。
【００９０】
そして、サーバフェイルオーバ検出部１１−１ａは、第２のアクセス数が第１のアクセス数を超えることを判定した場合、サーバ２０ａからサーバ２０ｂへのフェイルオーバがあったことを検出する。
【００９１】
サイト検出部１１−１ｂは、ストレージ部１２ａ、１２ｂと、サーバ２０ａ、２０ｂとの位置関係を示す位置情報にもとづいて、ストレージ部１２ａ、１２ｂが配置されるサイトと、サーバ２０ａ、２０ｂが配置されるサイトとを検出する。
【００９２】
パス状態通知部１１−１ｃは、ストレージ部１２ａが位置するサイトＳａと、フェイルオーバ後のサーバ２０ｂが位置するサイトＳｂとが異なる場合、サイトＳｂに配置されるストレージ部１２ｂへアクセス先を変更させる情報をサーバ２０ｂへ通知する。
【００９３】
記憶部１１−２は、ストレージ位置情報テーブルＴ１、サーバ位置情報テーブルＴ２およびＩ／Ｏ回数テーブルＴ３を含む。これらのテーブルの詳細は、図１２から図１４で後述する。また、記憶部１１−２は、ＣＭ１１の全体動作に関わる制御情報等についても記憶する。
【００９４】
インタフェース部１１−３は、ＣＡやＲＡを介したサーバまたはネットワークとのインタフェース制御、またストレージ部１２とのインタフェース制御を行う。
なお、制御部１１−１は、図１０に示したプロセッサ１００によって実現され、記憶部１１−２は、図１０に示したメモリ１０１によって実現される。また、インタフェース部１１−３は、図１０に示したネットワークインタフェース１０４またはストレージインタフェース１０５によって実現される。
【００９５】
＜テーブル情報＞
次にＣＭ１１が有するテーブル情報について図１２から図１４を用いて説明する。図１２はストレージ位置情報テーブルの一例を示す図である。ストレージ位置情報テーブルＴ１は、項目として、「ストレージ装置」および「ストレージ位置」を有し、ストレージ装置１０ａ、１０ｂの位置情報が登録される。この例のストレージ位置情報テーブルＴ１には、ストレージ装置１０ａがサイトＳａに位置し、ストレージ装置１０ｂがサイトＳｂに位置することが登録されている。なお、「ストレージ装置」の代わりに「ストレージ部」として、ストレージ部の位置情報が登録されてもよい。
【００９６】
図１３はサーバ位置情報テーブルの一例を示す図である。サーバ位置情報テーブルＴ２は、項目として、「ＷＷＮ（World Wide Name）」および「サーバ位置」を有する。この例では、ＷＷＮは、ストレージ装置に接続されるサーバ２０ａ、２０ｂのポート識別子としている。
【００９７】
サーバ位置情報テーブルＴ２には、サーバ２０ａのＨＢＡ＃０のポートのＷＷＮがＸＸＸであり、サイトＳａに位置することが登録され、サーバ２０ａのＨＢＡ＃１のポートのＷＷＮがＹＹＹであり、サイトＳａに位置することが登録されている。
【００９８】
さらに、サーバ２０ｂのＨＢＡ＃０のポートのＷＷＮがＺＺＺであり、サイトＳｂに位置することが登録され、サーバ２０ｂのＨＢＡ＃１のポートのＷＷＮがＶＶＶであり、サイトＳｂに位置することが登録されている。このように、サーバポートに対して、各ポートがどのサイトに配置されるかが登録される。
【００９９】
図１４はＩ／Ｏ回数テーブルの一例を示す図である。Ｉ／Ｏ回数テーブルＴ３は、項目として、「ＦＯグループ」、「サイトＳａからのＩ／Ｏ回数」および「サイトＳｂからのＩ／Ｏ回数」を有する。
【０１００】
「ＦＯグループ」には、ＦＯグループの識別子が登録される。「サイトＳａからのＩ／Ｏ回数」には、サイトＳａ内に位置するサーバの全ＷＷＮからのＩ／Ｏの合計回数が登録される。「サイトＳｂからのＩ／Ｏ回数」には、サイトＳｂ内に位置するサーバの全ＷＷＮからのＩ／Ｏの合計回数が登録される。
【０１０１】
ＣＭ１１では、ＦＯグループ毎に各サイトからのＩ／Ｏ回数をカウントしてＩ／Ｏ回数テーブルＴ３に登録する。Ｉ／Ｏ回数は所定時間単位でクリアされる。例えば、ＣＭ１１は、各サイトからのＩ／Ｏ回数をカウントし、１分毎にクリアする。この場合、１分間でのＩ／Ｏ回数が得られる。
【０１０２】
なお、ＦＯグループのまとめ方としては、例えば、アクセス元サーバが同じＬＵＮはフェイルオーバを連動して行うため１つのＦＯグループにまとめ、アクセス元サーバの異なるＬＵＮは別のＦＯグループに分ける。
【０１０３】
＜ストレージシステムの動作＞
次にストレージシステムの動作について図１５、図１６を用いて説明する。図１５はストレージシステムの動作の一例を示す図である。ストレージシステム１−１ａにおいて、アクティブであったサーバ２０ａが故障、または負荷分散の機能が動作することにより、サーバ２０ｂがスタンバイからアクティブにフェイルオーバしたとする。
【０１０４】
フェイルオーバ直後のパス状態は、フェイルオーバ前と変わらず、ストレージ装置１０ａ側のパスはActive／Optimized、ストレージ装置１０ｂ側のパスはActive／Non-Optimizedである。
【０１０５】
また、サーバ２０ｂがアクティブになった場合のストレージ部１２ａとつながるアクティブパスは、例えば、図中のアクティブパスｐ１がある。アクティブパスｐ１は、サーバ２０ｂのＨＢＡ＃０、スイッチｓｗ２、ネットワークｎｗ１、スイッチｓｗ１、ＣＡ＃０、ＣＭ１１ａを経由するパスである。
【０１０６】
ここで、ＣＭ１１ａは、ストレージ部１２ａに対するＩ／Ｏ回数を常時カウントしているが、サーバ２０ｂがアクティブになった場合、サーバ２０ｂからストレージ部１２ａへのＩ／Ｏアクセスが増加することを検出する。
【０１０７】
すなわち、ＣＭ１１ａは、所定時間内においてＦＯグループｇ１に対する「サイトＳｂからのＩ／Ｏ回数」が「サイトＳａからのＩ／Ｏ回数」を上回ったことを検出できる。
また、ストレージ装置１０ａ内のＣＭ１１ａは、自身がサイトＳａに配置されていることを認識しているため、サイトＳａ以外のサイトＳｂからのアクセスが増加したと判断して、ＦＯグループｇ１のフェイルオーバ処理を行う。
【０１０８】
なお、ストレージ装置１０ａのＣＭ１１ａおよびストレージ装置１０ｂのＣＭ１１ｂのそれぞれでＩ／Ｏ回数を記録している。よって、どちらかのストレージ装置で逆サイト（自身が位置するサイト以外のサイト）からのアクセスが増加したことを検出した場合、フェイルオーバ処理が起動される。その場合、ストレージ装置１０ａ、１０ｂで相反する情報となったときは異常と判断して、ストレージのフェイルオーバ処理は行わない。
【０１０９】
例えば、サイトＳｂに配置される対向装置となるストレージ装置１０ｂが、サーバ２０ａからストレージ部１２ｂへの第３のアクセス数と、サーバ２０ｂからストレージ部１２ｂへの第４のアクセス数とを監視し、監視結果をストレージ装置１０ａへ送信する。
【０１１０】
また、ストレージ装置１０ａ内のＣＭ１１ａは、サーバ２０ａからストレージ部１２ａへの第１のアクセス数と、サーバ２０ｂからストレージ部１２ａへの第２のアクセス数との第１の比較結果を得る。ＣＭ１１ａは、ストレージ装置１０ｂから送信された、第３のアクセス数と第４のアクセス数との第２の比較結果を受信する。
【０１１１】
そして、ＣＭ１１ａは、第１、第２の比較結果が不一致と判定した場合、サーバ２０ｂに対してアクセス先の変更を非通知とし、ストレージのフェイルオーバ処理は実施しない。このように、ストレージ装置１０ａ、１０ｂ双方で監視した結果に矛盾がある場合は、ストレージ装置１０ａは、異常と判断して現状のアクセス状態を維持する。
【０１１２】
図１６はストレージシステムの動作の一例を示す図である。ストレージ装置は、通常、サーバからのＩ／Ｏに対してAsymmetric Access State Changed（0x6 0x2a 0x6）のセンスを応答する。サーバは、センスを受信するとReport Target Port Groupsコマンドをストレージ装置へ発行する。
【０１１３】
ストレージシステム１−１ｂにおいて、ＣＭ１１ａは、サイトＳｂからのＩ／Ｏ回数が、自身が配置されているサイトＳａからのＩ／Ｏ回数よりも増加したことを検出すると、ＦＯグループｇ１のフェイルオーバ処理を行う。
【０１１４】
すなわち、ＦＯグループｇ１のフェイルオーバ処理としては、ＣＭ１１ａは、サーバ２０ｂからのReport Target Port Groupsコマンドに対してストレージ装置１０ｂ側のポートをActive／Optimizedとしてサーバ２０ｂへ応答する。さらに、ＣＭ１１ａは、ストレージ装置１０ａ側のポートをActive／Non-Optimizedとしてサーバ２０ｂへ応答する。
【０１１５】
サーバ２０ｂは、Active／Optimizedのパスを優先的に選択するので、応答受信後、サーバ２０ｂは、Ｉ／Ｏをストレージ装置１０ｂに対して発行することになる。サーバ２０ｂとストレージ装置１０ｂがつながるパスとしては例えば、アクティブパスｐ２がある。
【０１１６】
アクティブパスｐ２は、サーバ２０ｂのＨＢＡ＃０、スイッチｓｗ２、ＣＡ＃２、ＣＭ１１ｂを経由するパスである。また、ストレージ装置１０ｂは、ミラーリングの方向を反転させてストレージ装置１０ｂで排他制御を行う。
【０１１７】
＜サイト内でマルチパスが形成されるストレージシステム＞
図１７はサイト内でマルチパスが形成されるストレージシステムの構成の一例を示す図である。上述したストレージシステムの構成例では、各サイトのサーバとストレージ装置間を１つのパスとして簡略化したが、サーバとストレージ装置それぞれのポートを複数にしてマルチパスで接続することも可能である。
【０１１８】
ストレージシステム１−２は、ネットワークｎｗ１、ｎｗ２を介して接続されるサイトＳａ、Ｓｂを有する。サイトＳａには、サーバ２０ａ、スイッチｓｗ１およびストレージ装置１０Ａが含まれる。サーバ２０ａには、ＨＢＡ＃０、＃１が搭載される。
【０１１９】
ストレージ装置１０Ａは、ＣＭ１１ａ−１、１１ａ−２およびストレージ部１２ａを有し、ストレージ部１２ａは、記憶領域としてＬＵＮ＃０、・・・、＃ｎを含む。またストレージ装置１０Ａには、ＣＡ＃０、＃１と、ＲＡ＃０が搭載される。
【０１２０】
サイトＳｂには、サーバ２０ｂ、スイッチｓｗ２およびストレージ装置１０Ｂが含まれる。サーバ２０ｂには、ＨＢＡ＃０、＃１が搭載される。ストレージ装置１０Ｂは、ＣＭ１１ｂ−１、１１ｂ−２およびストレージ部１２ｂを有し、ストレージ部１２ｂは、記憶領域としてＬＵＮ＃０、・・・、＃ｎを含む。またストレージ装置１０Ｂには、ＣＡ＃２、＃３と、ＲＡ＃１が搭載される。
【０１２１】
各構成要素の接続関係を示すと、スイッチｓｗ１は、サーバ２０ａのＨＢＡ＃０、＃１と、ＣＡ＃０、＃１と、ネットワークｎｗ１と接続する。スイッチｓｗ２は、サーバ２０ｂのＨＢＡ＃０、＃１と、ネットワークｎｗ１と、ＣＡ＃２、＃３と接続する。
【０１２２】
ＣＭ１１ａ−１上にはＣＡ＃０が搭載され、ＣＭ１１ａ−２上にはＣＡ＃１とＲＡ＃０が搭載され、ＣＭ１１ａ−１、１１ａ−２は互いに接続する。ＣＭ１１ｂ−１上にはＣＡ＃２とＲＡ＃１が搭載され、ＣＭ１１ｂ−２上にはＣＡ＃３が搭載置され、ＣＭ１１ｂ−１、１１ｂ−２は互いに接続する。また、ＲＡ＃０は、ネットワークｎｗ２に接続し、ＲＡ＃１はネットワークｎｗ２に接続する。
【０１２３】
また、ＣＭ１１ａ−１はストレージ部１２ａのＬＵＮ＃０、・・・、＃ｎを管理下に置き、ＣＭ１１ｂ−１はストレージ部１２ｂのＬＵＮ＃０、・・・、＃ｎを管理下に置く。
このような構成を有するストレージシステム１−２において、各サイトの中で優先的なパスが存在することがありえる。この例では、アクティブのサーバ２０ａが配置されるサイトＳａにおいて、ストレージ部１２ａ内のＬＵＮ＃０、・・・、＃ｎは、ＣＭ１１ａ−１の管理下にある。
【０１２４】
このため、ＣＭ＃１１ａ−１上のポートになるＣＡ＃０を経由するアクセスパスが優先パスとなる。この場合、サイトＳａのＣＡ＃０を経由するアクセスパスのみがActive／Optimizedとなることが可能である。
【０１２５】
一方、サイトＳｂのサーバ２０ｂがアクティブになって、ストレージ装置１０Ａからストレージ装置１０Ｂへフェイルオーバ処理が行われる場合、ＣＡ＃２を経由するアクセスパスのみがActive／Optimizedとなる。
【０１２６】
＜フローチャート＞
次に動作について図１８から図２０に示すフローチャートを用いて説明する。図１８はＩ／Ｏ処理におけるＣＭの動作を示すフローチャートである。以下の動作はＣＭ１１ａ、１１ｂにより並行して実施される。
【０１２７】
〔ステップＳ１１〕ＣＭ１１内の制御部１１−１は、サーバ２０に対して、ＬＵＮのアクセス状態が変更されたことを通知する非同期センスがＣＭ１１内の記憶部１１−２（またはストレージ部１２）内に登録されているか否かを判別する。登録されている場合はステップＳ１２へ処理が進み、登録されていない場合はステップＳ１３へ処理が進む。
【０１２８】
〔ステップＳ１２〕制御部１１−１は、上述のAsymmetric Access State Changed（0x6 0x2a 0x6）のセンスをサーバ２０へ応答する。
〔ステップＳ１３〕制御部１１−１は、ストレージ部１２に対して、データの書き込み／読み出し処理を実施する。
【０１２９】
〔ステップＳ１４〕制御部１１−１は、サーバ位置情報テーブルＴ２からサーバ２０の位置を参照し、Ｉ／Ｏ発行元のＷＷＮがどのサイトに属するかを検出する。該ＷＷＮがプライマリサイト（アクティブサーバが配置されるサイト）に属する場合、ステップＳ１５ａへ処理が進む。該ＷＷＮがセカンダリサイト（スタンバイサーバが配置されるサイト）に属する場合、ステップＳ１５ｂへ処理が進む。
【０１３０】
〔ステップＳ１５ａ〕制御部１１−１は、Ｉ／Ｏ発行先のＦＯグループのプライマリサイトに対応するカウンタをインクリメントし、Ｉ／Ｏ回数テーブルＴ３に結果を登録する。
【０１３１】
〔ステップＳ１５ｂ〕制御部１１−１は、Ｉ／Ｏ発行先のＦＯグループのセカンダリサイトに対応するカウンタをインクリメントし、Ｉ／Ｏ回数テーブルＴ３の結果に登録する。
【０１３２】
〔ステップＳ１６〕制御部１１−１は、Ｉ／Ｏ処理に対する正常応答をサーバ２０へ送信する。
図１９は定期監視処理の動作を示すフローチャートである。なお、以降の説明では、ミラーリングのコピー元ストレージ装置およびコピー元ストレージ装置が位置するサイト内に位置するサーバをマスタとする。また、コピー先ストレージ装置およびコピー先ストレージ装置が位置するサイト内に位置するサーバをスレーブとする。以下の図１９のフローはマスタ側のストレージ装置内のＣＭの動作を示している。
【０１３３】
〔ステップＳ２１〕制御部１１−１は、タイマにより定期監視処理を起動する。
〔ステップＳ２２〕制御部１１−１は、各ＦＯグループに対して監視処理を実施する。
〔ステップＳ２３〕制御部１１−１は、マスタ側に対してアクセスが最も多いサイトと、スレーブ側に対してアクセスが最も多いサイトは一致するか否かを判別する。すなわち、マスタ側とスレーブ側との情報とが相反している状態になっていないかどうかを判別する。一致する場合はステップＳ２４へ処理が進み、不一致の場合はステップＳ２７へ処理が進む。
【０１３４】
〔ステップＳ２４〕制御部１１−１は、監視処理対象のＦＯグループに対して最もアクセスの多いサイトと、マスタ側ストレージ装置が所属するサイトが一致するか否かを判別する。一致する場合はステップＳ２７へ処理が進み、一致しない場合はステップＳ２５へ処理が進む。
【０１３５】
〔ステップＳ２５〕制御部１１−１は、監視処理対象のＦＯグループに所属するＬＵＮのフェイルオーバ処理を起動する。そして、制御部１１−１は、ＬＵＮのミラーリング方向を反転し、セカンダリサイトをマスタに変更する。
【０１３６】
〔ステップＳ２６〕制御部１１−１は、ＬＵＮのアクセス状態が変更されたことを通知する非同期センスを登録する。
〔ステップＳ２７〕制御部１１−１は、Ｉ／Ｏ回数テーブルＴ３の該当Ｉ／Ｏ回数をクリアする。
【０１３７】
〔ステップＳ２８〕制御部１１−１は、すべてのＦＯグループの処理が完了したか否かを判別する。完了した場合はステップＳ２９へ処理が進み、未完了の場合はステップＳ２３へ処理が戻る。
【０１３８】
〔ステップＳ２９〕制御部１１−１は、次の監視処理の起動契機まで定期監視処理をスリープ状態にする。
図２０は定期監視処理の動作を示すフローチャートである。以下の図２０のフローはスレーブ側のストレージ装置内のＣＭの動作を示している。
【０１３９】
〔ステップＳ３１〕制御部１１−１は、タイマにより定期監視処理を起動する。
〔ステップＳ３２〕制御部１１−１は、各ＦＯグループに対して監視処理を実施する。
〔ステップＳ３３〕制御部１１−１は、マスタ側ストレージ装置にＩ／Ｏ回数の情報を送信する。
【０１４０】
〔ステップＳ３４〕制御部１１−１は、Ｉ／Ｏ回数テーブルＴ３の該当Ｉ／Ｏ回数をクリアする。
〔ステップＳ３５〕制御部１１−１は、すべてのＦＯグループの処理が完了したか否かを判別する。完了した場合はステップＳ３６へ処理が進み、未完了の場合はステップＳ３３へ処理が戻る。
【０１４１】
〔ステップＳ３６〕制御部１１−１は、次の監視処理の起動契機まで定期監視処理をスリープ状態にする。
＜通信シーケンス＞
図２１はストレージシステムの装置間の通信シーケンスの一例を示す図である。サーバのフェイルオーバが発生してから、ストレージ装置のフェイルオーバが実施されて、Ｉ／Ｏ発行先ストレージが切り替わるまでの通信シーケンスを示している。
【０１４２】
〔ステップＳ４１〕ストレージ装置１０ｂは、Ｉ／Ｏ回数情報をストレージ装置１０ａに定期的に送信する。
〔ステップＳ４２〕サーバ２０ａとストレージ装置１０ａ間でＩ／Ｏ発行の通信が行われる。
【０１４３】
〔ステップＳ４３〕サーバ２０ａに障害が発生する。
〔ステップＳ４４〕サーバ２０ａからサーバ２０ｂへのフェイルオーバが実施される。
〔ステップＳ４５〕サーバ２０ｂとストレージ装置１０ａ間でＩ／Ｏ発行の通信が行われる。
【０１４４】
〔ステップＳ４６〕ストレージ装置１０ａは、定期監視処理でアクセス元が変化したことを検出し、フェイルオーバ処理を起動する。
〔ステップＳ４７〕ストレージ装置１０ａは、ストレージ装置１０ｂに対してフェイルオーバ通知を行う。
【０１４５】
〔ステップＳ４８〕ストレージ装置１０ａ、１０ｂ間でフェイルオーバ処理が実施される。
〔ステップＳ４９〕サーバ２０ｂは、ストレージ装置１０ａにＩ／Ｏを発行する。
【０１４６】
〔ステップＳ５０〕ストレージ装置１０ａは、サーバ２０ｂに対してセンス応答を行う。
〔ステップＳ５１〕サーバ２０ｂは、Report Target Port Groupsコマンドをストレージ装置１０ａに送信する。
【０１４７】
〔ステップＳ５２〕ストレージ装置１０ａは、ストレージ装置１０ｂ側のパスをActive／Optimizedとしてサーバ２０ｂに応答する。
〔ステップＳ５３〕サーバ２０ｂとストレージ装置１０ｂ間でデータの読み出し／書き込みが実施される。
【０１４８】
なお、図２１において、区間ａ１では、サーバ２０ａがマスタでサーバ２０ｂがスレーブになり、区間ａ２では、サーバ２０ｂがマスタでサーバ２０ａがスレーブになる。また、区間ｂ１では、ストレージ装置１０ａがマスタでストレージ装置１０ｂがスレーブになり、区間ｂ２では、ストレージ装置１０ｂがマスタでストレージ装置１０ａがスレーブになる。
【０１４９】
以上説明したように、本発明によれば、遠隔サイト間でのサーバ／ストレージのクラスタ構成において、一方のサーバがダウンや負荷分散により他方のサーバがアクティブに切り替わった場合、ストレージ装置は、逆サイトからのアクセスの増加で一方のサーバのフェイルオーバを検出する。そして、ストレージ装置は、パス状態が変化したことを他方のサーバに通知する。これにより、サーバのフェイルオーバに連動して、ストレージに対して通信オーバヘッドが最も小さなパスにアクセスを継続できるようになる。
【０１５０】
上記で説明した本発明のストレージ装置１、１０ａ、１０ｂの処理機能は、コンピュータによって実現することができる。この場合、ストレージ装置１、１０ａ、１０ｂが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【０１５１】
処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリ等がある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープ等がある。光ディスクには、ＣＤ−ＲＯＭ／ＲＷ等がある。光磁気記録媒体には、ＭＯ（Magneto Optical disk）等がある。
【０１５２】
プログラムを流通させる場合、例えば、そのプログラムが記録されたＣＤ−ＲＯＭ等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１５３】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。
【０１５４】
また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。また、上記の処理機能の少なくとも一部を、ＤＳＰ、ＡＳＩＣ、ＰＬＤ等の電子回路で実現することもできる。
【０１５５】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【符号の説明】
【０１５６】
１  ストレージ装置
１ａ、１ｃ  記憶装置
１ｂ  制御部
Ｓａ、Ｓｂ  サイト
２０ａ、２０ｂ  サーバ
【図１】
2019125075.tif 000003
【図２】
2019125075.tif 000004
【図３】
2019125075.tif 000005
【図４】
2019125075.tif 000006
【図５】
2019125075.tif 000007
【図６】
2019125075.tif 000008
【図７】
2019125075.tif 000009
【図８】
2019125075.tif 000010
【図９】
2019125075.tif 000011
【図１０】
2019125075.tif 000012
【図１１】
2019125075.tif 000013
【図１２】
2019125075.tif 000014
【図１３】
2019125075.tif 000015
【図１４】
2019125075.tif 000016
【図１５】
2019125075.tif 000017
【図１６】
2019125075.tif 000018
【図１７】
2019125075.tif 000019
【図１８】
2019125075.tif 000020
【図１９】
2019125075.tif 000021
【図２０】
2019125075.tif 000022
【図２１】
2019125075.tif 000023