以下に図面を参照して、本発明にかかるストレージ制御装置、ストレージ制御プログラムおよびストレージシステムの実施の形態を詳細に説明する。
(実施の形態)
図1は、実施の形態にかかるストレージシステムのシステム構成例を示す説明図である。図1において、ストレージシステム100は、ストレージ装置101と、ストレージ装置102と、を含む。ストレージシステム100において、ストレージ装置101およびストレージ装置102は、有線または無線のネットワーク110を介して接続される。ネットワーク110は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。
ストレージ装置101は、バックアップ対象のデータを記憶するコピー元のストレージ装置であり、いわゆる、プライマリストレージである。ストレージ装置102は、バックアップ対象のデータがコピーされるコピー先のストレージ装置であり、いわゆる、セカンダリストレージである。
ホスト装置103は、ストレージシステム100に接続される上位装置である。例えば、ホスト装置103は、ストレージ装置101上に作成されるボリュームを用いて業務処理を行う。ホスト装置103は、例えば、サーバ、PC(Personal Computer)などにより実現される。
各ストレージ装置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アダプタなどを採用することができる。
また、ストレージシステム100において、ホスト装置103は、ストレージ装置101,102のうちのストレージ装置101に接続される。例えば、ホスト装置103は、FC(Fibre Channel)やiSCSI(Internet Small Computer System Interface)でストレージ装置101と接続される。
ディスク130は、データを記憶するストレージの一例であり、ユーザデータや制御情報を記憶する不揮発性の記憶装置である。ディスク130は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)である。ディスク130は、全てがHDDまたはSSDであってもよいし、HDDとSSDとが混在していてもよい。
ここで、セカンダリストレージのバックアップデータを、プライマリストレージに接続されたホストサーバ(例えば、ホスト装置103)から参照したい場合がある。この場合、バックアップデータを参照可能にするために、例えば、プライマリストレージからセカンダリストレージへのリモートコピーがサスペンド(停止)され、プライマリストレージ上に仮想ボリュームが作成される。
ユーザは、プライマリストレージ上の仮想ボリュームにアクセスすることで、バックアップデータを参照することができる。また、バックアップデータの参照が終了すると、プライマリストレージ上の仮想ボリュームが削除され、プライマリストレージからセカンダリストレージへのリモートコピーが再開される。
なお、プライマリストレージに接続されたホストサーバからバックアップデータを参照する理由としては、例えば、セキュリティ面を考慮してホストサーバからセカンダリストレージに直接アクセスできないようにしていることが挙げられる。また、セカンダリストレージが遠距離にあるため、コスト面を考慮してホストサーバからセカンダリストレージに直接アクセスしないようにしていることが挙げられる。
しかしながら、バックアップデータを参照するにあたり、プライマリストレージからセカンダリストレージへのリモートコピーを停止すると、プライマリストレージのバックアップ処理が中断されるため、データの冗長性を確保することができない。
例えば、プライマリストレージに格納されたデータがウィルス感染していることが発覚したため、バックアップデータのウィルス感染の有無を調べるために、セカンダリストレージに格納された全データにウィルススキャンをかける場合がある。バックアップデータのデータ量によっては、ウィルススキャンに数日かかることがある。
このような場合、バックアップデータを参照中にプライマリストレージがダウンすると、直前の定期バックアップのデータが確保できていないため、プライマリストレージのデータを適切に復元することができなくなる。すなわち、何世代も前のデータ(参照中のバックアップデータ)しか確保できないことになる。
そこで、本実施の形態では、ストレージ装置102(セカンダリストレージ)に格納されたバックアップデータを、ストレージ装置101(プライマリストレージ)に接続されたホスト装置103から、冗長性を確保した状態で参照可能にするストレージ制御装置(ノード120)について説明する。
(データのバックアップ例)
まず、ストレージシステム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は、リモートコピーをあらわす。
(バックアップデータを参照時のコピー制御例)
つぎに、ストレージシステム100におけるバックアップデータを参照時のコピー制御例について説明する。
以下の説明では、ストレージ装置101内にノード120のうち、ストレージシステム100のコピー制御を行うノード120を「マスタノードM」と表記する場合がある。
図3A、図3Bおよび図3Cは、バックアップデータを参照時のコピー制御例を示す説明図である。図3Aにおいて、まず、マスタノードMは、バックアップデータの参照要求を受け付けたことに応じて、ボリューム(P−Snap’)とボリューム(S−Snap’)とを作成する。
ここで、ボリューム(P−Snap’)は、ボリューム(P−V)のスナップショットが作成されるボリュームであり、ボリューム(P−Snap)とは異なる。ボリューム(S−Snap’)は、ボリューム(S−V)のスナップショットが作成されるボリュームであり、ボリューム(S−Snap)とは異なる。ボリューム(P−Snap’)は、例えば、LUN#3である。ボリューム(S−Snap’)は、例えば、LUN#13である。
具体的には、例えば、マスタノードMは、ストレージ装置101上にボリューム(P−Snap’)を作成する。また、マスタノードMは、ストレージ装置102にボリューム(S−Snap’)の作成指示を送信する。ストレージ装置102のノード120は、マスタノードMからボリューム(S−Snap’)の作成指示を受信すると、ストレージ装置102上にボリューム(S−Snap’)を作成する。
つぎに、マスタノードMは、ボリューム(P−V)からボリューム(P−Snap)へのスナップショット、ボリューム(P−Snap)からボリューム(S−V)へのリモートコピー、および、ボリューム(S−V)からボリューム(S−Snap)へのスナップショットを用いた、ボリューム(P−V)のバックアップ処理を停止する。
以下の説明では、ボリューム(P−V)からボリューム(P−Snap)へのスナップショットを、「スナップショット(P−V/P−Snap)」と表記する場合がある。また、ボリューム(S−V)からボリューム(S−Snap)へのスナップショットを、「スナップショット(S−V/S−Snap)」と表記する場合がある。また、ボリューム(P−Snap)からボリューム(S−V)へのリモートコピーを「リモートコピー(REC)」と表記する場合がある。
図3Bにおいて、つぎに、マスタノードMは、ボリューム(P−V)からボリューム(P−Snap’)へのスナップショット、ボリューム(P−Snap’)からボリューム(S−V)へのリモートコピー、および、ボリューム(S−V)からボリューム(S−Snap’)へのスナップショットを用いて、ボリューム(P−V)のバックアップ処理を開始する。
以下の説明では、ボリューム(P−V)からボリューム(P−Snap’)へのスナップショットを、「スナップショット(P−V/P−Snap’)」と表記する場合がある。また、ボリューム(S−V)からボリューム(S−Snap’)へのスナップショットを、「スナップショット(S−V/S−Snap’)」と表記する場合がある。また、ボリューム(P−Snap’)からボリューム(S−V)へのリモートコピーを「リモートコピー(REC’)」と表記する場合がある。
これにより、ストレージ装置101,102の両ストレージに新世代のスナップショット用ボリュームおよびスナップショットセッションを作成して、旧世代のスナップショット用ボリュームおよびスナップショットセッションから、ボリューム(P−V)のバックアップ処理を引き継ぐことができる。
図3Cにおいて、マスタノードMは、例えば、ボリューム(P−V)、ボリューム(P−Snap)およびボリューム(S−Snap)を用いて、バックアップデータの読み出しを行う。具体的には、例えば、マスタノードMは、ストレージ装置101上にボリューム(S−V’)を作成する。
ボリューム(S−V’)は、ストレージ装置102(セカンダリストレージ)に格納されたバックアップデータを参照可能な仮想ボリュームである。マスタノードMは、例えば、図1に示したホスト装置103から、ボリューム(S−V’)内のデータの読み出し要求を受け付ける。
そして、マスタノードMは、読み出し要求に応じて、ボリューム(P−V)、ボリューム(P−Snap)およびボリューム(S−Snap)のいずれかからデータを読み出して、ホスト装置103に応答する。これにより、ユーザは、ホスト装置103からボリューム(S−V’)にアクセスして、バックアップデータを参照することができる。
このように、マスタノードMによれば、ストレージ装置101(プライマリストレージ)に接続されたホスト装置103から、ストレージ装置102(セカンダリストレージ)に格納されているバックアップデータを、冗長性を確保した状態で参照可能にすることができる。
図3Cの例では、(N−1)世代のバックアップデータを参照中に、定期バックアップが1回行われたとする。この場合、(N+1)世代のデータがボリューム(P−Snap’)からボリューム(S−V)にリモートコピーされ、ボリューム(S−Snap’)に(N)世代のデータがコピーされる。
このため、(N−1)世代のバックアップデータを参照中に、ストレージ装置101(プライマリストレージ)がダウンしたとしても、(N)世代のデータを確保することができる。例えば、(N−1)世代のバックアップデータを参照中に、ストレージ装置101(プライマリストレージ)がダウンしたとする。
この場合、ストレージ装置102のノード120(図1参照)は、ボリューム(S−Snap’)をリストア元ボリュームに決定する。そして、ストレージ装置102のノード120は、プライマリストレージの復旧後、リストア元ボリュームのデータをプライマリストレージに転送する。これにより、(N)世代のデータを復元することができる。
(コピーセッションテーブル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−4がレコードとして記憶される。
ここで、セッションIDは、コピーセッションを識別する識別子である。コピー元IDは、コピー元ボリュームのボリュームIDである。コピー先IDは、コピー先ボリュームのボリュームIDである。ローカルボックスIDは、自装置のボックスIDである。リモートボックスIDは、他装置のボックスIDである。リモートセッションIDは、他装置で用いられるリモートコピーのセッションIDである。
コピー種別は、コピーの種別を示す。コピー種別には、「Snapshot」または「RemoteCopy」が設定される。コピー種別「Snapshot」は、スナップショットを示す。コピー種別「RemoteCopy」は、リモートコピーを示す。方向は、リモートコピーの方向である。方向「L to R」は、ローカルサイト(自装置)からリモートサイト(他装置)への方向を示す。方向「R to L」は、リモートサイト(他装置)からローカルサイト(自装置)への方向を示す。
ステータスは、コピーセッションの状態を示す。ステータスには、「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−4がレコードとして記憶される。
なお、コピーセッションテーブル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と、ローカルRECセッションIDと、リモートRECセッション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(#)は、バックアップデータを参照するにあたり作成される、ローカルサイト(自装置内)におけるコピー種別「Snapshot」のコピーセッションのセッションIDである。
ローカルRECセッションID(#)は、バックアップデータを参照するにあたり作成される、ローカルサイト(自装置内)におけるコピー種別「RemoteCopy」のコピーセッションのセッションIDである。リモートRECセッションID(#)は、バックアップデータを参照するにあたり作成される、リモートサイト(他装置内)におけるコピー種別「RemoteCopy」のコピーセッションのセッションIDである。
ローカルボリュームIDは、ローカルサイト(自装置内)にあるコピー元ボリュームのボリュームIDである。ローカルスナップボリュームIDは、ローカルサイト(自装置内)にある、コピー元ボリュームのスナップショットを記憶するボリュームのボリューム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)と同様のため省略する。
(マスタノードMの機能的構成例)
図6は、マスタノードMの機能的構成例を示すブロック図である。図6において、マスタノードMは、受付部601と、バックアップ制御部602と、コピー制御部603と、を含む。具体的には、例えば、受付部601〜コピー制御部603は、図1に示したマスタノードM(ノード120)のメモリ122に記憶されたプログラムをCPU121に実行させることにより、または、通信I/F123により、その機能を実現する。各機能部の処理結果は、例えば、メモリ122、ディスク130などの記憶装置に記憶される。
受付部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)に対するバックアップ指示を受け付けると、ストレージ装置102(セカンダリストレージ)にボリューム(S−Snap)を作成する。また、バックアップ制御部602は、ストレージ装置101(プライマリストレージ)にボリューム(P−Snap)を作成する。そして、バックアップ制御部602は、ボリューム(P−Snap)からボリューム(S−V)へのリモートコピーを開始する。
ここで、ボリューム(P−Snap)は、プライマリボリュームであるボリューム(P−V)のスナップショットが作成される第1ボリュームである。また、ボリューム(S−Snap)は、セカンダリボリュームであるボリューム(S−V)のスナップショットが作成される第2ボリュームである。
具体的には、例えば、バックアップ制御部602は、セカンダリストレージであるストレージ装置102に、ボリューム(S−Snap)の作成指示を送信する。ストレージ装置102は、ボリューム(S−Snap)の作成指示を受信すると、自装置内にボリューム(S−Snap)を作成する。
そして、ストレージ装置102は、ボリューム(S−V)からボリューム(S−Snap)へのスナップショットセッションを作成する。また、ストレージ装置102は、ボリューム(S−Snap)のボリュームID、およびスナップショットセッションのセッションIDをストレージ装置101に通知する。
また、バックアップ制御部602は、自装置内にボリューム(P−Snap)を作成し、ボリューム(P−V)からボリューム(P−Snap)へのスナップショットを作成する。つぎに、バックアップ制御部602は、ボリューム(P−Snap)からボリューム(S−V)へのリモートコピーセッションを作成する。
そして、バックアップ制御部602は、スナップショット(P−V/P−Snap)、リモートコピー(REC)およびスナップショット(S−V/S−Snap)を用いて、ボリューム(P−V)のバックアップ処理を開始する。
リモートコピー(REC)は、例えば、所定時間(数時間、1日など)ごとに定期的に行われる。具体的には、例えば、バックアップ制御部602は、リモートコピー(REC)の開始タイミングとなったら、ボリューム(P−Snap)とボリューム(S−V)との差分を求めて、差分データのコピーを開始する。
これにより、ボリューム(P−V)へのI/O性能に与える影響を抑えつつ、ボリューム(P−V)のデータのバックアップをとることができる。また、リモートコピー中の通信障害等を考慮して、セカンダリストレージ側でもボリューム(S−V)のデータのバックアップをとることができる。
なお、ストレージ装置101において、ボリューム(P−V)からボリューム(P−Snap)へのスナップショットセッションが作成されると、例えば、コピーセッションテーブル400(P)にコピーセッション情報410−1が記憶される。また、ストレージ装置102において、ボリューム(S−V)からボリューム(S−Snap)へのスナップショットが作成されると、例えば、コピーセッションテーブル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は、バックアップデータの参照要求を受け付ける。ここで、バックアップデータの参照要求は、ストレージ装置102(セカンダリストレージ)に格納されたバックアップデータの参照を要求するものである。
バックアップデータの参照要求には、例えば、プライマリストレージのボックスID、プライマリボリュームのボリュームID、セカンダリストレージのボックスID、セカンダリボリュームのボリュームIDが含まれる。具体的には、例えば、受付部601は、ホスト装置103から、バックアップデータの参照要求を受け付ける。
コピー制御部603は、バックアップデータの参照要求を受け付けると、ストレージ装置101(プライマリストレージ)にボリューム(P−Snap’)を作成する。また、コピー制御部603は、ストレージ装置102(セカンダリストレージ)にボリューム(S−Snap’)を作成する。
ここで、ボリューム(P−Snap’)は、プライマリボリュームであるボリューム(P−V)のスナップショットが作成される第3ボリュームである。また、ボリューム(S−Snap’)は、セカンダリボリュームであるボリューム(S−V)のスナップショットが作成される第4ボリュームである。
具体的には、例えば、コピー制御部603は、自装置内にボリューム(P−Snap’)を作成し、ボリューム(P−V)からボリューム(P−Snap’)へのスナップショットを作成する。また、コピー制御部603は、セカンダリストレージであるストレージ装置102に、ボリューム(S−Snap’)の作成指示を送信する。
ストレージ装置102は、ボリューム(S−Snap’)の作成指示を受信すると、自装置内にボリューム(S−Snap’)を作成する。また、ストレージ装置102は、ボリューム(S−V)からボリューム(S−Snap’)へのスナップショットセッションを作成する。また、ストレージ装置102は、ボリューム(S−Snap’)のボリュームID、およびスナップショットセッションのセッションIDをストレージ装置101に通知する。
つぎに、コピー制御部603は、ボリューム(P−Snap’)からボリューム(S−V)へのリモートコピーセッションを作成する。
なお、ストレージ装置101において、ボリューム(P−V)からボリューム(P−Snap’)へのスナップショットセッションが作成されると、例えば、コピーセッションテーブル400(P)にコピーセッション情報410−3が記憶される。また、ストレージ装置102において、ボリューム(S−V)からボリューム(S−Snap’)へのスナップショットが作成されると、例えば、コピーセッションテーブル400(S)にコピーセッション情報420−4が記憶される。
また、ストレージ装置101において、ボリューム(P−Snap’)からボリューム(S−V)へのリモートコピーセッションが作成されると、コピーセッションテーブル400(P)にコピーセッション情報410−4が記憶される。また、ストレージ装置102において、コピーセッションテーブル400(S)にコピーセッション情報420−3が記憶される。
また、ボリューム(P−Snap’)からボリューム(S−V)へのリモートコピーセッションが作成されると、各ストレージ装置101,102において、セッション関係性テーブル500(P),500(S)がそれぞれ更新される。各種テーブルに設定する情報は、例えば、ストレージ装置101,102間で通信することにより取得される。
なお、ボリューム(P−Snap’)からボリューム(S−V)への差分データのコピーが完了すると、コピーセッションテーブル400(P)内のコピーセッション情報410−4のフェーズに「Equivalent」が設定される。また、コピーセッションテーブル400(S)内のコピーセッション情報420−3のフェーズに「Equivalent」が設定される。
つぎに、コピー制御部603は、スナップショット(P−V/P−Snap)、リモートコピー(REC)およびスナップショット(S−V/S−Snap)を用いた、ボリューム(P−V)のバックアップ処理を停止する。
具体的には、例えば、コピー制御部603は、リモートコピー(REC)を停止(サスペンド)する。また、コピー制御部603は、スナップショット(P−V/P−Snap)を停止する。また、コピー制御部603は、スナップショット(S−V/S−Snap)の停止指示を、ストレージ装置102に送信する。ストレージ装置102のノード120は、マスタノードMから当該停止指示を受信すると、スナップショット(S−V/S−Snap)を停止する。
つぎに、コピー制御部603は、スナップショット(P−V/P−Snap’)、リモートコピー(REC’)およびスナップショット(S−V/S−Snap’)を用いて、ボリューム(P−V)のバックアップ処理を開始する。
具体的には、例えば、コピー制御部603は、スナップショット(P−V/P−Snap’)を開始する。また、コピー制御部603は、リモートコピー(REC’)を開始する。また、マスタノードMは、スナップショット(S−V/S−Snap’)の開始指示を、ストレージ装置102に送信する。ストレージ装置102のノード120は、マスタノードMから当該開始指示を受信すると、スナップショット(S−V/S−Snap’)を開始する。
これにより、ストレージ装置101,102の両ストレージに新世代のスナップショット用ボリュームおよびスナップショットセッションを作成して、ボリューム(P−V)のバックアップ処理を引き継ぐことができる。
コピー制御部603は、ボリューム(P−V)、ボリューム(P−Snap)およびボリューム(S−Snap)を用いて、バックアップデータの読み出しを行う。具体的には、例えば、コピー制御部603は、ストレージ装置101上にボリューム(S−V’)を作成する。ボリューム(S−V’)は、バックアップデータを参照するために作成される仮想ボリュームである。
受付部601は、バックアップデータのいずれかのデータの読み出し要求を受け付ける。具体的には、例えば、受付部601は、ホスト装置103から、ボリューム(S−V’)内のデータの読み出し要求を受け付ける。以下の説明では、読み出し要求されたデータを「対象データ」と表記する場合がある。
読み出し要求は、例えば、ボリューム(S−V’)内の論理ブロックを指定する論理アドレスを含む。論理ブロックは、所定容量で規定された管理単位の領域である。論理アドレスは、例えば、LBA(Logical Block Address)によって指定される。1LBAは、例えば、512B(Byte)の記憶領域に相当する。
コピー制御部603は、読み出し要求を受け付けた場合、ボリューム(S−V)とボリューム(S−Snap)との差分を示す差分情報に基づいて、対象データがボリューム(S−Snap)にあるか否かを判断する。差分情報は、例えば、所定のブロック単位の差分の有無を示す差分ビットマップである。所定のブロックは、例えば、16LBAである。
なお、コピー制御部603は、ボリューム(S−V)とボリューム(S−Snap)との差分を示す差分情報を、ストレージ装置102から取得して、自ノードのメモリ122に記憶する。これにより、メモリ122に記憶した差分情報を参照して、ボリューム(S−Snap)に対象データがあるか否かを判断することができる。ただし、コピー制御部603は、ストレージ装置102に対して、ボリューム(S−Snap)に対象データがあるか否かを問い合わせることにしてもよい。
ここで、ボリューム(S−Snap)に対象データがあると判断した場合、コピー制御部603は、ストレージ装置102内のボリューム(S−Snap)から対象データを読み出す。一方、ボリューム(S−Snap)に対象データがないと判断した場合には、コピー制御部603は、ボリューム(P−V)またはボリューム(P−Snap)から対象データを読み出す。そして、コピー制御部603は、読み出した対象データを、読み出し要求元に応答する。読み出し要求元は、例えば、ホスト装置103である。
なお、ストレージシステム100におけるバックアップデータを参照時の動作例については、図7を用いて後述する。また、コピー制御部603は、対象データを読み出すにあたり、例えば、ボリューム(S−V)やボリューム(S−Snap’)から読み出すことにしてもよい。
コピー制御部603は、バックアップデータの参照が終了した場合、リモートコピー(REC’)を停止する。また、コピー制御部603は、スナップショット(P−V/P−Snap)、リモートコピー(REC)およびスナップショット(S−V/S−Snap)を用いた、ボリューム(P−V)のバックアップ処理を再開する。
具体的には、例えば、コピー制御部603は、ホスト装置103からバックアップデータの参照終了要求を受け付けた場合、リモートコピー(REC’)を停止する。つぎに、コピー制御部603は、スナップショット(P−V/P−Snap)と、スナップショット(S−V/S−Snap)を再開する。また、コピー制御部603は、リモートコピー(REC)を再開する。これにより、ボリューム(P−V)のバックアップ処理を再開することができる。そして、コピー制御部603は、ボリューム(S−V’)を削除する。
また、コピー制御部603は、ボリューム(P−Snap’)内の新データをボリューム(P−Snap)にコピーし、ボリューム(S−Snap’)内の新データをボリューム(S−Snap)にコピーする。そして、コピー制御部603は、ボリューム(P−Snap’)およびボリューム(S−Snap’)を削除する。
具体的には、例えば、コピー制御部603は、ボリューム(P−V)とボリューム(P−Snap’)との差分情報に基づいて、ボリューム(P−Snap’)内の新データをボリューム(P−Snap)にコピーする。また、コピー制御部603は、ボリューム(S−V)とボリューム(S−Snap’)との差分情報に基づいて、ボリューム(S−Snap’)内の新データをボリューム(S−Snap)にコピーする。ボリューム(S−V)とボリューム(S−Snap’)との差分を示す差分情報は、例えば、ストレージ装置102から取得される。
これにより、ユーザによるバックアップデータの参照が終了したことに応じて、ストレージシステム100内のコピーセッションの状態を、バックアップデータの参照前の状態に戻すことができる。
ボリューム(P−Snap’)およびボリューム(S−Snap’)が削除されると、ストレージ装置101において、例えば、コピーセッションテーブル400(P)内のコピーセッション情報410−3,410−4が削除される。また、ストレージ装置102において、例えば、コピーセッションテーブル400(S)内のコピーセッション情報420−3,420−4が削除される。また、各ストレージ装置101,102において、セッション関係性テーブル500(P),500(S)がそれぞれ更新される。
なお、ストレージシステム100におけるバックアップデータの参照終了時の動作例については、図8A、図8Bおよび図8Cを用いて後述する。
(バックアップデータを参照時の動作例)
つぎに、図7を用いて、ストレージシステム100におけるバックアップデータを参照時の動作例について説明する。
図7は、バックアップデータを参照時の動作例を示す説明図である。図7において、コピー制御部603は、ホスト装置103から、ボリューム(S−V’)内の対象データの読み出し要求を受け付けた場合、差分情報710に基づいて、ボリューム(S−Snap)に対象データがあるか否かを判断する。
差分情報710は、ボリューム(S−V)とボリューム(S−Snap)との差分を示す差分ビットマップである。具体的には、例えば、コピー制御部603は、差分情報710を参照して、対象データが記憶された該当ブロックが差分ありの場合、ボリューム(S−Snap)に対象データがあると判断する。一方、該当ブロックが差分なしの場合、コピー制御部603は、ボリューム(S−Snap)に対象データがないと判断する。
ここで、ボリューム(S−Snap)に対象データがあると判断した場合、コピー制御部603は、ストレージ装置102内のボリューム(S−Snap)から対象データを読み出す。そして、コピー制御部603は、読み出した対象データをホスト装置103に送信する。
一方、ボリューム(S−Snap)に対象データがないと判断した場合には、コピー制御部603は、差分情報720に基づいて、ボリューム(P−Snap)に対象データがあるか否かを判断する。差分情報720は、ボリューム(P−V)とボリューム(P−Snap)との差分を示す差分ビットマップである。
具体的には、例えば、コピー制御部603は、差分情報720を参照して、対象データが記憶された該当ブロックが差分ありの場合、ボリューム(P−Snap)に対象データがあると判断する。一方、該当ブロックが差分なしの場合、コピー制御部603は、ボリューム(P−Snap)に対象データがないと判断する。
ここで、ボリューム(P−Snap)に対象データがあると判断した場合、コピー制御部603は、自装置内のボリューム(P−Snap)から対象データを読み出す。一方、ボリューム(P−Snap)に対象データがないと判断した場合には、コピー制御部603は、自装置内のボリューム(P−V)から対象データを読み出す。そして、コピー制御部603は、読み出した対象データをホスト装置103に送信する。
これにより、バックアップデータを読み出して応答することができる。また、ストレージ装置101,102の両ストレージにあるデータについては、ストレージ装置101(プライマリストレージ)から読み出すことで、データ読み出し時の転送コストを抑えることができる。
(バックアップデータの参照終了時の動作例)
つぎに、図8A、図8Bおよび図8Cを用いて、ストレージシステム100におけるバックアップデータの参照終了時の動作例について説明する。
図8A、図8Bおよび図8Cは、バックアップデータの参照終了時の動作例を示す説明図である。図8Aにおいて、まず、コピー制御部603は、バックアップデータの参照終了要求を受け付けた場合、リモートコピー(REC’)を停止して、スナップショット(P−V/P−Snap)、スナップショット(S−V/S−Snap)およびリモートコピー(REC)を再開する。
これにより、コピー制御部603は、スナップショット(P−V/P−Snap)、スナップショット(S−V/S−Snap)およびリモートコピー(REC)を用いて、ボリューム(P−V)のバックアップ処理を再開する。そして、コピー制御部603は、ボリューム(S−V’)を削除する。
図8Bにおいて、つぎに、コピー制御部603は、差分情報810に基づいて、ボリューム(P−Snap’)内の新データをボリューム(P−Snap)にコピーする。差分情報810は、ボリューム(P−V)とボリューム(P−Snap’)との差分を示す差分ビットマップである。具体的には、例えば、コピー制御部603は、差分情報810を参照して、差分ありのブロックのデータ(新データ)を、ボリューム(P−Snap)にコピーする。
また、コピー制御部603は、ボリューム(S−Snap’)内の新データのボリューム(S−Snap)へのコピー指示を、ストレージ装置102に送信する。ストレージ装置102のノード120は、マスタノードMから当該コピー指示を受信すると、差分情報820に基づいて、ボリューム(S−Snap’)内の新データをボリューム(S−Snap)にコピーする。
差分情報820は、ボリューム(S−V)とボリューム(S−Snap’)との差分を示す差分ビットマップである。具体的には、例えば、ストレージ装置102のノード120は、差分情報820を参照して、差分ありのブロックのデータ(新データ)を、ボリューム(S−Snap)にコピーする。
図8Cにおいて、コピー制御部603は、ボリューム(P−Snap’)を削除する。また、コピー制御部603は、ボリューム(S−Snap’)を削除する。具体的には、例えば、コピー制御部603は、ボリューム(S−Snap’)の削除指示を、ストレージ装置102に送信する。ストレージ装置102のノード120は、マスタノードMから当該削除指示を受信すると、ボリューム(S−Snap’)を削除する。
これにより、ユーザによるバックアップデータの参照が終了したことに応じて、ストレージシステム100内のコピーセッションの状態を、バックアップデータの参照前の状態に戻すことができる。図8Cの例では、(N+1)世代のデータがボリューム(P−Snap)およびボリューム(S−V)に記憶され、(N)世代のデータがボリューム(S−Snap)に記憶されている。
(マスタノードMのバックアップ処理手順)
つぎに、ストレージ装置101内のマスタノードMのバックアップ処理手順について説明する。マスタノードMのバックアップ処理は、例えば、ボリューム(P−V)に対するバックアップ指示に応じて、または、指定時間間隔(例えば、1時間、1日など)で実行される。ここでは、初期状態において、ボリューム(P−V)からボリューム(S−V)への初期コピーは、完了しているものとする。
図9は、マスタノードMのバックアップ処理手順の一例を示すフローチャートである。図9のフローチャートにおいて、まず、マスタノードMは、ボリューム(S−Snap)が存在するか否かを判断する(ステップS901)。
具体的には、例えば、マスタノードMは、セッション関係性テーブル500(P)を参照して、リモートスナップボリュームIDにボリュームIDが設定されていれば、ボリューム(S−Snap)が存在すると判断する。一方、リモートスナップボリュームIDにボリュームIDが未設定であれば、ボリューム(S−Snap)が存在しないと判断する。また、マスタノードMは、ストレージ装置102に問い合わせることにより、ボリューム(S−Snap)が存在するか否かを判断することにしてもよい。
ここで、ボリューム(S−Snap)が存在する場合(ステップS901:Yes)、マスタノードMは、ステップS903に移行する。一方、ボリューム(S−Snap)が存在しない場合(ステップS901:No)、マスタノードMは、ストレージ装置102に、ボリューム(S−Snap)の作成指示を送信する(ステップS902)。
なお、ストレージ装置102は、マスタノードMからボリューム(S−Snap)の作成指示を受信すると、ボリューム(S−Snap)を作成する。そして、ストレージ装置102は、ボリューム(S−V)からボリューム(S−Snap)へのスナップショットセッションを作成する。この結果、ストレージ装置102において、コピーセッションテーブル400(S)にコピーセッション情報420−2が記憶される。また、ストレージ装置102は、ボリューム(S−Snap)のボリュームID、およびスナップショット(S−V/S−Snap)のセッションIDをマスタノードMに通知する。
つぎに、マスタノードMは、自装置内にボリューム(P−Snap)が存在するか否かを判断する(ステップS903)。ここで、ボリューム(P−Snap)が存在する場合(ステップS903:Yes)、マスタノードMは、ステップS906に移行する。一方、ボリューム(P−Snap)が存在しない場合(ステップS903:No)、マスタノードMは、自装置内にボリューム(P−Snap)を作成する(ステップS904)。
そして、マスタノードMは、ボリューム(P−V)からボリューム(P−Snap)へのスナップショットセッションを作成する(ステップS905)。この結果、マスタノードMにおいて、コピーセッションテーブル400(P)にコピーセッション情報410−1が記憶される。
つぎに、マスタノードMは、ボリューム(P−Snap)からボリューム(S−V)へのリモートコピーセッションを作成する(ステップS906)。この結果、マスタノードMにおいて、コピーセッションテーブル400(P)にコピーセッション情報410−2が記憶される。また、ストレージ装置102において、コピーセッションテーブル400(S)にコピーセッション情報420−1が記憶される。また、各ストレージ装置101,102において、セッション関係性テーブル500(P),500(S)がそれぞれ作成される。
そして、マスタノードMは、スナップショット(P−V/P−Snap)、スナップショット(S−V/S−Snap)、および、リモートコピー(REC)を用いて、ボリューム(P−V)のバックアップ処理を開始して(ステップS907)、本フローチャートによる一連の処理を終了する。
これにより、ボリューム(P−V)へのI/O性能に与える影響を抑えつつ、ボリューム(P−V)のデータのバックアップをとることができる。さらに、リモートコピー中の通信障害等を考慮して、リモートサイト側でもボリューム(S−V)のデータのバックアップをとることができる。
なお、リモートコピー(REC)では、ボリューム(P−Snap)とボリューム(S−V)との差分データのコピーが行われ、差分データのコピーが完了したら、コピーセッション情報410−2のフェーズに「Equivalent」が設定される。また、コピーセッション情報420−1のフェーズに「Equivalent」が設定される。
(マスタノードMの事前準備処理手順)
つぎに、ストレージ装置101内のマスタノードMの事前準備処理手順について説明する。マスタノードMの事前準備処理は、例えば、バックアップデータを参照する際に事前準備として実行される。
図10は、マスタノードMの事前準備処理手順の一例を示すフローチャートである。図10のフローチャートにおいて、まず、マスタノードMは、ホスト装置103からバックアップデータの参照要求を受け付けたか否かを判断する(ステップS1001)。
ここで、マスタノードMは、バックアップデータの参照要求を受け付けるのを待つ(ステップS1001:No)。マスタノードMは、バックアップデータの参照要求を受け付けた場合(ステップS1001:Yes)、ボリューム(P−Snap)からボリューム(S−V)へのリモートコピー(REC)の完了を待つ(ステップS1002)。
つぎに、マスタノードMは、自装置内にボリューム(P−Snap’)を作成する(ステップS1003)。そして、マスタノードMは、ストレージ装置102に、ボリューム(S−Snap’)の作成指示を送信する(ステップS1004)。なお、ストレージ装置102は、マスタノードMからボリューム(S−Snap’)の作成指示を受信すると、ボリューム(S−Snap’)を作成する。
つぎに、マスタノードMは、ボリューム(P−V)からボリューム(P−Snap’)へのスナップショットセッションを作成する(ステップS1005)。そして、マスタノードMは、ボリューム(P−Snap’)からボリューム(S−V)へのリモートコピーセッションを作成する(ステップS1006)。
つぎに、マスタノードMは、ストレージ装置102に、ボリューム(S−V)からボリューム(S−Snap’)へのスナップショットセッションの作成指示を送信する(ステップS1007)。なお、ストレージ装置102は、マスタノードMからスナップショットセッションの作成指示を受信すると、ボリューム(S−V)からボリューム(S−Snap’)へのスナップショットセッションを作成する。
そして、マスタノードMは、リモートコピー(REC)をサスペンドする(ステップS1008)。つぎに、マスタノードMは、スナップショット(P−V/P−Snap)とスナップショット(S−V/S−Snap)をサスペンドする(ステップS1009)。
なお、スナップショット(S−V/S−Snap)については、マスタノードMは、ストレージ装置102にスナップショット(S−V/S−Snap)の停止指示を送信する。ストレージ装置102のノード120は、マスタノードMから当該停止指示を受信すると、スナップショット(S−V/S−Snap)を停止する。
つぎに、マスタノードMは、スナップショット(P−V/P−Snap’)、スナップショット(S−V/S−Snap’)、および、リモートコピー(REC’)を用いて、ボリューム(P−V)のバックアップ処理を開始する(ステップS1010)。そして、マスタノードMは、自装置上にボリューム(S−V’)を作成して(ステップS1011)、本フローチャートによる一連の処理を終了する。
これにより、ストレージ装置101,102の両ストレージに新世代のスナップショット用ボリュームおよびスナップショットセッションを作成して、ボリューム(P−V)のバックアップ処理を引き継ぐことができる。
(マスタノードMのバックアップデータ参照処理手順)
つぎに、ストレージ装置101内のマスタノードMのバックアップデータ参照処理手順について説明する。
図11は、マスタノードMのバックアップデータ参照処理手順の一例を示すフローチャートである。図11のフローチャートにおいて、まず、マスタノードMは、ホスト装置103から、ボリューム(S−V’)内のデータの読み出し要求を受け付けたか否かを判断する(ステップS1101)。
ここで、マスタノードMは、データの読み出し要求を受け付けるのを待つ(ステップS1101:No)。マスタノードMは、データの読み出し要求を受け付けた場合(ステップS1101:Yes)、ボリューム(S−V)とボリューム(S−Snap)との差分を示す差分情報に基づいて、ボリューム(S−Snap)に対象データがあるか否かを判断する(ステップS1102)。
ここで、ボリューム(S−Snap)にある場合(ステップS1102:Yes)、マスタノードMは、ボリューム(S−Snap)から対象データを読み出して(ステップS1103)、ステップS1107へ移行する。
一方、ボリューム(S−Snap)にない場合(ステップS1102:No)、マスタノードMは、ボリューム(P−V)とボリューム(P−Snap)との差分を示す差分情報に基づいて、ボリューム(P−Snap)に対象データがあるか否かを判断する(ステップS1104)。
ここで、ボリューム(P−Snap)にある場合(ステップS1104:Yes)、マスタノードMは、ボリューム(P−Snap)から対象データを読み出して(ステップS1105)、ステップS1107へ移行する。
一方、ボリューム(P−Snap)にない場合(ステップS1104:No)、マスタノードMは、ボリューム(P−V)から対象データを読み出す(ステップS1106)。そして、マスタノードMは、読み出したデータをホスト装置103に送信して(ステップS1107)、本フローチャートによる一連の処理を終了する。
これにより、ホスト装置103からの読み出し要求に応じて、バックアップデータを読み出して応答することができる。また、ストレージ装置101,102の両ストレージにあるデータについては、ストレージ装置101(プライマリストレージ)から読み出すことで、データ読み出し時の転送コストを抑えることができる。
(マスタノードMの事後処理手順)
つぎに、ストレージ装置101内のマスタノードMの事後処理手順について説明する。
図12は、マスタノードMの事後処理手順の一例を示すフローチャートである。図12のフローチャートにおいて、まず、マスタノードMは、ホスト装置103から、バックアップデータの参照終了要求を受け付けたか否かを判断する(ステップS1201)。
ここで、マスタノードMは、バックアップデータの参照終了要求を受け付けるのを待つ(ステップS1201:No)。そして、マスタノードMは、バックアップデータの参照終了要求を受け付けた場合(ステップS1201:Yes)、リモートコピー(REC’)をサスペンドする(ステップS1202)。
つぎに、マスタノードMは、リモートコピー(REC)を再開し(ステップS1203)、スナップショット(P−V/P−Snap)とスナップショット(S−V/S−Snap)を再開する(ステップS1204)。そして、マスタノードMは、スナップショット(P−V/P−Snap)、スナップショット(S−V/S−Snap)およびリモートコピー(REC)を用いて、ボリューム(P−V)のバックアップ処理を再開する(ステップS1205)。
つぎに、マスタノードMは、ボリューム(S−V’)を削除する(ステップS1206)。そして、マスタノードMは、ボリューム(P−V)とボリューム(P−Snap’)との差分を示す差分情報に基づいて、ボリューム(P−Snap’)内の新データをボリューム(P−Snap)にコピーする(ステップS1207)。
つぎに、マスタノードMは、ボリューム(S−Snap’)内の新データのボリューム(S−Snap)へのコピー指示を、ストレージ装置102に送信する(ステップS1208)。ストレージ装置102のノード120は、マスタノードMから当該コピー指示を受信すると、ボリューム(S−V)とボリューム(S−Snap’)との差分を示す差分情報に基づいて、ボリューム(S−Snap’)内の新データをボリューム(S−Snap)にコピーする。
つぎに、マスタノードMは、ボリューム(P−Snap’)を削除する(ステップS1209)。そして、マスタノードMは、ボリューム(S−Snap’)の削除指示を、ストレージ装置102に送信して(ステップS1210)、本フローチャートによる一連の処理を終了する。ストレージ装置102のノード120は、マスタノードMから当該削除指示を受信すると、ボリューム(S−Snap’)を削除する。
これにより、ユーザによるバックアップデータの参照が終了したことに応じて、ストレージシステム100内のコピーセッションの状態を、バックアップデータの参照前の状態に戻すことができる。
なお、本フローチャートによる一連の処理を実行中に、ボリューム(P−Snap)またはボリューム(S−Snap)が参照されるとき、ボリューム(P−Snap’)またはボリューム(S−Snap’)に新データが存在する場合がある。この場合、マスタノードMは、ボリューム(P−Snap’)またはボリューム(S−Snap’)から新データを読み出して応答する。
以上説明したように、実施の形態にかかるマスタノードM(ストレージ制御装置)によれば、バックアップデータの参照要求を受け付けたことに応じて、ボリューム(P−V)のスナップショットが作成されるボリューム(P−Snap’)と、ボリューム(S−V)のスナップショットが作成されるボリューム(S−Snap’)とを作成することができる。また、マスタノードMによれば、スナップショット(P−V/P−Snap)、リモートコピー(REC)およびスナップショット(S−V/S−Snap)を用いた、ボリューム(P−V)のバックアップ処理を停止することができる。そして、マスタノードMによれば、スナップショット(P−V/P−Snap’)、リモートコピー(REC’)およびスナップショット(S−V/S−Snap’)を用いて、ボリューム(P−V)のバックアップ処理を開始することができる。
これにより、バックアップデータの参照時に、ストレージ装置101,102の両ストレージに新世代のスナップショット用ボリュームおよびスナップショットセッションを作成して、ボリューム(P−V)のバックアップ処理を引き継ぐことができる。このため、ストレージ装置102(セカンダリストレージ)に格納されているバックアップデータを、冗長性を確保した状態で参照可能にすることができる。
また、マスタノードMによれば、ボリューム(P−V)、ボリューム(P−Snap)およびボリューム(S−Snap)を用いて、バックアップデータの読み出しを行うことができる。例えば、マスタノードMは、ホスト装置103からデータの読み出し要求を受け付けた場合、ボリューム(S−V)とボリューム(S−Snap)との差分を示す差分情報に基づいて、ボリューム(S−Snap)に対象データがあるか否かを判断する。ここで、ボリューム(S−Snap)に対象データがあると判断した場合、マスタノードMは、ボリューム(S−Snap)から対象データを読み出す。一方、ボリューム(S−Snap)に対象データがないと判断した場合には、マスタノードMは、ボリューム(P−V)またはボリューム(P−Snap)から対象データを読み出す。そして、マスタノードMは、読み出した対象データをホスト装置103に送信する。
これにより、ストレージ装置101(プライマリストレージ)に接続されたホスト装置103からの読み出し要求に応じて、バックアップデータを読み出して応答することができる。また、ストレージ装置101,102の両ストレージにあるデータについては、ストレージ装置101から読み出すことで、データ読み出し時の転送コストを抑えることができる。
また、マスタノードMによれば、バックアップデータの参照が終了した場合、リモートコピー(REC’)を停止して、スナップショット(P−V/P−Snap)、リモートコピー(REC)およびスナップショット(S−V/S−Snap)を用いた、ボリューム(P−V)のバックアップ処理を再開することができる。また、マスタノードMによれば、ボリューム(P−V)とボリューム(P−Snap’)との差分情報に基づいて、ボリューム(P−Snap’)内の新データをボリューム(P−Snap)にコピーし、ボリューム(S−V)とボリューム(S−Snap’)との差分情報に基づいて、ボリューム(S−Snap’)内の新データをボリューム(S−Snap)にコピーすることができる。そして、マスタノードMによれば、ボリューム(P−Snap’)およびボリューム(S−Snap’)を削除することができる。
これにより、ユーザによるバックアップデータの参照が終了したことに応じて、ストレージシステム100内のコピーセッションの状態を、バックアップデータの参照前の状態に戻すことができる。
これらのことから、実施の形態にかかるマスタノードM(ストレージ制御装置)およびストレージシステム100によれば、ストレージ装置101(プライマリストレージ)に接続されたホスト装置103から、ストレージ装置102(セカンダリストレージ)に格納されているバックアップデータを、冗長性を確保した状態で参照可能にすることができる。
なお、本実施の形態で説明したストレージ制御方法は、予め用意されたプログラムをストレージ制御装置等のコンピュータで実行することにより実現することができる。本ストレージ制御プログラムは、ハードディスク、フレキシブルディスク、CD(Compact Disc)−ROM、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本ストレージ制御プログラムは、インターネット等のネットワークを介して配布してもよい。
また、本実施の形態で説明したストレージ制御装置(マスタノードM)は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けICやFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)プライマリボリュームと前記プライマリボリュームのスナップショットが作成される第1ボリュームとを有する第1のストレージ装置と、前記プライマリボリュームのスナップショットのデータがリモートコピーされるセカンダリボリュームと前記セカンダリボリュームのスナップショットが作成される第2ボリュームとを有する第2のストレージ装置とを含むストレージシステムのストレージ制御装置であって、
バックアップデータの参照要求を受け付けたことに応じて、前記プライマリボリュームのスナップショットが作成される第3ボリュームと、前記セカンダリボリュームのスナップショットが作成される第4ボリュームとを作成し、
前記プライマリボリュームから前記第1ボリュームへのスナップショット、前記第1ボリュームから前記セカンダリボリュームへのリモートコピー、および、前記セカンダリボリュームから前記第2ボリュームへのスナップショットを用いた、前記プライマリボリュームのバックアップ処理を停止し、
前記プライマリボリュームから前記第3ボリュームへのスナップショット、前記第3ボリュームから前記セカンダリボリュームへのリモートコピー、および、前記セカンダリボリュームから前記第4ボリュームへのスナップショットを用いて、前記プライマリボリュームのバックアップ処理を開始する、
制御部を有することを特徴とするストレージ制御装置。
(付記2)前記制御部は、
前記プライマリボリューム、前記第1ボリュームおよび前記第2ボリュームを用いて、前記バックアップデータの読み出しを行う、ことを特徴とする付記1に記載のストレージ制御装置。
(付記3)前記制御部は、
前記バックアップデータのいずれかのデータの読み出し要求を受け付けた場合、前記セカンダリボリュームと前記第2ボリュームとの差分情報に基づいて、前記データが前記第2ボリュームにあるか否かを判断し、
前記第2ボリュームに前記データがあると判断した場合、前記第2ボリュームから前記データを読み出し、前記第2ボリュームに前記データがないと判断した場合には、前記プライマリボリュームまたは前記第1ボリュームから前記データを読み出す、
ことを特徴とする付記2に記載のストレージ制御装置。
(付記4)前記制御部は、
前記バックアップデータの参照が終了した場合、前記第3ボリュームから前記セカンダリボリュームへのリモートコピーを停止して、前記プライマリボリュームから前記第1ボリュームへのスナップショット、前記第1ボリュームから前記セカンダリボリュームへのリモートコピー、および、前記セカンダリボリュームから前記第2ボリュームへのスナップショットを用いた、前記プライマリボリュームのバックアップ処理を再開し、
前記プライマリボリュームと前記第3ボリュームとの差分情報に基づいて、前記第3ボリューム内の新データを前記第1ボリュームにコピーし、
前記セカンダリボリュームと前記第4ボリュームとの差分情報に基づいて、前記第4ボリューム内の新データを前記第2ボリュームにコピーし、
前記第3ボリュームおよび前記第4ボリュームを削除する、
ことを特徴とする付記1〜3のいずれか一つに記載のストレージ制御装置。
(付記5)前記ストレージ制御装置は、前記第1のストレージ装置に設けられ、
前記制御部は、前記第1のストレージ装置に接続されたホスト装置から、前記バックアップデータのいずれかのデータの読み出し要求を受け付ける、ことを特徴とする付記1〜4のいずれか一つに記載のストレージ制御装置。
(付記6)前記第3ボリュームは、前記第1のストレージ装置上に作成され、
前記第4ボリュームは、前記第2のストレージ装置上に作成される、
ことを特徴とする付記1〜5のいずれか一つに記載のストレージ制御装置。
(付記7)プライマリボリュームと前記プライマリボリュームのスナップショットが作成される第1ボリュームとを有する第1のストレージ装置と、前記プライマリボリュームのスナップショットのデータがリモートコピーされるセカンダリボリュームと前記セカンダリボリュームのスナップショットが作成される第2ボリュームとを有する第2のストレージ装置とを含むストレージシステムのコンピュータに、
バックアップデータの参照要求を受け付けたことに応じて、前記プライマリボリュームのスナップショットが作成される第3ボリュームと、前記セカンダリボリュームのスナップショットが作成される第4ボリュームとを作成し、
前記プライマリボリュームから前記第1ボリュームへのスナップショット、前記第1ボリュームから前記セカンダリボリュームへのリモートコピー、および、前記セカンダリボリュームから前記第2ボリュームへのスナップショットを用いた、前記プライマリボリュームのバックアップ処理を停止し、
前記プライマリボリュームから前記第3ボリュームへのスナップショット、前記第3ボリュームから前記セカンダリボリュームへのリモートコピー、および、前記セカンダリボリュームから前記第4ボリュームへのスナップショットを用いて、前記プライマリボリュームのバックアップ処理を開始する、
処理を実行させることを特徴とするストレージ制御プログラム。
(付記8)プライマリボリュームと前記プライマリボリュームのスナップショットが作成される第1ボリュームとを有する第1のストレージ装置と、
前記プライマリボリュームのスナップショットのデータがリモートコピーされるセカンダリボリュームと前記セカンダリボリュームのスナップショットが作成される第2ボリュームとを有する第2のストレージ装置と、
バックアップデータの参照要求を受け付けたことに応じて、前記プライマリボリュームのスナップショットが作成される第3ボリュームと、前記セカンダリボリュームのスナップショットが作成される第4ボリュームとを作成し、前記プライマリボリュームから前記第1ボリュームへのスナップショット、前記第1ボリュームから前記セカンダリボリュームへのリモートコピー、および、前記セカンダリボリュームから前記第2ボリュームへのスナップショットを用いた、前記プライマリボリュームのバックアップ処理を停止し、前記プライマリボリュームから前記第3ボリュームへのスナップショット、前記第3ボリュームから前記セカンダリボリュームへのリモートコピー、および、前記セカンダリボリュームから前記第4ボリュームへのスナップショットを用いて、前記プライマリボリュームのバックアップ処理を開始するストレージ制御装置と、
を含むことを特徴とするストレージシステム。