JP7210537B2 - 整合性グループにおける整合したポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成 - Google Patents

整合性グループにおける整合したポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成 Download PDF

Info

Publication number
JP7210537B2
JP7210537B2 JP2020503267A JP2020503267A JP7210537B2 JP 7210537 B2 JP7210537 B2 JP 7210537B2 JP 2020503267 A JP2020503267 A JP 2020503267A JP 2020503267 A JP2020503267 A JP 2020503267A JP 7210537 B2 JP7210537 B2 JP 7210537B2
Authority
JP
Japan
Prior art keywords
snapcopy
remote
local
time
state
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.)
Active
Application number
JP2020503267A
Other languages
English (en)
Other versions
JP2020528618A (ja
JP2020528618A5 (ja
Inventor
クロフォード、ジョシュア
フランシスコ、ネッドラヤ、ヤジー
マクブライド、グレゴリー
クレイトン、ニコラス、マーク
メルグレン、キャロル
ブラウン、テレサ、マリー
ウォード、マシュー
ジュニア、セオドア、ティモシー ハリス
トルヒーヨ、ダミアン
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2020528618A publication Critical patent/JP2020528618A/ja
Publication of JP2020528618A5 publication Critical patent/JP2020528618A5/ja
Application granted granted Critical
Publication of JP7210537B2 publication Critical patent/JP7210537B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2064Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring while ensuring consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2071Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
    • G06F11/2074Asynchronous techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、整合性グループ(consistency group)における整合したポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成のためのコンピュータ・プログラム製品、システム、及び方法に関する。
特に企業レベルにおけるデータ・ストレージ・システムは、通常、データ・ストレージ・システムのコンポーネントの故障の際にデータ損失のリスクを低減させるために、高レベルの冗長性をもたらすように設計される。従って、データの複数のコピーが、地理的に分散され得る複数のシステム上に格納されることが多い。従って、データ・ストレージ・システム内に格納されるホストからのデータは、通常、ローカル・サイトの一次システムに向けられ、次に、一次システムから地理的に離れたシステムとすることができる二次システムに複製される。
複製の、つまり、二次システムへデータをコピーするプロセスは、一次システムと二次システムとの間の同期又は非同期関係のいずれかに設定することができる。同期関係においては、通常、一次システムのあらゆる更新が二次システムと同期されてから、つまり、二次システムに成功裡にコピーされてから、一次システムは、データ・ストレージの入力/出力動作が成功裡に完了したことをホストに報告する。その結果、ホストが同期コピー操作の完了を待つ間、同期関係にある一次システム及び二次システムへのデータ格納が、ホストのシステム性能に悪影響を及ぼすことがある。一次システムと二次システムが遠く離れているストレージ・システムにおいては、同期コピー操作の完了の遅延がより大きくなることがあり、そのことが、ホストの性能にさらに悪影響を及ぼすことがある。例えば、一次システム及び二次システムが、例えば300キロメートル(Km)又はそれより多い地理的距離だけ離れているストレージ・システムにおいては、データが二次システムに成功裡に複製されるまでに、3~5秒の(又はそれより多い)遅延が生じ得る。
その結果、特に二次システムが一次システムから地理的に離れている場合、ストレージ・システムは、一次システムと二次システムとの間に非同期関係を用いることが多い。非同期関係において、一次システムの更新の成功は、通常、更新が二次システムに複製されるのを待つことなく、ストレージ入力/出力動作の成功としてホストに報告される。その結果、ホストは、二次システムへのデータ複製の完了を待つ必要がなく、それに応じて、ホスト・システムの性能が向上され得る。
その名が示すように、非同期関係において、一次システムと二次システムは、いずれの時点においても、完全に同期されることはない。従って、二次システム上に格納されたデータは、通常、一次システム内に格納されたものよりも遅れる。従って、一次システム上に格納された新しいデータは、例えば3~5秒といった期間、二次システム上に格納されないことがある。
データ複製システムにおいて、データは、通常、一次ストレージ・デバイス内の一次ボリュームと、一次ボリューム内に保持されるデータの同一コピーを含む、二次ストレージ・デバイス内の対応する二次ボリュームとを含むボリューム対(volume pair)に保持される。一次及び二次ボリュームは、ソース・ボリュームとも呼ばれる一次ボリュームのデータが、ターゲット・ボリュームとも呼ばれる二次ボリュームにコピーされるコピー関係により識別される。一次及び二次ストレージ・コントローラを用いて、一次及び二次ストレージ・デバイスへのアクセスを制御することができる。
例えば、IBM(登録商標)FlashCopy機能などのポイント・イン・タイム・スナップコピー機能を用いて、ボリュームのほぼ瞬間的なコピーを生成することができる。ポイント・イン・タイム・スナップコピー機能は、ポイント・イン・タイム・スナップコピー・ボリュームと呼ぶことができるターゲット・ボリューム内に、特定の時点(point-in-time)におけるソース・ボリュームの内容の「スナップショット」を作成する。ポイント・イン・タイム・スナップコピー機能の1つのバージョンは、バックグラウンド・コピー操作において、ソース・ボリュームの内容を、ポイント・イン・タイム・スナップコピー・ボリュームに転送する。
ポイント・イン・タイム・スナップコピー・ボリュームの各トラックについて1ビットを有するターゲット・ビットマップは、ポイント・イン・タイム・スナップコピー・ボリュームにまだ転送されていないトラックを示すために用いられる。ソース・ボリュームの各トラックの内容がターゲット・ボリュームにコピーされると、ターゲット・ビットマップの対応するビットが、関連したトラックに対する内容の成功裡の転送を示すように更新される(一般的には、リセットされる)。ソース・ボリュームの対応するトラックの内容をまだ受け取っていないポイント・イン・タイム・スナップコピー・ボリュームのトラックに向けられるあらゆる読み取り操作は、ソース・ボリュームからそのトラックの内容を取得するようにリダイレクトされる。従って、ポイント・イン・タイム・スナップコピー・ボリュームの内容は、あらゆるトラックがターゲット・ボリュームに実際に転送される前に、間接的ではあるが即座に利用可能となる。逆に、ホストが、そのトラックの内容がポイント・イン・タイム・スナップコピー・ボリュームに転送される前にソース・ボリュームのトラックの更新を指示する場合、ソース・ボリュームのトラックの内容がポイント・イン・タイム・スナップコピー・ボリュームに転送されてから、更新がソース・ボリュームのそのトラックの内容を上書きすることが許可される。
ポイント・イン・タイム・スナップコピー機能の別のバージョンは、バックグラウンド・コピー操作を省略する。従って、バックグラウンド・コピー操作において、ソース・ボリュームの内容は、ポイント・イン・タイム・スナップコピー・ボリュームに転送されない。従って、ポイント・イン・タイム・スナップコピー・ボリュームのトラックに向けられたあらゆる読み取り操作は、通常、ソース・ボリュームからそのトラックの内容を取得するようにリダイレクトされる。しかしながら、ホストがソース・ボリュームのトラックの更新を指示する場合、ソース・ボリュームのトラックの内容がポイント・イン・タイム・スナップコピー・ボリュームに転送されてから、更新がソース・ボリュームのそのトラックの内容を上書きすることが許可される。
同期データ複製システムにおいて、ポイント・イン・タイム・スナップコピー・ボリュームは、特定の時点での一次ボリュームの内容に対して一次システムにおける一次ボリュームから作成することができ、ポイント・イン・タイム・スナップコピー・ボリュームは、同じ時点での二次ボリュームの内容に対して二次システムにおける二次ボリュームから作成することができる。一次及び二次ボリュームは同期されるので、それぞれのポイント・イン・タイム・スナップコピー・ボリュームも同期され、従って、ポイント・イン・タイム・スナップコピー・ボリュームが異なる場所で、つまり、一次システム及び二次システムで作成されるにもかかわらず、互いに整合している。このように、1つはローカル及び1つはリモートの、スナップコピーの対を形成することができ、そこで、ローカル及びリモート・スナップコピーは互いに整合している。
非同期データ複製システムにおける二次システムの複数のボリュームにわたるデータの整合性の度合いを保持するために、IBM(登録商標)TotalStorageディスク・サブシステムのピア・ツー・ピア・リモート・コピー(Peer-to-Peer Remote Copy、PPRC)機能は、PPRC整合性グループの概念をサポートする。PPRC整合性グループ内に構成されるPPRC関係にあるボリュームが保持され、一次システムのボリュームに対して行われる更新のグループも、結果的に二次システムのボリュームに対して行われ、グループのそれらのボリュームに対するデータ整合性を保持することを保証する。従って、一次システムのボリュームと二次システムのボリュームの間に整合性グループを形成することができ、それらは、一次システムと二次システムの間の全体の非同期関係にもかかわらず、特定の更新セット又は特定の時点に対して整合している。
ローカル・ポイント・イン・タイム・スナップコピー・ボリュームは、特定の時点での一次ボリュームの内容に対する一次システムの一次ボリュームから作成することができる。同様に、リモート・ポイント・イン・タイム・スナップコピー・ボリュームは、特定の時点での二次ボリュームの内容に対する二次システムの二次ボリュームから作成することができる。しかしながら、非同期データ複製システムにおいては、一次及び二次ボリュームは同期されないので、二次ボリュームが一次ボリュームに対して整合性グループの一部である場合でも、それぞれローカル及びリモート・ポイント・イン・タイム・スナップコピー・ボリュームが互いに整合していないことがある。例えば、整合性グループのボリュームの形成を含む、ローカル及びリモート・スナップコピーの対を確立するためのコマンドが、互いに整合していないことがある。従って、一次システムにおける一次ボリュームのローカル・ポイント・イン・タイム・スナップコピー・ボリュームのリモート・バックアップ・コピーを与えるために、一般的に、一次システムにおいて生成されたポイント・イン・タイム・スナップコピー・ボリュームが、ネットワーク上で二次システムに転送される。
整合性グループにおける整合したポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成のためのコンピュータ・プログラム、システム、及び方法を提供する。
一態様によると、第1の位置のホスト及び一次ストレージ・システム並びに第1の位置とは離れた第2の位置の二次ストレージ・システムと共に用いられる一次ストレージ・コントローラであって、一次ストレージ・システムは、一次ストレージ・コントローラと一次ストレージ・コントローラにより制御されかつ複数のデータ・ユニットを格納するように構成された少なくとも1つのストレージ・ユニットとを有し、二次ストレージ・システムは、二次ストレージ・コントローラと二次ストレージ・コントローラにより制御されかつ複数のデータ・ユニットを格納するように構成された少なくとも1つのストレージ・ユニットとを有し、一次ストレージ・コントローラは、
一次ストレージ・システムのストレージ・ユニット内に格納された第1のデータ・ユニットから二次ストレージ・システムのストレージ・ユニット内に格納された第2のデータ・ユニットへデータを非同期ミラーリングし、かつ、一次ストレージ・システムのストレージ・ユニット内に格納された第3のデータ・ユニットから二次ストレージ・システムのストレージ・ユニット内に格納された第4のデータ・ユニットへデータを非同期ミラーリングするように構成されたデータ・ミラーリングロジックと、
一次ストレージ・システムのストレージ・ユニットに対する二次ストレージ・システムのストレージ・ユニットのデータ・ユニットの整合性グループを生成するように構成された整合性グループロジックと、
スナップコピー・ソースとしての第1のデータ・ユニットから、スナップコピー・ターゲットとしての第3のデータ・ユニットへの、一次ストレージ・システムにおけるローカル・ポイント・イン・タイム・スナップコピー関係と、スナップコピー・ソースとしての第2のデータ・ユニットから、スナップコピー・ターゲットとしての第4のデータ・ユニットへの、二次ストレージ・システムにおけるリモート・ポイント・イン・タイム・スナップコピー関係とを含むスナップコピー関係のローカル・リモート対を確立するためのローカル・リモート対確立コマンドを受け取り、ローカル・リモート対確立コマンドに応答して、スナップコピー関係のローカル・リモート対を開始するように構成されたスナップコピー生成ロジックとを含むデータ複製ロジックを含み、スナップコピー生成ロジックは、
ローカル・リモート対確立コマンドの受信時に整合性グループ形成プロセスの状態が複数の状態のうちの少なくとも1つであると判断するように構成された状態判断ロジックであって、前記複数の状態はアイドル状態(idle state)及びドレーン状態(draining state)を含み、アイドル状態は、第2及び第4のデータ・ユニットを含む整合性グループがアクティブに形成されていない場合に存在し、ドレーン状態は、第2及び第4のデータ・ユニットの少なくとも1つを含む整合性グループがアクティブに形成されている場合に存在する、状態判断ロジックと、整合性グループ形成プロセスの状態が、ローカル・リモート対確立コマンドの受信時にドレーン状態において第2及び第4のデータ・ユニットの少なくとも1つを含む整合性グループがアクティブに形成されているドレーン状態にあると判断される場合、リモート・ポイント・イン・タイム・スナップコピー関係の確立を遅延させるように構成された遅延ロジックとを含む。
別の態様によると、第1の位置の第1のストレージ・システムのストレージ・ユニット内に格納された第1のデータ・ユニットから、第2の位置の第2のストレージ・システムのストレージ・ユニット内に格納された第2のデータ・ユニットへデータを非同期ミラーリングすることと;第1の位置のストレージ・ユニット内に格納された第3のデータ・ユニットから、第2の位置のストレージ・ユニット内に格納された第4のデータ・ユニットへデータを非同期ミラーリングすることと;スナップコピー・ソースとしての第1データ・ユニットから、スナップコピー・ターゲットとしての第3のデータ・ユニットへの、一次ストレージ・システムにおけるローカル・ポイント・イン・タイム・スナップコピー関係と、スナップコピー・ソースとしての第2のデータ・ユニットから、スナップコピー・ターゲットとしての第4のデータ・ユニットへの、第2のストレージ・システムにおけるリモート・ポイント・イン・タイム・スナップコピー関係とを含むポイント・イン・タイム・スナップコピーのローカル・リモート対を確立するためのローカル・リモート対確立コマンドを受け取ることと;ローカル・リモート対確立コマンドに応答して、ポイント・イン・タイム・スナップコピー関係のローカル・リモート対を開始することであって、ローカル・リモート対確立コマンドの受信時に整合性グループ形成プロセスの状態が複数の状態のうちの少なくとも1つであると判断することであって、複数の状態はアイドル状態及びドレーン状態を含み、アイドル状態は、第2及び第4のデータ・ユニットを含む整合性グループがアクティブに形成されていない場合に存在し、ドレーン状態は、第2及び第4のデータ・ユニットの少なくとも1つを含む整合性グループがアクティブに形成されている場合に存在する、判断することと;整合性グループ形成プロセスの状態が、ローカル・リモート対確立コマンドの受信時にドレーン状態において第2及び第4のデータ・ユニットの少なくとも1つを含む整合性グループがアクティブに形成されているドレーン状態にあると判断される場合、リモート・ポイント・イン・タイム・スナップコピー関係の確立を遅延させることとを含む、開始することとを含む、方法が提供される。
別の態様によると、第1の位置のホスト及び一次ストレージ・システム並びに第1の位置とは離れた第2の位置の二次ストレージ・システムと共に用いられるコンピュータ・プログラム製品であって、一次ストレージ・システムは、一次ストレージ・コントローラと一次ストレージ・コントローラにより制御されかつ複数のデータ・ユニットを格納するように構成された少なくとも1つのストレージ・ユニットとを有し、二次ストレージ・システムは、二次ストレージ・コントローラと二次ストレージ・コントローラにより制御されかつ複数のデータ・ユニットを格納するように構成された少なくとも1つのストレージ・ユニットとを有するコンピュータ・プログラム製品が提供され、このコンピュータ・プログラム製品は、プロセッサの動作をもたらすための、ストレージ・システムのプロセッサにより実行可能なプログラム命令がそこに具体化されたコンピュータ可読ストレージ媒体を含み、プロセッサの動作は、第1の位置の第1のストレージ・システムのストレージ・ユニット内に格納された第1のデータ・ユニットから、第2の位置の第2のストレージ・システムのストレージ・ユニット内に格納された第2のデータ・ユニットへデータを非同期ミラーリングすることと;第1の位置のストレージ・ユニット内に格納された第3のデータ・ユニットから、第2の位置のストレージ・ユニット内に格納された第4のデータ・ユニットへデータを非同期ミラーリングすることと;スナップコピー・ソースとしての第1のデータ・ユニットからスナップコピー・ターゲットとしての第3のデータ・ユニットへの、一次ストレージ・システムにおけるローカル・ポイント・イン・タイム・スナップコピー関係と、スナップコピー・ソースとしての第2のデータ・ユニットからスナップコピー・ターゲットとしての第4のデータ・ユニットへの、第2のストレージ・システムにおけるリモート・ポイント・イン・タイム・スナップコピー関係とを含むポイント・イン・タイム・スナップコピーのローカル・リモート対を確立するためのローカル・リモート対確立コマンドを受け取ることと;ローカル・リモート対確立コマンドに応答して、ポイント・イン・タイム・スナップコピー関係のローカル・リモート対を開始することであって、ローカル・リモート対確立コマンドの受信時に整合性グループ形成プロセスの状態が複数の状態のうちの少なくとも1つであると判断することであって、複数の状態はアイドル状態及びドレーン状態を含み、アイドル状態は、第2及び第4のデータ・ユニットを含む整合性グループがアクティブに形成されていない場合に存在し、ドレーン状態は、第2及び第4のデータ・ユニットの少なくとも1つを含む整合性グループがアクティブに形成されている場合に存在する、判断することと;整合性グループ形成プロセスの状態が、ローカル・リモート対確立コマンドの受信時にドレーン状態において第2及び第4のデータ・ユニットの少なくとも1つを含む整合性グループがアクティブに形成されているドレーン状態にあると判断される場合、リモート・ポイント・イン・タイム・スナップコピー関係の確立を遅延させることを含む、開始することとを含む。
本説明による整合性グループにおける整合したポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成の1つの一般的な実施形態は、ローカル・データ・ストレージ・システムにおけるローカル・ポイント・イン・タイム・スナップコピー及びリモート・データ・ストレージ・システムにおけるリモート・ポイント・イン・タイム・スナップコピーを確立するためのローカル・リモート対ポイント・イン・タイム・スナップコピーを受け取ることに向けられる。一実施形態において、ローカル・リモート対確立ポイント・イン・タイム・スナップコピー確立コマンドの受信時に整合性グループ形成プロセスの状態の関数として、リモート・ポイント・イン・タイム・スナップコピー関係の確立を遅延させることができる。その結果、ローカル・ストレージ・システムとリモート・ストレージ・システムとの間の非同期関係にもかかわらず、ポイント・イン・タイム・スナップコピーのローカル・リモート対の整合性を実現することができる。
一実施形態において、動作は、第1の位置の第1のストレージ・システムのストレージ・ユニット内に格納された第1のデータ・ユニットから、第2の位置の第2のストレージ・システムのストレージ・ユニット内に格納された第2のデータ・ユニットへデータを非同期ミラーリングすることと、第1の位置のストレージ・ユニット内に格納された第3のデータ・ユニットから、第2の位置のストレージ・ユニット内に格納された第4のデータ・ユニットへデータを非同期ミラーリングすることと、スナップコピー・ソースとしての第1のデータ・ユニットから、スナップコピー・ターゲットとしての第3のデータ・ユニットへの、一次ストレージ・システムにおけるローカル・ポイント・イン・タイム・スナップコピー関係と、スナップコピー・ソースとしての第2のデータ・ユニットから、スナップコピー・ターゲットとしての第4のデータ・ユニットへの、第2のストレージ・システムにおけるリモート・ポイント・イン・タイム・スナップコピー関係とを含むポイント・イン・タイム・スナップコピーのローカル・リモート対を確立するためのコマンドを受け取ることとを含む。
一実施形態において、動作は、ポイント・イン・タイム・スナップコピー関係のローカル・リモート対を開始するコマンドに応答して、コマンドの受信時に整合性グループ形成プロセスの状態を判断することであって、複数の状態はアイドル状態及びドレーン状態を含み、アイドル状態は、第2及び第4のデータ・ユニットを含む整合性グループがアクティブに形成していない場合に存在し、ドレーン状態は、第2及び第4のデータ・ユニットを含む整合性グループがアクティブに形成している場合に存在する、判断することと;整合性グループ形成プロセスの状態が、コマンドの受信時にドレーン状態において第2及び第4のデータ・ユニットを含む整合性グループがアクティブに形成されているドレーン状態にあると判断される場合、リモート・ポイント・イン・タイム・スナップコピー関係の確立を遅延させることとを含む。一実施形態において、複数の状態は、ドレーン状態の完了に続くインクリメント完了状態(increment complete state)をさらに含み、整合性グループ形成プロセスの状態が、コマンドを受け取ったドレーン状態に続くインクリメント完了状態にあると判断される場合、リモート・ポイント・イン・タイム・スナップコピー関係の確立の遅延が終了される。
一実施形態において、ポイント・イン・タイム・スナップコピー関係のローカル・リモート対を開始することは、整合性グループ形成プロセスの状態とは無関係に、ローカル・ポイント・イン・タイム・スナップコピー関係を確立することをさらに含む。従って、一実施形態において、著しい遅延なしに、ローカル・ポイント・イン・タイム・スナップコピー関係を確立することができる。
別の実施形態によると、ポイント・イン・タイム・スナップコピー関係のローカル・リモート対を開始することは、後のリモート・ポイント・イン・タイム・スナップコピー関係の確立のために第2のストレージ・システムのリソースを予約することを含む。さらに、ポイント・イン・タイム・スナップコピー関係のローカル・リモート対を開始することは、整合性グループ形成プロセスの状態が、ローカル・リモート対確立コマンドを受け取ったドレーン状態に続くインクリメント完了状態にあると判断された場合、後のリモート・ポイント・イン・タイム・スナップコピー関係の確立のために予約された第2のストレージ・システムのリソースを用いて、リモート・ポイント・イン・タイム・スナップコピー関係を確立することをさらに含む。別の態様において、整合性グループ形成プロセスの状態が、コマンドを受け取ったアイドル状態にあると判断された場合、後のリモート・ポイント・イン・タイム・スナップコピー関係の確立のために予約された第2のストレージ・システムのリソースを用いて、リモート・ポイント・イン・タイム・スナップコピー関係を確立することを含む。
更に別の実施形態において、ポイント・イン・タイム・スナップコピー関係のローカル・リモート対を開始することは、ローカル・リモート対確立コマンドの受信時に整合性グループ形成プロセスの状態の関数としてスナップコピー・シーケンス番号を判断すること、及び後のリモート・ポイント・イン・タイム・スナップコピー関係の確立のために予約するリソースを判断したスナップコピー・シーケンス番号と関連付けることをさらに含む。さらに、ポイント・イン・タイム・スナップコピー関係のローカル・リモート対を開始することは、リモート・ポイント・イン・タイム・スナップコピー関係を判断したスナップコピー・シーケンス番号と関連付けることをさらに含む。
一実施形態において、第1のデータ・ユニットは第1のボリュームであり、前記第2のデータ・ユニットは第2のボリュームである。
説明される技術の実装形態は、ハードウェア、方法又はプロセス、又はコンピュータ・アクセス可能媒体上のコンピュータ・ソフトウェアを含むことができる。特定の用途に応じて、他の特徴及び態様を実現することもできる。
ここで添付図面を参照して、本発明の実施形態を単なる例として説明する。
本説明の一実施形態による、整合性グループにおける整合したポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成を用いるコンピューティング環境を示す。 本説明の一実施形態による、整合性グループにおける整合したポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成を用いる、一次システム及び二次システムを有するストレージ・システムの例を示す。 図1のストレージ・システムにおけるホストの例を示す。 本説明の一実施形態によるデータ複製ロジックを示す。 図4のデータ複製ロジックの動作と関連したボリューム、関係、及びデータ構造の例を示す。 図4のデータ複製ロジックの動作と関連したボリューム、関係、及びデータ構造の例を示す。 図4のデータ複製ロジックの動作と関連したボリューム、関係、及びデータ構造の例を示す。 図4のデータ複製ロジックの遅延ロジックの動作のタイムライン例を示す。 図4のデータ複製ロジックの動作の別の例を示す。 本説明による、整合性グループにおける整合したポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成を用いるコンピュータ実施形態を示す。
動作において、整合性グループにおける整合したポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成のための動作を実行させる又はシステムに実行させる、システム上にインストールされたソフトウェア、ファームウェア、ハードウェア、又はそれらの組み合わせによって、本説明による整合性グループにおける整合したポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成のための、1つ又は複数のコンピュータのシステムを構成することができる。例えば、データ処理装置により実行されるとき、装置にアクションを実行させる命令を含むことにより、整合性グループにおける整合したポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成を実行するように、1つ又は複数のコンピュータ・プログラムを構成することができる。
前述のように、非同期データ複製システムにおいて、ポイント・イン・タイム・スナップコピー・ボリュームは、特定の時点での一次ボリュームの内容に対する一次システムの一次ボリュームから作成することができる。同様に、ポイント・イン・タイム・スナップコピー・ボリュームは、特定の時点での二次ボリュームの内容に対する二次システムの二次ボリュームから作成することができる。しかしながら、一次ボリュームと二次ボリュームは、非同期ミラー関係において完全に同期されないことが多いので、それぞれのポイント・イン・タイム・スナップコピー・ボリュームを同期させることはできず、従って、互いに整合していないことがある。従って、一次システムの一次ボリュームのポイント・イン・タイム・スナップコピー・ボリュームのバックアップコピーを提供しかつバックアップコピーを二次システムに格納するために、以前に一次システムにおいて生成されたポイント・イン・タイム・スナップコピー・ボリュームが、ネットワーク上で二次システムに転送された。
本説明の一実施形態によると、多くの用途において、非同期ミラー関係のために、二次システムにおいてポイント・イン・タイム・スナップコピー・ボリュームを形成するためのデータの大部分は、既に二次システム上に存在している。従って、本説明の一実施形態による整合した第1及び第2のポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成は、異なるサイトに配置された整合した第1及び第2のポイント・イン・タイム・スナップコピーの作成の際に、ネットワーク上でのデータの転送の多くを不要にすることができる。
本説明による整合性グループにおける整合したポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成の1つの一般的な実施形態が、ローカル・データ・ストレージ・システムにおけるローカル・ポイント・イン・タイム・スナップコピー及びリモート・データ・ストレージ・システムにおけるリモート・ポイント・イン・タイム・スナップコピーを確立するためのローカル・リモート対のポイント・イン・タイム・スナップコピー確立コマンドを受け取ることに向けられる。一実施形態において、ローカル・リモート対ポイント・イン・タイム・スナップコピー確立コマンドの受信時に整合性グループ形成プロセスの状態の関数として、リモート・ポイント・イン・タイム・スナップコピー関係の確立を遅延させることができる。その結果、ローカル・ストレージ・システムとリモート・ストレージ・システムとの間の非同期関係にもかかわらず、ポイント・イン・タイム・スナップコピーのローカル・リモート対の整合性を実現することができる。
一実施形態において、動作は、ローカル・リモート・スナップコピー対コマンドの受信時に整合性グループ形成プロセスの状態が複数の状態のうちの少なくとも1つであると判断することを含み、複数の状態は、コマンドのユニットを含む整合性グループがアクティブに形成されていないアイドル状態と、コマンドのユニットを含む整合性グループがアクティブに形成されているドレーン状態とを含む。一実施形態において、整合性グループ形成プロセスの状態が、以前の整合性グループを完了したアイドル状態にあると判断される場合、ローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係の確立は遅延されない。
完了した整合性グループにおいて、二次ストレージのボリュームは、一次ストレージのボリュームに対して整合している。従って、二次ボリュームのリモート・スナップコピーは、一次ボリュームのローカル・スナップコピーと整合することになる。
逆に、整合性グループ形成プロセスの状態が、整合性グループの形成がまだ完了していないドレーン状態にあると判断される場合、ローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピーの確立は遅延される。一実施形態において、複数の状態は、ドレーン状態の完了に続くインクリメント完了状態(アイドル状態とも呼ばれる)をさらに含み、整合性グループ形成プロセスの状態が、コマンドを受け取ったドレーン状態に続くインクリメント完了状態にあると後で判断された場合、リモート・ポイント・イン・タイム・コピー関係の確立の遅延が終了する。上述のように、完了した整合性グループにおいて、二次ストレージのボリュームは、一次ストレージのボリュームに対して整合している。従って、二次ボリュームのリモート・スナップコピーは、一次ボリュームのローカル・スナップコピーと整合している。
別の実施形態において、ポイント・イン・タイム・スナップコピー関係のローカル・リモート対を開始することは、後のリモート・ポイント・イン・タイム・スナップコピー関係の確立のために第2のストレージ・システムのリソースを予約することを含む。加えて、ポイント・イン・タイム・スナップコピー関係のローカル・リモート対を開始することは、整合性グループ形成プロセスの状態が、コマンドを受け取ったドレーン状態に続くインクリメント完了状態にあると判断された場合、後のリモート・ポイント・イン・タイム・スナップコピー関係の確立のために予約された第2のストレージ・システムのリソースを用いて、リモート・ポイント・イン・タイム・スナップコピー関係を確立することをさらに含む。別の実施形態において、ポイント・イン・タイム・スナップコピー関係のローカル・リモート対を開始することは、ローカル・リモート対確立コマンドを受け取ったとき、整合性グループ形成プロセスの状態がアイドル状態にあると判断された場合、後のリモート・ポイント・イン・タイム・スナップコピー関係の確立のために予約された第2のストレージ・システムのリソースを用いて、リモート・ポイント・イン・タイム・スナップコピー関係を確立することをさらに含む。
一実施形態において、ポイント・イン・タイム・スナップコピー関係のローカル・リモート対を開始することは、整合性グループ形成プロセスの状態とは無関係に、ローカル・ポイント・イン・タイム・スナップコピー関係を確立することをさらに含む。従って、幾つかの実施形態において、ローカル・スナップコピー関係は、整合性グループ形成プロセスの状態とは無関係に、著しい遅延なしに確立することができる。特定の用途に応じて、他の態様及び利点を実現することができる。
1つ又は複数のコンピュータのシステムは、動作において、整合性グループ動作における整合したポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成を実行させる又はシステムに実行させる、システム上にインストールされたソフトウェア、ファームウェア、ハードウェア、又はそれらの組み合わせによって、本説明による整合性グループにおける整合したポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成用に構成することができる。従って、本明細書で説明される動作は、手動で実行されるとして示される場合を除き、システム・オペレータの介入がほとんどなしに又はオペレータの介入なしに、自動的に又は実質的に自動的に動作を行うように構成されるロジックにより実行される。従って、本明細書で使用される場合、「自動的」という用語は、完全に自動的であることを含み、つまり、グラフィカル・ユーザ選択インターフェースへのユーザ入力のような、人間の介入がない1つ又は複数のハードウェア又はソフトウェア制御マシンにより実行される動作である。本明細書で使用される場合、「自動的」という用語は、主として自動的であること、つまり、動作の大部分(例えば、50%を超える)が、グラフィカル・ユーザ選択インターフェースへのユーザ入力のような人間の介入のない1つ又は複数のハードウェア又はソフトウェア制御マシンにより実行され、動作の残り(例えば、50%未満)が手動で実行される、つまり、動作の性能を導くために、グラフィカル・ユーザ選択インターフェースへのユーザ入力のような人間の介入を用いて1つ又は複数のハードウェアまたソフトウェア制御マシンにより実行されることをさらに含む。
本明細書で説明される機能要素の多くは、その実装の独立性をより具体的に強調するために、「ロジック」として表記されている。例えば、ロジック要素は、カスタムVLSI回路又はゲートアレイ、ロジックチップ、トランジスタなどの市販の半導体、又は他の個別部品を含むハードウェア回路として実装することができる。ロジック要素は、フィールド・プログラマブル・ゲートアレイ、プログラマブル・アレイロジック、プログラマブルロジックデバイス等のようなプログラマブル・ハードウェア・デバイスで実装することもできる。
ロジック要素は、種々のタイプのプロセッサによる実行のためにソフトウェアで実装することもできる。実行可能コードを含むロジック要素は、例えば、オブジェクト、手順、又は機能として編成できるコンピュータ命令の1つ又は複数の物理若しくはロジックブロックを含むことができる。それにもかかわらず、識別されたロジック要素の実行ファイルは、物理的に一緒に配置する必要はなく、異なる位置に格納された異なる命令を含むことができ、それらは、互いにロジック的に結合されたとき、ロジック要素を含み、ロジック要素のための規定の目的を達成する。
実際には、ロジック要素のための実行可能コードは、単一の命令、又は多数の命令とすることができ、幾つかの異なるコード・セグメントにわたって、異なるプログラム間で、異なるプロセッサ間で、及び幾つかのメモリ・デバイスにわたって分布させることさえ可能である。同様に、動作データは、ロジック要素内で本明細書において識別し、示すことができ、任意の適切な形態で具体化し、任意の適切なタイプのデータ構造内に編成することができる。動作データは、単一のデータ・セットとして収集することができ、又は異なるストレージ・デバイス上を含む異なる位置上に分布させることができる。
示される実施形態において、コピー関係は、一次ストレージ位置のようなソース・ストレージ位置、及び二次ストレージ位置のようなターゲット・ストレージ位置を識別し、ソース・ストレージ位置に格納されたデータは、ターゲット・ストレージ位置に複製されるか、又は他の方法でコピーされる。従って、本明細書で使用される場合、ソース・ストレージ位置及びターゲット・ストレージ位置は、コピー関係により関連付けられるストレージ位置である。
さらに、本明細書で使用される場合、「ストレージ・ユニット」という用語は、1つ又は複数のボリューム、シリンダ、トラック、セグメント、範囲、若しくはそのいずれかの部分、又は転送に適した他のデータ・ユニット(単数又は複数)などのデータ・ストレージの1つ又は複数のユニットを含むストレージ位置を指す。従って、ソース・ストレージ・ユニット及び関連したターゲット・ストレージ・ユニットはそれぞれ、ストレージ・ボリュームとすることができる。しかしながら、ソース・ストレージ・ユニット及びターゲット・ストレージ・ユニットはそれぞれ、例えば、ボリューム以外のサイズのものであってもよいことが理解される。
説明される技術の実装形態として、ハードウェア、方法若しくはプロセス、又はコンピュータ・アクセス可能媒体上のコンピュータ・ソフトウェアを挙げることができる。図1は、本説明による整合性グループにおける整合したポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成を用いるコンピューティング環境の実施形態を示す。複数のホスト2a、2b、...2nは、1つ又は複数のストレージ・ドライブ10、10a(図2)、10b(図2)により表されるストレージ内のボリューム8(例えば、ロジックユニット数、ロジックデバイス、ロジックサブシステム等)におけるデータにアクセスするために、ネットワーク6上で、入力/出力(I/O)要求を1つ又は複数のストレージ・コントローラ又はストレージ制御ユニット4、4a(図2)、4b(図2)にサブミットすることができる。各ストレージ・コントローラ4、4a、4bは、各々が単一又は複数のプロセッサ・コアを有する1つ又は複数のプロセッサ又は中央処理ユニットを含む、CPUコンプレックス12(図1)を含む。この実施形態において、プロセッサ・コアは、例えば、演算ロジックユニット(ALU)、浮動小数点ユニット(FPU)、及び/又は種々のレベルのキャッシュ(L1及びL2キャッシュなど)のような、命令の実行に関与するCPUのコンポーネントを含む。プロセッサ・コアは、本明細書に記載されるものに加えて又はその代わりに他のロジック要素を有し得ることが理解される。
図2に示される構成において、ストレージ・コントローラ4a及びデータ・ストレージ10aは、それぞれ、一次システム24aの一次ストレージ制御ユニット及び一次ストレージとして構成されている。同様に、ストレージ・コントローラ4b及びそのデータ・ストレージ10bは、それぞれ、二次システム24bの二次ストレージ制御ユニット及び二次ストレージとして構成されている。従って、図2に示される構成において、ストレージ・コントローラ4aは、一次ストレージ・コントローラ又は制御ユニット4aと呼ばれ、データ・ストレージ10aは、一次ストレージ10aと呼ばれる。同様に、ストレージ・コントローラ又は制御ユニット4bは、二次ストレージ・コントローラ又は制御ユニット4bと呼ばれ、データ・ストレージ10bは、二次データ・ストレージ10bと呼ばれる。
特定のコピー関係において、ソース・ユニットは、一次と呼ばれることが多く、ターゲット・ユニットは、二次と呼ばれることが多い。複製関係は、データ・ストレージ10a及び10bのストレージ・ユニット間に定められる。「一次」としてのデータ・ストレージ10a及び「二次」としてのデータ・ストレージ10bへの言及にもかかわらず、データ・ストレージ10a及びデータ・ストレージ10bの特定のストレージ・ユニットは、特定のコピー関係に応じて、一次(すなわちソースの役割)及び二次(すなわちターゲットの役割)の両方の役割を果たすことができる。
上述のように、コンピューティング環境は、一次ストレージ10aに格納するために、更新を一次ストレージ・コントローラ4a(図2)に書き込む1つ又は複数のホスト2a、2b、...2nを含む。この実施形態においてホスト2aのような少なくとも1つのそうしたホストは、一次ストレージ・コントローラ4a(図2)及びその関連したデータ・ストレージ10aの可用性の故障を監視するための監視プログラム216(図3)を含むストレージ管理機能を有する。幾つかの実施形態において、監視プログラム216は、ホストから離れたデバイスにおいて動作することができる。
一次ストレージ・コントローラ4aは、第1のサイトに配置され、二次ストレージ・コントローラ4bは、第1のサイトから地理的に又は機能的に遠く離れた第2のサイトに配置される。従って、この例では、第1のサイトはローカル・サイトにあり、第2のサイトは、ローカル・サイトから短い又は長い地理的距離だけ互いに分離される地理的に遠いサイトにあるものとすることができる。代替的に、ローカル・サイト及びリモート・サイトは、ネットワーク6の、同じ一般的な地理的位置の異なる建物内、同じ建物の異なる部屋内、同じ部屋の異なるマシン内、又は同じマシンの異なる部分若しくは区分内のように、比較的近接していてもよい。
ホスト2a(図3)により表される典型的なホストは、オペレーティング・システム218と、ストレージ・コントローラ4a、4bを介して、一次ストレージ10a又は二次ストレージ10bからデータを読み取り、これに更新を書き込むアプリケーション220とを含む。幾つかの実施形態において、監視プログラム216を含むホストは、更新書き込みアプリケーション220を省略することができる。
図1、図2及び図4を参照すると、ストレージ・コントローラ4(図1)、4a(図2)、4bはそれぞれ、一次システム24aの一次ボリューム1から二次システム24bにおける二次ボリューム2へのデータ複製操作を含むストレージ操作を管理するためのストレージ・マネージャ232を含むメモリ230(図1)を有する。ストレージ・マネージャ232のデータ複製ロジック234は、一次システムの一次ボリューム1のポイント・イン・タイム・スナップコピーなどの整合したコピーを生成するように構成される。ボリュームの対、すなわちボリューム1、ボリューム2は、非対称コピー関係にあり、一次ボリューム1の更新が、二次ボリューム2に非同期ミラーリングされる。本説明の一実施形態において、非同期関係にもかかわらず、第1のローカル・ポイント・イン・タイム・スナップコピーは、一次ボリューム1から作成することができ、第2のリモート・ポイント・イン・タイム・スナップコピーは、特定の時点でのローカル・ポイント・イン・タイム・スナップコピーと整合するように作成することができる。
示される実施形態において、データ複製ロジック234を含むストレージ・マネージャ232は、メモリ230内に格納されたソフトウェアとして示され、CPUコンプレックス12により実行される。しかしながら、ストレージ・マネージャ232のロジック機能は、特定の用途に応じて、ハードウェア、ソフトウェア、又はその1つ又は複数の組み合わせとして実装できることが理解される。
1つ又は複数のコピー関係240は、一次及び二次ストレージ・コントローラ4a、4b(図2)に対するデータ複製ロジック234により保持することができ、一次ストレージ10a内の一次ストレージ位置と二次ストレージ10b内の対応する二次ストレージ位置を関連付けるので、一次ストレージ10aの位置の更新が、対応する二次ストレージ10bの位置にコピーされる。例えば、ストレージ10aの一次ストレージ・ボリューム1(図2)内のソース・ストレージ位置を、ミラーコピー関係240(図1)に従って、ミラー・データ複製操作で、ストレージ10bの二次ボリューム2のターゲット・ストレージ位置にミラーリングすることができる。
示される実施形態において、コピー関係240は、ストレージ位置の対に対するピア・ツー・ピア・ミラー関係を含み、そこでは、ミラー関係240の一次(ソース)ストレージ位置の更新が、ミラー関係240の二次(ターゲット)ストレージ位置にミラーリングされる。特定の用途に応じて、他のタイプのミラー関係を確立できることが理解される。例えば、コピー関係240は、ポイント・イン・タイム・スナップコピー関係を含むことができる。
データ複製ロジック234の非同期データ複製モードにおけるコピー関係240に関連して、一次ストレージ10aの一次ストレージ位置の更新は、示される実施形態におけるアウト・オブ・シンク(out-of-sync、OOS)ビットマップであるビットマップ244のセットのビットマップ内に示され得る。ストレージ・マネージャ232がOOSビット内に示される更新を、二次ストレージ制御ユニット4bの二次ストレージ10bの対応するストレージ位置にコピーすると、OOSビットマップのビットは消去される。
ストレージ・マネージャ232は、一次ストレージ10aの更新にアクセスし、ストレージ10b内の対応するストレージ位置に書き込む。幾つかの実施形態において、コピー(copying)及び関係機能は、例えば、ホストなど、ストレージ・システム24a、24b(図2)の外部のデバイスにより実行することができる。示される実施形態において、関係240の1つのコピー関係は、一次ストレージ10aの各書き込み更新が、二次ストレージ10bにわたってミラーリングされるミラーリング・プロセスである。示される実施形態の非同期モードにおいては、I/O動作は、ホスト開始動作に関する限り、一次ストレージ10aの更新の書き込み成功時に完了すると考えられる。従って、更新がまだ二次ストレージ10bにミラーリングされていなかったとしても、I/O動作が成功裡に完了したことを、ホストに通知することができる。
周期的に、一次システムにおいてボリュームに行われる更新のグループが、整合性グループのボリュームに対しても最終的に行われ、特定の時点でのデータ整合性又はグループのそれらのボリュームに対する特定のデータ・セットを保持するように、データ複製ロジック234により、関係240のボリュームを整合性グループ内に構成することができる。従って、OOSビットマップの付加的な更新を特定の時点で停止し、特定の時点での一次システムのボリュームに対する二次システムのボリュームの整合性グループを形成することができる。OOSビットマップにより示されるあらゆる未処理の更新が二次ストレージに転送されるので、もはや更新がOOSビットマップに付加されなくなった時点で、整合性グループのボリュームは整合している。
OOSビットマップにより示されるインクリメンタル更新が二次ストレージにコピーされ、OOSビットマップがこうした転送を示すように更新される(ビット・リセット)整合性グループ形成プロセスの時間間隔は、OOSビットマップの「ドレーン(draining)」と言う。変更記録(Change Recording )ビットマップと呼ばれる第2のビットマップは、整合性グループ・ドレーン時間の間に更新(変更)されたソース・ボリュームのトラックの記録を保持する。整合性グループが完了すると、整合性グループのOOSビットマップは、全てゼロとなり、変更記録ビットマップは、次の整合性グループに対して遅れていた更新トラックを示す。このとき、変更記録ビットマップは、ミラー関係のためのOOSビットマップになり、これらの更新トラックは、次の整合性グループが形成されるまでに生じる他のあらゆる更新とともに、リモート・ボリュームにミラーリングされる。次の整合性グループが形成されるまでのドレーン期間に続く期間は、整合性グループ形成に対するアイドル期間と呼ばれる。
非同期モードとは対照的に、同期モードにおいて、一次ストレージ10aへの書き込み操作を行ったI/O操作は、ミラー操作が完了するまで完了していない、つまり、更新データが二次ストレージ10bに成功裡に複製されるまで完了していないと考えられる。ミラー操作が失敗し、更新がストレージ10bに成功裡にミラーリングされなかった場合、更新操作が成功裡に完了しなかったことが、ホストに通知され得る。
一実施形態において、ストレージ・マネージャ232は、トラックにおいて一次ストレージ10aから二次ストレージ10bにデータを転送することができる。本明細書で使用される場合、トラックという用語は、ディスク・ストレージ・ユニットのトラックを指すことができるが、ボリューム、ロジックデバイス等などのデータ・ユニットのより大きいグループ分けの一部とすることができる、ビット、バイト、ワード、セグメント、ページ、ブロック(ロジックブロック・アドレス(LBA))等のような、ストレージ10a、10bにおいて構成された他のデータ・ユニットを言うこともできる。
一実施形態において、ストレージ・デバイス10a、10bは、ハードディスク・ドライブ及び磁気テープなどの1つ又は複数のシーケンシャル・アクセス・ストレージ・デバイスから構成することができ、又は、例えば、ソリッド・ステート・ドライブ(SSD)などの非シーケンシャル・アクセス・ストレージ・デバイスを含むことができる。各ストレージ・デバイス10a、10bは、単一のシーケンシャル又は非シーケンシャル・アクセス・ストレージ・デバイスを含むことができ、又は単純ディスク束(Just a Bunch of Disks、JBOD)、ダイレクト・アクセス・ストレージ・デバイス(DASD)、Redundant Array of Independent Disks(RAID)アレイ、仮想化デバイス、テープ・ストレージ、フラッシュ・メモリ等のような、ストレージ・デバイスのアレイを含むことができる。
コピー関係を管理するデータ複製ロジック234の1つのモードは、本説明に従って必要に応じて修正されるピア・ツー・ピア・リモート・コピー(PPRC)プログラムのような非同期コピー操作により実施することができる。PPRCプログラムの1つの例は、一次ストレージ10aから二次ストレージ10bへの更新の切り替えを可能にする複製コピー・プログラムのためのIBM Tivoli Productivity Centerである。適切な非同期ミラーリング・プログラムとして、本説明に従って必要に応じて修正されるXRC(又はzGM)が挙げられる。説明される操作は、本説明に従って必要に応じて修正される他のコピー・プログラム又は他のグローバル回復プログラムのような他のプログラムにより実施することができる。
システム・コンポーネント2a、2b、...2n、4、4a、4b、10、10a、10bは、これらのコンポーネントの間の通信を可能にするネットワーク6に接続される。従って、ネットワーク6は、ストレージ・エリア・ネットワーク(SAN)、ローカル・エリア・ネットワーク(LAN)、イントラネット、インターネット、広域ネットワーク(WAN)、ピア・ツー・ピア・ネットワーク、無線ネットワーク、アービトレート型ループ・ネットワーク(arbitrated loop network)等を含み得るファブリックを含む。ストレージ・サブシステムからホスト2a、2b、...2nへの通信経路は、例えば、Fibre Connection(FICON)などの特定のホスト・アタッチメント・プロトコルに基づき得る。ファブリックの他の通信経路は、例えば、ファイバ・チャネル・アービトレート型ループ構成、シリアル・ループ・アーキテクチャ、又はPCI-ExpressインターフェースなどのPeripheral Component Interconnect(PCI)インターフェースのようなバス・インターフェースを含むことができる。ファブリックの通信経路は、例えば、イーサネット・ネットワークの一部とすることもでき、各ノードは、個々のネットワーク(インターネット・プロトコル)アドレスを有する。特定の用途に応じて、モデム電話経路(modem telephone path)、無線ネットワーク等のような他のタイプの通信経路を用いることもできる。
通信経路と関連付けられた通信ソフトウェアは、通信プロトコル、及びもしあれば、通信プロトコルに従った通信ハードウェアの動作を制御する命令及び他のソフトウェアを含む。特定の用途に応じて、他の通信経路プロトコルを利用できることが理解される。
図4は、一次ストレージ・コントローラ4a(図2)のストレージ・マネージャ232(図1)のデータ複製ロジック234の一実施形態を示す。二次ストレージ・システムの二次ストレージ・コントローラ4b(図2)は、類似したストレージ・マネージャ232及びデータ複製ロジック234を含むことができる。
この実施形態において、データ複製ロジック234は、例えば一次ストレージ10a(図2)のような第1のストレージ・ユニットの、例えば代表的トラック、トラック1~トラック3を有する一次ボリューム1(図5)などの第1のデータ・ユニットから、例えば二次ストレージ10bのような第2のストレージ・ユニットの、例えば代表的トラック、トラック1~トラック3を有する第2のボリューム2(図5)などの第2のデータ・ユニットまで、データを非同期ミラーリングするように構成された非同期データ・ミラーリングロジック310を含む。図5~図7の例において、一次ボリューム1から二次ボリューム2へのデータの非同期ミラーリングは、「ミラー関係1」と表記された矢印で表される。一次ボリューム1から二次ボリューム2へのデータのミラーリングにおけるデータ複製ロジック234のデータ・ミラーリングロジック310は、一次ボリューム1から二次ボリューム2にミラーリングされる残りのトラックを示す代表的ビット、ビット1~ビット3を有するビットマップ244a(図4)のリモート・アウト・オブ・シンク(OOS)ビットマップ1を生成するようにさらに構成される。
図5、図8の例において、ボリューム1及びボリューム2は、整合性グループロジック311により整合性グループCG0内に構成され、一次システムにおけるボリューム1に対して行われた更新のグループが、最終的に、整合性グループCG0のボリューム2に対しても行われ、特定の時点又はグループのそれらのボリュームに対する特定のデータ・セットでのデータ整合性を維持する。従って、OOSビットマップ1の付加的な更新を特定の時点で停止し、特定の時点での一次システムのボリューム1に対する二次システムのボリューム2の整合性グループCG0を形成することができる。OOSビットマップ1により示されるようなあらゆる未処理の更新が二次ストレージに転送されるので、もはや更新がOOSビットマップ1に付加されなくなった時点で、整合性グループのボリューム2は整合している。
一次ボリューム1’から二次ボリューム2’へのデータの非同期ミラーリングは、「ミラー関係1’」と表記された矢印により表される。一次ボリューム1’から二次ボリューム2’へのデータのミラーリングにおいて、データ複製ロジック234のデータ・ミラーリングロジック310は、一次ボリューム1’から二次ボリューム2’へミラーリングされる残りのトラックを示す代表的ビット、ビット1~ビット3を有するビットマップ244a(図4)のリモート・アウト・オブ・シンク(OOS)ビットマップ1’を生成するようにさらに構成される。
図8は、整合性グループのシーケンス番号CG0、CG1、CG2...により示されるような種々の整合性グループのシーケンシャルな形成のタイムラインを示す。例えば、図8のタイムラインにおいて、整合性グループCG0の形成が既に完了したアイドル期間「CG0アイドル」の後、新しい整合性グループCG1の形成が、時点「CG1に対するインクリメント開始」から開始し、時点「CG1に対するインクリメント完了」で完了し、その後、別のアイドル期間「CG1アイドル」が続く。
前述のように、一次ストレージ10aの一次ストレージ位置のインクリメンタル更新は、ビットマップ244(図1)のセットのアウト・オブ・シンク(OOS)ビットマップ1(図5)内に示され得る。OOSビットマップ内に示されるインクリメンタル更新は二次ストレージ制御ユニット4bの二次ストレージ10b(図2)の対応するストレージ位置にコピーされると、OOSビットマップ1のビットは、整合性グループロジック311(図4)により消去される。インクリメンタル更新が二次ストレージにコピーされ、OOSビットマップ1が更新される時点「インクリメント開始」から開始する整合性グループ形成プロセスの期間は、OOSビットマップ1の「ドレーン」と呼ばれる。例えば、時間間隔、整合性グループCG1に対する整合性グループ形成プロセスの時間間隔CG1ドレーン(図8)は、時点「CG1に対するインクリメント開始」から開始し、整合性グループCG1の一次ボリュームに対するインクリメンタル更新が二次ストレージの二次ボリュームにコピーされ、OOSビットマップ1(図6)が更新される。
図6、図8の例において、ボリューム1及びボリューム2は、整合性グループロジック311により整合性グループCG1内に構成され、一次システムのボリューム1に対して行われた更新のグループが、最終的に、整合性グループCG1のボリューム2に対しても行われ、特定の時点(「CG1に対するインクリメント開始」)又はグループのそれらのボリュームに対する特定のデータ・セットでのデータ整合性を保持する。従って、OOSビットマップ1の付加的な更新を特定の時点で停止させ、特定の時点での一次システムのボリューム1に対する二次システムのボリューム2の整合性グループCG1を形成する。OOSビットマップ1により示されるあらゆる未処理の更新が二次ストレージに転送されるので、整合性グループのボリューム2は、更新がもはやOOSビットマップ1に加えられなかった時点でのボリューム1と整合している。
ひとたびOOSビットマップ1(図8)が完全にドレーンされると(図7)、このドレーン期間(CG1ドレーン)は完了し、整合性グループの全てのインクリメンタル更新は、一次ストレージから二次ストレージに成功裡にコピーされ、その結果、OOSビットマップ1(図7)の全てのビットがリセットされた。その時、二次ストレージは、整合性グループのリモート・ボリュームのスナップコピー(図8の実施形態において、「リモート・ミラー・スナップコピー」と呼ばれる)を確立することができる。各リモート・ミラー・スナップコピーには、シーケンス番号が割り当てられる。従って、例えば整合性グループCG1のドレーン期間の完了時、図時点「CG1に対するリモート・ミラー・スナップコピー確立」に形成されたリモート・ミラー・スナップコピーには、図8の実施形態のタイムラインに示されるようにシーケンス番号「CG1」が割り当てられる。
図8のタイムライン内に示されるようにひとたびリモート・ミラー・スナップコピーが確立されると、整合性グループ形成プロセスのインクリメント部分は、整合性グループの形成に関して完了したと考えることができる。従って、シーケンスの次の(next-in-sequence)整合性グループ形成プロセスが開始するまで、別の「アイドル」期間が続く。
例えば、図7に示されるように、ひとたび整合性グループCG1に対するOOSビットマップ1が完全にドレーンされると、ドレーン期間、CG1ドレーンは完了し、整合性グループCG1の一次ボリューム1のインクリメンタル更新は一次ストレージから二次ストレージに成功裡にコピーされ、その結果、図7に示されるようにOOSビットマップ1の全てのビットがリセットされた。その時、二次ストレージは、図8の実施形態における時点「CG1に対するリモート・ミラー・スナップコピー確立」により示されるように、整合性グループのリモート・ボリュームのスナップコピーを生成することができる。図8のタイムライン内に示されるようにひとたびリモート・ミラー・スナップコピーが確立されると、整合性グループCG1に対する整合性グループ形成プロセスのインクリメント部分が完了したとみなすことができる(時点「CG1に対するインクリメント完了」により示されるように)。従って、シーケンスの次の整合性グループ形成プロセスが開始するまで、アイドル期間「CG1アイドル」が続く。
図8に示されるように、整合性グループロジック311(図4)は、整合性グループ・シーケンス番号を各々の整合性グループ形成プロセスに関連付けるようにさらに構成される。整合性グループロジック311は、整合性グループ・シーケンス番号及び進行中の整合性グループ形成プロセスの状態を、整合性グループ形成データ構造312(図4)に格納する。従って、図5の例において、整合性グループロジック311は、整合性グループ・シーケンス番号CG0及び進行中の整合性グループ形成プロセスの状態「アイドル」を、整合性グループ形成データ構造312の対応するシーケンス番号及び状態フィールドに格納する。示される実施形態において、アイドル状態は整合性グループの完了状態も表す。
図9は、本説明の一実施形態による整合性グループにおける整合したポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成を用いるデータ複製ロジック234の動作の一実施形態を示す。1つの動作において、データ複製ロジック234のスナップコピー生成ロジック314(図4)は、例えばホスト2aからローカル・リモート対確立コマンドを受け取り(ブロック316、図9)、ローカル・リモート対確立コマンドをいつ受け取ったかに応じて、整合性グループの部分とすることができるスナップコピー関係のローカル・リモート対を確立するように構成される。図5、図8の例において、整合性グループCG0の完了に続く新しい整合性グループCG1の形成前のCG0アイドル期間において、ローカル・リモート対確立コマンド0を受け取った。ローカル・リモート対確立コマンド0は、ローカル・ストレージ・システム24aのボリューム1のローカル・スナップコピー及びリモート・ストレージ・システム24bのボリューム2のローカル・スナップコピーの確立を命令する。この例において、ローカル・リモート対確立コマンド0の受信時、ボリューム2は、ボリューム1に対して整合性グループCG0内にある。
本説明の一実施形態において、図5、図8の例におけるローカル・リモート対確立コマンド0などのローカル・リモート対確立コマンドを受け取ったとき、ローカル・リモート対確立コマンドに応答して確立されたスナップコピー関係のローカル・リモート対には、図5、図8の例におけるスナップコピー・シーケンス番号SC_CG0のようなスナップコピー・シーケンス番号が割り当てられ、このスナップコピー・シーケンス番号は、図5、図8の例における整合性グループ形成プロセスCG0アイドルなどの特定の整合性グループ形成プロセスの関数である。従って、別の動作において、スナップコピー生成ロジック314は、ローカル・リモート対確立コマンドに応答して確立されるローカル・リモート対のスナップコピー関係のスナップコピー・シーケンス番号を判断する(ブロック318、図7)。
この実施形態において、スナップコピー生成ロジック314は、受け取ったローカル・リモート対スナップコピー確立コマンドに応答して、ローカル・リモート対確立コマンドの受信時に整合性グループロジック311のデータ構造312から進行中の整合性グループ形成プロセスの整合性グループ・シーケンス番号を取得し、かつ、ローカル・リモート対確立コマンドの受信時に進行中の特定の整合性グループ形成プロセスの関数としてスナップコピー・シーケンス番号をさらに判断するように構成されたシーケンス番号判断ロジック334(図4)をさらに含む。図5、図8の例において、シーケンス番号判断ロジック334は、ローカル・リモート対確立コマンド0(図5、図8)に応答して、ローカル・リモート対確立コマンド0の受信時に整合性グループロジック311のデータ構造312から、進行中の整合性グループ形成プロセスの整合性グループ・シーケンス番号CG0を取得し、かつ、ローカル・リモート対確立コマンド0の受信時に進行中の特定の整合性グループ形成プロセス(CG0アイドル)の関数として、スナップコピー・シーケンス番号SC_CG0を判断する。スナップコピー・シーケンス番号SC_CG0は、ローカル・リモート・スナップコピー対のローカル・スナップコピーのためのデータ構造336a(図5)のスナップコピー・シーケンス番号フィールド内に格納される。
図5は、判断したスナップコピー・シーケンス番号SC_CG0を用いた、ローカル・リモート対確立コマンド0に応答したスナップコピー関係のローカル・リモート対の確立を示す。ローカル・リモート対確立コマンド0に応答して確立されたスナップコピー関係のローカル・リモート対は、スナップコピー・ソースとしてのボリューム1などのデータ・ユニットから、一次ストレージ・システム24a(図2)内のスナップコピー・ターゲットとしてのボリューム1’などの別のデータ・ユニットまでの、一次ストレージ・システム24aにおける「PITスナップコピー関係CG0_L」と表記された矢印により表されるようなローカル・ポイント・イン・タイム・スナップコピー関係を含む。一実施形態において、スナップコピー生成ロジック314(図4)は、ローカル・ポイント・イン・タイム・スナップコピー関係、ここではPITスナップコピー関係CG0_Lの確立において、特定の時点での一次ボリューム1からポイント・イン・タイム・スナップコピー・ボリューム1’にコピーされなかったトラックを示すビットマップ244b(図4)のローカル・ターゲット・ビットマップCG0_Lを生成するようにさらに構成される。
ローカル・リモート対確立コマンド0に応答して確立されたスナップコピー関係のローカル・リモート対は、スナップコピー・ソースとしてのボリューム2などのデータ・ユニットから、二次ストレージ・システム24b(図2)内のスナップコピー・ターゲットとしてのボリューム2’などの別のデータ・ユニットまでの、二次ストレージ・システム24b(図2)における「PITスナップコピー関係CG0_R」と表記された矢印により表されるリモート・ポイント・イン・タイム・スナップコピー関係をさらに含む。一実施形態において、二次コントローラのスナップコピー生成ロジック314は、リモート・ポイント・イン・タイム・スナップコピー関係、すなわちPITスナップコピー関係CG0_Rの確立において、特定の時点での一次ボリューム2からポイント・イン・タイム・スナップコピー・ボリューム2’にコピーされなかったトラックを示すビットマップ244bのリモート・ターゲット・ビットマップCG0_Rを生成するように構成される。
一次ストレージ・コントローラ4a(図2)のスナップコピー生成ロジック314(図4)は、整合性グループ形成プロセスの状態とは無関係に、ローカル・リモート対のローカル・ポイント・イン・タイム・スナップコピー関係を開始し、確立する(ブロック340、図9)ように構成される。従って、図5、図8の例において、ポイント・イン・タイム・スナップコピー関係CG0_Lの状態は、ローカル・リモート・スナップコピー対の(ポイント・イン・タイム・スナップコピー関係CG0_Lの)シーケンス番号SC_CG0を有するローカル・スナップコピーが確立されたことを示す「確立済み(Established)」として、ローカル・リモート・スナップコピー対のローカル・スナップコピーのためのデータ構造336a(図5)の状態フィールドに格納される。
逆に、本説明の一実施形態において、スナップコピー関係のローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係の確立は、ローカル・リモート対確立コマンドの受信時に進行中の整合性グループ形成プロセスの状態の関数として遅延させることができる。しかしながら、リモート・スナップコピー関係がまだ確立されていず、代わりに遅延されたとしても、スナップコピー関係のローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係の確立の遅延にもかかわらず、スナップコピー関係のローカル・リモート対の両方の、すなわちローカル及びリモートのスナップコピー関係を、確立済みとしてローカル・リモート・スナップコピー対確立コマンドを発行したホストに報告することができる。
従って、一次ストレージ・コントローラ4a(図2)のスナップコピー生成ロジック314(図4)は、ローカル・リモート対確立コマンドの受信時に整合性グループ形成プロセスの状態を判断するように構成された状態判断ロジック344をさらに含む。スナップコピー生成ロジック314の遅延ロジック348は、状態判断ロジック344により判断されるように、ローカル・リモート対スナップコピー確立コマンドの受信時に進行中の整合性グループ形成プロセスの状態の関数として、スナップコピー関係のローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係の確立を遅延させるように構成される。
一実施形態において、複数の状態は、図8のタイムラインに示されるように、以前の整合性グループCG0が完了し、シーケンスの次の(next in sequence)整合性グループCG1における次の形成がまだ開始されていない、図5、図8の例におけるアイドル状態「CG0アイドル」などのアイドル状態を含む。整合性グループCG1の形成がまだ完了していない、図6、図8の例におけるドレーン状態、「CG1ドレーン」などのドレーン状態をさらに含む。以下により詳細に説明されるように、遅延ロジック348は、ローカル・リモート対確立コマンドの受信時に整合性グループ形成プロセスの状態がドレーン状態にあると判断される場合、及び、形成される整合性グループが、ローカル・リモート対スナップコピー確立コマンドのスナップコピー関係のローカル・リモート対のデータ・ユニットを含む場合、複数の状態の別の状態は、リモート・ポイント・イン・タイム・スナップコピー関係の確立を遅延させるようにさらに構成される。
リモート・ポイント・イン・タイム・スナップコピー関係の確立の潜在的遅延と関連して、データ複製ロジック234のコマンドロジック350(図4)は、最終的にローカル・リモート対のリモート・スナップコピー関係を確立するために、二次ストレージ・システムのリソースを予約する(ブロック352、図9)ように、二次ストレージ・コントローラ4b(図2)に命令するように構成される。リソースは、ローカル・リモート対に対して判断されたシーケンス番号(ブロック318、図9)を用いて予約される。
一実施形態において、データ複製ロジック234のコマンドロジック350は、ローカル・リモート対スナップコピー確立コマンドに応答して、リソース予約コマンドを二次ストレージ・コントローラ4bに発行し、後のローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係の確立のために二次ストレージ・システムのリソースを予約するように構成される。さらに、リソース予約コマンドに応答して、判断されたスナップコピー・シーケンス番号(ブロック318、図9)が、ローカル・リモート・スナップコピー対のリモート・スナップコピーのためのデータ構造336b(図5)のスナップコピー・シーケンス番号フィールドに格納される。従って、図5、図8の例において、ローカル・リモート対確立コマンド0に応答して発行されたリソース予約コマンドに応答して、スナップコピー・シーケンス番号SC_CG0は、ローカル・リモート・スナップコピー対のリモート・スナップコピーのためのデータ構造336b(図5)のスナップコピー・シーケンス番号フィールドに格納される。
状態判断ロジック344(図4)は、ローカル・リモート対確立コマンドの受信時に整合性グループ形成プロセスの状態を判断する(ブロック356、図9)。図5の例において、状態判断ロジック344は、ローカル・リモート対確立コマンド0に応答して、整合性グループロジック311のデータ構造312(図5)から、進行中の整合性グループ形成プロセスの状態、CG0アイドルを取得する。コマンドロジック350は、ローカル・リモート対確立コマンドの受信時に進行中の整合性グループ形成プロセスの状態の関数として、後のリモート・ポイント・イン・タイム・スナップコピー関係の確立のために予約された二次ストレージ・システムのリソースを用いて、判断したスナップコピー・シーケンス番号と関連するローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係を確立するよう、二次ストレージ・コントローラに命令するように構成される。例えば、コマンドロジック350は、整合性グループ形成プロセスの状態が、ローカル・リモート対確立コマンドを受け取ったアイドル状態にあると判断された場合、リモート・ポイント・イン・タイム・スナップコピー関係の確立のために二次ストレージ・システムの以前に予約したリソースを用いて、ローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係を確立する(ブロック360、図9)よう、二次ストレージ・コントローラに命令する。
整合性グループCG0に対する図5の例において、OOSビットマップ1が完全にドレーンされ、整合性グループCG0の形成が完了し、アイドル状態にあるように、OOSビットマップ1の全てのビットがリセットされた。従って、図5、図8の例において、整合性グループ形成プロセスの状態は、ローカル・リモート対スナップコピー確立コマンド0を受け取ったアイドル状態にあると判断される(ブロック356、図9)ので、ローカル・リモート対確立コマンド0の受信時、ローカル・リモート対確立コマンドのデータ・ユニットのボリューム2、ボリューム2’を含むいずれの整合性グループも形成の過程にないことから、著しい遅延なしに、スナップコピー関係のローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係を確立することができる。従って、図5、図8の例において、リモート・スナップコピーが、ローカル・リモート・スナップコピー対の(ポイント・イン・タイム・スナップコピー関係CG0_Rの)シーケンス番号SC_CG0を有することを示す状態「確立済み」が、データ構造336b(図5)の状態フィールドに格納される。
ローカル・リモート対スナップコピー確立コマンド0を受け取ったとき、整合性グループCG0に対する整合性グループ形成プロセスの状態はアイドル状態(CG0インクリメント完了)にあったので、整合性グループCG0のボリューム2は、ローカル・リモート対スナップコピー確立コマンド0を受け取ったとき、一次システムのボリューム1に対して整合している。従って、ローカル・スナップコピー・ボリューム1’は、リモート・スナップコピー・ボリューム2’と整合している。従って、ローカル・リモート対スナップコピー確立コマンド0に応答して、著しい遅延なしに、リモート・スナップコピー・ボリューム2’を確立することができる。
逆に、遅延ロジック348は、ローカル・リモート対スナップコピー確立コマンドの受信時に整合性グループ形成プロセスの状態がドレーン状態にあると判断された場合、及び、形成される整合性グループが、ローカル・リモート対確立コマンドのスナップ関係のローカル・リモート対のデータ・ユニットを含む場合、リモート・ポイント・イン・タイム・スナップコピー関係の確立を遅延させる(ブロック364、図9)。図6、図8の例において、整合性グループCG1の開始の後、つまり、整合性グループCG1の時点「CG1に対するインクリメント開始」時点の後、整合性グループCG2に対して、CG2の「インクリメント開始」後、整合性グループの時点「CG2に対するインクリメント開始」におけるシーケンスの次の整合性グループCG2の形成前に、CG1ドレーン期間において、ローカル・リモート対スナップコピー確立コマンド1を受け取っている(ブロック316、図9)。ローカル・リモート確立コマンド1は、ローカル・ストレージ・システム24aのボリューム1のローカル・スナップコピー及びリモート・ストレージ・システム24bのボリューム2のリモート・スナップコピーの確立を命令する。この例において、ローカル・リモート対確立コマンド1の受信時にボリューム2は、ボリューム1に対して整合性グループCG1内にある。
整合性グループCG1に対する図6の例において、OOSビットマップ1がドレーンの過程にあり、整合性グループCG1の形成は未完了であり、ドレーン状態にあるように、OOSビットマップ1の全てのビットがリセットされたとは限らない。従って、図6の例において、整合性グループロジック311は、整合性グループ・シーケンス番号CG1及び進行中の整合性グループ形成プロセスの状態「ドレーン」を、整合性グループ形成データ構造312の対応するシーケンス番号及び状態フィールドに格納する。ローカル・リモート対確立コマンド1に応答して確立されるスナップコピー関係(図6)のローカル・リモート対には、シーケンス番号判断ロジック334により、スナップコピー・シーケンス番号、この例ではSC_CG1が割り当てられ、このスナップコピー・シーケンス番号は、図8に示されるようにローカル・リモート対スナップコピー確立コマンド1を受け取ったとき、進行中の特定の整合性グループ形成プロセス、「CG1ドレーン」の関数である。図6の例において、シーケンス番号判断ロジック334は、ローカル・リモート対スナップコピー確立コマンド1(図8)に応答して、ローカル・リモート対スナップコピー確立コマンドの受信時に整合性グループロジック311のデータ構造312(図6)から、進行中の整合性グループ形成プロセスの整合性グループ・シーケンス番号CG1を取得し、かつ、ローカル・リモート対スナップコピー確立コマンド1の受信時に進行中の特定の整合性グループ形成プロセス、「CG1ドレーン」の関数として、スナップコピー・シーケンス番号SC_CG1を判断する。スナップコピー・シーケンス番号SC_CG1は、ローカル・リモート・スナップ対のローカル・スナップコピーのためのデータ構造336a(図6)のスナップコピー・シーケンス番号フィールド内に格納される。
図6は、判断したスナップコピー・シーケンス番号SC_CG1を用いた、ローカル・リモート対スナップコピー確立コマンド1に応答したスナップコピー関係のローカル・リモート対の確立の開始を示す。従って、ローカル・ポイント・イン・タイム・スナップコピー関係は、スナップコピー・ソースとしてのボリューム1などのデータ・ユニットから、一次ストレージ・システム24a内のスナップコピー・ターゲットとしてのボリューム1’などの別のデータ・ユニットへの、一次ストレージ・システム24aにおける「PITスナップコピー関係CG1_L」と表記された矢印により表されるように確立される(ブロック340、図9)。一実施形態において、スナップコピー生成ロジック314は、ローカル・ポイント・イン・タイム・スナップコピー関係、ここではPITスナップコピー関係CG1_Lの確立において、特定の時点での一次ボリューム1からポイント・イン・タイム・スナップコピー・ボリューム1’にコピーされなかったトラックを示すビットマップ244bのローカル・ターゲット・ビットマップCG1_Lを生成するようにさらに構成される。
スナップコピー生成ロジック314は、整合性グループ形成プロセスの状態とは無関係に、ローカル・リモート対のローカル・ポイント・イン・タイム・スナップコピー関係を開始し確立する(ブロック340、図9)。従って、図6、図8の例において、ポイント・イン・タイム・スナップコピー関係CG1_Lの状態は、ローカル・リモート・スナップコピー対の(ポイント・イン・タイム・スナップコピー関係CG1_Lの)シーケンス番号SC_CG1を有するローカル・スナップコピーが確立されたことを示す「確立済み」として、ローカル・リモート・スナップコピー対のローカル・スナップコピーのためのデータ構造336a(図6)の状態フィールドに格納される。
ローカル・リモート対確立コマンド1に応答して確立されたスナップコピー関係のローカル・リモート対は、最終的に、スナップコピー・ソースとしての整合性グループCG1のボリューム2などのデータ・ユニットから、二次ストレージ・システム24b内のスナップコピー・ターゲットとしてのボリューム2などの別のデータ・ユニットへの、二次ストレージ・システム24bにおける「PITスナップコピー関係CG1_R」と表記された矢印により表されるような、リモート・ポイント・イン・タイム・スナップコピー関係を含む。上述のように、本説明の一実施形態において、スナップコピー関係のローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係の確立は、ローカル・リモート対確立コマンドの受信時に進行中の整合性グループ形成プロセスの状態の関数として遅延させることができる。従って、図6の例において、リモート・スナップコピーが遅延されたときから、PITスナップコピー関係CG1_Rを表す矢印は、点線で示される。同様に、図6の例において、PITスナップコピー関係CG1_Rに対するターゲット・ビットマップCG1_Rは、点線で示される。
リモート・ポイント・イン・タイム・スナップコピー関係の確立の潜在的遅延に関連して、一次ストレージ・コントローラ4a(図2)のデータ複製ロジックのコマンドロジックのコマンドロジック350(図4)は、最終的にローカル・リモート対のリモート・スナップコピー関係を最終的に確立するために、二次ストレージ・システムのリソースを予約する(ブロック352、図9)よう、二次ストレージ・コントローラ4b(図2)に命令する。ローカル・リモート対に対して判断されたシーケンス番号(ブロック318、図9)を用いて、リソースが予約される。図6、図8の例において、一次ストレージ・コントローラ4a(図2)のデータ複製ロジック234のコマンドロジック350は、ローカル・リモート対確立コマンド1に応答して、リソース予約コマンドを二次ストレージ・コントローラ4bに発行し、スナップコピー関係をCG1_Rのための予約期間の完了に続く後のローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係CG1_Rの確立のための予約期間の間に、二次ストレージ・システムのリソースを予約する。例えば、リモートPITスナップコピー関係CG1_Rの確立を待つ間、ボリューム2’などのスナップコピー・ボリュームに対するメモリ空間、及びターゲット・ビットマップCG1_Rなどのデータ構造を予約することができる。
さらに、リソース予約コマンドに応答して、判断したスナップコピー・シーケンス番号(ブロック318、図9)が、ローカル・リモート・スナップコピー対のリモート・スナップコピーのためのデータ構造336b(図6)のスナップコピー・シーケンス番号フィールド内に格納される。従って、図6、図8の例において、ローカル・リモート対確立コマンド1に応答して発行されたリソース予約コマンドに応答して、スナップコピー・シーケンス番号SC_CG1が、ローカル・リモート・スナップコピー対のリモート・スナップコピーのためのデータ構造336b(図5)のスナップコピー・シーケンス番号フィールド内に格納される。
図6の例において、OOSビットマップ1のセットビット2などのセットビットは、二次ストレージへの転送を待っている未処理の更新を示し、もはや更新がOOSビットマップ1に加えられない時点での整合性グループCG1のボリューム2が、ボリューム1とまだ整合していなない。従って、図6の例において、OOSビットマップ1(図6)はまだ完全にドレーンされていず(図7)、整合性グループの全てのインクリメンタル更新が一次ストレージから二次ストレージにまだ成功裡にコピーされていず、その結果、OOSビットマップ1(図6)の全てのビットはまだリセットされていないので、ドレーン期間、CG1ドレーンはまだ完了していない。
従って、図8のローカル・リモート対スナップコピー確立コマンド1の例において、一次ストレージ・コントローラ4a(図2)のスナップコピー生成ロジック314の状態判断ロジック344は、ローカル・リモート対スナップコピー確立コマンド1の受信時に整合性グループ形成データ構造312(図6)及び図8のタイムラインにより示されるようなCG1ドレーン状態であるように、整合性グループ形成プロセスの状態を判断する(ブロック356、図9)。図6の例において、状態判断ロジック344は、整合性グループロジック311のデータ構造312(図5)から、進行中の整合性グループ形成プロセスの状態、CG1ドレーンを取得する。従って、ローカル・リモート対確立コマンド1の受信時に進行中の整合性グループ形成プロセスの状態は、状態判断ロジック344により、CG1ドレーン状態であるように判断されるので、スナップコピー生成ロジック314の遅延ロジック348は、スナップコピー関係のローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係CG1_Rの確立を遅延させる(ブロック364)。リモート・ポイント・イン・タイム・スナップコピー関係CG1_Rの確立は、図8のタイムラインにおける「予約期間」と呼ばれるある時間期間だけ遅延される。従って、ローカル・リモート・スナップコピー対の(ポイント・イン・タイム・スナップコピー関係CG1_Rの)シーケンス番号SC_CG1を有するリモート・スナップコピーがまだ確立されていないが、後の時間に確立されるのを待つ間予約された状態にあることを示す状態「予約済み(Reserved)」が、データ構造336b(図5)の状態フィールドに格納される。
ローカル・リモート対スナップコピー確立コマンド1を受け取ったとき、整合性グループCG1に対する整合性グループ形成プロセスの状態はドレーン状態(CG1ドレーン)にあったので、整合性グループCG1のボリューム2は、ローカル・リモート対スナップコピー確立コマンド1を受け取ったとき、一次システムのボリューム1に対して整合していない。従って、ローカル・スナップコピー・ボリューム1’は、リモート・スナップコピー・ボリューム2’と整合していない。従って、リモート・スナップコピー・ボリューム2’の確立は遅延される。
形成される整合性グループCG1に対する時点「インクリメント完了」により示されるように、ひとたび整合性グループ形成プロセスのインクリメント部分が完了すると、ローカル・リモート対のリモート・スナップコピーの確立を遅延させるための予約期間が終了する。上述のように、ひとたび整合性グループに対するOOSビットマップ1(図が完全にドレーンされ、整合性グループCG1の全てのインクリメンタル更新が、一次ストレージ・ボリューム1’から二次ストレージ・ボリューム2’に成功裡にコピーされ、その結果、OOSビットマップ1の全てのビットが図7に示されるようにリセットされると、CG1ドレーン期間は完了する。
整合性グループCG1のドレーン期間が完了すると、時点「CG1に対するリモート・ミラー・スナップコピー確立」において形成されたリモート・ミラー・スナップコピーには、図8の実施形態のタイムラインに示されるようなシーケンス番号「CG1」が割り当てられる。図8の実施形態のタイムラインに示されるように、ひとたびリモート・ミラー・スナップコピーが確立されると、整合性グループ形成プロセスのインクリメント部分が、形成される整合性グループCG1に関して完了した(「インクリメント完了」)と考えることができる。従って、図7に示されるように、整合性グループロジック311は、進行中の整合性グループ形成プロセスに対する整合性グループの状態「インクリメント完了」を、整合性グループCG1に対する整合性グループ形成データ構造312の対応する状態フィールドに格納する。
スナップコピー生成ロジック314の状態判断ロジック344(図4)は、ローカル・リモート対スナップコピー確立コマンド1に対する整合性グループ形成プロセスの状態を、整合性グループ形成データ構造312(図7)及び図8のタイムラインにより示されるようなCG1インクリメント完了状態にあると判断する。図7の例において、状態判断ロジック344は、整合性グループロジック311のデータ構造312(図7)から、進行中の整合性グループCG1形成プロセスの状態インクリメント完了を取得する。
従って、ひとたび整合性グループCG1に対する整合性グループ形成プロセスの状態が、ローカル・リモート対確立コマンド1を受け取ったCG1ドレーン状態に続くインクリメント完了状態にあると判断されると、遅延ロジック348は、ローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係CG1_Rの確立の遅延を終了させる(ブロック370、図9)。加えて、ひとたび整合性グループCG1に対する整合性グループ形成プロセスの状態が、ローカル・リモート対確立コマンド1を受け取ったCG1ドレーン状態に続くインクリメント完了状態にあると判断されると、コマンドロジック350は、後のローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係CG1_Rの確立のために予約された二次ストレージ・システムの予約されたリソースを用いて、ローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係CG1_Rを確立する(ブロック360、図9)ための「チェックイン」コマンドを二次ストレージ・コントローラに発行する(ブロック374)するようにさらに構成される。従って、チェックイン・コマンドに応答して、二次ストレージ・コントローラは、ひとたび整合性グループCG1に対する整合性グループ形成プロセスの状態がアイドル状態(つまり、インクリメント完了状態)にあると判断されると、後のリモート・ポイント・イン・タイム・スナップコピー関係CG1_Rの確立のために予約された二次ストレージ・システムのリソースを用いて、ローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係CG1_R(図7)を確立する。一実施形態において、二次ストレージ・コントローラは、リモート・ポイント・イン・タイム・スナップコピー関係、すなわちPITスナップコピー関係CG1_Rの確立において、特定の時点での一次ボリューム2からポイント・イン・タイム・スナップコピー・ボリューム2’にコピーされなかったトラックを示すビットマップ244bのリモート・ターゲット・ビットマップCG1_R(図7)を生成するようにさらに構成される。
ローカル・リモート対スナップコピー確立コマンド1を受け取ったとき、整合性グループCG1に対する整合性グループ形成プロセスの状態はドレーン状態(CG1ドレーン)であったので、リモート・スナップコピー・ボリューム2’の確立は、整合性グループCG1のボリューム2が一次システムのボリューム1に対して整合するまで遅延された。その結果、ローカル・スナップコピー・ボリューム1’は、リモート・スナップコピー・ボリューム2’と整合するようになる。従って、整合性グループCG1が完了した後に、リモート・スナップコピー・ボリューム2’が確立される。
図8の別の例において、整合性グループCG2の開始、つまり、整合性グループCG1の時点「CG1に対するインクリメント開始」の後、シーケンスの次の整合性グループの形成前のCG2ドレーン期間において、ローカル・リモート対スナップコピー確立コマンド2を受け取った(ブロック316、図9)。ローカル・リモート対確立コマンド2は、ローカル・ストレージ・システム24aのボリューム1のローカル・スナップコピー及びリモート・ストレージ・システム24bのボリューム2のリモート・スナップコピーの確立を命令する。この例において、ローカル・リモート対確立コマンド2の受信時、ボリューム2は、ボリューム1に対して整合性グループCG2内にある。従って、スナップコピー関係のローカル・リモート対は、ローカル・リモート対確立コマンド1と関連して上述したものと同様の方法で確立される。
整合性グループロジック311は、整合性グループ・シーケンス番号CG2及び進行中の整合性グループ形成プロセスの状態「ドレーン」を、整合性グループ形成データ構造312などのデータ構造の対応するシーケンス番号及び状態フィールドに格納する。ローカル・リモート対確立コマンドに応答して確立されたスナップコピー関係のローカル・リモート対には、シーケンス番号判断ロジック334により、スナップコピー・シーケンス番号、この例ではSC_CG2が割り当てられ、このスナップコピー・シーケンス番号は、図8に示されるようにローカル・リモート対スナップコピー確立コマンド2を受け取ったとき、進行中の特定の整合性グループ形成プロセス、「CG2ドレーン」の関数である。シーケンス番号判断ロジック334は、ローカル・リモート対スナップコピー確立コマンド2(図8)に応答して、ローカル・リモート対スナップコピー確立コマンド2の受信時に整合性グループロジック311のデータ構造312から、進行中の整合性グループ形成プロセスの整合性グループ・シーケンス番号CG2を取得し、かつ、ローカル・リモート対スナップコピー確立コマンド2の受信時に進行中の特定の整合性グループ形成プロセス、「CG2ドレーン」の関数として、スナップコピー・シーケンス番号SC_CG2を判断する。スナップコピー・シーケンス番号SC_CG2は、スローカル・リモート・スナップコピー対のためのデータ構造336aなどのデータ構造のスナップコピー・シーケンス番号フィールドに格納される。
一次ストレージ・システム24aにおいて、スナップコピー・ソースとしてのデータ・ユニットから、一次ストレージ・システム24a内のスナップコピー・ターゲットなどの別のデータ・ユニットへの、ローカル・ポイント・イン・タイム・スナップコピー関係が確立される(ブロック340、図9)。一実施形態において、スナップコピー生成ロジック314は、ローカル・ポイント・イン・タイム・スナップコピー関係の確立において、特定の時点での一次ボリュームからローカル・ポイント・イン・タイム・スナップコピー・ボリュームにコピーされなかったトラックを示すローカル・ターゲット・ビットマップを生成するようにさらに構成される。
スナップコピー生成ロジック314は、整合性グループ形成プロセスの状態とは無関係に、ローカル・リモート対のローカル・ポイント・イン・タイム・スナップコピー関係を開始し確立する(ブロック340、図9)。従って、図8のコマンド2の例において、例えばCG2_Lとして番号付けされ得るローカル・ポイント・イン・タイム・スナップコピー関係の状態は、ローカル・リモート・スナップコピー対の(例えば、SC_CG2などの)シーケンス番号を有するローカル・スナップコピーが確立されたことを示す「確立済み」として、ローカル・リモート・スナップコピー対に対するデータ構造の状態フィールドに格納される。
ローカル・リモート対スナップコピー確立コマンド2に応答して確立されたスナップコピー関係のローカル・リモート対は、最終的に、スナップコピー・ソースとしてのデータ・ユニットから、二次ストレージ・システム24b内のスナップコピー・ターゲットとしての別のデータ・ユニットへの、二次ストレージ・システム24bにおけるリモート・ポイント・イン・タイム・スナップコピー関係を含む。上述のように、本説明の一実施形態において、ローカル・リモート対確立コマンドの受信時に進行中の整合性グループ形成プロセスの状態の関数として、スナップコピー関係のローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係の確立を遅延させることができる。
リモート・ポイント・イン・タイム・スナップコピー関係の確立の潜在的遅延と関連して、一次ストレージ・コントローラ4a(図2)のデータ複製ロジックのコマンドロジック350(図4)は、最終的にローカル・リモート対のリモート・スナップコピー関係を確立するために、二次ストレージ・システムのリソースを予約する(ブロック352、図9)よう、二次ストレージ・コントローラ4b(図2)に命令する。リソースは、ローカル・リモート対に対して判断されたシーケンス番号を用いて予約される(ブロック318、図9)。図8のコマンド2の例において、一次ストレージ・コントローラ4a(図2)のデータ複製ロジック234のコマンドロジック350は、ローカル・リモート対確立コマンド2に応答して、リソース予約コマンドを二次ストレージ・コントローラ4bに発行し、リモート・スナップコピー関係に対する予約期間の完了の、後のローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係の確立のために、予約期間の間、二次ストレージ・システムのリソースを予約する。例えば、リモートPITスナップコピー関係の確立を待つ間、スナップコピー・ボリュームに対するメモリ空間、及びリモート・ターゲット・ビットマップなどのデータ構造を予約することができる。
さらにリソース予約コマンドに応答して、判断したスナップコピー・シーケンス番号(ブロック318、図9)が、ローカル・リモート・スナップコピー対のリモート・スナップコピーのためのデータ構造のスナップコピー・シーケンス番号フィールドに格納される。従って、図8のコマンド2の例において、ローカル・リモート対確立コマンド2に応答して発行されたリソース予約コマンドに応答して、スナップコピー・シーケンス番号SC_CG2(図8)が、ローカル・リモート・スナップコピー対のリモート・スナップコピーのためのデータ構造のスナップコピー・シーケンス番号フィールドに格納される。
図8のローカル・リモート対スナップコピー確立コマンド2の例において、一次ストレージ・コントローラ4a(図2)のスナップコピー生成ロジック314の状態判断ロジック344(図4)は、ローカル・リモート対スナップコピー確立コマンド2の受信時の整合性グループ形成プロセスの状態を、整合性グループ形成データ構造及び図8のタイムラインにより示されるようなCG2ドレーン状態であると判断する(ブロック356、図9)。コマンド2の例において、状態判断ロジック344は、整合性グループロジック311のデータ構造から、進行中の整合性グループ形成プロセスの状態、CG2ドレーンを取得する。従って、ローカル・リモート対確立コマンド2の受信時の進行中の整合性グループ形成プロセスの状態が、状態判断ロジック344により、CG2ドレーン状態であると判断されるので、スナップコピー生成ロジック314の遅延ロジック348は、スナップコピー関係のローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係の確立を遅延させる(ブロック364)。リモート・ポイント・イン・タイム・スナップコピー関係CG2_Rの確立は、図8のタイムラインにおいて「予約期間」と呼ばれる時間間隔だけ遅延される。その結果、ローカル・リモート対のスナップコピー・シーケンス番号SC_CG2を有するリモート・スナップコピーがまだ確立されていないが、後の時間に確立されるのを待つ間予約済状態にあることを示す、状態「予約済」が、リモート・スナップコピーのためのデータ構造の状態フィールドに格納される。
整合性グループCG2の形成のために、ひとたび整合性グループCG2の整合性グループ形成プロセスのインクリメント部分が完了すると(時点「インクリメント完了」により示される)、ローカル・リモート対のリモート・スナップコピーの確立を遅延させるための予約期間が完了する。前述のように、ひとたび整合性グループに対するOOSビットマップが完全にドレーンされ、整合性グループCG2の全てのイクリメンタル更新が、一次ストレージ・ボリュームから二次ストレージ・ボリュームに成功裡にコピーされ、その結果、OOSビットマップの全てのビットがリセットされると、CG2ドレーン期間は完了する。
整合性グループCG2のドレーン期間の完了時、時点「CG2に対するリモート・ミラー・スナップコピー確立」において形成されたリモート・ミラー・スナップコピーには、図8の実施形態のタイムラインに示されるように、シーケンス番号「CG2」が割り当てられる。図8のタイムラインにより示されるように、ひとたびリモート・ミラー・スナップコピーが確立されると、整合性グループ形成プロセスのインクリメント部分は、整合性グループCG2の形成に関して完了した(「インクリメント完了」)と考えることができる。従って、整合性グループロジック311は、進行中の整合性グループ形成プロセスに対する整合性グループの状態「インクリメント完了」を、整合性グループCG2のための整合性グループ形成データ構造の対応する状態フィールドに格納する。
その時点で、スナップコピー生成ロジック314の状態判断ロジック344(図4)は、ローカル・リモート対スナップコピー確立コマンド2に対する整合性グループ形成プロセスの状態を、整合性グループ形成データ構造及び図8のタイムラインにより示されるようなCG2インクリメント完了状態であると判断する(ブロック356、図9)。従って、状態判断ロジック344は、整合性グループロジック311のデータ構造(図7)から、進行中の整合性グループCG2形成プロセスの状態(CG2インクリメント完了)を取得する。
従って、ひとたび整合性グループCG2に対する整合性グループ形成プロセスの状態が、ローカル・リモート対確立コマンド2を受け取ったCG2ドレーン状態に続くインクリメント完了状態にあると判断されると、遅延ロジック348は、ローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係の確立の遅延を終了させる(ブロック370、図9)。さらに、コマンドロジック350は、ひとたび整合性グループCG2に対する整合性グループ形成プロセスの状態が、ローカル・リモート対確立コマンド2を受け取ったCG2ドレーン状態に続くインクリメント完了状態にあると判断すると、後のローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係の確立のために予約された二次ストレージ・システムの予約されたリソースを用いて、ローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係を確立する(ブロック360、図9)ためのチェックイン・コマンドを二次ストレージ・コントローラに発行する(ブロック374)よう、さらに構成される。従って、チェックイン・コマンドに応答して、ひとたび整合性グループCG2に対する整合性グループ形成プロセスの状態が、ローカル・リモート対確立コマンド2を受け取ったCG2アイドル状態(つまり、インクリメント完了状態)にあると判断されると、二次ストレージ・コントローラは、後のリモート・ポイント・イン・タイム・スナップコピー関係の確立のために予約された二次ストレージ・システムの予約されたリソースを用いて、ローカル・リモート対のリモート・ポイント・イン・タイム・スナップコピー関係を確立する。一実施形態において、二次ストレージ・コントローラは、リモート・ポイント・イン・タイム・スナップコピー関係の確立において、特定の時点での一次ボリュームからポイント・イン・タイム・スナップコピー・ボリュームにコピーされなかったトラックを示すビットマップ244bのリモート・ターゲット・ビットマップを生成するようにさらに構成される。
一実施形態において、ポイント・イン・タイム・スナップコピーを生成するローカル・リモート対ポイント・イン・タイム・スナップコピー・コマンドは、バックグラウンド・コピー操作においてソース・ボリュームの内容をポイント・イン・タイム・スナップコピー・ターゲット・ボリュームに転送する必要がない「バックグラウンド・コピーなし」タイプのものとすることができる。代わりに、ターゲット・ビットマップが、トラックがポイント・イン・タイム・スナップコピー・ボリュームに転送されなかったというビット状態値「1」により示される場合、ポイント・イン・タイム・スナップコピー・ターゲット・ボリュームのトラックに向けられた読み取り操作は、そのトラックの内容を取得するために、ソース・ボリュームの対応するトラックにリダイレクトされ得る。しかしながら、ソース・ボリュームのトラックが更新のターゲットである場合、そのトラックの内容は、ポイント・イン・タイム・スナップコピー・ターゲット・ボリュームの対応するトラックに転送され、関連したターゲット・ビットマップは、そのトラックの内容が転送されたことを示すように更新される。従って、第1の時点でのソース・ボリュームのデータの整合したポイント・イン・タイム・スナップコピーを与えるためのターゲットのデータは、関連したローカル又はリモート・システム内のデータ転送により取得することができる。
他の実施形態において、ポイント・イン・タイム・スナップコピーを生成するローカル・リモート対ポイント・イン・タイム・スナップコピー・コマンドは、バックグラウンド・コピー操作においてソース・ボリュームの内容がポイント・イン・タイム・スナップコピー・ターゲット・ボリュームに転送される「バックグラウンド・コピー」タイプのものであり得ることが理解される。ソース・ボリュームの各トラックの内容は、バックグラウンド・コピーにおいて、ポイント・イン・タイム・スナップコピー・ターゲット・ボリュームの対応するトラックの内容に転送されるので、関連したターゲット・ビットマップ内のそのトラックを表すビットのビット状態は、トラックがポイント・イン・タイム・スナップコピー・ターゲット・ボリュームに転送されたことを示すためのビット状態値「0」に更新することができる。
従って、本明細書で使用される場合、「コピーする(copying)」という用語は、ソース・ストレージ位置のデータの内容がターゲット・ストレージ位置に実際に転送される実際のコピーを含む。しかしながら、本明細書で使用される「コピー」という用語は、ビットマップなどのデータ構造が、最初にターゲット・ストレージ位置に向けられた読み取り操作を、ターゲット・ストレージ位置の代わりにソース・ストレージ位置にリダイレクトするように設定され、従って、ソース・ストレージ位置のデータ内容のターゲット・ストレージ位置への実際の転送を必要としない、仮想コピーも含む。同様に、本明細書で使用される場合、「コピー(copy)」という用語は、ターゲット・ストレージ位置がソース・ストレージ位置の同じデータ内容を含むが、ターゲット・ストレージ位置が、最初にターゲット・ストレージ位置に向けられた読み取り操作を、ターゲット・ストレージ位置の代わりにソース・ストレージ位置にリダイレクトするように設定された、ターゲット・ビットマップなどの関連したデータ構造を有する仮想コピーも含み、その結果、仮想コピーがソース・ストレージ位置の実際のデータ内容を含む必要がない。
本説明の一実施形態において、ひとたび整合性グループが完了すると、ミラー関係1(図5、図7)により表されるようなミラーリング操作のために、リモート・ポイント・イン・タイム・スナップコピー・ボリューム2’に関するデータは、既に二次ストレージ・システム24b上に存在することが理解される。その結果、多くの用途において、リモート・ポイント・イン・タイム・スナップコピー・ボリューム2’に関するデータの全てではないとしても殆どを二次システム24b内でコピーすることができ、それにより、リモート・ポイント・イン・タイム・スナップコピー・ボリューム2’をもたらすために、一次システム24aからのネットワーク上でのデータのコピーの全てではないとして多くをなくすことができる。例えば、コマンドロジック350が、チェックイン・コマンドを二次システム24bに発行するのに応答して、リモート・ターゲット・ビットマップが、二次ボリューム2からリモート・ポイント・イン・タイム・スナップコピー・ボリューム2’にコピーされていないデータ・トラックを示す場合、二次ストレージ・コントローラ4bのスナップコピー生成ロジック314は、二次ボリューム2のトラックをリモート・ポイント・イン・タイム・スナップコピー・ボリューム2’にバックグラウンド・コピーするよう、二次システムに命令するようにさらに構成される。従って、第1の時点での一次ボリューム1のデータの整合したポイント・イン・タイム・スナップコピーを与えるためのボリューム2’に関するデータは、主として二次システム24b内のデータ転送により取得することができる。
図の計算コンポーネントは、それぞれ、図10に示されるコンピュータ・システム1002などの1つ又は複数のコンピュータ・システムにおいて実装することができる。コンピュータ・システム/サーバ1002は、コンピュータ・システムにより実行される、プログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な文脈において説明することができる。一般に、プログラム・モジュールは、特定のタスクを実行する、又は特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含むことができる。コンピュータ・システム/サーバ1002は、タスクが通信ネットワークを介してリンクされたリモート処理デバイスによって実行される分散クラウド・コンピューティング環境において実施することができる。分散クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ・ストレージ・デバイスを含むローカル及びリモート両方のコンピュータ・システム・ストレージ媒体内に配置され得る。
図10に示されるように、コンピュータ・システム/サーバ1002が、汎用コンピューティング・デバイスの形態で示される。コンピュータ・システム/サーバ1002のコンポーネントは、これらに限定されるものではないが、1つ又は複数のプロセッサ又は処理ユニット1004と、システム・メモリ1006と、システム・メモリ1006を含む種々のシステム・コンポーネントをプロセッサ1004に結合するバス1008とを含むことができる。バス1008は、種々のバス・アーキテクチャのいずれかを使用するメモリ・バス若しくはメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、及びプロセッサ・バス若しくはローカル・バスを含む、幾つかのタイプのバス構造のいずれかの1つ又は複数を表す。限定としてではなく例として、そうしたアーキテクチャは、業界標準アーキテクチャ(Industry Standard Architecture、ISA)バス、マイクロ・チャネル・アーキテクチャ(Micro Channel Architecture、MCA)バス、拡張ISA(Enhanced ISA、EISA)バス、Video Electronics Standards Association(VESA)ローカル・バス、及びPeripheral Component Interconnects(PCI)バスを含む。
コンピュータ・システム/サーバ1002は、一般的に、種々のコンピュータ・システム可読媒体を含む。そうした媒体は、コンピュータ・システム/サーバ1002によってアクセス可能である任意の利用可能な媒体とすることができ、それは、揮発性媒体及び不揮発性媒体、取外し可能媒体及び取外し不能媒体の両方を含む。
システム・メモリ1006は、ランダム・アクセス・メモリ(RAM)1010及び/又はキャッシュ・メモリ1012などの揮発性メモリの形態でコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ1002は、他の取外し可能な/取外し不能な、揮発性/不揮発性のコンピュータ・システム・ストレージ媒体をさらに含むことができる。単なる例として、(図示されていない、通常「ハード・ディスク」と呼ばれる)取外し不能な、不揮発性の磁気媒体から読み取り、そうした媒体に書き込むためのストレージ・システム1013を提供することができる。図示されないが、取外し可能な、不揮発性の磁気ディスク(例えば、「フロッピー・ディスク」)から読み取り、そうしたディスクに書き込むための磁気ディスク・ドライブ、及びCD-ROM、DVD-ROM、若しくは他の光媒体などの取外し可能な、不揮発性の光ディスクから読み取り、そうしたディスクに書き込むための光ディスク・ドライブを提供することができる。そうした例において、それぞれが、1つ又は複数のデータ媒体インターフェースによってバス1008に接続され得る。以下でさらに示され、説明されるように、メモリ1006は、本発明の実施形態の機能を実行するように構成されたプログラム・モジュールのセット(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含むことができる。
プログラム・モジュール1016のセット(少なくとも1つ)を有するプログラム/ユーティリティ1014が、限定としてではなく一例として、オペレーティング・システム、1つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データとともにメモリ1006に格納され得る。オペレーティング・システム、1つ又は複数のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データ、又はそれらの何らかの組み合わせのそれぞれが、ネットワーキング環境の実装形態を含むことができる。コンピュータ1002のコンポーネントは、一般に、本明細書において説明されるような本発明の実施形態の機能及び/又は方法を実行するプログラム・モジュール1016として実装することができる。図1のシステムは、1つ又は複数のコンピュータ・システム1002内に実装することができ、それらが複数のコンピュータ・システム1002内に実装される場合、コンピュータ・システムは、ネットワーク上で通信することができる。
コンピュータ・システム/サーバ1002は、キーボード、ポインティング・デバイス、ディスプレイ1020等の1つ又は複数の外部デバイス1018;ユーザがコンピュータ・システム/サーバ1002と対話することを可能にする1つ又は複数のデバイス;及び/又はコンピュータ・システム/サーバ1002が1つ又は複数の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス(例えば、ネットワーク・カード、モデム等)と通信することも可能である。そうした通信は、入力/出力(I/O)インターフェース1022を介して行うことができる。さらに、コンピュータ・システム/サーバ1002は、ネットワーク・アダプタ1024を介してローカル・エリア・ネットワーク(LAN)、汎用広域ネットワーク(WAN)、及び/又はパブリック・ネットワーク(例えば、インターネット)などの1つ又は複数のネットワークと通信することができる。示されるように、ネットワーク・アダプタ1024は、バス1008を介してコンピュータ・システム/サーバ1002の他のコンポーネントと通信する。図示されていないが、他のハードウェア及び/又はソフトウェアのコンポーネントがコンピュータ/システム/サーバ1002に関連して使用され得ることを理解されたい。例として、これらに限定されるものではないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、及びデータ・アーカイブ・ストレージ・システム等が挙げられる。
i、j及びnなどの、本明細書で使用される参照文字は、要素のインスタンスの変数を示すために使用され、同じ又は異なる値を表すことがあり、記載される異なるインスタンスにおける異なる又は同じ要素と共に用いられるとき、同じ又は異なる値を表すことがある。
本発明は、システム、方法、及び/又はコンピュータ・プログラム製品とすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体(単数又は複数)を含むことができる。
コンピュータ可読ストレージ媒体は、命令実行デバイスにより使用される命令を保持及び格納できる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子記憶装置、磁気記憶装置、光学記憶装置、電磁気記憶装置、半導体記憶装置、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストとして、以下のもの:即ち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能なプログラム可能読み出し専用メモリ(EPROM又はフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み出し専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー・ディスク、パンチカード又は命令が記録された溝内の隆起構造のような機械的にエンコードされたデバイス、及び上記のいずれかの適切な組み合わせが挙げられる。本明細書で使用される場合、コンピュータ可読ストレージ媒体は、電波、又は他の自由に伝搬する電磁波、導波管若しくは他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバ・ケーブルを通る光パルス)、又はワイヤを通って伝搬される電気信号などの、一時的信号自体として解釈されない。
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスに、又は、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク及び/又は無線ネットワークなどのネットワークを介して外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、及び/又はエッジ・サーバを含むことができる。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カード又はネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、コンピュータ可読プログラム命令を転送して、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体内に格納する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、又は、Java、Smalltalk、C++などのオブジェクト指向プログラミング言語、又は、「C」プログラミング言語若しくは類似のプログラミング言語などの通常の手続き型プログラミング言語を含む1つ又は複数のプログラミング言語の任意の組み合わせで記述することができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部がリモートコンピュータ上で実行される場合もあり、又は完全にリモートコンピュータ若しくはサーバ上で実行される場合もある。最後のシナリオにおいては、リモートコンピュータは、ローカル・エリア・ネットワーク(LAN)若しくは広域ネットワーク(WAN)を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続がなされる場合もある(例えば、インターネット・サービス・プロバイダを用いたインターネットを通じて)。幾つかの実施形態において、例えば、プログラム可能ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、又はプログラム可能ロジックアレイ(PLA)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を用いて電子回路を個人化することによりコンピュータ可読プログラム命令を実行し、本発明の態様を実施することができる。
本発明の態様は、本発明の実施形態による方法、装置(システム)及びコンピュータ・プログラム製品のフローチャート図及び/又はブロック図を参照して説明される。フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図内のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されるであろう。
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、
又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロック内で指定された機能/動作を実装するための手段を作り出すようにすることができる。これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、それにより、そのコンピュータ可読媒体内に格納された命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装する命令を含む製品を含むようにすることもできる。
コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上で行わせてコンピュータ実施のプロセスを生成し、それにより、コンピュータ又は他のプログラム可能装置、又は他のデバイス上で実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実行するようにすることもできる。
図面内のフローチャート及びブロック図は、本発明の種々の実施形態による、システム、方法、及びコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能及び動作を示す。この点に関して、フローチャート又はブロック図内の各ブロックは、指定されたロジック機能を実装するための1つ又は複数の実行可能命令を含む、モジュール、セグメント、又はコードの一部を表すことができる。幾つかの代替的な実装において、ブロック内に示される機能は、図に示される順序とは異なる順序で生じることがある。例えば、連続して示される2つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックはときとして逆順で実行されることもある。ブロック図及び/又はフローチャート図の各ブロック、及びブロック図及び/又はフローチャート図内のブロックの組み合わせは、指定された機能又は動作を実行する、又は専用のハードウェアとコンピュータ命令との組み合わせを実行する、専用ハードウェア・ベースのシステムによって実装できることにも留意されたい。
「1つの実施形態(an embodiment)」、「実施形態(embodiment)」、「(複数の)実施形態(embodiments)」、「その実施形態(the embodiment)」、「(複数の)その実施形態(the embodiments)」、「1つ又は複数の実施形態(one or more embodiments)」、「幾つかの実施形態(some embodiments)」、及び「一実施形態(one embodiment)」という用語は、明示的に別段の定めがない限り、「本発明の1つ又は複数の(しかし、全てではない)実施形態」を意味する。
「含んでいる(including)」、「備えている(comprising)」、「有している(having)」という用語及びその変形は、明示的に別段の定めがない限り、「含むが、それに制限されない(including but not limited to)」ことを意味する。
列挙される項目のリストは、明示的に別段の定めがない限り、項目のいずれか又は全てが相互に排他的であることを意味しない。
「1つの(a)」、「1つの(an)」、「その(the)」という用語は、明示的に別段の定めがない限り、「1つ又は複数(one or more)」を意味する。
互いに通信するデバイスは、明示的に別段の定めがない限り、互いに連続的に通信する必要はない。さらに、互いに通信するデバイスは、1つ又は複数の中間物を介して、直接又は間接的に通信することもある。
互いに通信する幾つかのコンポーネントを用いる1つの実施形態の記述は、全てのそう
したコンポーネントが必要とされることを意味するものではない。これに反して、種々の随意的なコンポーネントが、本発明の多種多様の可能な実施形態を示すために説明される。
単一のデバイス又は物品が本明細書に説明されるが、単一のデバイス/物品の代わりに、1つより多いデバイス/物品(これらが協働しても又はしなくても)を用い得ることは容易に明らかであろう。同様に、1つより多いデバイス又は物品が本明細書で説明される場合(これらが協働しても又はしなくても)、1つより多いデバイス又は物品の代わりに単一のデバイス/物品を用いてもよく、又は示される数のデバイス又は物品の代わりに異なる数のデバイス/物品を用いてもよいことは、容易に明らかであろう。デバイスの機能及び/又は特徴を、そうした機能/特徴を有するものとして明示的に説明されていない1つ又は複数の他のデバイスによって代替的に具体化することもできる。従って、本発明の他の実施形態が、デバイス自体を含む必要はない。
本発明の種々の実施形態の上記の記載は、例示及び説明のために提示されている。これは、網羅的であること又は本発明を開示された正確な形態に限定することを意図していない。上記の教示に照らして、多くの修正及び変形が可能である。本発明の範囲は、詳細な説明により制限されるものではなく、むしろ、これに添付される特許請求の範囲により制限されることが意図される。上記の詳述、例及びデータは、本発明の構成の製造及び使用の完全な説明を提供する。本発明の趣旨及び範囲から逸脱することなく、本発明の多くの実施形態を作成できるので、本発明は、以下に添付する本明細書における特許請求の範囲内にある。
1、2、8:ボリューム
2a、2b、...2n:ホスト
4、4a、4b:ストレージ・コントローラ
6:ネットワーク
10a:一次ストレージ
10b:二次ストレージ
12:CPUコンプレックス
24a:一次ストレージ・システム
24b:二次ストレージ・システム
216:監視プログラム
220:アプリケーション
230、1006:メモリ
232:ストレージ・マネージャ
234:データ複製ロジック
240:コピー関係
244、244a、244b:ビットマップ
311:整合性グループロジック
312、336a、336b:データ構造
314:スナップコピー生成ロジック
334:シーケンス番号判断ロジック
344:状態判断ロジック
348:遅延ロジック
350:コマンドロジック
1002:コンピュータ・システム/サーバ
1006:システム・メモリ
1008:バス
1014:プログラム/ユーティリティ
1016:プログラム・モジュール
1020:ディスプレイ
1022:入力/出力(I/O)インターフェース
1024:ネットワーク・アダプタ
CG0、CG1、CG2...:整合性グループのシーケンス番号

Claims (7)

  1. 第1の位置のホスト及び一次ストレージ・システム並びに前記第1の位置とは離れた第2の位置の二次ストレージ・システムと共に用いられる一次ストレージ・コントローラであって、前記一次ストレージ・システムは、一次ストレージ・コントローラと前記一次ストレージ・コントローラにより制御されかつ複数のデータ・ユニットを格納するように構成された少なくとも1つのストレージ・ユニットとを有し、前記二次ストレージ・システムは、二次ストレージ・コントローラと前記二次ストレージ・コントローラにより制御されかつ複数のデータ・ユニットを格納するように構成された少なくとも1つのストレージ・ユニットとを有し、前記一次ストレージ・コントローラは、
    前記一次ストレージ・システムのストレージ・ユニット内に格納された第1のデータ・ユニットから前記二次ストレージ・システムのストレージ・ユニット内に格納された第2のデータ・ユニットへデータを非同期ミラーリングし、かつ、前記一次ストレージ・システムのストレージ・ユニット内に格納された第3のデータ・ユニットから前記二次ストレージ・システムのストレージ・ユニット内に格納された第4のデータ・ユニットへデータを非同期ミラーリングするように構成されたデータ・ミラーリングロジックと、
    前記一次ストレージ・システムのストレージ・ユニットに対する前記二次ストレージ・システムのストレージ・ユニットのデータ・ユニットの整合性グループを生成するように構成された整合性グループロジックと、
    スナップコピー・ソースとしての前記第1のデータ・ユニットから、スナップコピー・ターゲットとしての前記第3のデータ・ユニットへの、前記一次ストレージ・システムにおけるローカル・ポイント・イン・タイム・スナップコピー関係と、スナップコピー・ソースとしての前記第2のデータ・ユニットから、スナップコピー・ターゲットとしての前記第4のデータ・ユニットへの、前記二次ストレージ・システムにおけるリモート・ポイント・イン・タイム・スナップコピー関係とを含むスナップコピー関係のローカル・リモート対を確立するためのローカル・リモート対確立コマンドを受け取り、前記ローカル・リモート対確立コマンドに応答して、スナップコピー関係のローカル・リモート対を開始するように構成されたスナップコピー生成ロジックと、
    を含むデータ複製ロジックを含み、前記スナップコピー生成ロジックは、
    前記ローカル・リモート対確立コマンドの受信時に整合性グループ形成プロセスの状態が複数の状態のうちの少なくとも1つであると判断するように構成された状態判断ロジックであって、前記複数の状態はアイドル状態及びドレーン状態を含み、アイドル状態は、前記第2及び第4のデータ・ユニットを含む整合性グループの形成が完了している状態であって、当該状態では前記第4のデータ・ユニットのボリュームは前記第2のデータ・ユニットのボリュームに対して整合しており、ドレーン状態は、前記整合性グループの形成が完了していない状態である、状態判断ロジックと、
    整合性グループ形成プロセスの状態が、前記ドレーン状態にあると判断される場合、前記リモート・ポイント・イン・タイム・スナップコピー関係の確立を遅延させるように構成された遅延ロジックと、
    を含む、一次ストレージ・コントローラ。
  2. 前記スナップコピー生成ロジックは、前記ローカル・リモート対確立コマンドに応答して、リソース予約コマンドを前記二次ストレージ・コントローラに発行し、後の前記ローカル・リモート対の前記リモート・ポイント・イン・タイム・スナップコピー関係の確立のために前記二次ストレージ・システムのスナップコピーに対するメモリ空間を予約するように構成されたコマンドロジックをさらに含む、請求項1に記載の一次ストレージ・コントローラ。
  3. 前記スナップコピー生成ロジックは、前記整合性グループ形成プロセスの状態とは無関係に、前記ローカル・リモート対の前記ローカル・ポイント・イン・タイム・スナップコピー関係を開始し確立するようにさらに構成される、請求項1に記載の一次ストレージ・コントローラ。
  4. 前記コマンドロジックは、整合性グループ形成プロセスの状態が、前記ローカル・リモート対確立コマンドを受け取ったアイドル状態にあると判断された場合、後の前記リモート・ポイント・イン・タイム・スナップコピー関係の確立のために予約された前記二次ストレージ・システムの前記スナップコピーに対するメモリ空間を用いて、前記ローカル・リモート対の前記リモート・ポイント・イン・タイム・スナップコピー関係を確立するよう、前記二次ストレージ・コントローラに命令するようにさらに構成される、請求項2に記載の一次ストレージ・コントローラ。
  5. 第1の位置の第1のストレージ・システムのストレージ・ユニット内に格納された第1のデータ・ユニットから、第2の位置の第2のストレージ・システムのストレージ・ユニット内に格納された第2のデータ・ユニットへデータを非同期ミラーリングすることと、
    前記第1の位置のストレージ・ユニット内に格納された第3のデータ・ユニットから、前記第2の位置のストレージ・ユニット内に格納された第4のデータ・ユニットへデータを非同期ミラーリングすることと、
    スナップコピー・ソースとしての前記第1のデータ・ユニットから、スナップコピー・ターゲットとしての前記第3のデータ・ユニットへの、前記第1のストレージ・システムにおけるローカル・ポイント・イン・タイム・スナップコピー関係と、スナップコピー・ソースとしての前記第2のデータ・ユニットから、スナップコピー・ターゲットとしての前記第4のデータ・ユニットへの、前記第2のストレージ・システムにおけるリモート・ポイント・イン・タイム・スナップコピー関係とを含むポイント・イン・タイム・スナップコピー関係のローカル・リモート対を確立するためのローカル・リモート対確立コマンドを受け取ることと、
    前記ローカル・リモート対確立コマンドに応答して、ポイント・イン・タイム・スナップコピー関係のローカル・リモート対を開始することであって、
    前記ローカル・リモート対確立コマンドの受信時に整合性グループ形成プロセスの状態が複数の状態のうちの少なくとも1つであると判断することであって、前記複数の状態はアイドル状態及びドレーン状態を含み、アイドル状態は、前記第2及び第4のデータ・ユニットを含む整合性グループの形成が完了している状態であって、当該状態では前記第4のデータ・ユニットのボリュームは前記第2のデータ・ユニットのボリュームに対して整合しており、ドレーン状態は、前記整合性グループの形成が完了していない状態である、判断することと、
    整合性グループ形成プロセスの状態が、前記ドレーン状態にあると判断される場合、前記リモート・ポイント・イン・タイム・スナップコピー関係の確立を遅延させることと、
    を含む、開始することと、
    を含む方法。
  6. プロセッサに、請求項5に記載の方法の各ステップを実行させるためのコンピュータ・プログラム。
  7. プロセッサに、請求項5に記載の方法の各ステップを実行させるためのコンピュータ・プログラムを記憶した記憶媒体。
JP2020503267A 2017-07-29 2018-07-24 整合性グループにおける整合したポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成 Active JP7210537B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/663,727 US10223210B2 (en) 2017-07-29 2017-07-29 Asynchronous local and remote generation of consistent point-in-time snap copies in consistency groups
US15/663,727 2017-07-29
PCT/IB2018/055499 WO2019025902A1 (en) 2017-07-29 2018-07-24 LOCAL AND REMOTE ASYNCHRONOUS GENERATION OF COHERENT CONSISTENT PICTURE COPIES IN CONSISTENT GROUPS

Publications (3)

Publication Number Publication Date
JP2020528618A JP2020528618A (ja) 2020-09-24
JP2020528618A5 JP2020528618A5 (ja) 2020-11-12
JP7210537B2 true JP7210537B2 (ja) 2023-01-23

Family

ID=65137910

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020503267A Active JP7210537B2 (ja) 2017-07-29 2018-07-24 整合性グループにおける整合したポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成

Country Status (6)

Country Link
US (2) US10223210B2 (ja)
JP (1) JP7210537B2 (ja)
CN (1) CN110998538B (ja)
DE (1) DE112018003084B4 (ja)
GB (1) GB2578846B (ja)
WO (1) WO2019025902A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10229180B2 (en) * 2017-06-01 2019-03-12 International Business Machines Corporation Consistent point-in-time copy of a consistent asynchronous mirror target without pausing a consistent asynchronous mirror copy
US10783047B2 (en) * 2018-09-06 2020-09-22 International Business Machines Corporation Forming a consistency group comprised of volumes maintained by one or more storage controllers
US11099942B2 (en) * 2019-03-21 2021-08-24 International Business Machines Corporation Archival to cloud storage while performing remote backup of data
US11307944B2 (en) * 2020-06-04 2022-04-19 Hitachi, Ltd. Automated failover for asynchronous remote copy
US11360867B1 (en) 2021-03-31 2022-06-14 Netapp, Inc. Re-aligning data replication configuration of primary and secondary data serving entities of a cross-site storage solution after a failover event
US11934670B2 (en) * 2021-03-31 2024-03-19 Netapp, Inc. Performing various operations at the granularity of a consistency group within a cross-site storage solution
US11740811B2 (en) 2021-03-31 2023-08-29 Netapp, Inc. Reseeding a mediator of a cross-site storage solution
US11550679B2 (en) 2021-03-31 2023-01-10 Netapp, Inc. Methods and systems for a non-disruptive planned failover from a primary copy of data at a primary storage system to a mirror copy of the data at a cross-site secondary storage system
US11481139B1 (en) 2021-03-31 2022-10-25 Netapp, Inc. Methods and systems to interface between a multi-site distributed storage system and an external mediator to efficiently process events related to continuity
US11709743B2 (en) 2021-03-31 2023-07-25 Netapp, Inc. Methods and systems for a non-disruptive automatic unplanned failover from a primary copy of data at a primary storage system to a mirror copy of the data at a cross-site secondary storage system
US11409622B1 (en) 2021-04-23 2022-08-09 Netapp, Inc. Methods and systems for a non-disruptive planned failover from a primary copy of data at a primary storage system to a mirror copy of the data at a cross-site secondary storage system without using an external mediator
US11893261B2 (en) 2021-05-05 2024-02-06 Netapp, Inc. Usage of OP logs to synchronize across primary and secondary storage clusters of a cross-site distributed storage system and lightweight OP logging
CN113268311B (zh) * 2021-05-12 2024-01-12 西安交通大学 基于用时感知的虚拟机群高效快照方法
US11537314B1 (en) * 2021-10-07 2022-12-27 Netapp, Inc. Resynchronization of individual volumes of a consistency group (CG) within a cross-site storage solution while maintaining synchronization of other volumes of the CG
US11892982B2 (en) 2021-10-20 2024-02-06 Netapp, Inc. Facilitating immediate performance of volume resynchronization with the use of passive cache entries
US11907562B2 (en) 2022-07-11 2024-02-20 Netapp, Inc. Methods and storage nodes to decrease delay in resuming input output (I/O) operations after a non-disruptive event for a storage object of a distributed storage system by utilizing asynchronous inflight replay of the I/O operations

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008040762A (ja) 2006-08-04 2008-02-21 Hitachi Ltd 計算機システム及びそのスナップショット作成方法
US20120150811A1 (en) 2010-12-14 2012-06-14 International Business Machines Corporation Flash-copying within asynchronous mirroring environment

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6253295B1 (en) * 1998-07-20 2001-06-26 International Business Machines Corporation System and method for enabling pair-pair remote copy storage volumes to mirror data in another pair of storage volumes
US8250323B2 (en) * 2007-12-06 2012-08-21 International Business Machines Corporation Determining whether to use a repository to store data updated during a resynchronization
JP5156518B2 (ja) 2008-07-23 2013-03-06 株式会社日立製作所 記憶制御装置及び方法
US8819362B1 (en) 2009-03-26 2014-08-26 Emc Corporation Managing replication and reservations
CN102012789B (zh) 2009-09-07 2014-03-12 云端容灾有限公司 集中管理式备份容灾系统
US8838920B2 (en) 2010-11-17 2014-09-16 International Business Machines Corporation Determining whether to extend a drain time to copy data blocks from a first storage to a second storage
CN102385543A (zh) * 2011-12-22 2012-03-21 创新科存储技术(深圳)有限公司 一种异步镜像方法
US20150081628A1 (en) 2013-09-17 2015-03-19 International Business Machines Corporation Flashcopy reservation for flashcopy onto a synchronously-mirrored source
US9575800B2 (en) * 2014-05-13 2017-02-21 International Business Machines Corporation Using queues corresponding to attribute values and priorities associated with units of work and sub-units of the unit of work to select the units of work and their sub-units to process
US9727262B2 (en) * 2015-12-28 2017-08-08 Netapp, Inc. Low overhead resynchronization snapshot creation and utilization

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008040762A (ja) 2006-08-04 2008-02-21 Hitachi Ltd 計算機システム及びそのスナップショット作成方法
US20120150811A1 (en) 2010-12-14 2012-06-14 International Business Machines Corporation Flash-copying within asynchronous mirroring environment

Also Published As

Publication number Publication date
JP2020528618A (ja) 2020-09-24
DE112018003084B4 (de) 2020-10-08
US10223210B2 (en) 2019-03-05
DE112018003084T5 (de) 2020-03-05
GB2578846B (en) 2020-10-21
GB2578846A (en) 2020-05-27
US20190034286A1 (en) 2019-01-31
CN110998538B (zh) 2023-10-24
US10733060B2 (en) 2020-08-04
GB202000451D0 (en) 2020-02-26
CN110998538A (zh) 2020-04-10
WO2019025902A1 (en) 2019-02-07
US20190171528A1 (en) 2019-06-06

Similar Documents

Publication Publication Date Title
JP7210537B2 (ja) 整合性グループにおける整合したポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成
US10936447B2 (en) Resynchronizing to a first storage system after a failover to a second storage system mirroring the first storage system
US10162563B2 (en) Asynchronous local and remote generation of consistent point-in-time snap copies
US10824364B2 (en) Point-in-time snap copy on asynchronous consistency group management
US10915406B2 (en) Storage unit replacement using point-in-time snap copy
US11347604B2 (en) Point-in-time snap copy withdrawal management
US11119687B2 (en) Device reservation state synchronization in data mirroring
US10884872B2 (en) Device reservation state preservation in data mirroring
US10613946B2 (en) Device reservation management for overcoming communication path disruptions
CN111684407B (zh) 多个数据存储系统中的同步安全数据提交扫描
US10740007B2 (en) Synchronized primary-secondary role swaps with synchronized safe data commit scans
US10936194B2 (en) Storage device status management for conflict avoidance in a data storage system

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200824

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201222

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211019

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220117

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220502

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220607

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220905

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221220

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230111

R150 Certificate of patent or registration of utility model

Ref document number: 7210537

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150