【実施例1】
【0011】
以下に説明するストレージシステムは、Active−Active型HA構成を有する。HA構成は、二重化された系を有し、障害発生時には自動的に故障した系を切り離し、正常な系のみを用いて動作を継続するための自動障害回復機能を備える。Active−Active型HA構成は、全ての系を稼動系として運用することで、リソースの有効活用及び負荷分散を実現する。以下の説明において、HA構成及びHAペアは、Active−Active型のHA構成及びHAペアを意味する。ストレージシステムは、HAペアのいずれに対するI/Oアクセスも受け付ける。
【0012】
以下においては、HAボリュームペアの移行を説明する。具体的には、HAボリュームペアの移行は、移行前HAボリュームペアの一つを別のボリュームに移行し、移行前HAボリュームペアの他方と新たなボリュームとで、移行後HAボリュームペアを構成する。ストレージシステムは、移行中において、全てのボリュームへのI/Oアクセスを受け付ける。ストレージシステムは、移行完了後に、HAボリュームペアを切り替える。
【0013】
HAボリュームペアは、Primary Volume(PVOL)とSecondary Volume(SVOL)とで構成される。一例において、ストレージシステムは、ペア作成時に、PVOLのデータをSVOLにコピーする。
【0014】
後述するように、非移行時において、ストレージシステムは、SVOLへのWRITEコマンドを受信すると、PVOLへのライトデータの書き込み(ライトキャッシュへの書き込み又は記憶ドライブへの書き込みのいずれか)終了後に、SVOLへのライトデータの書き込みを行う。一例において、PVOLへのI/Oアクセスは、PVOLの排他ロックを伴い、SVOLへのI/Oアクセスにおいて排他ロックは使用されない。SVOLへのアクセスにおいて排他ロックが使用されてもよい。
【0015】
移行時及び非移行時において、ライト処理における排他ロックは、他のライト処理及びリード処理を禁止する。リード処理における排他ロックは、他のライト処理を禁止し、他のリード処理を禁止しても禁止しなくともよい。リード処理における排他ロックは、他のリード処理を許可することでホストへの応答遅延を抑制できる。
【0016】
図1は、ボリューム移行における、HAマルチターゲット構成の概要を示す図である。HAマルチターゲット構成は、一つのボリュームを二つのHAボリュームペアの共通のPVOLとし、それらの三つのボリュームで二つのHAボリュームペアを構成する。
【0017】
図1のシステムは、ホスト計算機1000と、物理ストレージ装置(単にストレージ装置とも呼ぶ)2000と、仮想ストレージ装置3000とを含む。仮想ストレージ装置3000は、複数の物理ストレージ装置2000で構成されている。
【0018】
本システムは、複数物理ストレージ装置2000によるActive−Active型HA構成(以下、HAボリューム構成とも呼ぶ)を有する。複数物理ストレージ装置2000は、単一の仮想ストレージ装置3000として、ホスト計算機1000に提供される。各物理ストレージ装置2000は、ホスト計算機1000からの要求に対して、同一のストレージ装置構成情報、すなわち仮想ストレージ装置1(3000)の構成情報を提供する。
【0019】
図1の例において、物理ストレージ装置1(2000)の物理VOL1(2900)と、物理ストレージ装置2(2000)の物理VOL2(2900)とは、HAボリュームペア7100を構成している。物理VOL1(2900)はPVOLであり、物理VOL2(2900)はSVOLである。
【0020】
物理VOL1(2900)及び物理VOL2(2900)について、ホスト計算機1000に対して、同一のVOL情報、すなわち仮想VOL11(3900)の情報が提供される。ホスト計算機1000は、仮想VOL11(3900)にアクセスするため、物理VOL1(2900)及び物理VOL2(2900)のいずれへのパスも使用することができる。
【0021】
一方の物理VOL2900に対するライトデータは、他方の物理VOL2900に転送される。これにより、物理VOL1(2900)及び物理VOL2(2900)の間のデータ同一性が維持される。物理ストレージ装置1(2000)及び物理ストレージ装置2(2000)は、それぞれ、ホスト計算機1000からのREADコマンドに対して、自装置が提供する物理ボリューム2900から読み出したデータを送信する。
【0022】
このように、物理VOL1(2900)及び物理VOL2(2900)は、ホスト計算機1000から一つのボリュームとしてI/Oアクセス可能であり、また、いずれかの物理ボリュームにおいて障害が発生しても、他の物理ボリュームへのI/Oアクセスが可能である。
【0023】
本実施例は、ホストI/O無停止かつActive−Active型HA構成を維持したボリュームペアの移行を説明する。一例として、物理VOL2(2900)を物理VOL3へ移行する例を説明する。物理VOL1及び物理VOL2は移行前ボリュームペアを構成し、物理VOL1(2900)及び物理VOL3(2900)は移行後ボリュームペアを構成する。
【0024】
まず、物理VOL1(2900)と物理VOL3(2900)で、HAボリュームペア7200が形成される。ここでは、物理VOL1(2900)はPVOL、物理VOL3(2900)はSVOLとする。移行において、PVOLである物理VOL1(2900)からSVOLである物理VOL3(2900)にデータがコピーされる。
【0025】
ホスト計算機1000及び物理ストレージ装置3(2000)において、ホスト計算機1000から物理VOL3(2900)へのパス8300が定義される。物理ストレージ装置3(2000)は、物理VOL3(2900)について、ホスト計算機1000からの要求に対して、物理VOL1(2900)及び物理VOL2(2900)と同様に、仮想VOL11(3900)の情報を返す。
【0026】
次に、ホスト計算機1000及び物理ストレージ装置2(2000)において、ホスト計算機1000から物理VOL2(2900)へのパス8200が削除される。さらに、物理ストレージ装置1(2000)及び物理ストレージ装置2(2000)は、HAボリュームペア7100を削除する。これにより、物理ストレージ装置2(2000)の物理VOL2(2900)から物理ストレージ装置3(2000)の物理VOL3(2900)への移行が完了する。
【0027】
図2は、本実施例における計算機システムの構成例を示す。
図2の計算機システムは、ホスト計算機1000と、物理ストレージ装置2000と、管理計算機4000と、を含む。
【0028】
計算機システムに含まれる各種装置(システム)の数は、設計に依存する。物理ストレージ装置1〜3(2000)は、1台の仮想的なストレージ装置である仮想ストレージ装置を構成する。本例の仮想ストレージ環境において、2台または3台の物理ストレージ装置が1台の仮想ストレージを構成するが、その構成物理ストレージ数は設計に依存する。
【0029】
物理ストレージ装置A(2000)は、Quorum Diskを持つ。Quorum Diskは、HA構成における物理ストレージ装置2000間で通信不可となった場合に、HA構成が組まれた物理ストレージ装置2000のうち、継続稼動させるものと停止させるものを決定する機能を提供する。Quorum Diskにより、スプリットブレイン問題を防ぐことができる。
【0030】
ホスト計算機1000、管理計算機4000及び物理ストレージ装置2000は、LAN6000で構成された管理ネットワークにより、通信可能に接続されている。例えば、管理ネットワーク6000は、IPネットワークである。管理ネットワーク6000は、管理データ通信用のネットワークであればどのタイプのネットワークでもよい。
【0031】
ホスト計算機1000及び物理ストレージ装置2000は、SAN(Storage Area Network)5000で構成されたデータネットワークにより接続されている。ホスト計算機1000は、SAN5000を介して、物理ストレージ装置2000のボリュームにアクセスする。データネットワーク5000はデータ通信用のネットワークであれば、どのようなタイプのネットワークでもよい。データネットワーク5000と管理ネットワーク6000は同一のネットワークでもよい。
【0032】
図3は、ホスト計算機1000の構成例を模式的に示す。ホスト計算機1000は、プロセッサであるCPU(Central Processing Unit)1100、不揮発性の二次記憶デバイス1200、主記憶デバイスであるメモリ1300、入出力デバイス1400、I/O要求発行側インタフェースであるイニシエータポート1600、管理インタフェース1700を含む。各構成要素は、バス1500により通信可能に接続されている。
【0033】
CPU1100は、メモリ1300に格納されたプログラムに従って動作する。典型的には、二次記憶デバイス1200に格納されているプログラム及びデータが、メモリ1300にロードされる。本例において、メモリ1300は、OS(Operating System)1310、交替パスプログラム1320及びアプリケーションプログラム1330を保持する。アプリケーションプログラム1330は、物理ストレージ装置2000が提供するボリュームへデータの読み書きを行う。
【0034】
イニシエータポート1600は、SAN4000に接続するネットワークインタフェースである。イニシエータポート1600は、SAN5000を介して物理ストレージ装置2000とデータ及び要求を送受信する。
【0035】
管理インタフェース1700は、LAN6000に接続するネットワークインタフェースである。管理インタフェース1700は、LAN6000を介して物理ストレージ装置2000と管理データ及び制御命令を送受信する。管理インタフェース1700は、さらに、LAN6000を介して管理計算機4000と、管理データ及び制御命令を送受信する。
【0036】
図4は、物理ストレージ装置2000の構成例を模式的に示す図である。本例において、全物理ストレージ装置2000の基本構成は同じであるが、構成要素の数や記憶容量等は各物理ストレージ装置2000に依存する。これらは異なる基本構成を有していてもよい。
【0037】
物理ストレージ装置2000は、複数の記憶デバイス(例えば、ハードディスクドライブ及び/又はSSD(Solid State Drive))2200と、物理ストレージ装置2000を制御し、ボリューム管理や、ホスト計算機1000又は他の物理ストレージ装置2000とのデータ通信等を行うストレージコントローラとを含む。
【0038】
ストレージコントローラは、プロセッサであるCPU2100、プログラムメモリ2300、I/O要求発行側インタフェースであるイニシエータポート2600、I/O要求受信側インタフェースであるターゲットポート2700、管理インタフェース2800、データ転送のためのキャッシュメモリ2400、を含む。ストレージ装置2000の構成要素は、バス2500で通信可能に接続されている。
【0039】
物理ストレージ装置2000は、イニシエータポート2600 を介して、外部(他)の物理ストレージ装置2000に接続し、外部の物理ストレージ装置2000にI/O要求及びライトデータを送信し、外部の物理ストレージ装置2000からリードデータを受信することができる。イニシエータポート2600は、SAN5000に接続する。
【0040】
イニシエータポート2600は、外部の物理ストレージ装置2000との通信に用いられるFC、Fibre Channel Over Ethernet(FCoE)、iSCSI等のプロトコルを、ストレージコントローラ内部で用いられるプロトコル、例えば、PCIeに変換する機能を有する。
【0041】
物理ストレージ装置2000は、ターゲットポート2700において、ホスト計算機1000又は外部の物理ストレージ装置2000に接続する。物理ストレージ装置2000は、ターゲットポート2700を介して、ホスト計算機1000又は外部の物理ストレージ装置2000からI/O要求及びライトデータを受信し、また、ホスト計算機1000又は外部の物理ストレージ装置2000にリードデータを送信する。ターゲットポート2700は、SAN5000に接続する。
【0042】
ターゲットポート2700は、ホスト計算機1000又は外部の物理ストレージ装置2000との通信に用いられるFC、Fibre Channel Over Ethernet(FCoE)、iSCSI等のプロトコルを、ストレージコントローラ内部で用いられるプロトコル、例えば、PCIeに変換する機能を有する。
【0043】
管理インタフェース2800は、LAN6000に接続するためのデバイスである。管理インタフェース2800は、LAN6000で使用されるプロトコルを、ストレージコントローラ内部で用いられるプロトコル、例えば、PCIeに変換する機能を有する。
【0044】
CPU2100は、物理ストレージ装置2000の制御のためのプログラムを実行し、ホスト計算機1000からのI/Oの制御及び物理ストレージ装置2000ボリュームの管理、制御を含む所定の機能を実現する。本実施例で説明するCPU2100により実現される機能の少なくとも一部は、CPU2100と異なるロジック回路によって実現されてもよい。
【0045】
プログラムはプロセッサ(CPU)によって実行されることで、定められた処理をメモリ及びインタフェースを用いながら行う。従って、本開示においてプログラムを主語とする説明は、プロセッサを主語とした説明でもよい。若しくは、プログラムが実行する処理は、そのプログラムが動作する装置(例えば物理ストレージ装置2000又はホスト計算機1000)及びシステムが行う処理である。
【0046】
プログラムメモリ2300は、CPU2100が扱うデータやプログラムを格納する。プログラムメモリ2300のデータは、例えば、物理ストレージ装置2000内のいずれかの記憶デバイス2200、フラッシュメモリ(不図示)、又はLAN5000を介して接続された他の装置等、非一時的記憶媒体を備える記憶デバイスからプログラムメモリ2300にロードされる。
【0047】
図4は、物理ストレージ装置2000それぞれのプログラムメモリ2300におけるソフトウェア構成例を示す。プログラムメモリ2300は、データ入出力処理プログラム2350、リソース管理プログラム2360及びボリュームコピー制御プログラム2370を保持する。さらに、プログラムメモリ2300は、リソース管理テーブル2310、仮想ストレージボックス管理テーブル2320、仮想ストレージ管理テーブル2330、ボリュームコピーペア管理テーブル2340、ホストグループ管理テーブル2380、排他ロック管理テーブル2390を保持する。
【0048】
データ入出力処理プログラム2350 は、ホスト計算機1000からのI/O要求に従って、ユーザデータのリード及びライトを行い、ホスト計算機1000及び他の物理ストレージ装置2000との間の必要なデータ通信を行う。
【0049】
リソース管理プログラム2360は、物理ストレージ装置2000のリソースを管理する。リソース管理プログラム2360は、ボリュームの作成や削除の他、以下に説明するテーブル(情報)の作成及び更新を行う。リソース管理プログラム2360は、リソース管理のために必要な情報を、管理計算機4000との間で送受信する。
【0050】
以下において、物理ストレージ装置2000がそれぞれ保持し、本実施例の説明において参照されるテーブル(情報)について説明する。同一名称のテーブルは、各物理ストレージ装置2000において、同一の構成(欄)を有する。以下において図を参照して説明するテーブルは、物理ストレージ装置1(2000)が保持するテーブルである。なお、各装置が保持する情報は、テーブル以外の構造体に格納されていてもよい。
【0051】
図6Aは、リソース管理テーブル2310の構成例を示す。リソース管理テーブル2310は、当該物理ストレージ装置1(2000)のリソースを管理するためのテーブルである。
【0052】
リソース管理テーブル2310は、物理ストレージ装置1(2000)のリソースの種類を格納するリソース種別欄2311、リソースIDを格納するリソースID欄2312、当該リソースが属するリソースグループIDを格納するリソースグループID欄2313、当該リソースに付与された仮想リソースIDを格納する仮想リソースID欄2314を有する。
【0053】
図6Bは、ホストグループ管理テーブル2380の構成例を示す。ホストグループは、ポートに接続されたホスト計算機1000のWWN(World Wide Name)を、ホスト計算機1000のOS種別毎にグループ化したものである。ホストグループ管理テーブル2380は、ポートIDを格納するポートID欄2381、当該ポートに関連するホストグループIDを格納するホストグループID欄2382、ホスト計算機1000のOS種別を示すホストモードID欄2383、当該ホストグループに登録されたホストWWNを格納するホストWWN欄2384、ホストグループID2382に属するホスト計算機1000がアクセス可能なボリュームIDを格納するボリュームID2385を有する。
【0054】
図7は、仮想ストレージボックス管理テーブル2320の構成例を示す。仮想ストレージボックスは、1物理ストレージ装置内で1仮想ストレージ装置が持つリソースグループの集合である。仮想ストレージボックス管理テーブル2320は、仮想ストレージ装置3000の仮想ストレージボックスを管理するためのテーブルである。
【0055】
仮想ストレージボックス管理テーブル2320は、仮想ストレージボックスIDを格納する仮想ストレージボックスID欄2321、当該仮想ストレージボックスに属するリソースグループIDを格納するリソースグループID欄2322を有する。
【0056】
図8は、仮想ストレージ管理テーブル2330の構成例を示す。仮想ストレージ管理テーブル2330は、仮想ストレージ装置3000を管理するためのテーブルである。仮想ストレージ管理テーブル2330は、仮想ストレージIDを格納する仮想ストレージID欄2331、当該仮想ストレージ装置に属する仮想ストレージボックスIDを格納する仮想ストレージボックスID欄2332を有する。
【0057】
図9Aは、ボリュームコピーペア管理テーブル2340の構成例を示す。ボリュームコピーペア管理テーブル2340は、当該物理ストレージ装置2000が提供するボリュームを含むボリュームコピーペアを管理するためのテーブルである。
【0058】
ボリュームコピーペア管理テーブル2340は、ボリュームコピーペアのペアIDを格納するペアID欄2341、当該ペアの種別を格納するペア種別欄2342、当該ペアの状態を格納するペア状態欄2343を有する。
【0059】
ボリュームコピーペア管理テーブル2340は、さらに、PVOLIDを格納するPVOLID欄2344、SVOLIDを格納するSVOLID欄2345を有する。本例において、PVOLID及びSVOLIDは、物理ストレージ装置2000の識別情報及び当該物理ストレージ装置におけるボリュームの識別情報により構成されている。
【0060】
ボリュームコピーペア管理テーブル2340は、さらに、当該ペアに関連するペアのIDを格納する関連ペアID欄2346、当該ペアと関連ペアの優先度を格納する優先度欄2347を有する。
【0061】
ペア種別欄2342に格納するペア種別は、HAであれば“HA”、物理ストレージ内のボリュームローカルコピーであれば“LC”、物理ストレージ間のボリュームリモートコピーであれば“RC”、HAマルチターゲット構成であれば“HA‐MLT”、HAカスケード構成(
図31参照)であれば“HA‐CAS”など、ボリュームコピーペアの種類を示す。
【0062】
ペア状態欄2343に格納するペア状態は、データコピー中であれば“COPY”、データコピー完了後の同期状態であれば“PAIR”、データコピー中断中であれば“SUSPEND”など、ボリュームコピーペア間のデータコピーの状態を示す文字列や数字を格納する。
【0063】
優先度欄2347に格納する優先度は、HAマルチターゲット構成またはHAカスケード構成におけるデータ書き込み順序を決定する情報を示す。本実施例では、第1ペアのPVOL、第1ペアのSVOL、第2ペアのPVOL、第2ペアのSVOLの順に書き込む。優先度は、ペアが作成された順番に従って決定してもよいし、HAマルチターゲット構成設定時またはHAカスケード構成設定時にユーザが任意の優先度を決定してもよい。
【0064】
図9Bは、排他ロック管理テーブル2390の構成例を示す。排他ロック管理テーブル2390は、ボリュームの排他ロックを管理するための情報を保持する。排他ロック管理テーブル2390は、排他ロックID欄2391、ボリュームID欄2392及びLBA欄2393を有する。
【0065】
排他ロック管理テーブル2390は、排他ロックされているデータ記憶領域を管理している。各エントリは、排他ロックされているボリューム内の領域を示し、ボリュームIDと当該ボリューム内のアドレス(LBA)を使用して、例えば、開始LBAとデータ長で指定される。本例において、ボリューム内の部分領域が排他ロックされるが、ボリューム単位で排他ロックされてもよい。
【0066】
図10は、管理計算機4000の構成例を示す図である。管理計算機4000は、プロセッサであるCPU4100、主記憶デバイスであるメモリ4300、二次記憶デバイス4200、入出力デバイス4400、管理インタフェース(I/F)4600を含む。管理計算機4000のデバイスは、バス4500により通信可能に接続されている。
【0067】
管理計算機4000は、管理プログラムを実行し、それに従って動作する。管理I/F4600はLAN6000に接続し、計算機内のプロトコルとLAN6000のプロトコルとの間の変換を行う。管理計算機4000は、管理I/F4600及びLAN6000を介して、物理ストレージ装置2000及びホスト計算機1000と通信することができる。
【0068】
入出力デバイス4400は、ディスプレイ、ポインタ又はキーボード等のデバイスの一つ又は複数のデバイスを含む。ユーザ(上記例において、ユーザUser01〜User03)は、入出力デバイス4400により、管理計算機4000を操作することができるほか、ネットワークを介して接続するクライアント計算機から管理計算機4000にアクセスしてもよい。クライアント計算機は、管理計算機4000と共に管理システムに含まれる。ユーザは、入力デバイス(例えばマウス及びキーボード)により必要な情報を入力し、出力デバイスにより必要な情報を視認することができる。
【0069】
CPU4100は、メモリ4300に記憶されているプログラムを実行することによって管理計算機4000の所定の機能を実現する。メモリ4300は、CPU4100よって実行されるプログラム及びプログラムの実行に必要なデータを記憶する。管理計算機4000で動作するプログラムについては後述する。本実施例で説明するCPU4100により実現される機能の少なくとも一部は、CPU4100と異なるロジック回路によって実現されてもよい。
【0070】
例えば、プログラムは、二次記憶デバイス4200からメモリ4300にロードされる。二次記憶デバイス4200は、管理計算機4000の所定の機能を実現するために必要なプログラム及びデータを格納する、不揮発性の非一時的記憶媒体を備える記憶装置である。二次記憶デバイス4200は、ネットワークを介して接続された外部の記憶装置でもよい。
【0071】
本構成例の管理システムは、管理計算機で構成されているが、管理システムは複数の計算機で構成してもよい。複数の計算機の一つは表示用計算機であってもよく、管理処理の高速化や高信頼化のために、複数の計算機が管理計算機と同等の処理を実現してもよい。管理システムは、物理ストレージ内に構成されていてもよい。管理システムの一部の機能が、物理ストレージ装置内に実装されていてもよい。
【0072】
管理計算機40000のプログラムメモリ4300は、CPU4100が扱うデータやプログラムを格納する。プログラムメモリ4300のデータは、例えば、物理ストレージ装置2000内のいずれかの記憶デバイス2200又はフラッシュメモリ(不図示)、又はLAN6000を介して接続された他の装置からプログラムメモリ4300にロードされる。
【0073】
プログラムメモリ4300は、OS4310及び仮想ストレージ管理プログラムを保持する。さらに、プログラムメモリ4300は、仮想ストレージ管理テーブル4320、仮想ストレージボックス管理テーブル4330、仮想ストレージリソース管理テーブル4340、ボリュームコピーペア管理テーブル4350を保持する。
【0074】
仮想ストレージ管理プログラム4360は、物理ストレージ装置2000及び仮想ストレージ装置3000のリソースを管理する。仮想ストレージ管理プログラム4360は、ボリュームの作成や削除の他、以下に説明するテーブル(情報)の作成及び更新を行う。仮想ストレージ管理プログラム4360は、リソース管理のために必要な情報を、物理ストレージ装置2000との間で送受信する。
【0075】
図11は、仮想ストレージ管理テーブル4320の構成例を示す。仮想ストレージ管理テーブル4320は、仮想ストレージ装置3000及び仮想ストレージ装置3000の構成要素である物理ストレージ装置2000のリソースを管理するためのテーブルである。仮想ストレージ管理テーブル4320は、全ての物理ストレージ装置2000の仮想ストレージ管理テーブル2330を統合したテーブルである。
【0076】
仮想ストレージ管理テーブル4320は、仮想ストレージIDを格納する仮想ストレージID欄4321、当該仮想ストレージに属する仮想ストレージボックスIDを格納する仮想ストレージボックスID4322を有する。
【0077】
図12は、仮想ストレージボックス管理テーブル4330の構成例を示す。仮想ストレージボックス管理テーブル4330は、仮想ストレージ装置3000の仮想ストレージボックスを管理するためのテーブルである。仮想ストレージボックス管理テーブル4330は、全ての物理ストレージ装置2000の仮想ストレージボックス管理テーブル2320を統合したテーブルである。
【0078】
仮想ストレージボックス管理テーブル4330は、仮想ストレージボックスIDを格納する仮想ストレージボックスID欄4331、当該仮想ストレージボックスに属するリソースグループIDを格納するリソースグループID欄4332を有する。
【0079】
図13は、仮想ストレージリソース管理テーブル4340の構成例を示す。仮想ストレージリソース管理テーブル4340は、仮想ストレージ装置3000のリソースを管理するためのテーブルである。仮想ストレージリソース管理テーブル4340は、全ての物理ストレージ装置2000のリソース管理テーブル2310を統合したテーブルである。
【0080】
仮想ストレージリソース管理テーブル4340は、リソース種別を格納するリソース種別欄4341、当該リソースIDを格納するリソースID欄4342、当該リソースが属するリソースグループIDを格納するリソースグループID欄4343、当該リソースに付与された仮想リソースIDを格納する仮想リソースID欄4344を有する。
【0081】
図14は、ボリュームコピーペア管理テーブル4350の構成例を示す。ボリュームコピーペア管理テーブル4350は、管理計算機4000が管理する物理ストレージ装置2000のボリュームコピーペアを管理するためのテーブルである。ボリュームコピーペア管理テーブル4350は、全物理ストレージ装置2000のボリュームコピーペア管理テーブル2340を統合したテーブルである。
【0082】
ボリュームコピーペア管理テーブル4350は、ボリュームコピーペアのペアIDを格納するペアID欄4351、当該ペアの種類を格納するペア種別欄4352、当該ペアの状態を格納するペア状態欄4353、PVOLIDを格納するPVOLID欄4354、SVOLIDを格納するSVOLID欄4355、当該ペアに関連するペアIDを格納する関連ペアID欄4356、当該ペアと関連ペアの優先度を格納する優先度欄4357を有する。ボリュームコピーペア管理テーブル4350の各欄の言葉の意味は、ボリュームコピーペア管理テーブル2340と同じである。
【0083】
図15は、物理ストレージ装置2(ST2)(2000)の物理VOL2(SVOL)2900を、物理ストレージ装置3(ST3)(2000)の物理VOL3(SVOL)2900に移行するステップを示す。物理VOL1、VOL2、VOL3(2900)は、仮想VOL11(3000)の構成要素である。なお、一部の符号を省略している。
【0084】
物理VOL2(SVOL)2900と物理ストレージ装置2(2000)の物理VOL1(PVOL)2900は、移行前ボリュームペア(第1ボリュームペア)である。
【0085】
物理VOL3(2900)と物理VOL1(PVOL)2900は、移行後ボリュームペア(第2ボリュームペア)である。移行において、物理VOL1(PVOL)2900のデータが、物理VOL3(2900)にコピーされる。本例では、ホスト管理及びストレージ管理の両方を実施可能なシステム管理者が、パス及びボリュームの設定を行う。
【0086】
図15において、ステップA‐0は、初期状態を示す。ホスト計算機1000と、物理VOL1、VOL2との間にパスが定義されている。物理VOL1、VOL2は、ボリュームペアを構成している。物理VOL1、VO2は、仮想VOL11の構成要素であり、ホスト計算機1000は、仮想VOL11のアクセスのために、いずれの物理VOL1、VOLにもアクセスすることができる。
【0087】
ステップA‐1において、システム管理者からの指示に従って、物理ストレージ装置3は、物理VOL3を作成する。システム管理者からの指示に従って、物理ストレージ装置1(ST1)及び物理ストレージ装置3は、物理VOL1と物理VOL3のHAボリュームペアを作成する。VOL3への仮想IDを付与する。このとき、VOL1、VOL2及びVOL3はHAマルチターゲット構成である。
【0088】
ステップA‐2において、システム管理者からの指示に従って、ホスト計算機1000及び物理ストレージ装置3は、ホスト計算機1000から物理VOL3へのパスを定義する。物理ストレージ装置3は、ホストグループ管理テーブル2380に、ホストのWWN、ポートID、VOL3のボリュームIDの情報を追加する。
【0089】
次に、ステップA‐3において、システム管理者からの指示に従って、ホスト計算機1000及び物理ストレージ装置2は、ホスト計算機1000から物理VOL2へのパスを削除する。物理ストレージ装置2は、ホストグループ管理テーブル2380から、ホストのWWN、ポートID、VOL2のボリュームIDの情報を削除する。
【0090】
次に、ステップA‐4において、システム管理者からの指示に従って、物理ストレージ装置1、2は、物理VOL1と物理VOL2のHAペアを削除し、さらに、物理ストレージ装置2は物理VOL2の仮想IDを削除する。
【0091】
図16は、ホスト計算機1000から物理ストレージ装置2000へWRITEコマンドが発行されるときの、当該物理ストレージ装置2000のデータ入出力処理プログラム2350がWRITEコマンドを処理するフローチャート例を示す。以下の説明においては、WRITEコマンドは、データ書き込み指示及びライトデータを含むものとする。
【0092】
ステップS101において、データ入出力処理プログラム2350は、ホスト計算機1000からWRITEコマンドを受信する。ステップS102において、データ入出力処理プログラム2350は、WRITEコマンドが示すWRITE対象ボリュームのHAボリュームペア構成が、HAマルチターゲット構成(HA−MLT)か否かを判定する。データ入出力処理プログラム2350は、当該判定のため、ボリュームコピーペア管理テーブル2340における、ペア種別欄2342を参照する。
【0093】
ステップS102の判定結果がYesの場合、データ入出力処理プログラム2350は、ステップS103へ進む。ステップS103が完了した後、データ入出力処理プログラム2350は、当該フローを終了する。
【0094】
ステップS102の判定結果がNoの場合、データ入出力処理プログラム2350は、ステップS104へ進む。ステップS104において、データ入出力処理プログラム2350は、ボリュームコピーペア管理テーブル2340を参照して、WRITE対象ボリュームコピーペア構成が、HAカスケード構成(HA−CAS)か否かを判定する。
【0095】
ステップS104の判定結果がYesの場合、データ入出力処理プログラム2350は、ステップS105へ進む。ステップS105が完了した後、データ入出力処理プログラム2350は、当該フローを終了する。
【0096】
ステップS104の判定結果がNoの場合、データ入出力処理プログラム2350は、ステップS106へ進む。ステップS106において、データ入出力処理プログラム2350は、ボリュームコピーペア管理テーブル2340を参照して、WRITE対象ボリュームが、単体HAボリュームペア(S−HA)のPVOLか否かを判定する。単体HAボリュームペアは、移行中ではないHAボリュームペアである。
【0097】
ステップS106の判定結果がYesの場合、つまり、アクセス先が単体ボリュームペアのPVLである場合、データ入出力処理プログラム2350は、ステップS107へ進む。ステップS107において、データ入出力処理プログラム2350は、排他ロック処理を実行する。本例において、データ入出力処理プログラム2350は、アクセス先の物理ボリュームにおけるアクセス先アドレス領域について、排他ロックする。
【0098】
排他ロック処理は、WRITE対象データまたはREAD対象データに対するWRITE/READ排他制御である。排他ロック処理におけるWRITE/READ排他制御単位は、LBA単位でも世いし、ボリューム単位でもよい。排他ロック状態の情報は、排他ロック管理テーブル2390において、排他制御単位で管理されている。排他ロック管理テーブル2390は、排他ロック処理及び排他ロック解除処理の度に更新される。
【0099】
WRITE対象データに対しては、他のライト及びリード禁止される。READ対象データに対しては、他のライトが禁止され、他のリードは禁止されても許可されていてもよい。他のリードを許可することでホスト計算機1000への応答遅延を抑制する。この点は、他の例において同様である。
【0100】
ステップS108において、データ入出力処理プログラム2350は、WRITE対象ボリュームに対して、ライトデータを書き込む。WRITEコマンドによるライトデータの対象ボリュームへの書き込みは、記憶デバイス2200又はキャッシュメモリ2400への書き込みを意味する。この点は他のWRITE処理について同様である。
【0101】
ステップS109において、データ入出力処理プログラム2350は、対応するSVOLがある物理ストレージ装置2000へWRITEコマンドを転送する。データ入出力処理プログラム2350は、ボリュームコピーペア管理テーブル2340から、対応するSVOLを提供する物理ストレージ装置2000の識別子を取得する。
【0102】
ステップS110において、データ入出力処理プログラム2350は、上記SVOLがある物理ストレージ装置2000からのWRITEコマンド完了応答を受信する。ステップS111において、データ入出力処理プログラム2350は、当該WRITEコマンドのために実行した排他ロックを解除し、排他ロック管理テーブル2390を更新する。
【0103】
ステップS112において、データ入出力処理プログラム2350は、ホスト計算機1000へ、WRITEコマンド完了応答を送信し、当該フローを終了する。
【0104】
ステップS106の判定結果がNoの場合、つまり、WRITEコマンドの対象が単独HAボリュームペアにおけるSVOLである場合、データ入出力処理プログラム2350は、ステップS113へ進む。
【0105】
ステップS113において、データ入出力処理プログラム2350は、対応するPVOLがある物理ストレージ装置2000へWRITEコマンドを転送する。データ入出力処理プログラム2350は、ボリュームコピーペア管理テーブル2340から、対応するPVOLを提供する物理ストレージ装置2000及び当該物理ストレージ装置2000におけるSVOLの識別子を取得する。
【0106】
ステップS114において、データ入出力処理プログラム2350は、上記PVOLがある物理ストレージ装置2000からのWRITEコマンド完了応答を受信する。ステップS115において、データ入出力処理プログラム2350は、WRITE対象ボリューム、つまり、自装置が保持しているSVOLに対して、ライトデータを書き込む。
【0107】
ステップS116において、データ入出力処理プログラム2350は、ホスト計算機1000へWRITEコマンド完了応答を送信する。ステップS117において、データ入出力処理プログラム2350は、上記PVOLがある物理ストレージ装置2000へ、排他ロック解除コマンドを送信する。排他ロック解除コマンドは、例えば、WRITEコマンドの識別子又は仮想ボリュームの指定アドレスを含む。
【0108】
ステップS108において、データ入出力処理プログラム2350は、上記PVOLがある物理ストレージ装置2000から排他ロック解除コマンド完了応答を受信し、当該フローを終了する。
【0109】
図18は、ステップS107からステップS112までのシーケンスを示す。ステップS107からステップS112は、ホスト計算機1000から単体ボリュームペアのPVOLへのWRITEコマンドのフローである。
【0110】
図18において、物理ストレージ装置1(2000)は、物理VOL1(仮想VOL11)2900へのWIRITEコマンドをホスト計算機1000から受信する(S101)。物理VOL1(2900)は単体ボリュームペアのPVOLである。物理ストレージ装置1(2000)は、指定領域を排他ロックし(S107)、ライトデータを書き込む(S108)。
【0111】
その後、物理ストレージ装置1(2000)は、対応するSVOLである物理VOL2(2900)を提供する物理ストレージ装置2(2000)に、WIRITEコマンドを転送する(S109)。物理ストレージ装置2(2000)は、排他ロックすることなく、転送されたライトデータを物理VOL2(2900)の指定領域に書き込み(S2101)、ライト完了応答を物理ストレージ装置1(2000)に返す(S110)。ライト完了応答を受信した物理ストレージ装置1(2000)は、排他ロックを解除し(S111)、ライト完了応答をホスト計算機1000に返す(S112)。
【0112】
図19は、ステップS113からステップS118までのシーケンスを示す。ステップS113からステップS118は、ホスト計算機1000から単体ボリュームペアのSVOLへのWRITEコマンドのフローである。
【0113】
図19において、物理ストレージ装置2(2000)は、物理VOL2(仮想VOL11)2900へのWIRITEコマンドをホスト計算機1000から受信する(S101)。物理VOL2(2900)は単体ボリュームペアのSVOLである。物理ストレージ装置2(2000)は、対応するPVOL(物理VOL1(2900))を提供する物理ストレージ装置1(2000)にWRITEコマンドを転送する(S113)。
【0114】
物理ストレージ装置1(2000)は、物理VOL1(2900)の指定領域を排他ロックし(S2201)、ライトデータを書き込む(S2202)。物理ストレージ装置1(2000)は、ライト完了応答を物理ストレージ装置2(2000)に返す(S114)。
【0115】
ライト完了応答を受信した物理ストレージ装置2(2000)は、ライトデータを物理VOL2(2900)に書き込み(S115)、ホスト計算機1000にライト完了応答を返す(S116)。その後、物理ストレージ装置2(2000)は、物理ストレージ装置1(2000)に排他ロック解除コマンドを送信する(S117)。物理ストレージ装置1(2000)は排他ロックを解除し(S2203)、排他ロック解除完了応答を物理ストレージ装置2(2000)に返す(S118)。
【0116】
図22はHAマルチターゲット構成におけるホスト計算機1000から第1ボリュームペアのPVOLへのWRITEコマンドの処理シーケンスを示す。
図23はHAマルチターゲット構成におけるホスト計算機1000から第1ボリュームペアのSVOLへのWRITEコマンドの処理シーケンスを示す。
図24はHAマルチターゲット構成におけるホスト計算機1000から第2ボリュームペアのSVOLへのWRITEコマンドの処理シーケンスを示す。
【0117】
図22を参照して、第1ボリュームペアのPVOLへのWRITEコマンドの処理を説明する。物理ストレージ装置1(2000)は、物理VOL1(仮想VOL11)2900へのWRITEコマンドを受信する(S101)。物理VOL1(2900)は、第1ボリュームペア及び第2ボリュームペアのPVOLである。物理ストレージ装置1(2000)は、物理VOL1(2900)の指定アドレス領域を排他ロックし(S204)、ライトデータを書き込む(S205)。
【0118】
次に、物理ストレージ装置1(2000)は、WRITEコマンドを、物理VOL2(2900)を提供する物理ストレージ装置2(2000)に転送する(S207)。物理VOL2(2900)は、第1ボリュームペアのSVOLである。物理ストレージ装置2(2000)は、物理VOL2(2900)の指定アドレス領域を排他ロックし(S302)、ライトデータを書き込む(S303)。その後、物理ストレージ装置2(2000)は、物理ストレージ装置1(2000)に、WRITEコマンドの完了応答を送信する(S309)。
【0119】
次に、物理ストレージ装置1(2000)は、WRITEコマンドを、物理VOL3(2900)を提供する物理ストレージ装置3(2000)に転送する(S208)。物理VOL3(2900)は、第2ボリュームペアのSVOLである。物理ストレージ装置3(2000)は、排他ロックを行うことなく、物理VOL3(2900)にライトデータを書き込む(S303)。その後、物理ストレージ装置3(2000)は、物理ストレージ装置1(2000)に、WRITEコマンドの完了応答を送信する(S309)。
【0120】
次に、物理ストレージ装置1(2000)は、排他ロックを解除し(S210)、ホスト計算機1000に、WRITEコマンド完了応答を返す(S211)。次に、物理ストレージ装置1(2000)は、物理ストレージ装置2(2000)に排他ロック解除コマンドを送信し(S213)、物理ストレージ装置2は排他ロックを解除する(S308)。物理ストレージ装置1(2000)は、その完了応答を受信する(S214)。
【0121】
ホスト計算機1000へのWRITEコマンド完了応答を返した後に、他の物理ストレージ装置2000へ排他ロック解除コマンドを送信することで、ホスト計算機1000への応答時間を短縮できる。他の物理ストレージ装置2000から排他ロック解除コマンドの完了応答を受信した後に、ホスト計算機1000へのWRITEコマンド完了応答を返してもよい。これは、他のシーケンス図において同様である。
【0122】
図23を参照して、第1ボリュームペアのSVOLへのWRITEコマンドの処理を説明する。物理ストレージ装置2(2000)は、物理VOL2(仮想VOL11)2900へのWRITEコマンドを受信する(S101)。物理ストレージ装置2(2000)は、WRITEコマンドを物理ストレージ装置1(2000)に転送する(S202)。
【0123】
物理ストレージ装置1(2000)は、物理VOL1(2900)の指定アドレス領域を排他ロックし(S302)、ライトデータを書き込む(S303)。次に、物理ストレージ装置1(2000)は、WRITEコマンドを、物理ストレージ装置2(2000)に転送する(S305)。
【0124】
物理ストレージ装置2(2000)は、物理VOL2(2900)の指定アドレス領域を排他ロックし(S302)、ライトデータを書き込む(S303)。その後、物理ストレージ装置2(2000)は、物理ストレージ装置1(2000)に、WRITEコマンドの完了応答を送信する(S309)。
【0125】
次に、物理ストレージ装置1(2000)は、WRITEコマンドを、物理VOL3(2900)を提供する物理ストレージ装置3(2000)に転送する(S306)。物理ストレージ装置3(2000)は、排他ロックを行うことなく、物理VOL3(2900)にライトデータを書き込む(S303)。その後、物理ストレージ装置3(2000)は、物理ストレージ装置1(2000)に、WRITEコマンドの完了応答を送信する(S309)。
【0126】
次に、物理ストレージ装置1(2000)は、排他ロックを解除し(S308)、WRITEコマンド転送元である物理ストレージ装置2(2000)に、WRITEコマンド完了応答を返す(S309)。
【0127】
物理ストレージ装置1(2000)からWRITEコマンド完了応答を受信すると、物理ストレージ装置2(2000)は、排他ロックを解除し(S210)、ホスト計算機1000に、WRITEコマンド完了応答を返す(S211)。
【0128】
図24を参照して、第2ボリュームペアのSVOLへのWRITEコマンドの処理を説明する。物理ストレージ装置3(2000)は、物理VOL3(仮想VOL11)2900へのWRITEコマンドを受信する(S101)。物理ストレージ装置3(2000)は、WRITEコマンドを物理ストレージ装置1(2000)に転送する(S202)。
【0129】
物理ストレージ装置1(2000)は、物理VOL1(2900)の指定アドレス領域を排他ロックし(S302)、ライトデータを書き込む(S303)。次に、物理ストレージ装置1(2000)は、WRITEコマンドを、物理ストレージ装置2(2000)に転送する(S305)。
【0130】
物理ストレージ装置2(2000)は、物理VOL2(2900)の指定アドレス領域を排他ロックし(S302)、ライトデータを書き込む(S303)。その後、物理ストレージ装置2(2000)は、物理ストレージ装置1(2000)に、WRITEコマンドの完了応答を送信する(S309)。
【0131】
次に、物理ストレージ装置1(2000)は、WRITEコマンドを、物理VOL3(2900)を提供する物理ストレージ装置3(2000)に転送する(S306)。物理ストレージ装置3(2000)は、排他ロックを行うことなく、物理VOL3(2900)にライトデータを書き込む(S303)。その後、物理ストレージ装置3(2000)は、物理ストレージ装置1(2000)に、WRITEコマンドの完了応答を送信する(S309)。
【0132】
次に、物理ストレージ装置1(2000)は、排他ロックを解除し(S308)、WRITEコマンド転送元である物理ストレージ装置3(2000)に、WRITEコマンド完了応答を返す(S309)。
【0133】
物理ストレージ装置1(2000)からWRITEコマンド完了応答を受信すると、物理ストレージ装置3(2000)は、ホスト計算機1000に、WRITEコマンド完了応答を返す(S211)。
【0134】
物理ストレージ装置1(2000)は、WRITEコマンド完了応答を返した後、物理ストレージ装置2(2000)に、排他ロック解除コマンドを送信する(S311)。物理ストレージ装置2(2000)は、排他ロック解除コマンドを受信し(S314)、排他ロック解除処理を実行し(S315)、排他ロック解除コマンドの完了応答を物理ストレージ装置1(2000)に返す(S316)。
【0135】
図17は、ホスト計算機1000から物理ストレージ装置2000へREADコマンドが発行されるときの、データ入出力処理プログラム2350の処理のフローチャート例を示す。以下の説明において、物理ボリュームからの読み出しは、記憶デバイス2200又はキャッシュメモリ2400からの読み出しを意味する。
【0136】
ステップS401において、データ入出力処理プログラム2350は、ホストからREADコマンドを受信する。ステップS402において、データ入出力処理プログラム2350は、READ対象ボリュームが第2ボリュームペアのSVOLまたは単体ボリュームペアのSVOLか否かを判定する。データ入出力処理プログラム2350は、判定において、ボリュームコピーペア管理テーブル2340を参照する。
【0137】
ステップS402の判定結果がYesの場合、データ入出力処理プログラム2350は、ステップS403において、READ対象ボリュームからデータを読み出し、ステップS407へ進む。
【0138】
ステップS402の判定がNoの場合、データ入出力処理プログラム2350は、ステップS404で排他ロック処理を実行し、ステップS405でREAD対象ボリュームからデータを読み出す。ステップS406において、データ入出力処理プログラム2350は、排他ロック解除処理を実行し、ステップS407へ進む。ステップS407において、データ入出力処理プログラム2350は、ホスト計算機1000へ、読み出したデータを含むREADコマンド完了応答を送信し、当該フローを終了する。
【0139】
図20、
図21、
図25、
図26及び
図27は、
図17のシーケンスを示す。
図20は単体ボリュームペアのPVOLへのREADコマンド処理のシーケンスを示す。
図21は単体ボリュームペアのSVOLへのREADコマンド処理のシーケンスを示す。
図25は第1ボリュームペアのPVOLへのREADコマンド処理のシーケンスを示す。
図26は第1ボリュームペアのSVOLへのREADコマンド処理のシーケンスを示す。
図27は第2ボリュームペアのSVOLへのREADコマンド処理のシーケンスを示す。
【0140】
図20において、物理ストレージ装置1(2000)は、物理VOL1(仮想VOL11)へのREADコマンドを受信する(S401)。物理ストレージ装置1(2000)は、指定アドレス領域を排他ロックし(S404)、指定アドレス領域からリードデータを読み出す(S405)。物理ストレージ装置1(2000)は、排他ロックを解除し(S406)、ホスト計算機1000にリードデータを含むRADコマンド完了応答を返す(S407)。
【0141】
図21において、物理ストレージ装置2(2000)は、物理VOL2(仮想VOL11)へのREADコマンドを受信する(S401)。物理ストレージ装置2(2000)は、排他ロックすることなく、指定アドレス領域からリードデータを読み出す(S403)。物理ストレージ装置2(2000)は、ホスト計算機1000に、リードデータを含むRADコマンド完了応答を返す(S407)。
【0142】
図25のシーケンスは
図20のシーケンスと同じである。
図26のシーケンスは、物理ストレージ装置1(2000)に代えて物理ストレージ装置2(2000)が処理を行う点を除き、
図20のシーケンスと同じである。
図27のシーケンスは、物理VOL2(2900)及び物理ストレージ装置2(2000)が、物理VOL3(2900)及び物理ストレージ装置3(2000)に変更されている点を除き、
図21のシーケンスと同じである。
【0143】
本実施例によれば、HAマルチターゲット構成のボリューム移行時に、ホストI/O無停止及び高可用性を維持することができる。
【0144】
なお、上記例は、処理効率化のため、最後にライトデータが書き込まれるボリューム(最後ボリューム)に対して排他ロックを行わないが、最後ボリュームへの書き込みにおいても排他ロックを行ってもよい。例えば、排他ロックは、他の物理ストレージ装置2000からのWRITEコマンドを受信した後に行われる。ボリューム移行時のリード処理は、非移行時のHA単体ボリュームペアでのリード処理と同様でもよい。
【0145】
上記例は、ボリュームペアの移行を行うが、3以上のボリュームからなるボリュームグループのボリューム移行に対しても、上記説明を適用することができる。上記説明は、3以上の物理ストレージ装置を含むストレージシステムに適用することができる。
【0146】
上述のように、ボリューム移行時のライトデータの書き込み順序と非移行時の書き込み順序が一致することで、ストレージシステムの機能を効率的に構成することができる。移行時と非移行時の書き込み順序は異なっていてもよい。例えば上記例において、物理VOL2と物理VOL3の書き込み順序を入れ替えてもよい。これらは、他の実施例において同様である。
【実施例2】
【0147】
以下で、実施例2について説明する。主に実施例1との相違点を説明する。
図28は、本実施例のデータ移行(ボリューム移行)を示す。本実施例は、物理VOL1(2900)を物理VOL3(2900)に移行する。移行前後において、物理VOL2(2900)が共通である。
図28は、ボリューム移行における、HAカスケード構成の概要を示す。
【0148】
HAカスケード構成は、一つのボリュームを一方のHAボリュームペアのSVOL、かつ、もう一方のHAボリュームペアのPVOLとし、それらの三つのボリュームで二つのHAボリュームペアを構成する。
【0149】
物理VOL1(2900)と物理VOL2(2900)は、HAボリュームペア7100を構成している。移行のため、まず、物理VOL2(2900)と物理VOL3(2900)で、HAボリュームペア7200が形成される。HAボリュームペア7200において、物理VOL2はPVOL、物理VOL3はSVOLとする。移行において、PVOLである物理VOL2からSVOLである物理VOL3にデータがコピーされる。
【0150】
次に、ホスト計算機1000及び物理ストレージ装置3(2000)において、ホスト計算機1000から物理VOL3(2900)へのパス8300が定義される。物理ストレージ装置3(2000)は、物理VOL3(2900)について、ホスト計算機1000からの要求に対して、物理VOL1(2900)及び物理VOL2(2900)と同様に、仮想VOL11(3900)の情報を返す。
【0151】
次に、ホスト計算機1000及び物理ストレージ装置1(2000)において、ホスト計算機1000から物理VOL2へのパス8100が削除される。さらに、物理ストレージ装置1(2000)及び物理ストレージ装置2(2000)は、HAボリュームペア7100を削除する。これにより、物理ストレージ装置2(2000)の物理VOL2(2900)から物理ストレージ装置3(2000)の物理VOL3(2900)への移行が完了する。
【0152】
図29は、HAペアの物理ストレージ装置1(ST1)のPVOL(VOL1)を、物理ストレージ装置3(ST3)に移行する手順を示す。移行後の物理ボリュームは、物理VOL3である。本実施例では、システム管理者が当該手順を実行する。なお、一部の符号を省略している。
【0153】
ステップB‐0は、初期状態を示す。ホスト計算機1000と、物理VOL1、VOL2との間にパスが定義されている。物理VOL1、VOL2は、ボリュームペアを構成している。物理VOL1、VO2は、仮想VOL11の構成要素であり、ホスト計算機1000は、仮想VOL11のアクセスのために、いずれの物理VOL1、VOLにもアクセスすることができる。
【0154】
ステップB‐1において、システム管理者からの指示に従って、物理ストレージ装置3は、物理VOL3を作成する。システム管理者からの指示に従って、物理ストレージ装置2(ST2)及び物理ストレージ装置3は、物理VOL2と物理VOL3のHAボリュームペアを作成する。このとき、物理VOL1、VOL2及びVOL3はHAカスケード構成となる。
【0155】
次に、ステップB‐2において、システム管理者からの指示に従って、ホスト計算機1000及び物理ストレージ装置3は、ホスト計算機1000から物理VOL3へのパスをおいて定義する。物理ストレージ装置3は、ホストグループ管理テーブル2380に、ホストのWWN、ポートID、VOL3のボリュームIDの情報を追加する。
【0156】
次に、ステップB‐3において、システム管理者は、ホスト計算機1000から物理VOL1へのパスを、ホスト計算機1000及び物理ストレージ装置1において削除する。物理ストレージ装置1は、ホストグループ管理テーブル2380から、ホストのWWN、ポートID、VOL2のボリュームIDの情報を削除する。
【0157】
次に、ステップB‐4において、システム管理者からの指示に従って、物理ストレージ装置1及び物理ストレージ装置2は、物理VOL1と物理VOL2HAペアを削除し、さらに、物理ストレージ装置1が、物理VOL1の仮想IDを削除する。
【0158】
図30はHAカスケード構成におけるホスト計算機1000から第1ボリュームペアのPVOLへのWRITEコマンドの処理シーケンスを示す。
図31はHAカスケード構成におけるホスト計算機1000から第1ボリュームペアのSVOLへのWRITEコマンドの処理シーケンスを示す。
図32はHAカスケード構成におけるホスト計算機1000から第2ボリュームペアのSVOLへのWRITEコマンドの処理シーケンスを示す。
【0159】
図30において、物理ストレージ装置1(2000)は、物理VOL1(仮想VOL11)2900へのWRITEコマンドを受信する(S101)。物理VOL1(2900)は、第1ボリュームペアのPVOLである。物理ストレージ装置1(2000)は、物理VOL1(2900)の指定アドレス領域を排他ロックし(S605)、ライトデータを書き込む(S606)。
【0160】
次に、物理ストレージ装置1(2000)は、WRITEコマンドを、物理VOL2(2900)を提供する物理ストレージ装置2(2000)に転送する(S609)。物理VOL2(2900)は、第1ボリュームペアのSVOLであり、かつ、第2ボリュームペアのPVOLである。
【0161】
物理ストレージ装置2(2000)は、物理VOL2(2900)の指定アドレス領域を排他ロックし(S705)、ライトデータを書き込む(S706)。次に、物理ストレージ装置2(2000)は、WRITEコマンドを、物理VOL3(2900)を提供する物理ストレージ装置3(2000)に転送する(S708)。物理VOL3(2900)は、第2ボリュームペアのSVOLでる。
【0162】
物理ストレージ装置3(2000)は、排他ロックすることなく、物理VOL3(2900)の指定アドレス領域に、ライトデータを書き込む(S706)。次に、物理ストレージ装置3(2000)は、物理ストレージ装置2(2000)に、WRITEコマンドの完了応答を送信する(S710)。
【0163】
物理ストレージ装置3(2000)からWRITEコマンドの完了応答を受信すると、物理ストレージ装置2(2000)は排他ロックを解除し(S709)、WRITEコマンド転送元である物理ストレージ装置1(2000)に、WRITEコマンドの完了応答を送信する(S710)。
【0164】
物理ストレージ装置2(2000)からWRITEコマンドの完了応答を受信すると、物理ストレージ装置1(2000)は、排他ロックを解除し(S611)、WRITEコマンドの完了応答をホスト計算機1000に返す(S612)。
【0165】
図31において、物理ストレージ装置2(2000)は、物理VOL2(仮想VOL11)2900へのWRITEコマンドを受信する(S101)。物理ストレージ装置2(2000)は、WRITEコマンドを物理ストレージ装置1(2000)に転送する(S603)。
【0166】
物理ストレージ装置1(2000)は、物理VOL1(2900)の指定アドレス領域を排他ロックし(S705)、ライトデータを書き込む(S706)。次に、物理ストレージ装置1(2000)は、WRITEコマンドの完了応答を、物理ストレージ装置2(2000)に送信する(S710)。物理ストレージ装置2(2000)は、物理VOL2(2900)の指定アドレス領域を排他ロックし(S605)、ライトデータを書き込む(S606)。
【0167】
次に、物理ストレージ装置2(2000)は、WRITEコマンドを、物理VOL3(2900)を提供する物理ストレージ装置3(2000)に転送する(S610)。物理ストレージ装置3(2000)は、排他ロックを行うことなく、物理VOL3(2900)にライトデータを書き込む(S706)。その後、物理ストレージ装置3(2000)は、物理ストレージ装置2(2000)に、WRITEコマンドの完了応答を送信する(S710)。
【0168】
物理ストレージ装置3(2000)からWRITEコマンドの完了応答を送信すると、物理ストレージ装置2(2000)は、排他ロックを解除し(S611)、WRITEコマンドの完了応答をホスト計算機1000に返す(S612)。
【0169】
次に、物理ストレージ装置2(2000)は、排他ロック解除コマンドを物理ストレージ装置1(2000)に送信する(S615)。物理ストレージ装置1(2000)は、排他ロックコマンドを受信し(S713)、排他ロックを解除する(S714)。物理ストレージ装置1(2000)は、物理ストレージ装置2(2000)に、排他ロック解除コマンドの完了応答を返す(S718)。
【0170】
図32において、物理ストレージ装置3(2000)は、物理VOL3(仮想VOL11)2900へのWRITEコマンドを受信する(S101)。物理ストレージ装置3(2000)は、WRITEコマンドを物理ストレージ装置2(2000)に転送する(S604)。物理ストレージ装置3(2000)からWRITEコマンドを受信すると、物理ストレージ装置2(2000)は、物理ストレージ装置1(2000)にWRITEコマンドを転送する(S704)。
【0171】
物理ストレージ装置1(2000)は、物理VOL1(2900)の指定アドレス領域を排他ロックし(S705)、ライトデータを書き込む(S706)。次に、物理ストレージ装置1(2000)は、WRITEコマンドの完了応答を、物理ストレージ装置2(2000)に送信する(S710)。
【0172】
物理ストレージ装置2(2000)は、物理VOL2(2900)の指定アドレス領域を排他ロックし(S705)、ライトデータを書き込む(S706)。次に、物理ストレージ装置2(2000)は、WRITEコマンドの完了応答を、物理ストレージ装置3(2000)に送信する(S712)。
【0173】
WRITEコマンドの完了応答を物理ストレージ装置2(2000)から受信した物理ストレージ装置3(2000)は、物理VOL3(2900)の指定領域にライトデータを書き込み(S606)、ホスト計算機1000にWRITEコマンドの完了応答を返す(S612)。
【0174】
次に、物理ストレージ装置3(2000)は、排他ロック解除コマンドを物理ストレージ装置2(2000)に送信する(S617)。物理ストレージ装置2(2000)は排他ロック解除コマンドを受信し(S713)、排他ロックを解除する(S714)。次に、物理ストレージ装置2(2000)は、物理ストレージ装置1(2000)に、排他ロック解除コマンドを送信する(S716)。
【0175】
物理ストレージ装置1(2000)は、排他ロック解除コマンドを受信し(S713)、排他ロックを解除する(S714)。物理ストレージ装置1(2000)は、物理ストレージ装置2(2000)に、排他ロック解除コマンドの完了応答を返す(S718)。
【0176】
物理ストレージ装置1(2000)から排他ロック解除コマンドの完了応答を受信すると、物理ストレージ装置2(2000)は、物理ストレージ装置3(2000)に、排他ロック解除コマンドの完了応答を返す(S718)。
【0177】
本実施例によれば、HAカスケード構成でのボリューム移行時に、ホストI/O無停止及び高可用性を維持することができる。なお、ボリューム移行時のREADコマンド処理は実施例1と同様であり、説明を省略する。