(57)【要約】  移行前ボリュームグループから移行後ボリュームグループへの移行を行う複数ストレージ装置、の制御方法が与えられる。複数ストレージ装置は、移行中において、移行前ボリュームグループ及び移行後ボリュームグループの複数ボリューム内の任意ボリュームへのホストからのライトコマンドを受け付ける。上記制御方法は、複数ボリュームのそれぞれに、予め定められた順番で、受信したライトコマンドのライトデータを書き込み、複数ボリュームにおける最後において最後ボリュームに上記ライトデータを書き込み、上記異なるボリュームそれぞれにおいて、排他ロックをしてから上記ライトデータを書き込み、上記最後ボリュームへの上記ライトデータの書き込み完了後に上記排他ロックを解除する。
2015162674.tif 000002
【特許請求の範囲】
【請求項１】
移行前ボリュームグループから移行後ボリュームグループへの移行を行う複数ストレージ装置、を含むストレージシステムであって、
前記複数ストレージ装置は、前記移行中において、前記移行前ボリュームグループ及び前記移行後ボリュームグループの複数ボリューム内の任意ボリュームへのホストからのライトコマンドを受け付け、
前記複数ストレージ装置は、前記複数ボリュームのそれぞれに、予め定められた順番で、前記ライトコマンドのライトデータを書き込み、
前記複数ストレージ装置における第１ストレージ装置は、前記複数ボリュームにおける最後において、最後ボリュームに前記ライトデータを書き込み、
前記複数ストレージ装置において前記最後ボリュームと異なるボリュームを提供するストレージ装置は、前記異なるボリュームそれぞれにおいて、排他ロックを行ってから前記ライトデータを書き込み、前記最後ボリュームへの前記ライトデータの書き込み完了後に前記排他ロックを解除する、ストレージシステム。
【請求項２】
請求項１に記載のストレージシステムであって、
前記移行前ボリュームグループは、第１ボリューム及び第２ボリュームからなり、
前記移行後ボリュームグループは、前記第１ボリューム及び第３ボリュームからなり、
前記複数ストレージ装置は、前記第１ボリュームのデータを前記第３ボリュームにコピーし、
前記第２ボリューム又は前記第３ボリュームは、前記最後ボリュームであり、
前記複数ストレージ装置は、前記第１ボリューム、第２ボリューム及び第３ボリュームにおける最初に、前記第１ボリュームに前記ライトデータを書きこみ、
前記第２ボリュームを提供するストレージ装置は、前記第１ボリュームを提供するストレージ装置から、前記ライトデータ及び前記ライトデータの書き込みを指示するライトコマンドを受信し、
前記第３ボリュームを提供するストレージ装置は、前記第１ボリュームを提供するストレージ装置から、前記ライトデータ及び前記ライトデータの書き込みを指示するライトコマンドを受信する、ストレージシステム。
【請求項３】
請求項２に記載のストレージシステムであって、
前記第２ボリュームを提供するストレージ装置は、前記ホストから前記ライトコマンド及びライトデータを受信した場合、当該ライトコマンド及びライトデータを、前記第１ボリュームを提供するストレージ装置に転送し、
前記第３ボリュームを提供するストレージ装置は、前記ホストから前記ライトコマンド及びライトデータを受信した場合、当該ライトコマンド及びライトデータを、前記第１ボリュームを提供するストレージ装置に転送する、ストレージシステム。
【請求項４】
請求項１に記載のストレージシステムであって、
前記移行前ボリュームグループは、第１ボリューム及び第２ボリュームからなり、
前記移行後ボリュームグループは、前記第１ボリューム及び第３ボリュームからなり、
前記複数ストレージ装置は、前記第２ボリュームのデータを前記第３ボリュームにコピーし、
前記複数ストレージ装置は、前記第１ボリューム、第２ボリューム及び第３ボリュームの順に、前記ライトデータを書きこみ、
前記第２ボリュームを提供するストレージ装置は、前記第１ボリュームを提供するストレージ装置から、前記ライトデータ及び前記ライトデータの書き込みを指示するライトコマンドを受信し、
前記第３ボリュームを提供するストレージ装置は、前記第２ボリュームを提供するストレージ装置から、前記ライトデータ及び前記ライトデータの書き込みを指示するライトコマンドを受信する、ストレージシステム。
【請求項５】
請求項４に記載のストレージシステムであって、
前記第２ボリュームを提供するストレージ装置は、前記ホストから前記ライトコマンド及びライトデータを受信した場合、当該ライトコマンド及びライトデータを、前記第１ボリュームを提供するストレージ装置に転送し、
前記第３ボリュームを提供するストレージ装置は、前記ホストから前記ライトコマンド及びライトデータを受信した場合、当該ライトコマンド及びライトデータを、前記第２ボリュームを提供するストレージ装置に送信し、
前記第２ボリュームを提供するストレージ装置は、前記第３ボリュームから受信したライトコマンド及びライトデータを、前記第１ボリュームを提供するストレージ装置に転送する、ストレージシステム。
【請求項６】
請求項１に記載のストレージシステムであって、
前記複数ストレージ装置は、前記異なるボリュームにおける指定ボリュームへのリードコマンドを受信すると、排他ロック後にリードデータを前記指定ボリュームから読み出し、前記リードデータの読み出し後に前記排他ロックを解除する、ストレージシステム。
【請求項７】
請求項１に記載のストレージシステムであって、
前記複数ストレージ装置は、前記移行後ボリュームグループにおける新ボリュームに対応するＩ／Ｏスイッチングボリュームを作成し、
前記複数ストレージ装置は、前記移行中において、前記Ｉ／Ｏスイッチングボリュームへのライトコマンドを、前記移行前ボリュームグループにおけるボリュームに転送し、
前記複数ストレージ装置は、前記新ボリュームへの移行前ボリュームグループからのデータコピー後に、前記Ｉ／Ｏスイッチングボリュームを削除し、前記新ボリュームへのパスを定義する、ストレージシステム。
【請求項８】
請求項１に記載のストレージシステムであって、
前記複数ストレージ装置は、前記移行前ボリュームグループに属し前記移行後ボリュームグループに属さないボリュームに対応するＩ／Ｏスイッチングボリュームを作成し、
前記複数ストレージ装置は、前記移行中において、前記Ｉ／Ｏスイッチングボリュームへのライトコマンドを、前記移行後ボリュームグループにおけるボリュームに転送し、
前記複数ストレージ装置は、前記移行後に、前記Ｉ／Ｏスイッチングボリュームを削除する、ストレージシステム。
【請求項９】
移行前ボリュームグループから移行後ボリュームグループへの移行を行う複数ストレージ装置、の制御方法であって、
前記複数ストレージ装置は、前記移行中において、前記移行前ボリュームグループ及び前記移行後ボリュームグループの複数ボリューム内の任意ボリュームへのホストからのライトコマンドを受け付け、
前記制御方法は、
前記複数ボリュームのそれぞれに、予め定められた順番で、受信したライトコマンドのライトデータを書き込み、
前記複数ボリュームにおける最後において、最後ボリュームに前記ライトデータを書き込み、
前記最後ボリュームと異なるボリュームそれぞれにおいて、排他ロックをしてから前記ライトデータを書き込み、前記最後ボリュームへの前記ライトデータの書き込み完了後に前記排他ロックを解除する、制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステムに関し、特に、ストレージシステムにおけるボリュームグループの移行に関する。
【背景技術】
【０００２】
背景技術として、特許文献１がある。特許文献１は、複数物理ストレージ装置から構成される仮想ストレージ装置において、物理ストレージ装置間でデータ移行を行う際に、サーバが認識するストレージ装置情報及びボリューム情報の変更を不要にし、ホストＩ／Ｏ無停止のままでのデータ移行を実現する技術を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許出願公開第２００８／００３４００５号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
エンタプライズクラスのストレージシステムでは、ストレージ装置のクラスタ構成によるＨｉｇｈ  Ａｖａｉｌａｂｉｌｉｔｙ（ＨＡ）機能が求められている。ＨＡ機能は、ストレージシステムの高可用性を実現する。ＨＡ構成は、二重化された系を有し、障害発生時には自動的に故障した系を切り離し、正常な系のみを用いて動作を継続する。【０００５】
さらに、Ａｃｔｉｖｅ−Ａｃｔｉｖｅ型ＨＡ構成は、全ての系を稼動系として運用する。Ａｃｔｉｖｅ−Ａｃｔｉｖｅ型ＨＡ構成において、ストレージシステムは、ボリュームペアのいずれのＩ／Ｏアクセスも受け付ける。【０００６】
Ａｃｔｉｖｅ−Ａｃｔｉｖｅ型ＨＡ構成のストレージシステムにおけるデータ移行では、ホストＩ／Ｏ無停止かつＡｃｔｉｖｅ−Ａｃｔｉｖｅ型ＨＡ構成を維持したまま、データを移行することが求められる。つまり、Ａｃｔｉｖｅ−Ａｃｔｉｖｅ型ＨＡ構成の高可用性を維持しながらのデータ移行が求められる。しかしながら、先行技術の範囲では、ＨＡ構成を解除しなければホストＩ／Ｏ無停止のデータ移行ができないため、データ移行中の高可用性を維持できない。
【課題を解決するための手段】
【０００７】
本発明の一態様は、移行前ボリュームグループから移行後ボリュームグループへの移行を行う複数ストレージ装置、を含むストレージシステムであって、前記複数ストレージ装置は、前記移行中において、前記移行前ボリュームグループ及び前記移行後ボリュームグループの複数ボリューム内の任意ボリュームへのホストからのライトコマンドを受け付け、前記複数ストレージ装置は、前記複数ボリュームのそれぞれに、予め定められた順番で、前記ライトコマンドのライトデータを書き込み、前記複数ストレージ装置における第１ストレージ装置は、前記複数ボリュームにおける最後において、最後ボリュームに前記ライトデータを書き込み、前記複数ストレージ装置において前記最後ボリュームと異なるボリュームを提供するストレージ装置は、前記異なるボリュームそれぞれにおいて、排他ロックを行ってから前記ライトデータを書き込み、前記最後ボリュームへの前記ライトデータの書き込み完了後に前記排他ロックを解除する。
【発明の効果】
【０００８】
本発明の一態様によれば、ストレージ装置のＨＡ構成において、ホストＩ／Ｏ無停止かつ可用性を維持しつつデータ移行を実現することができる。
【図面の簡単な説明】
【０００９】
【図１】実施例１において、ＨＡマルチターゲット構成におけるボリュームペア移行の概要を説明する図である。
【図２】実施例１において、計算機システムの構成例を示す図である。
【図３】実施例１において、ホスト計算機の構成例を示す図である。
【図４】実施例１において、物理ストレージ装置の構成例を示す図である。
【図５】実施例１において、物理ストレージ装置のメモリにおけるソフトウェア構成例を示す図である。
【図６Ａ】実施例１において、物理ストレージ装置におけるリソース管理テーブルの構成例を示す図である。
【図６Ｂ】実施例１において、物理ストレージにおけるホストグループ管理テーブルの構成例を示す図である。
【図７】実施例１において、物理ストレージ装置における仮想ストレージボックス管理テーブルの構成例を示す図である。
【図８】実施例１において、物理ストレージ装置における仮想ストレージ管理テーブルの構成例を示す図である。
【図９Ａ】実施例１において、物理ストレージ装置におけるボリュームコピーペア管理テーブルの構成例を示す図である。
【図９Ｂ】実施例１において、物理ストレージ装置における排他ロック管理テーブルの構成例を示す図である。
【図１０】実施例１において、管理計算機の構成例を示す図である。
【図１１】実施例１において、管理計算機におけるか仮想ストレージ管理テーブルの構成例を示す図である。
【図１２】実施例１において、管理計算機における仮想ストレージボックス管理テーブルの構成例を示す図である。
【図１３】実施例１において、管理計算機における仮想ストレージリソース管理テーブルの構成例を示す図である。
【図１４】実施例１において、移行先物理ストレージ装置Ｂにおけるボリュームコピーペア管理テーブルの構成例を示す図である。
【図１５】実施例１において、ＨＡボリューム移行ステップを示す図である。
【図１６】実施例１において、ホスト計算機から物理ストレージ装置へのＷＲＩＴＥコマンド処理例を示すフローチャートである。
【図１７】実施例１において、ＨＡマルチターゲット構成における物理ストレージ装置のＷＲＩＴＥコマンド処理例を示すフローチャートである。
【図１８】実施例１において、ＨＡマルチターゲット構成における物理ストレージ装置間ＷＲＩＴＥコマンド転送時のＷＲＩＴＥコマンド処理例を示すフローチャートである。
【図１９】実施例１において、ホスト計算機から物理ストレージ装置へのＲＥＡＤコマンド処理例を示すフローチャートである。
【図２０】実施例１において、物理ストレージ装置における排他ロック解除コマンド処理例を示すフローチャートである。
【図２１】実施例１において、ＨＡ単体ボリュームペアにおけるホスト計算機からＰＶＯＬへのＷＲＩＴＥコマンド処理例を示すシーケンスである。
【図２２】実施例１において、ＨＡ単体ボリュームペアにおけるホスト計算機からＳＶＯＬへのＷＲＩＴＥコマンド処理例を示すシーケンスである。
【図２３】実施例１において、ＨＡ単体ボリュームペアにおけるホスト計算機からＰＶＯＬへのＲＥＡＤコマンド処理例を示すシーケンスである。
【図２４】実施例１において、ＨＡ単体ボリュームペアにおけるホスト計算機からＳＶＯＬへのＲＥＡＤコマンド処理例を示すシーケンスである。
【図２５】実施例１において、ＨＡマルチターゲット構成におけるホスト計算機から第１ペアのＰＶＯＬへのＷＲＩＴＥコマンド処理例を示すシーケンスである。
【図２６】実施例１において、ＨＡマルチターゲット構成におけるホスト計算機から第１ペアのＳＶＯＬへのＷＲＩＴＥコマンド処理例を示すシーケンスである。
【図２７】実施例１において、ＨＡマルチターゲット構成におけるホスト計算機から第２ペアのＳＶＯＬへのＷＲＩＴＥコマンド処理例を示すシーケンスである。
【図２８】実施例１において、ＨＡマルチターゲット構成におけるホスト計算機から第１ペアのＰＶＯＬへのＲＥＡＤコマンド処理例を示すシーケンスである。
【図２９】実施例１において、ＨＡマルチターゲット構成におけるホスト計算機から第１ペアのＳＶＯＬへのＲＥＡＤコマンド処理例を示すシーケンスである。
【図３０】実施例１において、ＨＡマルチターゲット構成におけるホスト計算機から第２ペアのＳＶＯＬへのＲＥＡＤコマンド処理例を示すシーケンスである。
【図３１】実施例２において、ＨＡカスケード構成における本発明の特徴を説明する図である。
【図３２】実施例２において、ＨＡボリューム移行ステップを示す図である。
【図３３】実施例２において、ＨＡカスケード構成における物理ストレージのＷＲＩＴＥコマンド処理例を示すフローチャートである。
【図３４】実施例２において、ＨＡカスケード構成における物理ストレージ間ＷＲＩＴＥコマンド転送時のＷＲＩＴＥコマンド処理例を示すフローチャートである。
【図３５】実施例２において、ＨＡカスケード構成におけるホスト計算機から第１ペアのＰＶＯＬへのＷＲＩＴＥコマンド処理例を示すシーケンスである。
【図３６】実施例２において、ＨＡカスケード構成におけるホスト計算機から第１ペアのＳＶＯＬへのＷＲＩＴＥコマンド処理例を示すシーケンスである。
【図３７】実施例２において、ＨＡカスケード構成におけるホスト計算機から第２ペアのＳＶＯＬへのＷＲＩＴＥコマンド処理例を示すシーケンスである。
【図３８Ａ】実施例３において、ＨＡボリュームペア移行ステップを示す図である。
【図３８Ｂ】実施例３において、ＨＡボリュームペア移行ステップを示す図である。
【図３９Ａ】実施例４において、ＨＡボリュームペア移行ステップを示す図である。
【図３９Ｂ】実施例４において、ＨＡボリュームペア移行ステップを示す図である。
【図４０】実施例５において、ＨＡボリュームペア移行ステップを示す図である。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して本発明の実施形態を説明する。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については同一の参照符号が付されている。
【実施例１】
【００１１】
以下に説明するストレージシステムは、Ａｃｔｉｖｅ−Ａｃｔｉｖｅ型ＨＡ構成を有する。ＨＡ構成は、二重化された系を有し、障害発生時には自動的に故障した系を切り離し、正常な系のみを用いて動作を継続するための自動障害回復機能を備える。Ａｃｔｉｖｅ−Ａｃｔｉｖｅ型ＨＡ構成は、全ての系を稼動系として運用することで、リソースの有効活用及び負荷分散を実現する。以下の説明において、ＨＡ構成及びＨＡペアは、Ａｃｔｉｖｅ−Ａｃｔｉｖｅ型のＨＡ構成及びＨＡペアを意味する。ストレージシステムは、ＨＡペアのいずれに対するＩ／Ｏアクセスも受け付ける。【００１２】
以下においては、ＨＡボリュームペアの移行を説明する。具体的には、ＨＡボリュームペアの移行は、移行前ＨＡボリュームペアの一つを別のボリュームに移行し、移行前ＨＡボリュームペアの他方と新たなボリュームとで、移行後ＨＡボリュームペアを構成する。ストレージシステムは、移行中において、全てのボリュームへのＩ／Ｏアクセスを受け付ける。ストレージシステムは、移行完了後に、ＨＡボリュームペアを切り替える。【００１３】
ＨＡボリュームペアは、Ｐｒｉｍａｒｙ  Ｖｏｌｕｍｅ（ＰＶＯＬ）とＳｅｃｏｎｄａｒｙ  Ｖｏｌｕｍｅ（ＳＶＯＬ）とで構成される。一例において、ストレージシステムは、ペア作成時に、ＰＶＯＬのデータをＳＶＯＬにコピーする。【００１４】
後述するように、非移行時において、ストレージシステムは、ＳＶＯＬへのＷＲＩＴＥコマンドを受信すると、ＰＶＯＬへのライトデータの書き込み（ライトキャッシュへの書き込み又は記憶ドライブへの書き込みのいずれか）終了後に、ＳＶＯＬへのライトデータの書き込みを行う。一例において、ＰＶＯＬへのＩ／Ｏアクセスは、ＰＶＯＬの排他ロックを伴い、ＳＶＯＬへのＩ／Ｏアクセスにおいて排他ロックは使用されない。ＳＶＯＬへのアクセスにおいて排他ロックが使用されてもよい。【００１５】
移行時及び非移行時において、ライト処理における排他ロックは、他のライト処理及びリード処理を禁止する。リード処理における排他ロックは、他のライト処理を禁止し、他のリード処理を禁止しても禁止しなくともよい。リード処理における排他ロックは、他のリード処理を許可することでホストへの応答遅延を抑制できる。【００１６】
図１は、ボリューム移行における、ＨＡマルチターゲット構成の概要を示す図である。ＨＡマルチターゲット構成は、一つのボリュームを二つのＨＡボリュームペアの共通のＰＶＯＬとし、それらの三つのボリュームで二つのＨＡボリュームペアを構成する。【００１７】
図１のシステムは、ホスト計算機１０００と、物理ストレージ装置（単にストレージ装置とも呼ぶ）２０００と、仮想ストレージ装置３０００とを含む。仮想ストレージ装置３０００は、複数の物理ストレージ装置２０００で構成されている。【００１８】
本システムは、複数物理ストレージ装置２０００によるＡｃｔｉｖｅ−Ａｃｔｉｖｅ型ＨＡ構成（以下、ＨＡボリューム構成とも呼ぶ）を有する。複数物理ストレージ装置２０００は、単一の仮想ストレージ装置３０００として、ホスト計算機１０００に提供される。各物理ストレージ装置２０００は、ホスト計算機１０００からの要求に対して、同一のストレージ装置構成情報、すなわち仮想ストレージ装置１（３０００）の構成情報を提供する。【００１９】
図１の例において、物理ストレージ装置１（２０００）の物理ＶＯＬ１（２９００）と、物理ストレージ装置２（２０００）の物理ＶＯＬ２（２９００）とは、ＨＡボリュームペア７１００を構成している。物理ＶＯＬ１（２９００）はＰＶＯＬであり、物理ＶＯＬ２（２９００）はＳＶＯＬである。【００２０】
物理ＶＯＬ１（２９００）及び物理ＶＯＬ２（２９００）について、ホスト計算機１０００に対して、同一のＶＯＬ情報、すなわち仮想ＶＯＬ１１（３９００）の情報が提供される。ホスト計算機１０００は、仮想ＶＯＬ１１（３９００）にアクセスするため、物理ＶＯＬ１（２９００）及び物理ＶＯＬ２（２９００）のいずれへのパスも使用することができる。【００２１】
一方の物理ＶＯＬ２９００に対するライトデータは、他方の物理ＶＯＬ２９００に転送される。これにより、物理ＶＯＬ１（２９００）及び物理ＶＯＬ２（２９００）の間のデータ同一性が維持される。物理ストレージ装置１（２０００）及び物理ストレージ装置２（２０００）は、それぞれ、ホスト計算機１０００からのＲＥＡＤコマンドに対して、自装置が提供する物理ボリューム２９００から読み出したデータを送信する。【００２２】
このように、物理ＶＯＬ１（２９００）及び物理ＶＯＬ２（２９００）は、ホスト計算機１０００から一つのボリュームとしてＩ／Ｏアクセス可能であり、また、いずれかの物理ボリュームにおいて障害が発生しても、他の物理ボリュームへのＩ／Ｏアクセスが可能である。【００２３】
本実施例は、ホストＩ／Ｏ無停止かつＡｃｔｉｖｅ−Ａｃｔｉｖｅ型ＨＡ構成を維持したボリュームペアの移行を説明する。一例として、物理ＶＯＬ２（２９００）を物理ＶＯＬ３へ移行する例を説明する。物理ＶＯＬ１及び物理ＶＯＬ２は移行前ボリュームペアを構成し、物理ＶＯＬ１（２９００）及び物理ＶＯＬ３（２９００）は移行後ボリュームペアを構成する。【００２４】
まず、物理ＶＯＬ１（２９００）と物理ＶＯＬ３（２９００）で、ＨＡボリュームペア７２００が形成される。ここでは、物理ＶＯＬ１（２９００）はＰＶＯＬ、物理ＶＯＬ３（２９００）はＳＶＯＬとする。移行において、ＰＶＯＬである物理ＶＯＬ１（２９００）からＳＶＯＬである物理ＶＯＬ３（２９００）にデータがコピーされる。【００２５】
ホスト計算機１０００及び物理ストレージ装置３（２０００）において、ホスト計算機１０００から物理ＶＯＬ３（２９００）へのパス８３００が定義される。物理ストレージ装置３（２０００）は、物理ＶＯＬ３（２９００）について、ホスト計算機１０００からの要求に対して、物理ＶＯＬ１（２９００）及び物理ＶＯＬ２（２９００）と同様に、仮想ＶＯＬ１１（３９００）の情報を返す。【００２６】
次に、ホスト計算機１０００及び物理ストレージ装置２（２０００）において、ホスト計算機１０００から物理ＶＯＬ２（２９００）へのパス８２００が削除される。さらに、物理ストレージ装置１（２０００）及び物理ストレージ装置２（２０００）は、ＨＡボリュームペア７１００を削除する。これにより、物理ストレージ装置２（２０００）の物理ＶＯＬ２（２９００）から物理ストレージ装置３（２０００）の物理ＶＯＬ３（２９００）への移行が完了する。【００２７】
図２は、本実施例における計算機システムの構成例を示す。図２の計算機システムは、ホスト計算機１０００と、物理ストレージ装置２０００と、管理計算機４０００と、を含む。【００２８】
計算機システムに含まれる各種装置（システム）の数は、設計に依存する。物理ストレージ装置１〜３（２０００）は、１台の仮想的なストレージ装置である仮想ストレージ装置を構成する。本例の仮想ストレージ環境において、２台または３台の物理ストレージ装置が１台の仮想ストレージを構成するが、その構成物理ストレージ数は設計に依存する。【００２９】
物理ストレージ装置Ａ（２０００）は、Ｑｕｏｒｕｍ  Ｄｉｓｋを持つ。Ｑｕｏｒｕｍ  Ｄｉｓｋは、ＨＡ構成における物理ストレージ装置２０００間で通信不可となった場合に、ＨＡ構成が組まれた物理ストレージ装置２０００のうち、継続稼動させるものと停止させるものを決定する機能を提供する。Ｑｕｏｒｕｍ  Ｄｉｓｋにより、スプリットブレイン問題を防ぐことができる。【００３０】
ホスト計算機１０００、管理計算機４０００及び物理ストレージ装置２０００は、ＬＡＮ６０００で構成された管理ネットワークにより、通信可能に接続されている。例えば、管理ネットワーク６０００は、ＩＰネットワークである。管理ネットワーク６０００は、管理データ通信用のネットワークであればどのタイプのネットワークでもよい。【００３１】
ホスト計算機１０００及び物理ストレージ装置２０００は、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）５０００で構成されたデータネットワークにより接続されている。ホスト計算機１０００は、ＳＡＮ５０００を介して、物理ストレージ装置２０００のボリュームにアクセスする。データネットワーク５０００はデータ通信用のネットワークであれば、どのようなタイプのネットワークでもよい。データネットワーク５０００と管理ネットワーク６０００は同一のネットワークでもよい。【００３２】
図３は、ホスト計算機１０００の構成例を模式的に示す。ホスト計算機１０００は、プロセッサであるＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１００、不揮発性の二次記憶デバイス１２００、主記憶デバイスであるメモリ１３００、入出力デバイス１４００、Ｉ／Ｏ要求発行側インタフェースであるイニシエータポート１６００、管理インタフェース１７００を含む。各構成要素は、バス１５００により通信可能に接続されている。【００３３】
ＣＰＵ１１００は、メモリ１３００に格納されたプログラムに従って動作する。典型的には、二次記憶デバイス１２００に格納されているプログラム及びデータが、メモリ１３００にロードされる。本例において、メモリ１３００は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）１３１０、交替パスプログラム１３２０及びアプリケーションプログラム１３３０を保持する。アプリケーションプログラム１３３０は、物理ストレージ装置２０００が提供するボリュームへデータの読み書きを行う。【００３４】
イニシエータポート１６００は、ＳＡＮ４０００に接続するネットワークインタフェースである。イニシエータポート１６００は、ＳＡＮ５０００を介して物理ストレージ装置２０００とデータ及び要求を送受信する。【００３５】
管理インタフェース１７００は、ＬＡＮ６０００に接続するネットワークインタフェースである。管理インタフェース１７００は、ＬＡＮ６０００を介して物理ストレージ装置２０００と管理データ及び制御命令を送受信する。管理インタフェース１７００は、さらに、ＬＡＮ６０００を介して管理計算機４０００と、管理データ及び制御命令を送受信する。【００３６】
図４は、物理ストレージ装置２０００の構成例を模式的に示す図である。本例において、全物理ストレージ装置２０００の基本構成は同じであるが、構成要素の数や記憶容量等は各物理ストレージ装置２０００に依存する。これらは異なる基本構成を有していてもよい。【００３７】
物理ストレージ装置２０００は、複数の記憶デバイス（例えば、ハードディスクドライブ及び／又はＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ））２２００と、物理ストレージ装置２０００を制御し、ボリューム管理や、ホスト計算機１０００又は他の物理ストレージ装置２０００とのデータ通信等を行うストレージコントローラとを含む。【００３８】
ストレージコントローラは、プロセッサであるＣＰＵ２１００、プログラムメモリ２３００、Ｉ／Ｏ要求発行側インタフェースであるイニシエータポート２６００、Ｉ／Ｏ要求受信側インタフェースであるターゲットポート２７００、管理インタフェース２８００、データ転送のためのキャッシュメモリ２４００、を含む。ストレージ装置２０００の構成要素は、バス２５００で通信可能に接続されている。【００３９】
物理ストレージ装置２０００は、イニシエータポート２６００ を介して、外部（他）の物理ストレージ装置２０００に接続し、外部の物理ストレージ装置２０００にＩ／Ｏ要求及びライトデータを送信し、外部の物理ストレージ装置２０００からリードデータを受信することができる。イニシエータポート２６００は、ＳＡＮ５０００に接続する。【００４０】
イニシエータポート２６００は、外部の物理ストレージ装置２０００との通信に用いられるＦＣ、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  Ｏｖｅｒ  Ｅｔｈｅｒｎｅｔ（ＦＣｏＥ）、ｉＳＣＳＩ等のプロトコルを、ストレージコントローラ内部で用いられるプロトコル、例えば、ＰＣＩｅに変換する機能を有する。【００４１】
物理ストレージ装置２０００は、ターゲットポート２７００において、ホスト計算機１０００又は外部の物理ストレージ装置２０００に接続する。物理ストレージ装置２０００は、ターゲットポート２７００を介して、ホスト計算機１０００又は外部の物理ストレージ装置２０００からＩ／Ｏ要求及びライトデータを受信し、また、ホスト計算機１０００又は外部の物理ストレージ装置２０００にリードデータを送信する。ターゲットポート２７００は、ＳＡＮ５０００に接続する。【００４２】
ターゲットポート２７００は、ホスト計算機１０００又は外部の物理ストレージ装置２０００との通信に用いられるＦＣ、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  Ｏｖｅｒ  Ｅｔｈｅｒｎｅｔ（ＦＣｏＥ）、ｉＳＣＳＩ等のプロトコルを、ストレージコントローラ内部で用いられるプロトコル、例えば、ＰＣＩｅに変換する機能を有する。【００４３】
管理インタフェース２８００は、ＬＡＮ６０００に接続するためのデバイスである。管理インタフェース２８００は、ＬＡＮ６０００で使用されるプロトコルを、ストレージコントローラ内部で用いられるプロトコル、例えば、ＰＣＩｅに変換する機能を有する。【００４４】
ＣＰＵ２１００は、物理ストレージ装置２０００の制御のためのプログラムを実行し、ホスト計算機１０００からのＩ／Ｏの制御及び物理ストレージ装置２０００ボリュームの管理、制御を含む所定の機能を実現する。本実施例で説明するＣＰＵ２１００により実現される機能の少なくとも一部は、ＣＰＵ２１００と異なるロジック回路によって実現されてもよい。【００４５】
プログラムはプロセッサ（ＣＰＵ）によって実行されることで、定められた処理をメモリ及びインタフェースを用いながら行う。従って、本開示においてプログラムを主語とする説明は、プロセッサを主語とした説明でもよい。若しくは、プログラムが実行する処理は、そのプログラムが動作する装置（例えば物理ストレージ装置２０００又はホスト計算機１０００）及びシステムが行う処理である。【００４６】
プログラムメモリ２３００は、ＣＰＵ２１００が扱うデータやプログラムを格納する。プログラムメモリ２３００のデータは、例えば、物理ストレージ装置２０００内のいずれかの記憶デバイス２２００、フラッシュメモリ（不図示）、又はＬＡＮ５０００を介して接続された他の装置等、非一時的記憶媒体を備える記憶デバイスからプログラムメモリ２３００にロードされる。【００４７】
図４は、物理ストレージ装置２０００それぞれのプログラムメモリ２３００におけるソフトウェア構成例を示す。プログラムメモリ２３００は、データ入出力処理プログラム２３５０、リソース管理プログラム２３６０及びボリュームコピー制御プログラム２３７０を保持する。さらに、プログラムメモリ２３００は、リソース管理テーブル２３１０、仮想ストレージボックス管理テーブル２３２０、仮想ストレージ管理テーブル２３３０、ボリュームコピーペア管理テーブル２３４０、ホストグループ管理テーブル２３８０、排他ロック管理テーブル２３９０を保持する。【００４８】
データ入出力処理プログラム２３５０ は、ホスト計算機１０００からのＩ／Ｏ要求に従って、ユーザデータのリード及びライトを行い、ホスト計算機１０００及び他の物理ストレージ装置２０００との間の必要なデータ通信を行う。【００４９】
リソース管理プログラム２３６０は、物理ストレージ装置２０００のリソースを管理する。リソース管理プログラム２３６０は、ボリュームの作成や削除の他、以下に説明するテーブル（情報）の作成及び更新を行う。リソース管理プログラム２３６０は、リソース管理のために必要な情報を、管理計算機４０００との間で送受信する。【００５０】
以下において、物理ストレージ装置２０００がそれぞれ保持し、本実施例の説明において参照されるテーブル（情報）について説明する。同一名称のテーブルは、各物理ストレージ装置２０００において、同一の構成（欄）を有する。以下において図を参照して説明するテーブルは、物理ストレージ装置１（２０００）が保持するテーブルである。なお、各装置が保持する情報は、テーブル以外の構造体に格納されていてもよい。【００５１】
図６Ａは、リソース管理テーブル２３１０の構成例を示す。リソース管理テーブル２３１０は、当該物理ストレージ装置１（２０００）のリソースを管理するためのテーブルである。【００５２】
リソース管理テーブル２３１０は、物理ストレージ装置１（２０００）のリソースの種類を格納するリソース種別欄２３１１、リソースＩＤを格納するリソースＩＤ欄２３１２、当該リソースが属するリソースグループＩＤを格納するリソースグループＩＤ欄２３１３、当該リソースに付与された仮想リソースＩＤを格納する仮想リソースＩＤ欄２３１４を有する。【００５３】
図６Ｂは、ホストグループ管理テーブル２３８０の構成例を示す。ホストグループは、ポートに接続されたホスト計算機１０００のＷＷＮ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｎａｍｅ）を、ホスト計算機１０００のＯＳ種別毎にグループ化したものである。ホストグループ管理テーブル２３８０は、ポートＩＤを格納するポートＩＤ欄２３８１、当該ポートに関連するホストグループＩＤを格納するホストグループＩＤ欄２３８２、ホスト計算機１０００のＯＳ種別を示すホストモードＩＤ欄２３８３、当該ホストグループに登録されたホストＷＷＮを格納するホストＷＷＮ欄２３８４、ホストグループＩＤ２３８２に属するホスト計算機１０００がアクセス可能なボリュームＩＤを格納するボリュームＩＤ２３８５を有する。【００５４】
図７は、仮想ストレージボックス管理テーブル２３２０の構成例を示す。仮想ストレージボックスは、１物理ストレージ装置内で１仮想ストレージ装置が持つリソースグループの集合である。仮想ストレージボックス管理テーブル２３２０は、仮想ストレージ装置３０００の仮想ストレージボックスを管理するためのテーブルである。【００５５】
仮想ストレージボックス管理テーブル２３２０は、仮想ストレージボックスＩＤを格納する仮想ストレージボックスＩＤ欄２３２１、当該仮想ストレージボックスに属するリソースグループＩＤを格納するリソースグループＩＤ欄２３２２を有する。【００５６】
図８は、仮想ストレージ管理テーブル２３３０の構成例を示す。仮想ストレージ管理テーブル２３３０は、仮想ストレージ装置３０００を管理するためのテーブルである。仮想ストレージ管理テーブル２３３０は、仮想ストレージＩＤを格納する仮想ストレージＩＤ欄２３３１、当該仮想ストレージ装置に属する仮想ストレージボックスＩＤを格納する仮想ストレージボックスＩＤ欄２３３２を有する。【００５７】
図９Ａは、ボリュームコピーペア管理テーブル２３４０の構成例を示す。ボリュームコピーペア管理テーブル２３４０は、当該物理ストレージ装置２０００が提供するボリュームを含むボリュームコピーペアを管理するためのテーブルである。【００５８】
ボリュームコピーペア管理テーブル２３４０は、ボリュームコピーペアのペアＩＤを格納するペアＩＤ欄２３４１、当該ペアの種別を格納するペア種別欄２３４２、当該ペアの状態を格納するペア状態欄２３４３を有する。【００５９】
ボリュームコピーペア管理テーブル２３４０は、さらに、ＰＶＯＬＩＤを格納するＰＶＯＬＩＤ欄２３４４、ＳＶＯＬＩＤを格納するＳＶＯＬＩＤ欄２３４５を有する。本例において、ＰＶＯＬＩＤ及びＳＶＯＬＩＤは、物理ストレージ装置２０００の識別情報及び当該物理ストレージ装置におけるボリュームの識別情報により構成されている。【００６０】
ボリュームコピーペア管理テーブル２３４０は、さらに、当該ペアに関連するペアのＩＤを格納する関連ペアＩＤ欄２３４６、当該ペアと関連ペアの優先度を格納する優先度欄２３４７を有する。【００６１】
ペア種別欄２３４２に格納するペア種別は、ＨＡであれば"ＨＡ"、物理ストレージ内のボリュームローカルコピーであれば"ＬＣ"、物理ストレージ間のボリュームリモートコピーであれば"ＲＣ"、ＨＡマルチターゲット構成であれば"ＨＡ‐ＭＬＴ"、ＨＡカスケード構成（図３１参照）であれば"ＨＡ‐ＣＡＳ"など、ボリュームコピーペアの種類を示す。【００６２】
ペア状態欄２３４３に格納するペア状態は、データコピー中であれば"ＣＯＰＹ"、データコピー完了後の同期状態であれば"ＰＡＩＲ"、データコピー中断中であれば"ＳＵＳＰＥＮＤ"など、ボリュームコピーペア間のデータコピーの状態を示す文字列や数字を格納する。【００６３】
優先度欄２３４７に格納する優先度は、ＨＡマルチターゲット構成またはＨＡカスケード構成におけるデータ書き込み順序を決定する情報を示す。本実施例では、第１ペアのＰＶＯＬ、第１ペアのＳＶＯＬ、第２ペアのＰＶＯＬ、第２ペアのＳＶＯＬの順に書き込む。優先度は、ペアが作成された順番に従って決定してもよいし、ＨＡマルチターゲット構成設定時またはＨＡカスケード構成設定時にユーザが任意の優先度を決定してもよい。【００６４】
図９Ｂは、排他ロック管理テーブル２３９０の構成例を示す。排他ロック管理テーブル２３９０は、ボリュームの排他ロックを管理するための情報を保持する。排他ロック管理テーブル２３９０は、排他ロックＩＤ欄２３９１、ボリュームＩＤ欄２３９２及びＬＢＡ欄２３９３を有する。【００６５】
排他ロック管理テーブル２３９０は、排他ロックされているデータ記憶領域を管理している。各エントリは、排他ロックされているボリューム内の領域を示し、ボリュームＩＤと当該ボリューム内のアドレス（ＬＢＡ）を使用して、例えば、開始ＬＢＡとデータ長で指定される。本例において、ボリューム内の部分領域が排他ロックされるが、ボリューム単位で排他ロックされてもよい。【００６６】
図１０は、管理計算機４０００の構成例を示す図である。管理計算機４０００は、プロセッサであるＣＰＵ４１００、主記憶デバイスであるメモリ４３００、二次記憶デバイス４２００、入出力デバイス４４００、管理インタフェース（Ｉ／Ｆ）４６００を含む。管理計算機４０００のデバイスは、バス４５００により通信可能に接続されている。【００６７】
管理計算機４０００は、管理プログラムを実行し、それに従って動作する。管理Ｉ／Ｆ４６００はＬＡＮ６０００に接続し、計算機内のプロトコルとＬＡＮ６０００のプロトコルとの間の変換を行う。管理計算機４０００は、管理Ｉ／Ｆ４６００及びＬＡＮ６０００を介して、物理ストレージ装置２０００及びホスト計算機１０００と通信することができる。【００６８】
入出力デバイス４４００は、ディスプレイ、ポインタ又はキーボード等のデバイスの一つ又は複数のデバイスを含む。ユーザ（上記例において、ユーザＵｓｅｒ０１〜Ｕｓｅｒ０３）は、入出力デバイス４４００により、管理計算機４０００を操作することができるほか、ネットワークを介して接続するクライアント計算機から管理計算機４０００にアクセスしてもよい。クライアント計算機は、管理計算機４０００と共に管理システムに含まれる。ユーザは、入力デバイス（例えばマウス及びキーボード）により必要な情報を入力し、出力デバイスにより必要な情報を視認することができる。【００６９】
ＣＰＵ４１００は、メモリ４３００に記憶されているプログラムを実行することによって管理計算機４０００の所定の機能を実現する。メモリ４３００は、ＣＰＵ４１００よって実行されるプログラム及びプログラムの実行に必要なデータを記憶する。管理計算機４０００で動作するプログラムについては後述する。本実施例で説明するＣＰＵ４１００により実現される機能の少なくとも一部は、ＣＰＵ４１００と異なるロジック回路によって実現されてもよい。【００７０】
例えば、プログラムは、二次記憶デバイス４２００からメモリ４３００にロードされる。二次記憶デバイス４２００は、管理計算機４０００の所定の機能を実現するために必要なプログラム及びデータを格納する、不揮発性の非一時的記憶媒体を備える記憶装置である。二次記憶デバイス４２００は、ネットワークを介して接続された外部の記憶装置でもよい。【００７１】
本構成例の管理システムは、管理計算機で構成されているが、管理システムは複数の計算機で構成してもよい。複数の計算機の一つは表示用計算機であってもよく、管理処理の高速化や高信頼化のために、複数の計算機が管理計算機と同等の処理を実現してもよい。管理システムは、物理ストレージ内に構成されていてもよい。管理システムの一部の機能が、物理ストレージ装置内に実装されていてもよい。【００７２】
管理計算機４００００のプログラムメモリ４３００は、ＣＰＵ４１００が扱うデータやプログラムを格納する。プログラムメモリ４３００のデータは、例えば、物理ストレージ装置２０００内のいずれかの記憶デバイス２２００又はフラッシュメモリ（不図示）、又はＬＡＮ６０００を介して接続された他の装置からプログラムメモリ４３００にロードされる。【００７３】
プログラムメモリ４３００は、ＯＳ４３１０及び仮想ストレージ管理プログラムを保持する。さらに、プログラムメモリ４３００は、仮想ストレージ管理テーブル４３２０、仮想ストレージボックス管理テーブル４３３０、仮想ストレージリソース管理テーブル４３４０、ボリュームコピーペア管理テーブル４３５０を保持する。【００７４】
仮想ストレージ管理プログラム４３６０は、物理ストレージ装置２０００及び仮想ストレージ装置３０００のリソースを管理する。仮想ストレージ管理プログラム４３６０は、ボリュームの作成や削除の他、以下に説明するテーブル（情報）の作成及び更新を行う。仮想ストレージ管理プログラム４３６０は、リソース管理のために必要な情報を、物理ストレージ装置２０００との間で送受信する。【００７５】
図１１は、仮想ストレージ管理テーブル４３２０の構成例を示す。仮想ストレージ管理テーブル４３２０は、仮想ストレージ装置３０００及び仮想ストレージ装置３０００の構成要素である物理ストレージ装置２０００のリソースを管理するためのテーブルである。仮想ストレージ管理テーブル４３２０は、全ての物理ストレージ装置２０００の仮想ストレージ管理テーブル２３３０を統合したテーブルである。【００７６】
仮想ストレージ管理テーブル４３２０は、仮想ストレージＩＤを格納する仮想ストレージＩＤ欄４３２１、当該仮想ストレージに属する仮想ストレージボックスＩＤを格納する仮想ストレージボックスＩＤ４３２２を有する。【００７７】
図１２は、仮想ストレージボックス管理テーブル４３３０の構成例を示す。仮想ストレージボックス管理テーブル４３３０は、仮想ストレージ装置３０００の仮想ストレージボックスを管理するためのテーブルである。仮想ストレージボックス管理テーブル４３３０は、全ての物理ストレージ装置２０００の仮想ストレージボックス管理テーブル２３２０を統合したテーブルである。【００７８】
仮想ストレージボックス管理テーブル４３３０は、仮想ストレージボックスＩＤを格納する仮想ストレージボックスＩＤ欄４３３１、当該仮想ストレージボックスに属するリソースグループＩＤを格納するリソースグループＩＤ欄４３３２を有する。【００７９】
図１３は、仮想ストレージリソース管理テーブル４３４０の構成例を示す。仮想ストレージリソース管理テーブル４３４０は、仮想ストレージ装置３０００のリソースを管理するためのテーブルである。仮想ストレージリソース管理テーブル４３４０は、全ての物理ストレージ装置２０００のリソース管理テーブル２３１０を統合したテーブルである。【００８０】
仮想ストレージリソース管理テーブル４３４０は、リソース種別を格納するリソース種別欄４３４１、当該リソースＩＤを格納するリソースＩＤ欄４３４２、当該リソースが属するリソースグループＩＤを格納するリソースグループＩＤ欄４３４３、当該リソースに付与された仮想リソースＩＤを格納する仮想リソースＩＤ欄４３４４を有する。【００８１】
図１４は、ボリュームコピーペア管理テーブル４３５０の構成例を示す。ボリュームコピーペア管理テーブル４３５０は、管理計算機４０００が管理する物理ストレージ装置２０００のボリュームコピーペアを管理するためのテーブルである。ボリュームコピーペア管理テーブル４３５０は、全物理ストレージ装置２０００のボリュームコピーペア管理テーブル２３４０を統合したテーブルである。【００８２】
ボリュームコピーペア管理テーブル４３５０は、ボリュームコピーペアのペアＩＤを格納するペアＩＤ欄４３５１、当該ペアの種類を格納するペア種別欄４３５２、当該ペアの状態を格納するペア状態欄４３５３、ＰＶＯＬＩＤを格納するＰＶＯＬＩＤ欄４３５４、ＳＶＯＬＩＤを格納するＳＶＯＬＩＤ欄４３５５、当該ペアに関連するペアＩＤを格納する関連ペアＩＤ欄４３５６、当該ペアと関連ペアの優先度を格納する優先度欄４３５７を有する。ボリュームコピーペア管理テーブル４３５０の各欄の言葉の意味は、ボリュームコピーペア管理テーブル２３４０と同じである。【００８３】
図１５は、物理ストレージ装置２（ＳＴ２）（２０００）の物理ＶＯＬ２（ＳＶＯＬ）２９００を、物理ストレージ装置３（ＳＴ３）（２０００）の物理ＶＯＬ３（ＳＶＯＬ）２９００に移行するステップを示す。物理ＶＯＬ１、ＶＯＬ２、ＶＯＬ３（２９００）は、仮想ＶＯＬ１１（３０００）の構成要素である。なお、一部の符号を省略している。【００８４】
物理ＶＯＬ２（ＳＶＯＬ）２９００と物理ストレージ装置２（２０００）の物理ＶＯＬ１（ＰＶＯＬ）２９００は、移行前ボリュームペア（第１ボリュームペア）である。【００８５】
物理ＶＯＬ３（２９００）と物理ＶＯＬ１（ＰＶＯＬ）２９００は、移行後ボリュームペア（第２ボリュームペア）である。移行において、物理ＶＯＬ１（ＰＶＯＬ）２９００のデータが、物理ＶＯＬ３（２９００）にコピーされる。本例では、ホスト管理及びストレージ管理の両方を実施可能なシステム管理者が、パス及びボリュームの設定を行う。【００８６】
図１５において、ステップＡ‐０は、初期状態を示す。ホスト計算機１０００と、物理ＶＯＬ１、ＶＯＬ２との間にパスが定義されている。物理ＶＯＬ１、ＶＯＬ２は、ボリュームペアを構成している。物理ＶＯＬ１、ＶＯ２は、仮想ＶＯＬ１１の構成要素であり、ホスト計算機１０００は、仮想ＶＯＬ１１のアクセスのために、いずれの物理ＶＯＬ１、ＶＯＬにもアクセスすることができる。【００８７】
ステップＡ‐１において、システム管理者からの指示に従って、物理ストレージ装置３は、物理ＶＯＬ３を作成する。システム管理者からの指示に従って、物理ストレージ装置１（ＳＴ１）及び物理ストレージ装置３は、物理ＶＯＬ１と物理ＶＯＬ３のＨＡボリュームペアを作成する。ＶＯＬ３への仮想ＩＤを付与する。このとき、ＶＯＬ１、ＶＯＬ２及びＶＯＬ３はＨＡマルチターゲット構成である。【００８８】
ステップＡ‐２において、システム管理者からの指示に従って、ホスト計算機１０００及び物理ストレージ装置３は、ホスト計算機１０００から物理ＶＯＬ３へのパスを定義する。物理ストレージ装置３は、ホストグループ管理テーブル２３８０に、ホストのＷＷＮ、ポートＩＤ、ＶＯＬ３のボリュームＩＤの情報を追加する。【００８９】
次に、ステップＡ‐３において、システム管理者からの指示に従って、ホスト計算機１０００及び物理ストレージ装置２は、ホスト計算機１０００から物理ＶＯＬ２へのパスを削除する。物理ストレージ装置２は、ホストグループ管理テーブル２３８０から、ホストのＷＷＮ、ポートＩＤ、ＶＯＬ２のボリュームＩＤの情報を削除する。【００９０】
次に、ステップＡ‐４において、システム管理者からの指示に従って、物理ストレージ装置１、２は、物理ＶＯＬ１と物理ＶＯＬ２のＨＡペアを削除し、さらに、物理ストレージ装置２は物理ＶＯＬ２の仮想ＩＤを削除する。【００９１】
図１６は、ホスト計算機１０００から物理ストレージ装置２０００へＷＲＩＴＥコマンドが発行されるときの、当該物理ストレージ装置２０００のデータ入出力処理プログラム２３５０がＷＲＩＴＥコマンドを処理するフローチャート例を示す。以下の説明においては、ＷＲＩＴＥコマンドは、データ書き込み指示及びライトデータを含むものとする。【００９２】
ステップＳ１０１において、データ入出力処理プログラム２３５０は、ホスト計算機１０００からＷＲＩＴＥコマンドを受信する。ステップＳ１０２において、データ入出力処理プログラム２３５０は、ＷＲＩＴＥコマンドが示すＷＲＩＴＥ対象ボリュームのＨＡボリュームペア構成が、ＨＡマルチターゲット構成（ＨＡ−ＭＬＴ）か否かを判定する。データ入出力処理プログラム２３５０は、当該判定のため、ボリュームコピーペア管理テーブル２３４０における、ペア種別欄２３４２を参照する。【００９３】
ステップＳ１０２の判定結果がＹｅｓの場合、データ入出力処理プログラム２３５０は、ステップＳ１０３へ進む。ステップＳ１０３が完了した後、データ入出力処理プログラム２３５０は、当該フローを終了する。ステップＳ１０３の詳細は、図１７を参照して後述する。【００９４】
ステップＳ１０２の判定結果がＮｏの場合、データ入出力処理プログラム２３５０は、ステップＳ１０４へ進む。ステップＳ１０４において、データ入出力処理プログラム２３５０は、ボリュームコピーペア管理テーブル２３４０を参照して、ＷＲＩＴＥ対象ボリュームコピーペア構成が、ＨＡカスケード構成（ＨＡ−ＣＡＳ）か否かを判定する。【００９５】
ステップＳ１０４の判定結果がＹｅｓの場合、データ入出力処理プログラム２３５０は、ステップＳ１０５へ進む。ステップＳ１０５が完了した後、データ入出力処理プログラム２３５０は、当該フローを終了する。ステップＳ１０５の詳細は、図１８を参照して後述する。【００９６】
ステップＳ１０４の判定結果がＮｏの場合、データ入出力処理プログラム２３５０は、ステップＳ１０６へ進む。ステップＳ１０６において、データ入出力処理プログラム２３５０は、ボリュームコピーペア管理テーブル２３４０を参照して、ＷＲＩＴＥ対象ボリュームが、単体ＨＡボリュームペア（Ｓ−ＨＡ）のＰＶＯＬか否かを判定する。単体ＨＡボリュームペアは、移行中ではないＨＡボリュームペアである。【００９７】
ステップＳ１０６の判定結果がＹｅｓの場合、つまり、アクセス先が単体ボリュームペアのＰＶＬである場合、データ入出力処理プログラム２３５０は、ステップＳ１０７へ進む。ステップＳ１０７において、データ入出力処理プログラム２３５０は、排他ロック処理を実行する。本例において、データ入出力処理プログラム２３５０は、アクセス先の物理ボリュームにおけるアクセス先アドレス領域について、排他ロックする。【００９８】
排他ロック処理は、ＷＲＩＴＥ対象データまたはＲＥＡＤ対象データに対するＷＲＩＴＥ／ＲＥＡＤ排他制御である。排他ロック処理におけるＷＲＩＴＥ／ＲＥＡＤ排他制御単位は、ＬＢＡ単位でも世いし、ボリューム単位でもよい。排他ロック状態の情報は、排他ロック管理テーブル２３９０において、排他制御単位で管理されている。排他ロック管理テーブル２３９０は、排他ロック処理及び排他ロック解除処理の度に更新される。【００９９】
ＷＲＩＴＥ対象データに対しては、他のライト及びリード禁止される。ＲＥＡＤ対象データに対しては、他のライトが禁止され、他のリードは禁止されても許可されていてもよい。他のリードを許可することでホスト計算機１０００への応答遅延を抑制する。この点は、他の例において同様である。【０１００】
ステップＳ１０８において、データ入出力処理プログラム２３５０は、ＷＲＩＴＥ対象ボリュームに対して、ライトデータを書き込む。ＷＲＩＴＥコマンドによるライトデータの対象ボリュームへの書き込みは、記憶デバイス２２００又はキャッシュメモリ２４００への書き込みを意味する。この点は他のＷＲＩＴＥ処理について同様である。【０１０１】
ステップＳ１０９において、データ入出力処理プログラム２３５０は、対応するＳＶＯＬがある物理ストレージ装置２０００へＷＲＩＴＥコマンドを転送する。データ入出力処理プログラム２３５０は、ボリュームコピーペア管理テーブル２３４０から、対応するＳＶＯＬを提供する物理ストレージ装置２０００の識別子を取得する。【０１０２】
ステップＳ１１０において、データ入出力処理プログラム２３５０は、上記ＳＶＯＬがある物理ストレージ装置２０００からのＷＲＩＴＥコマンド完了応答を受信する。ステップＳ１１１において、データ入出力処理プログラム２３５０は、当該ＷＲＩＴＥコマンドのために実行した排他ロックを解除し、排他ロック管理テーブル２３９０を更新する。【０１０３】
ステップＳ１１２において、データ入出力処理プログラム２３５０は、ホスト計算機１０００へ、ＷＲＩＴＥコマンド完了応答を送信し、当該フローを終了する。【０１０４】
ステップＳ１０６の判定結果がＮｏの場合、つまり、ＷＲＩＴＥコマンドの対象が単独ＨＡボリュームペアにおけるＳＶＯＬである場合、データ入出力処理プログラム２３５０は、ステップＳ１１３へ進む。【０１０５】
ステップＳ１１３において、データ入出力処理プログラム２３５０は、対応するＰＶＯＬがある物理ストレージ装置２０００へＷＲＩＴＥコマンドを転送する。データ入出力処理プログラム２３５０は、ボリュームコピーペア管理テーブル２３４０から、対応するＰＶＯＬを提供する物理ストレージ装置２０００及び当該物理ストレージ装置２０００におけるＳＶＯＬの識別子を取得する。【０１０６】
ステップＳ１１４において、データ入出力処理プログラム２３５０は、上記ＰＶＯＬがある物理ストレージ装置２０００からのＷＲＩＴＥコマンド完了応答を受信する。ステップＳ１１５において、データ入出力処理プログラム２３５０は、ＷＲＩＴＥ対象ボリューム、つまり、自装置が保持しているＳＶＯＬに対して、ライトデータを書き込む。【０１０７】
ステップＳ１１６において、データ入出力処理プログラム２３５０は、ホスト計算機１０００へＷＲＩＴＥコマンド完了応答を送信する。ステップＳ１１７において、データ入出力処理プログラム２３５０は、上記ＰＶＯＬがある物理ストレージ装置２０００へ、排他ロック解除コマンドを送信する。排他ロック解除コマンドは、例えば、ＷＲＩＴＥコマンドの識別子又は仮想ボリュームの指定アドレスを含む。【０１０８】
ステップＳ１０８において、データ入出力処理プログラム２３５０は、上記ＰＶＯＬがある物理ストレージ装置２０００から排他ロック解除コマンド完了応答を受信し、当該フローを終了する。【０１０９】
図２１は、ステップＳ１０７からステップＳ１１２までのシーケンスを示す。ステップＳ１０７からステップＳ１１２は、ホスト計算機１０００から単体ボリュームペアのＰＶＯＬへのＷＲＩＴＥコマンドのフローである。【０１１０】
図２１において、物理ストレージ装置１（２０００）は、物理ＶＯＬ１（仮想ＶＯＬ１１）２９００へのＷＩＲＩＴＥコマンドをホスト計算機１０００から受信する（Ｓ１０１）。物理ＶＯＬ１（２９００）は単体ボリュームペアのＰＶＯＬである。物理ストレージ装置１（２０００）は、指定領域を排他ロックし（Ｓ１０７）、ライトデータを書き込む（Ｓ１０８）。【０１１１】
その後、物理ストレージ装置１（２０００）は、対応するＳＶＯＬである物理ＶＯＬ２（２９００）を提供する物理ストレージ装置２（２０００）に、ＷＩＲＩＴＥコマンドを転送する（Ｓ１０９）。物理ストレージ装置２（２０００）は、排他ロックすることなく、転送されたライトデータを物理ＶＯＬ２（２９００）の指定領域に書き込み（Ｓ２１０１）、ライト完了応答を物理ストレージ装置１（２０００）に返す（Ｓ１１０）。ライト完了応答を受信した物理ストレージ装置１（２０００）は、排他ロックを解除し（Ｓ１１１）、ライト完了応答をホスト計算機１０００に返す（Ｓ１１２）。【０１１２】
図２２は、ステップＳ１１３からステップＳ１１８までのシーケンスを示す。ステップＳ１１３からステップＳ１１８は、ホスト計算機１０００から単体ボリュームペアのＳＶＯＬへのＷＲＩＴＥコマンドのフローである。【０１１３】
図２２において、物理ストレージ装置２（２０００）は、物理ＶＯＬ２（仮想ＶＯＬ１１）２９００へのＷＩＲＩＴＥコマンドをホスト計算機１０００から受信する（Ｓ１０１）。物理ＶＯＬ２（２９００）は単体ボリュームペアのＳＶＯＬである。物理ストレージ装置２（２０００）は、対応するＰＶＯＬ（物理ＶＯＬ１（２９００））を提供する物理ストレージ装置１（２０００）にＷＲＩＴＥコマンドを転送する（Ｓ１１３）。【０１１４】
物理ストレージ装置１（２０００）は、物理ＶＯＬ１（２９００）の指定領域を排他ロックし（Ｓ２２０１）、ライトデータを書き込む（Ｓ２２０２）。物理ストレージ装置１（２０００）は、ライト完了応答を物理ストレージ装置２（２０００）に返す（Ｓ１１４）。【０１１５】
ライト完了応答を受信した物理ストレージ装置２（２０００）は、ライトデータを物理ＶＯＬ２（２９００）に書き込み（Ｓ１１５）、ホスト計算機１０００にライト完了応答を返す（Ｓ１１６）。その後、物理ストレージ装置２（２０００）は、物理ストレージ装置１（２０００）に排他ロック解除コマンドを送信する（Ｓ１１７）。物理ストレージ装置１（２０００）は排他ロックを解除し（Ｓ２２０３）、排他ロック解除完了応答を物理ストレージ装置２（２０００）に返す（Ｓ１１８）。【０１１６】
図１７は、ステップＳ１０３のＨＡマルチターゲット構成におけるＷＲＩＴＥ処理のフローチャート例を示す。Ｓ２０１において、データ入出力処理プログラム２３５０は、ボリュームコピーペア管理テーブル２３４０を参照し、ＷＲＩＴＥ対象ボリュームが、第１ボリュームペアのＰＶＯＬか否かを判定する。優先度欄２３４７は、ボリュームペアが第１ボリュームペアか第２ボリュームペアかを示す。上述のように、本例において、第１ボリュームペアは移行前ボリュームペアである。【０１１７】
以下のステップにおいて、データ入出力処理プログラム２３５０は、ボリュームコピーペア管理テーブル２３４０を参照することで、ＷＲＩＴＥ対象ボリュームが属するボリュームペア（コピーペア）の優先度、及び、当該ボリュームがＰＶＯＬであるかＳＶＯＬであるかを判定することができる。【０１１８】
ステップＳ２０１の判定結果がＮｏの場合、データ入出力処理プログラム２３５０は、ステップＳ２０２へ進む。ステップＳ２０２は、第１ボリュームペアのＰＶＯＬへＷＲＩＴＥコマンドを転送する。ステップＳ２０２の詳細は後述する。【０１１９】
ステップＳ２０２が完了した後、データ入出力処理プログラム２３５０は、ステップＳ２０３へ進む。また、ステップＳ２０１の判定結果がＹｅｓの場合、データ入出力処理プログラム２３５０は、ステップＳ２０３へ進む。【０１２０】
ステップＳ２０３において、データ入出力処理プログラム２３５０は、ＷＲＩＴＥ対象ボリュームが、第１ボリュームペアのＰＶＯＬ又は第１ボリュームペアのＳＶＯＬであるか否かを判定する。【０１２１】
ステップＳ２０３の判定結果がＹｅｓの場合、つまり、ＷＲＩＴＥ対象ボリュームが第１ボリュームペアに含まれる場合、データ入出力処理プログラム２３５０は、ステップＳ２０４へ進む。ステップＳ２０４において、データ入出力処理プログラム２３５０は、ＷＲＩＴＥ対象ボリュームにおける排他ロック処理を実行し、ステップＳ２０５へ進む。【０１２２】
ステップＳ２０３の判定結果がＮｏの場合、つまり、ＷＲＩＴＥ対象ボリュームが新たな移行先ボリュームである場合、データ入出力処理プログラム２３５０は、ステップＳ２０５へ進む。ステップＳ２０５において、データ入出力処理プログラム２３５０は、ＷＲＩＴＥ対象ボリュームに対して、排他ロックを行うことなく、データを書き込む。【０１２３】
ステップＳ２０６において、データ入出力処理プログラム２３５０は、ＷＲＩＴＥ対象ボリュームが、第１ボリュームペアのＰＶＯＬであるか否かを判定する。ステップＳ２０６の判定結果がＹｅｓの場合、データ入出力処理プログラム２３５０は、ステップＳ２０７、ステップＳ２０８、ステップＳ２０９の順に進む。ステップＳ２０７及びステップＳ２０８の詳細は後述する。【０１２４】
ステップＳ２０６の判定結果がＮｏの場合、データ入出力処理プログラム２３５０は、ステップＳ２０９へ進む。ステップＳ２０９において、データ入出力処理プログラム２３５０は、ＷＲＩＴＥ対象ボリュームが第１ボリュームペアのＰＶＯＬ又は第１ボリュームペアのＳＶＯＬであるか否か判定する。ステップＳ２０９の判定結果がＹｅｓの場合、データ入出力処理プログラム２３５０は、ステップ２１０へ進む。【０１２５】
ステップＳ２１０において、データ入出力処理プログラム２３５０は、排他ロックを解除し、ステップＳ２１１へ進む。また、ステップＳ２０９の判定結果がＮｏの場合、データ入出力処理プログラム２３５０は、ステップ２１１へ進む。【０１２６】
ステップＳ２１１において、データ入出力処理プログラム２３５０は、ホスト計算機１０００へＷＲＩＴＥコマンド完了応答を送信する。ステップＳ２１２において、データ入出力処理プログラム２３５０は、ＷＲＩＴＥ対象ボリュームが第１ペアＰＶＯＬであるか否かを判定する。ステップＳ２１２の判定結果がＮｏの場合、データ入出力処理プログラム２３５０は、当該フローを終了する。【０１２７】
ステップＳ２１２の判定結果がＹｅｓの場合、データ入出力処理プログラム２３５０は、ステップＳ２１３において、第１ボリュームペアのＳＶＯＬがある物理ストレージ装置２０００へ排他ロック解除コマンドを送信する。【０１２８】
ステップＳ２１４で、データ入出力処理プログラム２３５０は、第１ボリュームペアのＳＶＯＬがある物理ストレージ装置２０００から、排他ロック解除コマンド完了応答を受信し、当該フローを終了する。【０１２９】
図１８は、図１７のフローチャートにおけるステップＳ２０２、ステップＳ２０７及びステップＳ２０８のフローチャートを示す。ステップＳ２０２、２０７、２０８は、ＨＡマルチターゲット構成における物理ストレージ装置間でのＷＲＩＴＥコマンド転送処理を示す。【０１３０】
ステップＳ３０１において、データ入出力処理プログラム２３５０は、ＷＲＩＴＥ対象ボリュームが第１ボリュームペアのＰＶＯＬまたは第１ペアのＳＶＯＬか否かを判定する。上述のように、データ入出力処理プログラム２３５０は、ボリュームコピーペア管理テーブル２３４０を参照することで、ＷＲＩＴＥ対象ボリュームが属するボリュームペア（コピーペア）の優先度、及び、当該ボリュームがＰＶＯＬであるかＳＶＯＬであるかを判定することができる。【０１３１】
ステップＳ３０１の判定結果がＹｅｓの場合、データ入出力処理プログラム２３５０は、ステップＳ３０２へ進む。ステップＳ３０２において、データ入出力処理プログラム２３５０は、ＷＲＩＴＥ対象領域の排他ロック処理を実行し、ステップＳ３０３へ進む。また、ステップＳ３０１の判定結果がＮｏの場合、データ入出力処理プログラム２３５０は、ステップＳ３０３へ進む。【０１３２】
ステップＳ３０３において、データ入出力処理プログラム２３５０は、ＷＲＩＴＥ対象ボリュームに対してデータを書き込み、ステップＳ３０４へ進む。ステップＳ３０４において、データ入出力処理プログラム２３５０は、ＷＲＩＴＥ対象ボリュームが第１ボリュームペアのＰＶＯＬであるか否かを判定する。【０１３３】
ステップＳ３０４の判定結果がＹｅｓの場合、データ入出力処理プログラム２３５０は、ステップＳ３０５、ステップＳ３０６、ステップＳ３０７の順に進む。【０１３４】
ステップＳ３０５において、データ入出力処理プログラム２３５０は、第１ボリュームペアのＳＶＯＬがある物理ストレージ装置２０００へＷＲＩＴＥコマンドを転送する。第１ボリュームペアのＳＶＯＬがある物理ストレージ装置２０００は、図１８のＷＲＩＴＥコマンド転送処理を実行する。【０１３５】
ステップＳ３０６において、データ入出力処理プログラム２３５０は、第２ボリュームペアのＳＶＯＬがある物理ストレージ装置２０００へ、ＷＲＩＴＥコマンドを転送する。第２ボリュームペアのＳＶＯＬがある物理ストレージ装置２０００は、図１８のＷＲＩＴＥコマンド転送処理を実行する。【０１３６】
ステップＳ３０７において、データ入出力処理プログラム２３５０は、ＷＲＩＴＥ対象ボリュームが第１ボリュームペアのＰＶＯＬか否かを判定する。ステップＳ３０７の判定結果がＹｅｓの場合、データ入出力処理プログラム２３５０は、排他ロック解除処理を実行し、ステップＳ３０９へ進む。ステップＳ３０７の判定結果がＮｏの場合、データ入出力処理プログラム２３５０は、ステップＳ３０９へ進む。【０１３７】
ステップＳ３０９において、データ入出力処理プログラム２３５０は、ＷＲＩＴＥコマンド転送元物理ストレージ装置２０００へＷＲＩＴＥコマンド完了応答を送信し、ステップＳ３１３へ進む。【０１３８】
ステップＳ３１３において、データ入出力処理プログラム２３５０は、ＷＲＩＴＥ対象ボリュームが第１ボリュームペアのＳＶＯＬか否かを判定する。ステップＳ３１３の判定結果がＹｅｓの場合、データ入出力処理プログラム２３５０は、ＷＲＩＴＥコマンド転送元である、物理ＶＯＬ１（２９００）を提供する物理ストレージ装置１（２０００）からの排他ロック解除コマンドを待つ。【０１３９】
ステップＳ３１４において、データ入出力処理プログラム２３５０は、排他ロック解除コマンドを受信する。ステップＳ３１５において、データ入出力処理プログラム２３５０は、排他ロック処理を実行する。ステップＳ３１６において、データ入出力処理プログラム２３５０は、物理ストレージ装置１（２０００）に、排他ロック解除処理完了応答を送信し、当該フローを終了する。【０１４０】
ステップＳ３１３の判定結果がＹｅｓの場合、データ入出力処理プログラム２３５０は、ステップＳ３１０に進む。ステップＳ３１０において、データ入出力処理プログラム２３５０は、ＷＲＩＴＥコマンド転送元物理ストレージ装置２０００にあるボリュームが第１ボリュームペアのＳＶＯＬであるか否かを判定する。ステップＳ３１０の判定結果がＹｅｓの場合、データ入出力処理プログラム２３５０は、当該フローを終了する。【０１４１】
ステップＳ３１０の判定結果がＮｏの場合、ステップＳ３１１において、データ入出力処理プログラム２３５０は、物理ストレージ装置２（２０００）へ、排他ロック解除コマンドを送信する。その後、ステップＳ３１２において、データ入出力処理プログラム２３５０は、物理ストレージ装置２（２０００）から、排他ロック解除コマンド完了応答を受信し、当該フローを終了する。【０１４２】
図２５、図２６及び図２７は、図１７及び図１８のフローチャートに対応するシーケンスを示す。図２５はホスト計算機１０００から第１ボリュームペアのＰＶＯＬへのＷＲＩＴＥコマンドの処理シーケンスを示す。図２６はホスト計算機１０００から第１ボリュームペアのＳＶＯＬへのＷＲＩＴＥコマンドの処理シーケンスを示す。図２７はホスト計算機１０００から第２ボリュームペアのＳＶＯＬへのＷＲＩＴＥコマンドの処理シーケンスを示す。【０１４３】
図２５を参照して、第１ボリュームペアのＰＶＯＬへのＷＲＩＴＥコマンドの処理を説明する。物理ストレージ装置１（２０００）は、物理ＶＯＬ１（仮想ＶＯＬ１１）２９００へのＷＲＩＴＥコマンドを受信する（Ｓ１０１）。物理ＶＯＬ１（２９００）は、第１ボリュームペア及び第２ボリュームペアのＰＶＯＬである。物理ストレージ装置１（２０００）は、物理ＶＯＬ１（２９００）の指定アドレス領域を排他ロックし（Ｓ２０４）、ライトデータを書き込む（Ｓ２０５）。【０１４４】
次に、物理ストレージ装置１（２０００）は、ＷＲＩＴＥコマンドを、物理ＶＯＬ２（２９００）を提供する物理ストレージ装置２（２０００）に転送する（Ｓ２０７）。物理ＶＯＬ２（２９００）は、第１ボリュームペアのＳＶＯＬである。物理ストレージ装置２（２０００）は、物理ＶＯＬ２（２９００）の指定アドレス領域を排他ロックし（Ｓ３０２）、ライトデータを書き込む（Ｓ３０３）。その後、物理ストレージ装置２（２０００）は、物理ストレージ装置１（２０００）に、ＷＲＩＴＥコマンドの完了応答を送信する（Ｓ３０９）。【０１４５】
次に、物理ストレージ装置１（２０００）は、ＷＲＩＴＥコマンドを、物理ＶＯＬ３（２９００）を提供する物理ストレージ装置３（２０００）に転送する（Ｓ２０８）。物理ＶＯＬ３（２９００）は、第２ボリュームペアのＳＶＯＬである。物理ストレージ装置３（２０００）は、排他ロックを行うことなく、物理ＶＯＬ３（２９００）にライトデータを書き込む（Ｓ３０３）。その後、物理ストレージ装置３（２０００）は、物理ストレージ装置１（２０００）に、ＷＲＩＴＥコマンドの完了応答を送信する（Ｓ３０９）。【０１４６】
次に、物理ストレージ装置１（２０００）は、排他ロックを解除し（Ｓ２１０）、ホスト計算機１０００に、ＷＲＩＴＥコマンド完了応答を返す（Ｓ２１１）。次に、物理ストレージ装置１（２０００）は、物理ストレージ装置２（２０００）に排他ロック解除コマンドを送信し（Ｓ２１３）、物理ストレージ装置２は排他ロックを解除する（Ｓ３０８）。物理ストレージ装置１（２０００）は、その完了応答を受信する（Ｓ２１４）。【０１４７】
ホスト計算機１０００へのＷＲＩＴＥコマンド完了応答を返した後に、他の物理ストレージ装置２０００へ排他ロック解除コマンドを送信することで、ホスト計算機１０００への応答時間を短縮できる。他の物理ストレージ装置２０００から排他ロック解除コマンドの完了応答を受信した後に、ホスト計算機１０００へのＷＲＩＴＥコマンド完了応答を返してもよい。これは、他のシーケンス図において同様である。【０１４８】
図２６を参照して、第１ボリュームペアのＳＶＯＬへのＷＲＩＴＥコマンドの処理を説明する。物理ストレージ装置２（２０００）は、物理ＶＯＬ２（仮想ＶＯＬ１１）２９００へのＷＲＩＴＥコマンドを受信する（Ｓ１０１）。物理ストレージ装置２（２０００）は、ＷＲＩＴＥコマンドを物理ストレージ装置１（２０００）に転送する（Ｓ２０２）。【０１４９】
物理ストレージ装置１（２０００）は、物理ＶＯＬ１（２９００）の指定アドレス領域を排他ロックし（Ｓ３０２）、ライトデータを書き込む（Ｓ３０３）。次に、物理ストレージ装置１（２０００）は、ＷＲＩＴＥコマンドを、物理ストレージ装置２（２０００）に転送する（Ｓ３０５）。【０１５０】
物理ストレージ装置２（２０００）は、物理ＶＯＬ２（２９００）の指定アドレス領域を排他ロックし（Ｓ３０２）、ライトデータを書き込む（Ｓ３０３）。その後、物理ストレージ装置２（２０００）は、物理ストレージ装置１（２０００）に、ＷＲＩＴＥコマンドの完了応答を送信する（Ｓ３０９）。【０１５１】
次に、物理ストレージ装置１（２０００）は、ＷＲＩＴＥコマンドを、物理ＶＯＬ３（２９００）を提供する物理ストレージ装置３（２０００）に転送する（Ｓ３０６）。物理ストレージ装置３（２０００）は、排他ロックを行うことなく、物理ＶＯＬ３（２９００）にライトデータを書き込む（Ｓ３０３）。その後、物理ストレージ装置３（２０００）は、物理ストレージ装置１（２０００）に、ＷＲＩＴＥコマンドの完了応答を送信する（Ｓ３０９）。【０１５２】
次に、物理ストレージ装置１（２０００）は、排他ロックを解除し（Ｓ３０８）、ＷＲＩＴＥコマンド転送元である物理ストレージ装置２（２０００）に、ＷＲＩＴＥコマンド完了応答を返す（Ｓ３０９）。【０１５３】
物理ストレージ装置１（２０００）からＷＲＩＴＥコマンド完了応答を受信すると、物理ストレージ装置２（２０００）は、排他ロックを解除し（Ｓ２１０）、ホスト計算機１０００に、ＷＲＩＴＥコマンド完了応答を返す（Ｓ２１１）。【０１５４】
図２７を参照して、第２ボリュームペアのＳＶＯＬへのＷＲＩＴＥコマンドの処理を説明する。物理ストレージ装置３（２０００）は、物理ＶＯＬ３（仮想ＶＯＬ１１）２９００へのＷＲＩＴＥコマンドを受信する（Ｓ１０１）。物理ストレージ装置３（２０００）は、ＷＲＩＴＥコマンドを物理ストレージ装置１（２０００）に転送する（Ｓ２０２）。【０１５５】
物理ストレージ装置１（２０００）は、物理ＶＯＬ１（２９００）の指定アドレス領域を排他ロックし（Ｓ３０２）、ライトデータを書き込む（Ｓ３０３）。次に、物理ストレージ装置１（２０００）は、ＷＲＩＴＥコマンドを、物理ストレージ装置２（２０００）に転送する（Ｓ３０５）。【０１５６】
物理ストレージ装置２（２０００）は、物理ＶＯＬ２（２９００）の指定アドレス領域を排他ロックし（Ｓ３０２）、ライトデータを書き込む（Ｓ３０３）。その後、物理ストレージ装置２（２０００）は、物理ストレージ装置１（２０００）に、ＷＲＩＴＥコマンドの完了応答を送信する（Ｓ３０９）。【０１５７】
次に、物理ストレージ装置１（２０００）は、ＷＲＩＴＥコマンドを、物理ＶＯＬ３（２９００）を提供する物理ストレージ装置３（２０００）に転送する（Ｓ３０６）。物理ストレージ装置３（２０００）は、排他ロックを行うことなく、物理ＶＯＬ３（２９００）にライトデータを書き込む（Ｓ３０３）。その後、物理ストレージ装置３（２０００）は、物理ストレージ装置１（２０００）に、ＷＲＩＴＥコマンドの完了応答を送信する（Ｓ３０９）。【０１５８】
次に、物理ストレージ装置１（２０００）は、排他ロックを解除し（Ｓ３０８）、ＷＲＩＴＥコマンド転送元である物理ストレージ装置３（２０００）に、ＷＲＩＴＥコマンド完了応答を返す（Ｓ３０９）。【０１５９】
物理ストレージ装置１（２０００）からＷＲＩＴＥコマンド完了応答を受信すると、物理ストレージ装置３（２０００）は、ホスト計算機１０００に、ＷＲＩＴＥコマンド完了応答を返す（Ｓ２１１）。【０１６０】
物理ストレージ装置１（２０００）は、ＷＲＩＴＥコマンド完了応答を返した後、物理ストレージ装置２（２０００）に、排他ロック解除コマンドを送信する（Ｓ３１１）。物理ストレージ装置２（２０００）は、排他ロック解除コマンドを受信し（Ｓ３１４）、排他ロック解除処理を実行し（Ｓ３１５）、排他ロック解除コマンドの完了応答を物理ストレージ装置１（２０００）に返す（Ｓ３１６）。【０１６１】
図１９は、ホスト計算機１０００から物理ストレージ装置２０００へＲＥＡＤコマンドが発行されるときの、データ入出力処理プログラム２３５０の処理のフローチャート例を示す。以下の説明において、物理ボリュームからの読み出しは、記憶デバイス２２００又はキャッシュメモリ２４００からの読み出しを意味する。【０１６２】
ステップＳ４０１において、データ入出力処理プログラム２３５０は、ホストからＲＥＡＤコマンドを受信する。ステップＳ４０２において、データ入出力処理プログラム２３５０は、ＲＥＡＤ対象ボリュームが第２ボリュームペアのＳＶＯＬまたは単体ボリュームペアのＳＶＯＬか否かを判定する。データ入出力処理プログラム２３５０は、判定において、ボリュームコピーペア管理テーブル２３４０を参照する。【０１６３】
ステップＳ４０２の判定結果がＹｅｓの場合、データ入出力処理プログラム２３５０は、ステップＳ４０３において、ＲＥＡＤ対象ボリュームからデータを読み出し、ステップＳ４０７へ進む。【０１６４】
ステップＳ４０２の判定がＮｏの場合、データ入出力処理プログラム２３５０は、ステップＳ４０４で排他ロック処理を実行し、ステップＳ４０５でＲＥＡＤ対象ボリュームからデータを読み出す。ステップＳ４０６において、データ入出力処理プログラム２３５０は、排他ロック解除処理を実行し、ステップＳ４０７へ進む。ステップＳ４０７において、データ入出力処理プログラム２３５０は、ホスト計算機１０００へ、読み出したデータを含むＲＥＡＤコマンド完了応答を送信し、当該フローを終了する。【０１６５】
図２３、図２４、図２８、図２９及び図３０は、図１９のシーケンスを示す。図２３は単体ボリュームペアのＰＶＯＬへのＲＥＡＤコマンド処理のシーケンスを示す。図２４は単体ボリュームペアのＳＶＯＬへのＲＥＡＤコマンド処理のシーケンスを示す。図２８は第１ボリュームペアのＰＶＯＬへのＲＥＡＤコマンド処理のシーケンスを示す。図２９は第１ボリュームペアのＳＶＯＬへのＲＥＡＤコマンド処理のシーケンスを示す。図３０は第２ボリュームペアのＳＶＯＬへのＲＥＡＤコマンド処理のシーケンスを示す。【０１６６】
図２３において、物理ストレージ装置１（２０００）は、物理ＶＯＬ１（仮想ＶＯＬ１１）へのＲＥＡＤコマンドを受信する（Ｓ４０１）。物理ストレージ装置１（２０００）は、指定アドレス領域を排他ロックし（Ｓ４０４）、指定アドレス領域からリードデータを読み出す（Ｓ４０５）。物理ストレージ装置１（２０００）は、排他ロックを解除し（Ｓ４０６）、ホスト計算機１０００にリードデータを含むＲＡＤコマンド完了応答を返す（Ｓ４０７）。【０１６７】
図２４において、物理ストレージ装置２（２０００）は、物理ＶＯＬ２（仮想ＶＯＬ１１）へのＲＥＡＤコマンドを受信する（Ｓ４０１）。物理ストレージ装置２（２０００）は、排他ロックすることなく、指定アドレス領域からリードデータを読み出す（Ｓ４０３）。物理ストレージ装置２（２０００）は、ホスト計算機１０００に、リードデータを含むＲＡＤコマンド完了応答を返す（Ｓ４０７）。【０１６８】
図２８のシーケンスは図２３のシーケンスと同じである。図２９のシーケンスは、物理ストレージ装置１（２０００）に代えて物理ストレージ装置２（２０００）が処理を行う点を除き、図２３のシーケンスと同じである。図３０のシーケンスは、物理ＶＯＬ２（２９００）及び物理ストレージ装置２（２０００）が、物理ＶＯＬ３（２９００）及び物理ストレージ装置３（２０００）に変更されている点を除き、図２４のシーケンスと同じである。【０１６９】
本実施例によれば、ＨＡマルチターゲット構成のボリューム移行時に、ホストＩ／Ｏ無停止及び高可用性を維持することができる。【０１７０】
なお、上記例は、処理効率化のため、最後にライトデータが書き込まれるボリューム（最後ボリューム）に対して排他ロックを行わないが、最後ボリュームへの書き込みにおいても排他ロックを行ってもよい。例えば、排他ロックは、他の物理ストレージ装置２０００からのＷＲＩＴＥコマンドを受信した後に行われる。ボリューム移行時のリード処理は、非移行時のＨＡ単体ボリュームペアでのリード処理と同様でもよい。【０１７１】
上記例は、ボリュームペアの移行を行うが、３以上のボリュームからなるボリュームグループのボリューム移行に対しても、上記説明を適用することができる。上記説明は、３以上の物理ストレージ装置を含むストレージシステムに適用することができる。【０１７２】
上述のように、ボリューム移行時のライトデータの書き込み順序と非移行時の書き込み順序が一致することで、ストレージシステムの機能を効率的に構成することができる。移行時と非移行時の書き込み順序は異なっていてもよい。例えば上記例において、物理ＶＯＬ２と物理ＶＯＬ３の書き込み順序を入れ替えてもよい。これらは、他の実施例において同様である。
【実施例２】
【０１７３】
以下で、実施例２について説明する。主に実施例１との相違点を説明する。図３１は、本実施例のデータ移行（ボリューム移行）を示す。本実施例は、物理ＶＯＬ１（２９００）を物理ＶＯＬ３（２９００）に移行する。移行前後において、物理ＶＯＬ２（２９００）が共通である。図３１は、ボリューム移行における、ＨＡカスケード構成の概要を示す。【０１７４】
ＨＡカスケード構成は、一つのボリュームを一方のＨＡボリュームペアのＳＶＯＬ、かつ、もう一方のＨＡボリュームペアのＰＶＯＬとし、それらの三つのボリュームで二つのＨＡボリュームペアを構成する。【０１７５】
物理ＶＯＬ１（２９００）と物理ＶＯＬ２（２９００）は、ＨＡボリュームペア７１００を構成している。移行のため、まず、物理ＶＯＬ２（２９００）と物理ＶＯＬ３（２９００）で、ＨＡボリュームペア７２００が形成される。ＨＡボリュームペア７２００において、物理ＶＯＬ２はＰＶＯＬ、物理ＶＯＬ３はＳＶＯＬとする。移行において、ＰＶＯＬである物理ＶＯＬ２からＳＶＯＬである物理ＶＯＬ３にデータがコピーされる。【０１７６】
次に、ホスト計算機１０００及び物理ストレージ装置３（２０００）において、ホスト計算機１０００から物理ＶＯＬ３（２９００）へのパス８３００が定義される。物理ストレージ装置３（２０００）は、物理ＶＯＬ３（２９００）について、ホスト計算機１０００からの要求に対して、物理ＶＯＬ１（２９００）及び物理ＶＯＬ２（２９００）と同様に、仮想ＶＯＬ１１（３９００）の情報を返す。【０１７７】
次に、ホスト計算機１０００及び物理ストレージ装置１（２０００）において、ホスト計算機１０００から物理ＶＯＬ２へのパス８１００が削除される。さらに、物理ストレージ装置１（２０００）及び物理ストレージ装置２（２０００）は、ＨＡボリュームペア７１００を削除する。これにより、物理ストレージ装置２（２０００）の物理ＶＯＬ２（２９００）から物理ストレージ装置３（２０００）の物理ＶＯＬ３（２９００）への移行が完了する。【０１７８】
図３２は、ＨＡペアの物理ストレージ装置１（ＳＴ１）のＰＶＯＬ（ＶＯＬ１）を、物理ストレージ装置３（ＳＴ３）に移行する手順を示す。移行後の物理ボリュームは、物理ＶＯＬ３である。本実施例では、システム管理者が当該手順を実行する。なお、一部の符号を省略している。【０１７９】
ステップＢ‐０は、初期状態を示す。ホスト計算機１０００と、物理ＶＯＬ１、ＶＯＬ２との間にパスが定義されている。物理ＶＯＬ１、ＶＯＬ２は、ボリュームペアを構成している。物理ＶＯＬ１、ＶＯ２は、仮想ＶＯＬ１１の構成要素であり、ホスト計算機１０００は、仮想ＶＯＬ１１のアクセスのために、いずれの物理ＶＯＬ１、ＶＯＬにもアクセスすることができる。【０１８０】
ステップＢ‐１において、システム管理者からの指示に従って、物理ストレージ装置３は、物理ＶＯＬ３を作成する。システム管理者からの指示に従って、物理ストレージ装置２（ＳＴ２）及び物理ストレージ装置３は、物理ＶＯＬ２と物理ＶＯＬ３のＨＡボリュームペアを作成する。このとき、物理ＶＯＬ１、ＶＯＬ２及びＶＯＬ３はＨＡカスケード構成となる。【０１８１】
次に、ステップＢ‐２において、システム管理者からの指示に従って、ホスト計算機１０００及び物理ストレージ装置３は、ホスト計算機１０００から物理ＶＯＬ３へのパスをおいて定義する。物理ストレージ装置３は、ホストグループ管理テーブル２３８０に、ホストのＷＷＮ、ポートＩＤ、ＶＯＬ３のボリュームＩＤの情報を追加する。【０１８２】
次に、ステップＢ‐３において、システム管理者は、ホスト計算機１０００から物理ＶＯＬ１へのパスを、ホスト計算機１０００及び物理ストレージ装置１において削除する。物理ストレージ装置１は、ホストグループ管理テーブル２３８０から、ホストのＷＷＮ、ポートＩＤ、ＶＯＬ２のボリュームＩＤの情報を削除する。【０１８３】
次に、ステップＢ‐４において、システム管理者からの指示に従って、物理ストレージ装置１及び物理ストレージ装置２は、物理ＶＯＬ１と物理ＶＯＬ２ＨＡペアを削除し、さらに、物理ストレージ装置１が、物理ＶＯＬ１の仮想ＩＤを削除する。【０１８４】
図３３は、図１６おけるステップＳ１０５のＨＡカスケード構成におけるＷＲＩＴＥ処理のフローチャート例を示す。まず、ステップＳ６０１において、データ入出力処理プログラム２３５０は、ボリュームコピーペア管理テーブル２３４０を参照して、ＷＲＩＴＥ対象ボリュームが第１ボリュームペアのＰＶＯＬか否かを判定する。【０１８５】
ステップＳ６０１の判定結果がＮｏの場合、データ入出力処理プログラム２３５０は、ステップＳ６０２へ進む。ステップＳ６０２において、データ入出力処理プログラム２３５０は、ボリュームコピーペア管理テーブル２３４０を参照して、ＷＲＩＴＥ対象ボリュームが第１ボリュームペアのＳＶＯＬか否かを判定する。【０１８６】
ステップＳ６０２の判定結果がＹｅｓの場合、データ入出力処理プログラム２３５０は、ステップＳ６０３、ステップＳ６０５の順に進む。ステップＳ６０３の詳細は後述する。ステップＳ６０２の判定結果がＮｏの場合、データ入出力処理プログラム２３５０は、ステップＳ６０４、ステップＳ６０６の順に進む。ステップＳ６０４の詳細は後述する。【０１８７】
ステップＳ６０１の判定結果がＹｅｓの場合、データ入出力処理プログラム２３５０は、ステップＳ６０５へ進む。ステップＳ６０５において、データ入出力処理プログラム２３５０は、排他ロック処理を実行する。【０１８８】
ステップＳ６０６において、データ入出力処理プログラム２３５０は、ＷＲＩＴＥ対象ボリュームへライトデータを書き込む。ステップＳ６０７において、データ入出力処理プログラム２３５０は、ボリュームコピーペア管理テーブル２３４０を参照して、ＷＲＩＴＥ対象ボリュームが第１ボリュームペアのＰＶＯＬか否かを判定する。【０１８９】
ステップＳ６０７の判定結果がＹｅｓの場合、データ入出力処理プログラム２３５０は、ステップＳ６０９、ステップＳ６１１の順に進む。ステップＳ６０９の詳細は後述する。ステップＳ６０７の判定結果がＮｏの場合、データ入出力処理プログラム２３５０は、ステップＳ６０８へ進む。【０１９０】
ステップＳ６０８において、データ入出力処理プログラム２３５０は、ボリュームコピーペア管理テーブル２３４０を参照して、ＷＲＩＴＥ対象ボリュームが第１ペアのＳＶＯＬか否かを判定する。【０１９１】
ステップＳ６０８の判定結果がＹｅｓの場合、データ入出力処理プログラム２３５０は、ステップＳ６１０、ステップＳ６１１の順に進む。ステップＳ６１０の詳細は後述する。ステップＳ６０８の判定結果がＮｏの場合、データ入出力処理プログラム２３５０は、ステップＳ６１２へ進む。ステップＳ６１１において、データ入出力処理プログラム２３５０は、排他ロック解除処理を実行する。【０１９２】
ステップＳ６１２において、データ入出力処理プログラム２３５０は、ホストへＷＲＩＴＥコマンド完了応答を送信する。ステップＳ６１３において、データ入出力処理プログラム２３５０は、ボリュームコピーペア管理テーブル２３４０を参照して、ＷＲＩＴＥ対象ボリュームが第１ボリュームペアのＰＶＯＬであるか否かを判定する。【０１９３】
ステップＳ６１３の判定結果がＹｅｓの場合、データ入出力処理プログラム２３５０は、当該フローを終了する。【０１９４】
ステップＳ６１３の判定結果がＮｏの場合、データ入出力処理プログラム２３５０は、ステップＳ６１４へ進む。ステップＳ６１４において、データ入出力処理プログラム２３５０は、ボリュームコピーペア管理テーブル２３４０を参照して、ＷＲＩＴＥ対象ボリュームが第１ボリュームペアのＳＶＯＬであるか否かを判定する。【０１９５】
ステップＳ６１４の判定結果がＹｅｓの場合、データ入出力処理プログラム２３５０は、ステップＳ６１５で第１ボリュームペアのＰＶＯＬがある物理ストレージ装置２０００へ排他ロック解除コマンドを送信する。次にステップＳ６１６で、データ入出力処理プログラム２３５０は、第１ボリュームペアのＰＶＯＬがある物理ストレージ装置２０００から排他ロック解除コマンド完了応答を受信し、当該フローを終了する。【０１９６】
ステップＳ６１４の判定結果がＮｏの場合、データ入出力処理プログラム２３５０は、ステップＳ６１７で第１ボリュームペアのＳＶＯＬがある物理ストレージ装置２０００へ排他ロック解除コマンドを送信し、次にステップＳ６１８で、第１ボリュームペアのＳＶＯＬがある物理ストレージ装置２０００から、排他ロック解除コマンド完了応答を受信し、当該フローを終了する。【０１９７】
図３４のフローチャートは、ステップＳ６０３、ステップＳ６０４、ステップＳ６０９及びステップＳ６１０のＨＡカスケード構成における物理ストレージ装置間ＷＲＩＴＥコマンド転送処理の例を示す。【０１９８】
ステップＳ７０１において、データ入出力処理プログラム２３５０は、ボリュームコピーペア管理テーブル２３４０を参照して、ＷＲＩＴＥ対象ボリュームが第１ペアのＰＶＯＬか否かを判定する。ステップＳ７０１の判定結果がＹｅｓの場合、データ入出力処理プログラム２３５０は、ステップＳ７０２へ進む。ステップＳ７０１の判定結果がＮｏの場合、データ入出力処理プログラム２３５０は、ステップＳ７０２へ進む。【０１９９】
ステップＳ７０２において、データ入出力処理プログラム２３５０は、ボリュームコピーペア管理テーブル２３４０を参照して、ＷＲＩＴＥ対象ボリュームが第１ボリュームペアのＳＶＯＬか否かを判定する。ステップＳ７０２の判定結果がＮｏの場合、ステップＳ７０６へ進む。ステップＳ７０２の判定結果がＹｅｓの場合、ステップＳ７０３へ進む。【０２００】
ステップＳ７０３において、データ入出力処理プログラム２３５０は、ボリュームコピーペア管理テーブル２３４０を参照して、ＷＲＩＴＥコマンド転送元が第１ペアのＰＶＯＬがある物理ストレージ装置２０００か否かを判定する。ステップＳ７０３の判定結果がＹｅｓの場合、データ入出力処理プログラム２３５０は、ステップＳ７０５へ進む。ステップＳ７０３の判定結果がＮｏの場合、データ入出力処理プログラム２３５０は、ステップＳ７０４、ステップＳ７０５の順に進む。【０２０１】
ステップＳ７０４において、データ入出力処理プログラム２３５０が第１ボリュームペアのＰＶＯＬがある物理ストレージ装置２０００へＷＲＩＴＥコマンドを転送し、第１ペアのＰＶＯＬがある物理ストレージ装置２０００が、図３４のＷＲＩＴＥコマンド転送処理を実行する。【０２０２】
ステップＳ７０５において、データ入出力処理プログラム２３５０は、排他ロック処理を実行する。ステップＳ７０６において、データ入出力処理プログラム２３５０は、ＷＲＩＴＥ対象ボリュームに対してライトデータを書き込む。【０２０３】
ステップＳ７０７において、データ入出力処理プログラム２３５０は、ボリュームコピーペア管理テーブル２３４０を参照して、ＷＲＩＴＥ対象ボリュームが第１ボリュームペアのＳＶＯＬであり、かつ、ＷＲＩＴＥコマンド転送元が第１ボリュームペアのＳＶＯＬがある物理ストレージ装置２０００であるか否かを判定する。【０２０４】
ステップＳ７０７の判定結果がＹｅｓの場合、ステップＳ７０８、ステップＳ７０９、ステップＳ７１０の順に進む。ステップＳ７０８において、データ入出力処理プログラム２３５０は、第２ボリュームペアのＳＶＯＬがある物理ストレージ装置２０００へＷＲＩＴＥコマンドを転送し、第２ボリュームペアのＳＶＯＬがある物理ストレージ装置２０００が、図３４のＷＲＩＴＥコマンド転送処理を実行する。【０２０５】
ステップＳ７０９において、データ入出力処理プログラム２３５０は、排他ロック解除処理を実行し、ステップＳ７１０へ進む。ステップＳ７１０において、データ入出力処理プログラム２３５０は、ＷＲＩＴＥコマンド転送元物理ストレージ装置２０００へ、ＷＲＩＴＥコマンド完了応答を送信する。【０２０６】
ステップ７１１において、データ入出力処理プログラム２３５０は、ボリュームコピーペア管理テーブル２３４０を参照して、ＷＲＩＴＥ対象ボリュームが第１ペアのＰＶＯＬか否かを判定する。ステップ７１１の判定結果がＮｏの場合、データ入出力処理プログラム２３５０は当該フローを終了する。ステップ７１１の判定結果がＹｅｓの場合、データ入出力処理プログラム２３５０は、ステップＳ７１３に進む。【０２０７】
ステップＳ７０７の判定結果がＮｏの場合、データ入出力処理プログラム２３５０は、ステップＳ７１２に進む。ステップＳ７１２において、データ入出力処理プログラム２３５０は、ＷＲＩＴＥコマンド転送元物理ストレージ装置２０００へ、ＷＲＩＴＥコマンド完了応答を送信する。【０２０８】
ステップＳ７１３において、データ入出力処理プログラム２３５０は、他の物理ストレージ装置２０００から、排他ロック解除コマンドを受信し、ステップＳ７１４において排他ロック解除処理を実行する。【０２０９】
ステップ７１５において、データ入出力処理プログラム２３５０は、ボリュームコピーペア管理テーブル２３４０を参照して、ＷＲＩＴＥ対象ボリュームが、第１ボリュームペアのＳＶＯＬかつ第２ボリュームペアのＰＶＯＬであるか判定する。ステップＳ７１５の判定結果がＮｏである場合、ステップＳ７１８において、データ入出力処理プログラム２３５０は、排他ロック解除コマンド完了応答を、当該コマンドの送信元に返し、当該フローを終了する。【０２１０】
ステップＳ７１５の判定結果がＹｅｓである場合、ステップＳ７１６において、データ入出力処理プログラム２３５０は、第１ボリュームペアのＰＶＯＬがある物理ストレージ装置２０００に排他ロック解除コマンドを送信する。ステップＳ７１７において第１ボリュームペアのＰＶＯＬがある物理ストレージ装置２０００から排他ロック解除コマンド完了応答を受信すると、データ入出力処理プログラム２３５０は、ステップＳ７１８に進む。【０２１１】
図３５、図３６及び図３７は、図３３及び図３４のシーケンスを示す。図３５はホスト計算機１０００から第１ボリュームペアのＰＶＯＬへのＷＲＩＴＥコマンドの処理シーケンスを示す。図３６はホスト計算機１０００から第１ボリュームペアのＳＶＯＬへのＷＲＩＴＥコマンドの処理シーケンスを示す。図３７はホスト計算機１０００から第２ボリュームペアのＳＶＯＬへのＷＲＩＴＥコマンドの処理シーケンスを示す。【０２１２】
図３５において、物理ストレージ装置１（２０００）は、物理ＶＯＬ１（仮想ＶＯＬ１１）２９００へのＷＲＩＴＥコマンドを受信する（Ｓ１０１）。物理ＶＯＬ１（２９００）は、第１ボリュームペアのＰＶＯＬである。物理ストレージ装置１（２０００）は、物理ＶＯＬ１（２９００）の指定アドレス領域を排他ロックし（Ｓ６０５）、ライトデータを書き込む（Ｓ６０６）。【０２１３】
次に、物理ストレージ装置１（２０００）は、ＷＲＩＴＥコマンドを、物理ＶＯＬ２（２９００）を提供する物理ストレージ装置２（２０００）に転送する（Ｓ６０９）。物理ＶＯＬ２（２９００）は、第１ボリュームペアのＳＶＯＬであり、かつ、第２ボリュームペアのＰＶＯＬである。【０２１４】
物理ストレージ装置２（２０００）は、物理ＶＯＬ２（２９００）の指定アドレス領域を排他ロックし（Ｓ７０５）、ライトデータを書き込む（Ｓ７０６）。次に、物理ストレージ装置２（２０００）は、ＷＲＩＴＥコマンドを、物理ＶＯＬ３（２９００）を提供する物理ストレージ装置３（２０００）に転送する（Ｓ７０８）。物理ＶＯＬ３（２９００）は、第２ボリュームペアのＳＶＯＬでる。【０２１５】
物理ストレージ装置３（２０００）は、排他ロックすることなく、物理ＶＯＬ３（２９００）の指定アドレス領域に、ライトデータを書き込む（Ｓ７０６）。次に、物理ストレージ装置３（２０００）は、物理ストレージ装置２（２０００）に、ＷＲＩＴＥコマンドの完了応答を送信する（Ｓ７１０）。【０２１６】
物理ストレージ装置３（２０００）からＷＲＩＴＥコマンドの完了応答を受信すると、物理ストレージ装置２（２０００）は排他ロックを解除し（Ｓ７０９）、ＷＲＩＴＥコマンド転送元である物理ストレージ装置１（２０００）に、ＷＲＩＴＥコマンドの完了応答を送信する（Ｓ７１０）。【０２１７】
物理ストレージ装置２（２０００）からＷＲＩＴＥコマンドの完了応答を受信すると、物理ストレージ装置１（２０００）は、排他ロックを解除し（Ｓ６１１）、ＷＲＩＴＥコマンドの完了応答をホスト計算機１０００に返す（Ｓ６１２）。【０２１８】
図３６において、物理ストレージ装置２（２０００）は、物理ＶＯＬ２（仮想ＶＯＬ１１）２９００へのＷＲＩＴＥコマンドを受信する（Ｓ１０１）。物理ストレージ装置２（２０００）は、ＷＲＩＴＥコマンドを物理ストレージ装置１（２０００）に転送する（Ｓ６０３）。【０２１９】
物理ストレージ装置１（２０００）は、物理ＶＯＬ１（２９００）の指定アドレス領域を排他ロックし（Ｓ７０５）、ライトデータを書き込む（Ｓ７０６）。次に、物理ストレージ装置１（２０００）は、ＷＲＩＴＥコマンドの完了応答を、物理ストレージ装置２（２０００）に送信する（Ｓ７１０）。物理ストレージ装置２（２０００）は、物理ＶＯＬ２（２９００）の指定アドレス領域を排他ロックし（Ｓ６０５）、ライトデータを書き込む（Ｓ６０６）。【０２２０】
次に、物理ストレージ装置２（２０００）は、ＷＲＩＴＥコマンドを、物理ＶＯＬ３（２９００）を提供する物理ストレージ装置３（２０００）に転送する（Ｓ６１０）。物理ストレージ装置３（２０００）は、排他ロックを行うことなく、物理ＶＯＬ３（２９００）にライトデータを書き込む（Ｓ７０６）。その後、物理ストレージ装置３（２０００）は、物理ストレージ装置２（２０００）に、ＷＲＩＴＥコマンドの完了応答を送信する（Ｓ７１０）。【０２２１】
物理ストレージ装置３（２０００）からＷＲＩＴＥコマンドの完了応答を送信すると、物理ストレージ装置２（２０００）は、排他ロックを解除し（Ｓ６１１）、ＷＲＩＴＥコマンドの完了応答をホスト計算機１０００に返す（Ｓ６１２）。【０２２２】
次に、物理ストレージ装置２（２０００）は、排他ロック解除コマンドを物理ストレージ装置１（２０００）に送信する（Ｓ６１５）。物理ストレージ装置１（２０００）は、排他ロックコマンドを受信し（Ｓ７１３）、排他ロックを解除する（Ｓ７１４）。物理ストレージ装置１（２０００）は、物理ストレージ装置２（２０００）に、排他ロック解除コマンドの完了応答を返す（Ｓ７１８）。【０２２３】
図３７において、物理ストレージ装置３（２０００）は、物理ＶＯＬ３（仮想ＶＯＬ１１）２９００へのＷＲＩＴＥコマンドを受信する（Ｓ１０１）。物理ストレージ装置３（２０００）は、ＷＲＩＴＥコマンドを物理ストレージ装置２（２０００）に転送する（Ｓ６０４）。物理ストレージ装置３（２０００）からＷＲＩＴＥコマンドを受信すると、物理ストレージ装置２（２０００）は、物理ストレージ装置１（２０００）にＷＲＩＴＥコマンドを転送する（Ｓ７０４）。【０２２４】
物理ストレージ装置１（２０００）は、物理ＶＯＬ１（２９００）の指定アドレス領域を排他ロックし（Ｓ７０５）、ライトデータを書き込む（Ｓ７０６）。次に、物理ストレージ装置１（２０００）は、ＷＲＩＴＥコマンドの完了応答を、物理ストレージ装置２（２０００）に送信する（Ｓ７１０）。【０２２５】
物理ストレージ装置２（２０００）は、物理ＶＯＬ２（２９００）の指定アドレス領域を排他ロックし（Ｓ７０５）、ライトデータを書き込む（Ｓ７０６）。次に、物理ストレージ装置２（２０００）は、ＷＲＩＴＥコマンドの完了応答を、物理ストレージ装置３（２０００）に送信する（Ｓ７１２）。【０２２６】
ＷＲＩＴＥコマンドの完了応答を物理ストレージ装置２（２０００）から受信した物理ストレージ装置３（２０００）は、物理ＶＯＬ３（２９００）の指定領域にライトデータを書き込み（Ｓ６０６）、ホスト計算機１０００にＷＲＩＴＥコマンドの完了応答を返す（Ｓ６１２）。【０２２７】
次に、物理ストレージ装置３（２０００）は、排他ロック解除コマンドを物理ストレージ装置２（２０００）に送信する（Ｓ６１７）。物理ストレージ装置２（２０００）は排他ロック解除コマンドを受信し（Ｓ７１３）、排他ロックを解除する（Ｓ７１４）。次に、物理ストレージ装置２（２０００）は、物理ストレージ装置１（２０００）に、排他ロック解除コマンドを送信する（Ｓ７１６）。【０２２８】
物理ストレージ装置１（２０００）は、排他ロック解除コマンドを受信し（Ｓ７１３）、排他ロックを解除する（Ｓ７１４）。物理ストレージ装置１（２０００）は、物理ストレージ装置２（２０００）に、排他ロック解除コマンドの完了応答を返す（Ｓ７１８）。【０２２９】
物理ストレージ装置１（２０００）から排他ロック解除コマンドの完了応答を受信すると、物理ストレージ装置２（２０００）は、物理ストレージ装置３（２０００）に、排他ロック解除コマンドの完了応答を返す（Ｓ７１８）。【０２３０】
本実施例によれば、ＨＡカスケード構成でのボリューム移行時に、ホストＩ／Ｏ無停止及び高可用性を維持することができる。なお、ボリューム移行時のＲＥＡＤコマンド処理は実施例１と同様であり、説明を省略する。
【実施例３】
【０２３１】
以下において、実施例３を説明する。本実施例は、ＨＡマルチターゲット構成における、Ｉ／Ｏスイッチングボリュームを使用したボリューム移行を説明する。図３８Ａ及び図３８Ｂは、ＨＡペアの物理ストレージ装置２（ＳＴ２）のＳＶＯＬ（物理ＶＯＬ２）を、物理ストレージ装置３（ＳＴ３）に移行する手順を示す。移行後の物理ボリュームは、物理ＶＯＬ３である。本実施例では、システム管理者が当該手順を実行する。なお、図３８Ａ及び３８Ｂにおいて一部の符号を省略している。【０２３２】
ステップＣ‐０は、ステップＣの初期状態を示す。ホスト計算機１０００と、物理ＶＯＬ１、ＶＯＬ２との間にパスが定義されている。物理ＶＯＬ１、ＶＯＬ２は、ボリュームペアを構成している。物理ＶＯＬ１、物理ＶＯＬ２は、仮想ＶＯＬ１１の構成要素であり、ホスト計算機１０００は、仮想ＶＯＬ１１のアクセスのために、いずれの物理ＶＯＬ１、ＶＯＬにもアクセスすることができる。【０２３３】
ステップＣ‐１において、システム管理者からの指示に従って、物理ストレージ装置３は、物理ＶＯＬ２に関連付けられたＩ／Ｏスイッチングボリューム（ＳＷＶＯＬ）（２９００）を作成する。ホスト計算機１０００からＳＷＶＯＬへのＩ／Ｏ要求は、ＳＷＶＯＬに関連付けられた物理ボリュームへ転送される。また、システム管理者からの指示に従って、物理ストレージ装置３は、ＳＷＶＯＬへの仮想ＩＤを付与する。【０２３４】
ＳＷＶＯＬからＳＷＶＯＬに関連付けられた物理ボリュームへ転送されたＩ／Ｏ要求の処理と、ホスト計算機から直接当該物理ボリュームへ発行されるＩ／Ｏ要求の処理は、Ｉ／Ｏ要求がＳＷＶＯＬを経由する以外、同じである。例えば、ステップＣ‐３において、ホスト計算機１０００からＳＷＶＯＬを経由し物理ＶＯＬ２へ転送されるＩ／Ｏ要求の処理、ホスト計算機１０００から物理ＶＯＬ２へ発行されるＩ／Ｏ要求の処理と、Ｉ／Ｏ要求がＳＶＯＬ経由する部分を除いて同じである。【０２３５】
ステップＣ‐２において、システム管理者からに指示に従って、ホスト計算機１０００及び物理ストレージ装置３は、ホスト計算機１０００からＳＷＶＯＬへのパス定義を定義する。ステップＣ‐３において、システム管理者からの指示に従って、物理ストレージ装置１及び物理ストレージ装置３は、ＶＯＬ１とＶＯＬ３のＨＡペア作成を実施する。【０２３６】
ステップＣ‐４において、システム管理者からの指示に従って、物理ストレージ装置３は、物理ＶＯＬ３への仮想ＩＤを付与する。さらに、ホスト計算機１０００及び物理ストレージ装置３は、ホスト計算機１０００から物理ＶＯＬ３へのパスを定義し、ＳＷＶＯＬを削除する。【０２３７】
ステップＣ‐５において、システム管理者からの指示に従って、物理ストレージ装置２は、物理ＶＯＬ３に関連付けられたＳＷＶＯＬを作成し、当該ＳＷＶＯＬへ仮想ＩＤを付する。ホスト計算機１０００及び物理ストレージ装置２は、ホスト計算機１０００からＳＷＶＯＬへのパスを定義し、ホスト計算機１０００からＶＯＬ２へのパスを削除し、そして、物理ＶＯＬ２の仮想ＩＤを削除する。【０２３８】
ステップＣ‐６において、システム管理者からの指示に従って、ホスト計算機１０００及び物理ストレージ装置２は、ホスト計算機１０００からＳＷＶＯＬへのパスを削除する。ステップＣ‐７において、システム管理者からの指示に従って、物理ストレージ装置２は、ＳＷＶＯＬを削除し、物理ストレージ装置１、２は、物理ＶＯＬ１と物理ＶＯＬ２のＨＡペアを削除する。【０２３９】
本実施例によれば、Ｉ／Ｏスイッチングボリュームを使用することによって、ストレージ装置における物理ボリュームの管理と、物理ストレージ装置とホスト計算機との間のパス管理とを独立に行うことができる。上記例のように移行後の新物理ボリュームと移行後に削除される移行前物理ボリュームの双方のＩ／Ｏスイッチングボリュームを用意することが好ましいが、一方のみでもよい。
【実施例４】
【０２４０】
以下において、実施例４について説明する。本実施例は、ＨＡカスケード構成における、Ｉ／Ｏスイッチングボリュームを使用したボリューム移行を説明する。主に実施例３との相違点を説明する。図３９Ａ及び図３９Ｂは、ＨＡペアの物理ストレージ装置１（ＳＴ１）のＰＶＯＬ（ＶＯＬ１）を、物理ストレージ装置３（ＳＴ３）に移行する手順を示す。移行後の物理ボリュームは、物理ＶＯＬ３である。本実施例では、システム管理者が上記手順を実行する。なお、図３９Ａ及び３９Ｂにおいて一部の符号を省略している。【０２４１】
ステップＤ‐０は、ステップＤの初期状態を示す。ホスト計算機１０００と、物理ＶＯＬ１、ＶＯＬ２との間にパスが定義されている。物理ＶＯＬ１、ＶＯＬ２は、ボリュームペアを構成している。【０２４２】
ステップＤ‐１において、システム管理者からの指示に従って、物理ストレージ装置３は、物理ＶＯＬ２に関連付けられたＳＷＶＯＬを作成し、ＳＷＶＯＬへ仮想ＩＤを付与する。【０２４３】
ステップＤ‐２において、システム管理者からの指示に従って、ホスト計算機１０００及び物理ストレージ装置３は、ホスト計算機１０００からＳＷＶＯＬへのパスを定義する。ステップＤ‐３において、システム管理者からの指示に従って、物理ストレージ装置３は、物理ＶＯＬ３を作成し、物理ストレージ装置２、３は、物理ＶＯＬ２と物理ＶＯＬ３のＨＡペアを作成する。【０２４４】
ステップＤ‐４において、システム管理者からの指示に従って、物理ストレージ装置３は、物理ＶＯＬ３へ仮想ＩＤを付与する。ホスト計算機１０００及び物理ストレージ装置３は、ホスト計算機１０００からＶＯＬ３へのパスを定義する。物理ストレージ装置３は、ＳＷＶＯＬを削除する。【０２４５】
ステップＤ‐５において、システム管理者からの指示に従って、物理ストレージ装置１（ＳＴ１）は、物理ＶＯＬ２に関連付けられたＳＷＶＯＬを作成し、ＳＷＶＯＬへ仮想ＩＤを付与する。ホスト計算機１０００及び物理ストレージ装置１は、ホスト計算機１０００からＳＷＶＯＬへのパスを定義し、ホスト計算機１０００から物理ＶＯＬ１へのパスを削除し、物理ＶＯＬ１の仮想ＩＤを削除する。【０２４６】
ステップＤ‐６において、システム管理者からの指示に従って、ホスト計算機１０００及び物理ストレージ装置１は、ホスト計算機１０００からＳＷＶＯＬへのパスを削除する。ステップＤ‐７において、システム管理者からの指示に従って、物理ストレージ装置１はＳＷＶＯＬを削除し、物理ストレージ装置１、２は、物理ＶＯＬ１と物理ＶＯＬ２のＨＡペアを削除する。【０２４７】
本実施例によれば、Ｉ／Ｏスイッチングボリュームを使用することによって、ストレージ装置における物理ボリュームの管理と、物理ストレージ装置とホスト計算機との間のパス管理とを独立に行うことができる。上記例のように移行後の新物理ボリュームと移行後に削除される移行前物理ボリュームの双方のＩ／Ｏスイッチングボリュームを用意することが好ましいが、一方のみでもよい。
【実施例５】
【０２４８】
以下において、実施例５について説明する。図４０は、ＨＡペアの物理ストレージ装置２（ＳＴ２）のＳＶＯＬ（ＶＯＬ２）を、同じ物理ストレージ装置２の別ボリューム（ＶＯＬ３）と入れ替える手順を示す。本実施例では、システム管理者が当該手順を実行する。なお、図４０において一部の符号を省略している。【０２４９】
ステップＥ‐０は、ステップＥの初期状態を示す。ホスト計算機１０００と、物理ＶＯＬ１、ＶＯＬ２との間にパスが定義されている。物理ＶＯＬ１、ＶＯＬ２は、ボリュームペアを構成している。ステップＥ‐１において、システム管理者からの指示に従って、物理ストレージ装置２は、物理ＶＯＬ３を作成し、物理ＶＯＬ１と物理ＶＯＬ３のＨＡペアを作成する。【０２５０】
ステップＥ‐２において、システム管理者からの指示に従って、物理ストレージ装置２は、ＶＯＬ３へ仮想ＩＤを付与する。ホスト計算機１０００及び物理ストレージ装置２は、ホスト計算機１０００から物理ＶＯＬ３へのパスを定義し、ホスト計算機１０００から物理ＶＯＬ２へのパスを削除し、物理ＶＯＬ２の仮想ＩＤを削除する。ステップＥ‐３において、システム管理者からの指示に従って、物理ストレージ装置１、２は、物理ＶＯＬ１と物理ＶＯＬ２のＨＡペアを削除する。【０２５１】
本実施例によれば、同一物理ストレージ装置内でＡｃｔｉｖｅ−Ａｃｔｉｖｅ型ＨＡボリュームペアのボリューム移行を行い、当該移行時にホストＩ／Ｏ無停止及び高可用性を維持することができる。【０２５２】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。【０２５３】
また、上記の各構成・機能・処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード等の記録媒体に置くことができる。
【図１】
2015162674.tif 000003
【図２】
2015162674.tif 000004
【図３】
2015162674.tif 000005
【図４】
2015162674.tif 000006
【図５】
2015162674.tif 000007
【図６Ａ】
2015162674.tif 000008
【図６Ｂ】
2015162674.tif 000009
【図７】
2015162674.tif 000010
【図８】
2015162674.tif 000011
【図９Ａ】
2015162674.tif 000012
【図９Ｂ】
2015162674.tif 000013
【図１０】
2015162674.tif 000014
【図１１】
2015162674.tif 000015
【図１２】
2015162674.tif 000016
【図１３】
2015162674.tif 000017
【図１４】
2015162674.tif 000018
【図１５】
2015162674.tif 000019
【図１６】
2015162674.tif 000020
【図１７】
2015162674.tif 000021
【図１８】
2015162674.tif 000022
【図１９】
2015162674.tif 000023
【図２０】
2015162674.tif 000024
【図２１】
2015162674.tif 000025
【図２２】
2015162674.tif 000026
【図２３】
2015162674.tif 000027
【図２４】
2015162674.tif 000028
【図２５】
2015162674.tif 000029
【図２６】
2015162674.tif 000030
【図２７】
2015162674.tif 000031
【図２８】
2015162674.tif 000032
【図２９】
2015162674.tif 000033
【図３０】
2015162674.tif 000034
【図３１】
2015162674.tif 000035
【図３２】
2015162674.tif 000036
【図３３】
2015162674.tif 000037
【図３４】
2015162674.tif 000038
【図３５】
2015162674.tif 000039
【図３６】
2015162674.tif 000040
【図３７】
2015162674.tif 000041
【図３８Ａ】
2015162674.tif 000042
【図３８Ｂ】
2015162674.tif 000043
【図３９Ａ】
2015162674.tif 000044
【図３９Ｂ】
2015162674.tif 000045
【図４０】
2015162674.tif 000046
【手続補正書】
【提出日】平成28年8月24日(2016.8.24)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステムに関し、特に、ストレージシステムにおけるボリュームグループの移行に関する。
【背景技術】
【０００２】
背景技術として、特許文献１がある。特許文献１は、複数物理ストレージ装置から構成される仮想ストレージ装置において、物理ストレージ装置間でデータ移行を行う際に、サーバが認識するストレージ装置情報及びボリューム情報の変更を不要にし、ホストＩ／Ｏ無停止のままでのデータ移行を実現する技術を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許出願公開第２００８／００３４００５号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
エンタプライズクラスのストレージシステムでは、ストレージ装置のクラスタ構成によるＨｉｇｈ  Ａｖａｉｌａｂｉｌｉｔｙ（ＨＡ）機能が求められている。ＨＡ機能は、ストレージシステムの高可用性を実現する。ＨＡ構成は、二重化された系を有し、障害発生時には自動的に故障した系を切り離し、正常な系のみを用いて動作を継続する。
【０００５】
さらに、Ａｃｔｉｖｅ−Ａｃｔｉｖｅ型ＨＡ構成は、全ての系を稼動系として運用する。Ａｃｔｉｖｅ−Ａｃｔｉｖｅ型ＨＡ構成において、ストレージシステムは、ボリュームペアのいずれのＩ／Ｏアクセスも受け付ける。
【０００６】
Ａｃｔｉｖｅ−Ａｃｔｉｖｅ型ＨＡ構成のストレージシステムにおけるデータ移行では、ホストＩ／Ｏ無停止かつＡｃｔｉｖｅ−Ａｃｔｉｖｅ型ＨＡ構成を維持したまま、データを移行することが求められる。つまり、Ａｃｔｉｖｅ−Ａｃｔｉｖｅ型ＨＡ構成の高可用性を維持しながらのデータ移行が求められる。しかしながら、先行技術の範囲では、ＨＡ構成を解除しなければホストＩ／Ｏ無停止のデータ移行ができないため、データ移行中の高可用性を維持できない。
【課題を解決するための手段】
【０００７】
本発明の一態様は、移行前ボリュームグループから移行後ボリュームグループへの移行を行う複数ストレージ装置、を含むストレージシステムであって、前記複数ストレージ装置は、前記移行中において、前記移行前ボリュームグループ及び前記移行後ボリュームグループの複数ボリューム内の任意ボリュームへのホストからのライトコマンドを受け付け、前記複数ストレージ装置は、前記複数ボリュームのそれぞれに、予め定められた順番で、前記ライトコマンドのライトデータを書き込み、前記複数ストレージ装置における第１ストレージ装置は、前記複数ボリュームにおける最後において、最後ボリュームに前記ライトデータを書き込み、前記複数ストレージ装置において前記最後ボリュームと異なるボリュームを提供するストレージ装置は、前記異なるボリュームそれぞれにおいて、排他ロックを行ってから前記ライトデータを書き込み、前記最後ボリュームへの前記ライトデータの書き込み完了後に前記排他ロックを解除する。
【発明の効果】
【０００８】
本発明の一態様によれば、ストレージ装置のＨＡ構成において、ホストＩ／Ｏ無停止かつ可用性を維持しつつデータ移行を実現することができる。
【図面の簡単な説明】
【０００９】
【図１】実施例１において、ＨＡマルチターゲット構成におけるボリュームペア移行の概要を説明する図である。
【図２】実施例１において、計算機システムの構成例を示す図である。
【図３】実施例１において、ホスト計算機の構成例を示す図である。
【図４】実施例１において、物理ストレージ装置の構成例を示す図である。
【図５】実施例１において、物理ストレージ装置のメモリにおけるソフトウェア構成例を示す図である。
【図６Ａ】実施例１において、物理ストレージ装置におけるリソース管理テーブルの構成例を示す図である。
【図６Ｂ】実施例１において、物理ストレージにおけるホストグループ管理テーブルの構成例を示す図である。
【図７】実施例１において、物理ストレージ装置における仮想ストレージボックス管理テーブルの構成例を示す図である。
【図８】実施例１において、物理ストレージ装置における仮想ストレージ管理テーブルの構成例を示す図である。
【図９Ａ】実施例１において、物理ストレージ装置におけるボリュームコピーペア管理テーブルの構成例を示す図である。
【図９Ｂ】実施例１において、物理ストレージ装置における排他ロック管理テーブルの構成例を示す図である。
【図１０】実施例１において、管理計算機の構成例を示す図である。
【図１１】実施例１において、管理計算機におけるか仮想ストレージ管理テーブルの構成例を示す図である。
【図１２】実施例１において、管理計算機における仮想ストレージボックス管理テーブルの構成例を示す図である。
【図１３】実施例１において、管理計算機における仮想ストレージリソース管理テーブルの構成例を示す図である。
【図１４】実施例１において、移行先物理ストレージ装置Ｂにおけるボリュームコピーペア管理テーブルの構成例を示す図である。
【図１５】実施例１において、ＨＡボリューム移行ステップを示す図である。
【図１６】実施例１において、ホスト計算機から物理ストレージ装置へのＷＲＩＴＥコマンド処理例を示すフローチャートである。
【図１７】実施例１において、ホスト計算機から物理ストレージ装置へのＲＥＡＤコマンド処理例を示すフローチャートである。
【図１８】実施例１において、ＨＡ単体ボリュームペアにおけるホスト計算機からＰＶＯＬへのＷＲＩＴＥコマンド処理例を示すシーケンスである。
【図１９】実施例１において、ＨＡ単体ボリュームペアにおけるホスト計算機からＳＶＯＬへのＷＲＩＴＥコマンド処理例を示すシーケンスである。
【図２０】実施例１において、ＨＡ単体ボリュームペアにおけるホスト計算機からＰＶＯＬへのＲＥＡＤコマンド処理例を示すシーケンスである。
【図２１】実施例１において、ＨＡ単体ボリュームペアにおけるホスト計算機からＳＶＯＬへのＲＥＡＤコマンド処理例を示すシーケンスである。
【図２２】実施例１において、ＨＡマルチターゲット構成におけるホスト計算機から第１ペアのＰＶＯＬへのＷＲＩＴＥコマンド処理例を示すシーケンスである。
【図２３】実施例１において、ＨＡマルチターゲット構成におけるホスト計算機から第１ペアのＳＶＯＬへのＷＲＩＴＥコマンド処理例を示すシーケンスである。
【図２４】実施例１において、ＨＡマルチターゲット構成におけるホスト計算機から第２ペアのＳＶＯＬへのＷＲＩＴＥコマンド処理例を示すシーケンスである。
【図２５】実施例１において、ＨＡマルチターゲット構成におけるホスト計算機から第１ペアのＰＶＯＬへのＲＥＡＤコマンド処理例を示すシーケンスである。
【図２６】実施例１において、ＨＡマルチターゲット構成におけるホスト計算機から第１ペアのＳＶＯＬへのＲＥＡＤコマンド処理例を示すシーケンスである。
【図２７】実施例１において、ＨＡマルチターゲット構成におけるホスト計算機から第２ペアのＳＶＯＬへのＲＥＡＤコマンド処理例を示すシーケンスである。
【図２８】実施例２において、ＨＡカスケード構成における本発明の特徴を説明する図である。
【図２９】実施例２において、ＨＡボリューム移行ステップを示す図である。
【図３０】実施例２において、ＨＡカスケード構成におけるホスト計算機から第１ペアのＰＶＯＬへのＷＲＩＴＥコマンド処理例を示すシーケンスである。
【図３１】実施例２において、ＨＡカスケード構成におけるホスト計算機から第１ペアのＳＶＯＬへのＷＲＩＴＥコマンド処理例を示すシーケンスである。
【図３２】実施例２において、ＨＡカスケード構成におけるホスト計算機から第２ペアのＳＶＯＬへのＷＲＩＴＥコマンド処理例を示すシーケンスである。
【図３３Ａ】実施例３において、ＨＡボリュームペア移行ステップを示す図である。
【図３３Ｂ】実施例３において、ＨＡボリュームペア移行ステップを示す図である。
【図３４Ａ】実施例４において、ＨＡボリュームペア移行ステップを示す図である。
【図３４Ｂ】実施例４において、ＨＡボリュームペア移行ステップを示す図である。
【図３５】実施例５において、ＨＡボリュームペア移行ステップを示す図である。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して本発明の実施形態を説明する。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については同一の参照符号が付されている。
【実施例１】
【００１１】
以下に説明するストレージシステムは、Ａｃｔｉｖｅ−Ａｃｔｉｖｅ型ＨＡ構成を有する。ＨＡ構成は、二重化された系を有し、障害発生時には自動的に故障した系を切り離し、正常な系のみを用いて動作を継続するための自動障害回復機能を備える。Ａｃｔｉｖｅ−Ａｃｔｉｖｅ型ＨＡ構成は、全ての系を稼動系として運用することで、リソースの有効活用及び負荷分散を実現する。以下の説明において、ＨＡ構成及びＨＡペアは、Ａｃｔｉｖｅ−Ａｃｔｉｖｅ型のＨＡ構成及びＨＡペアを意味する。ストレージシステムは、ＨＡペアのいずれに対するＩ／Ｏアクセスも受け付ける。
【００１２】
以下においては、ＨＡボリュームペアの移行を説明する。具体的には、ＨＡボリュームペアの移行は、移行前ＨＡボリュームペアの一つを別のボリュームに移行し、移行前ＨＡボリュームペアの他方と新たなボリュームとで、移行後ＨＡボリュームペアを構成する。ストレージシステムは、移行中において、全てのボリュームへのＩ／Ｏアクセスを受け付ける。ストレージシステムは、移行完了後に、ＨＡボリュームペアを切り替える。
【００１３】
ＨＡボリュームペアは、Ｐｒｉｍａｒｙ  Ｖｏｌｕｍｅ（ＰＶＯＬ）とＳｅｃｏｎｄａｒｙ  Ｖｏｌｕｍｅ（ＳＶＯＬ）とで構成される。一例において、ストレージシステムは、ペア作成時に、ＰＶＯＬのデータをＳＶＯＬにコピーする。
【００１４】
後述するように、非移行時において、ストレージシステムは、ＳＶＯＬへのＷＲＩＴＥコマンドを受信すると、ＰＶＯＬへのライトデータの書き込み（ライトキャッシュへの書き込み又は記憶ドライブへの書き込みのいずれか）終了後に、ＳＶＯＬへのライトデータの書き込みを行う。一例において、ＰＶＯＬへのＩ／Ｏアクセスは、ＰＶＯＬの排他ロックを伴い、ＳＶＯＬへのＩ／Ｏアクセスにおいて排他ロックは使用されない。ＳＶＯＬへのアクセスにおいて排他ロックが使用されてもよい。
【００１５】
移行時及び非移行時において、ライト処理における排他ロックは、他のライト処理及びリード処理を禁止する。リード処理における排他ロックは、他のライト処理を禁止し、他のリード処理を禁止しても禁止しなくともよい。リード処理における排他ロックは、他のリード処理を許可することでホストへの応答遅延を抑制できる。
【００１６】
図１は、ボリューム移行における、ＨＡマルチターゲット構成の概要を示す図である。ＨＡマルチターゲット構成は、一つのボリュームを二つのＨＡボリュームペアの共通のＰＶＯＬとし、それらの三つのボリュームで二つのＨＡボリュームペアを構成する。
【００１７】
図１のシステムは、ホスト計算機１０００と、物理ストレージ装置（単にストレージ装置とも呼ぶ）２０００と、仮想ストレージ装置３０００とを含む。仮想ストレージ装置３０００は、複数の物理ストレージ装置２０００で構成されている。
【００１８】
本システムは、複数物理ストレージ装置２０００によるＡｃｔｉｖｅ−Ａｃｔｉｖｅ型ＨＡ構成（以下、ＨＡボリューム構成とも呼ぶ）を有する。複数物理ストレージ装置２０００は、単一の仮想ストレージ装置３０００として、ホスト計算機１０００に提供される。各物理ストレージ装置２０００は、ホスト計算機１０００からの要求に対して、同一のストレージ装置構成情報、すなわち仮想ストレージ装置１（３０００）の構成情報を提供する。
【００１９】
図１の例において、物理ストレージ装置１（２０００）の物理ＶＯＬ１（２９００）と、物理ストレージ装置２（２０００）の物理ＶＯＬ２（２９００）とは、ＨＡボリュームペア７１００を構成している。物理ＶＯＬ１（２９００）はＰＶＯＬであり、物理ＶＯＬ２（２９００）はＳＶＯＬである。
【００２０】
物理ＶＯＬ１（２９００）及び物理ＶＯＬ２（２９００）について、ホスト計算機１０００に対して、同一のＶＯＬ情報、すなわち仮想ＶＯＬ１１（３９００）の情報が提供される。ホスト計算機１０００は、仮想ＶＯＬ１１（３９００）にアクセスするため、物理ＶＯＬ１（２９００）及び物理ＶＯＬ２（２９００）のいずれへのパスも使用することができる。
【００２１】
一方の物理ＶＯＬ２９００に対するライトデータは、他方の物理ＶＯＬ２９００に転送される。これにより、物理ＶＯＬ１（２９００）及び物理ＶＯＬ２（２９００）の間のデータ同一性が維持される。物理ストレージ装置１（２０００）及び物理ストレージ装置２（２０００）は、それぞれ、ホスト計算機１０００からのＲＥＡＤコマンドに対して、自装置が提供する物理ボリューム２９００から読み出したデータを送信する。
【００２２】
このように、物理ＶＯＬ１（２９００）及び物理ＶＯＬ２（２９００）は、ホスト計算機１０００から一つのボリュームとしてＩ／Ｏアクセス可能であり、また、いずれかの物理ボリュームにおいて障害が発生しても、他の物理ボリュームへのＩ／Ｏアクセスが可能である。
【００２３】
本実施例は、ホストＩ／Ｏ無停止かつＡｃｔｉｖｅ−Ａｃｔｉｖｅ型ＨＡ構成を維持したボリュームペアの移行を説明する。一例として、物理ＶＯＬ２（２９００）を物理ＶＯＬ３へ移行する例を説明する。物理ＶＯＬ１及び物理ＶＯＬ２は移行前ボリュームペアを構成し、物理ＶＯＬ１（２９００）及び物理ＶＯＬ３（２９００）は移行後ボリュームペアを構成する。
【００２４】
まず、物理ＶＯＬ１（２９００）と物理ＶＯＬ３（２９００）で、ＨＡボリュームペア７２００が形成される。ここでは、物理ＶＯＬ１（２９００）はＰＶＯＬ、物理ＶＯＬ３（２９００）はＳＶＯＬとする。移行において、ＰＶＯＬである物理ＶＯＬ１（２９００）からＳＶＯＬである物理ＶＯＬ３（２９００）にデータがコピーされる。
【００２５】
ホスト計算機１０００及び物理ストレージ装置３（２０００）において、ホスト計算機１０００から物理ＶＯＬ３（２９００）へのパス８３００が定義される。物理ストレージ装置３（２０００）は、物理ＶＯＬ３（２９００）について、ホスト計算機１０００からの要求に対して、物理ＶＯＬ１（２９００）及び物理ＶＯＬ２（２９００）と同様に、仮想ＶＯＬ１１（３９００）の情報を返す。
【００２６】
次に、ホスト計算機１０００及び物理ストレージ装置２（２０００）において、ホスト計算機１０００から物理ＶＯＬ２（２９００）へのパス８２００が削除される。さらに、物理ストレージ装置１（２０００）及び物理ストレージ装置２（２０００）は、ＨＡボリュームペア７１００を削除する。これにより、物理ストレージ装置２（２０００）の物理ＶＯＬ２（２９００）から物理ストレージ装置３（２０００）の物理ＶＯＬ３（２９００）への移行が完了する。
【００２７】
図２は、本実施例における計算機システムの構成例を示す。図２の計算機システムは、ホスト計算機１０００と、物理ストレージ装置２０００と、管理計算機４０００と、を含む。
【００２８】
計算機システムに含まれる各種装置（システム）の数は、設計に依存する。物理ストレージ装置１〜３（２０００）は、１台の仮想的なストレージ装置である仮想ストレージ装置を構成する。本例の仮想ストレージ環境において、２台または３台の物理ストレージ装置が１台の仮想ストレージを構成するが、その構成物理ストレージ数は設計に依存する。
【００２９】
物理ストレージ装置Ａ（２０００）は、Ｑｕｏｒｕｍ  Ｄｉｓｋを持つ。Ｑｕｏｒｕｍ  Ｄｉｓｋは、ＨＡ構成における物理ストレージ装置２０００間で通信不可となった場合に、ＨＡ構成が組まれた物理ストレージ装置２０００のうち、継続稼動させるものと停止させるものを決定する機能を提供する。Ｑｕｏｒｕｍ  Ｄｉｓｋにより、スプリットブレイン問題を防ぐことができる。
【００３０】
ホスト計算機１０００、管理計算機４０００及び物理ストレージ装置２０００は、ＬＡＮ６０００で構成された管理ネットワークにより、通信可能に接続されている。例えば、管理ネットワーク６０００は、ＩＰネットワークである。管理ネットワーク６０００は、管理データ通信用のネットワークであればどのタイプのネットワークでもよい。
【００３１】
ホスト計算機１０００及び物理ストレージ装置２０００は、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）５０００で構成されたデータネットワークにより接続されている。ホスト計算機１０００は、ＳＡＮ５０００を介して、物理ストレージ装置２０００のボリュームにアクセスする。データネットワーク５０００はデータ通信用のネットワークであれば、どのようなタイプのネットワークでもよい。データネットワーク５０００と管理ネットワーク６０００は同一のネットワークでもよい。
【００３２】
図３は、ホスト計算機１０００の構成例を模式的に示す。ホスト計算機１０００は、プロセッサであるＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１００、不揮発性の二次記憶デバイス１２００、主記憶デバイスであるメモリ１３００、入出力デバイス１４００、Ｉ／Ｏ要求発行側インタフェースであるイニシエータポート１６００、管理インタフェース１７００を含む。各構成要素は、バス１５００により通信可能に接続されている。
【００３３】
ＣＰＵ１１００は、メモリ１３００に格納されたプログラムに従って動作する。典型的には、二次記憶デバイス１２００に格納されているプログラム及びデータが、メモリ１３００にロードされる。本例において、メモリ１３００は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）１３１０、交替パスプログラム１３２０及びアプリケーションプログラム１３３０を保持する。アプリケーションプログラム１３３０は、物理ストレージ装置２０００が提供するボリュームへデータの読み書きを行う。
【００３４】
イニシエータポート１６００は、ＳＡＮ４０００に接続するネットワークインタフェースである。イニシエータポート１６００は、ＳＡＮ５０００を介して物理ストレージ装置２０００とデータ及び要求を送受信する。
【００３５】
管理インタフェース１７００は、ＬＡＮ６０００に接続するネットワークインタフェースである。管理インタフェース１７００は、ＬＡＮ６０００を介して物理ストレージ装置２０００と管理データ及び制御命令を送受信する。管理インタフェース１７００は、さらに、ＬＡＮ６０００を介して管理計算機４０００と、管理データ及び制御命令を送受信する。
【００３６】
図４は、物理ストレージ装置２０００の構成例を模式的に示す図である。本例において、全物理ストレージ装置２０００の基本構成は同じであるが、構成要素の数や記憶容量等は各物理ストレージ装置２０００に依存する。これらは異なる基本構成を有していてもよい。
【００３７】
物理ストレージ装置２０００は、複数の記憶デバイス（例えば、ハードディスクドライブ及び／又はＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ））２２００と、物理ストレージ装置２０００を制御し、ボリューム管理や、ホスト計算機１０００又は他の物理ストレージ装置２０００とのデータ通信等を行うストレージコントローラとを含む。
【００３８】
ストレージコントローラは、プロセッサであるＣＰＵ２１００、プログラムメモリ２３００、Ｉ／Ｏ要求発行側インタフェースであるイニシエータポート２６００、Ｉ／Ｏ要求受信側インタフェースであるターゲットポート２７００、管理インタフェース２８００、データ転送のためのキャッシュメモリ２４００、を含む。ストレージ装置２０００の構成要素は、バス２５００で通信可能に接続されている。
【００３９】
物理ストレージ装置２０００は、イニシエータポート２６００ を介して、外部（他）の物理ストレージ装置２０００に接続し、外部の物理ストレージ装置２０００にＩ／Ｏ要求及びライトデータを送信し、外部の物理ストレージ装置２０００からリードデータを受信することができる。イニシエータポート２６００は、ＳＡＮ５０００に接続する。
【００４０】
イニシエータポート２６００は、外部の物理ストレージ装置２０００との通信に用いられるＦＣ、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  Ｏｖｅｒ  Ｅｔｈｅｒｎｅｔ（ＦＣｏＥ）、ｉＳＣＳＩ等のプロトコルを、ストレージコントローラ内部で用いられるプロトコル、例えば、ＰＣＩｅに変換する機能を有する。
【００４１】
物理ストレージ装置２０００は、ターゲットポート２７００において、ホスト計算機１０００又は外部の物理ストレージ装置２０００に接続する。物理ストレージ装置２０００は、ターゲットポート２７００を介して、ホスト計算機１０００又は外部の物理ストレージ装置２０００からＩ／Ｏ要求及びライトデータを受信し、また、ホスト計算機１０００又は外部の物理ストレージ装置２０００にリードデータを送信する。ターゲットポート２７００は、ＳＡＮ５０００に接続する。
【００４２】
ターゲットポート２７００は、ホスト計算機１０００又は外部の物理ストレージ装置２０００との通信に用いられるＦＣ、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  Ｏｖｅｒ  Ｅｔｈｅｒｎｅｔ（ＦＣｏＥ）、ｉＳＣＳＩ等のプロトコルを、ストレージコントローラ内部で用いられるプロトコル、例えば、ＰＣＩｅに変換する機能を有する。
【００４３】
管理インタフェース２８００は、ＬＡＮ６０００に接続するためのデバイスである。管理インタフェース２８００は、ＬＡＮ６０００で使用されるプロトコルを、ストレージコントローラ内部で用いられるプロトコル、例えば、ＰＣＩｅに変換する機能を有する。
【００４４】
ＣＰＵ２１００は、物理ストレージ装置２０００の制御のためのプログラムを実行し、ホスト計算機１０００からのＩ／Ｏの制御及び物理ストレージ装置２０００ボリュームの管理、制御を含む所定の機能を実現する。本実施例で説明するＣＰＵ２１００により実現される機能の少なくとも一部は、ＣＰＵ２１００と異なるロジック回路によって実現されてもよい。
【００４５】
プログラムはプロセッサ（ＣＰＵ）によって実行されることで、定められた処理をメモリ及びインタフェースを用いながら行う。従って、本開示においてプログラムを主語とする説明は、プロセッサを主語とした説明でもよい。若しくは、プログラムが実行する処理は、そのプログラムが動作する装置（例えば物理ストレージ装置２０００又はホスト計算機１０００）及びシステムが行う処理である。
【００４６】
プログラムメモリ２３００は、ＣＰＵ２１００が扱うデータやプログラムを格納する。プログラムメモリ２３００のデータは、例えば、物理ストレージ装置２０００内のいずれかの記憶デバイス２２００、フラッシュメモリ（不図示）、又はＬＡＮ５０００を介して接続された他の装置等、非一時的記憶媒体を備える記憶デバイスからプログラムメモリ２３００にロードされる。
【００４７】
図４は、物理ストレージ装置２０００それぞれのプログラムメモリ２３００におけるソフトウェア構成例を示す。プログラムメモリ２３００は、データ入出力処理プログラム２３５０、リソース管理プログラム２３６０及びボリュームコピー制御プログラム２３７０を保持する。さらに、プログラムメモリ２３００は、リソース管理テーブル２３１０、仮想ストレージボックス管理テーブル２３２０、仮想ストレージ管理テーブル２３３０、ボリュームコピーペア管理テーブル２３４０、ホストグループ管理テーブル２３８０、排他ロック管理テーブル２３９０を保持する。
【００４８】
データ入出力処理プログラム２３５０ は、ホスト計算機１０００からのＩ／Ｏ要求に従って、ユーザデータのリード及びライトを行い、ホスト計算機１０００及び他の物理ストレージ装置２０００との間の必要なデータ通信を行う。
【００４９】
リソース管理プログラム２３６０は、物理ストレージ装置２０００のリソースを管理する。リソース管理プログラム２３６０は、ボリュームの作成や削除の他、以下に説明するテーブル（情報）の作成及び更新を行う。リソース管理プログラム２３６０は、リソース管理のために必要な情報を、管理計算機４０００との間で送受信する。
【００５０】
以下において、物理ストレージ装置２０００がそれぞれ保持し、本実施例の説明において参照されるテーブル（情報）について説明する。同一名称のテーブルは、各物理ストレージ装置２０００において、同一の構成（欄）を有する。以下において図を参照して説明するテーブルは、物理ストレージ装置１（２０００）が保持するテーブルである。なお、各装置が保持する情報は、テーブル以外の構造体に格納されていてもよい。
【００５１】
図６Ａは、リソース管理テーブル２３１０の構成例を示す。リソース管理テーブル２３１０は、当該物理ストレージ装置１（２０００）のリソースを管理するためのテーブルである。
【００５２】
リソース管理テーブル２３１０は、物理ストレージ装置１（２０００）のリソースの種類を格納するリソース種別欄２３１１、リソースＩＤを格納するリソースＩＤ欄２３１２、当該リソースが属するリソースグループＩＤを格納するリソースグループＩＤ欄２３１３、当該リソースに付与された仮想リソースＩＤを格納する仮想リソースＩＤ欄２３１４を有する。
【００５３】
図６Ｂは、ホストグループ管理テーブル２３８０の構成例を示す。ホストグループは、ポートに接続されたホスト計算機１０００のＷＷＮ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｎａｍｅ）を、ホスト計算機１０００のＯＳ種別毎にグループ化したものである。ホストグループ管理テーブル２３８０は、ポートＩＤを格納するポートＩＤ欄２３８１、当該ポートに関連するホストグループＩＤを格納するホストグループＩＤ欄２３８２、ホスト計算機１０００のＯＳ種別を示すホストモードＩＤ欄２３８３、当該ホストグループに登録されたホストＷＷＮを格納するホストＷＷＮ欄２３８４、ホストグループＩＤ２３８２に属するホスト計算機１０００がアクセス可能なボリュームＩＤを格納するボリュームＩＤ２３８５を有する。
【００５４】
図７は、仮想ストレージボックス管理テーブル２３２０の構成例を示す。仮想ストレージボックスは、１物理ストレージ装置内で１仮想ストレージ装置が持つリソースグループの集合である。仮想ストレージボックス管理テーブル２３２０は、仮想ストレージ装置３０００の仮想ストレージボックスを管理するためのテーブルである。
【００５５】
仮想ストレージボックス管理テーブル２３２０は、仮想ストレージボックスＩＤを格納する仮想ストレージボックスＩＤ欄２３２１、当該仮想ストレージボックスに属するリソースグループＩＤを格納するリソースグループＩＤ欄２３２２を有する。
【００５６】
図８は、仮想ストレージ管理テーブル２３３０の構成例を示す。仮想ストレージ管理テーブル２３３０は、仮想ストレージ装置３０００を管理するためのテーブルである。仮想ストレージ管理テーブル２３３０は、仮想ストレージＩＤを格納する仮想ストレージＩＤ欄２３３１、当該仮想ストレージ装置に属する仮想ストレージボックスＩＤを格納する仮想ストレージボックスＩＤ欄２３３２を有する。
【００５７】
図９Ａは、ボリュームコピーペア管理テーブル２３４０の構成例を示す。ボリュームコピーペア管理テーブル２３４０は、当該物理ストレージ装置２０００が提供するボリュームを含むボリュームコピーペアを管理するためのテーブルである。
【００５８】
ボリュームコピーペア管理テーブル２３４０は、ボリュームコピーペアのペアＩＤを格納するペアＩＤ欄２３４１、当該ペアの種別を格納するペア種別欄２３４２、当該ペアの状態を格納するペア状態欄２３４３を有する。
【００５９】
ボリュームコピーペア管理テーブル２３４０は、さらに、ＰＶＯＬＩＤを格納するＰＶＯＬＩＤ欄２３４４、ＳＶＯＬＩＤを格納するＳＶＯＬＩＤ欄２３４５を有する。本例において、ＰＶＯＬＩＤ及びＳＶＯＬＩＤは、物理ストレージ装置２０００の識別情報及び当該物理ストレージ装置におけるボリュームの識別情報により構成されている。
【００６０】
ボリュームコピーペア管理テーブル２３４０は、さらに、当該ペアに関連するペアのＩＤを格納する関連ペアＩＤ欄２３４６、当該ペアと関連ペアの優先度を格納する優先度欄２３４７を有する。
【００６１】
ペア種別欄２３４２に格納するペア種別は、ＨＡであれば“ＨＡ”、物理ストレージ内のボリュームローカルコピーであれば“ＬＣ”、物理ストレージ間のボリュームリモートコピーであれば“ＲＣ”、ＨＡマルチターゲット構成であれば“ＨＡ‐ＭＬＴ”、ＨＡカスケード構成（図３１参照）であれば“ＨＡ‐ＣＡＳ”など、ボリュームコピーペアの種類を示す。
【００６２】
ペア状態欄２３４３に格納するペア状態は、データコピー中であれば“ＣＯＰＹ”、データコピー完了後の同期状態であれば“ＰＡＩＲ”、データコピー中断中であれば“ＳＵＳＰＥＮＤ”など、ボリュームコピーペア間のデータコピーの状態を示す文字列や数字を格納する。
【００６３】
優先度欄２３４７に格納する優先度は、ＨＡマルチターゲット構成またはＨＡカスケード構成におけるデータ書き込み順序を決定する情報を示す。本実施例では、第１ペアのＰＶＯＬ、第１ペアのＳＶＯＬ、第２ペアのＰＶＯＬ、第２ペアのＳＶＯＬの順に書き込む。優先度は、ペアが作成された順番に従って決定してもよいし、ＨＡマルチターゲット構成設定時またはＨＡカスケード構成設定時にユーザが任意の優先度を決定してもよい。
【００６４】
図９Ｂは、排他ロック管理テーブル２３９０の構成例を示す。排他ロック管理テーブル２３９０は、ボリュームの排他ロックを管理するための情報を保持する。排他ロック管理テーブル２３９０は、排他ロックＩＤ欄２３９１、ボリュームＩＤ欄２３９２及びＬＢＡ欄２３９３を有する。
【００６５】
排他ロック管理テーブル２３９０は、排他ロックされているデータ記憶領域を管理している。各エントリは、排他ロックされているボリューム内の領域を示し、ボリュームＩＤと当該ボリューム内のアドレス（ＬＢＡ）を使用して、例えば、開始ＬＢＡとデータ長で指定される。本例において、ボリューム内の部分領域が排他ロックされるが、ボリューム単位で排他ロックされてもよい。
【００６６】
図１０は、管理計算機４０００の構成例を示す図である。管理計算機４０００は、プロセッサであるＣＰＵ４１００、主記憶デバイスであるメモリ４３００、二次記憶デバイス４２００、入出力デバイス４４００、管理インタフェース（Ｉ／Ｆ）４６００を含む。管理計算機４０００のデバイスは、バス４５００により通信可能に接続されている。
【００６７】
管理計算機４０００は、管理プログラムを実行し、それに従って動作する。管理Ｉ／Ｆ４６００はＬＡＮ６０００に接続し、計算機内のプロトコルとＬＡＮ６０００のプロトコルとの間の変換を行う。管理計算機４０００は、管理Ｉ／Ｆ４６００及びＬＡＮ６０００を介して、物理ストレージ装置２０００及びホスト計算機１０００と通信することができる。
【００６８】
入出力デバイス４４００は、ディスプレイ、ポインタ又はキーボード等のデバイスの一つ又は複数のデバイスを含む。ユーザ（上記例において、ユーザＵｓｅｒ０１〜Ｕｓｅｒ０３）は、入出力デバイス４４００により、管理計算機４０００を操作することができるほか、ネットワークを介して接続するクライアント計算機から管理計算機４０００にアクセスしてもよい。クライアント計算機は、管理計算機４０００と共に管理システムに含まれる。ユーザは、入力デバイス（例えばマウス及びキーボード）により必要な情報を入力し、出力デバイスにより必要な情報を視認することができる。
【００６９】
ＣＰＵ４１００は、メモリ４３００に記憶されているプログラムを実行することによって管理計算機４０００の所定の機能を実現する。メモリ４３００は、ＣＰＵ４１００よって実行されるプログラム及びプログラムの実行に必要なデータを記憶する。管理計算機４０００で動作するプログラムについては後述する。本実施例で説明するＣＰＵ４１００により実現される機能の少なくとも一部は、ＣＰＵ４１００と異なるロジック回路によって実現されてもよい。
【００７０】
例えば、プログラムは、二次記憶デバイス４２００からメモリ４３００にロードされる。二次記憶デバイス４２００は、管理計算機４０００の所定の機能を実現するために必要なプログラム及びデータを格納する、不揮発性の非一時的記憶媒体を備える記憶装置である。二次記憶デバイス４２００は、ネットワークを介して接続された外部の記憶装置でもよい。
【００７１】
本構成例の管理システムは、管理計算機で構成されているが、管理システムは複数の計算機で構成してもよい。複数の計算機の一つは表示用計算機であってもよく、管理処理の高速化や高信頼化のために、複数の計算機が管理計算機と同等の処理を実現してもよい。管理システムは、物理ストレージ内に構成されていてもよい。管理システムの一部の機能が、物理ストレージ装置内に実装されていてもよい。
【００７２】
管理計算機４００００のプログラムメモリ４３００は、ＣＰＵ４１００が扱うデータやプログラムを格納する。プログラムメモリ４３００のデータは、例えば、物理ストレージ装置２０００内のいずれかの記憶デバイス２２００又はフラッシュメモリ（不図示）、又はＬＡＮ６０００を介して接続された他の装置からプログラムメモリ４３００にロードされる。
【００７３】
プログラムメモリ４３００は、ＯＳ４３１０及び仮想ストレージ管理プログラムを保持する。さらに、プログラムメモリ４３００は、仮想ストレージ管理テーブル４３２０、仮想ストレージボックス管理テーブル４３３０、仮想ストレージリソース管理テーブル４３４０、ボリュームコピーペア管理テーブル４３５０を保持する。
【００７４】
仮想ストレージ管理プログラム４３６０は、物理ストレージ装置２０００及び仮想ストレージ装置３０００のリソースを管理する。仮想ストレージ管理プログラム４３６０は、ボリュームの作成や削除の他、以下に説明するテーブル（情報）の作成及び更新を行う。仮想ストレージ管理プログラム４３６０は、リソース管理のために必要な情報を、物理ストレージ装置２０００との間で送受信する。
【００７５】
図１１は、仮想ストレージ管理テーブル４３２０の構成例を示す。仮想ストレージ管理テーブル４３２０は、仮想ストレージ装置３０００及び仮想ストレージ装置３０００の構成要素である物理ストレージ装置２０００のリソースを管理するためのテーブルである。仮想ストレージ管理テーブル４３２０は、全ての物理ストレージ装置２０００の仮想ストレージ管理テーブル２３３０を統合したテーブルである。
【００７６】
仮想ストレージ管理テーブル４３２０は、仮想ストレージＩＤを格納する仮想ストレージＩＤ欄４３２１、当該仮想ストレージに属する仮想ストレージボックスＩＤを格納する仮想ストレージボックスＩＤ４３２２を有する。
【００７７】
図１２は、仮想ストレージボックス管理テーブル４３３０の構成例を示す。仮想ストレージボックス管理テーブル４３３０は、仮想ストレージ装置３０００の仮想ストレージボックスを管理するためのテーブルである。仮想ストレージボックス管理テーブル４３３０は、全ての物理ストレージ装置２０００の仮想ストレージボックス管理テーブル２３２０を統合したテーブルである。
【００７８】
仮想ストレージボックス管理テーブル４３３０は、仮想ストレージボックスＩＤを格納する仮想ストレージボックスＩＤ欄４３３１、当該仮想ストレージボックスに属するリソースグループＩＤを格納するリソースグループＩＤ欄４３３２を有する。
【００７９】
図１３は、仮想ストレージリソース管理テーブル４３４０の構成例を示す。仮想ストレージリソース管理テーブル４３４０は、仮想ストレージ装置３０００のリソースを管理するためのテーブルである。仮想ストレージリソース管理テーブル４３４０は、全ての物理ストレージ装置２０００のリソース管理テーブル２３１０を統合したテーブルである。
【００８０】
仮想ストレージリソース管理テーブル４３４０は、リソース種別を格納するリソース種別欄４３４１、当該リソースＩＤを格納するリソースＩＤ欄４３４２、当該リソースが属するリソースグループＩＤを格納するリソースグループＩＤ欄４３４３、当該リソースに付与された仮想リソースＩＤを格納する仮想リソースＩＤ欄４３４４を有する。
【００８１】
図１４は、ボリュームコピーペア管理テーブル４３５０の構成例を示す。ボリュームコピーペア管理テーブル４３５０は、管理計算機４０００が管理する物理ストレージ装置２０００のボリュームコピーペアを管理するためのテーブルである。ボリュームコピーペア管理テーブル４３５０は、全物理ストレージ装置２０００のボリュームコピーペア管理テーブル２３４０を統合したテーブルである。
【００８２】
ボリュームコピーペア管理テーブル４３５０は、ボリュームコピーペアのペアＩＤを格納するペアＩＤ欄４３５１、当該ペアの種類を格納するペア種別欄４３５２、当該ペアの状態を格納するペア状態欄４３５３、ＰＶＯＬＩＤを格納するＰＶＯＬＩＤ欄４３５４、ＳＶＯＬＩＤを格納するＳＶＯＬＩＤ欄４３５５、当該ペアに関連するペアＩＤを格納する関連ペアＩＤ欄４３５６、当該ペアと関連ペアの優先度を格納する優先度欄４３５７を有する。ボリュームコピーペア管理テーブル４３５０の各欄の言葉の意味は、ボリュームコピーペア管理テーブル２３４０と同じである。
【００８３】
図１５は、物理ストレージ装置２（ＳＴ２）（２０００）の物理ＶＯＬ２（ＳＶＯＬ）２９００を、物理ストレージ装置３（ＳＴ３）（２０００）の物理ＶＯＬ３（ＳＶＯＬ）２９００に移行するステップを示す。物理ＶＯＬ１、ＶＯＬ２、ＶＯＬ３（２９００）は、仮想ＶＯＬ１１（３０００）の構成要素である。なお、一部の符号を省略している。
【００８４】
物理ＶＯＬ２（ＳＶＯＬ）２９００と物理ストレージ装置２（２０００）の物理ＶＯＬ１（ＰＶＯＬ）２９００は、移行前ボリュームペア（第１ボリュームペア）である。
【００８５】
物理ＶＯＬ３（２９００）と物理ＶＯＬ１（ＰＶＯＬ）２９００は、移行後ボリュームペア（第２ボリュームペア）である。移行において、物理ＶＯＬ１（ＰＶＯＬ）２９００のデータが、物理ＶＯＬ３（２９００）にコピーされる。本例では、ホスト管理及びストレージ管理の両方を実施可能なシステム管理者が、パス及びボリュームの設定を行う。
【００８６】
図１５において、ステップＡ‐０は、初期状態を示す。ホスト計算機１０００と、物理ＶＯＬ１、ＶＯＬ２との間にパスが定義されている。物理ＶＯＬ１、ＶＯＬ２は、ボリュームペアを構成している。物理ＶＯＬ１、ＶＯ２は、仮想ＶＯＬ１１の構成要素であり、ホスト計算機１０００は、仮想ＶＯＬ１１のアクセスのために、いずれの物理ＶＯＬ１、ＶＯＬにもアクセスすることができる。
【００８７】
ステップＡ‐１において、システム管理者からの指示に従って、物理ストレージ装置３は、物理ＶＯＬ３を作成する。システム管理者からの指示に従って、物理ストレージ装置１（ＳＴ１）及び物理ストレージ装置３は、物理ＶＯＬ１と物理ＶＯＬ３のＨＡボリュームペアを作成する。ＶＯＬ３への仮想ＩＤを付与する。このとき、ＶＯＬ１、ＶＯＬ２及びＶＯＬ３はＨＡマルチターゲット構成である。
【００８８】
ステップＡ‐２において、システム管理者からの指示に従って、ホスト計算機１０００及び物理ストレージ装置３は、ホスト計算機１０００から物理ＶＯＬ３へのパスを定義する。物理ストレージ装置３は、ホストグループ管理テーブル２３８０に、ホストのＷＷＮ、ポートＩＤ、ＶＯＬ３のボリュームＩＤの情報を追加する。
【００８９】
次に、ステップＡ‐３において、システム管理者からの指示に従って、ホスト計算機１０００及び物理ストレージ装置２は、ホスト計算機１０００から物理ＶＯＬ２へのパスを削除する。物理ストレージ装置２は、ホストグループ管理テーブル２３８０から、ホストのＷＷＮ、ポートＩＤ、ＶＯＬ２のボリュームＩＤの情報を削除する。
【００９０】
次に、ステップＡ‐４において、システム管理者からの指示に従って、物理ストレージ装置１、２は、物理ＶＯＬ１と物理ＶＯＬ２のＨＡペアを削除し、さらに、物理ストレージ装置２は物理ＶＯＬ２の仮想ＩＤを削除する。
【００９１】
図１６は、ホスト計算機１０００から物理ストレージ装置２０００へＷＲＩＴＥコマンドが発行されるときの、当該物理ストレージ装置２０００のデータ入出力処理プログラム２３５０がＷＲＩＴＥコマンドを処理するフローチャート例を示す。以下の説明においては、ＷＲＩＴＥコマンドは、データ書き込み指示及びライトデータを含むものとする。
【００９２】
ステップＳ１０１において、データ入出力処理プログラム２３５０は、ホスト計算機１０００からＷＲＩＴＥコマンドを受信する。ステップＳ１０２において、データ入出力処理プログラム２３５０は、ＷＲＩＴＥコマンドが示すＷＲＩＴＥ対象ボリュームのＨＡボリュームペア構成が、ＨＡマルチターゲット構成（ＨＡ−ＭＬＴ）か否かを判定する。データ入出力処理プログラム２３５０は、当該判定のため、ボリュームコピーペア管理テーブル２３４０における、ペア種別欄２３４２を参照する。
【００９３】
ステップＳ１０２の判定結果がＹｅｓの場合、データ入出力処理プログラム２３５０は、ステップＳ１０３へ進む。ステップＳ１０３が完了した後、データ入出力処理プログラム２３５０は、当該フローを終了する。
【００９４】
ステップＳ１０２の判定結果がＮｏの場合、データ入出力処理プログラム２３５０は、ステップＳ１０４へ進む。ステップＳ１０４において、データ入出力処理プログラム２３５０は、ボリュームコピーペア管理テーブル２３４０を参照して、ＷＲＩＴＥ対象ボリュームコピーペア構成が、ＨＡカスケード構成（ＨＡ−ＣＡＳ）か否かを判定する。
【００９５】
ステップＳ１０４の判定結果がＹｅｓの場合、データ入出力処理プログラム２３５０は、ステップＳ１０５へ進む。ステップＳ１０５が完了した後、データ入出力処理プログラム２３５０は、当該フローを終了する。
【００９６】
ステップＳ１０４の判定結果がＮｏの場合、データ入出力処理プログラム２３５０は、ステップＳ１０６へ進む。ステップＳ１０６において、データ入出力処理プログラム２３５０は、ボリュームコピーペア管理テーブル２３４０を参照して、ＷＲＩＴＥ対象ボリュームが、単体ＨＡボリュームペア（Ｓ−ＨＡ）のＰＶＯＬか否かを判定する。単体ＨＡボリュームペアは、移行中ではないＨＡボリュームペアである。
【００９７】
ステップＳ１０６の判定結果がＹｅｓの場合、つまり、アクセス先が単体ボリュームペアのＰＶＬである場合、データ入出力処理プログラム２３５０は、ステップＳ１０７へ進む。ステップＳ１０７において、データ入出力処理プログラム２３５０は、排他ロック処理を実行する。本例において、データ入出力処理プログラム２３５０は、アクセス先の物理ボリュームにおけるアクセス先アドレス領域について、排他ロックする。
【００９８】
排他ロック処理は、ＷＲＩＴＥ対象データまたはＲＥＡＤ対象データに対するＷＲＩＴＥ／ＲＥＡＤ排他制御である。排他ロック処理におけるＷＲＩＴＥ／ＲＥＡＤ排他制御単位は、ＬＢＡ単位でも世いし、ボリューム単位でもよい。排他ロック状態の情報は、排他ロック管理テーブル２３９０において、排他制御単位で管理されている。排他ロック管理テーブル２３９０は、排他ロック処理及び排他ロック解除処理の度に更新される。
【００９９】
ＷＲＩＴＥ対象データに対しては、他のライト及びリード禁止される。ＲＥＡＤ対象データに対しては、他のライトが禁止され、他のリードは禁止されても許可されていてもよい。他のリードを許可することでホスト計算機１０００への応答遅延を抑制する。この点は、他の例において同様である。
【０１００】
ステップＳ１０８において、データ入出力処理プログラム２３５０は、ＷＲＩＴＥ対象ボリュームに対して、ライトデータを書き込む。ＷＲＩＴＥコマンドによるライトデータの対象ボリュームへの書き込みは、記憶デバイス２２００又はキャッシュメモリ２４００への書き込みを意味する。この点は他のＷＲＩＴＥ処理について同様である。
【０１０１】
ステップＳ１０９において、データ入出力処理プログラム２３５０は、対応するＳＶＯＬがある物理ストレージ装置２０００へＷＲＩＴＥコマンドを転送する。データ入出力処理プログラム２３５０は、ボリュームコピーペア管理テーブル２３４０から、対応するＳＶＯＬを提供する物理ストレージ装置２０００の識別子を取得する。
【０１０２】
ステップＳ１１０において、データ入出力処理プログラム２３５０は、上記ＳＶＯＬがある物理ストレージ装置２０００からのＷＲＩＴＥコマンド完了応答を受信する。ステップＳ１１１において、データ入出力処理プログラム２３５０は、当該ＷＲＩＴＥコマンドのために実行した排他ロックを解除し、排他ロック管理テーブル２３９０を更新する。
【０１０３】
ステップＳ１１２において、データ入出力処理プログラム２３５０は、ホスト計算機１０００へ、ＷＲＩＴＥコマンド完了応答を送信し、当該フローを終了する。
【０１０４】
ステップＳ１０６の判定結果がＮｏの場合、つまり、ＷＲＩＴＥコマンドの対象が単独ＨＡボリュームペアにおけるＳＶＯＬである場合、データ入出力処理プログラム２３５０は、ステップＳ１１３へ進む。
【０１０５】
ステップＳ１１３において、データ入出力処理プログラム２３５０は、対応するＰＶＯＬがある物理ストレージ装置２０００へＷＲＩＴＥコマンドを転送する。データ入出力処理プログラム２３５０は、ボリュームコピーペア管理テーブル２３４０から、対応するＰＶＯＬを提供する物理ストレージ装置２０００及び当該物理ストレージ装置２０００におけるＳＶＯＬの識別子を取得する。
【０１０６】
ステップＳ１１４において、データ入出力処理プログラム２３５０は、上記ＰＶＯＬがある物理ストレージ装置２０００からのＷＲＩＴＥコマンド完了応答を受信する。ステップＳ１１５において、データ入出力処理プログラム２３５０は、ＷＲＩＴＥ対象ボリューム、つまり、自装置が保持しているＳＶＯＬに対して、ライトデータを書き込む。
【０１０７】
ステップＳ１１６において、データ入出力処理プログラム２３５０は、ホスト計算機１０００へＷＲＩＴＥコマンド完了応答を送信する。ステップＳ１１７において、データ入出力処理プログラム２３５０は、上記ＰＶＯＬがある物理ストレージ装置２０００へ、排他ロック解除コマンドを送信する。排他ロック解除コマンドは、例えば、ＷＲＩＴＥコマンドの識別子又は仮想ボリュームの指定アドレスを含む。
【０１０８】
ステップＳ１０８において、データ入出力処理プログラム２３５０は、上記ＰＶＯＬがある物理ストレージ装置２０００から排他ロック解除コマンド完了応答を受信し、当該フローを終了する。
【０１０９】
図１８は、ステップＳ１０７からステップＳ１１２までのシーケンスを示す。ステップＳ１０７からステップＳ１１２は、ホスト計算機１０００から単体ボリュームペアのＰＶＯＬへのＷＲＩＴＥコマンドのフローである。
【０１１０】
図１８において、物理ストレージ装置１（２０００）は、物理ＶＯＬ１（仮想ＶＯＬ１１）２９００へのＷＩＲＩＴＥコマンドをホスト計算機１０００から受信する（Ｓ１０１）。物理ＶＯＬ１（２９００）は単体ボリュームペアのＰＶＯＬである。物理ストレージ装置１（２０００）は、指定領域を排他ロックし（Ｓ１０７）、ライトデータを書き込む（Ｓ１０８）。
【０１１１】
その後、物理ストレージ装置１（２０００）は、対応するＳＶＯＬである物理ＶＯＬ２（２９００）を提供する物理ストレージ装置２（２０００）に、ＷＩＲＩＴＥコマンドを転送する（Ｓ１０９）。物理ストレージ装置２（２０００）は、排他ロックすることなく、転送されたライトデータを物理ＶＯＬ２（２９００）の指定領域に書き込み（Ｓ２１０１）、ライト完了応答を物理ストレージ装置１（２０００）に返す（Ｓ１１０）。ライト完了応答を受信した物理ストレージ装置１（２０００）は、排他ロックを解除し（Ｓ１１１）、ライト完了応答をホスト計算機１０００に返す（Ｓ１１２）。
【０１１２】
図１９は、ステップＳ１１３からステップＳ１１８までのシーケンスを示す。ステップＳ１１３からステップＳ１１８は、ホスト計算機１０００から単体ボリュームペアのＳＶＯＬへのＷＲＩＴＥコマンドのフローである。
【０１１３】
図１９において、物理ストレージ装置２（２０００）は、物理ＶＯＬ２（仮想ＶＯＬ１１）２９００へのＷＩＲＩＴＥコマンドをホスト計算機１０００から受信する（Ｓ１０１）。物理ＶＯＬ２（２９００）は単体ボリュームペアのＳＶＯＬである。物理ストレージ装置２（２０００）は、対応するＰＶＯＬ（物理ＶＯＬ１（２９００））を提供する物理ストレージ装置１（２０００）にＷＲＩＴＥコマンドを転送する（Ｓ１１３）。
【０１１４】
物理ストレージ装置１（２０００）は、物理ＶＯＬ１（２９００）の指定領域を排他ロックし（Ｓ２２０１）、ライトデータを書き込む（Ｓ２２０２）。物理ストレージ装置１（２０００）は、ライト完了応答を物理ストレージ装置２（２０００）に返す（Ｓ１１４）。
【０１１５】
ライト完了応答を受信した物理ストレージ装置２（２０００）は、ライトデータを物理ＶＯＬ２（２９００）に書き込み（Ｓ１１５）、ホスト計算機１０００にライト完了応答を返す（Ｓ１１６）。その後、物理ストレージ装置２（２０００）は、物理ストレージ装置１（２０００）に排他ロック解除コマンドを送信する（Ｓ１１７）。物理ストレージ装置１（２０００）は排他ロックを解除し（Ｓ２２０３）、排他ロック解除完了応答を物理ストレージ装置２（２０００）に返す（Ｓ１１８）。
【０１１６】
図２２はＨＡマルチターゲット構成におけるホスト計算機１０００から第１ボリュームペアのＰＶＯＬへのＷＲＩＴＥコマンドの処理シーケンスを示す。図２３はＨＡマルチターゲット構成におけるホスト計算機１０００から第１ボリュームペアのＳＶＯＬへのＷＲＩＴＥコマンドの処理シーケンスを示す。図２４はＨＡマルチターゲット構成におけるホスト計算機１０００から第２ボリュームペアのＳＶＯＬへのＷＲＩＴＥコマンドの処理シーケンスを示す。
【０１１７】
図２２を参照して、第１ボリュームペアのＰＶＯＬへのＷＲＩＴＥコマンドの処理を説明する。物理ストレージ装置１（２０００）は、物理ＶＯＬ１（仮想ＶＯＬ１１）２９００へのＷＲＩＴＥコマンドを受信する（Ｓ１０１）。物理ＶＯＬ１（２９００）は、第１ボリュームペア及び第２ボリュームペアのＰＶＯＬである。物理ストレージ装置１（２０００）は、物理ＶＯＬ１（２９００）の指定アドレス領域を排他ロックし（Ｓ２０４）、ライトデータを書き込む（Ｓ２０５）。
【０１１８】
次に、物理ストレージ装置１（２０００）は、ＷＲＩＴＥコマンドを、物理ＶＯＬ２（２９００）を提供する物理ストレージ装置２（２０００）に転送する（Ｓ２０７）。物理ＶＯＬ２（２９００）は、第１ボリュームペアのＳＶＯＬである。物理ストレージ装置２（２０００）は、物理ＶＯＬ２（２９００）の指定アドレス領域を排他ロックし（Ｓ３０２）、ライトデータを書き込む（Ｓ３０３）。その後、物理ストレージ装置２（２０００）は、物理ストレージ装置１（２０００）に、ＷＲＩＴＥコマンドの完了応答を送信する（Ｓ３０９）。
【０１１９】
次に、物理ストレージ装置１（２０００）は、ＷＲＩＴＥコマンドを、物理ＶＯＬ３（２９００）を提供する物理ストレージ装置３（２０００）に転送する（Ｓ２０８）。物理ＶＯＬ３（２９００）は、第２ボリュームペアのＳＶＯＬである。物理ストレージ装置３（２０００）は、排他ロックを行うことなく、物理ＶＯＬ３（２９００）にライトデータを書き込む（Ｓ３０３）。その後、物理ストレージ装置３（２０００）は、物理ストレージ装置１（２０００）に、ＷＲＩＴＥコマンドの完了応答を送信する（Ｓ３０９）。
【０１２０】
次に、物理ストレージ装置１（２０００）は、排他ロックを解除し（Ｓ２１０）、ホスト計算機１０００に、ＷＲＩＴＥコマンド完了応答を返す（Ｓ２１１）。次に、物理ストレージ装置１（２０００）は、物理ストレージ装置２（２０００）に排他ロック解除コマンドを送信し（Ｓ２１３）、物理ストレージ装置２は排他ロックを解除する（Ｓ３０８）。物理ストレージ装置１（２０００）は、その完了応答を受信する（Ｓ２１４）。
【０１２１】
ホスト計算機１０００へのＷＲＩＴＥコマンド完了応答を返した後に、他の物理ストレージ装置２０００へ排他ロック解除コマンドを送信することで、ホスト計算機１０００への応答時間を短縮できる。他の物理ストレージ装置２０００から排他ロック解除コマンドの完了応答を受信した後に、ホスト計算機１０００へのＷＲＩＴＥコマンド完了応答を返してもよい。これは、他のシーケンス図において同様である。
【０１２２】
図２３を参照して、第１ボリュームペアのＳＶＯＬへのＷＲＩＴＥコマンドの処理を説明する。物理ストレージ装置２（２０００）は、物理ＶＯＬ２（仮想ＶＯＬ１１）２９００へのＷＲＩＴＥコマンドを受信する（Ｓ１０１）。物理ストレージ装置２（２０００）は、ＷＲＩＴＥコマンドを物理ストレージ装置１（２０００）に転送する（Ｓ２０２）。
【０１２３】
物理ストレージ装置１（２０００）は、物理ＶＯＬ１（２９００）の指定アドレス領域を排他ロックし（Ｓ３０２）、ライトデータを書き込む（Ｓ３０３）。次に、物理ストレージ装置１（２０００）は、ＷＲＩＴＥコマンドを、物理ストレージ装置２（２０００）に転送する（Ｓ３０５）。
【０１２４】
物理ストレージ装置２（２０００）は、物理ＶＯＬ２（２９００）の指定アドレス領域を排他ロックし（Ｓ３０２）、ライトデータを書き込む（Ｓ３０３）。その後、物理ストレージ装置２（２０００）は、物理ストレージ装置１（２０００）に、ＷＲＩＴＥコマンドの完了応答を送信する（Ｓ３０９）。
【０１２５】
次に、物理ストレージ装置１（２０００）は、ＷＲＩＴＥコマンドを、物理ＶＯＬ３（２９００）を提供する物理ストレージ装置３（２０００）に転送する（Ｓ３０６）。物理ストレージ装置３（２０００）は、排他ロックを行うことなく、物理ＶＯＬ３（２９００）にライトデータを書き込む（Ｓ３０３）。その後、物理ストレージ装置３（２０００）は、物理ストレージ装置１（２０００）に、ＷＲＩＴＥコマンドの完了応答を送信する（Ｓ３０９）。
【０１２６】
次に、物理ストレージ装置１（２０００）は、排他ロックを解除し（Ｓ３０８）、ＷＲＩＴＥコマンド転送元である物理ストレージ装置２（２０００）に、ＷＲＩＴＥコマンド完了応答を返す（Ｓ３０９）。
【０１２７】
物理ストレージ装置１（２０００）からＷＲＩＴＥコマンド完了応答を受信すると、物理ストレージ装置２（２０００）は、排他ロックを解除し（Ｓ２１０）、ホスト計算機１０００に、ＷＲＩＴＥコマンド完了応答を返す（Ｓ２１１）。
【０１２８】
図２４を参照して、第２ボリュームペアのＳＶＯＬへのＷＲＩＴＥコマンドの処理を説明する。物理ストレージ装置３（２０００）は、物理ＶＯＬ３（仮想ＶＯＬ１１）２９００へのＷＲＩＴＥコマンドを受信する（Ｓ１０１）。物理ストレージ装置３（２０００）は、ＷＲＩＴＥコマンドを物理ストレージ装置１（２０００）に転送する（Ｓ２０２）。
【０１２９】
物理ストレージ装置１（２０００）は、物理ＶＯＬ１（２９００）の指定アドレス領域を排他ロックし（Ｓ３０２）、ライトデータを書き込む（Ｓ３０３）。次に、物理ストレージ装置１（２０００）は、ＷＲＩＴＥコマンドを、物理ストレージ装置２（２０００）に転送する（Ｓ３０５）。
【０１３０】
物理ストレージ装置２（２０００）は、物理ＶＯＬ２（２９００）の指定アドレス領域を排他ロックし（Ｓ３０２）、ライトデータを書き込む（Ｓ３０３）。その後、物理ストレージ装置２（２０００）は、物理ストレージ装置１（２０００）に、ＷＲＩＴＥコマンドの完了応答を送信する（Ｓ３０９）。
【０１３１】
次に、物理ストレージ装置１（２０００）は、ＷＲＩＴＥコマンドを、物理ＶＯＬ３（２９００）を提供する物理ストレージ装置３（２０００）に転送する（Ｓ３０６）。物理ストレージ装置３（２０００）は、排他ロックを行うことなく、物理ＶＯＬ３（２９００）にライトデータを書き込む（Ｓ３０３）。その後、物理ストレージ装置３（２０００）は、物理ストレージ装置１（２０００）に、ＷＲＩＴＥコマンドの完了応答を送信する（Ｓ３０９）。
【０１３２】
次に、物理ストレージ装置１（２０００）は、排他ロックを解除し（Ｓ３０８）、ＷＲＩＴＥコマンド転送元である物理ストレージ装置３（２０００）に、ＷＲＩＴＥコマンド完了応答を返す（Ｓ３０９）。
【０１３３】
物理ストレージ装置１（２０００）からＷＲＩＴＥコマンド完了応答を受信すると、物理ストレージ装置３（２０００）は、ホスト計算機１０００に、ＷＲＩＴＥコマンド完了応答を返す（Ｓ２１１）。
【０１３４】
物理ストレージ装置１（２０００）は、ＷＲＩＴＥコマンド完了応答を返した後、物理ストレージ装置２（２０００）に、排他ロック解除コマンドを送信する（Ｓ３１１）。物理ストレージ装置２（２０００）は、排他ロック解除コマンドを受信し（Ｓ３１４）、排他ロック解除処理を実行し（Ｓ３１５）、排他ロック解除コマンドの完了応答を物理ストレージ装置１（２０００）に返す（Ｓ３１６）。
【０１３５】
図１７は、ホスト計算機１０００から物理ストレージ装置２０００へＲＥＡＤコマンドが発行されるときの、データ入出力処理プログラム２３５０の処理のフローチャート例を示す。以下の説明において、物理ボリュームからの読み出しは、記憶デバイス２２００又はキャッシュメモリ２４００からの読み出しを意味する。
【０１３６】
ステップＳ４０１において、データ入出力処理プログラム２３５０は、ホストからＲＥＡＤコマンドを受信する。ステップＳ４０２において、データ入出力処理プログラム２３５０は、ＲＥＡＤ対象ボリュームが第２ボリュームペアのＳＶＯＬまたは単体ボリュームペアのＳＶＯＬか否かを判定する。データ入出力処理プログラム２３５０は、判定において、ボリュームコピーペア管理テーブル２３４０を参照する。
【０１３７】
ステップＳ４０２の判定結果がＹｅｓの場合、データ入出力処理プログラム２３５０は、ステップＳ４０３において、ＲＥＡＤ対象ボリュームからデータを読み出し、ステップＳ４０７へ進む。
【０１３８】
ステップＳ４０２の判定がＮｏの場合、データ入出力処理プログラム２３５０は、ステップＳ４０４で排他ロック処理を実行し、ステップＳ４０５でＲＥＡＤ対象ボリュームからデータを読み出す。ステップＳ４０６において、データ入出力処理プログラム２３５０は、排他ロック解除処理を実行し、ステップＳ４０７へ進む。ステップＳ４０７において、データ入出力処理プログラム２３５０は、ホスト計算機１０００へ、読み出したデータを含むＲＥＡＤコマンド完了応答を送信し、当該フローを終了する。
【０１３９】
図２０、図２１、図２５、図２６及び図２７は、図１７のシーケンスを示す。図２０は単体ボリュームペアのＰＶＯＬへのＲＥＡＤコマンド処理のシーケンスを示す。図２１は単体ボリュームペアのＳＶＯＬへのＲＥＡＤコマンド処理のシーケンスを示す。図２５は第１ボリュームペアのＰＶＯＬへのＲＥＡＤコマンド処理のシーケンスを示す。図２６は第１ボリュームペアのＳＶＯＬへのＲＥＡＤコマンド処理のシーケンスを示す。図２７は第２ボリュームペアのＳＶＯＬへのＲＥＡＤコマンド処理のシーケンスを示す。
【０１４０】
図２０において、物理ストレージ装置１（２０００）は、物理ＶＯＬ１（仮想ＶＯＬ１１）へのＲＥＡＤコマンドを受信する（Ｓ４０１）。物理ストレージ装置１（２０００）は、指定アドレス領域を排他ロックし（Ｓ４０４）、指定アドレス領域からリードデータを読み出す（Ｓ４０５）。物理ストレージ装置１（２０００）は、排他ロックを解除し（Ｓ４０６）、ホスト計算機１０００にリードデータを含むＲＡＤコマンド完了応答を返す（Ｓ４０７）。
【０１４１】
図２１において、物理ストレージ装置２（２０００）は、物理ＶＯＬ２（仮想ＶＯＬ１１）へのＲＥＡＤコマンドを受信する（Ｓ４０１）。物理ストレージ装置２（２０００）は、排他ロックすることなく、指定アドレス領域からリードデータを読み出す（Ｓ４０３）。物理ストレージ装置２（２０００）は、ホスト計算機１０００に、リードデータを含むＲＡＤコマンド完了応答を返す（Ｓ４０７）。
【０１４２】
図２５のシーケンスは図２０のシーケンスと同じである。図２６のシーケンスは、物理ストレージ装置１（２０００）に代えて物理ストレージ装置２（２０００）が処理を行う点を除き、図２０のシーケンスと同じである。図２７のシーケンスは、物理ＶＯＬ２（２９００）及び物理ストレージ装置２（２０００）が、物理ＶＯＬ３（２９００）及び物理ストレージ装置３（２０００）に変更されている点を除き、図２１のシーケンスと同じである。
【０１４３】
本実施例によれば、ＨＡマルチターゲット構成のボリューム移行時に、ホストＩ／Ｏ無停止及び高可用性を維持することができる。
【０１４４】
なお、上記例は、処理効率化のため、最後にライトデータが書き込まれるボリューム（最後ボリューム）に対して排他ロックを行わないが、最後ボリュームへの書き込みにおいても排他ロックを行ってもよい。例えば、排他ロックは、他の物理ストレージ装置２０００からのＷＲＩＴＥコマンドを受信した後に行われる。ボリューム移行時のリード処理は、非移行時のＨＡ単体ボリュームペアでのリード処理と同様でもよい。
【０１４５】
上記例は、ボリュームペアの移行を行うが、３以上のボリュームからなるボリュームグループのボリューム移行に対しても、上記説明を適用することができる。上記説明は、３以上の物理ストレージ装置を含むストレージシステムに適用することができる。
【０１４６】
上述のように、ボリューム移行時のライトデータの書き込み順序と非移行時の書き込み順序が一致することで、ストレージシステムの機能を効率的に構成することができる。移行時と非移行時の書き込み順序は異なっていてもよい。例えば上記例において、物理ＶＯＬ２と物理ＶＯＬ３の書き込み順序を入れ替えてもよい。これらは、他の実施例において同様である。
【実施例２】
【０１４７】
以下で、実施例２について説明する。主に実施例１との相違点を説明する。図２８は、本実施例のデータ移行（ボリューム移行）を示す。本実施例は、物理ＶＯＬ１（２９００）を物理ＶＯＬ３（２９００）に移行する。移行前後において、物理ＶＯＬ２（２９００）が共通である。図２８は、ボリューム移行における、ＨＡカスケード構成の概要を示す。
【０１４８】
ＨＡカスケード構成は、一つのボリュームを一方のＨＡボリュームペアのＳＶＯＬ、かつ、もう一方のＨＡボリュームペアのＰＶＯＬとし、それらの三つのボリュームで二つのＨＡボリュームペアを構成する。
【０１４９】
物理ＶＯＬ１（２９００）と物理ＶＯＬ２（２９００）は、ＨＡボリュームペア７１００を構成している。移行のため、まず、物理ＶＯＬ２（２９００）と物理ＶＯＬ３（２９００）で、ＨＡボリュームペア７２００が形成される。ＨＡボリュームペア７２００において、物理ＶＯＬ２はＰＶＯＬ、物理ＶＯＬ３はＳＶＯＬとする。移行において、ＰＶＯＬである物理ＶＯＬ２からＳＶＯＬである物理ＶＯＬ３にデータがコピーされる。
【０１５０】
次に、ホスト計算機１０００及び物理ストレージ装置３（２０００）において、ホスト計算機１０００から物理ＶＯＬ３（２９００）へのパス８３００が定義される。物理ストレージ装置３（２０００）は、物理ＶＯＬ３（２９００）について、ホスト計算機１０００からの要求に対して、物理ＶＯＬ１（２９００）及び物理ＶＯＬ２（２９００）と同様に、仮想ＶＯＬ１１（３９００）の情報を返す。
【０１５１】
次に、ホスト計算機１０００及び物理ストレージ装置１（２０００）において、ホスト計算機１０００から物理ＶＯＬ２へのパス８１００が削除される。さらに、物理ストレージ装置１（２０００）及び物理ストレージ装置２（２０００）は、ＨＡボリュームペア７１００を削除する。これにより、物理ストレージ装置２（２０００）の物理ＶＯＬ２（２９００）から物理ストレージ装置３（２０００）の物理ＶＯＬ３（２９００）への移行が完了する。
【０１５２】
図２９は、ＨＡペアの物理ストレージ装置１（ＳＴ１）のＰＶＯＬ（ＶＯＬ１）を、物理ストレージ装置３（ＳＴ３）に移行する手順を示す。移行後の物理ボリュームは、物理ＶＯＬ３である。本実施例では、システム管理者が当該手順を実行する。なお、一部の符号を省略している。
【０１５３】
ステップＢ‐０は、初期状態を示す。ホスト計算機１０００と、物理ＶＯＬ１、ＶＯＬ２との間にパスが定義されている。物理ＶＯＬ１、ＶＯＬ２は、ボリュームペアを構成している。物理ＶＯＬ１、ＶＯ２は、仮想ＶＯＬ１１の構成要素であり、ホスト計算機１０００は、仮想ＶＯＬ１１のアクセスのために、いずれの物理ＶＯＬ１、ＶＯＬにもアクセスすることができる。
【０１５４】
ステップＢ‐１において、システム管理者からの指示に従って、物理ストレージ装置３は、物理ＶＯＬ３を作成する。システム管理者からの指示に従って、物理ストレージ装置２（ＳＴ２）及び物理ストレージ装置３は、物理ＶＯＬ２と物理ＶＯＬ３のＨＡボリュームペアを作成する。このとき、物理ＶＯＬ１、ＶＯＬ２及びＶＯＬ３はＨＡカスケード構成となる。
【０１５５】
次に、ステップＢ‐２において、システム管理者からの指示に従って、ホスト計算機１０００及び物理ストレージ装置３は、ホスト計算機１０００から物理ＶＯＬ３へのパスをおいて定義する。物理ストレージ装置３は、ホストグループ管理テーブル２３８０に、ホストのＷＷＮ、ポートＩＤ、ＶＯＬ３のボリュームＩＤの情報を追加する。
【０１５６】
次に、ステップＢ‐３において、システム管理者は、ホスト計算機１０００から物理ＶＯＬ１へのパスを、ホスト計算機１０００及び物理ストレージ装置１において削除する。物理ストレージ装置１は、ホストグループ管理テーブル２３８０から、ホストのＷＷＮ、ポートＩＤ、ＶＯＬ２のボリュームＩＤの情報を削除する。
【０１５７】
次に、ステップＢ‐４において、システム管理者からの指示に従って、物理ストレージ装置１及び物理ストレージ装置２は、物理ＶＯＬ１と物理ＶＯＬ２ＨＡペアを削除し、さらに、物理ストレージ装置１が、物理ＶＯＬ１の仮想ＩＤを削除する。
【０１５８】
図３０はＨＡカスケード構成におけるホスト計算機１０００から第１ボリュームペアのＰＶＯＬへのＷＲＩＴＥコマンドの処理シーケンスを示す。図３１はＨＡカスケード構成におけるホスト計算機１０００から第１ボリュームペアのＳＶＯＬへのＷＲＩＴＥコマンドの処理シーケンスを示す。図３２はＨＡカスケード構成におけるホスト計算機１０００から第２ボリュームペアのＳＶＯＬへのＷＲＩＴＥコマンドの処理シーケンスを示す。
【０１５９】
図３０において、物理ストレージ装置１（２０００）は、物理ＶＯＬ１（仮想ＶＯＬ１１）２９００へのＷＲＩＴＥコマンドを受信する（Ｓ１０１）。物理ＶＯＬ１（２９００）は、第１ボリュームペアのＰＶＯＬである。物理ストレージ装置１（２０００）は、物理ＶＯＬ１（２９００）の指定アドレス領域を排他ロックし（Ｓ６０５）、ライトデータを書き込む（Ｓ６０６）。
【０１６０】
次に、物理ストレージ装置１（２０００）は、ＷＲＩＴＥコマンドを、物理ＶＯＬ２（２９００）を提供する物理ストレージ装置２（２０００）に転送する（Ｓ６０９）。物理ＶＯＬ２（２９００）は、第１ボリュームペアのＳＶＯＬであり、かつ、第２ボリュームペアのＰＶＯＬである。
【０１６１】
物理ストレージ装置２（２０００）は、物理ＶＯＬ２（２９００）の指定アドレス領域を排他ロックし（Ｓ７０５）、ライトデータを書き込む（Ｓ７０６）。次に、物理ストレージ装置２（２０００）は、ＷＲＩＴＥコマンドを、物理ＶＯＬ３（２９００）を提供する物理ストレージ装置３（２０００）に転送する（Ｓ７０８）。物理ＶＯＬ３（２９００）は、第２ボリュームペアのＳＶＯＬでる。
【０１６２】
物理ストレージ装置３（２０００）は、排他ロックすることなく、物理ＶＯＬ３（２９００）の指定アドレス領域に、ライトデータを書き込む（Ｓ７０６）。次に、物理ストレージ装置３（２０００）は、物理ストレージ装置２（２０００）に、ＷＲＩＴＥコマンドの完了応答を送信する（Ｓ７１０）。
【０１６３】
物理ストレージ装置３（２０００）からＷＲＩＴＥコマンドの完了応答を受信すると、物理ストレージ装置２（２０００）は排他ロックを解除し（Ｓ７０９）、ＷＲＩＴＥコマンド転送元である物理ストレージ装置１（２０００）に、ＷＲＩＴＥコマンドの完了応答を送信する（Ｓ７１０）。
【０１６４】
物理ストレージ装置２（２０００）からＷＲＩＴＥコマンドの完了応答を受信すると、物理ストレージ装置１（２０００）は、排他ロックを解除し（Ｓ６１１）、ＷＲＩＴＥコマンドの完了応答をホスト計算機１０００に返す（Ｓ６１２）。
【０１６５】
図３１において、物理ストレージ装置２（２０００）は、物理ＶＯＬ２（仮想ＶＯＬ１１）２９００へのＷＲＩＴＥコマンドを受信する（Ｓ１０１）。物理ストレージ装置２（２０００）は、ＷＲＩＴＥコマンドを物理ストレージ装置１（２０００）に転送する（Ｓ６０３）。
【０１６６】
物理ストレージ装置１（２０００）は、物理ＶＯＬ１（２９００）の指定アドレス領域を排他ロックし（Ｓ７０５）、ライトデータを書き込む（Ｓ７０６）。次に、物理ストレージ装置１（２０００）は、ＷＲＩＴＥコマンドの完了応答を、物理ストレージ装置２（２０００）に送信する（Ｓ７１０）。物理ストレージ装置２（２０００）は、物理ＶＯＬ２（２９００）の指定アドレス領域を排他ロックし（Ｓ６０５）、ライトデータを書き込む（Ｓ６０６）。
【０１６７】
次に、物理ストレージ装置２（２０００）は、ＷＲＩＴＥコマンドを、物理ＶＯＬ３（２９００）を提供する物理ストレージ装置３（２０００）に転送する（Ｓ６１０）。物理ストレージ装置３（２０００）は、排他ロックを行うことなく、物理ＶＯＬ３（２９００）にライトデータを書き込む（Ｓ７０６）。その後、物理ストレージ装置３（２０００）は、物理ストレージ装置２（２０００）に、ＷＲＩＴＥコマンドの完了応答を送信する（Ｓ７１０）。
【０１６８】
物理ストレージ装置３（２０００）からＷＲＩＴＥコマンドの完了応答を送信すると、物理ストレージ装置２（２０００）は、排他ロックを解除し（Ｓ６１１）、ＷＲＩＴＥコマンドの完了応答をホスト計算機１０００に返す（Ｓ６１２）。
【０１６９】
次に、物理ストレージ装置２（２０００）は、排他ロック解除コマンドを物理ストレージ装置１（２０００）に送信する（Ｓ６１５）。物理ストレージ装置１（２０００）は、排他ロックコマンドを受信し（Ｓ７１３）、排他ロックを解除する（Ｓ７１４）。物理ストレージ装置１（２０００）は、物理ストレージ装置２（２０００）に、排他ロック解除コマンドの完了応答を返す（Ｓ７１８）。
【０１７０】
図３２において、物理ストレージ装置３（２０００）は、物理ＶＯＬ３（仮想ＶＯＬ１１）２９００へのＷＲＩＴＥコマンドを受信する（Ｓ１０１）。物理ストレージ装置３（２０００）は、ＷＲＩＴＥコマンドを物理ストレージ装置２（２０００）に転送する（Ｓ６０４）。物理ストレージ装置３（２０００）からＷＲＩＴＥコマンドを受信すると、物理ストレージ装置２（２０００）は、物理ストレージ装置１（２０００）にＷＲＩＴＥコマンドを転送する（Ｓ７０４）。
【０１７１】
物理ストレージ装置１（２０００）は、物理ＶＯＬ１（２９００）の指定アドレス領域を排他ロックし（Ｓ７０５）、ライトデータを書き込む（Ｓ７０６）。次に、物理ストレージ装置１（２０００）は、ＷＲＩＴＥコマンドの完了応答を、物理ストレージ装置２（２０００）に送信する（Ｓ７１０）。
【０１７２】
物理ストレージ装置２（２０００）は、物理ＶＯＬ２（２９００）の指定アドレス領域を排他ロックし（Ｓ７０５）、ライトデータを書き込む（Ｓ７０６）。次に、物理ストレージ装置２（２０００）は、ＷＲＩＴＥコマンドの完了応答を、物理ストレージ装置３（２０００）に送信する（Ｓ７１２）。
【０１７３】
ＷＲＩＴＥコマンドの完了応答を物理ストレージ装置２（２０００）から受信した物理ストレージ装置３（２０００）は、物理ＶＯＬ３（２９００）の指定領域にライトデータを書き込み（Ｓ６０６）、ホスト計算機１０００にＷＲＩＴＥコマンドの完了応答を返す（Ｓ６１２）。
【０１７４】
次に、物理ストレージ装置３（２０００）は、排他ロック解除コマンドを物理ストレージ装置２（２０００）に送信する（Ｓ６１７）。物理ストレージ装置２（２０００）は排他ロック解除コマンドを受信し（Ｓ７１３）、排他ロックを解除する（Ｓ７１４）。次に、物理ストレージ装置２（２０００）は、物理ストレージ装置１（２０００）に、排他ロック解除コマンドを送信する（Ｓ７１６）。
【０１７５】
物理ストレージ装置１（２０００）は、排他ロック解除コマンドを受信し（Ｓ７１３）、排他ロックを解除する（Ｓ７１４）。物理ストレージ装置１（２０００）は、物理ストレージ装置２（２０００）に、排他ロック解除コマンドの完了応答を返す（Ｓ７１８）。
【０１７６】
物理ストレージ装置１（２０００）から排他ロック解除コマンドの完了応答を受信すると、物理ストレージ装置２（２０００）は、物理ストレージ装置３（２０００）に、排他ロック解除コマンドの完了応答を返す（Ｓ７１８）。
【０１７７】
本実施例によれば、ＨＡカスケード構成でのボリューム移行時に、ホストＩ／Ｏ無停止及び高可用性を維持することができる。なお、ボリューム移行時のＲＥＡＤコマンド処理は実施例１と同様であり、説明を省略する。
【実施例３】
【０１７８】
以下において、実施例３を説明する。本実施例は、ＨＡマルチターゲット構成における、Ｉ／Ｏスイッチングボリュームを使用したボリューム移行を説明する。図３３Ａ及び図３３Ｂは、ＨＡペアの物理ストレージ装置２（ＳＴ２）のＳＶＯＬ（物理ＶＯＬ２）を、物理ストレージ装置３（ＳＴ３）に移行する手順を示す。移行後の物理ボリュームは、物理ＶＯＬ３である。本実施例では、システム管理者が当該手順を実行する。なお、図３３Ａ及び３３Ｂにおいて一部の符号を省略している。
【０１７９】
ステップＣ‐０は、ステップＣの初期状態を示す。ホスト計算機１０００と、物理ＶＯＬ１、ＶＯＬ２との間にパスが定義されている。物理ＶＯＬ１、ＶＯＬ２は、ボリュームペアを構成している。物理ＶＯＬ１、物理ＶＯＬ２は、仮想ＶＯＬ１１の構成要素であり、ホスト計算機１０００は、仮想ＶＯＬ１１のアクセスのために、いずれの物理ＶＯＬ１、ＶＯＬにもアクセスすることができる。
【０１８０】
ステップＣ‐１において、システム管理者からの指示に従って、物理ストレージ装置３は、物理ＶＯＬ２に関連付けられたＩ／Ｏスイッチングボリューム（ＳＷＶＯＬ）（２９００）を作成する。ホスト計算機１０００からＳＷＶＯＬへのＩ／Ｏ要求は、ＳＷＶＯＬに関連付けられた物理ボリュームへ転送される。また、システム管理者からの指示に従って、物理ストレージ装置３は、ＳＷＶＯＬへの仮想ＩＤを付与する。
【０１８１】
ＳＷＶＯＬからＳＷＶＯＬに関連付けられた物理ボリュームへ転送されたＩ／Ｏ要求の処理と、ホスト計算機から直接当該物理ボリュームへ発行されるＩ／Ｏ要求の処理は、Ｉ／Ｏ要求がＳＷＶＯＬを経由する以外、同じである。例えば、ステップＣ‐３において、ホスト計算機１０００からＳＷＶＯＬを経由し物理ＶＯＬ２へ転送されるＩ／Ｏ要求の処理、ホスト計算機１０００から物理ＶＯＬ２へ発行されるＩ／Ｏ要求の処理と、Ｉ／Ｏ要求がＳＶＯＬ経由する部分を除いて同じである。
【０１８２】
ステップＣ‐２において、システム管理者からに指示に従って、ホスト計算機１０００及び物理ストレージ装置３は、ホスト計算機１０００からＳＷＶＯＬへのパス定義を定義する。ステップＣ‐３において、システム管理者からの指示に従って、物理ストレージ装置１及び物理ストレージ装置３は、ＶＯＬ１とＶＯＬ３のＨＡペア作成を実施する。
【０１８３】
ステップＣ‐４において、システム管理者からの指示に従って、物理ストレージ装置３は、物理ＶＯＬ３への仮想ＩＤを付与する。さらに、ホスト計算機１０００及び物理ストレージ装置３は、ホスト計算機１０００から物理ＶＯＬ３へのパスを定義し、ＳＷＶＯＬを削除する。
【０１８４】
ステップＣ‐５において、システム管理者からの指示に従って、物理ストレージ装置２は、物理ＶＯＬ３に関連付けられたＳＷＶＯＬを作成し、当該ＳＷＶＯＬへ仮想ＩＤを付する。ホスト計算機１０００及び物理ストレージ装置２は、ホスト計算機１０００からＳＷＶＯＬへのパスを定義し、ホスト計算機１０００からＶＯＬ２へのパスを削除し、そして、物理ＶＯＬ２の仮想ＩＤを削除する。
【０１８５】
ステップＣ‐６において、システム管理者からの指示に従って、ホスト計算機１０００及び物理ストレージ装置２は、ホスト計算機１０００からＳＷＶＯＬへのパスを削除する。ステップＣ‐７において、システム管理者からの指示に従って、物理ストレージ装置２は、ＳＷＶＯＬを削除し、物理ストレージ装置１、２は、物理ＶＯＬ１と物理ＶＯＬ２のＨＡペアを削除する。
【０１８６】
本実施例によれば、Ｉ／Ｏスイッチングボリュームを使用することによって、ストレージ装置における物理ボリュームの管理と、物理ストレージ装置とホスト計算機との間のパス管理とを独立に行うことができる。上記例のように移行後の新物理ボリュームと移行後に削除される移行前物理ボリュームの双方のＩ／Ｏスイッチングボリュームを用意することが好ましいが、一方のみでもよい。
【実施例４】
【０１８７】
以下において、実施例４について説明する。本実施例は、ＨＡカスケード構成における、Ｉ／Ｏスイッチングボリュームを使用したボリューム移行を説明する。主に実施例３との相違点を説明する。図３４Ａ及び図３４Ｂは、ＨＡペアの物理ストレージ装置１（ＳＴ１）のＰＶＯＬ（ＶＯＬ１）を、物理ストレージ装置３（ＳＴ３）に移行する手順を示す。移行後の物理ボリュームは、物理ＶＯＬ３である。本実施例では、システム管理者が上記手順を実行する。なお、図３４Ａ及び３４Ｂにおいて一部の符号を省略している。
【０１８８】
ステップＤ‐０は、ステップＤの初期状態を示す。ホスト計算機１０００と、物理ＶＯＬ１、ＶＯＬ２との間にパスが定義されている。物理ＶＯＬ１、ＶＯＬ２は、ボリュームペアを構成している。
【０１８９】
ステップＤ‐１において、システム管理者からの指示に従って、物理ストレージ装置３は、物理ＶＯＬ２に関連付けられたＳＷＶＯＬを作成し、ＳＷＶＯＬへ仮想ＩＤを付与する。
【０１９０】
ステップＤ‐２において、システム管理者からの指示に従って、ホスト計算機１０００及び物理ストレージ装置３は、ホスト計算機１０００からＳＷＶＯＬへのパスを定義する。ステップＤ‐３において、システム管理者からの指示に従って、物理ストレージ装置３は、物理ＶＯＬ３を作成し、物理ストレージ装置２、３は、物理ＶＯＬ２と物理ＶＯＬ３のＨＡペアを作成する。
【０１９１】
ステップＤ‐４において、システム管理者からの指示に従って、物理ストレージ装置３は、物理ＶＯＬ３へ仮想ＩＤを付与する。ホスト計算機１０００及び物理ストレージ装置３は、ホスト計算機１０００からＶＯＬ３へのパスを定義する。物理ストレージ装置３は、ＳＷＶＯＬを削除する。
【０１９２】
ステップＤ‐５において、システム管理者からの指示に従って、物理ストレージ装置１（ＳＴ１）は、物理ＶＯＬ２に関連付けられたＳＷＶＯＬを作成し、ＳＷＶＯＬへ仮想ＩＤを付与する。ホスト計算機１０００及び物理ストレージ装置１は、ホスト計算機１０００からＳＷＶＯＬへのパスを定義し、ホスト計算機１０００から物理ＶＯＬ１へのパスを削除し、物理ＶＯＬ１の仮想ＩＤを削除する。
【０１９３】
ステップＤ‐６において、システム管理者からの指示に従って、ホスト計算機１０００及び物理ストレージ装置１は、ホスト計算機１０００からＳＷＶＯＬへのパスを削除する。ステップＤ‐７において、システム管理者からの指示に従って、物理ストレージ装置１はＳＷＶＯＬを削除し、物理ストレージ装置１、２は、物理ＶＯＬ１と物理ＶＯＬ２のＨＡペアを削除する。
【０１９４】
本実施例によれば、Ｉ／Ｏスイッチングボリュームを使用することによって、ストレージ装置における物理ボリュームの管理と、物理ストレージ装置とホスト計算機との間のパス管理とを独立に行うことができる。上記例のように移行後の新物理ボリュームと移行後に削除される移行前物理ボリュームの双方のＩ／Ｏスイッチングボリュームを用意することが好ましいが、一方のみでもよい。
【実施例５】
【０１９５】
以下において、実施例５について説明する。図３５は、ＨＡペアの物理ストレージ装置２（ＳＴ２）のＳＶＯＬ（ＶＯＬ２）を、同じ物理ストレージ装置２の別ボリューム（ＶＯＬ３）と入れ替える手順を示す。本実施例では、システム管理者が当該手順を実行する。なお、図３５において一部の符号を省略している。
【０１９６】
ステップＥ‐０は、ステップＥの初期状態を示す。ホスト計算機１０００と、物理ＶＯＬ１、ＶＯＬ２との間にパスが定義されている。物理ＶＯＬ１、ＶＯＬ２は、ボリュームペアを構成している。ステップＥ‐１において、システム管理者からの指示に従って、物理ストレージ装置２は、物理ＶＯＬ３を作成し、物理ＶＯＬ１と物理ＶＯＬ３のＨＡペアを作成する。
【０１９７】
ステップＥ‐２において、システム管理者からの指示に従って、物理ストレージ装置２は、ＶＯＬ３へ仮想ＩＤを付与する。ホスト計算機１０００及び物理ストレージ装置２は、ホスト計算機１０００から物理ＶＯＬ３へのパスを定義し、ホスト計算機１０００から物理ＶＯＬ２へのパスを削除し、物理ＶＯＬ２の仮想ＩＤを削除する。ステップＥ‐３において、システム管理者からの指示に従って、物理ストレージ装置１、２は、物理ＶＯＬ１と物理ＶＯＬ２のＨＡペアを削除する。
【０１９８】
本実施例によれば、同一物理ストレージ装置内でＡｃｔｉｖｅ−Ａｃｔｉｖｅ型ＨＡボリュームペアのボリューム移行を行い、当該移行時にホストＩ／Ｏ無停止及び高可用性を維持することができる。
【０１９９】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【０２００】
また、上記の各構成・機能・処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード等の記録媒体に置くことができる。
【手続補正２】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2015162674.tif 000047
【図２】
2015162674.tif 000048
【図３】
2015162674.tif 000049
【図４】
2015162674.tif 000050
【図５】
2015162674.tif 000051
【図６Ａ】
2015162674.tif 000052
【図６Ｂ】
2015162674.tif 000053
【図７】
2015162674.tif 000054
【図８】
2015162674.tif 000055
【図９Ａ】
2015162674.tif 000056
【図９Ｂ】
2015162674.tif 000057
【図１０】
2015162674.tif 000058
【図１１】
2015162674.tif 000059
【図１２】
2015162674.tif 000060
【図１３】
2015162674.tif 000061
【図１４】
2015162674.tif 000062
【図１５】
2015162674.tif 000063
【図１６】
2015162674.tif 000064
【図１７】
2015162674.tif 000065
【図１８】
2015162674.tif 000066
【図１９】
2015162674.tif 000067
【図２０】
2015162674.tif 000068
【図２１】
2015162674.tif 000069
【図２２】
2015162674.tif 000070
【図２３】
2015162674.tif 000071
【図２４】
2015162674.tif 000072
【図２５】
2015162674.tif 000073
【図２６】
2015162674.tif 000074
【図２７】
2015162674.tif 000075
【図２８】
2015162674.tif 000076
【図２９】
2015162674.tif 000077
【図３０】
2015162674.tif 000078
【図３１】
2015162674.tif 000079
【図３２】
2015162674.tif 000080
【図３３Ａ】
2015162674.tif 000081
【図３３Ｂ】
2015162674.tif 000082
【図３４Ａ】
2015162674.tif 000083
【図３４Ｂ】
2015162674.tif 000084
【図３５】
2015162674.tif 000085
【国際調査報告】
2015162674.tif 000086
2015162674.tif 000087
2015162674.tif 000088