JP2021086159A - ストレージシステム、ストレージ制御装置およびストレージ制御プログラム - Google Patents

ストレージシステム、ストレージ制御装置およびストレージ制御プログラム Download PDF

Info

Publication number
JP2021086159A
JP2021086159A JP2019211915A JP2019211915A JP2021086159A JP 2021086159 A JP2021086159 A JP 2021086159A JP 2019211915 A JP2019211915 A JP 2019211915A JP 2019211915 A JP2019211915 A JP 2019211915A JP 2021086159 A JP2021086159 A JP 2021086159A
Authority
JP
Japan
Prior art keywords
data
area
snapshot
storage area
storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2019211915A
Other languages
English (en)
Inventor
美穂子 前田
Mihoko Maeda
美穂子 前田
明子 坂口
Akiko Sakaguchi
明子 坂口
佐藤 英俊
Hidetoshi Sato
英俊 佐藤
敦弘 大▲高▼
Atsuhiro Otaka
敦弘 大▲高▼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2019211915A priority Critical patent/JP2021086159A/ja
Publication of JP2021086159A publication Critical patent/JP2021086159A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Retry When Errors Occur (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】非同期コピーのコピー先側の制御装置でコピー元の記憶領域のスナップショットを作成するための処理時間を短縮する。【解決手段】記憶領域11から記憶領域21への非同期コピーが実行されている状態において、処理部1bは、記憶領域11のスナップショットを制御装置2で作成するスナップショット作成が要求されると、記憶領域11内の各単位領域について、記憶領域21内の対応する単位領域へのコピーの完了状態を示す管理データ11aを送信する。処理部2bは、受信した管理データ11aを、記憶領域21内の各単位領域について、記憶領域11内の対応する単位領域からのデータの受領状態を示す管理データ22aとして保存し、スナップショット領域22を、記憶領域21をコピー元としたコピー・オン・ライト方式で作成し、作成完了通知を制御装置1に送信する。【選択図】図1

Description

本発明は、ストレージシステム、ストレージ制御装置およびストレージ制御プログラムに関する。
記憶領域間のデータコピー方法としては、同期型と非同期型とがある。同期型のデータコピー(同期コピー)では、一方の記憶領域に対する書き込みが要求されると、一方の記憶領域にデータが書き込まれるとともに他方の記憶領域にもそのデータが書き込まれ、両方の書き込みが完了すると書き込み要求に対する応答が返される。一方、非同期型のデータコピー(非同期コピー)では、一方の記憶領域に対するデータの書き込みとは非同期のタイミングで、一方の記憶領域から他方の記憶領域へデータがコピーされる。
また、スナップショットは、ある時点における記憶領域のデータイメージを作成したものである。スナップショットの作成方法の例として、コピー・オン・ライト方式を用いた方法が知られている。例えば、ある記憶領域のスナップショットをコピー・オン・ライト方式で作成する場合、その作成時点では記憶領域の実データのコピーは行われずに、記憶領域のデータの参照を可能にするための管理情報が作成される。そして、その後に元の記憶領域が更新される際に、更新前のデータがスナップショットの記憶領域に退避され、その後に元の記憶領域が新たなデータによって更新される。このような方法により、スナップショットの作成要求に対して短時間に応答することができる。
また、データコピーおよびスナップショットに関して、以下のような提案がある。例えば、スナップショット作成要求が与えられた時点で第1の記憶制御装置において作成された第1のスナップショットと同じ内容の第2のスナップショットが、第2の記憶制御装置内に作成されるストレージシステムが提案されている。また、リモートコピーの初期コピーの際に、記憶装置の論理デバイスのコピー対象データを、一旦当該記憶装置の中間論理デバイスにスナップショット機能を用いてコピーするようにしたシステムが提案されている。
特開2007−179342号公報 特開2006−338250号公報
ここで、第1の制御装置によってアクセスが制御される第1の記憶領域から、第2の制御によってアクセスが制御される第2の記憶領域に対して、非同期コピーが行われているとする。そして、このような状況において、第1の記憶領域のスナップショットを、第2の記憶領域のデータに基づいて第2の制御装置で作成するように要求されたとする。このようなケースとしては、例えば、第1の記憶領域のスナップショットを第1の制御装置と第2の制御装置の両方で同時に作成するように要求されるケースが考えられる。
スナップショット作成が要求された時点では、第1の記憶領域の中には第2の記憶領域へのコピーが完了していないコピー未了データが存在し得る。このようなコピー未了データが存在する場合、第2の制御装置は、コピー未了データをすべて第2の記憶領域へコピーし終わるまで、第2の記憶領域のデータに基づいてスナップショットを作成できない。このため、スナップショット作成が要求された時点におけるコピー未了データのデータ量が大きいほど、スナップショット作成が要求されてから作成完了の応答を返すまでに長い時間がかかるという問題がある。
スナップショット作成が要求されてから作成完了の応答を返すまでの期間では、記憶領域間でデータの不整合が発生しないように、第1の記憶領域に対する書き込みが禁止されることが望ましい。このため、上記の期間が長いほど第1の記憶領域に対する書き込み禁止期間も長くなり、第1の記憶領域の書き込み性能が大きく低下してしまう。
1つの側面では、本発明は、非同期コピーのコピー先側の制御装置でコピー元の記憶領域のスナップショットを作成するための処理時間を短縮することが可能なストレージシステム、ストレージ制御装置およびストレージ制御プログラムを提供することを目的とする。
1つの案では、第1の記憶領域へのアクセスを制御する第1の制御装置と、第2の記憶領域へのアクセスを制御する第2の制御装置と、を有するストレージシステムが提供される。このストレージシステムにおいて、第1の制御装置は、ホスト装置からの要求に応じて第1の記憶領域にデータを書き込み、第1の記憶領域へのデータの書き込みとは非同期に、第1の記憶領域に書き込まれたデータを、第2の記憶領域にコピーするために第2の制御装置に送信する非同期コピー処理を実行し、第1の記憶領域のスナップショットを第2の制御装置で作成するスナップショット作成が要求されると、第1の記憶領域に含まれる単位領域のそれぞれについて、第2の記憶領域に含まれる対応する単位領域へのコピーの完了状態を示す第1の管理データを第2の制御装置に送信し、第2の制御装置からスナップショットの作成完了通知を受信すると、スナップショット作成の要求に対応する処理の完了通知をホスト装置に送信する、第1の処理部を有する。また、第2の制御装置は、第1の記憶部と、非同期コピー処理により第1の制御装置から送信されたデータを第2の記憶領域に書き込み、第1の管理データを受信すると、第1の管理データを、第2の記憶領域に含まれる単位領域のそれぞれについて、第1の記憶領域に含まれる対応する単位領域からのデータの受領状態を示す第2の管理データとして第1の記憶部に保存し、スナップショットに対応する記憶領域である第1のスナップショット領域を、第2の記憶領域をコピー元としたコピー・オン・ライト方式で作成し、作成完了通知を第1の制御装置に送信する、第2の処理部と、を有する。
また、1つの案では、次のような処理部を有するストレージ制御装置が提供される。この処理部は、ホスト装置からの要求に応じて第1の記憶領域にデータを書き込み、第1の記憶領域へのデータの書き込みとは非同期に、第1の記憶領域に書き込まれたデータを、他のストレージ制御装置によってアクセスが制御される第2の記憶領域にコピーするために他のストレージ制御装置に送信する非同期コピー処理を実行し、第1の記憶領域のスナップショットを他のストレージ制御装置で作成するスナップショット作成が要求されると、第1の記憶領域に含まれる単位領域のそれぞれについて、第2の記憶領域に含まれる対応する単位領域へのコピーの完了状態を示す第1の管理データを他のストレージ制御装置に送信し、他のストレージ制御装置が、送信された第1の管理データを、第2の記憶領域に含まれる単位領域のそれぞれについて、第1の記憶領域に含まれる対応する単位領域からのデータの受領状態を示す第2の管理データとして保存し、かつ、スナップショットに対応する記憶領域である第1のスナップショット領域を、第2の記憶領域をコピー元としたコピー・オン・ライト方式で作成する処理を完了したことを示す処理完了通知を、他のストレージ制御装置から受信すると、スナップショット作成の要求に対応する処理の完了通知をホスト装置に送信する。
さらに、1つの案では、上記のストレージ制御装置と同様の処理をコンピュータに実行させるストレージ制御プログラムが提供される。
1つの側面では、非同期コピーのコピー先側の制御装置でコピー元の記憶領域のスナップショットを作成するための処理時間を短縮できる。
第1の実施の形態に係るストレージシステムの構成例を示す図である。 第2の実施の形態に係るストレージシステムの構成例を示す図である。 ストレージ装置が備える処理機能の構成例を示すブロック図である。 セッション管理テーブルのデータ構成例を示す図である。 第2の実施の形態で実行されるコピー処理の概要を示す図である。 スナップショット同時作成の比較例を示す図である。 第2の実施の形態におけるスナップショット同時作成の処理例を示す図である。 スナップショット同時作成が要求された場合の各ストレージ装置の処理を示すフローチャートの例である。 非同期コピーにおける未転送データの転送処理例を示す図である。 非同期コピー実行時における各ストレージ装置の処理を示すフローチャートの例である。 コピー元ボリュームにおけるデータ未転送の領域に対して更新が要求された場合の処理例を示す図である。 コピー元ボリュームに対してデータ更新が要求された場合における各ストレージ装置の処理を示すフローチャートの例である。 スナップショットボリュームのデータ未受領領域からの読み出しが要求された場合の処理例を示す図である。 スナップショットボリュームからの読み出しが要求された場合の各ストレージ装置の処理を示すフローチャートの例(その1)である。 スナップショットボリュームからの読み出しが要求された場合の各ストレージ装置の処理を示すフローチャートの例(その2)である。 スナップショット同時作成が2回要求された場合における処理例を示す図である。 未転送領域のデータが転送される場合の第1の処理例を示す図である。 未転送領域のデータが転送される場合の第2の処理例を示す図である。 非同期コピー実行時におけるコピー先側のストレージ装置の処理を示すフローチャートの例である。
以下、本発明の実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係るストレージシステムの構成例を示す図である。図1に示すストレージシステムは、制御装置1,2を有する。
制御装置1は、記憶領域11に対するアクセスを制御するストレージ制御装置である。制御装置1は、記憶部1aと処理部1bを有する。記憶部1aは、例えばRAM(Random Access Memory)やHDD(Hard Disk Drive)など、制御装置1が備える図示しない記憶装置による記憶領域として実現される。処理部1bは、例えば、制御装置1が備える図示しないプロセッサとして実現される。記憶領域11は、例えば、制御装置1に接続されている記憶装置の記憶領域を用いた論理記憶領域である。
制御装置2は、記憶領域21に対するアクセスを制御するストレージ制御装置である。制御装置2は、記憶部2aと処理部2bを有する。記憶部2aは、例えばRAMやHDDなど、制御装置2が備える図示しない記憶装置による記憶領域として実現される。処理部2bは、例えば、制御装置2が備える図示しないプロセッサとして実現される。記憶領域21は、例えば、制御装置2に接続されている記憶装置の記憶領域を用いた論理記憶領域である。
このストレージシステムでは、記憶領域11をコピー元とし、記憶領域21をコピー先とした非同期コピーが実行される。この非同期コピーでは、記憶領域11に対する図示しないホスト装置からのデータの書き込みとは非同期に、データのコピーが実行される。図1では例として、記憶領域11は単位領域r1〜r4に分割されているものとする。単位領域r1〜r4は、それぞれ非同期コピーの実行単位となる領域である。また、記憶領域21も単位領域r1〜r4に分割されている。そして、記憶領域21の単位領域r1〜r4は、それぞれ記憶領域11の単位領域r1〜r4のコピー先領域となる。
図1の状態ST1では、制御装置1の処理部1bは、ホスト装置からの要求に応じて記憶領域11に対するデータの書き込みを行っている。これとともに、処理部1bは、記憶領域11から記憶領域21に対する非同期コピーを実行している。制御装置2では、非同期コピーの実行に伴って制御装置1から送信されたデータを、処理部2bが記憶領域21に書き込む。
状態ST1では例として、記憶領域21の単位領域r1〜r4に対してそれぞれデータd1〜d4が書き込まれ、なおかつ、非同期コピーによってデータd1〜d4が記憶領域21の単位領域r1〜r4にそれぞれコピーされている。さらにその後、記憶領域11の単位領域r4がデータd4aによって更新されたとする。ただし、データd4aは記憶領域21に対してまだコピーされておらず、記憶領域11の単位領域r4はコピー未了状態となっている。
なお、図1では例として、非同期コピーにおける記憶領域11の単位領域r1〜r4それぞれについてのコピーの完了状態を管理するために、管理データ11aが利用されている。管理データ11aは、記憶部1aに記憶されている。図1の例では、管理データ11aは、上位側から単位領域r1〜r4にそれぞれ対応するビットを備えたビットマップとなっている。このビットマップでは、コピー完了状態の単位領域を示すビットの値が「0」に設定され、コピー未了状態の単位領域を示すビットの値が「1」に設定される。状態ST1では、管理データ11aは「0001」というビットマップとして記憶されている。
ここで、状態ST1において、記憶領域11のスナップショットを制御装置2で作成するスナップショット作成が要求されたとする。この場合、状態ST2として示すように、制御装置1の処理部1bは、記憶領域11の単位領域r1〜r4それぞれについて、記憶領域11の対応する単位領域r1〜r4へのコピーの完了状態を示す管理データを、制御装置2に送信する。制御装置2の処理部2bは、送信された管理データを、記憶領域21の単位領域r1〜r4それぞれについて、記憶領域11の対応する単位領域r1〜r4からのデータの受領状態を示す管理データ22aとして記憶部2aに保存する。なお、送信される管理データとしては、例えば、非同期コピーの管理に用いられている管理データ11aをそのまま用いることができる。図1では例として、管理データ11aが送信され、管理データ22aとしてそのまま保存されている。
処理部2bは、管理データ22aを保存するとともに、記憶領域11のスナップショットに対応する記憶領域であるスナップショット領域22を、記憶領域21をコピー元としたコピー・オン・ライト方式で作成する。このとき、スナップショット領域22の単位領域r1〜r4にはデータが実際には格納されず、その代わりに、例えば記憶領域21の単位領域r1〜r4を指し示すポインタなど、スナップショット領域22の管理データのみが作成される。
処理部2bは、以上の処理が完了すると、完了通知を制御装置1に送信する。制御装置1の処理部1bは、この完了通知を受信する。
ここで、スナップショット作成が要求された時点での記憶領域11のスナップショットを、記憶領域21をコピー元としたコピー・オン・ライト方式で作成する場合、記憶領域21の内容を記憶領域11と一致させておく必要がある。このような内容一致のために、記憶領域11におけるコピー未了状態の単位領域のデータを制御装置2に送信しておく必要がある。しかし、本実施の形態では、記憶領域11におけるコピー未了状態の単位領域のデータは送信されず、その代わりにコピーの完了状態を示す管理データが制御装置2に送信される。これにより、スナップショット作成の要求から完了通知を出力するための時間を短縮できる。
また、後で詳しく説明するように、制御装置2に保存された管理データは、スナップショット領域22からのデータ読み出し時に、読み出しが要求されたデータをどこから取得するかを判定するために用いられる。これにより、スナップショット作成が要求された時点でコピー未了状態であった単位領域のデータが送信されていなくても、その時点でのスナップショットのデータを後から確実に読み出すことが可能になる。
図1の状態ST3は、状態ST2において、スナップショット領域の単位領域r4からのデータ読み出しが要求された場合を例示している。この場合、制御装置2の処理部2bは、記憶部2aに保存された管理データ22aを参照して、読み出しが要求された単位領域(読み出し対象領域)が、記憶領域11からデータを未受領である未受領状態の単位領域であるかを判定する。管理データ22aが図1のようなビットマップである場合、管理データ22aの単位領域r4に対応するビットの値が「1」であれば、読み出し対象領域が未受領状態の単位領域であると判定される。
読み出し対象領域が未受領状態の単位領域の場合、読み出しデータは制御装置2側、すなわち記憶領域21とスナップショット領域22のいずれにも存在しておらず、記憶領域11に存在すると判定される。そのため、処理部2bは、単位領域r4のデータを、記憶領域11から処理部1bを介して取得する。具体的には、処理部2bは、単位領域r4の転送を制御装置1に依頼し、制御装置1の処理部1bは、記憶領域11の単位領域r4からデータd4aを読み出して制御装置2に送信する。これにより、制御装置2の処理部2bはデータd4aを取得する。
処理部2bは、取得したデータd4aのうち、読み出しが要求された読み出しデータを、読み出し要求に対する応答として出力する。この出力処理では、処理部2bは、例えば、取得したデータd4aによって記憶領域21の単位領域r4を更新し、更新後の単位領域r4から読み出しデータを読み出して出力する。この場合、管理データ22aは、単位領域r4がデータの受領済み状態であることを示すように更新される。
以上の処理により、スナップショット領域22内の単位領域のうち、コピー元(スナップショット作成元)の記憶領域21における未受領状態の単位領域に対応する単位領域からの読み出しが要求された場合でも、管理データ22aに基づいて正しい読み出しデータを取得できる。ここで言う正しい読み出しデータとは、スナップショット作成が要求された時点で記憶領域11に格納されていたデータを指す。
したがって、本実施の形態のストレージシステムによれば、スナップショット作成が要求された時点でのスナップショットを制御装置2で正確に利用可能でありながら、スナップショット作成が要求されてから作成完了の応答を返すまでの時間を短縮できる。
ここで、上記のようなスナップショット作成が要求されてから、制御装置2が完了通知を送信するまでの期間では、記憶領域11,21の間でデータの不整合が発生しないように、記憶領域11に対するホスト装置からの書き込みが一時的に禁止される。上記のように、スナップショット作成が要求されてから作成完了の応答を返すまでの時間が短縮されることで、記憶領域11に対するホスト装置からの書き込み禁止期間を短縮できる。その結果、スナップショット作成に伴う、ホスト装置から記憶領域11に対する書き込み性能の低下を抑制できる。
〔第2の実施の形態〕
図2は、第2の実施の形態に係るストレージシステムの構成例を示す図である。図2に示すストレージシステムは、ストレージ装置100,200、ホストサーバ301および管理サーバ302を含む。
ストレージ装置100は、CM(Controller Module)110とDE(Drive Enclosure)120とを同一筐体内に備えている。また、ストレージ装置200は、CM210とDE220とを、ストレージ装置100とは異なる筐体内に備えている。すなわち、CM110およびDE120と、CM210およびDE220とは、互いに異なる筐体内に設けられている。そして、CM110とCM210は、図示しないネットワークを介して互いに接続されている。また、ホストサーバ301および管理サーバ302は、図示しないネットワークを介してCM110,210に接続されている。
なお、CM110は、図1の制御装置1の一例であり、CM210は、図1の制御装置2の一例である。
CM110は、ホストサーバ301からの要求に応じて、DE120に搭載された記憶装置へのアクセスを制御するストレージ制御装置である。DE120には、ホストサーバ301からのアクセス対象となる記憶装置が複数台搭載されている。本実施の形態では例として、DE120は、記憶装置として複数台のHDD121,122,123,・・・が搭載されたディスクアレイ装置である。
CM210も同様に、ホストサーバ301からの要求に応じて、DE220に搭載された記憶装置へのアクセスを制御するストレージ制御装置である。本実施の形態では例として、DE220は、ホストサーバ301からのアクセス対象となる記憶装置として複数台のHDD221,222,223,・・・が搭載されたディスクアレイ装置である。
ホストサーバ301は、業務処理などの所定の処理に伴って、ストレージ装置100,200によって提供される記憶領域に対してアクセスする。例えば、CM110により、DE120内のHDDを用いたボリューム(論理記憶領域)が提供され、ホストサーバ301は、そのボリュームに対するアクセスをCM110に要求することでDE120内のHDDにアクセスする。同様に、ホストサーバ301は、CM210によって提供されるボリュームに対するアクセスをCM210に要求することで、DE220内のHDDにアクセスする。
なお、ストレージ装置100,200に対しては、それぞれ異なるホストサーバが接続されてもよい。
管理サーバ302は、ストレージ装置100,200を管理する。管理サーバ302は、例えば、ストレージ装置100,200のCM110,210に対して、ボリュームのコピー(ミラーリング)動作やスナップショットの作成を指示することができる。
以下、CM110,210のハードウェア構成例について説明する。
CM110は、プロセッサ111、RAM112、SSD(Solid State Drive)113、CA(Channel Adapter)114、DI(Disk Interface)115、RA(Remote Adapter)116および通信インタフェース(図2では「I/F」と表記)117を備える。なお、図示しないが、RAM112、SSD113、CA114、DI115、RA116および通信インタフェース117は、バスやバスコントローラを介してプロセッサ111と接続されている。
プロセッサ111は、CM110全体を統括的に制御する。プロセッサ111は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。また、プロセッサ111は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
RAM112は、CM110の主記憶装置として使用される。RAM112には、プロセッサ111に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM112には、プロセッサ111による処理に必要な各種データが格納される。
SSD113は、CM110の補助記憶装置として使用される。SSD113には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、HDDなどの他の種類の不揮発性記憶装置が用いられてもよい。
CA114は、ホストサーバ301と通信するためのインタフェースである。DI115は、DE120内のHDD121,122,123,・・・と通信するためのインタフェースである。RA116は、他方のCM210と通信するためのインタフェースである。通信インタフェース117は、管理サーバ302と通信するためのインタフェースである。
CM210も、CM110と同様のハードウェア構成を有している。すなわち、CM210は、プロセッサ211、RAM212、SSD213、CA214、DI215、RA216および通信インタフェース(図2では「I/F」と表記)217を備えている。
なお、ホストサーバ301および管理サーバ302も、CM110,210と同様に、プロセッサやRAMなどを備えるコンピュータとして実現することができる。
図3は、ストレージ装置が備える処理機能の構成例を示すブロック図である。
まず、ストレージ装置100は、記憶部130、I/O(Input/Output)制御部141およびコピー制御部142を備える。
記憶部130は、例えば、RAM112やSSD113など、CM110が備える記憶装置の記憶領域として実現される。記憶部130は、セッション管理テーブル131と各種のビットマップを記憶する。
セッション管理テーブル131は、コピー処理に関するセッションの情報を保持する。セッションとは、2つのボリュームの間で実行される処理を表す。例えば、2つのボリュームの間で非同期コピーを行う場合、これら2つのボリュームの間で非同期コピーセッションが設定される。また、あるボリュームについてのスナップショットが作成される場合、作成元ボリュームと作成先ボリューム(スナップショットボリューム)との間でスナップショットセッションが設定される。セッション管理テーブル131は、ストレージ装置100内のボリューム(DE120内のHDDの記憶領域によって実現される論理ボリューム)について設定されたセッションに関する設定情報を保持する。
ビットマップは、セッションの処理において使用される制御情報である。本実施の形態ではビットマップの例として、非同期コピーにおける未転送領域を管理するためのビットマップBM1aと、非同期コピーのコピー先側における未受領領域を管理するためのビットマップBM2aと、スナップショットにおける未受領領域を管理するためのビットマップBM3aとが記憶される。
I/O制御部141およびコピー制御部142の処理は、例えば、CM110が備えるプロセッサ111が所定のプログラムを実行することにより実現される。I/O制御部141は、ホストサーバ301からの要求に応じて、ストレージ装置100内のボリュームに対するI/Oアクセスを実行する。コピー制御部142は、ボリューム間での各種のコピー処理を制御する。例えば、コピー制御部142は、ストレージ装置100内のボリュームと他方のストレージ装置200内のボリュームとの間の非同期コピーや、ストレージ装置100内のボリュームに対応するスナップショット作成を制御する。
一方、ストレージ装置200は、記憶部230、I/O制御部241およびコピー制御部242を備える。
記憶部230は、例えば、RAM212やSSD213など、CM210が備える記憶装置の記憶領域として実現される。記憶部230は、セッション管理テーブル231と各種のビットマップを記憶する。セッション管理テーブル231は、ストレージ装置200内のボリューム(DE220内のHDDの記憶領域によって実現される論理ボリューム)について設定されたセッションに関する設定情報を保持する。また、記憶部230にはビットマップの例として、非同期コピーのコピー先側における未受領領域を管理するためのビットマップBM2bと、スナップショットにおける未受領領域を管理するためのビットマップBM3bとが記憶される。
I/O制御部241およびコピー制御部242の処理は、例えば、CM210が備えるプロセッサ211が所定のプログラムを実行することにより実現される。I/O制御部241は、ホストサーバ301からの要求に応じて、ストレージ装置200内のボリューム(DE220内のHDDの記憶領域によって実現される論理ボリューム)に対するI/Oアクセスを実行する。コピー制御部242は、ボリューム間での各種のコピー処理を制御する。
図4は、セッション管理テーブルのデータ構成例を示す図である。図4では、ストレージ装置100に記憶されるセッション管理テーブル131を例示している。
セッション管理テーブル131には、セッションごとのレコード131aが登録される。各レコード131aには、セッションID、セッションタイプ、コピー元情報、コピー先情報、リモート筐体ID、同時スナップショットフラグおよびリモートセッションIDが登録される。
セッションIDは、セッションの識別番号を示す。セッションタイプは、セッションについての処理の種別(例えば、非同期コピー、スナップショット作成など)を示す。コピー元情報は、コピー元またはスナップショット作成元の記憶領域を示す。コピー先情報は、コピー先またはスナップショット作成先の記憶領域を示す。コピー元情報およびコピー先情報としては、例えば、ボリュームの識別番号とボリューム内のアドレス範囲を示す情報が登録される。
リモート筐体IDの項目には、ストレージ装置間のコピーセッションである場合に、相手側のストレージ装置(相手筐体)を示す識別番号が登録される。同時スナップショットフラグの項目には、セッションタイプがスナップショット作成の場合に、2つのストレージ装置でのスナップショット同時作成か否かを示すフラグ情報が登録される。なお、スナップショット同時作成については後に詳述する。
リモートセッションIDの項目には、関連するセッションが他方のストレージ装置に設定されている場合に、そのセッションのセッションIDが登録される。例えば、ストレージ装置間のコピーセッションである場合に、相手側ストレージ装置に設定された同じコピーセッションのセッションIDが登録される。あるいは、2つのストレージ装置でのスナップショット同時作成の場合に、相手側ストレージ装置に設定された、対応するスナップショットセッションのセッションIDが登録される。
図5は、第2の実施の形態で実行されるコピー処理の概要を示す図である。
図5に示すように、本実施の形態では、ストレージ装置100内のボリュームVOL1からストレージ装置200内のボリュームVOL2に対して、非同期コピー(非同期型のリモートコピー)が実行されるものとする。この場合、ストレージ装置100内のボリュームVOL1をコピー元とし、ストレージ装置200内のボリュームVOL2をコピー先とする非同期コピーセッションが設定される。
ボリュームVOL1は、ホストサーバ301からのI/Oアクセスの対象となるボリュームである。そして、このボリュームVOL1のデータが、ホストサーバ301によるボリュームVOL1へのデータ書き込みとは非同期のタイミングで、ボリュームVOL2にコピーされる。これにより、ボリュームVOL1とボリュームVOL2はミラーリングされる。
なお、このような非同期コピーセッションが設定される場合、ボリュームVOL1は図1の記憶領域11の一例であり、ボリュームVOL2は図1の記憶領域21の一例である。
また、上記のような非同期コピーセッションに対して、ストレージ装置100とストレージ装置200の両方におけるスナップショット同時作成が行われる。このスナップショット同時作成では、ボリュームVOL1を作成元とし、スナップショットボリュームSSV1を作成先としたスナップショットセッションが設定される。そして、スナップショット同時作成の要求時におけるボリュームVOL1のスナップショットが、スナップショットボリュームSSV1として作成される。これとともに、ボリュームVOL2を作成元とし、スナップショットボリュームSSV2を作成先としたスナップショットセッションが設定される。ただし、後者のスナップショットセッションでは、非同期コピーのコピー元であるボリュームVOL1の、スナップショット作成の要求時におけるスナップショットが、スナップショットボリュームSSV2として作成される。したがって、スナップショットボリュームSSV1とスナップショットボリュームSSV2には、同じデータが格納される。なお、スナップショットボリュームSSV2は、図1のスナップショット領域22の一例である。
スナップショットボリュームSSV1,SSV2の作成は、コピー・オン・ライト方式で行われる。すなわち、スナップショット同時作成が要求されたとき、スナップショットボリュームSSV1,SSV2の管理情報が生成されるだけで、スナップショットボリュームSSV1,SSV2に対する実際のデータコピーは実行されない。そして、その後にボリュームVOL1が更新されると、更新対象の領域における更新前のデータが、スナップショットボリュームSSV1,SSV2に格納(退避)される。
このような非同期コピーセッションおよびスナップショットセッションが設定された場合、セッション管理テーブル131,231には次のようなレコードが登録される。まず、非同期コピーセッションについては、ボリュームVOL1をコピー元とし、ボリュームVOL2をコピー先とした非同期コピーを示すレコードが、セッション管理テーブル131,231にそれぞれ登録される。これらのレコードでは、リモートセッションIDとして他方のレコードを示すセッションIDが登録される。
また、スナップショットセッションについては、セッション管理テーブル131には、ボリュームVOL1をコピー元(作成元)とし、スナップショットボリュームSSV1をコピー先(作成先)としたスナップショットを示すレコード(第1のレコードとする)が登録される。また、セッション管理テーブル231には、ボリュームVOL2をコピー元(作成元)とし、スナップショットボリュームSSV2をコピー先(作成先)としたスナップショットを示すレコード(第2のレコードとする)が登録される。
第1のレコードでは、リモートセッションIDとして第2のレコードを示すセッションIDが登録される。また、第2のレコードでは、リモートセッションIDとして第1のレコードを示すセッションIDが登録される。さらに、第1、第2のレコードのいずれについても、同時スナップショットフラグがスナップショット同時作成を示す「1」に設定される。
なお、これ以後、説明を簡単にするために、ボリュームVOL1,VOL2はいずれも6つの領域R1〜R6に分割されているものとする。領域R1〜R6は、非同期コピーにおけるコピー単位(データ転送および受領の管理単位)となる領域であり、いずれも同じサイズを有する。領域R1〜R6は、例えば、1つのLBA(Logical Block Address)、または一定数の連続するLBAによって識別される領域である。
また、上記の非同期コピーおよびスナップショット作成の処理において利用されるビットマップは、領域R1〜R6にそれぞれ対応するビットを備える。図5に示すように、ビットマップのビットは、上位側から領域R1〜R6に順に割り当てられているとする。
次に、図6にスナップショット同時作成の比較例を示して、この比較例における課題を説明し、その後に第2の実施の形態でのスナップショット同時作成の処理手順について説明する。
まず、図6は、スナップショット同時作成の比較例を示す図である。
ボリュームVOL1からボリュームVOL2に対する非同期コピーは、ストレージ装置100の記憶部130に格納されたビットマップBM1aを用いて制御される。ビットマップBM1aは、非同期コピーにおける未転送領域を管理するためのものであり、未転送(コピー未了)の場合はビット値が「1」に設定され、転送済み(コピー済み)の場合はビット値が「0」に設定される。ホストサーバ301からボリュームVOL1のある領域にデータが書き込まれる(またはデータが更新される)と、その領域に対応するビット値が「1」に更新される。そして、ビットマップBM1aは定期的に参照され、ビット値「1」の領域が存在する場合、その領域のデータがボリュームVOL2にコピーされ、そのビット値が「0」に更新される。
図6では例として、ボリュームVOL1の領域R1〜R6にそれぞれデータD1〜D6が書き込まれ、非同期コピーによりこれらのデータD1〜D6がボリュームVOL2にコピーされたとする。その後、ボリュームVOL1の領域R2,R6のデータD2,D6がそれぞれデータD2a,D6aに更新されたが、データD2a,D6aはボリュームVOL2にコピーされていないとする。このとき、ビットマップBM1aは「010001」となる。
そして、この状態で、ストレージ装置100が管理サーバ302からスナップショットの同時作成要求を受信したとする。このとき、ストレージ装置100は、ホストサーバ301からのボリュームVOL1の書き込み要求の受け付けを、一時的に停止する(ステップS11)。そして、スナップショットの同時作成処理が開始される。
ここで、ボリュームVOL2とスナップショットボリュームSSV2との間のスナップショットセッションは、ボリュームVOL2を作成元としたセッションである。このため、ストレージ装置200は、ボリュームVOL2のデータを用いてスナップショットボリュームSSV2を作成する。しかし、上記の状態ではボリュームVOL2の内容がボリュームVOL1と一致していない。そのため、この状態でストレージ装置200がボリュームVOL2のデータを用いてスナップショットボリュームSSV2を作成すると、本来のスナップショット作成元であるボリュームVOL1と、作成されたスナップショットボリュームSSV2との間でデータの同一性を保証できない。
そこで、図6に示す処理では、ボリュームVOL1の領域R2,R6からそれぞれデータD2a,D6aがストレージ装置200に転送され、データD2a,D6aがボリュームVOL2の領域R2,R6に上書きコピーされる(ステップS12)。このようにしてボリュームVOL2の内容がボリュームVOL1と一致された後、ストレージ装置200は、ボリュームVOL2に対応するスナップショットボリュームSSV2を作成する(ステップS13a)。これにより、この時点でのボリュームVOL1と同じ内容のスナップショットが作成される。
また、ストレージ装置100は、ボリュームVOL1に対応するスナップショットボリュームSSV1を作成する(ステップS13b)。スナップショットボリュームSSV1の内容は、スナップショットボリュームSSV2と同じになる。ストレージ装置100は、データD2a,D6aの転送と、スナップショットボリュームSSV1,SSV2の作成とが完了すると、ホストサーバ301からのボリュームVOL1の書き込み要求の受け付けを再開する。また、ストレージ装置100は、スナップショット同時作成の要求元である管理サーバ302に対して、作成完了を示す応答を行う(ステップS14)。
以上の処理により、スナップショットの同時作成要求を受信した時点におけるボリュームVOL1と、他方のストレージ装置200で作成されたスナップショットボリュームSSV2との間におけるデータの同一性が保証される。しかしながら、上記の処理では、同時作成要求の受信時点でボリュームVOL1の領域の中にデータ未転送(コピー未了)の領域がある場合には、スナップショット作成の前にストレージ装置100からストレージ装置200へのデータ転送が必要となる。このデータ転送は、ホストサーバ301からのボリュームVOL1の書き込みを不可能にした状態で行われる。そのため、ボリュームVOL2への未転送のデータ量が多いほど、ホストサーバ301からのボリュームVOL1の書き込みが不可能な期間が長くなるという問題がある。
そこで、第2の実施の形態では、以下のような処理により、ボリュームVOL1とのデータの同一性を保証しつつ、スナップショットボリュームSSV2を作成要求から短時間で作成できるようにし、VOL1の書き込みが不可能な期間を短縮する。
図7は、第2の実施の形態におけるスナップショット同時作成の処理例を示す図である。
図7の初期状態では、図6の初期状態と同様に、ボリュームVOL1において転送済み(コピー済み)のデータD1〜D6のうち、データD2,D6がそれぞれデータD2a,D6aに更新されたが、データD2a,D6aはボリュームVOL2にコピーされていないとする。このとき、ビットマップBM1aは「010001」となる。そして、この状態で、ストレージ装置100が管理サーバ302からスナップショットの同時作成要求を受信したとする。このとき、ストレージ装置100は、図6の例と同様に、ホストサーバ301からのボリュームVOL1の書き込み要求の受け付けを、一時的に停止する。そして、スナップショットの同時作成処理が開始される。
ストレージ装置100は、まず、ビットマップBM1aをストレージ装置200に転送する(ステップS21)。ストレージ装置200は、ビットマップBM1aを受信すると、スナップショットボリュームSSV2をコピー・オン・ライト方式で作成する(ステップS22a)。これとともに、ストレージ装置200は、スナップショットボリュームSSV2の管理のためのビットマップBM2b,BM3bを作成して記憶部230に記憶する。
ビットマップBM3bは、スナップショットボリュームSSV2における未受領領域(ボリュームVOL2上の更新前データが退避されていない領域)を管理するためのビットマップである。初期状態では、ビットマップBM3bの全ビット値が「1」に設定される。これは、ボリュームVOL2の全領域のデータがスナップショットボリュームSSV2に格納(退避)されていないことを示す。
ビットマップBM2bは、非同期コピーのコピー先側、すなわちボリュームVOL2における未受領領域(コピー未了領域)を管理するためのビットマップである。このビットマップBM2bとして、ストレージ装置100から転送されたビットマップBM1aが割り当てられる。図7の例では、ビットマップBM2bでは領域R2,R6に対応するビットの値が「1」となっている。これは、ボリュームVOL2の領域R2,R6には、コピー元のボリュームVOL1の領域R2,R6において更新されたデータがコピーされていないことを示す。
また、ストレージ装置100は、スナップショットボリュームSSV1をコピー・オン・ライト方式で作成する(ステップS22b)。これとともに、ストレージ装置100は、スナップショットボリュームSSV1の管理のためのビットマップBM2a,BM3aを作成して記憶部130に記憶する。
ビットマップBM3aは、スナップショットボリュームSSV1における未受領領域(ボリュームVOL1上の更新前データが退避されていない領域)を管理するためのビットマップである。初期状態では、ビットマップBM3aの全ビット値が「1」に設定される。これは、ボリュームVOL1の全領域のデータがスナップショットボリュームSSV1に格納(退避)されていないことを示す。
ビットマップBM2aは、ビットマップBM2bと同様に、非同期コピーのコピー先側、すなわちボリュームVOL2における未受領領域(コピー未了領域)を管理するためのビットマップである。このビットマップBM2aとして、ビットマップBM1aが割り当てられる。
以上の処理が完了すると、ストレージ装置100は、ホストサーバ301からのボリュームVOL1の書き込み要求の受け付けを再開する。また、ストレージ装置100は、スナップショット同時作成の要求元である管理サーバ302に対して、作成完了を示す応答を行う。
図7の処理によれば、スナップショット同時作成が要求され、スナップショットボリュームSSV2が作成されるまでの間、未転送(コピー未了)のデータD2a,D6aはストレージ装置200へ転送されず、その代わりにビットマップBM1aが転送される。これにより、図6の処理と比較して、ボリュームVOL1において未転送(コピー未了)の領域が多いほど、スナップショットボリュームSSV2が作成されるまでの時間を短縮できる。その結果、ボリュームVOL1において未転送(コピー未了)の領域が多いほど、ホストサーバ301からのボリュームVOL1の書き込みが不可能な期間を短縮できる。
また、転送されたビットマップBM1aを利用して作成されたビットマップBM2bは、スナップショットボリュームSSV2からの読み出しが要求された際に、次のように使用される。スナップショットボリュームSSV2内のある領域からのデータ読み出しが要求された場合、ストレージ装置200は、ビットマップBM2b,BM3bにおけるその領域に対応するビットの値を参照する。ここで、ビットマップBM2bのビット値は、読み出しが要求されたデータがストレージ装置200に存在するか否かを示す。
このビット値が「0」の場合、該当データはストレージ装置200にすでに存在すると判定される。この場合、ビットマップBM3bのビット値が「0」であれば、該当データがスナップショットボリュームSSV2に存在すると判定され、ビット値が「1」であれば、該当データはボリュームVOL2に存在すると判定される。したがって、ストレージ装置200は、ビットマップBM3bのビット値に基づいて該当データをスナップショットボリュームSSV2とボリュームVOL2のいずれかから取得して、読み出し要求元に送信する。
一方、ビットマップBM2bのビット値が「1」の場合、該当データはストレージ装置200には存在せず、ストレージ装置100のボリュームVOL1に存在すると判定される。そのため、ストレージ装置200は、該当データをストレージ装置100のボリュームVOL1から取得して、読み出し要求元に送信する。この場合、該当データは、スナップショット同時作成が要求された時点でボリュームVOL1からボリュームVOL2に対して未転送のデータであったことになる。
このように、ストレージ装置200は、スナップショット同時作成が要求された時点でボリュームVOL1に未転送のデータがあった場合でも、スナップショットボリュームSSV2のデータを利用しようとする時点で、正しいデータを取得して利用することができる。結果的に、スナップショットの同時作成要求を受信した時点におけるボリュームVOL1と、他方のストレージ装置200で作成されたスナップショットボリュームSSV2との間におけるデータの同一性を保証できる。
なお、スナップショットボリュームSSV2の読み出しが要求された場合の処理手順については、後の図13〜図15において詳しく説明する。
図8は、スナップショット同時作成が要求された場合の各ストレージ装置の処理を示すフローチャートの例である。
ストレージ装置100のコピー制御部142は、管理サーバ302からスナップショットの同時作成要求を受信する(ステップS101)。この同時作成要求では、例えば、非同期コピーのセッションID、または非同期コピーのコピー元情報およびコピー先情報が指定される。コピー制御部142は、セッション管理テーブル131を参照して、スナップショット同時作成要求に対応する非同期コピーセッションを特定する。そして、コピー制御部142は、非同期コピーセッションにおけるコピー元ボリュームに対する、ホストサーバ301からの書き込み要求の受け付けを一時的に停止するようにI/O制御部141に指示する(ステップS102)。
次に、コピー制御部142は、非同期コピーセッションに対応するビットマップBM1aを特定し、このビットマップBM1aをストレージ装置200に転送する(ステップS103)。このとき、コピー制御部142は、セッション管理テーブル131に登録された、非同期コピーセッションに対応するレコードに基づいて、同じ非同期コピーセッションについてのストレージ装置200側でのセッションIDを特定する。コピー制御部142は、特定されたセッションIDと、スナップショット同時作成が要求されたことを示す情報とを、ビットマップBM1aとともに送信する。
次に、コピー制御部142は、スナップショット同時作成におけるコピー元側のスナップショットセッションを作成し(ステップS104)、このセッションを示すレコードをセッション管理テーブル131に追加する。この状態では、スナップショットボリュームの管理データが作成されることで、スナップショットボリュームが仮想的に作成される。管理データには、例えば、スナップショットボリュームの領域ごとに、スナップショット作成元のボリューム(非同期コピーのコピー元ボリューム)の各領域を示すポインタが登録される。
また、コピー制御部142は、作成されたスナップショットセッションに対応するビットマップBM3aを作成し、記憶部130に格納する(ステップS105)。このビットマップBM3aでは、全ビットの値が「1」に設定される。さらに、コピー制御部142は、ビットマップBM1aを、作成されたスナップショットセッションに対応するビットマップBM2aとして記憶部130に格納する(ステップS106)。以上の処理が完了すると、コピー制御部142は、ストレージ装置200からの処理完了の通知を待ち合わせる(ステップS107)。なお、すでに処理完了の通知を受信済みの場合には、すぐにステップS113の処理が開始される。
一方、ストレージ装置200において、コピー制御部242は、ステップS103で送信されたビットマップBM1aを受信すると(ステップS108)、スナップショット同時作成におけるコピー先側のスナップショットセッションを作成する(ステップS109)。このとき、このスナップショットセッションに対応するレコードがセッション管理テーブル231に登録される。また、スナップショットボリュームの管理データが作成されることで、スナップショットボリュームが仮想的に作成される。管理データには、例えば、スナップショットボリュームの領域ごとに、スナップショット作成元のボリューム(非同期コピーのコピー先ボリューム)の各領域を示すポインタが登録される。
また、コピー制御部242は、作成されたスナップショットセッションに対応するビットマップBM3bを作成し、記憶部230に格納する(ステップS110)。このビットマップBM3bでは、全ビットの値が「1」に設定される。さらに、コピー制御部242は、受信したビットマップBM1aを、作成されたスナップショットセッションに対応するビットマップBM2bとして記憶部230に格納する(ステップS111)。そして、コピー制御部242は、スナップショットの作成処理が完了したことをストレージ装置100に通知する(ステップS112)。
ストレージ装置100のコピー制御部142は、処理の完了通知を受信すると、非同期コピーセッションにおけるコピー元ボリュームに対する、ホストサーバ301からの書き込み要求の受け付けを再開するようにI/O制御部141に指示する(ステップS113)。そして、コピー制御部142は、管理サーバ302に対して、スナップショット同時作成の完了を示す応答を行う(ステップS114)。
以上の図8の処理では、ステップS102の実行からステップS113の実行前までの期間において、非同期コピーにおけるコピー元ボリュームに対するホストサーバ301からの書き込みが禁止される。この期間には、ビットマップBM1aがストレージ装置100からストレージ装置200へ転送される。しかし、コピー元ボリュームからコピー先ボリュームに対して未転送(コピー未了)のデータがあった場合でも、そのデータはストレージ装置200に転送されない。したがって、未転送のデータがあった場合には、図6に示したように未転送のデータを転送する場合と比較して、コピー元ボリュームに対する書き込み禁止期間を短縮できる。
次に、図9、図10を用いて、非同期コピーにおける未転送データをコピー元ボリュームからコピー先ボリュームに転送(コピー)する場合の処理について説明する。
図9は、非同期コピーにおける未転送データの転送処理例を示す図である。図9では、図7のように非同期コピーセッションおよびスナップショットセッションが設定されているものとする。また、図9の初期状態では、ボリュームVOL1において転送済み(コピー済み)のデータD1〜D6のうち、データD2,D4,D6がそれぞれデータD2a,D4a,D6aに更新されたが、データD2a,D4a,D6aはボリュームVOL2にコピーされていないとする。このとき、ビットマップBM1aは「010101」となる。
この状態で、ストレージ装置100がボリュームVOL1の領域R2のデータD2aを、ストレージ装置200のボリュームVOL2に転送するものとする。すなわち、ボリュームVOL1の領域R2について非同期コピーが行われるものとする。この場合、ストレージ装置100は、領域R2のデータD2aをストレージ装置100に転送し(ステップS31)、ビットマップBM1a,BM2aの領域R2に対応するビットの値を「0」に更新する(ステップS32)。
一方、ストレージ装置200は、ビットマップBM2bの領域R2に対応するビットの値が「1」であることから、ボリュームVOL2の領域R2の更新データを未受領であると判定する。この場合、ストレージ装置200は、スナップショットボリュームSSV2に関しては何ら処理を行わずに、受信したデータD2aによってボリュームVOL2の領域R2を更新する(ステップS33)。そして、ストレージ装置200は、ビットマップBM2bの領域R2に対応するビットの値を「0」に更新する(ステップS34)。ビットマップBM3bについては更新が行われない。
以上の処理では、データD2aはスナップショット同時作成が要求される前に更新されたデータであるので、このデータD2aをスナップショットボリュームSSV2に退避させる必要はない。ストレージ装置200は、ビットマップBM2bの該当ビットの値が「1」であることから、データD2aが、スナップショット同時作成が要求される前に更新されたデータであると判断することができる。
図10は、非同期コピー実行時における各ストレージ装置の処理を示すフローチャートの例である。
ストレージ装置100のコピー制御部142は、例えば定期的にビットマップBM1aを参照し、「1」のビットがあるかを判定する。「1」のビットがある場合、コピー制御部142は、非同期コピーセッションにおけるコピー元ボリュームの該当領域から、更新されたデータを読み出す。また、コピー制御部142は、セッション管理テーブル131における非同期コピーセッションのレコードから、同じ非同期コピーセッションについてのストレージ装置200側でのセッションIDを特定する。そして、コピー制御部142は、読み出したデータと特定されたセッションIDとをストレージ装置200に転送し(ステップS121)、ストレージ装置200からの処理完了の通知待ち状態になる。
一方、ストレージ装置200のコピー制御部242は、データとセッションIDとを受信すると(ステップS122)、セッション管理テーブル231における、受信したセッションIDに対応するレコードを参照する。コピー制御部242は、このレコードのコピー先情報を読み込み、セッション管理テーブル231に登録された、セッションタイプがスナップショット作成を示すレコードの中から、コピー元情報が読み込んだコピー先情報と一致するレコードを検索する。ここでは、該当するレコードが見つかり、そのレコードの同時スナップショットフラグが「1」であったとする。
この場合、コピー制御部242は、まず、見つかったレコードが示すスナップショットセッションに対応するビットマップBM2bを参照し、ステップS122で受信したデータの格納先領域に対応するビットの値を読み込む。ここで、コピー制御部242は、読み込んだビットの値が「0」の場合(ステップS123:Yes)、非同期コピーセッションにおけるコピー先ボリュームから、受信したデータの格納先領域に格納されていたデータを読み込む。コピー制御部242は、読み込んだデータをスナップショットボリュームの同じ領域に退避させる(ステップS124)。コピー制御部242は、スナップショットセッションに対応するビットマップBM3bを参照し、データ退避を行った領域に対応するビットの値を「0」に更新する(ステップS125)。そして、コピー制御部242は、受信したデータをコピー先ボリュームの格納先領域に上書きして、コピー先ボリュームを更新する(ステップS126)。
一方、コピー制御部242は、ビットマップBM2bから読み込んだビットの値が「1」の場合(ステップS123:No)、受信したデータをコピー先ボリュームの格納先領域に上書きして、コピー先ボリュームを更新する(ステップS127)。そして、コピー制御部242は、ビットマップBM2bの該当ビットの値を「0」に更新する(ステップS128)。
ステップS126またはステップS128の処理が完了すると、コピー制御部242は、処理完了をストレージ装置100に通知する(ステップS129)。ストレージ装置100のコピー制御部142は、ビットマップBM1aのビットのうち、ステップS121で値が「1」であることを検出したビットについて、値を「0」に更新する(ステップS130)。
また、コピー制御部242は、非同期コピーセッションに関連付けられた、スナップショット同時作成が行われるスナップショットセッションがあるかを判定し、そのようなスナップショットセッションがある場合に処理をステップS131に進める。この判定処理では、コピー制御部142は、セッション管理テーブル131における非同期コピーセッションに対応するレコードから、コピー元情報を読み込む。コピー制御部142は、セッション管理テーブル131に登録された、セッションタイプがスナップショット作成を示すレコードの中から、コピー元情報が読み込んだコピー元情報と一致するレコードを検索する。この検索により該当するレコードが見つかり、かつ、見つかったレコードにおいて同時スナップショットフラグが「1」の場合に、ステップS131の処理が実行される。
コピー制御部242は、スナップショットセッションに対応するビットマップBM2aを参照し、データ転送が行われた領域に対応するビットの値が「0」かを判定する(ステップS131)。ビットの値が「0」の場合、処理は終了する。一方、ビットの値が「1」の場合、コピー制御部242は、このビットの値を「0」に更新して、処理を終了する(ステップS132)。なお、後者のケースは、ステップS123でビットマップBM2bのビット値が「1」と判定されるケースである。
次に、図11、図12を用いて、非同期コピーセッションのコピー元ボリュームの領域のうち、データ未転送(コピー未了)の領域に対してホストサーバ301から書き込み(更新)が要求された場合の処理について説明する。
図11は、コピー元ボリュームにおけるデータ未転送の領域に対して更新が要求された場合の処理例を示す図である。図11では、図7、図9のように非同期コピーセッションおよびスナップショットセッションが設定されているものとする。また、図11の初期状態では、ボリュームVOL1における領域R1〜R3,R5のデータD1,D2a,D3,D5がボリュームVOL2に転送済みであるとする。さらに、ボリュームVOL1における領域R4,R6においてそれぞれ更新されたデータD4a,D6aは、ボリュームVOL2に未転送であり、この状態でスナップショットボリュームSSV1,SSV2が作成されたとする。このとき、ビットマップBM1aは「000101」となる。また、ビットマップBM3aの全ビットの値が「1」であるとする。
この状態で、ホストサーバ301からボリュームVOL1の領域R4をデータD4aからデータD4bに更新するような書き込み要求が送信されたとする(ステップS41)。ストレージ装置100は、ビットマップBM3aの領域R4に対応するビットが「1」であることから、まず、ボリュームVOL1の領域R4から更新前のデータD4aを読み出し、スナップショットボリュームSSV1に退避させる(ステップS42)。また、ストレージ装置100は、ビットマップBM3aの領域R4に対応するビットを「0」に更新し(ステップS43)、ボリュームVOL1の領域R4に格納されているデータD4aをデータD4bに更新する(ステップS44)。
次に、ストレージ装置100は、ビットマップBM2aの領域R4に対応するビットを参照する。このビットの値が「1」である場合、領域R4の更新前のデータD4aはボリュームVOL2に転送されていない(コピーされていない)と判断される。そこで、ストレージ装置100は、スナップショットボリュームSSV1の領域R4からデータD4aを読み出し、ストレージ装置200に転送する(ステップS45)。
ストレージ装置200は、ビットマップBM2bの領域R2に対応するビットの値が「1」であることから、ボリュームVOL2の領域R2の更新データを未受領であると判定する。この場合、ストレージ装置200は、図9のケースと同様に、スナップショットボリュームSSV2に関しては何ら処理を行わずに、受信したデータD4aをボリュームVOL2の領域R4に上書きして領域R4を更新する(ステップS46)。そして、ストレージ装置200は、ビットマップBM2bの領域R4に対応するビットの値を「0」に更新する(ステップS47)。ビットマップBM3bについては更新が行われない。
また、ストレージ装置100は、ビットマップBM2aの領域R4に対応するビットの値を「0」に更新する(ステップS48)。
以上の処理では、ストレージ装置100側では、データD4aがスナップショットボリュームSSV1に退避される。一方、データD4aはスナップショット同時作成が要求される前に更新されたデータであるので、ストレージ装置200側では、このデータD4aをスナップショットボリュームSSV2に退避させる必要はない。ストレージ装置200は、ビットマップBM2bの該当ビットの値が「1」であることから、データD4aが、スナップショット同時作成が要求される前に更新されたデータであると判断することができる。
図12は、コピー元ボリュームに対してデータ更新が要求された場合における各ストレージ装置の処理を示すフローチャートの例である。
I/O制御部141は、ホストサーバ301からボリュームの更新要求を受信する(ステップS141)。I/O制御部141は、このボリュームをコピー元とする非同期コピーセッションのレコードがセッション管理テーブル131に登録されていることを認識すると、更新要求を受信したことをコピー制御部142に通知する。
コピー制御部142は、セッション管理テーブル131に登録された、セッションタイプがスナップショット作成を示すレコードの中から、コピー元情報が非同期コピーセッションにおけるコピー元ボリュームと一致するレコードを検索する。ここでは、該当するレコードが見つかり、そのレコードの同時スナップショットフラグが「1」であったとする。この場合、ステップS142〜S150の処理が実行される。なお、見つかったレコードの同時スナップショットフラグが「0」であった場合は、ステップS142からステップS146までの処理が実行されて処理が終了する。
コピー制御部142は、見つかったレコードが示すスナップショットセッションに対応するビットマップBM3aを参照し、データ更新が要求された領域に対応するビットの値を読み込む。ビットの値が「1」の場合(ステップS142:Yes)、コピー制御部142は、非同期コピーセッションのコピー元ボリューム領域のうち、更新対象のデータを含む領域(コピー単位の領域)からデータを読み出し、スナップショットボリュームにおける同じ領域に退避させる(ステップS143)。また、コピー制御部142は、ビットマップBM3aの上記ビットの値を「0」に更新する(ステップS144)。そして、コピー制御部142は、ホストサーバ301から受信した更新データをコピー元ボリュームの更新対象領域に上書きして、コピー元ボリュームを更新し(ステップS145)、ホストサーバ301に対して更新完了を示す応答を行う(ステップS146)。
一方、ステップS142の判定でビットの値が「0」の場合、コピー制御部142は、ステップS143,S144をスキップして、受信した更新データによってコピー元ボリュームを更新する(ステップS145)。そして、コピー制御部142は、ホストサーバ301に対して更新完了を示す応答を行う(ステップS146)。
次に、コピー制御部142は、スナップショットセッションに対応するビットマップBM2aを参照し、データ更新が要求された領域に対応するビットの値を読み込む。ビットの値が「1」の場合(ステップS147:Yes)、該当ビットに対応するコピー先ボリュームの領域が、更新前データが未受領(コピー未了)の状態であると判断される。この場合、コピー制御部142は、スナップショットセッションに退避された該当領域のデータをストレージ装置200に転送する(ステップS148)。このとき、セッション管理テーブル131における非同期コピーセッションのレコードから、同じ非同期コピーセッションについてのストレージ装置200側でのセッションIDが特定され、特定されたセッションIDが退避データとともに送信される。
ストレージ装置200では、コピー制御部242により、ストレージ装置100から送信された上記データを用いて図10のステップS122〜S129と同様の処理が実行される。そして、これらの処理が完了すると、処理完了がストレージ装置100に通知される(ステップS149)。ストレージ装置100のコピー制御部142は、ビットマップBM2aのビットのうち、ステップS147で値が「1」であることを検出したビットについて、値を「0」に更新する(ステップS150)。
一方、ステップS147でビットマップBM2aのビットの値が「0」と判定された場合、コピー制御部142は、ビットマップBM1aのビットのうち、ステップS147で値が「0」であることを検出したビットについて、値を「1」に更新する(ステップS151)。これにより、コピー先ボリュームの該当領域がデータ未転送(コピー未了)の領域として管理される。なお、ステップS147でビットマップBM2aのビットの値が「1」と判定されるケースでは、ビットマップBM1aの該当ビットの値もすでに「1」となっており、コピー先ボリュームの該当領域はデータ未転送(コピー未了)の領域として管理され続ける。
次に、図13〜図15を用いて、コピー先側のスナップショットボリュームの領域のうち、データ未受領(コピー未了)の領域からの読み出しが要求された場合について説明する。
図13は、スナップショットボリュームのデータ未受領領域からの読み出しが要求された場合の処理例を示す図である。図13では、図7、図9、図11のように非同期コピーセッションおよびスナップショットセッションが設定されているものとする。また、図13の初期状態では、ボリュームVOL1の領域R6に格納されていたデータD6がボリュームVOL2にコピーされた後、ボリュームVOL1の領域R6がデータD6aに更新され、この状態でスナップショットボリュームSSV1,SSV2が作成されたとする。このとき、ビットマップBM1a,BM2a,BM2b,BM3bのそれぞれにおける領域R6の値は「1」である。
この状態では、管理サーバ302からスナップショットボリュームSSV2の領域R6からのデータ読み出しが要求されたとする(ステップS51)。すると、ストレージ装置200は、ビットマップBM2bの領域R6に対応するビットをチェックする。このケースではビットの値は「1」であり、読み出し対象のデータ(読み出しデータ)はボリュームVOL2およびスナップショットボリュームSSV2のいずれにも格納されていないと判断される。これは、スナップショット同時作成が要求された時点におけるボリュームVOL1の領域R6のデータが、ストレージ装置200に転送されていないことを意味する。この場合、ストレージ装置200は、読み出しデータの転送をストレージ装置100に依頼する(ステップS52)。
読み出し要求を受けたストレージ装置200は、ビットマップBM1a,BM2aの領域R6に対応するビットの値がいずれも「1」であることを確認した上で、ボリュームVOL1の領域R6から読み出しデータを読み出し、ストレージ装置200に転送する(ステップS53)。また、ストレージ装置100は、ビットマップBM1a,BM2aの領域R6に対応するビットの値を、いずれも「0」に更新する(ステップS54)。
ストレージ装置200は、ストレージ装置100から転送された読み出しデータをボリュームVOL2の領域R6に上書きして領域R6を更新し(ステップS55)、ビットマップBM2bの領域R6に対応するビットの値を「0」に更新する(ステップS56)。そして、ストレージ装置200は、ボリュームVOL2の領域R6から読み出しデータを読み出し、読み出し要求元に対して送信する(ステップS57)。
以上の処理により、ストレージ装置200は、スナップショットボリュームSSV2の領域のうち、ボリュームVOL1からデータ未受領の領域について読み出しが要求された場合でも、データをボリュームVOL1から取得して読み出し要求元に返信できる。すなわち、ストレージ装置200は、ビットマップBM2bの対応するビットの値が「1」であることにより、読み出しデータがボリュームVOL2にもスナップショットボリュームSSV2にも存在しないことを判断できる。そして、ストレージ装置200は、その判断にしたがい、読み出しデータの転送をストレージ装置100に依頼して、読み出しデータをボリュームVOL1から取得できる。
したがって、図7に示したように、スナップショット同時作成が要求された時点でボリュームVOL1の未転送データが転送されなくても、ビットマップBM1aが転送されることで、スナップショットボリュームSSV2のデータの正当性が保証される。換言すると、ストレージ装置100,200は上記の処理により、スナップショットボリュームSSV1,SSV2の各内容が一致するように動作することができる。
図14、図15は、スナップショットボリュームからの読み出しが要求された場合の各ストレージ装置の処理を示すフローチャートの例である。
ストレージ装置200のコピー制御部242は、管理サーバ302から、スナップショットボリュームからのデータの読み出し要求を受信する(ステップS161)。すると、コピー制御部242は、スナップショットボリュームを作成先としたスナップショットセッションに対応するビットマップBM2b,BM3bを参照し、読み出しが要求されたデータ(読み出しデータ)が含まれる領域に対応するビットの値を読み取る。
ビットマップBM3bの該当ビットの値が「0」の場合(ステップS162:Yes)、読み出しデータはスナップショットボリュームに退避されていると判断される。この場合、コピー制御部242は、読み出しデータをスナップショットボリュームから読み出し、管理サーバ302に送信する(ステップS163)。
また、ビットマップBM3bの該当ビットの値が「1」の場合(ステップS162:No)、コピー制御部242は、ビットマップBM2bの該当ビットの値が「0」かを判定する(ステップS164)。この値が「0」の場合、読み出しデータは同期コピーのコピー先ボリュームに格納されていると判断される。この場合、コピー制御部242は、読み出しデータをコピー先ボリュームから読み出し、管理サーバ302に送信する(ステップS165)。
一方、ビットマップBM2bの該当ビットの値が「1」の場合(ステップS164:No)、読み出しデータは同期コピーのコピー元ボリュームに格納されていると判断される。この場合、コピー制御部242は、読み出しデータの転送をストレージ装置100に対して依頼する(ステップS166)。このとき、例えば、非同期コピーセッションについてのストレージ装置100側に登録されているセッションIDと、読み出しデータについての読み出し領域を示すアドレス情報とが、転送依頼とともに送信される。
ストレージ装置100において、コピー制御部142は、転送依頼を受信すると(ステップS167)、転送依頼とともに受信したセッションID(非同期コピーセッションのセッションID)に対応するビットマップBM1aを参照する。また、コピー制御部142は、セッション管理テーブル131のレコードのうち、受信したセッションIDに対応するレコードを参照し、このレコードのコピー元情報を読み込んでコピー元ボリュームを特定する。さらに、コピー制御部142は、セッション管理テーブル131に登録された、セッションタイプがスナップショット作成を示すレコードの中から、コピー先情報が読み込んだコピー先情報と一致するレコードを検索する。これにより、コピー元ボリュームを作成元とするスナップショットセッションが特定され、コピー制御部142は、特定されたスナップショットセッションに対応するビットマップBM2aを参照する。
コピー制御部142は、ビットマップBM1a,BM2aにおける、読み出し領域を含む領域のビットを読み込み、いずれのビットの値も「1」であることを確認する。そして、コピー制御部142は、コピー元ボリュームの読み出し領域から読み出しデータを読み出し、ストレージ装置200に転送する(ステップS168)。なお、上記のビットのうち少なくとも1つの値が「0」の場合、コピー制御部142はエラーが発生したことをストレージ装置200に通知する。
また、コピー制御部142は、読み出しデータの転送後、ビットマップBM1aにおける上記ビットの値を「0」に更新し(ステップS169)、さらにビットマップBM2aにおける上記ビットの値も「0」に更新する(ステップS170)。
一方、ストレージ装置200のコピー制御部242は、ステップS168で転送された読み出しデータを受信すると(ステップS171)、読み出しデータを非同期コピーのコピー先ボリュームの該当領域に書き込み、コピー先ボリュームを更新する(ステップS172)。なお、コピー先ボリュームは、セッション管理テーブル231におけるスナップショットセッションのレコードにおいて、コピー元情報として登録された情報から特定される。
また、コピー制御部242は、スナップショットセッションに対応するビットマップBM2bの該当ビットの値を「0」に更新する(ステップS173)。これにより、非同期コピーのコピー元ボリュームにおける読み出しデータを含む領域が、データ受領済み(コピー済み)であることが記録される。そして、コピー制御部242は、コピー元ボリュームから読み出しデータを読み出し、読み出し要求元である管理サーバ302に対して返信する(ステップS174)。
以上の図14、図15に示したように、ストレージ装置200は、スナップショットボリュームからの読み出しが要求された場合、ビットマップBM2b,BM3bの対応するビットの値に基づいて、読み出しデータがどこに存在するかを正しく判定できる。すなわち、ビットマップBM2bのビットの値が「1」の場合、ストレージ装置200は、読み出しデータが非同期コピーのコピー元ボリュームに格納されていると判定できる。なお、ビットマップBM2bのビットの値が「1」の場合、ビットマップBM3bのビットの値も「1」である。図14では判定の正確性を高めるため、ストレージ装置200は、ビットマップBM2b,BM3bのいずれのビットの値も「1」の場合に、読み出しデータが非同期コピーのコピー元ボリュームに格納されていると判定している。
また、ビットマップBM2bのビットの値が「0」の場合、読み出しデータはストレージ装置200側に格納されている。このケースでは、さらにビットマップBM3bのビットの値が「0」の場合、ストレージ装置200は、読み出しデータがスナップショットボリュームに退避されていると判定できる。一方、ビットマップBM3bのビットの値が「1」の場合、ストレージ装置200は、読み出しデータが非同期コピーのコピー先ボリューム(すなわち、スナップショットの作成元ボリューム)に格納されていると判定できる。
このような判定に基づいて読み出しデータを取得し、利用することで、ストレージ装置200は、スナップショットボリュームの内容を、スナップショット同時作成が要求された時点におけるコピー元ボリュームの内容(すなわち、ストレージ装置100のスナップショットボリュームの内容)と一致させることができる。
次に、図16〜図19を用いて、複数世代のスナップショットが作成される場合について説明する。
図16は、スナップショット同時作成が2回要求された場合における処理例を示す図である。
図16の上側では、ボリュームVOL1とボリュームVOL2との間で非同期コピーセッションが設定され、この非同期コピーセッションに対してビットマップBM1aが作成されている。また、ボリュームVOL1とスナップショットボリュームSSV1との間、ボリュームVOL2とスナップショットボリュームSSV2との間で、それぞれスナップショット同時作成による第1世代のスナップショットセッションが設定されている。非同期コピーセッションのコピー元側のスナップショットセッションには、前述のビットマップBM2a,BM3aとしてビットマップBM2a1,BM3a1が作成されている。コピー先側のスナップショットセッションには、前述のビットマップBM2b,BM3bとしてBM2b1,BM3b1が作成されている。
ボリュームVOL1においては領域R4〜R6のデータD4b,D5a,D6aがデータ未転送(コピー未了)の状態となっており、ビットマップBM1aは「000111」となっている。スナップショットボリュームSSV1には領域R4,R5のデータD4a,D5が退避されており、ビットマップBM3a1は「111001」となっている。スナップショットボリュームSSV2には領域R4のデータD4が退避されており、ビットマップBM3b1は「111011」となっている。ビットマップBM2b1は「000001」となっており、ボリュームVOL2の領域R6はスナップショット同時作成の要求時からデータ未受領(コピー未了)の状態となっている。ビットマップBM2b1は、ビットマップBM2b2と一致している。
以上の状態で、2回目のスナップショット同時作成が要求されたとする。この場合、図16の下側に示すように、この時点でのビットマップBM1aがストレージ装置200に転送される(ステップS61)。また、スナップショットボリュームSSV3,SSV4が作成される(ステップS62a,S62b)。そして、ボリュームVOL1とスナップショットボリュームSSV3との間、ボリュームVOL2とスナップショットボリュームSSV3との間で、それぞれスナップショット同時作成による第2世代のスナップショットセッションが設定される。非同期コピーセッションのコピー元側における第2世代のスナップショットセッションには、前述のビットマップBM2a,BM3aとしてビットマップBM2a2,BM3a2が作成される。コピー先側における第2世代のスナップショットセッションには、前述のビットマップBM2b,BM3bとしてBM2b2,BM3b2が作成される。ビットマップBM2b2としては、ステップS61で転送されたビットマップBM1aが用いられる。
以上の処理により、2回目のスナップショットの同時作成が完了する。このように、2回目のスナップショットの同時作成時においても、ボリュームVOL1内の未転送データが転送される代わりにビットマップBM1aの転送が行われる。そのため、1回目のスナップショットの同時作成時と同様に、ホストサーバ301からのボリュームVOL1への書き込み禁止期間を短縮できる。
次に、図17、図18を用いて、コピー元ボリュームの未転送領域のデータがコピー先ボリュームに転送される場合の処理例について説明する。図17は、スナップショットボリュームSSV2,SSV4のいずれのセッションについても未受領の領域に対してデータが転送される場合を例示する。一方、図18は、スナップショットボリュームSSV2のセッションについては受領済みであるが、スナップショットボリュームSSV4のセッションについては未受領の領域に対してデータが転送される場合を例示する。
図17は、未転送領域のデータが転送される場合の第1の処理例を示す図である。この図17では、図16の下側の状態から、ボリュームVOL1の領域R6のデータD6aがストレージ装置200へ転送された場合(ステップS71)を例示する。
この場合、転送先のストレージ装置200では、最古世代のスナップショットセッションに対応するビットマップBM2b1がチェックされる。ビットマップBM2b1の領域R6に対応するビットの値が「1」であることから、ボリュームVOL2の領域R6がデータD6aによって更新され(ステップS72)、ビットマップBM2b1の領域R6に対応するビットの値が「0」に更新される(ステップS73)。次に、次の世代のスナップショットセッションに対応するビットマップBM2b2がチェックされる。ビットマップBM2b2の領域R6に対応するビットの値は「1」であり、この場合は当該ビットの値が「0」に更新される(ステップS74)。
一方、ストレージ装置100では、ビットマップBM1aの領域R6に対応するビットの値が「0」に更新される(ステップS75)。また、ビットマップBM2a1,BM2a2の領域R6に対応するビットの値も「0」に更新される(ステップS76,S77)。
図18は、未転送領域のデータが転送される場合の第2の処理例を示す図である。この図18では、図17の下側の状態から、ボリュームVOL1の領域R5のデータD5aがストレージ装置200へ転送された場合(ステップS81)を例示する。
図17の場合と同様に、転送先のストレージ装置200では、最古世代のスナップショットセッションに対応するビットマップBM2b1がチェックされる。ビットマップBM2b1の領域R5に対応するビットの値が「0」であることから、ボリュームVOL2の領域R5における更新前のデータD5がスナップショットボリュームSSV2に退避される(ステップS82)。そして、ビットマップBM3b1の領域R5に対応するビットの値が「0」に更新される(ステップS83)。この時点では、データD5aによるボリュームVOL2の更新は保留される。
次に、次の世代のスナップショットセッションに対応するビットマップBM2b2がチェックされる。ビットマップBM2b2の領域R5に対応するビットの値は「1」であることから、ボリュームVOL2の領域R5がデータD5aによって更新され(ステップS84)、ビットマップBM2b2の領域R5に対応するビットの値が「0」に更新される(ステップS85)。
一方、ストレージ装置100では、ビットマップBM1aの領域R5に対応するビットの値が「0」に更新される(ステップS86)。また、ビットマップBM2a2の領域R5に対応するビットの値も「0」に更新される(ステップS87)。
以上のようにストレージ装置200側のビットマップが設定されることで、ストレージ装置200は、複数世代のスナップショットボリュームからの読み出しが要求された場合に、読み出しデータがどこに格納されているかをビットマップに基づいて判定できるようになる。
図19は、非同期コピー実行時におけるコピー先側のストレージ装置の処理を示すフローチャートの例である。この図19では、スナップショット同時作成が複数回実行された後に、図10のステップS121のように非同期コピーセッションのコピー先ボリュームのデータがストレージ装置100から転送された場合に、ストレージ装置200で実行される処理を示す。
[ステップS181]コピー制御部242は、転送されたデータを受信する。
[ステップS182]コピー制御部242は、非同期コピーに関連付けられたスナップショットセッションのうち、最古世代のスナップショットセッションを処理対象にする。
[ステップS183]コピー制御部242は、処理対象のスナップショットセッションに対応するビットマップBM3bのビットのうち、受信したデータの格納先領域に対応するビットの値を読み込む。コピー制御部242は、このビットの値が「1」の場合、処理をステップS184に進め、「0」の場合、処理をステップS187に進める。
[ステップS184]コピー制御部242は、処理対象のスナップショットセッションに対応するビットマップBM2bのビットのうち、受信したデータの格納先領域に対応するビットの値を読み込む。コピー制御部242は、このビットの値が「1」の場合、処理をステップS187に進め、「0」の場合、処理をステップS185に進める。
[ステップS185]コピー制御部242は、非同期コピーセッションにおけるコピー先ボリュームから、受信したデータの格納先領域に格納されていたデータを読み込む。コピー制御部242は、読み込んだデータを、処理対象のスナップショットセッションにおけるスナップショットボリュームの同じ領域に退避させる。
[ステップS186]コピー制御部242は、ステップS183で値を読み込んだビットマップBM3bのビットの値を「0」に更新する。
[ステップS187]コピー制御部242は、次世代のスナップショットセッションがあるかを判定する。コピー制御部242は、該当するスナップショットセッションがある場合、処理をステップS188に進め、該当するスナップショットセッションがない場合、処理をステップS189に進める。
[ステップS188]コピー制御部242は、次世代のスナップショットセッションを処理対象にする。この後、処理はステップS183に進められる。
[ステップS189]コピー制御部242は、受信したデータをコピー先ボリュームの格納先領域に上書きして、コピー先ボリュームを更新する。
[ステップS190]コピー制御部242は、すべてのコピーセッションに対応するビットマップBM2bのビットのうち、受信したデータの格納先領域に対応するビットの値を「0」に更新する。
なお、複数世代のスナップショットボリュームのそれぞれからのデータ読み出しが実行された場合、世代ごとに図14、図15と同様の処理が実行される。これにより、各世代について、スナップショット同時作成が要求された時点におけるコピー元ボリュームのデータを、読み出しデータとして正しく出力することができる。
なお、上記の各実施の形態に示した装置(例えば、制御装置1,2、CM110,210)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、磁気テープなどがある。光ディスクには、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク(Blu-ray Disc:BD、登録商標)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CDなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
1,2 制御装置
1a,2a 記憶部
1b,2b 処理部
11,21 記憶領域
11a,22a 管理データ
22 スナップショット領域
d1〜d4,d4a データ
r1〜r4 単位領域

Claims (10)

  1. 第1の記憶領域へのアクセスを制御する第1の制御装置と、第2の記憶領域へのアクセスを制御する第2の制御装置と、を有するストレージシステムであって、
    前記第1の制御装置は、
    ホスト装置からの要求に応じて前記第1の記憶領域にデータを書き込み、
    前記第1の記憶領域へのデータの書き込みとは非同期に、前記第1の記憶領域に書き込まれたデータを、前記第2の記憶領域にコピーするために前記第2の制御装置に送信する非同期コピー処理を実行し、
    前記第1の記憶領域のスナップショットを前記第2の制御装置で作成するスナップショット作成が要求されると、前記第1の記憶領域に含まれる単位領域のそれぞれについて、前記第2の記憶領域に含まれる対応する単位領域へのコピーの完了状態を示す第1の管理データを前記第2の制御装置に送信し、前記第2の制御装置から前記スナップショットの作成完了通知を受信すると、前記スナップショット作成の要求に対応する処理の完了通知を前記ホスト装置に送信する、第1の処理部を有し、
    前記第2の制御装置は、
    第1の記憶部と、
    前記非同期コピー処理により前記第1の制御装置から送信されたデータを前記第2の記憶領域に書き込み、
    前記第1の管理データを受信すると、前記第1の管理データを、前記第2の記憶領域に含まれる単位領域のそれぞれについて、前記第1の記憶領域に含まれる対応する単位領域からのデータの受領状態を示す第2の管理データとして前記第1の記憶部に保存し、前記スナップショットに対応する記憶領域である第1のスナップショット領域を、前記第2の記憶領域をコピー元としたコピー・オン・ライト方式で作成し、前記作成完了通知を前記第1の制御装置に送信する、第2の処理部と、
    を有する、ストレージシステム。
  2. 前記第1の処理部は、前記スナップショット作成が要求されてから前記完了通知を受信するまでの間、前記ホスト装置からの前記第1の記憶領域への書き込み要求を禁止する、
    請求項1記載のストレージシステム。
  3. 前記第1の制御装置は、前記非同期コピー処理において、前記第1の記憶領域に含まれる単位領域のそれぞれについての前記完了状態を管理するための第3の管理データを記憶する第2の記憶部をさらに有し、
    前記第1の処理部は、前記スナップショット作成が要求されたとき、その時点における前記第3の管理データを前記第1の管理データとして前記第2の制御装置に送信する、
    請求項1または2記載のストレージシステム。
  4. 前記第2の制御装置は、前記非同期コピー処理により前記第1の制御装置から第1のデータが送信されたとき、前記第2の管理データを参照し、
    前記第2の記憶領域における前記第1のデータの書き込み先領域が未受領状態である場合には、前記第1のデータを前記書き込み先領域に書き込み、前記第2の管理データを、前記書き込み先領域が前記第1の記憶領域からのデータの受領済み状態であることを示すように更新し、
    前記書き込み先領域が受領済み状態である場合には、前記書き込み先領域に記憶されているデータを前記第1のスナップショット領域にコピーした後、前記第1のデータを前記書き込み先領域に上書きする、
    請求項1乃至3のいずれか1項に記載のストレージシステム。
  5. 前記スナップショット作成の要求は、前記第1の記憶領域の前記スナップショットを前記第1の制御装置と前記第2の制御装置で同時に作成する要求であり、
    前記第1の処理部は、
    前記スナップショット作成が要求されると、前記スナップショットに対応する記憶領域である第2のスナップショット領域を、前記第1の記憶領域をコピー元としたコピー・オン・ライト方式で作成し、
    前記スナップショット作成の要求に対応する前記完了通知を送信した後に、前記第1の記憶領域に含まれる単位領域のうち、前記第2の記憶領域に含まれる対応する単位領域へのデータのコピーが未完了である第1の単位領域に対する更新要求を前記ホスト装置から受信すると、前記第1の単位領域のデータを前記第2のスナップショット領域に退避させて、前記第1の単位領域を更新データによって更新し、前記第2のスナップショット領域に退避させた退避データを前記第2の制御装置に送信し、
    前記第2の処理部は、前記退避データを受信すると、前記第2の記憶領域に含まれる単位領域のうち前記第1の単位領域に対応する第2の単位領域に、前記退避データを書き込み、前記第2の管理データを、前記第2の単位領域が前記第1の記憶領域からデータを受領済みであることを示すように更新する、
    請求項1乃至4のいずれか1項に記載のストレージシステム。
  6. 前記第2の処理部は、前記第1のスナップショット領域からの読み出し要求を受信したとき、前記第2の管理データに基づき、読み出し対象領域が未受領状態である場合には、前記読み出し対象領域のデータを前記第1の記憶領域から前記第1の制御装置を介して取得する、
    請求項1乃至5のいずれか1項に記載のストレージシステム。
  7. 前記第2の処理部は、前記第1の記憶領域から取得した前記読み出し対象領域のデータを前記第2の記憶領域に書き込み、前記第2の管理データを、前記読み出し対象領域が前記第1の記憶領域からデータを受領済みの領域であることを示すように更新する、
    請求項6記載のストレージシステム。
  8. 前記第2の処理部は、前記第2の管理データに基づき、前記読み出し対象領域が受領済み状態である場合には、読み出しが要求されたデータを前記第2の記憶領域または前記第1のスナップショット領域から読み出す、
    請求項7記載のストレージシステム。
  9. ストレージ制御装置において、
    ホスト装置からの要求に応じて第1の記憶領域にデータを書き込み、
    前記第1の記憶領域へのデータの書き込みとは非同期に、前記第1の記憶領域に書き込まれたデータを、他のストレージ制御装置によってアクセスが制御される第2の記憶領域にコピーするために前記他のストレージ制御装置に送信する非同期コピー処理を実行し、
    前記第1の記憶領域のスナップショットを前記他のストレージ制御装置で作成するスナップショット作成が要求されると、前記第1の記憶領域に含まれる単位領域のそれぞれについて、前記第2の記憶領域に含まれる対応する単位領域へのコピーの完了状態を示す第1の管理データを前記他のストレージ制御装置に送信し、
    前記他のストレージ制御装置が、送信された前記第1の管理データを、前記第2の記憶領域に含まれる単位領域のそれぞれについて、前記第1の記憶領域に含まれる対応する単位領域からのデータの受領状態を示す第2の管理データとして保存し、かつ、前記スナップショットに対応する記憶領域である第1のスナップショット領域を、前記第2の記憶領域をコピー元としたコピー・オン・ライト方式で作成する処理を完了したことを示す処理完了通知を、前記他のストレージ制御装置から受信すると、前記スナップショット作成の要求に対応する処理の完了通知を前記ホスト装置に送信する、処理部、
    を有するストレージ制御装置。
  10. コンピュータに、
    ホスト装置からの要求に応じて第1の記憶領域にデータを書き込み、
    前記第1の記憶領域へのデータの書き込みとは非同期に、前記第1の記憶領域に書き込まれたデータを、他のコンピュータによってアクセスが制御される第2の記憶領域にコピーするために前記他のコンピュータに送信する非同期コピー処理を実行し、
    前記第1の記憶領域のスナップショットを前記他のコンピュータで作成するスナップショット作成が要求されると、前記第1の記憶領域に含まれる単位領域のそれぞれについて、前記第2の記憶領域に含まれる対応する単位領域へのコピーの完了状態を示す第1の管理データを前記他のコンピュータに送信し、
    前記他のコンピュータが、送信された前記第1の管理データを、前記第2の記憶領域に含まれる単位領域のそれぞれについて、前記第1の記憶領域に含まれる対応する単位領域からのデータの受領状態を示す第2の管理データとして保存し、かつ、前記スナップショットに対応する記憶領域である第1のスナップショット領域を、前記第2の記憶領域をコピー元としたコピー・オン・ライト方式で作成する処理を完了したことを示す処理完了通知を、前記他のコンピュータから受信すると、前記スナップショット作成の要求に対応する処理の完了通知を前記ホスト装置に送信する、
    処理を実行させるストレージ制御プログラム。
JP2019211915A 2019-11-25 2019-11-25 ストレージシステム、ストレージ制御装置およびストレージ制御プログラム Pending JP2021086159A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019211915A JP2021086159A (ja) 2019-11-25 2019-11-25 ストレージシステム、ストレージ制御装置およびストレージ制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019211915A JP2021086159A (ja) 2019-11-25 2019-11-25 ストレージシステム、ストレージ制御装置およびストレージ制御プログラム

Publications (1)

Publication Number Publication Date
JP2021086159A true JP2021086159A (ja) 2021-06-03

Family

ID=76087636

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019211915A Pending JP2021086159A (ja) 2019-11-25 2019-11-25 ストレージシステム、ストレージ制御装置およびストレージ制御プログラム

Country Status (1)

Country Link
JP (1) JP2021086159A (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005202915A (ja) * 2003-12-19 2005-07-28 Hitachi Ltd スナップショット取得方法
JP2008152796A (ja) * 2008-01-11 2008-07-03 Nec Corp データ複製システム、およびストレージ内のデータを複製するためのプログラム
JP2009070143A (ja) * 2007-09-13 2009-04-02 Hitachi Ltd Nas装置の差分リモートバックアップにおけるデータ復旧方法及び計算機システム
JP2012058863A (ja) * 2010-09-07 2012-03-22 Nec Corp ディスク装置、および、ディスク装置へのデータ複製方法、プログラム
WO2017064770A1 (ja) * 2015-10-14 2017-04-20 株式会社日立製作所 ストレージシステムおよびストレージシステムの制御方法
WO2018100455A1 (en) * 2016-12-02 2018-06-07 International Business Machines Corporation Asynchronous local and remote generation of consistent point-in-time snap copies

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005202915A (ja) * 2003-12-19 2005-07-28 Hitachi Ltd スナップショット取得方法
JP2009070143A (ja) * 2007-09-13 2009-04-02 Hitachi Ltd Nas装置の差分リモートバックアップにおけるデータ復旧方法及び計算機システム
JP2008152796A (ja) * 2008-01-11 2008-07-03 Nec Corp データ複製システム、およびストレージ内のデータを複製するためのプログラム
JP2012058863A (ja) * 2010-09-07 2012-03-22 Nec Corp ディスク装置、および、ディスク装置へのデータ複製方法、プログラム
WO2017064770A1 (ja) * 2015-10-14 2017-04-20 株式会社日立製作所 ストレージシステムおよびストレージシステムの制御方法
WO2018100455A1 (en) * 2016-12-02 2018-06-07 International Business Machines Corporation Asynchronous local and remote generation of consistent point-in-time snap copies

Similar Documents

Publication Publication Date Title
JP6708929B2 (ja) ストレージ制御装置、ストレージシステムおよびストレージ制御プログラム
EP0405926B1 (en) Method and apparatus for managing a shadow set of storage media
JP4426262B2 (ja) ディスクアレイ装置及びディスクアレイ装置の障害回避方法
US9996421B2 (en) Data storage method, data storage apparatus, and storage device
JP5081631B2 (ja) データの削除を管理するための方法および装置
JP4776342B2 (ja) ストレージシステムでオブジェクトレベルのスナップショットを生成するシステムと方法
US7080277B2 (en) Method and apparatus for recovery of a logical volume in a multi copy storage system
US20050216535A1 (en) Backup method, storage system, and program for backup
US20080065587A1 (en) Data management system and data management method
US20070106710A1 (en) Apparatus, system, and method for data migration
US5210865A (en) Transferring data between storage media while maintaining host processor access for I/O operations
JP2008527571A5 (ja)
US20090077334A1 (en) Storage Apparatus for Preventing Falsification of Data
US20060253681A1 (en) Dynamic allocation of storage for hierarchical copies
US7549029B2 (en) Methods for creating hierarchical copies
WO2018076633A1 (zh) 一种远程数据复制方法、存储设备及存储系统
JP6967010B2 (ja) 異種ストレージシステム間の複製
US7552309B2 (en) Data storage methods for hierarchical copies
JP2021086159A (ja) ストレージシステム、ストレージ制御装置およびストレージ制御プログラム
JP2022142843A (ja) 制御装置及びデータ読出方法
US11307774B2 (en) Storage control device, non-transitory computer-readable storage medium, and storage control method
US11586508B2 (en) Systems and methods for backing up volatile storage devices
US11550506B2 (en) Systems and methods for accessing hybrid storage devices
TWI769796B (zh) 利用索引物件來進行簡易儲存服務無縫遷移的方法、主裝置以及儲存伺服器
US20220100403A1 (en) Systems for modular hybrid storage devices

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220708

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230509

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20231107