以下に図面を参照して、本発明にかかるストレージ装置および制御プログラムの実施の形態を詳細に説明する。
(実施の形態)
図1は、実施の形態にかかるストレージ装置のハードウェア構成例を示す説明図である。図1において、ストレージシステム100は、ストレージ装置101と、ストレージ装置102と、ユーザ端末103と、を含む。ストレージシステム100において、ストレージ装置101、ストレージ装置102およびユーザ端末103は、有線または無線のネットワーク110を介して接続される。ネットワーク110は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。
ストレージ装置101は、バックアップ対象のデータを記憶するコピー元のストレージ装置である。ストレージ装置102は、バックアップ対象のデータがコピーされるコピー先のストレージ装置である。ユーザ端末103は、ストレージシステム100のユーザが使用するコンピュータである。
ユーザ端末103は、ユーザの操作入力により、データのバックアップ指示やリストア指示を行う。例えば、ユーザ端末103は、PC(Personal Computer)である。ホスト装置104は、ストレージシステム100に接続されるホストコンピュータである。例えば、ホスト装置104は、ストレージ装置101上に作成されるボリュームを用いて業務処理を行う。
各ストレージ装置101,102は、リモートコピー機能を有する。リモートコピーとは、遠隔地での筐体間コピーを実現する機能である。リモートコピーでは、例えば、コピー元(ボリューム)のデータを定期的にコピー先(ボリューム)に転送するにあたり、まず、開始時点のコピー元のデータをコピー先に転送し、コピー元へのデータ更新分を逐次コピー先に転送するという手順を踏む。
ここで、ストレージ装置101,102は、1以上のノード120と、1以上のディスク130と、を有する。ノード120は、ディスク130、メモリ122等の資源管理や、コピー制御などを行う制御部である。ノード120は、CPU(Central Processing Unit)121と、メモリ122と、I/F(Interface)123と、を有する。また、各構成部は、バス124によってそれぞれ接続される。
CPU121は、ノード120の全体の制御を司る。CPU121は、複数のコアを有していてもよい。メモリ122は、例えば、DRAM(Dynamic Random Access Memory)やフラッシュROM(Read Only Memory)などを有する。具体的には、例えば、フラッシュROMは、各種プログラムを記憶する。DRAMは、CPU121のワークエリアとして使用される揮発メモリであり、例えば、処理中のユーザデータや制御情報を記憶する。メモリ122に記憶されるプログラムは、CPU121にロードされることで、コーディングされている処理をCPU121に実行させる。
I/F123は、ネットワーク110等に接続され、ネットワーク110等を介して他のコンピュータに接続される。そして、I/F123は、ネットワーク110等とノード内部とのインターフェースを司り、他のコンピュータからのデータの入出力を制御する。I/F123には、例えば、CA(Channel Adapter)やLANアダプタなどを採用することができる。
ディスク130は、データを記憶するストレージの一例であり、ユーザデータや制御情報を記憶する不揮発性の記憶装置である。ディスク130は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)である。ディスク130は、全てがHDDまたはSSDであってもよいし、HDDとSSDとが混在していてもよい。
(データのバックアップ例)
つぎに、図2を用いて、ストレージシステム100におけるデータのバックアップ例について説明する。ここでは、ストレージ装置101のデータを、ストレージ装置102にリモートコピーすることにより、データのバックアップを行う。
図2は、データのバックアップ例を示す説明図である。図2において、ボックスIDは、各ストレージ装置101,102を識別する識別子である。ここでは、ストレージ装置101のボックスIDは「A」である。また、ストレージ装置102のボックスIDは「B」である。
ボリューム(P−V)は、ストレージ装置101に作成されるコピー元のボリュームである。ボリュームとは、各ストレージ装置101,102の管理単位となる記憶領域である。ボリュームは、1または複数の物理的な記憶装置であってもよく、論理的な記憶装置であるLUN(Logical Unit Number)であってもよい。例えば、ボリューム(P−V)は、業務ボリュームである。
図2の例では、ボリューム(P−V)は、LUN#1である。LUN#(数字)の(数字)は、ボリュームIDである。ボリュームIDは、各ストレージ装置101,102においてボリュームを一意に識別する識別子である。ボリューム(S−V)は、ストレージ装置102に作成されるコピー先のボリュームである。図2の例では、ボリューム(S−V)は、LUN#11である。
なお、P−Vは、Primary−Volumeの略である。S−Vは、Secondary−Volumeの略である。
ここで、ボリューム(P−V)からボリューム(S−V)へのデータのバックアップを行うにあたり、ボリューム(P−V)からボリューム(S−V)に対して直接コピーを行うと、ボリューム(P−V)へのI/O性能に影響を及ぼすおそれがある。そこで、ストレージ装置101は、自装置内のボリューム(P−Snap)に、ボリューム(P−V)のスナップショットを作成し、作成したボリューム(P−Snap)からボリューム(S−V)へのリモートコピーを行う。
スナップショットとは、一時点におけるデータの論理的なコピーである。スナップショットは、例えば、データの更新時に、更新するデータ部の更新前の状態をコピーし、オリジナルの未更新部分とあわせて更新前の状態を保持する、いわゆる、コピー・オン・ライト方式により作成される。図2の例では、ボリューム(P−Snap)は、LUN#2である。
さらに、ボリューム(P−Snap)からボリューム(S−V)へのリモートコピー中に通信障害等が発生すると、ボリューム(S−V)がボリューム(P−Snap)と等価状態であることが保証されず、ボリューム(S−V)を使用できなくなるおそれがある。そこで、ストレージ装置102は、ボリューム(P−Snap)からボリューム(S−V)へのリモートコピー完了後に、自装置内のボリューム(S−Snap)に、ボリューム(S−V)のスナップショットを作成する。図2の例では、ボリューム(S−Snap)は、LUN#12である。
これにより、ボリューム(P−V)へのI/O性能に与える影響を抑えつつ、ボリューム(P−V)のデータのバックアップをとることができる。さらに、リモートコピー中の通信障害等を考慮して、リモートサイト側でもボリューム(S−V)のデータのバックアップをとることができる。
なお、図2中、セッションIDは、コピーセッションを識別する識別子である。コピーセッションは、コピーの実行単位である。また、RECは、リモートコピーをあらわす。
しかしながら、図2に示したような構成でデータのバックアップを実施した場合に、何らかの障害発生後にコピー元のデータを復元するにあたり、どのボリュームからどのようにリストアすればよいのかを人手で判断することが難しい。リストアとは、データ損失時などに、バックアップデータを用いて損失したデータを復元することである。
例えば、ユーザが、各ボリュームの状態を一つ一つ確認して、どのボリュームからリストアすればよいのかを判断するには時間や手間がかかり、データ復旧にかかる期間の長期化を招いてしまう。また、ユーザによっては、どのボリュームからリストアすべきかを適切に判断することができない場合がある。
そこで、本実施の形態では、リストア作業にかかるユーザの負荷を削減すべく、ボリューム(P−V)のデータを復元するにあたり、ボリューム(P−Snap)、ボリューム(S−V)およびボリューム(S−Snap)の中から、リストア元ボリュームを自動決定するストレージ装置101について説明する。
ここで、図3を用いて、ストレージシステム100におけるデータのリストア例について説明する。
図3は、データのリストア例を示す説明図である。図3において、ストレージ装置101は、ボリューム(P−V)のリストア指示を受け付けると、下記(a)、(b)および(c)のいずれかの条件に応じて、ボリューム(P−V)のデータを復元するためのリストア元ボリュームを決定する。
(a)ボリューム(P−Snap)に作成したスナップショットの状態が正常である
ストレージ装置101は、上記(a)に該当すると判定した場合、ボリューム(P−Snap)、ボリューム(S−V)およびボリューム(S−Snap)の中から、ボリューム(P−Snap)をリストア元ボリュームに決定する。
これにより、ボリューム(P−Snap)に作成されたスナップショットの状態が正常であれば、同一サイト内のボリューム(P−Snap)からリストアすることができる。例えば、人為的ミスによるデータ削除などの障害が発生したときは、ボリューム(P−Snap)に作成されたスナップショットの状態は正常である。このような場合は、同一サイト内のボリューム(P−Snap)からリストアすることができる。
(b)ボリューム(P−Snap)に作成したスナップショットの状態が異常で、かつ、ボリューム(S−V)がボリューム(P−Snap)と等価状態である
ストレージ装置101は、上記(b)に該当すると判定した場合、ボリューム(P−Snap)、ボリューム(S−V)およびボリューム(S−Snap)の中から、ボリューム(S−V)をリストア元ボリュームに決定する。
ここで、等価状態とは、ボリューム(P−Snap)からボリューム(S−V)への直前のリモートコピーが正常に完了して、ボリューム(S−V)の記憶内容が、ボリューム(P−Snap)と等価であることが保証された状態である。すなわち、上記(b)は、リモートコピーが正常に完了した後に、ストレージ装置101でディスク故障などのハードウェア障害が発生した場合に該当する。
これにより、ストレージ装置101でディスク故障などのハードウェア障害が発生した際に、ボリューム(P−Snap)からボリューム(S−V)への直前のリモートコピーが正常に完了しているときは、ボリューム(S−V)からリストアすることができる。
(c)ボリューム(P−Snap)に作成したスナップショットの状態が異常で、かつ、ボリューム(S−V)がボリューム(P−Snap)と等価状態ではない
ストレージ装置101は、上記(c)に該当すると判定した場合、ボリューム(P−Snap)、ボリューム(S−V)およびボリューム(S−Snap)の中から、ボリューム(S−Snap)をリストア元ボリュームに決定する。
これにより、ボリューム(P−Snap)からボリューム(S−V)へのリモートコピー中にストレージ装置101でディスク故障などの障害が発生したときには、ボリューム(S−Snap)からリストアすることができる。
例えば、頻繁にボリューム(P−V)のスナップショットを作成する、すなわち、短い時間間隔でボリューム(P−V)のバックアップをとるような運用を行っている場合には、上記(b)よりも上記(c)となる可能性が高くなる。
このように、ストレージ装置101によれば、どのような障害がどのような状況で発生したかに応じて、ボリューム(P−Snap)、ボリューム(S−V)およびボリューム(S−Snap)の中から、ボリューム(P−V)のデータを復元するためのリストア元ボリュームを決定することができる。これにより、ボリューム(P−V)のデータを復旧するにあたり、どのボリュームからリストアすべきかのユーザによる判断をなくして、リストア作業にかかる負荷を削減することができる。
(コピーセッションテーブル400の記憶内容)
つぎに、各ストレージ装置101,102が有するコピーセッションテーブル400の記憶内容について説明する。コピーセッションテーブル400は、例えば、各ストレージ装置101,102内のノード120のメモリ122や、ディスク130に記憶される。
以下の説明では、ストレージ装置101が有するコピーセッションテーブル400を「コピーセッションテーブル400(P)」と表記し、ストレージ装置102が有するコピーセッションテーブル400を「コピーセッションテーブル400(S)」と表記する場合がある。
まず、ストレージ装置101が有するコピーセッションテーブル400(P)の記憶内容について説明する。
図4Aは、コピーセッションテーブル400(P)の記憶内容の一例を示す説明図である。図4Aにおいて、コピーセッションテーブル400(P)は、セッションID、コピー元ID、コピー先ID、ローカルボックスID、リモートボックスID、リモートセッションID、コピー種別、方向、ステータスおよびフェーズのフィールドを有する。各フィールドに情報を設定することで、コピーセッション情報410−1,410−2がレコードとして記憶される。
ここで、セッションIDは、コピーセッションを識別する識別子である。コピー元IDは、コピー元ボリュームのボリュームIDである。コピー先IDは、コピー先ボリュームのボリュームIDである。ローカルボックスIDは、自装置のボックスIDである。リモートボックスIDは、他装置のボックスIDである。リモートセッションIDは、他装置で用いられるリモートコピーのセッションIDである。
コピー種別は、コピーの種別を示す。コピー種別には、「Snapshot」または「RemoteCopy」が設定される。コピー種別「Snapshot」は、スナップショットを示す。コピー種別「RemoteCopy」は、リモートコピーを示す。方向は、リモートコピーの方向である。方向「L to R」は、ローカルサイト(自装置)からリモートサイト(他装置)への方向を示す。方向「R to L」は、リモートサイト(他装置)からローカルサイト(自装置)への方向を示す。
ステータスは、コピーセッションの状態を示す。コピー種別「Snapshot」のコピーセッションの場合、ステータスには、「Active」または「Error」が設定される。また、コピー種別「RemoteCopy」のコピーセッションの場合、ステータスには、「Active」、「Suspend」および「Error」のいずれかが設定される。ステータス「Active」は、コピーセッションの状態が正常であることを示す。ステータス「Suspend」は、コピーセッションを停止中であることを示す。ステータス「Error」は、コピーセッションの状態が異常であることを示す。
フェーズは、コピー中またはコピー完了を示す。コピー種別「Snapshot」のコピーセッションの場合、フェーズには「Copying」が設定される。コピー種別「RemoteCopy」のコピーセッションの場合、フェーズには、「Copying」または「Equivalent」が設定される。フェーズ「Copying」は、コピー中であることを示す。フェーズ「Equivalent」は、コピーが完了して等価状態にあることを示す。なお、ローカルボックスID、リモートボックスIDおよびリモートセッションIDは、リモートコピーの場合にのみ設定される。
つぎに、ストレージ装置102が有するコピーセッションテーブル400(S)の記憶内容について説明する。
図4Bは、コピーセッションテーブル400(S)の記憶内容の一例を示す説明図である。図4Bにおいて、コピーセッションテーブル400(S)は、セッションID、コピー元ID、コピー先ID、ローカルボックスID、リモートボックスID、リモートセッションID、コピー種別、方向、ステータスおよびフェーズのフィールドを有する。各フィールドに情報を設定することで、コピーセッション情報420−1,420−2がレコードとして記憶される。
なお、コピーセッションテーブル400(S)についての詳細な説明は、図4Aに示したコピーセッションテーブル400(P)と同様のため省略する。
(セッション関係性テーブル500の記憶内容)
つぎに、各ストレージ装置101,102が有するセッション関係性テーブル500の記憶内容について説明する。セッション関係性テーブル500は、例えば、各ストレージ装置101,102内のノード120のメモリ122や、ディスク130に記憶される。
以下の説明では、ストレージ装置101が有するセッション関係性テーブル500を「セッション関係性テーブル500(P)」と表記し、ストレージ装置102が有するセッション関係性テーブル500を「セッション関係性テーブル500(S)」と表記する場合がある。
まず、ストレージ装置101が有するセッション関係性テーブル500(P)の記憶内容について説明する。
図5Aは、セッション関係性テーブル500(P)の記憶内容の一例を示す説明図である。図5Aにおいて、セッション関係性テーブル500(P)は、ストレージ装置101,102間でデータのバックアップを行うにあたり作成されるコピーセッション間の関係性を記憶する。
具体的には、セッション関係性テーブル500(P)は、セッションIDと、ローカルスナップショットセッションIDと、ローカルRECセッションIDと、リモートRECセッションIDと、ローカルボリュームIDと、ローカルスナップボリュームIDと、リモートボリュームIDと、リモートスナップボリュームIDと、プライマリーフラグと、ローカルボックスIDと、リモートボックスIDと、を対応付けて記憶する。
セッションIDは、コピーセッションのセッションIDである。ローカルスナップショットセッションIDは、ローカルサイト(自装置内)におけるコピー種別「Snapshot」のコピーセッションのセッションIDである。ローカルRECセッションIDは、ローカルサイト(自装置内)におけるコピー種別「RemoteCopy」のコピーセッションのセッションIDである。
リモートRECセッションIDは、リモートサイト(他装置内)におけるコピー種別「RemoteCopy」のコピーセッションのセッションIDである。ローカルボリュームIDは、ローカルサイト(自装置内)にあるコピー元ボリュームのボリュームIDである。ローカルスナップボリュームIDは、ローカルサイト(自装置内)にある、コピー元ボリュームのスナップショットを記憶するボリュームのボリュームIDである。
リモートボリュームIDは、リモートサイト(他装置内)にあるコピー先ボリュームのボリュームIDである。リモートスナップボリュームIDは、リモートサイト(他装置内)にある、コピー先ボリュームのスナップショットを記憶するボリュームのボリュームIDである。
プライマリーフラグは、自装置がリモートコピーのコピー元であるか否かを示すフラグである。プライマリーフラグ「TRUE」は、自装置がコピー元であることを示す。プライマリーフラグ「FALSE」は、自装置がコピー先であることを示す。ローカルボックスIDは、自装置を識別する識別子である。リモートボックスIDは、他装置を識別する識別子である。
つぎに、ストレージ装置102が有するセッション関係性テーブル500(S)の記憶内容について説明する。
図5Bは、セッション関係性テーブル500(S)の記憶内容の一例を示す説明図である。図5Bにおいて、セッション関係性テーブル500(S)は、ストレージ装置101,102間でデータのバックアップを行うにあたり作成されたコピーセッション間の関係性を記憶する。
なお、セッション関係性テーブル500(S)についての詳細な説明は、図5Aに示したセッション関係性テーブル500(P)と同様のため省略する。
(ストレージ装置101の機能的構成例)
図6は、ストレージ装置101の機能的構成例を示すブロック図である。図6において、ストレージ装置101は、受付部601と、バックアップ制御部602と、リストア制御部603と、を含む。受付部601〜リストア制御部603は制御部となる機能であり、具体的には、例えば、ストレージ装置101が有するノード120のメモリ122に記憶されたプログラムをCPU121に実行させることにより、または、I/F123により、その機能を実現する。各機能部の処理結果は、例えば、メモリ122、ディスク130などの記憶装置に記憶される。なお、ストレージ装置101が複数のノード120を有する場合、各機能部は、例えば、複数のノード120のうちのマスタノードと呼ばれるノード120により実現される。
受付部601は、コピー元ボリュームに対するバックアップ指示を受け付ける。バックアップ指示は、コピー元ストレージ装置のコピー元ボリュームのデータを、コピー先ストレージ装置のコピー先ボリュームへバックアップするよう指示するものである。コピー元ボリュームは、例えば、図2に示したストレージ装置101のボリューム(P−V)である。また、コピー先ボリュームは、例えば、図2に示したストレージ装置102のボリューム(S−V)である。
バックアップ指示には、例えば、コピー元ストレージ装置のボックスID、コピー元ボリュームのボリュームID、コピー先ストレージ装置のボックスID、コピー先ボリュームのボリュームIDが含まれる。具体的には、例えば、受付部601は、図1に示したユーザ端末103から、コピー元ボリュームに対するバックアップ指示を受け付ける。
以下の説明では、コピー元ボリュームとして「ストレージ装置101のボリューム(P−V)」を、コピー先ボリュームとして「ストレージ装置102のボリューム(S−V)」を例に挙げて説明する。また、初期状態において、ボリューム(P−V)からボリューム(S−V)への初期コピーは、完了しているものとする。
バックアップ制御部602は、ボリューム(P−V)に対するバックアップ指示を受け付けると、コピー先ストレージ装置にボリューム(S−Snap)を作成する。また、バックアップ制御部602は、コピー元ストレージ装置にボリューム(P−Snap)を作成する。そして、バックアップ制御部602は、ボリューム(P−Snap)からボリューム(S−V)へのリモートコピーを開始する。
ここで、ボリューム(P−Snap)は、コピー元ボリュームであるボリューム(P−V)のスナップショットが作成される第1ボリュームである。また、ボリューム(S−Snap)は、コピー先ボリュームであるボリューム(S−V)のスナップショットが作成される第2ボリュームである。
以下の説明では、ボリューム(P−V)のスナップショットを「第1スナップショット」と表記し、ボリューム(S−V)のスナップショットを「第2スナップショット」と表記する場合がある。
具体的には、例えば、バックアップ制御部602は、コピー先ストレージ装置であるストレージ装置102に、ボリューム(S−Snap)の作成指示を送信する。ストレージ装置102は、ボリューム(S−Snap)の作成指示を受信すると、ボリューム(S−Snap)を作成する。そして、ストレージ装置102は、ボリューム(S−V)の第2スナップショットを、ボリューム(S−Snap)に作成する。また、ストレージ装置102は、ボリューム(S−Snap)のボリュームIDをストレージ装置101に通知する。
また、バックアップ制御部602は、ボリューム(P−Snap)を作成し、ボリューム(P−V)の第1スナップショットを、ボリューム(P−Snap)に作成する。つぎに、バックアップ制御部602は、ボリューム(P−Snap)からボリューム(S−V)へのリモートコピーセッションを生成する。そして、バックアップ制御部602は、ボリューム(P−Snap)とボリューム(S−V)との差分を求めて、差分データのコピーを開始する。
なお、ストレージ装置101において、第1スナップショットが作成されると、例えば、コピーセッションテーブル400(P)にコピーセッション情報410−1が記憶される。また、ストレージ装置102において、第2スナップショットが作成されると、例えば、コピーセッションテーブル400(S)にコピーセッション情報420−2が記憶される。
また、ストレージ装置101において、ボリューム(P−Snap)からボリューム(S−V)へのリモートコピーセッションが生成されると、コピーセッションテーブル400(P)にコピーセッション情報410−2が記憶される。また、ストレージ装置102において、コピーセッションテーブル400(S)にコピーセッション情報420−1が記憶される。
また、ボリューム(P−Snap)からボリューム(S−V)へのリモートコピーセッションが生成されると、各ストレージ装置101,102において、セッション関係性テーブル500(P),500(S)がそれぞれ作成される。各種テーブルに設定する情報は、例えば、ストレージ装置101,102間で通信することにより取得される。
なお、ボリューム(P−Snap)からボリューム(S−V)への差分データのコピーが完了すると、コピーセッションテーブル400(P)内のコピーセッション情報410−2のフェーズに「Equivalent」が設定される。また、コピーセッションテーブル400(S)内のコピーセッション情報420−1のフェーズに「Equivalent」が設定される。
また、受付部601は、コピー元ボリュームに対するリストア指示を受け付ける。リストア指示は、コピー元ストレージ装置のコピー元ボリュームのデータを復元するよう指示するものである。リストア指示には、例えば、コピー元ストレージ装置のボックスID、コピー元ボリュームのボリュームIDが含まれる。具体的には、例えば、受付部601は、ユーザ端末103から、コピー元ボリュームに対するリストア指示を受け付ける。
以下の説明では、リストア対象となるコピー元ボリュームとして「ストレージ装置101のボリューム(P−V)」を例に挙げて説明する。この場合、リストア指示には、例えば、コピー元ストレージ装置のボックスID「A」およびコピー元ボリュームのボリュームID「1」が含まれる。なお、ディスク故障などのハードウェア障害が発生した場合には、例えば、ディスク交換等の被疑箇所の復旧が行われた後、リストアが実施される。
リストア制御部603は、ボリューム(P−V)に対するリストア指示を受け付けると、ボリューム(P−Snap)、ボリューム(S−V)およびボリューム(S−Snap)の中から、リストア元ボリュームを決定する。リストア元ボリュームは、ボリューム(P)のデータを復元するために用いるボリュームである。そして、リストア制御部603は、決定したリストア元ボリュームのデータを、ボリューム(P−V)にコピーする制御を行うことにより、ボリューム(P−V)のデータを復元する。
具体的には、例えば、まず、リストア制御部603は、ボリューム(P−V)に対するリストア指示を受け付けると、第1スナップショットの状態を判定する。第1スナップショットの状態は、例えば、図4Aに示したコピーセッションテーブル400(P)のステータスから判定することができる。ステータスは、コピーセッションの状態に応じて更新される。例えば、コピー中にハードウェア障害が発生した場合、ステータスは「Error」となる。したがって、リストア制御部603は、コピーセッションテーブル400(P)のステータスを参照することで、各コピーセッションの状態を判定することができる。
より詳細に説明すると、例えば、リストア制御部603は、コピーセッションテーブル400(P)から、リストア指示に含まれるコピー元ボリュームのボリュームID「1」がコピー元IDに設定され、コピー種別が「Snapshot」のコピーセッション情報410−1を特定する。そして、リストア制御部603は、特定したコピーセッション情報410−1を参照して、ステータスが「Active」であれば、第1スナップショットの状態が正常であると判定する。一方、リストア制御部603は、ステータスが「Error」であれば、第1スナップショットの状態が異常であると判定する。
・リストア元ボリューム⇒ボリューム(P−Snap)
ここで、第1スナップショットの状態が正常であると判定した場合、リストア制御部603は、ボリューム(P−Snap)をリストア元ボリュームに決定する。そして、リストア制御部603は、ボリューム(P−Snap)をリストア元ボリュームに決定した場合、ボリューム(P−Snap)からボリューム(P)へデータをコピーすることにより、ボリューム(P−V)のデータを復元する。
これにより、ストレージ装置101でディスク故障などのハードウェア障害が発生しておらず、ボリューム(P−Snap)に作成された第1スナップショットが正常であれば、同一サイト内のボリューム(P−Snap)からリストアすることができる。
一方、第1スナップショットの状態が異常であると判定した場合、リストア制御部603は、ボリューム(S−V)が、第1スナップショットのデータのコピーが完了してボリューム(P−Snap)と等価状態にあるか否かを判定する。
より詳細に説明すると、例えば、リストア制御部603は、コピーセッションテーブル400(P)から、ボリューム(P−Snap)のボリュームID「2」がコピー元IDに設定され、ボリューム(S−V)のボリュームID「11」がコピー先IDに設定され、コピー種別が「RemoteCopy」のコピーセッション情報410−2を特定する。そして、リストア制御部603は、特定したコピーセッション情報410−2を参照して、フェーズが「Equivalent」であれば、等価状態であると判定する。一方、リストア制御部603は、フェーズが「Copying」であれば、等価状態ではないと判定する。
そして、リストア制御部603は、判定した結果に基づいて、ボリューム(S−V)およびボリューム(S−Snap)からリストア元ボリュームを決定する。より詳細に説明すると、例えば、リストア制御部603は、ボリューム(S−V)が等価状態であると判定した場合、ボリューム(S−V)をリストア元ボリュームに決定する。一方、ボリューム(S−V)が等価状態ではないと判定した場合、ボリューム(S−Snap)をリストア元ボリュームに決定する。
・リストア元ボリューム⇒ボリューム(S−V)
ここで、ボリューム(S−V)をリストア元ボリュームに決定した場合、まず、リストア制御部603は、ボリューム(P−Snap)からボリューム(S−V)へのリモートコピーの方向を反転する制御を行う。これにより、リストア制御部603は、ボリューム(S−V)のデータをボリューム(P−Snap)にコピーする。そして、リストア制御部603は、ボリューム(S−V)からボリューム(P−Snap)へのリモートコピーが完了した場合、ボリューム(P−Snap)のデータをボリューム(P−V)にコピーすることにより、ボリューム(P−V)のデータを復元する。
これにより、ストレージ装置101でディスク故障などの障害が発生した際に、ボリューム(P−Snap)からボリューム(S−V)への直前のリモートコピーが正常に完了しているときは、ボリューム(S−V)からリストアすることができる。
ここで、図7および図8を用いて、ボリューム(S−V)をリストア元ボリュームに決定した場合の各種テーブル400,500の更新例について説明する。
図7は、コピーセッションテーブル400の更新例を示す説明図(その1)である。図8は、セッション関係性テーブル500の更新例を示す説明図である。図7に示すように、ボリューム(P−Snap)からボリューム(S−V)へのリモートコピーの方向が反転されると、コピーセッションテーブル400(P)内のコピーセッション情報410−2が更新される。また、コピーセッションテーブル400(S)内のコピーセッション情報420−1が更新される。
具体的には、コピーセッション情報410−2において、コピー元IDとコピー先IDとが入れ替えられ、方向が「L to R」から「R to L」に変更される。コピーセッション情報420−1において、コピー元IDとコピー先IDとが入れ替えられ、方向が「R to L」から「L to R」に変更される。
また、図8に示すように、ボリューム(P−Snap)からボリューム(S−V)へのリモートコピーの方向が反転されると、セッション関係性テーブル500(P)内のプライマリーフラグが「FALSE」に変更される。また、セッション関係性テーブル500(S)内のプライマリーフラグが「TRUE」に変更される。
このように、ボリューム(S−V)からリストアを行うにあたり、セッションIDを変更しないで、ボリューム(P−V)のデータを復元することで、ユーザからは同じセッションIDでコピーセッションが継続しているように見せることができる。
なお、リストア制御部603は、ボリューム(P−Snap)のデータのボリューム(P−V)へのコピーが完了した場合、ボリューム(S−V)からボリューム(P−Snap)へのリモートコピーの方向を反転する。これにより、リストア制御部603は、ボリューム(P−Snap)からボリューム(S−V)へのリモートコピーを再開する。
この結果、ボリューム(P−V)のデータのバックアップを再開して通常運用に戻すことができる。この場合、図7および図8で示した各種テーブル400,500の記憶内容は、図4A、図4B、図5Aおよび図5Bで示したような記憶内容に変更される。
・リストア元ボリューム⇒ボリューム(S−Snap)
また、ボリューム(S−Snap)をリストア元ボリュームに決定した場合、リストア制御部603は、ボリューム(P−Snap)からボリューム(S−V)へのリモートコピーを、ボリューム(S−Snap)からボリューム(P−V)へのリモートコピーに変更する。すなわち、リストア制御部603は、ボリューム(S−Snap)のデータをボリューム(P−V)にコピーすることにより、ボリューム(P−V)のデータを復元する。
これにより、ボリューム(P−Snap)からボリューム(S−V)へのリモートコピー中にストレージ装置101でディスク故障などの障害が発生したときには、ボリューム(S−Snap)からリストアすることができる。
ここで、図9を用いて、ボリューム(S−Snap)をリストア元ボリュームに決定した場合の各種テーブル400,500の更新例について説明する。なお、ボリューム(S−Snap)をリストア元ボリュームに決定した場合のセッション関係性テーブル500の更新例については、図8に示した更新例と同様のため、図示および説明を省略する。
図9は、コピーセッションテーブル400の更新例を示す説明図(その2)である。図9に示すように、ボリューム(P−Snap)からボリューム(S−V)へのリモートコピーが、ボリューム(S−Snap)からボリューム(P−V)へのリモートコピーに変更されると、コピーセッションテーブル400(P)内のコピーセッション情報410−2が更新される。また、コピーセッションテーブル400(S)内のコピーセッション情報420−1が更新される。
具体的には、コピーセッション情報410−2において、コピー元IDにボリューム(S−Snap)のボリュームID「12」が設定され、コピー先IDにボリューム(P−V)のボリュームID「1」が設定され、方向が「L to R」から「R to L」に変更される。また、コピーセッション情報420−1において、コピー元IDにボリューム(S−Snap)のボリュームID「12」が設定され、コピー先IDにボリューム(P−V)のボリュームID「1」が設定され、方向が「R to L」から「L to R」に変更される。
このように、ボリューム(S−Snap)からリストアを行うにあたり、セッションIDを変更しないで、ボリューム(P−V)のデータを復元することで、ユーザからは同じセッションIDでコピーセッションが継続しているように見せることができる。
なお、リストア制御部603は、ボリューム(S−Snap)からボリューム(P−V)へのコピーが完了した場合、ボリューム(P−Snap)からボリューム(S−V)へのリモートコピーに変更する。これにより、リストア制御部603は、ボリューム(P−Snap)からボリューム(S−V)へのリモートコピーを再開する。
この結果、ボリューム(P−V)のデータのバックアップを再開して通常運用に戻すことができる。この場合、各種テーブル400,500の記憶内容は、図4A、図4B、図5Aおよび図5Bで示したような記憶内容に変更される。
なお、リストア制御部603は、ボリューム(P−V)に対するリストア指示を受け付けると、ボリューム(S−V)が、第1スナップショットのデータのコピーが完了してボリューム(P−Snap)と等価状態にあるか否かを判定することにしてもよい。そして、リストア制御部603は、判定した結果に基づいて、ボリューム(S−V)およびボリューム(S−Snap)から、リストア元ボリュームを決定することにしてもよい。
また、上述した説明では、コピー元ストレージ装置であるストレージ装置101が各機能部を有することにしたが、例えば、コピー先ストレージ装置であるストレージ装置102が各機能部を有することにしてもよい。
(ストレージ装置101のバックアップ処理手順)
つぎに、図10を用いて、ストレージ装置101のバックアップ処理手順について説明する。ストレージ装置101のバックアップ処理は、例えば、コピー元ボリュームに対するバックアップ指示に応じて、または、指定時間間隔(例えば、1時間、1日など)で実行される。ここでは、コピー元ボリュームを「ストレージ装置101のボリューム(P−V)」とし、コピー先ボリュームを「ストレージ装置102のボリューム(S−V)」とする。また、初期状態において、ボリューム(P−V)からボリューム(S−V)への初期コピーは、完了しているものとする。
図10は、ストレージ装置101のバックアップ処理手順の一例を示すフローチャートである。図10のフローチャートにおいて、まず、ストレージ装置101は、ボリューム(S−Snap)が存在するか否かを判断する(ステップS1001)。
具体的には、例えば、ストレージ装置101は、セッション関係性テーブル500(P)を参照して、リモートスナップボリュームIDにボリュームIDが設定されていれば、ボリューム(S−Snap)が存在すると判断する。一方、リモートスナップボリュームIDにボリュームIDが未設定であれば、ボリューム(S−Snap)が存在しないと判断する。また、ストレージ装置101は、コピー先ストレージ装置であるストレージ装置102に問い合わせることにより、ボリューム(S−Snap)が存在するか否かを判断することにしてもよい。
ここで、ボリューム(S−Snap)が存在する場合(ステップS1001:Yes)、ストレージ装置101は、ステップS1004に移行する。一方、ボリューム(S−Snap)が存在しない場合(ステップS1001:No)、ストレージ装置101は、ストレージ装置102に、ボリューム(S−Snap)の作成指示を送信する(ステップS1002)。
なお、ストレージ装置102は、ストレージ装置101からボリューム(S−Snap)の作成指示を受信すると、ボリューム(S−Snap)を作成する。そして、ストレージ装置102は、ボリューム(S−V)からボリューム(S−Snap)へのスナップショットセッションを生成して、ボリューム(S−V)の第2スナップショットを、ボリューム(S−Snap)に作成する。この結果、ストレージ装置102において、コピーセッションテーブル400(S)にコピーセッション情報420−2が記憶される。また、ストレージ装置102は、ボリューム(S−Snap)のボリュームIDをストレージ装置101に通知する。
そして、ストレージ装置101は、ストレージ装置102からボリューム(S−Snap)のボリュームIDを取得する(ステップS1003)。つぎに、ストレージ装置101は、自装置内にボリューム(P−Snap)が存在するか否かを判断する(ステップS1004)。
ここで、ボリューム(P−Snap)が存在する場合(ステップS1004:Yes)、ストレージ装置101は、ステップS1007に移行する。一方、ボリューム(P−Snap)が存在しない場合(ステップS1004:No)、ストレージ装置101は、自装置内にボリューム(P−Snap)を作成する(ステップS1005)。
そして、ストレージ装置101は、ボリューム(P−V)からボリューム(P−Snap)へのスナップショットセッションを生成して、ボリューム(P−V)の第1スナップショットを、ボリューム(P−Snap)に作成する(ステップS1006)。この結果、ストレージ装置101において、コピーセッションテーブル400(P)にコピーセッション情報410−1が記憶される。
つぎに、ストレージ装置101は、ボリューム(P−Snap)からボリューム(S−V)へのリモートコピーセッションを生成する(ステップS1007)。この結果、ストレージ装置101において、コピーセッションテーブル400(P)にコピーセッション情報410−2が記憶される。また、ストレージ装置102において、コピーセッションテーブル400(S)にコピーセッション情報420−1が記憶される。また、各ストレージ装置101,102において、セッション関係性テーブル500(P),500(S)がそれぞれ作成される。この際、ステップS1003において取得されたボリューム(S−Snap)のボリュームIDは、セッション関係性テーブル500(P)内のリモートスナップボリュームIDに設定される。
そして、ストレージ装置101は、ボリューム(P−Snap)とボリューム(S−V)との差分を求めて、差分データのコピーを開始する(ステップS1008)。つぎに、ストレージ装置101は、差分データのコピーが完了したか否かを判断する(ステップS1009)。
ここで、ストレージ装置101は、差分データのコピーが完了するのを待つ(ステップS1009:No)。そして、差分データのコピーが完了した場合(ステップS1009:Yes)、ストレージ装置101は、コピーセッションテーブル400(P)内のコピーセッション情報410−2のフェーズに「Equivalent」を設定して(ステップS1010)、本フローチャートによる一連の処理を終了する。
これにより、ボリューム(P−V)へのI/O性能に与える影響を抑えつつ、ボリューム(P−V)のデータのバックアップをとることができる。さらに、リモートコピー中の通信障害等を考慮して、リモートサイト側でもボリューム(S−V)のデータのバックアップをとることができる。
なお、ステップS1009において差分データのコピーが完了すると、ストレージ装置102において、コピーセッションテーブル400(S)内のコピーセッション情報420−1のフェーズに「Equivalent」が設定される。また、本バックアップ処理がユーザからのバックアップ指示に応じて実行開始されたときに、ステップS1009において、所定時間が経過しても差分データのコピーが完了しなかった場合、ストレージ装置101は、エラー通知を行うことにしてもよい。
(ストレージ装置101のリストア処理手順)
つぎに、図11を用いて、ストレージ装置101のリストア処理手順について説明する。ストレージ装置101のリストア処理は、例えば、コピー元ボリュームに対するバックアップ指示に応じて実行される。ここでは、リストア対象となるコピー元ボリュームを「ストレージ装置101のボリューム(P−V)」とする。
図11は、ストレージ装置101のリストア処理手順の一例を示すフローチャートである。図11のフローチャートにおいて、まず、ストレージ装置101は、コピーセッションテーブル400(P)を参照して、ボリューム(P−V)からボリューム(P−Snap)へのスナップショットセッションの状態が正常であるか否かを判断する(ステップS1101)。
ここで、スナップショットセッションの状態が正常の場合(ステップS1101:Yes)、ストレージ装置101は、ボリューム(P−Snap)をリストア元ボリュームに決定して(ステップS1102)、ステップS1109に移行する。
一方、スナップショットセッションの状態が異常の場合(ステップS1101:No)、ストレージ装置101は、ボリューム(P−Snap)からボリューム(S−V)へのリモートコピーを停止する(ステップS1103)。そして、ストレージ装置101は、コピーセッションテーブル400(P)を参照して、ボリューム(S−V)がボリューム(P−Snap)と等価状態にあるか否かを判定する(ステップS1104)。
ここで、ボリューム(S−V)が等価状態の場合(ステップS1104:Yes)、ストレージ装置101は、ボリューム(S−V)をリストア元ボリュームに決定する(ステップS1105)。つぎに、ストレージ装置101は、ボリューム(P−Snap)からボリューム(S−V)へのリモートコピーの方向を反転する(ステップS1106)。
そして、ストレージ装置101は、リモートコピーを再開する(ステップS1107)。つぎに、ストレージ装置101は、ボリューム(S−V)からボリューム(P−Snap)へのリモートコピーが完了したか否かを判断する(ステップS1108)。ここで、ストレージ装置101は、リモートコピーが完了するのを待つ(ステップS1108:No)。
そして、リモートコピーが完了した場合(ステップS1108:Yes)、ストレージ装置101は、ボリューム(P−Snap)のデータをボリューム(P−V)にコピーして(ステップS1109)、本フローチャートによる一連の処理を終了する。
また、ステップS1104において、ボリューム(S−V)が等価状態ではない場合(ステップS1104:No)、ストレージ装置101は、ボリューム(S−Snap)をリストア元ボリュームに決定する(ステップS1110)。
つぎに、ストレージ装置101は、リモートコピーのコピー元ボリュームをボリューム(S−Snap)に、コピー先ボリュームをボリューム(P−V)に変更する(ステップS1111)。そして、ストレージ装置101は、リモートコピーを再開する(ステップS1112)。
つぎに、ストレージ装置101は、ボリューム(S−Snap)からボリューム(P−V)へのリモートコピーが完了したか否かを判断する(ステップS1113)。ここで、ストレージ装置101は、リモートコピーが完了するのを待つ(ステップS1113:No)。
そして、リモートコピーが完了した場合(ステップS1113:Yes)、ストレージ装置101は、ボリューム(P−Snap)に対するボリューム(P−V)のスナップショットを更新して(ステップS1114)、本フローチャートによる一連の処理を終了する。
これにより、ボリューム(P−V)のデータを復旧するにあたり、ボリューム(S−V)およびボリューム(S−Snap)の中から、リストア元ボリュームを自動決定して、リストア作業にかかるユーザの負荷を削減することができる。
(ストレージ装置101のリストア後処理手順)
つぎに、図12を用いて、ストレージ装置101のリストア後処理手順について説明する。ストレージ装置101のリストア後処理は、図11に示したリストア処理が終了した後に、バックアップを再開して通常運用に戻すための処理であり、例えば、ユーザからの指示(通常運用への復帰指示)に応じて実行される。
図12は、ストレージ装置101のリストア後処理手順の一例を示すフローチャートである。図12のフローチャートにおいて、まず、ストレージ装置101は、ストレージ装置102とのリモートコピーを停止する(ステップS1201)。つぎに、ストレージ装置101は、ボリューム(S−V)からリストアされたか否かを判断する(ステップS1202)。
ここで、ボリューム(S−V)からリストアされた場合(ステップS1202:Yes)、ストレージ装置101は、ボリューム(S−V)からボリューム(P−Snap)へのリモートコピーの方向を反転する(ステップS1203)。そして、ストレージ装置101は、ボリューム(P−Snap)からボリューム(S−V)へのリモートコピーを再開して(ステップS1204)、本フローチャートによる一連の処理を終了する。
また、ステップS1202において、ボリューム(S−Snap)からリストアされた場合(ステップS1202:No)、ストレージ装置101は、リモートコピーのコピー元ボリュームをボリューム(P−Snap)に、コピー先ボリュームをボリューム(S−V)に変更して(ステップS1205)、ステップS1204に移行する。
これにより、ボリューム(P−V)のデータのバックアップを再開して通常運用に戻すことができる。なお、ボリューム(P−Snap)からリストアされた場合には、図11に示したリストア処理が終了すると、ボリューム(P−V)のデータのバックアップが再開されて通常運用に戻る。
以上説明したように、実施の形態にかかるストレージ装置101によれば、ボリューム(P−V)に対するリストア指示を受け付けると、ボリューム(P−Snap)に作成された第1スナップショットの状態を判定することができる。そして、ストレージ装置101によれば、第1スナップショットの状態が正常であると判定した場合、ボリューム(P−Snap)をリストア元ボリュームに決定することができる。
これにより、ストレージ装置101でディスク故障などのハードウェア障害が発生しておらず、ボリューム(P−Snap)に作成された第1スナップショットが正常であれば、同一サイト内のボリューム(P−Snap)からリストアすることができる。例えば、人為的ミスによるデータ削除などの障害が発生したときは、同一サイト内のボリューム(P−Snap)からリストアすることができる。
また、ストレージ装置101によれば、第1スナップショットの状態が異常であると判定した場合、ボリューム(S−V)が、第1スナップショットのデータのコピーが完了してボリューム(P−Snap)と等価状態にあるか否かを判定することができる。そして、ストレージ装置101によれば、判定した結果に基づいて、ボリューム(S−V)およびボリューム(S−Snap)から、リストア元ボリュームを決定することができる。
これにより、ボリューム(P−Snap)からボリューム(S−V)への直前のリモートコピーが正常に完了しているか否かに応じて、ボリューム(S−V)またはボリューム(S−Snap)で、リストア元ボリュームを切り替えることができる。
また、ストレージ装置101によれば、ボリューム(S−V)がボリューム(P−Snap)と等価状態の場合には、ボリューム(S−V)をリストア元ボリュームに決定することができる。
これにより、ストレージ装置101でディスク故障などの障害が発生した際に、ボリューム(P−Snap)からボリューム(S−V)への直前のリモートコピーが正常に完了しているときは、ボリューム(S−V)からリストアすることができる。
また、ストレージ装置101によれば、ボリューム(S−V)がボリューム(P−Snap)と等価状態ではない場合には、ボリューム(S−Snap)をリストア元ボリュームに決定することができる。
これにより、ボリューム(P−Snap)からボリューム(S−V)へのリモートコピー中にストレージ装置101でディスク故障などの障害が発生したときには、ボリューム(S−Snap)からリストアすることができる。
また、ストレージ装置101によれば、ボリューム(S−V)をリストア元ボリュームに決定した場合、ボリューム(P−Snap)からボリューム(S−V)へのリモートコピーの方向を反転することにより、ボリューム(S−V)のデータをボリューム(P−Snap)にコピーすることができる。そして、ストレージ装置101によれば、ボリューム(S−V)からボリューム(P−Snap)へのリモートコピーが完了した場合、ボリューム(P−Snap)のデータをボリューム(P−V)にコピーすることにより、ボリューム(P−V)のデータを復元することができる。
これにより、ボリューム(S−V)からリストアを行うにあたり、セッションIDを変更しないで、ボリューム(P−V)のデータを復元することができ、ユーザからは同じセッションIDでコピーセッションが継続しているように見せて管理を容易にすることができる。
また、ストレージ装置101によれば、ボリューム(P−Snap)のデータのボリューム(P−V)へのコピーが完了した場合、ボリューム(S−V)からボリューム(P−Snap)へのリモートコピーの方向を反転することにより、ボリューム(P−Snap)からボリューム(S−V)へのリモートコピーを再開することができる。
これにより、ボリューム(P−V)のデータのバックアップを再開して、ストレージシステム100を通常運用に戻すことができる。また、人手でリモートコピーの方向を変更したりする場合に比べて、ユーザの作業にかかる負荷を削減することができる。
また、ストレージ装置101によれば、ボリューム(S−Snap)をリストア元ボリュームに決定した場合、ボリューム(P−Snap)からボリューム(S−V)へのリモートコピーを、ボリューム(S−Snap)からボリューム(P−V)へのリモートコピーに変更することにより、ボリューム(S−Snap)のデータをボリューム(P−V)にコピーして、ボリューム(P−V)のデータを復元することができる。
これにより、ボリューム(S−Snap)からリストアを行うにあたり、セッションIDを変更しないで、ボリューム(P−V)のデータを復元することができ、ユーザからは同じセッションIDでコピーセッションが継続しているように見せて管理を容易にすることができる。
また、ストレージ装置101によれば、ボリューム(S−Snap)からボリューム(P−V)へのコピーが完了した場合、ボリューム(S−Snap)からボリューム(P−V)へのリモートコピーを、ボリューム(P−Snap)からボリューム(S−V)へのリモートコピーに変更することにより、ボリューム(P−Snap)からボリューム(S−V)へのリモートコピーを再開することができる。
これにより、ボリューム(P−V)のデータのバックアップを再開して、ストレージシステム100を通常運用に戻すことができる。また、人手でリモートコピーを作成し直したりする場合に比べて、ユーザの作業にかかる負荷を削減することができる。
これらのことから、実施の形態にかかるストレージシステム100およびストレージ装置101によれば、どのような障害がどのような状況で発生したかに応じて、ボリューム(P−V)のデータを復元するためのリストア元ボリュームを決定することができる。これにより、ボリューム(P−V)のデータを復旧するにあたり、各ボリュームの状態を一つ一つ確認して、どのボリュームからどのようにリストアすればよいのかといったことをユーザが判断しなくてもよく、リストア作業にかかる負荷を削減することができる。
なお、本実施の形態で説明した制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本制御プログラムは、ハードディスク、フレキシブルディスク、CD(Compact Disc)−ROM、MO(Magneto−Optical disk)、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本制御プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)コピー元ボリュームと前記コピー元ボリュームの第1スナップショットが作成される第1ボリュームとを有するコピー元ストレージ装置の前記コピー元ボリュームのリストア指示を受け付けると、前記第1スナップショットのデータがリモートコピーされるコピー先ボリュームと前記コピー先ボリュームの第2スナップショットが作成される第2ボリュームとを有するコピー先ストレージ装置の前記コピー先ボリュームが、前記リモートコピーが完了して前記第1ボリュームと等価状態にあるか否かを判定し、
判定した結果に基づいて、前記コピー先ボリュームおよび前記第2ボリュームから、前記コピー元ボリュームのデータを復元するリストア元ボリュームを決定する、
制御部を有することを特徴とするストレージ装置。
(付記2)前記制御部は、
前記コピー先ボリュームが等価状態にあると判定した場合、前記コピー先ボリュームを前記リストア元ボリュームに決定する、ことを特徴とする付記1に記載のストレージ装置。
(付記3)前記制御部は、
前記コピー先ボリュームが等価状態にないと判定した場合、前記第2ボリュームを前記リストア元ボリュームに決定する、ことを特徴とする付記1または2に記載のストレージ装置。
(付記4)前記制御部は、
前記リストア指示を受け付けると、前記第1スナップショットの状態を判定し、
前記第1スナップショットの状態が正常であると判定した場合、前記第1ボリュームを前記リストア元ボリュームに決定し、
前記第1スナップショットの状態が異常であると判定した場合、前記コピー先ボリュームが前記第1ボリュームと等価状態にあるか否かを判定する、
ことを特徴とする付記1〜3のいずれか一つに記載のストレージ装置。
(付記5)前記制御部は、
決定した前記リストア元ボリュームのデータを前記コピー元ボリュームにコピーする制御を行う、ことを特徴とする付記1〜4のいずれか一つに記載のストレージ装置。
(付記6)前記制御部は、
前記コピー先ボリュームを前記リストア元ボリュームに決定した場合、前記第1ボリュームから前記コピー先ボリュームへのリモートコピーの方向を反転することにより、前記コピー先ボリュームのデータを前記第1ボリュームにコピーし、
前記コピー先ボリュームから前記第1ボリュームへのリモートコピーが完了した場合、前記第1ボリュームのデータを前記コピー元ボリュームにコピーする、
ことを特徴とする付記5に記載のストレージ装置。
(付記7)前記制御部は、
前記第2ボリュームを前記リストア元ボリュームに決定した場合、前記第1ボリュームから前記コピー先ボリュームへのリモートコピーを、前記第2ボリュームから前記コピー元ボリュームへのリモートコピーに変更することにより、前記第2ボリュームのデータを前記コピー元ボリュームにコピーする、
ことを特徴とする付記5または6に記載のストレージ装置。
(付記8)前記制御部は、
前記第1ボリュームのデータの前記コピー元ボリュームへのコピーが完了した場合、前記コピー先ボリュームから前記第1ボリュームへのリモートコピーの方向を反転することにより、前記第1ボリュームから前記コピー先ボリュームへのリモートコピーを再開する、ことを特徴とする付記6に記載のストレージ装置。
(付記9)前記制御部は、
前記第2ボリュームのデータの前記コピー元ボリュームへのコピーが完了した場合、前記第2ボリュームから前記コピー元ボリュームへのリモートコピーを、前記第1ボリュームから前記コピー先ボリュームへのリモートコピーに変更することにより、前記第1ボリュームから前記コピー先ボリュームへのリモートコピーを再開する、ことを特徴とする付記7に記載のストレージ装置。
(付記10)コピー元ボリュームと前記コピー元ボリュームの第1スナップショットが作成される第1ボリュームとを有するコピー元ストレージ装置の前記コピー元ボリュームのリストア指示を受け付けると、前記第1スナップショットのデータがリモートコピーされるコピー先ボリュームと前記コピー先ボリュームの第2スナップショットが作成される第2ボリュームとを有するコピー先ストレージ装置の前記コピー先ボリュームが、前記リモートコピーが完了して前記第1ボリュームと等価状態にあるか否かを判定し、
判定した結果に基づいて、前記コピー先ボリュームおよび前記第2ボリュームから、前記コピー元ボリュームのデータを復元するリストア元ボリュームを決定する、
処理をコンピュータに実行させることを特徴とする制御プログラム。