(57)【要約】【課題】  外部ボリュームをそれぞれ仮想化して利用可能な複数の仮想化ストレージ装置により、外部ボリュームを共用可能とし、ストレージシステムの処理性能を改善する。【解決手段】  第１仮想化ストレージ装置１は、外部ストレージ装置３の有する外部ボリューム３Ａを仮想化して取り込むことにより、それがあたかも内部ボリュームであるかのようにして、ホスト４に提供する。第１仮想化ストレージ装置１の負荷が増大した場合、第２仮想化ストレージ装置２が新たに導入され（S1）、ストレージシステムに接続される（S2A，S2B，S3）。管理端末７から移行指示が出されると（S5）、選択された論理ボリューム１Ｄに関する外部ボリューム３Ａが、第１仮想化ストレージ装置１から第２仮想化ストレージ装置２に移管される（S7）。【選択図】        図１
2006330895.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置に論理ボリュームをそれぞれ提供可能な複数の接続元ストレージ装置と、
前記各接続元ストレージ装置にそれぞれ接続され、他の論理ボリュームを有する接続先ストレージ装置と、
前記他の論理ボリュームの接続先を指示するための指示部とを備え、
前記各接続元ストレージ装置は、
前記他の論理ボリュームを管理するための管理情報を記憶する管理情報記憶部と、
この管理情報記憶部に記憶された前記管理情報に基づいて、前記論理ボリュームと前記他の論理ボリュームとを中間ボリュームを介して接続させる制御部と、をそれぞれ備えて構成されており、
前記指示部からの指示に基づいて、前記他の論理ボリュームの接続先を前記各接続元ストレージ装置間で切替可能となっているストレージシステム。
【請求項２】
前記他の論理ボリュームの接続先の切替とは、前記各接続元ストレージ装置のうち、前記他の論理ボリュームを排他的に利用可能な接続元ストレージ装置を変更することである請求項１に記載のストレージシステム。
【請求項３】
前記ホスト装置から前記論理ボリュームへのアクセスを停止させることなく、前記各接続元ストレージ装置間で、前記他の論理ボリュームの接続先を切替可能である請求項１に記載のストレージシステム。
【請求項４】
前記他の論理ボリュームの接続先の切替に応じて、前記ホスト装置のアクセス先を前記各接続元ストレージ装置間で切替させる請求項１に記載のストレージシステム。
【請求項５】
前記管理情報は、前記他の論理ボリュームを特定するための第１管理情報と、前記他の論理ボリュームの属性を管理するための第２管理情報とを含んで構成されており、
前記第１管理情報は、前記各接続元ストレージ装置によってそれぞれ保持され、
前記第２管理情報は、前記他の論理ボリュームの接続先として選択された切替先の接続元ストレージ装置によって保持される請求項１に記載のストレージシステム。
【請求項６】
前記第１管理情報には、前記他の論理ボリュームをストレージシステム内で特定するためのボリューム識別情報と、前記他の論理ボリュームの使用権限を有する接続元ストレージ装置を特定するための使用権限情報と、前記他の論理ボリュームの接続先が前記各接続元ストレージ装置間で切り替え中であるか否かを示す切替状態情報とが含まれており、
前記第２管理情報には、前記他の論理ボリュームに関するその他の複数の属性情報が含まれている、請求項５に記載のストレージシステム。
【請求項７】
前記使用権限情報は、前記各接続元ストレージ装置のうち切替元となる接続元ストレージ装置により設定されて、切替元となる接続元ストレージ装置から切替先となる接続元ストレージ装置に通知され、切替先となる接続元ストレージ装置による設定完了報告を前記切替元となる接続元ストレージ装置が受領することにより、前記使用権限情報の変更が確定される請求項６に記載のストレージシステム。
【請求項８】
前記他の論理ボリュームの接続先を切替元となる接続元ストレージ装置から切替先となる接続元ストレージ装置に切り替えている期間中、前記切替状態フラグはセットされ、前記他の論理ボリュームの接続先が切り替わった場合に、前記切替状態フラグはリセットされ、
前記切替状態フラグがセットされている間、前記切替元となる接続元ストレージ装置では、前記他の論理ボリュームに関する未書込みのデータをディステージし、前記切替先となる接続元ストレージ装置では、前記ホスト装置からのライトデータを非同期方式で処理し、
前記切替状態フラグがリセットされた場合、前記切替先ストレージ装置は、前記ライトデータをディステージさせる請求項１に記載のストレージシステム。
【請求項９】
前記各接続元ストレージ装置のうち切替元となる接続元ストレージ装置は、前記ホスト装置から前記他の論理ボリュームへのアクセスの処理を拒否し、かつ、前記他の論理ボリュームに関する未書込みのデータをディステージさせる請求項１に記載のストレージシステム。
【請求項１０】
前記ディステージが完了した場合に、前記切替元となる接続元ストレージ装置は、切替先となる接続元ストレージ装置にディステージ完了報告を通知し、
前記切替先となる接続元ストレージ装置は、前記ディステージ完了報告を受領した場合に、前記ホスト装置から前記他の論理ボリュームへのアクセス処理を行う請求項８に記載のストレージシステム。
【請求項１１】
前記各接続元ストレージ装置のうち少なくとも切替元となる接続元ストレージ装置に関する負荷状態を監視する監視部をさらに備えた請求項１に記載のストレージシステム。
【請求項１２】
前記監視部による監視結果に基づいて、前記各接続元ストレージ装置のうち切替元となる接続元ストレージ装置及び切替先となる接続元ストレージ装置がそれぞれ選択される請求項１１に記載のストレージシステム。
【請求項１３】
前記各接続元ストレージ装置にそれぞれ接続される管理端末をさらに備え、この管理端末に前記指示部及び前記監視部がそれぞれ設けられている請求項１２に記載のストレージシステム。
【請求項１４】
少なくとも一つ以上のホスト装置により利用される複数の接続元ストレージ装置と、これら各接続元ストレージ装置に接続される少なくとも一つ以上の接続先ストレージ装置とを含んだストレージシステムにおいて、
前記ホスト装置と前記各接続元ストレージ装置とは第１通信ネットワークを介してそれぞれ接続され、前記各接続元ストレージ装置と前記接続先ストレージ装置とは、前記第１通信ネットワークと分離された第２通信ネットワークを介して接続されており、
前記接続先ストレージ装置は、前記各接続元ストレージ装置の有する論理ボリュームと論理的に接続される他の論理ボリュームを備えており、
前記各接続元ストレージ装置は、
前記論理ボリュームを生成し、管理情報に基づいて前記論理ボリュームと前記他の論理ボリュームとを中間ボリュームを介して接続させる制御部と、
この制御部により使用され、前記管理情報を記憶するメモリと、を備えており、
さらに、前記各接続元ストレージ装置にそれぞれ接続される管理端末は、前記各接続元ストレージ装置の負荷状態をそれぞれ監視する監視部と、この監視部による監視結果に基づいて、前記各接続元ストレージ装置のうち切替元となる接続元ストレージ装置及び切替先となる接続元ストレージ装置をそれぞれ選択するための指示部と、を備えており、
前記指示部からの指示に基づいて、前記他の論理ボリュームの接続先を、前記切替元として選択された接続元ストレージ装置から前記切替先として選択された接続元ストレージ装置に切り替えさせ、
さらに、前記管理情報は、前記他の論理ボリュームを特定するための第１管理情報と、前記他の論理ボリュームの属性を管理するための第２管理情報とを含んで構成されており、前記第１管理情報は、前記切替元として選択された接続元ストレージ装置及び前記切替先として選択された接続元ストレージ装置によってそれぞれ記憶されており、
前記第２管理情報の全体は、前記切替元として選択された接続元ストレージ装置によって記憶されており、接続先が切り替えられる前記他の論理ボリュームに関する第２管理情報のみが、前記切替元として選択された接続元ストレージ装置から前記切替先として選択された接続元ストレージ装置に転送されるようになっているストレージシステム。
【請求項１５】
前記切替元として選択された接続元ストレージ装置は、前記ホスト装置から前記他の論理ボリュームへのアクセスの処理を拒否し、かつ、前記他の論理ボリュームに関する未書込みのデータをディステージさせる請求項１４に記載のストレージシステム。
【請求項１６】
前記ディステージが完了した場合に、前記切替元として選択された接続元ストレージ装置は、前記切替先として選択された接続元ストレージ装置にディステージ完了報告を通知し、
前記切替先として選択された接続元ストレージ装置は、前記ディステージ完了報告を受領した場合に、前記ホスト装置から前記他の論理ボリュームへのアクセス処理を行う請求項１５に記載のストレージシステム。
【請求項１７】
ホスト装置に第１通信ネットワークを介して論理ボリュームをそれぞれ提供可能な第１接続元ストレージ装置及び第２接続元ストレージ装置と、これら各第１，第２接続元ストレージ装置に第２通信ネットワークを介して接続される接続先ストレージ装置とを含んだストレージシステムを運用する方法であって、
前記接続先ストレージ装置の有する複数の他の論理ボリュームへそれぞれ接続するための管理情報に基づいて、前記複数の他の論理ボリュームを、前記第１接続元ストレージ装置の有する中間ボリュームを介して、前記第１接続元ストレージ装置の有する一つまたは複数の論理ボリュームにそれぞれ接続させ、前記ホスト装置からのアクセス要求を前記第１接続元ストレージ装置によって処理させる初期運用ステップと、
前記第２接続元ストレージ装置を、前記第１通信ネットワークを介して前記ホスト装置に接続し、前記第２通信ネットワークを介して前記接続先ストレージ装置に接続し、さらに、第３通信ネットワークを介して前記第１接続元ストレージ装置に接続させる装置追加ステップと、
前記第１接続元ストレージ装置の有する前記管理情報のうち、前記複数の他の論理ボリュームをそれぞれ特定するための情報を、前記第３通信ネットワークを介して、前記第１接続元ストレージ装置から前記第２接続元ストレージ装置に転送させる第１管理情報転送ステップと、
前記第１接続元ストレージ装置により使用されている前記複数の他の論理ボリュームのうち、前記第２接続元ストレージ装置に移管させる他の論理ボリュームを選択する移管対象選択ステップと、
前記第１接続元ストレージ装置の有する前記管理情報のうち、前記移管対象として選択された前記他の論理ボリュームに関する属性情報を、前記第３通信ネットワークを介して、前記第１接続元ストレージ装置から前記第２接続元ストレージ装置に転送させる第２管理情報転送ステップと、
前記第１管理情報転送ステップ及び前記第２管理情報転送ステップによって取得された情報に基づいて、前記移管対象として選択された前記他の論理ボリュームを、前記第２接続元ストレージ装置の有する中間ボリュームを介して、前記第２接続元ストレージ装置の有する論理ボリュームに接続させ、前記ホスト装置が前記第２接続元ストレージ装置の前記論理ボリュームにアクセスするためのパス情報を前記ホスト装置に設定させ、前記ホスト装置からのアクセス要求を前記第２接続元ストレージ装置によって処理させる追加運用ステップと、
を含むストレージシステムの運用方法。
【請求項１８】
前記移管対象選択ステップでは、前記第１接続元ストレージ装置により使用されている全ての他の論理ボリュームを前記移管対象として選択し、
前記追加運用ステップの後に装置置換ステップをさらに実行し、この装置置換ステップでは、前記第１接続元ストレージ装置を前記ホスト装置から切り離し、前記第１接続元ストレージ装置を前記第２接続元ストレージ装置から切り離し、前記第１接続元ストレージ装置を前記接続先ストレージ装置から切り離す、請求項１７の記載のストレージシステムの運用方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム及びストレージシステムの運用方法に関する。
【背景技術】
【０００２】
例えば、政府機関、企業、教育機関等では、多種多量のデータを取り扱うために、比較的大規模なストレージシステムを用いてデータを管理する。このストレージシステムは、例えば、ディスクアレイ装置等のストレージ装置を備えて構成される。例えば、ストレージ装置は、多数の記憶デバイスをアレイ状に配設して構成されるもので、RAID（Redundant Array of Inexpensive Disks）に基づく記憶領域を提供する。記憶デバイス群が提供する物理的な記憶領域上には少なくとも一つ以上の論理ボリュームが形成され、この論理ボリュームがホストコンピュータ（以下、「ホスト」と略記）に提供される。ホストは、ライトコマンドやリードコマンドを送信することにより、論理ボリュームに対してデータの書込み、読み出しを行うことができる。
【０００３】
企業等で管理すべきデータは、日々増大する。このため、企業等では、例えば、ストレージシステムに新たなストレージ装置を配備して、ストレージシステムを拡張する。新型のストレージ装置をストレージシステムに導入する方法としては、２通り考えられる。一つは、旧型のストレージ装置と新型のストレージ装置とを置き換える方法である。他の一つは、旧型のストレージ装置と新型のストレージ装置とを併存させる方法である。
【０００４】
ところが、旧型のストレージ装置から新型のストレージ装置に完全に移行させる場合は、旧型のストレージ装置を活用することができない。これに対し、旧型のストレージ装置と新型のストレージ装置との併存を図る場合は、ストレージシステムの構成が複雑化し、管理運用の手間が大きくなる。
【０００５】
そこで、ホストと第１ストレージ装置とを接続すると共に、第１ストレージ装置と第２ストレージ装置とを接続し、ホストからのアクセス要求を第１ストレージ装置が代表して処理するようにした技術が、本出願人から提案されている（特許文献１）。この技術では、第２ストレージ装置を対象とするコマンドも第１ストレージ装置が受け付けて、処理を代行する。もしも必要があれば、第１ストレージ装置は、第２ストレージ装置にコマンドを発行し、その処理結果を受信してホストに送信する。
【特許文献１】特開２００４−００５３７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
前記文献に記載の従来技術では、第１ストレージ装置と第２ストレージ装置とを共存させることにより、記憶資源を無駄にすることなく、ストレージシステムの性能を向上させている。しかし、このように強化されたストレージシステムであっても、その運用を続けている間に、処理性能が低下する可能性がある。
【０００７】
例えば、もしも、第１ストレージ装置に接続されるホストの数が増加等した場合、各ホストから多数のアクセス要求が発行されるため、ストレージシステムの処理性能は以前よりも低下するであろう。また、管理すべきデータは日々増大し、各データの性質に応じてその利用のされ方や利用の頻度も種々相違する。
【０００８】
そこで、ストレージシステムのさらなる強化が望まれることになる。この場合、第１ストレージ装置を、より高性能な別のストレージ装置に置き換えたり、あるいは、既存の第１ストレージ装置に加えて、別の第１ストレージ装置を追加することが考えられる。しかし、第１ストレージ装置の増設または置換は、前記文献に記載されているような第１ストレージ装置の追加のようなわけにはいかない。第１ストレージ装置は、第２ストレージ装置に直列的に接続されて第２ストレージ装置の記憶資源を利用しており、ストレージシステムの構成が既に複雑化しているためである。単純に、第１ストレージ装置のみに着目して、装置の置換や増設を行うことはできない。
【０００９】
本発明は、上記の問題点に鑑みてなされたもので、本発明の目的は、複数のストレージ装置を階層化して構成されたストレージシステムにおいて、その処理性能を比較的簡単に改善できるようにしたストレージシステム及びストレージシステムの運用方法を提供することにある。本発明の他の目的は、一つまたは複数の接続先ストレージ装置を複数の接続元ストレージ装置でそれぞれ共有可能とすることにより、処理性能を改善できるようにしたストレージシステム及びストレージシステムの運用方法を提供することにある。本発明のさらなる目的は、後述する実施形態の記載から明らかになるであろう。
【課題を解決するための手段】
【００１０】
上記課題を解決すべく、本発明に従うストレージシステムは、ホスト装置に論理ボリュームをそれぞれ提供可能な複数の接続元ストレージ装置と、各接続元ストレージ装置にそれぞれ接続され、他の論理ボリュームを有する接続先ストレージ装置と、他の論理ボリュームの接続先を指示するための指示部とを備えている。そして、各接続元ストレージ装置は、他の論理ボリュームを管理するための管理情報を記憶する管理情報記憶部と、この管理情報記憶部に記憶された管理情報に基づいて、論理ボリュームと他の論理ボリュームとを中間ボリュームを介して接続させる制御部と、をそれぞれ備えて構成されており、指示部からの指示に基づいて、他の論理ボリュームの接続先を各接続元ストレージ装置間で切替可能となっている。
【００１１】
接続元ストレージ装置の論理ボリュームは、中間ボリュームを介して、接続先ストレージ装置の有する他の論理ボリュームに接続することができる。この接続は、管理情報記憶部に記憶されている管理情報に基づいて、行うことができる。
【００１２】
ここで、接続元ストレージ装置に着目すると、接続先ストレージ装置は、接続元ストレージ装置の外部に位置する外部ストレージ装置であり、接続先ストレージ装置の有する他の論理ボリュームは、接続元ストレージ装置の外部に位置する外部ボリュームである。従って、以下では、発明の理解を助けるために、接続先ストレージ装置を外部ストレージ装置と、他の論理ボリュームを外部ボリュームと、それぞれ呼ぶ場合がある。
【００１３】
ホスト装置は、接続元ストレージ装置の論理ボリュームをアクセス対象として、リードコマンドやライトコマンド等を発行する。接続元ストレージ装置は、ホスト装置からのアクセス要求を受領すると、アクセス対象の論理ボリュームに接続されている外部ボリュームに対して、所定のコマンドを発行し、外部ボリュームとの間でデータの読み書きを行うようになっている。このように、接続元ストレージ装置の有する論理ボリュームは、ホスト装置からのアクセス対象となるアクセス先ボリュームであり、外部ストレージ装置の有する外部ボリューム（他の論理ボリューム）は、実際にデータを格納するデータ格納先ボリュームとなっている。ホスト装置からは、外部ボリュームを直接認識することはできず、外部ボリュームはホスト装置に対して透過である。
【００１４】
指示部は、外部ボリュームをどの接続元ストレージ装置の論理ボリュームに接続させるかを指示する。この指示に基づいて、外部ボリュームの接続先は、各接続元ストレージ装置間で切り替わる。即ち、一方の接続元ストレージ装置の論理ボリュームに中間ボリュームを介して外部ボリュームが接続されている場合、指示部が他方の接続元ストレージ装置への切替を指示すると、外部ボリュームは、他方の接続元ストレージ装置の論理ボリュームに中間ボリュームを介して接続される。
【００１５】
これにより、複数の接続元ストレージ装置によって一つまたは複数の外部ボリュームを排他的に利用することができる。従って、例えば、特定の外部ボリュームへのアクセス要求が多い場合には、その高負荷の外部ボリュームを別の接続元ストレージ装置に移管することにより、負荷を分散させて、ストレージシステム全体の処理性能を改善することができる。
【００１６】
実施形態では、ホスト装置から論理ボリュームへのアクセスを停止させることなく、各接続元ストレージ装置間で、他の論理ボリュームの接続先を切替可能である。
【００１７】
本実施形態では、他の論理ボリュームの接続先の切替に応じて、ホスト装置のアクセス先を各接続元ストレージ装置間で切替させる。つまり、外部ボリュームの接続先が一方の接続元ストレージ装置から他方の接続元ストレージ装置に切り替えられた場合、ホスト装置のアクセス先も一方の接続元ストレージ装置から他方の接続元ストレージ装置に切り替えられる。
【００１８】
実施形態では、管理情報は、他の論理ボリュームを特定するための第１管理情報と、他の論理ボリュームの属性を管理するための第２管理情報とを含んで構成されており、第１管理情報は、各接続元ストレージ装置によってそれぞれ保持され、第２管理情報は、他の論理ボリュームの接続先として選択された切替先の接続元ストレージ装置によって保持される。
【００１９】
即ち、他の論理ボリュームを管理するための管理情報は、第１管理情報と第２管理情報とを備えており、第１管理情報は、各接続元ストレージ装置がそれぞれ記憶し、第２管理情報は、それを必要とする接続元ストレージ装置に記憶される。
【００２０】
実施形態では、第１管理情報には、他の論理ボリュームをストレージシステム内で特定するためのボリューム識別情報と、他の論理ボリュームの使用権限を有する接続元ストレージ装置を特定するための使用権限情報と、他の論理ボリュームの接続先が各接続元ストレージ装置間で切り替え中であるか否かを示す切替状態情報とが含まれており、第２管理情報には、他の論理ボリュームに関するその他の複数の属性情報が含まれている。
【００２１】
実施形態では、使用権限情報は、各接続元ストレージ装置のうち切替元となる接続元ストレージ装置により設定されて、切替元となる接続元ストレージ装置から切替先となる接続元ストレージ装置に通知され、切替先となる接続元ストレージ装置による設定完了報告を切替元となる接続元ストレージ装置が受領することにより、使用権限情報の変更が確定される。
【００２２】
実施形態では、他の論理ボリュームの接続先を切替元となる接続元ストレージ装置から切替先となる接続元ストレージ装置に切り替えている期間中、切替状態フラグはセットされ、他の論理ボリュームの接続先が切り替わった場合に、切替状態フラグはリセットされ、切替状態フラグがセットされている間、切替元となる接続元ストレージ装置では、他の論理ボリュームに関する未書込みのデータをディステージし、切替先となる接続元ストレージ装置では、ホスト装置からのライトデータを非同期方式で処理し、切替状態フラグがリセットされた場合、切替先ストレージ装置は、ライトデータをディステージさせるようになっている。
【００２３】
ここで、非同期転送モードとは、論理ボリュームにデータを書き込む場合、そのデータを物理的な記憶デバイスに書き込むよりも前に、ホスト装置に書込み完了を報告するモードである。これに対し、同期転送モードとは、論理ボリュームにデータを書き込む場合、そのデータを物理的な記憶デバイスに書き込んだことを確認してから、書込み完了をホスト装置に報告するモードである。
【００２４】
実施形態では、各接続元ストレージ装置のうち切替元となる接続元ストレージ装置は、ホスト装置から他の論理ボリュームへのアクセスの処理を拒否し、かつ、他の論理ボリュームに関する未書込みのデータをディステージさせる。
【００２５】
即ち、切替元となる接続元ストレージ装置は、ホスト装置からのアクセス要求のうち、切替先となる接続元ストレージ装置に移管される外部ボリュームに関するアクセス要求の処理を拒否する。拒否は、積極的に又は消極的に行うことができる。そして、切替元となる接続元ストレージ装置は、その移管される外部ボリュームに関する未書込みのデータをディステージさせる。これにより、その外部ボリュームに記憶されているデータの整合性を維持することができる。
【００２６】
実施形態では、ディステージが完了した場合に、切替元となる接続元ストレージ装置は、切替先となる接続元ストレージ装置にディステージ完了報告を通知し、切替先となる接続元ストレージ装置は、ディステージ完了報告を受領した場合に、ホスト装置から他の論理ボリュームへのアクセス処理を行う。
即ち、移管前（切替前）のダーティデータを、移管対象の外部ボリュームを構成する物理的な記憶デバイスに書込み、データの整合性を維持する。
【００２７】
実施形態では、各接続元ストレージ装置のうち少なくとも切替元となる接続元ストレージ装置に関する負荷状態を監視する監視部をさらに備えている。
そして、監視部による監視結果に基づいて、各接続元ストレージ装置のうち切替元となる接続元ストレージ装置及び切替先となる接続元ストレージ装置がそれぞれ選択されるようになっている。
【００２８】
負荷状態としては、例えば、入出力頻度（IOPS）、CPU使用率、キャッシュメモリ使用率、データ転送量等を挙げることができる。例えば、負荷状態が所定の閾値よりも高くなった論理ボリュームが存在する場合、その論理ボリュームが接続されている外部ボリュームを、別の接続元ストレージ装置に移管させる。これにより、切替元の接続元ストレージ装置の負荷を低下させることができる。
【００２９】
実施形態では、各接続元ストレージ装置にそれぞれ接続される管理端末をさらに備え、この管理端末に指示部及び監視部がそれぞれ設けられている。
【００３０】
本発明の他の観点に従うストレージシステムは、少なくとも一つ以上のホスト装置により利用される複数の接続元ストレージ装置と、これら各接続元ストレージ装置に接続される少なくとも一つ以上の接続先ストレージ装置とを含んだストレージシステムにおいて、ホスト装置と各接続元ストレージ装置とは第１通信ネットワークを介してそれぞれ接続され、各接続元ストレージ装置と接続先ストレージ装置とは、第１通信ネットワークと分離された第２通信ネットワークを介して接続されている。
また、接続先ストレージ装置は、各接続元ストレージ装置の有する論理ボリュームと論理的に接続される他の論理ボリュームを備えている。そして、各接続元ストレージ装置は、論理ボリュームを生成し、管理情報に基づいて論理ボリュームと他の論理ボリュームとを中間ボリュームを介して接続させる制御部と、この制御部により使用され、管理情報を記憶するメモリと、を備える。
さらに、各接続元ストレージ装置にそれぞれ接続される管理端末は、各接続元ストレージ装置の負荷状態をそれぞれ監視する監視部と、この監視部による監視結果に基づいて、各接続元ストレージ装置のうち切替元となる接続元ストレージ装置及び切替先となる接続元ストレージ装置をそれぞれ選択するための指示部と、を備えている。
そして、指示部からの指示に基づいて、他の論理ボリュームの接続先を、切替元として選択された接続元ストレージ装置から切替先として選択された接続元ストレージ装置に切り替えさせる。
さらに、管理情報は、他の論理ボリュームを特定するための第１管理情報と、他の論理ボリュームの属性を管理するための第２管理情報とを含んで構成されており、第１管理情報は、切替元として選択された接続元ストレージ装置及び切替先として選択された接続元ストレージ装置によってそれぞれ記憶されている。
第２管理情報の全体は、切替元として選択された接続元ストレージ装置によって記憶されており、接続先が切り替えられる他の論理ボリュームに関する第２管理情報のみが、切替元として選択された接続元ストレージ装置から切替先として選択された接続元ストレージ装置に転送されるようになっている。
【００３１】
本発明のさらに別の観点に従うストレージシステムの運用方法は、ホスト装置に第１通信ネットワークを介して論理ボリュームをそれぞれ提供可能な第１接続元ストレージ装置及び第２接続元ストレージ装置と、これら各第１，第２接続元ストレージ装置に第２通信ネットワークを介して接続される接続先ストレージ装置とを含んだストレージシステムを運用する方法であって、以下の各ステップを含んでいる。
【００３２】
初期運用ステップでは、接続先ストレージ装置の有する複数の他の論理ボリュームへそれぞれ接続するための管理情報に基づいて、複数の他の論理ボリュームを、第１接続元ストレージ装置の有する中間ボリュームを介して、第１接続元ストレージ装置の有する一つまたは複数の論理ボリュームにそれぞれ接続させ、ホスト装置からのアクセス要求を第１接続元ストレージ装置によって処理させる。
【００３３】
装置追加ステップでは、第２接続元ストレージ装置を、第１通信ネットワークを介してホスト装置に接続し、第２通信ネットワークを介して接続先ストレージ装置に接続し、さらに、第３通信ネットワークを介して第１接続元ストレージ装置に接続させる。
【００３４】
第１管理情報転送ステップでは、第１接続元ストレージ装置の有する管理情報のうち、複数の他の論理ボリュームをそれぞれ特定するための情報を、第３通信ネットワークを介して、第１接続元ストレージ装置から第２接続元ストレージ装置に転送させる。
【００３５】
移管対象選択ステップでは、第１接続元ストレージ装置により使用されている複数の他の論理ボリュームのうち、第２接続元ストレージ装置に移管させる他の論理ボリュームを選択する。
【００３６】
第２管理情報転送ステップでは、第１接続元ストレージ装置の有する管理情報のうち、移管対象として選択された他の論理ボリュームに関する属性情報を、第３通信ネットワークを介して、第１接続元ストレージ装置から第２接続元ストレージ装置に転送させるようになっている。
【００３７】
追加運用ステップでは、第１管理情報転送ステップ及び第２管理情報転送ステップによって取得された情報に基づいて、移管対象として選択された他の論理ボリュームを、第２接続元ストレージ装置の有する中間ボリュームを介して、第２接続元ストレージ装置の有する論理ボリュームに接続させ、ホスト装置が第２接続元ストレージ装置の論理ボリュームにアクセスするためのパス情報をホスト装置に設定させ、ホスト装置からのアクセス要求を第２接続元ストレージ装置によって処理させる。
【００３８】
なお、第３通信ネットワークは、第１通信ネットワークまたは第２通信ネットワークのいずれか一方と兼用してもよい。
【００３９】
本発明の手段、機能、ステップの全部または一部は、コンピュータシステムにより実行されるコンピュータプログラムとして構成可能な場合がある。本発明の構成の全部または一部がコンピュータプログラムから構成された場合、このコンピュータプログラムは、例えば、各種記憶媒体に固定して配布等することができ、あるいは、通信ネットワークを介して送信することもできる。
【発明を実施するための最良の形態】
【００４０】
図１は、本発明の実施形態の全体概要を示す構成説明図である。図１に示すように、このストレージシステムは、例えば、複数の仮想化ストレージ装置１，２と、複数の外部ストレージ装置３と、複数のホスト装置（以下、「ホスト」）４と、上位SAN（Storage Area Network）５と、下位SAN６と、管理端末７と、装置間LAN（Local Area Network）８とを備えて構成することができる。
【００４１】
ここで、仮想化ストレージ装置１，２は「接続元ストレージ装置」に対応し、外部ストレージ装置３は「接続先ストレージ装置」に対応する。ホスト４は「ホスト装置」に対応し、上位SAN５は「第１通信ネットワーク」に対応し、下位SAN６は「第２通信ネットワーク」に対応し、管理端末７は「管理端末」に対応し、装置間LAN８は「第３通信ネットワーク」に対応する。
【００４２】
なお、上位SAN５及び下位SAN６は、例えば、FC_SAN（Fibre Channel_Storage Area Network）またはIP_SAN（Internet Protocol_SAN）として構成可能であるが、これに限らず、例えばLANやWAN（Wide Area Network）として構成可能な場合もある。上位SAN５は、各ホスト４と各仮想化ストレージ装置１，２とをそれぞれ接続するためのものである。下位SAN６は、各仮想化ストレージ装置１，２と各外部ストレージ装置３とをそれぞれ接続するためのものである。上位SAN５と下位SAN６とは分離されており、一方の通信ネットワークのトラフィックや障害は、他方の通信ネットワークに直接的な影響を与えない。
【００４３】
第１仮想化ストレージ装置１の構成に着目する。第１仮想化ストレージ装置１は、外部ストレージ装置３の有するボリューム３Ａを仮想化して、ホスト４に提供するためのものである。この第１仮想化ストレージ装置１は、例えば、制御部１Ａと、第１管理テーブル１Ｂと、第２管理テーブル１Ｃと、論理ボリューム１Ｄと、中間ボリューム１Ｅとを備えている。
【００４４】
ここで、制御部１Ａは「制御部」に対応し、第１管理テーブル１Ｂは「第１管理情報」に対応し、第２管理テーブル１Ｃは「第２管理情報」に対応し、論理ボリューム１Ｄは「論理ボリューム」に対応し、中間ボリューム１Ｅは「中間ボリューム」に対応する。
【００４５】
制御部１Ａは、第１仮想化ストレージ装置１の全体動作を制御する。制御部１Ａは、例えば、論理ボリューム１Ｄを生成してホスト４に提供する。また、制御部１Ａは、第１管理テーブル１Ｂ及び第２管理テーブル１Ｃを使用することにより、論理ボリューム１Ｄと外部ボリューム３Ａとを中間ボリューム１Ｅを介して接続させる。さらに、制御部１Ａは、管理端末７からの指示に基づいて、自己の管理下にある外部ボリューム３Ａの全部または一部を、第２仮想化ストレージ装置２に移行させる。
【００４６】
第１管理テーブル１Ｂは、ストレージシステム内に含まれる各外部ボリューム３Ａを識別し、所望の外部ボリューム３Ａを論理ボリューム１Ｄに接続するために使用される。第２管理テーブル１Ｃは、各外部ボリューム３Ａのコピーステータスや差分管理情報（差分ビットマップ等）のようなその他の属性情報を管理するために使用される。
【００４７】
第２仮想化ストレージ装置２は、第１仮想化ストレージ装置１と同様の構成を備えることができる。第２仮想化ストレージ装置２は、第１仮想化ストレージ装置１と同様に、各外部ボリューム３Ａの全部または一部を、中間ボリューム２Ｅを介して論理ボリューム２Ｄに接続することができる。そして、第２仮想化ストレージ装置２は、第１仮想化ストレージ装置１と同様に、外部ボリューム３Ａをあたかも自己の内部ボリュームであるかのようにして、ホスト４に提供する。
【００４８】
第２仮想化ストレージ装置２は、例えば、制御部２Ａと、第１管理テーブル２Ｂと、第２管理テーブル２Ｃと、論理ボリューム２Ｄ及び中間ボリューム２Ｅを備えて構成することができる。これら各部２Ａ〜２Ｅは、第１仮想化ストレージ装置１で述べた各部１Ａ〜１Ｅと同様に構成されるので、詳細な説明を省略する。
【００４９】
但し、第２管理テーブル２Ｃのサイズは、第１仮想化ストレージ装置１の第２管理テーブル１Ｃのサイズよりも小さい点に留意すべきである。本実施形態では、第１仮想化ストレージ装置１から第２仮想化ストレージ装置２に移管された外部ボリューム３Ａに関する属性情報のみが、第１仮想化ストレージ装置１の第２管理テーブル１Ｃから第２仮想化ストレージ装置２の第２管理テーブル２Ｃにコピーされる。従って、第２管理テーブル２Ｃのテーブルサイズは、第２管理テーブル１Ｃのそれよりも小さい。
【００５０】
第２仮想化ストレージ装置２がストレージシステムに追加されるよりも前に、第１仮想化ストレージ装置１が既に使用されていた場合、即ち、第１仮想化ストレージ装置１が全ての外部ボリューム３Ａを仮想化して使用していた場合、第１仮想化ストレージ装置１は、全ての外部ボリューム３Ａの属性情報を取得している。その状況下で、第２仮想化ストレージ装置２がストレージシステムに追加され、一部の外部ボリューム３Ａが第１仮想化ストレージ装置１から第２仮想化ストレージ装置２に移管された場合、この移管された外部ボリューム３Ａに関する属性情報のみが、第１仮想化ストレージ装置１の第２管理テーブル１Ｃから第２仮想化ストレージ装置２の第２管理テーブル２Ｃにコピーされる。
【００５１】
各外部ストレージ装置３は、それぞれ少なくとも一つ以上の外部ボリューム３Ａを備えている。外部ボリュームとは、各仮想化ストレージ装置１，２の外部に存在するボリュームという意味である。各外部ボリューム３Ａは、例えば、一つまたは複数の記憶デバイスの有する物理的な記憶領域上に設けられている。記憶デバイスとしては、例えば、ハードディスクドライブ、光ディスクドライブ、半導体メモリドライブ、テープドライブ等を挙げることができる。また、ハードディスクドライブとしては、例えば、FC（Fibre Channel）ディスク、SAS（Serial Attached SCSI）ディスク、SATA（Serial AT Attachment）ディスク等の各種ディスクを使用することができる。各外部ボリューム３Ａは、中間ボリューム１Ｅ，２Ｅを介して、論理ボリューム１Ｄ，２Ｄのいずれか一方に接続され、仮想化ストレージ装置１，２に記憶領域を提供する。
【００５２】
管理端末７は、装置間LAN８を介して、各仮想化ストレージ装置１，２の両方にそれぞれ接続されている。管理端末７は、例えば、パーソナルコンピュータや携帯情報端末（携帯電話等を含む）等のように構成されており、監視部７Ａを備えている。監視部７Ａは、各仮想化ストレージ装置１，２の負荷状態をそれぞれ監視し、その監視結果を端末画面に表示させることができる。
負荷状態としては、例えば、データ入出力頻度（IOPS）、CPU使用率、キャッシュメモリ使用率等を挙げることができる。システム管理者等のユーザは、監視部７Ａによる監視結果に基づいて、各仮想化ストレージ装置１，２の負荷状態を把握することができ、ボリュームの配置等を決定することができる。
なお、ユーザの判断過程の少なくとも一部は、コンピュータプログラムによって実現することができ、各仮想化ストレージ装置１，２の負荷状態に基づいて、ボリューム配置を自動的に行うようにすることも可能である。ユーザによるボリューム移管の決定は、管理端末７を介して、各仮想化ストレージ装置１，２に通知される。
【００５３】
次に、本実施形態によるストレージシステムの運用方法について説明する。最も初期の状態では、ストレージシステムには、各外部ストレージ装置３のみが存在している。その後、ユーザは、第１仮想化ストレージ装置１をストレージシステムに導入し、第１仮想化ストレージ装置１によって、各外部ストレージ装置３の有する外部ボリューム３Ａを仮想化して、各ホスト４に提供する。その後、例えば、さらにホスト４の台数が増加し、第１仮想化ストレージ装置１の処理性能の上限まで使用されるようになると、ユーザは、第２仮想化ストレージ装置２の導入を決定する。ユーザは、監視部７Ａの監視結果に基づいて、第２仮想化ストレージ装置２の導入を決定することができる（Ｓ０）。
【００５４】
そこで、ストレージシステムに第２仮想化ストレージ装置２が追加される（Ｓ１）。ユーザまたは第２仮想化ストレージ装置２を販売する企業のエンジニアは、第２仮想化ストレージ装置２を上位SAN５及び下位SAN６にそれぞれ接続する（Ｓ２Ａ，Ｓ２Ｂ）。また、第２仮想化ストレージ装置２は、装置間LAN８を介して、第１仮想化ストレージ装置１に接続される（Ｓ３）。
【００５５】
次に、第１仮想化ストレージ装置１の有する第１管理テーブル１Ｂの内容が、第２仮想化ストレージ装置２にコピーされる（Ｓ４）。これにより、第２仮想化ストレージ装置２内に第１管理テーブル２Ｂが生成される。
【００５６】
ユーザは、監視部７Ａの監視結果に基づいて、第１仮想化ストレージ装置１から第２仮想化ストレージ装置２へ移管させる外部ボリューム３Ａを選択し、ボリュームの移管を指示する（Ｓ５）。
【００５７】
管理端末７からの指示に基づいて、第１仮想化ストレージ装置１の有する第２管理テーブル１Ｃに記憶された属性情報のうち、第２仮想化ストレージ装置２に移管される外部ボリューム３Ａに関する属性情報のみが、第１仮想化ストレージ装置１から第２仮想化ストレージ装置２に転送される（Ｓ６）。
【００５８】
第２仮想化ストレージ装置２は、第１管理テーブル２Ｂ及び第２管理テーブル２Ｃを使用することにより、管理端末７から指定された外部ボリューム３Ａと論理ボリューム２Ｄとを接続させる（Ｓ７）。そして、第２仮想化ストレージ装置２は、論理ボリューム２Ｄをホスト４に認識させるための情報を設定し、ホスト４は、その論理ボリューム２Ｄへアクセスするためのパスを設定する（Ｓ８）。
【００５９】
ホスト４によって使用されるデータは、実際には、いずれか所定の外部ボリューム３Ａに格納されている。ボリュームの移動前において、ホスト４は、第１仮想化ストレージ装置１の論理ボリューム１Ｄから中間ボリューム１Ｅを介して、その所定の外部ボリューム３Ａにアクセスしている。ホスト４は、そのデータがその所定の外部ボリューム３Ａに記憶されていることを全く意識していない。
【００６０】
その所定の外部ボリューム３Ａを第１仮想化ストレージ装置１から第２仮想化ストレージ装置２に移管させる場合、第２仮想化ストレージ装置２は、その所定の外部ボリューム３Ａを中間ボリューム２Ｅを介して論理ボリューム２Ｄに接続させる。ホスト４は、パス情報を修正することにより、その論理ボリューム２Ｄへアクセスすることができ、これにより、所望のデータを読み書きすることができる。
【００６１】
以上述べたように、本実施形態では、複数の仮想化ストレージ装置１，２により、外部ボリューム３Ａを仮想化して使用することができる。そして、各仮想化ストレージ装置１，２の間で、外部ボリューム３Ａを移管させることができる。従って、第１仮想化ストレージ装置１と第２仮想化ストレージ装置２とで処理負荷を分散させることができ、ストレージシステムの処理性能を改善することができる。これにより、ストレージサービスへの需要が増大した場合でも、仮想化ストレージ装置を適宜追加するだけで、その増大した需要に対応することができ、使い勝手が向上する。
【００６２】
なお、各仮想化ストレージ装置１，２を共存させる必要は必ずしもなく、例えば、全ての外部ボリューム３Ａを第１仮想化ストレージ装置１から第２仮想化ストレージ装置２に移管させた後、第１仮想化ストレージ装置１をストレージシステムから取り外すようにしてもよい。以下、本実施形態をより詳細に説明する。
【実施例１】
【００６３】
図２は、本実施例によるストレージシステムの全体概要を示す説明図である。先に図１との対応関係について説明すると、図２中の第１仮想化ストレージ装置１００Ａは、図１中の第１仮想化ストレージ装置１に対応し、第２仮想化ストレージ装置１００Ｂは、図１中の第２仮想化ストレージ装置２に対応する。同様に、図２中の外部ストレージ装置２００は、図１中の外部ストレージ装置３に対応し、図２中のホスト１０は、図１中のホスト４に対応し、図２中の管理端末２０は、図１中の管理端末７に対応する。図２中の通信ネットワークCN１は、図１中の上位SAN５に対応し、図２中の通信ネットワークCN2は、図１中の下位SAN６に対応し、図２中の通信ネットワークCN３は、図１中の装置間LAN８に対応する。
【００６４】
先にストレージシステムのネットワーク構成について説明すると、各ホスト１０は、上位ネットワークCN１を介して、各仮想化ストレージ装置１００Ａ，１００Ｂにそれぞれ接続されている。各仮想化ストレージ装置１００Ａ，１００Ｂは、下位ネットワークCN2を介して、各外部ストレージ装置２００にそれぞれ接続されている。そして、各仮想化ストレージ装置１００Ａ，１００Ｂと管理端末２０とは、管理用ネットワークCN３を介して接続されている。例えば、通信ネットワークCN１，CN2は、IP_SANまたはFC_SANとして構成することができる。また、例えば、通信ネットワークCN３は、LANとして構成可能である。但し、管理用の通信ネットワークCN３を廃止し、上位ネットワークCN１または下位ネットワークCN2のいずれかまたは両方を用いて、ストレージシステムを管理するための情報を転送するようにしてもよい。
【００６５】
ストレージシステムの概略構成を説明する。ホスト１０は、例えば、HBA（Host Bus Adapter）１１と、ボリューム管理部１２と、アプリケーションプログラム（図中「アプリケーション」と略記）１３とを備えて構成することができる。上位ネットワークCN１をIP_SANとして構成する場合、HBA１１に代えて、例えば、TCP/IPオフロードエンジンを搭載したLANカードを用いることができる。ボリューム管理部１２は、アクセスすべきボリュームへのパス情報等を管理する。
【００６６】
第１仮想化ストレージ装置１００Ａは、例えば、ホスト接続用インターフェース（図中では、「Ｉ／Ｆ」と略記）１１１Ｔと、コントローラ１０１Ａと、外部ストレージ接続用インターフェース１１１Ｅとを備えて構成することができる。なお、第１仮想化ストレージ装置１００Ａは、後述のように論理ボリューム１６４を備えているが、階層記憶構造については、図４と共に後述する。
【００６７】
ホスト接続用インターフェース１１１Ｔは、上位通信ネットワークCN１を介して、各ホスト１０に接続するためのものである。外部ストレージ接続用インターフェース１１１Ｅは、下位通信ネットワークCN２を介して、各外部ストレージ装置２００に接続するためのものである。
【００６８】
コントローラ１０１Ａは、第１仮想化ストレージ装置１００Ａの動作を制御するためのものである。コントローラ１０１Ａの詳細はさらに後述するが、コントローラ１０１Ａは、例えば、一つまたは複数のマイクロプロセッサと、メモリ、データ処理回路等を備えて構成できる。コントローラ１０１Ａにより使用される制御メモリ１４０には、管理テーブルＴ１Ａ及び属性テーブルＴ２Ａがそれぞれ記憶されている。管理テーブルＴ１Ａは、図１中の第１管理テーブル１Ｂに対応し、属性テーブルＴ２Ａは、図１中の第２管理テーブル１Ｃに対応する。これら各管理テーブルＴ１Ａ，Ｔ２Ａの詳細はさらに後述する。コントローラ１０１Ａにより使用されるキャッシュメモリ１３０には、ホスト１０から書き込まれたライトデータ等が記憶される。
【００６９】
第２仮想化ストレージ装置１００Ｂは、第１仮想化ストレージ装置１００Ａと同様に、ホスト接続用インターフェース１１１Ｔと、コントローラ１０１Ｂと、外部ストレージ接続用インターフェース１１１Ｅとを備えて構成することができる。そして、コントローラ１０１Ｂにより使用される制御メモリ１４０には、管理テーブルＴ１Ｂ及び属性テーブルＴ２Ｂがそれぞれ記憶されている。
【００７０】
各外部ストレージ装置２００は、例えば、コントローラ２１０と、通信ポート２１１と、論理ボリューム２４０とをそれぞれ備えて構成することができる。この論理ボリューム２４０は、各仮想化ストレージ装置１００Ａ，１００Ｂの外部に存在するボリュームであるため、本明細書では、外部ボリュームと呼ぶ場合がある。
【００７１】
管理端末２０は、例えば、パーソナルコンピュータやワークステーションあるいは携帯情報端末等として構成されるもので、監視部２１を備えている。監視部２１は、各仮想化ストレージ装置１００Ａ，１００Ｂの負荷状態をそれぞれ取得し、取得した負荷状態を端末画面に表示させる。
【００７２】
なお、図中に示す符号３０は、スイッチを示している。図２中では、上位ネットワークCN１のみにスイッチ３０を示しているが、下位ネットワークCN２にも一つまたは複数のスイッチを設けることができる。
【００７３】
図３は、各仮想化ストレージ装置１００Ａ，１００Ｂのより詳細なハードウェア構成を示す説明図である。第１仮想化ストレージ装置１００について説明すると、第１仮想化ストレージ装置１００Ａは、例えば、複数のチャネルアダプタ（以下、「CHA」）１１０と、複数のディスクアダプタ（以下、「DKA」）１２０と、キャッシュメモリ１３０と、制御メモリ１４０と、接続制御部１５０と、記憶部１６０と、サービスプロセッサ（以下、「SVP」と略記）１７０とを備えて構成することができる。
【００７４】
各CHA１１０は、ホスト１０との間のデータ通信を行う。各CHA１１０は、ホスト１０と通信を行うための通信インターフェース１１１Ｔをそれぞれ少なくとも一つ以上備えることができる。各CHA１１０は、それぞれCPUやメモリ等を備えたマイクロコンピュータシステムとして構成される。各CHA１１０は、ホスト１０から受信したリードコマンドやライトコマンド等の各種コマンドを解釈して実行する。
【００７５】
各CHA１１０には、それぞれを識別するためのネットワークアドレス（例えば、IPアドレスやWWN）が割り当てられており、各CHA１１０は、それぞれが個別にNAS（Network Attached Storage）として振る舞うこともできる。複数のホスト１０が存在する場合、各CHA１１０は、各ホスト１０からの要求をそれぞれ個別に受け付けて処理する。各CHA１１０のうち、所定のCHA１１０にはホスト１０と通信するためのインターフェース（ターゲットポート）１１１Ｔが設けられており、別のCHA１１０には外部ストレージ装置２００と通信するためのインターフェース（外部接続ポート）１１１Ｅが設けられている。
【００７６】
各DKA１２０は、記憶部１６０が有するディスクドライブ１６１との間でデータ授受を行うものである。各DKA１２０は、CHA１１０と同様に、CPUやメモリ等を備えたマイクロコンピュータシステムとして構成される。各DKA１２０は、例えば、CHA１１０がホスト１０から受信したデータや外部ストレージ装置２００から読み出されたデータを、所定のディスクドライブ１６１に書込むことができる。また、各DKA１２０は、所定のディスクドライブ１６１からデータを読み出し、ホスト１０または外部ストレージ装置２００に送信することもできる。ディスクドライブ１６１との間でデータ入出力を行う場合、各DKA１２０は、論理的なアドレスを物理的なアドレスに変換する。
【００７７】
各DKA１２０は、ディスクドライブ１６１がRAIDに従って管理されている場合、RAID構成に応じたデータアクセスを行う。例えば、各DKA１２０は、同一のデータを別々のディスクドライブ群（RAIDグループ）にそれぞれ書き込んだり（RAID１等）、あるいは、パリティ計算を実行し、データ及びパリティをディスクドライブ群に書き込む（RAID５等）。なお、本実施形態では、各仮想化ストレージ装置１００Ａ，１００Ｂは、外部ストレージ装置２００の有する外部ボリューム２４０を仮想化して取り込み、それがあたかも自己の内部ボリュームであるかのようにして、ホスト１０に提供する。
【００７８】
従って、各仮想化ストレージ装置１００Ａ，１００Ｂは、必ずしも記憶部１６０を備えている必要はない。各仮想化ストレージ装置１００Ａ，１００Ｂは、外部ボリューム２４０を仮想化して利用できるためである。各仮想化ストレージ装置１００Ａ，１００Ｂが記憶部１６０を有さない場合、DKA１２０は不要となる。なお、いずれか一方の仮想化ストレージ装置が記憶部１６０を備え、他方の仮想化ストレージ装置が記憶部１６０を備えないように構成することもできる。
【００７９】
キャッシュメモリ１３０は、ホスト１０または外部ストレージ装置２００から受信したデータを記憶する。また、キャッシュメモリ１３０は、ディスクドライブ１６１から読み出されたデータを記憶する。後述のように、キャッシュメモリ１３０の記憶空間を利用して、仮想的な中間記憶デバイス（V-VOL）が構築される。
【００８０】
制御メモリ１４０には、仮想化ストレージ装置１００Ａの作動に使用するための各種制御情報等が格納される。また、制御メモリ１４０には、ワーク領域が設定されるほか、後述する各種テーブル類も格納される。
【００８１】
なお、ディスクドライブ１６１のいずれか一つあるいは複数を、キャッシュ用のディスクとして使用してもよい。また、キャッシュメモリ１３０と制御メモリ１４０とは、それぞれ別々のメモリとして構成することもできるし、同一のメモリの一部の記憶領域をキャッシュ領域として使用し、他の記憶領域を制御領域として使用することもできる。
【００８２】
接続制御部１５０は、各CHA１１０，各DKA１２０，キャッシュメモリ１３０及び制御メモリ１４０を相互に接続させる。接続制御部１５０は、例えば、クロスバスイッチ等として構成可能である。
【００８３】
記憶部１６０は、複数のディスクドライブ１６１を備えている。ディスクドライブ１６１としては、例えば、ハードディスクドライブ、フレキシブルディスクドライブ、磁気テープドライブ、半導体メモリドライブ、光ディスクドライブ等のような各種記憶デバイス及びこれらの均等物を用いることができる。また、例えば、FC（Fibre Channel）ディスクやSATA（Serial AT Attachment）ディスク等のように、異種類のディスクを記憶部１６０内に混在させることもできる。
【００８４】
サービスプロセッサ（SVP）１７０は、LAN等の内部ネットワークを介して、各CHA１１０とそれぞれ接続されている。SVP１７０は、CHA１１０を介して、制御メモリ１４０やDKA１２０とデータ授受を行うことができる。SVP１７０は、第１仮想化ストレージ装置１００Ａ内の各種情報を採取して、管理端末２０に提供する。
【００８５】
第２仮想化ストレージ装置１００Ｂも、第１仮想化ストレージ装置１００Ａと同様に構成することができるため、その説明を省略する。但し、各仮想化ストレージ装置１００Ａ，１００Ｂは、同一の構造である必要はない。
【００８６】
外部ストレージ装置２００は、仮想化ストレージ装置１００Ａ，１００Ｂとほぼ同様の構成を備えることもできるし、または、各仮想化ストレージ装置１００Ａ，１００Ｂよりも簡易な構成でもよい。
【００８７】
ここで、ストレージシステムのネットワーク構成に留意すべきである。上述のように、ホスト１０と各仮想化ストレージ装置１００Ａ，１００Ｂとを接続する上位ネットワークCN１と、各ストレージ装置１００Ａ，１００Ｂ，２００が相互に接続される下位ネットワークCN２とは、それぞれ別々の通信ネットワークとして構成されている。従って、上位ネットワークCN１に直接的な影響を与えることなく、下位ネットワークCN２を用いて大量のデータを転送することができる。
【００８８】
図４を参照する。図４は、ストレージシステムの記憶構造を示す説明図である。まず、仮想化ストレージ装置１００Ａ，１００Ｂの構成を、第１仮想化ストレージ装置１００Ａを例に挙げて説明する。
【００８９】
第１仮想化ストレージ装置１００Ａの記憶構造は、例えば、物理的記憶階層と論理的記憶階層とに大別することができる。物理的記憶階層は、物理的なディスクであるPDEV（Physical Device）１６１により構成される。PDEVは、上述したディスクドライブ１６１に該当する。
【００９０】
論理的記憶階層は、複数の（例えば２種類の）階層から構成可能である。一つの論理的階層は、VDEV（Virtual Device）１６２と、VDEV１６２のように扱われる仮想的なVDEV（以下、「V-VOL」とも呼ぶ）１６３とから構成可能である。他の一つの論理的階層は、LDEV（Logical Device）１６４から構成することができる。
【００９１】
VDEV１６２は、例えば、４個１組（３Ｄ＋１Ｐ）、８個１組（７Ｄ＋１Ｐ）等のような所定数のPDEV１６１をグループ化して構成される。グループに属する各PDEV１６１がそれぞれ提供する記憶領域が集合して、一つのRAID記憶領域が形成される。このRAID記憶領域がVDEV１６２となる。
【００９２】
VDEV１６２が物理的な記憶領域上に構築されるのと対照的に、V-VOL１６３は、物理的な記憶領域を必要としない仮想的な中間記憶デバイスである。V-VOL１６３は、物理的な記憶領域に直接関係づけられるものではなく、外部ストレージ装置２００のLU（Logical Unit）をマッピングするための受け皿となる。このV-VOL１６３は、「中間ボリューム」に該当する。
【００９３】
LDEV１６４は、VDEV１６２またはV-VOL１６３上に、それぞれ少なくとも一つ以上設けることができる。LDEV１６４は、例えば、VDEV１６２を固定長で分割することにより構成することができる。ホスト１０がオープン系ホストの場合、LDEV１６４がLU１６５にマッピングされることにより、ホスト１０は、LDEV１６４を一つの物理的なディスクとして認識する。オープン系のホストは、LUN（Logical Unit Number ）や論理ブロックアドレスを指定することにより、所望のLDEV１６４にアクセスする。なお、メインフレーム系ホストの場合は、LDEV１６４を直接認識する。
【００９４】
LU１６５は、SCSIの論理ユニットとして認識可能なデバイスである。各LU１６５は、ターゲットポート１１１Ｔを介してホスト１０に接続される。各LU１６５には、少なくとも一つ以上のLDEV１６４をそれぞれ関連付けることができる。なお、一つのLU１６５に複数のLDEV１６４を関連付けることにより、LUサイズを仮想的に拡張することもできる。
【００９５】
CMD（Command Device）１６６は、ホスト１０上で稼働するI/O制御プログラムとストレージ装置１００との間で、コマンドやステータスを受け渡すために使用される専用のLUである。
【００９６】
例えば、ホスト１０からのコマンドは、CMD１６６に書き込むことができる。第１仮想化ストレージ装置１００は、CMD１６６に書き込まれたコマンドに応じた処理を実行し、その実行結果をステータスとしてCMD１６６に書き込む。ホスト１０は、CMD１６６に書き込まれたステータスを読み出して確認し、次に実行すべき処理内容をCMD１６６に書き込む。このようにして、ホスト１０は、CMD１６６を介して、第１仮想化ストレージ装置１００Ａに各種の指示を与えることができる。
【００９７】
なお、ホスト１０から受信したコマンドを、CMD１６６に格納することなく、第１仮想化ストレージ装置１００Ａは直接的に処理することもできる。また、実体のデバイス（LU）を定義せずに、CMDを仮想的なデバイスとして生成し、ホスト１０からのコマンドを受け付けて処理するように構成してもよい。即ち、例えば、CHA１１０は、ホスト１０から受信したコマンドを制御メモリ１４０に書き込み、この制御メモリ１４０に記憶されたコマンドを、CHA１１０又はDKA１２０が処理する。その処理結果は制御メモリ１４０に書き込まれ、CHA１１０からホスト１０に送信される。
【００９８】
第１仮想化ストレージ装置１００Ａの有する外部接続用のイニシエータポート（External Port）１１１Ｅには、下位ネットワークCN２を介して、外部ストレージ装置２００が接続されている。
【００９９】
外部ストレージ装置２００は、複数のPDEV２２０と、PDEV２２０の提供する記憶領域上に設定されたVDEV２３０と、VDEV２３０上に少なくとも一つ以上設定可能なLDEV２４０とを備えている。そして、各LDEV２４０は、LU２５０にそれぞれ関連付けられている。PDEV２２０は、図３中のディスクドライブ２２０に該当する。LDEV２４０は、「他の論理ボリューム」に該当し、図１中の外部ボリューム３Ａに対応する。
【０１００】
外部ストレージ装置２００のLU２５０（即ち、LDEV２４０）は、V-VOL１６３にマッピングされている。例えば、外部ストレージ装置２００の「LDEV１」，「LDEV２」は、外部ストレージ装置２００の「LU１」，「LU２」を介して、第１仮想化ストレージ装置１００Ａの「V-VOL１」，「V-VOL２」にそれぞれ関連づけられている。「V-VOL１」，「V-VOL２」は、それぞれ「LDEV３」，「LDEV４」に関連づけられており、ホスト１０は、これらのボリュームを、「LU３」，「LU４」を介して、利用可能となっている。
【０１０１】
なお、VDEV１６２，V-VOL１６３には、RAID構成を適用できる。即ち、一つのディスクドライブ１６１を複数のVDEV１６２，V-VOL１６３に割り当てることもできるし（スライシング）、複数のディスクドライブ１６１から一つのVDEV１６２，V-VOL１６３を形成することもできる（ストライピング）。
【０１０２】
第２仮想化ストレージ装置１００Ｂも、第１仮想化ストレージ装置１００Ａと同様の階層記憶構造を備えることができるため、その説明を省略する。
【０１０３】
図５は、第１仮想化ストレージ装置１００Ａにより使用される管理テーブルＴ１Ａ及び属性テーブルＴ２Ａの概略構成を示す説明図である。これら各テーブルＴ１Ａ，Ｔ２Ａは、制御メモリ１４０に記憶させることができる。
【０１０４】
管理テーブルＴ１Ａは、ストレージシステム内に分散された各外部ボリューム２４０を統一的に管理するために使用される。管理テーブルＴ１Ａは、例えば、各外部ボリューム２４０に接続するためのネットワークアドレス（WWN：World Wide Name）と、各外部ボリューム２４０の番号（LUN：Logical Unit Number)と、各外部ボリューム２４０のボリュームサイズと、外部ボリューム番号と、オーナー権情報と、移行状態フラグとを、それぞれ対応付けることにより、構成することができる。
【０１０５】
ここで、外部ボリューム番号とは、各外部ボリューム２４０をストレージシステム内で一意に特定するための識別情報である。オーナー権情報とは、その外部ボリュームを使用する権限のある仮想化ストレージ装置を特定するための情報である。オーナー権情報に「０」がセットされている場合、その外部ボリューム２４０は未使用であることを示す。オーナー権情報に「１」がセットされている場合、その外部ボリューム２４０は、自機が使用権限を有することを意味する。また、オーナー権情報に「−１」がセットされている場合、その外部ボリューム２４０は、他方の仮想化ストレージ装置が使用権限を有することを示す。
【０１０６】
具体的には、第１仮想化ストレージ装置１００Ａにより使用される管理テーブルＴ１Ａにおいて、オーナー権情報に「１」がセットされている外部ボリューム２４０は、第１仮想化ストレージ装置１００Ａが使用権限を有する。同様に、管理テーブルＴ１Ａにおいて、オーナー権情報に「−１」がセットされている外部ボリューム２４０は、第２仮想化ストレージ装置１００Ｂが使用権限を有する。このように、ある外部ボリューム２４０について、一方の管理テーブル中のオーナー権情報が「１」にセットされている場合、他方の管理テーブル中では、その外部ボリュームのオーナー権情報が「−１」にセットされることになる。オーナー権情報を参照することにより、その外部ボリュームがいずれの仮想化ストレージ装置の管理下にあるか、あるいは未使用ボリュームであるか否かを知ることができる。
【０１０７】
なお、本実施形態では、２つの仮想化ストレージ装置１００Ａ，１００Ｂのみを示すため、「１」または「−１」のいずれかをオーナー権情報にセットすることにより、その外部ボリューム２４０の所属先を特定できる。これに限らず、もしも、ストレージシステム内に３つ以上の仮想化ストレージ装置が存在する場合は、オーナー権情報として、例えば、各仮想化ストレージ装置に割り振られた筐体番号をセットすることもできる。即ち、ストレージシステム内で各仮想化ストレージ装置を一意に特定可能な識別情報を、オーナー権情報として用いることもできる。
【０１０８】
移行状態フラグは、その外部ボリューム２４０が一方の仮想化ストレージ装置から他方の仮想化ストレージ装置に移行中であることを示す情報である。移行状態フラグに「１」がセットされている場合、その外部ボリューム２４０についてオーナー権の変更が行われている最中であることを示す。これに対し、移行状態フラグに「０」がセットされている場合、その外部ボリューム２４０は、通常状態にあり、オーナー権の変更が行われていないことを示す。
【０１０９】
属性テーブルＴ２Ａは、各外部ボリューム２４０の各種属性情報を管理するためのテーブルである。属性テーブルＴ２Ａは、例えば、各外部ボリューム２４０のLU番号と、パス定義情報と、レプリケーション構成情報と、レプリケーションステータス情報と、レプリケーションビットマップ情報とを対応付けることにより、構成することができる。
【０１１０】
パス定義情報とは、その外部ボリューム２４０に接続される論理ボリューム１６４を、どのCHA１１０のどのポートを介して、ホスト１０にアクセスさせるかを示すための情報である。パス定義情報には、複数のパスを設定することができる。一方のパスは、通常使用されるプライマリパスであり、他方のパスは、プライマリパスに障害が発生した場合等に使用されるオルタネイトパスである。
【０１１１】
レプリケーション構成情報は、コピーペアを構成しているボリュームの対応関係を示す情報である。レプリケーション構成情報に「Ｐ」がセットされているボリュームは、プライマリボリューム（コピー元ボリューム）であることを示し、レプリケーション構成情報に「Ｓ」がセットされているボリュームは、セカンダリボリューム（コピー先ボリューム）であることを示す。なお、「Ｐ」及び「Ｓ」に添えられている数字は、各コピーペアを識別するための追い番である。
【０１１２】
レプリケーションステータス情報は、コピーペアを構成する各ボリュームのステータスを示す情報である。レプリケーションステータス情報に「Pair」がセットされている場合、そのボリュームは、相手方のボリュームと同期しており、コピーペアを形成する各ボリュームが同一の記憶内容を維持し続けることを示す。レプリケーションステータス情報に「Resync」がセットされている場合、そのボリュームと相手方のボリュームとが再同期中であることを示す。レプリケーションステータス情報に「Simplex」がセットされている場合、そのボリュームはレプリケーションの対象になっていないことを示す。レプリケーションステータス情報に「Suspend」がセットされている場合、そのボリュームの相手方のボリュームでは更新されていないことを示す。
【０１１３】
レプリケーションビットマップ情報は、そのボリュームにおいてデータが更新された位置を示す情報である。例えば、データが更新されたか否かを示すフラグが各セグメント毎に用意されており、フラグに「１」がセットされているセグメントでは、そのデータが更新されたことを意味する。例えば、ボリュームサイズが１TBの論理ボリューム１６４について、１MBのセグメントサイズで、データ更新の有無を管理しようとする場合、レプリケーションビットマップ情報のサイズは、１２８KBとなる。第１仮想化ストレージ装置１００Ａが、ｎ個の論理ボリューム１６４を設定可能である場合、レプリケーションビットマップ情報の合計サイズは、ｎ×１２８KBとなる。ｎが１６３８４の場合、レプリケーションビットマップ情報の合計サイズは、１６３８４×１２８KB＝２０４８MBとなる。
【０１１４】
このように、レプリケーションビットマップ情報だけに着目しても、属性テーブルＴ２Ａのテーブルサイズは、膨大なものとなる。従って、この属性テーブルＴ２Ａの全体を、第２仮想化ストレージ装置１００Ｂに移行させるとなると、第２仮想化ストレージ装置１００Ｂの制御メモリ１４０が圧迫される。そこで、本実施形態では、属性テーブルＴ２Ａに記憶された情報のうち、第２仮想化ストレージ装置１００Ｂに移管されるボリュームに関する情報だけを、第２仮想化ストレージ装置１００Ｂに転送させる。つまり、必要な範囲内で、属性情報を転送する。これにより、転送すべきデータ量を少なくして、属性テーブルの構築時間を短縮することができ、また、転送先である第２仮想化ストレージ装置１００Ｂのメモリ資源（制御メモリ１４０）が圧迫されるのを防止できる。
【０１１５】
なお、上述の項目以外に、例えば、デバイスタイプ（ディスクデバイスかテープデバイスか等）、ベンダ名、各ストレージ装置の識別番号等の情報を管理可能である。これらの情報は、管理テーブルＴ１Ａまたは属性テーブルＴ２Ａのいずれかで管理させることができる。
【０１１６】
図６は、第２仮想化ストレージ装置１００Ｂにより使用される管理テーブルＴ１Ｂ及び属性テーブルＴ２Ｂの概略構成を示す説明図である。管理テーブルＴ１Ｂは、上述した管理テーブルＴ１Ａと同様に、例えば、WWN等のネットワークアドレスと、LU番号と、ボリュームサイズと、外部ボリューム番号と、オーナー権情報と、移行状態フラグとを、対応づけることにより構成されている。管理テーブルＴ１Ａと管理テーブルＴ１Ｂとは、オーナー権情報を除いて同一の構成である。
【０１１７】
属性テーブルＴ２Ｂも、上述した属性テーブルＴ２Ａと同様に、LU番号と、パス定義情報と、レプリケーション構成情報と、レプリケーションステータス情報と、レプリケーションビットマップ情報とを、対応付けることにより構成されている。但し、上述のように、第２仮想化ストレージ装置１００Ｂのメモリ資源を有効に利用するべく、第２仮想化ストレージ装置１００Ｂの管理下にあるボリュームの属性情報のみが、管理テーブルＴ２Ｂに登録されている点に留意すべきである。
【０１１８】
図７は、ホスト１０のボリューム管理部１２により使用されるパス設定情報Ｔ３の概略構成等を示す説明図である。このパス設定情報Ｔ３は、ホスト１０のメモリまたはローカルディスク内に記憶させることができる。
【０１１９】
パス設定情報Ｔ３には、通常時に使用するためのプライマリパスに関する情報と、異常時等に使用するためのオルタネイトパスに関する情報とが記載されている。各パスは、例えば、使用するHBA１１を特定するための情報と、アクセス先のポート番号と、アクセス対象のボリュームを識別するためのLU番号とを含んで構成される。
【０１２０】
パス設定情報Ｔ３には、複数のオルタネイトパスが記載されているが、最初に記載されているオルタネイトパスは、通常のオルタネイトパスであり、次に記載されているオルタネイトパスは、本実施形態に特有のパスである。つまり、２番目のオルタネイトパスは、第１仮想化ストレージ装置１００Ａから第２仮想化ストレージ装置１００Ｂにボリュームを移管させる場合に、設定されるパスである。
【０１２１】
図７中の下側には、プライマリパスからオルタネイトパスに切り替えられる様子が模式的に示されている。ここでは、第１仮想化ストレージ装置１００Ａから第２仮想化ストレージ装置１００Ｂに、「#0」のボリューム２４０が移管されたものとして説明する。
【０１２２】
移管前において、ホスト１０は、図中太線で示すように、HBA#0からPort#0にアクセスすることにより、第１仮想化ストレージ装置１００Ａの論理ボリュームに対してデータを読み書きする。第１仮想化ストレージ装置１００Ａ内では、ホスト１０からのアクセスに基づいて、Port#1から外部ボリューム２４０にアクセスする。
【０１２３】
ボリュームを移管させる場合、移管されたボリュームにホスト１０がアクセスするための情報が、２番目のオルタネイトパスとして、パス設定情報Ｔ３に追加される。そして、第１仮想化ストレージ装置１００Ａは、移管されたボリュームについてのアクセス要求を拒否する。
【０１２４】
従って、ホスト１０が図中太線で示すプライマリパスを介して、移管されたボリュームにアクセスしようとしても、第１仮想化ストレージ装置１００Ａにより拒否される。そこで、ホスト１０は、図中点線で示す第１のオルタネイトパス（HBA#1→Port#2→LU#0）に切り替えて、再度アクセスを試みる。しかし、このアクセスも第１仮想化ストレージ装置１００Ａにより拒否される。
【０１２５】
そこで、ホスト１０は、図中一点鎖線で示す第２のオルタネイトパス（HBA#1→Port#4→LU#0）に切り替え、ボリュームへのアクセスを試みる。第２のオルタネイトパスは、ボリューム移管先である第２仮想化ストレージ装置１００Ｂへのパスである。第２仮想化ストレージ装置１００Ｂは、ホスト１０からのアクセス要求を処理可能な状況である場合、そのアクセス要求を処理し、処理結果をホスト１０に返す。アクセス要求を処理可能な状況とは、ホスト１０からのアクセス要求を処理しても、ボリュームに記憶されているデータに不整合等を生じない状況である。これについては、さらに後述する。
【０１２６】
このように、ホスト１０は、プライマリパスでのアクセスに失敗すると、第１のオルタネイトパスに切り替え、第１のオルタネイトパスでのアクセスに失敗すると、第２のオルタネイトパスに切り替える。従って、ホスト１０のアクセス要求が受け付けられるまで、多少の時間（パス切替時間）を必要とする。しかし、このパス切替時間は、無駄な時間になるわけではない。後述のように、パス切替時間内に、移管されるボリュームへのディステージ処理を行うことができるためである。本実施形態では、ホスト１０に記憶されるパス設定情報Ｔ３に新たなパスを追加するだけで、ホスト１０のアクセス先を切り替えることができる。
【０１２７】
図８は、ストレージシステム内に存在する外部ボリュームを探索して、管理テーブルＴ１Ａに登録するための処理の概略を示すフローチャートである。ここでは、第１仮想化ストレージ装置１００Ａが実行する場合を例に挙げて説明する。
【０１２８】
まず、第１仮想化ストレージ装置１００Ａは、各外部ストレージ装置２００に向けて、その存在を確認するためのコマンド（”Test Unit Ready”）を発行する（Ｓ１１）。正常に動作している各外部ストレージ装置２００は、このコマンドへの返信として、Goodステータスを有するReady応答を返す（Ｓ１２）。
【０１２９】
次に、第１仮想化ストレージ装置１００Ａは、その存在が確認された各外部ストレージ装置２００に向けて、”Inquiry”コマンドを発行する（Ｓ１３）。このコマンドを受信した各外部ストレージ装置２００は、例えば、デバイスタイプ等の情報を第１仮想化ストレージ装置１００Ａに送信する（Ｓ１４）。
【０１３０】
第１仮想化ストレージ装置１００Ａは、各外部ストレージ装置２００に、”Read Capacity”コマンドを発行する（Ｓ１５）。各外部ストレージ装置２００は、外部ボリューム２４０のサイズを第１仮想化ストレージ装置１００Ａに送信する（Ｓ１６）。
【０１３１】
第１仮想化ストレージ装置１００Ａは、”Report LUN”コマンドを各外部ストレージ装置２００に送信する（Ｓ１７）。各外部ストレージ装置２００は、LUN数やLUN番号を第１仮想化ストレージ装置１００Ａに送信する（Ｓ１８）。
【０１３２】
第１仮想化ストレージ装置１００Ａは、各外部ストレージ装置２００から取得した情報を、管理テーブルＴ１Ａ及び属性テーブルＴ２Ａにそれぞれ登録する。このようにして、第１仮想化ストレージ装置１００Ａは、複数の問合せコマンドを発行することにより、管理テーブルＴ１Ａ及び属性テーブルＴ２Ａをそれぞれ構築することができる。
【０１３３】
なお、いずれかの外部ストレージ装置２００が撤去されたり、新しい外部ストレージ装置２００が追加等されて、ストレージシステムの構成が変化する場合もある。ストレージシステムの構成が変化した場合、例えば、RSCN（Registered State Change Notification）や、LIP（Loop Initialization Primitive）、SCR（State Change Registration）やSCN（State Change Notification）等のコマンドや通知に基づいて、第１仮想化ストレージ装置１００Ａは、構成が変化したことを検出することができる。なお、上記の処理は、第２仮想化ストレージ装置１００Ｂで実行させることもできる。
【０１３４】
次に、仮想化ストレージ装置１００Ａ，１００Ｂが外部ボリューム２４０を利用して、ホスト１０からのアクセス要求を処理する方法を説明する。ここでは、第１仮想化ストレージ装置１００Ａがアクセス要求を処理する場合を例に挙げるが、第２仮想化ストレージ装置１００Ｂでも同様の処理を行うことができる。まず、ライトコマンドの処理方法を説明する。ライトコマンドを処理する方法としては、同期転送モードと非同期転送モードとの２種類を挙げることができる。
【０１３５】
同期転送モードの場合は、ホスト１０からのライトコマンドを第１仮想化ストレージ装置１００Ａが受信すると、第１仮想化ストレージ装置１００Ａは、ホスト１０から受信したライトデータをキャッシュメモリ１３０に記憶させた後、通信ネットワークCN２を経由して、外部ストレージ装置２００にライトデータを転送する。外部ストレージ装置２００は、ライトデータを受信してキャッシュメモリに記憶すると、応答信号を第１仮想化ストレージ装置１００Ａに送信する。第１仮想化ストレージ装置１００Ａは、外部ストレージ装置２００からの応答信号を受信すると、書込み完了報告をホスト１０に送信する。
【０１３６】
このように、同期転送モードでは、外部ストレージ装置２００へライトデータを転送した後で、ライトコマンドの処理完了をホスト１０に通知する。従って、同期転送モードでは、外部ストレージ装置２００からの応答を待つ時間だけ遅延が生じる。このため、同期転送モードは、第１仮想化ストレージ装置１００Ａと外部ストレージ装置２００との距離が比較的短距離である場合に適している。逆に、第１仮想化ストレージ装置１００Ａと外部ストレージ装置２００とが遠く離れている場合は、応答遅延や伝播遅延の問題から、一般的に同期転送モードは適さない。
【０１３７】
これに対し、非同期転送モードの場合、第１仮想化ストレージ装置１００Ａは、ホスト１０からのライトコマンドを受信すると、ライトデータをキャッシュメモリ１３０に記憶させた後、直ちにホスト１０に書込み完了報告を行う。第１仮想化ストレージ装置１００Ａは、ホスト１０へ書込み完了報告を行った後で、外部ストレージ装置２００にライトデータを転送する。ホスト１０への書込み完了報告と外部ストレージ装置２００へのデータ転送とは、非同期で行われる。従って、非同期転送モードの場合は、第１仮想化ストレージ装置１００Ａと外部ストレージ装置２００との距離とは無関係に、速やかに書込み完了報告をホスト１０に送信できる。このため、非同期転送モードは、第１仮想化ストレージ装置１００Ａと外部ストレージ装置２００とが比較的遠距離の場合に適している。
【０１３８】
図９は、非同期転送モードの場合を示す説明図である。図９及び図１０では、仮想化ストレージ装置１００Ａ，１００Ｂの両者を区別せずに、「仮想化ストレージ装置１００」と呼ぶ。また、管理テーブルＴ１Ａ，Ｔ１Ｂの両者を区別せずに、「管理テーブルＴ１」と呼ぶ。
【０１３９】
ホスト１０は、仮想化ストレージ装置１００の所定のLU１６５に、ライトコマンドを発行する（Ｓ３１）。LU１６５は、V-VOL１６３を介して、外部ストレージ装置２００のLU２５０に関連づけられている。仮想化ストレージ装置１００のLU１６５は、ホスト１０からのアクセス対象であるが、実際にデータを記憶しているのは外部LU２５０である。従って、例えば、LU１６５を「アクセス先論理記憶デバイス」と、LU２５０を「データ格納先論理記憶デバイス」と、それぞれ呼ぶこともできる。
【０１４０】
仮想化ストレージ装置１００は、ホスト１０からのライトコマンドを受信すると、そのライトコマンドが対象としているLUを特定し、管理テーブルＴ１を参照して、そのLUが外部ボリュームに関連づけられているか否かを判定する。外部ボリュームに関連づけられているLUへのライトコマンドである場合、仮想化ストレージ装置１００は、その外部ボリュームを有する外部ストレージ装置２００に、ライトコマンドを送信する（Ｓ３２）。
【０１４１】
ライトコマンドの発行後に、ホスト１０は、LU１６５を書込み対象とするライトデータを、仮想化ストレージ装置１００に送信する（Ｓ３３）。仮想化ストレージ装置１００は、ホスト１０から受信したライトデータをキャッシュメモリ１３０に一時記憶させる（Ｓ３４）。仮想化ストレージ装置１００は、ライトデータをキャッシュメモリ１３０に記憶させると、ホスト１０に書込み完了を報告する（Ｓ３５）。
【０１４２】
仮想化ストレージ装置１００は、アドレス変換等を行ってから、キャッシュメモリ１３０に記憶されたライトデータを外部ストレージ装置２００に送信する（Ｓ３６）。外部ストレージ装置２００は、仮想化ストレージ装置１００から受信したライトデータを、キャッシュメモリに記憶させる。そして、外部ストレージ装置２００は、仮想化ストレージ装置１００に、書込み完了を報告する（Ｓ３７）。外部ストレージ装置２００は、例えば、I/O等の少ない時期を見計らって、キャッシュメモリに記憶されたライトデータを記憶デバイス２２０に書き込む（ディステージ処理）。非同期転送モードでは、ホスト１０からライトデータを受信した後、短い応答時間δ１で、ホスト１０へ書込み完了を応答することができる。
【０１４３】
図１０は、同期転送モードの場合を示す。ホスト１０から発行されたライトコマンドを受信すると（Ｓ４１）、仮想化ストレージ装置１００は、そのライトコマンドのアクセス先ボリューム（LU１６５）に関連づけられている外部ボリューム（LU２５０）を特定し、その外部ボリュームに向けてライトコマンドを発行する（Ｓ４２）。
【０１４４】
仮想化ストレージ装置１００は、ホスト１０からのライトデータを受信すると（Ｓ４３）、このライトデータをキャッシュメモリ１３０に記憶させる（Ｓ４４）。仮想化ストレージ装置１００は、キャッシュメモリ１３０に記憶されたライトデータを、外部ボリュームに書き込ませるべく、外部ストレージ装置２００に転送する（Ｓ４５）。外部ストレージ装置２００は、ライトデータをキャッシュメモリに記憶させた後で、仮想化ストレージ装置１００に書込み完了を報告する（Ｓ４６）。仮想化ストレージ装置１００は、外部ストレージ装置２００での書込み完了を確認すると、ホスト１０に書込み完了を報告する（Ｓ４７）。同期転送モードでは、外部ストレージ装置２００での処理を待ってから、ホスト１０に書込み完了を報告するため、応答時間δ２が長くなる。同期転送モードの応答時間δ２は、非同期転送モードの応答時間δ１よりも長い（δ２≧δ１）。
【０１４５】
以上のように、各仮想化ストレージ装置１００Ａ，１００Ｂは、外部ストレージ装置２００の有する外部ボリューム２４０を仮想的な内部ボリュームのように取り込んで利用することができる。
【０１４６】
次に、第１仮想化ストレージ装置１００Ａが利用している外部ボリューム２４０を、第２仮想化ストレージ装置１００Ｂに移管させるための方法を説明する。なお、第２仮想化ストレージ装置１００Ｂから第１仮想化ストレージ装置１００Ａに外部ボリューム２４０を移管させることもできる。
【０１４７】
図１１は、ボリュームの移行（移管）を各仮想化ストレージ装置１００Ａ，１００Ｂに指示するための処理を示すフローチャートである。
【０１４８】
例えば、ユーザが管理端末２０に指示を与えると、監視部２１は、第１仮想化ストレージ装置１００Ａから性能情報を取得する（Ｓ５１）。監視部２１は、管理端末２０の端末画面に、この取得した性能情報を表示させる（Ｓ５２）。この性能情報は、「負荷状態」を示す情報に対応し、例えば、データ入出力頻度（IOPS）、CPU使用率、キャッシュメモリ使用率等が含まれる。
【０１４９】
ユーザは、管理端末２０の画面に表示された性能情報に基づいて、高負荷になっているCPUが存在するか否かを発見する（Ｓ５３）。このCPUとは、CHA１１０に内蔵されているCPUを示す。次に、ユーザは、他のCHA１１０のCPUが全て所定値以上の負荷であることを確認する（Ｓ５４）。
【０１５０】
そして、ユーザは、高負荷となっているCHA１１０の負担を軽減させるべく、そのCHA１１０の管理下にある外部ボリューム２４０の移行を決定する（Ｓ５５）。続いて、ユーザは、移行先のパスを設定する（Ｓ５６）。即ち、ユーザは、移行先である第２仮想化ストレージ装置１００Ｂにおいて、どのポートを介してホスト１０にアクセスさせるかのパス情報を定義する（Ｓ５６）。定義されたパス情報は、ホスト１０に追加される。最後に、ユーザは、その外部ボリューム２４０の移行を各仮想化ストレージ装置１００Ａ，１００Ｂに指示する（Ｓ５７）。
【０１５１】
つまり、ユーザは、監視部２１による監視結果に基づいて（Ｓ５１，Ｓ５２）、移行元（切替元）である第１仮想化ストレージ装置１００Ａにおいてボトルネックとなっている外部ボリュームを特定し（Ｓ５３〜Ｓ５５）、移行先のパスを定義して移行の開始を指示する（Ｓ５６，Ｓ５７）。以上の処理を全て自動的に行うことも可能である。
【０１５２】
図１２は、監視部２１による監視結果を示す画面例を示す説明図である。監視部２１は、各仮想化ストレージ装置１００Ａ，１００Ｂからそれぞれ性能情報を取得して、これら各性能情報を統計処理したり図表化して、表示させることができる。
【０１５３】
選択部Ｇ１１では、ストレージシステム内の各種リソースのうち、いずれのリソースについて負荷状態を表示させるかを選択することができる。ここで、リソースとしては、例えば、「ネットワーク」、「ストレージ」、「スイッチ」等を挙げることができる。
【０１５４】
ユーザが「ストレージ」を選択した場合、各仮想化ストレージ装置１００Ａ，１００Ｂのいずれかをさらに選択することができる。また、ユーザは、各仮想化ストレージ装置１００Ａ，１００Ｂのいずれかを選択した場合、さらに詳細な選択が可能である。詳細な選択としては、「ポート」や「LU」を挙げることができる。このようにして、ユーザは、負荷状態の確認を希望する対象を細かく選択することができる。
【０１５５】
例えば、第１表示部Ｇ１２では、仮想化ストレージ装置１００Ａ，１００Ｂのうち、選択された仮想化ストレージ装置の全体状況を一覧表示させることができる。第２表示部Ｇ１３では、例えば、「ポート」や「LU」等のような、より詳細な監視対象の状況を表示させることができる。また、第３表示部Ｇ１３では、負荷状態をグラフ化して表示させることができる。
【０１５６】
ユーザは、図１２に示すような性能監視画面に基づいて、どの仮想化ストレージ装置のどの部分がボトルネックとなっているか否かを比較的容易に判断することができる。そして、ユーザは、その判断に基づいて、移動させるボリュームを決定できる。
【０１５７】
図１３は、第１仮想化ストレージ装置１００Ａが稼働中である状況下において、第２仮想化ストレージ装置１００Ｂをストレージシステムに新たに追加し、第１仮想化ストレージ装置１００Ａから第２仮想化ストレージ装置１００Ｂに一つまたは複数のボリュームを移動させる様子を示すフローチャートである。なお、図１３等では、第１仮想化ストレージ装置１００Ａを「第１ストレージ」と、第２仮想化ストレージ装置１００Ｂを「第２ストレージ」と、それぞれ略記する。
【０１５８】
ユーザは、図１１，図１２と共に述べたような方法で、第１仮想化ストレージ装置１００Ａの負荷状態を把握することができる。この結果、ユーザは、第２仮想化ストレージ装置１００Ｂの追加投入を決定することができる。
【０１５９】
まず最初に、ユーザやベンダのエンジニアは、新たに導入された第２仮想化ストレージ装置１００Ｂの物理的な接続作業を行う（Ｓ６１）。具体的には、第２仮想化ストレージ装置１００Ｂのホスト接続用インターフェース１１１Ｔを上位ネットワークCN１に接続し、また、第２仮想化ストレージ装置１００Ｂの外部ストレージ接続用インターフェース１１１Ｅを下位ネットワークCN２に接続し、さらに、第２仮想化ストレージ装置１００ＢのSVP１７０をネットワークCN３に接続させる。
【０１６０】
次に、第２仮想化ストレージ装置１００Ｂは、第１仮想化ストレージ装置１００Ａから管理テーブルＴ１Ａの記憶内容を取得する（Ｓ６２）。この取得した内容に基づいて、第２仮想化ストレージ装置１００Ｂは、管理テーブルＴ１Ｂを生成する。第２仮想化ストレージ装置１００Ｂは、管理テーブルＴ１Ｂに基づいて、ストレージシステム内の外部ボリューム２４０をそれぞれ検出する（Ｓ６３）。
【０１６１】
ユーザが管理端末２０からボリューム移行（ボリューム移管）の指示を与えると（Ｓ６４）、第２仮想化ストレージ装置１００Ｂは、指示された外部ボリューム２４０をインターフェース１１１Ｅを介してV-VOL１６３に接続させる（Ｓ６５）。
【０１６２】
外部接続の詳細は、図１７に示されている。そこで、先に図１７を参照する。第２仮想化ストレージ装置１００Ｂは、移行元のストレージ装置、即ち第１仮想化ストレージ装置１００Ａから移行対象のボリュームに関する属性情報を取得する（Ｓ１５１）。第２仮想化ストレージ装置１００Ｂは、所得した属性情報のうちパス定義情報以外の属性情報を、属性テーブルＴ２Ｂに登録させる（Ｓ１５２）。第２仮想化ストレージ装置１００Ｂは、移行対象のボリュームについて、改めてパス定義情報を設定する（Ｓ１５３）。
【０１６３】
ここで、ユーザは、ホスト１０からアクセスされる論理ボリューム１６４を移行対象として選択する。選択された論理ボリューム１６４が外部ボリューム２４０に接続されている場合、結果的に、その論理ボリューム１６４に接続されている外部ボリューム２４０が、移行先ストレージ装置（１００Ｂ）の別の論理ボリューム１６４に接続し直されることになる。このようにして、仮想化ストレージ装置１００Ａ，１００Ｂは、外部ボリューム２４０をV-VOL１６３を介して論理ボリューム１６４に接続し、自己の内部記憶デバイスであるかのように使用することができる。
【０１６４】
図１３に戻る。ホスト１０のボリューム管理部１２は、移行されるボリュームにアクセスするためのパス情報をパス設定情報Ｔ３に追加する（Ｓ６６）。即ち、第２仮想化ストレージ装置１００Ｂの所定のポートを介して、外部ボリューム２４０に接続された論理ボリューム１６４にアクセスするためのパス情報が設定される。
【０１６５】
第１仮想化ストレージ装置１００Ａは、移行対象として指定された外部ボリューム２４０について、オーナー権を設定する（Ｓ６７）。つまり、移行対象のボリュームについて、オーナー権情報に「−１」がセットされる。第１仮想化ストレージ装置１００Ａは、設定されたオーナー権情報を第２仮想化ストレージ装置１００Ｂに通知する（Ｓ６８）。
【０１６６】
第２仮想化ストレージ装置１００Ｂは、第１仮想化ストレージ装置１００Ａからオーナー権情報を取得すると（Ｓ６９）、取得したオーナー権情報を管理テーブルＴ１Ｂに登録させる（Ｓ７０）。ここでは、オーナー権情報の値が「１」に変更された上で、管理テーブルＴ１Ｂに登録される。移行対象ボリュームの使用権限は、第２仮想化ストレージ装置１００Ｂに移されたためである。第２仮想化ストレージ装置１００Ｂは、オーナー権情報の登録が完了した旨を、第１仮想化ストレージ装置１００Ａに報告する（Ｓ７１）。第１仮想化ストレージ装置１００Ａは、第２仮想化ストレージ装置１００Ｂからオーナー権情報の設定完了報告を受領する（Ｓ７２）。
【０１６７】
移行対象ボリュームに関するアクセス要求が、ホスト１０から発行された場合（Ｓ７３）、第１仮想化ストレージ装置１００Ａは、そのアクセス要求を処理せずにディステージ処理を開始する（Ｓ７４）。移行完了前における移行元でのアクセス処理については、図１４と共に後述する。第２仮想化ストレージ装置１００Ｂは、第１仮想化ストレージ装置１００Ａからディステージ処理が完了した旨の通知を受領する（Ｓ７５）。
【０１６８】
ところで、ホスト１０は、第１仮想化ストレージ装置１００Ａに向けて発行したコマンドの処理が拒否されると、パス設定情報Ｔ３を参照し、別のパスに切り替えて（Ｓ７６）、再びコマンドを発行する（Ｓ７７）。ここでは、説明の便宜上、第１仮想化ストレージ装置１００Ａを経由するプライマリパスから、第２仮想化ストレージ装置１００Ｂを経由する第２オルタネイトパスに切り替えられたものとする。
【０１６９】
第２仮想化ストレージ装置１００Ｂは、ホスト１０からのコマンドを受領すると、アクセス処理を行う（Ｓ７８）。もしも、コマンドを受領した時点で、移行対象ボリュームに関するディステージ処理が完了している場合は、通常のアクセス処理を行うが、ディステージ処理が完了していなければ、別のアクセス処理が行われる。この移行完了前における移行先でのアクセス処理については、図１５と共に後述する。なお、図１３に示す流れは一例であって、実際には、ステップの順序が異なる場合もある。
【０１７０】
図１４は、図１３中のＳ７４の詳細を示すフローチャートである。移行元ストレージ装置である第１仮想化ストレージ装置１００Ａは、ホスト１０からのコマンドを受信すると（S81：YES）、そのコマンドのアクセス対象を解析する。第１仮想化ストレージ装置１００Ａは、自己が使用権限を有する外部ボリューム２４０に接続された論理ボリューム１６４をアクセス対象とするコマンドであるか否かを判定する（Ｓ８２）。つまり、第１仮想化ストレージ装置１００Ａは、自分がオーナー権を有する外部ボリューム２４０に関するアクセス要求であるか否かを判定する。
【０１７１】
第１仮想化ストレージ装置１００Ａは、使用権限を有さない外部ボリューム２４０、即ち、オーナー権情報に「−１」がセットされている外部ボリューム２４０に接続された論理ボリューム１６４へのアクセスであると判定した場合（S82：NO）、ホスト１０からのコマンド処理を拒絶する（Ｓ８３）。コマンド処理の拒絶は、例えば、所定時間以上何も応答しないことによって（消極的拒絶）、あるいは、処理不能であることをホスト１０に通知することによって（積極的拒絶）、行うことができる。
【０１７２】
第１仮想化ストレージ装置１００Ａは、ホスト１０からアクセスを要求された外部ボリューム２４０について、ダーティデータのディステージ処理を開始する（Ｓ８４）。そして、第１仮想化ストレージ装置１００Ａは、ディステージ処理が完了した場合（S85：YES）、この旨を第２仮想化ストレージ装置１００Ｂに通知する（Ｓ８６）。
【０１７３】
より詳細に説明する。ホスト１０のアクセス対象は、第１仮想化ストレージ装置１００Ａの論理ボリューム１６４である。この論理ボリューム１６４は、移行対象として選択されている。そして、この論理ボリューム１６４は、外部ストレージ装置２００の論理ボリューム２４０に接続されている。
【０１７４】
ここで、第１仮想化ストレージ装置１００Ａは、非同期転送モードでライトコマンドを処理している。従って、第１仮想化ストレージ装置１００Ａは、ホスト１０から受信したライトデータをキャッシュメモリ１３０に記憶させた時点で、ホスト１０に書込み完了を報告する。キャッシュメモリ１３０に記憶されたライトデータは、所定のタイミングで外部ストレージ装置２００に転送され、外部ボリューム２４０に反映される。
【０１７５】
ライトデータが外部ボリューム２４０に書き込まれる前の段階では、第１仮想化ストレージ装置１００Ａのキャッシュメモリ１３０に記憶されているデータと、外部ボリューム２４０に記憶されているデータとは相違している。キャッシュメモリ１３０には、あるセグメントまたはセグメント群についての更新データが記憶されており、外部ボリューム２４０には、同一のセグメントまたはセグメント群について、更新前の古いデータが記憶されている。このように、外部ボリューム２４０に反映されておらず、キャッシュメモリ１３０の記憶内容と外部ボリューム２４０の記憶内容とが一致しないデータを、ダーティデータと呼ぶ。なお、ライトデータが外部ボリューム２４０に書き込まれて、キャッシュメモリ１３０の記憶内容と外部ボリューム２４０の記憶内容とが一致するデータを、クリーンデータと呼ぶ。第１仮想化ストレージ装置１００Ａのキャッシュメモリ１３０に記憶されているダーティデータを外部ボリューム２４０に書き込んで、反映させる処理をディステージ処理と呼ぶ。
【０１７６】
本実施形態では、ボリューム移行の前後でデータの整合性を維持するために、オーナー権が変更された場合、移行元である第１仮想化ストレージ装置１００Ａは、ホスト１０からのアクセス要求を処理せず、ディステージ処理を行う。
【０１７７】
ところで、ホスト１０からのアクセス対象が、移行対象以外の論理ボリューム１６４である場合（S82：YES）、第１仮想化ストレージ装置１００Ａは、コマンドタイプを識別して（Ｓ８７）、通常のアクセス処理を行う。
【０１７８】
ライトコマンドの場合、第１仮想化ストレージ装置１００Ａは、ホスト１０から受信したライトデータをキャッシュメモリ１３０に記憶して（Ｓ８８）、書込み完了をホスト１０に通知する（Ｓ８９）。次に、所定のタイミングを見計らって、第１仮想化ストレージ装置１００Ａは、管理テーブルＴ１Ａを参照して、外部ボリューム２４０へのパスを確認し（Ｓ９０）、ライトデータを外部ボリューム２４０に転送する（Ｓ９１）。
【０１７９】
リードコマンドの場合、第１仮想化ストレージ装置１００Ａは、ホスト１０から要求されたデータを外部ボリューム２４０から読出し（Ｓ９２）、このデータをホスト１０に転送する（Ｓ９３）。なお、外部ボリューム２４０からデータを読み出す場合、管理テーブルＴ１Ａが参照される。また、ホスト１０から要求されたデータが、既にキャッシュメモリ１３０上に存在する場合（ステージング済の場合）、第１仮想化ストレージ装置１００Ａは、外部ボリューム２４０にアクセスすることなく、キャッシュメモリ１３０に記憶されているデータをホスト１０に転送する。
【０１８０】
図１５は、図１３中のＳ７８の詳細を示すフローチャートである。移行先となる第２仮想化ストレージ装置１００Ｂは、ホスト１０からコマンドを受信すると（S101：YES）、そのコマンドのアクセス対象を解析する。第２仮想化ストレージ装置１００Ｂは、ホスト１０のアクセス対象が、第２仮想化ストレージ装置１００Ｂの管理下にある外部ボリューム２４０に接続された論理ボリューム１６４であるか否かを判定する（Ｓ１０２）。つまり、第２仮想化ストレージ装置１００Ｂは、自分がオーナー権を有する外部ボリューム２４０に関するアクセス要求であるか否かを判定する。
【０１８１】
第２仮想化ストレージ装置１００Ｂは、自分がオーナー権を有しているボリュームに関するアクセス要求であると判定した場合（S102：YES）、その論理ボリューム１６４に接続された外部ボリューム２４０について、第１仮想化ストレージ装置１００Ａによるディステージ処理が完了しているか否かを判定する（Ｓ１０３）。即ち、第２仮想化ストレージ装置１００Ｂは、そのボリュームに関して、第１仮想化ストレージ装置１００Ａからディステージ完了通知を取得しているか否かを判定する。
【０１８２】
ホスト１０のアクセス対象に関して第２仮想化ストレージ装置１００Ｂがオーナー権を有していない場合（S102：NO）、または、第２仮想化ストレージ装置１００Ｂがオーナー権を保有しているが、移行元でのディステージ処理が完了していない場合（S103：NO）のいずれかである場合、第２仮想化ストレージ装置１００Ｂは、コマンド処理を拒絶する（Ｓ１０４）。移行対象のボリュームについてデータの整合性を維持するためである。
【０１８３】
これに対し、ホスト１０からのアクセス対象ボリュームに関して、第２仮想化ストレージ装置１００Ｂがオーナー権を保有しており（S102：YES）、かつ、そのボリュームに関して移行先でのディステージ処理が完了している場合（S103：YES）、第２仮想化ストレージ装置１００Ｂは、通常のアクセス処理を行うことができる。第２仮想化ストレージ装置１００Ｂによる通常のアクセス処理は、第１仮想化ストレージ装置１００Ａによる通常のアクセス処理と同様である。
【０１８４】
即ち、第２仮想化ストレージ装置１００Ｂは、ホスト１０から受領したコマンドのタイプを判別する（Ｓ１０５）。ライトコマンドの場合、第２仮想化ストレージ装置１００Ｂは、ホスト１０から受信したライトデータをキャッシュメモリ１３０に記憶させた後（Ｓ１０６）、書込み完了をホスト１０に通知する（Ｓ１０７）。そして、第２仮想化ストレージ装置１００Ｂは、管理テーブルＴ１Ｂを参照して外部ボリューム２４０へのパスを確認し（Ｓ１０８）、キャッシュメモリ１３０に記憶されたライトデータを外部ボリュームに転送して書き込ませる（Ｓ１０９）。
【０１８５】
リードコマンドの場合、第２仮想化ストレージ装置１００Ｂは、ホスト１０から要求されたデータを外部ボリューム２４０（またはキャッシュメモリ１３０）から読み出して（Ｓ１１０）、このデータをホスト１０に転送する（Ｓ１１１）。
【０１８６】
以上の説明は、ストレージシステムに第２仮想化ストレージ装置１００Ｂを新たに導入する場合の例である。次に、第２仮想化ストレージ装置１００Ｂを導入した後で、さらなる負荷分散を行う場合について説明する。
【０１８７】
図１６は、各仮想化ストレージ装置１００Ａ，１００Ｂ間でボリュームを移管する場合の別の例を示すフローチャートである。
【０１８８】
ユーザは、監視部２１による監視結果に基づいて、ストレージシステムの稼働状況を把握することができる。例えば、ユーザは、第１仮想化ストレージ装置１００Ａの負荷が重いと判断した場合、管理端末２０を介して、第１仮想化ストレージ装置１００Ａの管理下にある外部ボリューム２４０を第２仮想化ストレージ装置１００Ｂに移管させるべく、指示を出すことができる（Ｓ１２１）。また、管理端末２０からの移行指示に基づいて、ホスト１０のパス設定情報Ｔ３には、第２仮想化ストレージ装置１００Ｂを経由してアクセスするためのパスが追加される。
【０１８９】
第１仮想化ストレージ装置１００Ａは、管理端末２０からの移行指示を受領すると、移行対象として指定された外部ボリュームのオーナー権を「１」から「−１」に変更し、この変更を第２仮想化ストレージ装置１００Ｂに通知する（Ｓ１２２）。
【０１９０】
第２仮想化ストレージ装置１００Ｂは、第１仮想化ストレージ装置１００Ａからの通知を受領すると（Ｓ１２３）、移行対象ボリュームに関する移行状態フラグを「１」にセットして管理テーブルＴ１Ｂを更新し（Ｓ１２４）、移行状態フラグの設定が完了した旨を第１仮想化ストレージ装置１００Ａに通知する（Ｓ１２５）。
【０１９１】
第１仮想化ストレージ装置１００Ａは、第２仮想化ストレージ装置１００Ｂからの通知を受領すると、同様に、移行対象ボリュームに関する移行状態フラグを「１」にセットして管理テーブルＴ１Ａを更新する（Ｓ１２６）。そして、第１仮想化ストレージ装置１００Ａは、移行対象ボリュームに関するダーティデータのディステージ処理を開始する（Ｓ１２７）。
【０１９２】
ディステージ処理が完了する前に、移行対象の論理ボリューム１６４へのアクセスを要求するコマンドがホスト１０から発行された場合（Ｓ１２８）、第１仮想化ストレージ装置１００Ａは、その処理を拒否する（Ｓ１２９）。
【０１９３】
ホスト１０は、第１仮想化ストレージ装置１００Ａによってアクセス処理が拒否されると、パス設定情報Ｔ３を参照し、パスを切り替える（Ｓ１３０）。ここでは、第１仮想化ストレージ装置１００Ａを経由するプライマリパスから、第２仮想化ストレージ装置１００Ｂを経由するオルタネイトパスに切り替わったものとして説明する。ホスト１０は、パスを切り替えた後、再びコマンドを発行する（Ｓ１３１）。このコマンドは、ライトコマンドでもリードコマンドでも良いが、説明の便宜上、ライトコマンドが発行されたものとする。
【０１９４】
第２仮想化ストレージ装置１００Ｂは、ホスト１０からのライトコマンドを受領すると（Ｓ１３２）、ライトコマンドの後にホスト１０から送信されるライトデータを受信して、キャッシュメモリ１３０に記憶させる（Ｓ１３２）。第２仮想化ストレージ装置１００Ｂは、ライトデータをキャッシュメモリ１３０に記憶させると、ホスト１０に書込み完了を報告する（Ｓ１３３）。ホスト１０は、第２仮想化ストレージ装置１００Ｂからの処理完了通知を受領する（Ｓ１３４）。
【０１９５】
一方、第１仮想化ストレージ装置１００Ａによるディステージ処理が完了すると（Ｓ１３５）、第１仮想化ストレージ装置１００Ａは、ディステージ処理が完了した旨を第２仮想化ストレージ装置１００Ｂに通知する（Ｓ１３６）。第２仮想化ストレージ装置１００Ｂは、このディステージ完了通知を受領すると（Ｓ１３７）、移行対象ボリュームに関する移行状態フラグをリセットさせる（Ｓ１３８）。これにより、ボリュームの整合性を維持したままで、ボリュームの移管が完了する。ボリュームの移管が完了した後で、ホスト１０が別のコマンドを発行すると（Ｓ１３９）、第２仮想化ストレージ装置１００Ｂは、通常のアクセス処理を行う（Ｓ１４０）。
【０１９６】
なお、もしもＳ１３１で発行されたコマンドがリードコマンドの場合、第２仮想化ストレージ装置１００Ｂは、第１仮想化ストレージ装置１００Ａによるディステージ処理が完了するまで、リードコマンドの処理を拒否することができる。
【０１９７】
図１８は、本実施形態によるボリューム移管の様子を模式的に示す説明図である。まず図１８（ａ）に示すように、最初、ストレージシステムでは、第１仮想化ストレージ装置１００Ａのみが稼働しているものとする。この状況下では、第１仮想化ストレージ装置１００Ａが、全ての外部ボリューム２４０を利用している。
【０１９８】
図１８（ｂ）に示すように、ユーザは、第１仮想化ストレージ装置１００Ａの負荷状況に基づいて、第２仮想化ストレージ装置１００Ｂの導入を決定し、第２仮想化ストレージ装置１００Ｂをストレージシステムに追加する。
【０１９９】
図１８（ｃ）に示すように、ユーザが管理端末２０を介して、例えば、「#B」及び「#C」のボリューム２４０について移管を指示すると、これらのボリューム２４０は、第２仮想化ストレージ装置１００Ｂの論理ボリューム１６４に接続される。より正確には、第１仮想化ストレージ装置１００Ａの論理ボリューム１６４について、ユーザがボリュームの移行を指示すると、これら移行対象の論理ボリューム１６４に接続されている外部ボリューム２４０（#B，#C）が、第２仮想化ストレージ装置１００Ｂの論理ボリューム１６４に接続し直される。これにより、第１仮想化ストレージ装置１００Ａの負荷の少なくとも一部は、第２仮想化ストレージ装置１００Ｂに移されて、第１仮想化ストレージ装置１００Ａ内のボトルネックが解消する。この結果、ストレージシステム全体の応答性能や効率が改善される。
【０２００】
以上詳述した通り、本実施例によれば、複数の仮想化ストレージ装置１００Ａ，１００Ｂによって各外部ボリューム２４０をそれぞれ管理することができる。従って、ストレージシステム内の負荷を分散させて、ストレージシステム全体の処理性能を改善することができる。
【０２０１】
本実施例では、ホスト１０からのアクセスを停止させることなく、各仮想化ストレージ装置１００Ａ，１００Ｂ間で外部ボリューム２４０を移管させることができる。従って、ホスト１０を計画停止させることなく、いわゆるオンラインのままでボリューム移行を行うことができ、使い勝手が向上する。
【０２０２】
本実施例では、ユーザは、管理端末２０を介して指示を与えるだけで、各仮想化ストレージ装置１００Ａ，１００Ｂ間で外部ボリューム２４０を移管させることができる。従って、外部ボリューム２４０をそれぞれ仮想化して利用可能な複数の仮想化ストレージ装置１００Ａ，１００Ｂを備えたストレージシステムにおいて、比較的簡単な操作で、ストレージシステムの性能を改善することができる。
【０２０３】
本実施例では、移行元の仮想化ストレージ装置１００Ａは、移行対象の外部ボリューム２４０に関するディステージ処理が完了するまで、ホスト１０からのアクセス要求を拒否する構成とした。従って、データの整合性を維持したままで、ボリュームを移行させることができる。
【実施例２】
【０２０４】
図１９に基づいて、本発明の第２実施例を説明する。本実施例は、上述した第１実施例の変形例に相当する。本実施例では、ストレージシステムが自律的に各仮想化ストレージ装置１００Ａ，１００Ｂ間での負荷分散を行う。
【０２０５】
図１９は、本実施例による移行指示処理のフローチャートである。この移行指示処理は、例えば、管理端末２０によって実行することができる。管理端末２０は、各仮想化ストレージ装置１００Ａ，１００Ｂからそれぞれ性能情報を取得する。（Ｓ１６１）。管理端末２０は、各性能情報に基づいて、各仮想化ストレージ装置１００Ａ，１００Ｂの負荷ＬＳ１，ＬＳ２をそれぞれ算出する（Ｓ１６２）。これらの負荷は、例えば、データ入出力頻度やCPU使用率及びキャッシュメモリ使用率等に基づいて、算出可能である。
【０２０６】
管理端末２０は、第１仮想化ストレージ装置１００Ａの負荷ＬＳ１と第２仮想化ストレージ装置１００Ｂの負荷ＬＳ２とを比較する（Ｓ１６３）。第１負荷ＬＳ１の方が第２負荷ＬＳ２よりも大きい場合（ＬＳ１＞ＬＳ２）、管理端末２０は、第１仮想化ストレージ装置１００Ａから第２仮想化ストレージ装置１００Ｂに移管させる論理ボリューム（外部ボリューム）を決定する（Ｓ１６４）。管理端末２０は、例えば、その装置内で最も高負荷のボリュームを選択することができる。
【０２０７】
管理端末２０は、移行タイミングが到来したか否かを判定し（Ｓ１６５）、移行タイミングが到来した場合（S165：YES）、移行先のパス情報を定義し（Ｓ１６６）、各仮想化ストレージ装置１００Ａ，１００Ｂに移行指示をそれぞれ発行する（Ｓ１６６）。例えば、ホスト１０からのアクセス頻度が少ない時間帯等を、移行タイミングとして予め選択することができる。
【０２０８】
一方、第２負荷ＬＳ２が第１負荷ＬＳ１以上の場合（ＬＳ１≦ＬＳ２）、管理端末２０は、第２仮想化ストレージ装置１００Ｂから第１仮想化ストレージ装置１００Ａに移管させるボリュームを決定する（Ｓ１６８）。
【０２０９】
管理端末２０は、前記同様に、所定の移行タイミングを見計らって（S169：YES）、移行先のパスを定義し（Ｓ１７０）、各仮想化ストレージ装置１００Ａ，１００Ｂにそれぞれ移行指示を発行する（Ｓ１７１）。
【０２１０】
このように構成される本実施例でも、前記実施例と同様の効果を奏する。これに加えて、本実施例では、外部ボリューム２４０をそれぞれ仮想化することができる複数の仮想化ストレージ装置１００Ａ，１００Ｂ間の負荷分散を自律的に行うことができる。
【０２１１】
なお、本発明は、上述した各実施例に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。
【０２１２】
例えば、前記各実施例では、複数の仮想化ストレージ装置を共存させる場合を中心に説明したが、本発明はこれに限らず、全ての外部ボリュームを第２仮想化ストレージ装置に移行させ、第２仮想化ストレージ装置によって第１仮想化ストレージ装置を完全に置き換える構成でもよい。
【０２１３】
また、前記各実施例では、管理端末を別体のコンピュータとして構成する場合を中心に述べたが、これに限らず、各仮想化ストレージ装置のいずれか一方に、管理端末の機能を内蔵させる構成でもよい。
【０２１４】
さらに、前記各実施例では、２台の仮想化ストレージ装置を用いる場合を中心に述べたが、これに限らず、本発明は、３台以上の仮想化ストレージ装置を用いた場合にも適用することができる。
【０２１５】
また、前記各実施例では、仮想化ストレージ装置が非同期転送モードで動作する場合を中心に説明したが、同期転送モードで動作してもよい。同期転送モードで動作する場合、基本的に外部ボリュームの記憶内容は、常に最新の内容となっているため、移行元でのディステージ処理完了を待つことなく、各仮想化ストレージ装置間で速やかに移管させることができる。
【０２１６】
なお、ボリュームを移管させる場合、移行元の論理ボリューム１６４と移行先の論理ボリューム１６４とは同一サイズに設定される。
【図面の簡単な説明】
【０２１７】
【図１】本発明の実施形態の全体概念を示す説明図である。
【図２】ストレージシステムの概略構造を示す説明図である。
【図３】ストレージシステムのハードウェア構成を示すブロック図である。
【図４】ストレージシステムの記憶構造を模式的に示す説明図である。
【図５】第１仮想化ストレージ装置により使用される管理テーブル及び属性テーブルの構成をそれぞれ示す説明図である。
【図６】第２仮想化ストレージ装置により使用される管理テーブル及び属性テーブルの構成をそれぞれ示す説明図である。
【図７】パス定義情報の構成とこのパス定義情報に基づいてホストのパスが切り替えられていく様子を示す説明図である。
【図８】仮想化ストレージ装置が外部ストレージ装置の情報を取得して管理テーブル等を構築する場合の処理を示すフローチャートである。
【図９】非同期転送モードで動作する場合の処理を示す説明図である。
【図１０】同期転送モードで動作する場合の処理を示す説明図である。
【図１１】管理端末を用いて行われる移行指示処理を示すフローチャートである。
【図１２】管理端末によって監視される負荷状態の画面表示例を示す説明図である。
【図１３】第２仮想化ストレージ装置をストレージシステムに新たに追加して、第１仮想化ストレージ装置からボリュームを移管させる処理の概要を示すフローチャートである。
【図１４】移行元である第１仮想化ストレージ装置で実行されるアクセス処理を示すフローチャートである。
【図１５】移行先である第２仮想化ストレージ装置で実行されるアクセス処理を示すフローチャートである。
【図１６】複数の仮想化ストレージ装置間で、ボリュームを移管させる処理の概要を示すフローチャートである。
【図１７】移行先の第２仮想化ストレージ装置が、移行対象の外部ボリュームに接続する処理を示すフローチャートである。
【図１８】複数の仮想化ストレージ装置を用いてストレージシステムを運用する様子を模式的に示す説明図である。
【図１９】第２実施例に係るストレージシステムで実行される移行指示処理を示すフローチャートである。
【符号の説明】
【０２１８】
１，２…仮想化ストレージ装置、１Ａ，２Ａ…制御部、１Ｂ，２Ｂ…管理テーブル、１Ｃ，２Ｃ…管理テーブル、１Ｄ，２Ｄ…論理ボリューム、１Ｅ，２Ｅ…中間ボリューム
３…外部ストレージ装置、３Ａ…外部ボリューム、４…ホスト、５…上位SAN、６…下位SAN、７…管理端末、７Ａ…監視部、８…装置間LAN、１０…ホスト、１１…ホストバスアダプタ（HBA）、１２…ボリューム管理部、１３…アプリケーションプログラム、２０…管理端末、２１…監視部、３０…スイッチ、１００Ａ，１００Ｂ…仮想化ストレージ装置、１０１Ａ，１０１Ｂ…コントローラ、１１０…チャネルアダプタ（CHA）、１１１Ｅ…外部ストレージ接続用インターフェース、１１１Ｔ…ホスト接続用インターフェース、１２０…ディスクアダプタ（DKA）、１３０…キャッシュメモリ、１４０…制御メモリ、１５０…接続制御部、１６０…記憶部、１６１…ディスクドライブ、１６３…仮想的中間ボリューム（V-VOL）、１６４…論理ボリューム、１６５…LU、１７０…サービスプロセッサ（SVP）、２００…外部ストレージ装置、２１０…コントローラ、２１１…通信ポート、２２０…ディスクドライブ、２４０…外部ボリューム、Ｔ１Ａ，Ｔ１Ｂ…管理テーブル、Ｔ２Ａ，Ｔ２Ｂ…属性テーブル、Ｔ３ パス設定情報
【図１】
2006330895.tif 000003
【図２】
2006330895.tif 000004
【図３】
2006330895.tif 000005
【図４】
2006330895.tif 000006
【図５】
2006330895.tif 000007
【図６】
2006330895.tif 000008
【図７】
2006330895.tif 000009
【図８】
2006330895.tif 000010
【図９】
2006330895.tif 000011
【図１０】
2006330895.tif 000012
【図１１】
2006330895.tif 000013
【図１２】
2006330895.tif 000014
【図１３】
2006330895.tif 000015
【図１４】
2006330895.tif 000016
【図１５】
2006330895.tif 000017
【図１６】
2006330895.tif 000018
【図１７】
2006330895.tif 000019
【図１８】
2006330895.tif 000020
【図１９】
2006330895.tif 000021