JP7184909B2 - 複数のデータ・ストレージ・システムにおける同期されたセーフ・データ・コミット・スキャン - Google Patents

複数のデータ・ストレージ・システムにおける同期されたセーフ・データ・コミット・スキャン Download PDF

Info

Publication number
JP7184909B2
JP7184909B2 JP2020543167A JP2020543167A JP7184909B2 JP 7184909 B2 JP7184909 B2 JP 7184909B2 JP 2020543167 A JP2020543167 A JP 2020543167A JP 2020543167 A JP2020543167 A JP 2020543167A JP 7184909 B2 JP7184909 B2 JP 7184909B2
Authority
JP
Japan
Prior art keywords
data storage
storage system
data
safe
commit scan
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
JP2020543167A
Other languages
English (en)
Other versions
JP2021515926A (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 JP2021515926A publication Critical patent/JP2021515926A/ja
Application granted granted Critical
Publication of JP7184909B2 publication Critical patent/JP7184909B2/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/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/2058Error 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 more than 2 mirrored copies
    • 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/2066Optimisation of the communication load
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/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
    • 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/0653Monitoring storage devices or systems
    • 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
    • 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/2097Error 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 maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/835Timestamp

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Description

本発明は、複数のデータ・ストレージ・システムにおける同期されたセーフ・データ・コミット・スキャンのためのコンピュータ・プログラム製品、システム、および方法に関する。
データ・ストレージ・システムは、特に企業レベルでは、通常、データ・ストレージ・システムの構成要素の故障時のデータ喪失のリスクを減らすために、高レベルの冗長性をもたらすように設計される。それ故に、個々のデータ・ストレージ・システムが地理的に拡散される可能性がある分散型データ・ストレージ・システムの複数のシステムに、データの複数のコピーが頻繁に格納される。したがって、分散型データ・ストレージ・システムに格納されることになるホストからのデータは、典型的には、ローカル・サイトにある1次データ・ストレージ・システムの1次デバイスに向けられ、次に、1次データ・ストレージ・システムから地理的に遠く離れたシステムである可能性のある2次データ・ストレージ・システムの1つまたは複数の2次デバイスに複製される。1つの1次デバイスは、1次デバイスに向けられたデータが、複数の2次デバイスに複製される複数の2次的関係を有することができる。
2次データ・ストレージ・デバイスにデータを複製する、すなわちコピーまたはミラーリングする処理は、1次データ・ストレージ・デバイスと2次データ・ストレージ・デバイスとの間の同期関係または非同期関係のいずれかでセットアップされることが可能である。同期関係では、1次データ・ストレージ・デバイスへのどのような更新も、典型的には、データ・ストレージ入出力(I/O)動作が成功裏に完了したことを、1次データ・ストレージ・デバイスがホストにレポートする前に、2次データ・ストレージ・デバイスと同期される、すなわち、2次データ・ストレージ・デバイスに成功裏にコピーされる。非同期関係では、1次データ・ストレージ・デバイスへの成功した更新は、典型的には、更新が2次データ・ストレージ・デバイスに複製されるのを待たずに、成功したストレージ入出力動作としてホストにレポートされる。
ストレージ・コントローラは、ハードディスク、テープ、ソリッド・ステート・ドライブ等を含むことができる複数のストレージ・デバイスを制御し得る。また、キャッシュは、ストレージ・コントローラによって維持され得るし、ここで、キャッシュは、ハードディスク、テープ等などの一定の他のストレージ・デバイスと比べて、より素早くアクセス可能な高速ストレージを備え得る。しかし、キャッシュのストレージ容量の総量は、ストレージ・コントローラによって制御されるハードディスク等などの一定の他のストレージ・デバイスのストレージ容量に比べて、比較的小さい可能性がある。キャッシュは、種々の方式で互いに相互に動作させることができる、ランダム・アクセス・メモリ(RAM)、不揮発性ストレージ・デバイス(NVS:non-volatile storage device)、リード・キャッシュ、ライト・キャッシュ等の1つまたは複数で構成され得る。NVSは、バッテリ・バックアップ型ランダム・アクセス・メモリで構成され得るし、高速に書込み動作が行われるのを可能にすることができる。ストレージ・コントローラは、ネットワーク化されたホストから複数のストレージ・デバイスへの入出力(I/O)リクエストを管理し得る。
ストレージ・コントローラによって実行されるキャッシュ技術は、入出力(I/O)レイテンシを見えなくするのを支援する。キャッシュは、読込みデータ・アクセス・リクエストをサービスするため、および、修正されたデータのバッファリングを行うために、外部ストレージからステージされたデータへの素早いアクセスのために使用される。書込みリクエストは、キャッシュに書き込まれ、次に、外部ストレージ・デバイスに書き込まれる(すなわち、デステージされる)。
書込みのために低レイテンシが継続されることを保証するために、NVS内のデータは、入って来る書込みのためにいくらかの空の場所が常にあることを保証するように、空ける、すなわちデステージされなければならず、そうしないと、後続の書込みが事実上同時になる可能性があり、ホストの書込みのためのレスポンス時間に不利な影響を及ぼす可能性がある。ストレージ・コントローラは、ストレージにデステージされることになる(しばしば「汚染された」と呼ばれる)修正されたデータのためにキャッシュ・ディレクトリをスキャンするセーフ・データ・コミット処理を頻繁に用いる。キャッシュ・ディレクトリのこのようなスキャンは、例えば、正時になど、周期的にスキャンを開始するために、タイマーを使用して開始され得る。また、セーフ・データ・コミット処理は、例えば、特定のキャッシュにデータをキャッシュするプロセッサに対するプログラム負荷など他のイベントの予想時、または、1次データ・ストレージ・システムと2次データ・ストレージ・システムの1次的役割と2次的役割の交換時に、キャッシュを完全に空にするために開始され得る。
セーフ・データ・コミット・スキャン動作が完了すると、スキャンがスタートされた時間は、典型的には「タイムスタンプ」としてログ記録され、「タイムスタンプ」は、セーフ・データ・コミット・スキャン・スタート時間より前に、データ・ストレージ・システムのキャッシュに書き込まれたどのようなものも、データ・ストレージ・システムのストレージに成功裏にデステージされ、安全に格納されたことをオペレータに保証することを可能にする。しかし、このようなセーフ・データ・コミット・スキャン動作は、かなりのシステム・リソースを消費する可能性があり、同時に発生する入出力動作のレスポンス時間を著しく減速させる。レスポンス時間のこのような減速は、分散型データ・ストレージ・システムの個々のデータ・ストレージ・システムが、セーフ・データ・コミット・スキャン動作を行うたびに繰り返される可能性がある。その結果、分散型データ・ストレージ・システムのオペレータは、分散型データ・ストレージ・システムの様々な個々のデータ・ストレージ・システムによって、セーフ・データ・コミット・スキャン動作が行われているとき、入出力動作のレスポンス時間の多くのこのような減速に遭遇する可能性がある。
したがって、当技術分野において、前述の問題に対処する必要がある。
複数のデータ・ストレージ・システムにおける同期されたセーフ・データ・コミット・スキャンを用いるコンピューティング環境の1つの一般的な態様は、複数のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の第1のセットを同期させることを含み、各セーフ・データ・コミット・スキャン動作が、データ・ストレージ・システムのキャッシュにキャッシュされたデータを、データ・ストレージ・システムのデータ・ストレージ・ユニットにデステージする。1つの態様において、セーフ・データ・コミット・スキャン動作の第1のセットを同期させることは、第1のデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の第1のセットの第1のセーフ・データ・コミット・スキャン動作を開始することと、第1のデータ・ストレージ・システムから第2のデータ・ストレージ・システムに、第1のスタート・セーフ・データ・コミット・スキャン動作メッセージを送信することと、を含む。第1のスタート・セーフ・コミット・スキャン動作メッセージに応答して、第2のデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の第1のセットの第2のセーフ・データ・コミット・スキャン動作が開始される。
1つの態様によれば、ストレージ・コントローラ、およびストレージ・コントローラによって制御され、データを格納するように構成されたデータ・ストレージ・ユニットをそれぞれが備える複数のデータ・ストレージ・システムと共に使用するためのコンピュータ・プログラム製品であって、各データ・ストレージ・システムのストレージ・コントローラが、プロセッサおよびキャッシュを備え、コンピュータ・プログラム製品が、プログラム命令が具現化されたコンピュータ可読ストレージ媒体を備え、プログラム命令が、プロセッサ動作を行わせるようにストレージ・コントローラのプロセッサによって実行可能であり、プロセッサ動作が、複数のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の第1のセットを同期させることを含み、各セーフ・データ・コミット・スキャン動作が、データ・ストレージ・システムのキャッシュにキャッシュされたデータを、データ・ストレージ・システムのデータ・ストレージ・ユニットにデステージし、セーフ・データ・コミット・スキャン動作の第1のセットを同期させることが、第1のデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の第1のセットの第1のセーフ・データ・コミット・スキャン動作を開始することと、第1のデータ・ストレージ・システムから第2のデータ・ストレージ・システムに、第1のスタート・セーフ・データ・コミット・スキャン動作メッセージを送信することと、第1のスタート・セーフ・コミット・スキャン動作メッセージに応答して、第2のデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の第1のセットの第2のセーフ・データ・コミット・スキャン動作を開始することと、を含む、コンピュータ・プログラム製品が提供される。
1つの態様によれば、複数のデータ・ストレージ・システムであって、各データ・ストレージ・システムが、ストレージ・コントローラ、およびストレージ・コントローラによって制御され、データを格納するように構成されたデータ・ストレージ・ユニットを備え、各データ・ストレージ・システムのストレージ・コントローラが、プロセッサおよびキャッシュを備え、複数のデータ・ストレージ・システムが、1次データ・ストレージ・システムとして構成された第1のデータ・ストレージ・システム、および2次データ・ストレージ・システムとして構成された第2のデータ・ストレージ・システムを含む、複数のデータ・ストレージ・システムと、プログラム命令が具現化されたコンピュータ可読ストレージ媒体を備えるコンピュータ・プログラム製品と、を備え、プログラム命令が、プロセッサ動作を行わせるようにストレージ・コントローラのプロセッサによって実行可能であり、プロセッサ動作が、複数のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の第1のセットを同期させることを含み、各セーフ・データ・コミット・スキャン動作が、データ・ストレージ・システムのキャッシュにキャッシュされたデータを、データ・ストレージ・システムのデータ・ストレージ・ユニットにデステージし、セーフ・データ・コミット・スキャン動作の第1のセットを同期させることが、第1のデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の第1のセットの第1のセーフ・データ・コミット・スキャン動作を開始することと、第1のデータ・ストレージ・システムから第2のデータ・ストレージ・システムに、第1のスタート・セーフ・データ・コミット・スキャン動作メッセージを送信することと、第1のスタート・セーフ・コミット・スキャン動作メッセージに応答して、第2のデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の第1のセットの第2のセーフ・データ・コミット・スキャン動作を開始することと、を含む、システムが提供される。
1つの実施形態において、特定のデータ・ストレージ・システムの各セーフ・データ・コミット・スキャン動作は、スタート・メッセージ、または同期タイマー・インターバルの満了、の両方ではなく、どちらかによって開始される。
説明される技術の実装形態は、ハードウェア、方法、もしくは処理、または、コンピュータ・アクセス可能媒体上のコンピュータ・ソフトウェアを含んでもよい。特定の用途に応じて、他の特徴および態様が実現されてもよい。
次に、添付の図面を参照しながら、単なる例として、本発明の実施形態が説明される。
本明細書の1つの実施形態による、複数のデータ・ストレージ・システムにおける同期されたセーフ・データ・コミット・スキャンを用いるコンピューティング環境の実施形態を示す図である。 本明細書の1つの実施形態による同期されたセーフ・データ・コミット・スキャンを用いるストレージ・マネージャをデータ・ストレージ・システムが備える、図1のコンピューティング環境におけるデータ・ストレージ・システムの例を示す図である。 図1のコンピューティング環境におけるホストの例を示す図である。 本明細書の1つの実施形態による同期されたセーフ・データ・コミット・スキャンを用いる分散型データ・ストレージ・システムの1次データ・ストレージ・システムの動作の例を示す図である。 本明細書の1つの実施形態による同期されたセーフ・データ・コミット・スキャンを用いる分散型データ・ストレージ・システムの1次、2次、および3次データ・ストレージ・システムの動作のタイムラインの例を描写する図である。 本明細書の1つの実施形態による同期されたセーフ・データ・コミット・スキャンを用いる分散型データ・ストレージ・システムの1次、2次、および3次データ・ストレージ・システムの動作のタイムラインの例を描写する図である。 本明細書の1つの実施形態による同期されたセーフ・データ・コミット・スキャンを用いる分散型データ・ストレージ・システムの1次、2次、および3次データ・ストレージ・システムの動作のタイムラインの例を描写する図である。 本明細書の1つの実施形態による同期されたセーフ・データ・コミット・スキャンを用いる分散型データ・ストレージ・システムの2次データ・ストレージ・システムの動作の例を示す図である。 本明細書の1つの実施形態による同期されたセーフ・データ・コミット・スキャンを用いる分散型データ・ストレージ・システムの3次データ・ストレージ・システムの動作の例を示す図である。 本明細書の1つの実施形態による同期されたセーフ・データ・コミット・スキャンを用いる分散型データ・ストレージ・システムのマスタおよびサブ(subsidiary)・データ・ストレージ・システムの動作のタイムラインの例を描写する図である。 本明細書の1つの実施形態による同期されたセーフ・データ・コミット・スキャンを用いるコンピュータ実施形態を示す図である。
上述のように、以前の分散型データ・ストレージ・システムのオペレータは、分散型データ・ストレージ・システムの個々のデータ・ストレージ・システムによってセーフ・データ・コミット・スキャン動作が行われるとき、入出力動作のレスポンス時間の多くの減速に遭遇することがある。多くのこのような以前の分散型データ・ストレージ・システムにおいて、セーフ・データ・コミット・スキャン動作を開始するために、分散型データ・ストレージ・システムの各個々のデータ・ストレージ・システムによって用いられるタイマーは、典型的には、様々な個々のデータ・ストレージ・システムの中で互いに独立しているということが本明細書において理解される。例えば、1次、2次、および3次データ・ストレージ・システムなど、例えば、3つの個々のデータ・ストレージ・システムを備える以前の分散型データ・ストレージ・システムにおいて、データ・ストレージ・システムのそれぞれにおいて3つの異なるおよび別個の時間に、3つの別々のセーフ・データ・コミット・スキャンが独立して行われることにより、分散型データ・ストレージ・システムのオペレータがI/Oレスポンス時間の減速に遭遇する3つもの異なるおよび別個の時間がある可能性がある。
本明細書の1つの実施形態において、分散型データ・ストレージ・システムの個々のデータ・ストレージ・システムのセーフ・データ・コミット・スキャン動作は、I/Oレスポンス時間の低下の発生を低減させるために同期されてもよい。1つの実施形態において、分散型データ・ストレージ・システムの個々のデータ・ストレージ・システムのセーフ・データ・コミット・スキャン動作のセットは、同期されたセーフ・データ・コミット・スキャン・セット・インターバルの範囲外の入出力レスポンス時間の低下の発生を低減または除去するために、単一の同期されたセーフ・データ・コミット・スキャン・セット・インターバルの中で時間が実質的に重複するように同期してタイミングを合わされる。
例えば、1つの実施形態において、1次データ・ストレージ・システムなどのデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作を開始すると、1次データ・ストレージ・システムは、2次データ・ストレージ・システムなどの別のデータ・ストレージ・システムに、スタート・セーフ・データ・コミット・スキャン動作メッセージを送信してもよい。スタート・セーフ・コミット・スキャン動作メッセージに応答して、2次データ・ストレージ・システムは、2次データ・ストレージ・システムのセーフ・データ・コミット・スキャン動作を開始する。この処理は、2次データ・ストレージ・システムによって繰り返されてもよく、3次データ・ストレージ・システムなどの別のデータ・ストレージ・システムに、スタート・セーフ・データ・コミット・スキャン動作メッセージを送信し、それに応じて、3次データ・ストレージ・システムのセーフ・データ・コミット・スキャン動作を開始する。このように、分散型データ・ストレージ・システムの様々な個々のストレージ・システムのセーフ・データ・コミット・スキャン動作のセットは、分散型データ・ストレージ・システムのI/O動作のレスポンス時間の減速の発生を低減させるために同期されてもよく、コンピュータ技術の改善をもたらす。
本明細書の別の実施形態において、1次データ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作を完了させると、1次データ・ストレージ・システムは、同期されたセーフ・データ・コミット・スキャン動作の別のセットに、グローバル同期タイマー・インターバルのタイミングを合わせるグローバル・タイマーをスタートしてもよい。1次データ・ストレージ・システムにおけるグローバル同期タイマー・インターバルの満了に応答して、1次データ・ストレージ・システムは、別のスタート・セーフ・データ・コミット・スキャン動作メッセージを2次データ・ストレージ・システムに送信することによって、セーフ・データ・コミット・スキャン動作の別の同期されたセットを開始してもよく、2次データ・ストレージ・システムは、別のスタート・セーフ・データ・コミット・スキャン動作メッセージを3次データ・ストレージ・システムに送信する。このように、分散型データ・ストレージ・システムの様々な個々のストレージ・システムのセーフ・データ・コミット・スキャン動作の別のセットは、分散型データ・ストレージ・システムのI/O動作のレスポンス時間の減速の発生を低減させるために同期されてもよい。
本明細書のさらなる別の実施形態において、2次および3次データ・ストレージ・システムなどのデータ・ストレージ・システムは、同様に、これらのそれぞれのデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作を完了させると、同期されたセーフ・データ・コミット・スキャン動作の次のセットに、同期ローカル・タイマー・インターバルのタイミングを合わせるローカル・タイマーをそれぞれスタートしてもよい。したがって、ローカル同期タイマー・インターバルが満了する時間までに、スタート・セーフ・データ・コミット・スキャン動作メッセージがタイムリに受信されない場合、それでもなお、別のセーフ・データ・コミット・スキャン動作が、ローカル同期タイマー・インターバルの満了に応答して開始されてもよい。
本明細書のさらなる別の実施形態において、スタート・セーフ・データ・コミット・スキャン動作メッセージを受信すると、ローカル同期タイマー・インターバルは、ローカル同期タイマー・インターバルのその後の満了に応答して再び開始されるのではなく、受信されたスタート・メッセージによってのみ、セーフ・データ・コミット・スキャン動作が開始されるように、リセットされる。このように、特定のデータ・ストレージ・システムの各セーフ・データ・コミット・スキャン動作は、スタート・メッセージ、またはローカル同期タイマー・インターバルの満了、の両方ではなく、どちらかによって開始される。
したがって、分散型データ・ストレージ・システムの様々な個々のストレージ・システムのセーフ・データ・コミット・スキャン動作のセットは、スタート・セーフ・データ・コミット・スキャン・メッセージの受信に応答して、または、スタート・セーフ・データ・コミット・スキャン・メッセージがタイムリに受信されない場合、同期タイマー・インターバルの満了に応答して、個々のデータ・ストレージ・システムによって同期されてもよい。その結果、分散型データ・ストレージ・システムの様々な個々のストレージ・システムのセーフ・データ・コミット・スキャン動作の各セットを同期させることによって、分散型データ・ストレージ・システムのI/O動作のレスポンス時間の減速の発生は、低減または最小化される可能性があり、コンピュータ技術の改善をもたらす。特定の用途に応じて、他の実施形態および長所が実現されてもよい。
1つまたは複数のコンピュータのシステムは、本明細書による同期されたセーフ・データ・コミット・スキャン動作を動作時にシステムに行わせるシステムにインストールされたソフトウェア、ファームウェア、ハードウェア、またはこれらの組合せを備えることによって、本明細書による同期されたセーフ・データ・コミット・スキャンのために構成されてもよい。例えば、1つまたは複数のコンピュータ・プログラムが、データ処理装置によって実行されたときにアクションを装置に行わせる命令を含むことによって、同期されたセーフ・データ・コミット・スキャンを行うように構成されてもよい。
本明細書において説明される動作は、手動で行われるものとして示された場合を除いて、システム・オペレータの介入がほとんどないまたは全くない、自動的にまたは実質的に自動的に動作を行うように構成されたロジックによって行われる。したがって、本明細書において使用されるように、用語「自動的(automatic)」は、両方完全に自動的、すなわち、グラフィカル・ユーザ選択インターフェースへのユーザ入力など、人間の介入がない、1つまたは複数のハードウェアまたはソフトウェア制御の機械によって行われる動作を含む。本明細書において使用されるように、用語「自動的」は、主として自動的、をさらに含み、すなわち、動作の大部分(例えば50%より多いなど)は、グラフィカル・ユーザ選択インターフェースへのユーザ入力など、人間の介入がない、1つまたは複数のハードウェアまたはソフトウェア制御の機械によって行われ、残りの動作(例えば50%より少ない)は手動で行われ、すなわち、手動動作は、動作の実行を指図するためのグラフィカル・ユーザ選択インターフェースへのユーザ入力など、人間の介入がある、1つまたは複数のハードウェアまたはソフトウェア制御の機械によって行われる。
本明細書において説明される機能要素の多くは、これらの実行の独立性をさらに具体的に強調するために、「ロジック」としてラベルを付けられた。例えば、ロジック要素は、カスタムVLSI回路もしくはゲート・アレイを備えるハードウェア回路、論理チップなどの市販の半導体、トランジスタ、または他の個別のコンポーネントとして実装されてもよい。また、ロジック要素は、フィールド・プログラマブル・ゲート・アレイ、プログラマブル・アレイ・ロジック、プログラマブル・ロジック・デバイス、または同様のものなど、プログラマブル・ハードウェア・デバイスに実装されてもよい。
また、ロジック要素は、様々なタイプのプロセッサによる実行のためにソフトウェアに実装されてもよい。例えば、実行可能コードを含むロジック要素は、オブジェクト、手順、または機能として構成されてもよいコンピュータ命令の1つまたは複数の物理または論理ブロックを備えてもよい。それでも、識別されたロジック要素の実行可能ファイルは、物理的に一緒に配置される必要はないが、一緒に論理的に結合されるとき、ロジック要素を備え、ロジック要素のための決められた目的を実現する、異なる位置に格納された完全に異なる命令を備えてもよい。
実際は、ロジック要素のための実行可能コードは、単一の命令、または多くの命令であってもよく、異なるプログラム間の、異なるプロセッサ間の、および、いくつかのメモリ・デバイスにわたる、いくつかの異なる符号セグメント上に分散させることさえできる。同様に、動作データが、ロジック要素内に本明細書において識別され、示されてもよく、任意の適切な形で具現化され、任意の適切なタイプのデータ構造の中に構成されてもよい。動作データは、単一のデータ・セットとして集められてもよく、または、異なるストレージ・デバイス上を含む異なる位置にわたって分散されてもよい。
説明される技術の実装形態は、ハードウェア、方法もしくは処理、または、コンピュータ・アクセス可能媒体上のコンピュータ・ソフトウェアを含んでもよい。図1、図2は、本明細書による同期されたセーフ・データ・コミット・スキャンを用いるコンピューティング環境の実施形態を示す。複数のホスト1a、1b~1nは、データを読み込む、または書き込むために、1つまたは複数のデータ・ストレージ・デバイスまたはシステム2a、2b、2c、2(図2)に、ネットワーク6で入出力(I/O)リクエストをサブミットしてもよい。ホスト1a、1b~1nは、別々の物理デバイスであってもよく、または、例えば、サーバの区画の割り当てられたリソースを使用して実装される仮想デバイスであってもよい。同様に、1つまたは複数のデータ・ストレージ・システム2(図2)、2a、2b、2cは、別々の物理デバイスであってもよく、または、例えば、1つまたは複数のサーバの区画の割り当てられたリソースを使用して実装される仮想デバイスであってもよい。
図示の実施形態において、データ・ストレージ・システム2aは、1次データ・ストレージ・システムとして少なくとも最初に識別され、データ・ストレージ・システム2bは、2次データ・ストレージ・システムとして少なくとも最初に識別され、ここで、ホストによって1次データ・ストレージ・システム2aに格納されたデータは、2次データ・ストレージ・システム2bにミラーリングされる。図1に描写された実施形態は、単一の2次データ・ストレージ・システム2bを描写するが、1次データ・ストレージ・システム2aは、2つ以上の2次データ・ストレージ・システムを備えてもよいということが理解される。第3のデータ・ストレージ・システム2cは、3次データ・ストレージ・システムとして少なくとも最初に識別され、ここで、2次データ・ストレージ・システム2bにミラーリングされたデータは、次に3次データ・ストレージ・システム2cにミラーリングされる。
各データ・ストレージ・システム2(図2)、2a、2b、2cは、ストレージ・コントローラ、すなわち、制御ユニット4(図2)、4a、4b、4cをそれぞれ含み、制御ユニットは、ストレージ10、10a、10b、10cそれぞれの複数のデータ・ストレージ・ユニットに格納されたデータにアクセスする。ストレージ10、10a、10b、10cの各データ・ストレージ・ユニットは、当技術分野で知られた物理ハードディスク、ソリッド・ステート・デバイス、等など、データを格納することができる任意の適切なデバイスを備えてもよい。したがって、1つの実施形態において、ストレージ10、10a、10b、10cは、ハードディスク・ドライブおよび磁気テープなど、1つもしくは複数の順次アクセス・ストレージ・デバイスで構成されてもよく、または、例えば、ソリッド・ステート・デバイス(SSD)などの非順次アクセス・ストレージ・デバイスを含んでもよい。ストレージ10(図2)、10a、10b、10cの各デバイスは、データ・ストレージのための単一の順次もしくは非順次アクセス・デバイスを備えてもよく、または、JBOD(単純ディスク束)、DASD(ダイレクト・アクセス・ストレージ・デバイス)、RAID(独立ディスクの冗長アレイ(Redundant Array of Independent Disks))アレイ、仮想化デバイス、テープ・ストレージ、フラッシュ・メモリ等など、データ・ストレージのためのデバイスのアレイを備えてもよい。
一定の実施形態において、例えば、ストレージ・ユニットは、RAID(独立ディスクの冗長アレイ)のストレージ・ランクまたはアレイ11a(図2)~11nとして構成されたディスクであってもよく、ここで、1つまたは複数のRAIDストレージ・ランクは、ハードディスクの喪失時のデータ・リカバリを容易にするための、RAID構成のハードディスクのアレイである。また、ストレージ10、10a、10bのストレージ・ユニットは、ソリッド・ステート・デバイスの喪失時のデータ・リカバリを容易にするための、RAID構成のソリッド・ステート・デバイスなど、他のタイプのストレージを含んでもよい。ストレージ10(図2)、10a、10b、10cのストレージ・ユニットは、ボリューム、トラック等など、データ・ストレージのサブユニットに、データを格納するように構成されてもよい。
各ストレージ・コントローラ4(図2)、4a、4b、4cは、それぞれが単一または複数のプロセッサ・コアを備える、1つまたは複数のプロセッサまたは中央処理装置によって提供されるプロセッサ・リソースを含むCPU複合体12(図2)を含む。本実施形態において、プロセッサ・コアは、例えば、算術論理演算装置(ALU)、浮動小数点ユニット(FPU)、または、(L1およびL2キャッシュなどの)様々なレベルのキャッシュ、あるいはその組合せなど、命令の実行に従事するCPUの構成要素を含む。プロセッサ・コアは、本明細書において述べられたものに加えて、またはその代わりに、他のロジック要素を備えてもよいということが理解される。
各ストレージ・コントローラ4(図2)、4a、4b、4cは、ホストからのI/Oデータ・リクエスト、または、別のデータ・ストレージ・システムからミラーリングされたデータに応答して、関連付けられたストレージ10(図2)、10a、10b、10cにデータを書き込むこと、または、そこからデータを読み込むことを含むストレージ動作を管理するためのストレージ・マネージャ24を含むメモリ20をさらに備える。メモリ20のキャッシュ28は、RAM、ライト・キャッシュ、リード・キャッシュ、NVS等など、種々のタイプのメモリの1つまたは複数を備えてもよい。キャッシュを備える種々のタイプのメモリは、互いに相互に動作してもよい。各ストレージ・コントローラ4(図2)、4a、4b、4cのCPU複合体12は、プロセッサの複数のクラスタを備えてもよく、各クラスタは、独自の割り当てられたメモリ20、ストレージ・マネージャ24、キャッシュ28、等を備える。各クラスタに割り当てられた処理およびメモリ・リソースは、特定の用途に応じて、物理的なもの、仮想のもの、共有されるもの、移送可能なもの、または専用のものであってよい。
ホスト1a~1nからの書込みは、1次ストレージ・コントローラ4aのキャッシュ28に最初に書き込まれ、次に、1次ストレージ・システム2aのストレージ10aに後でデステージされてもよい。ホスト1a~1nからの読込みリクエストは、対応する情報がこのキャッシュ28において利用可能である場合、1次ストレージ・コントローラ4aのキャッシュ28から充足されてもよく、そうでなければ、情報は、ストレージ10aからキャッシュ28にステージされ、次に、リクエストするホスト1a~1nに提供される。
1次ストレージ・コントローラ4aのキャッシュ28およびストレージ10aに最初に書き込まれたホスト1a~1nからの書込みは、1次ストレージ・コントローラ4aのストレージ・マネージャ24によって、2次ストレージ・コントローラ4bにミラーリングされてもよい。ミラーリングされたデータは、2次ストレージ・コントローラ4bのキャッシュ28に最初に書き込まれ、次に、2次ストレージ・システム2bの2次ストレージ・コントローラ4bによって制御されたストレージ10bに後でデステージされてもよい。2次ストレージ・コントローラ4bのキャッシュ28およびストレージ10bにミラーリングされたデータは、2次ストレージ・コントローラ4bのストレージ・マネージャ24によって、3次ストレージ・コントローラ4cにミラーリングされてもよい。ミラーリングされたデータは、3次ストレージ・コントローラ4cのキャッシュ28に最初に書き込まれ、次に、3次データ・ストレージ・システム2cの3次ストレージ・コントローラ4cによって制御されたストレージ10cに後でデステージされてもよい。
ストレージ・コントローラ4(図2)、4a、4b、4cのメモリ20は、ストレージ10(図2)、10a、10b、10cに格納されたトラックのデータをキャッシュ28に移送するプレステージ動作もしくはステージ動作の結果として、または、キャッシュ28にデータを書き込み、その後、ストレージ10(図2)、10a、10b、10cの1つもしくは複数の対応するトラックにデステージするホストもしくはミラー書込み動作の結果として、キャッシュ28に格納されたデータを含むトラックを識別するキャッシュ・ディレクトリ30を含む。図示の実施形態において、キャッシュ・ディレクトリ30は、キャッシュ28における全トラックのハッシュ・テーブルである既知のデータ構造の形で実装される。各トラックは、キャッシュ・ディレクトリ30のスロットにハッシュされ、トラック識別(ID)、および、トラックのデータが「汚染された」かどうか、すなわち、ストレージ10(図2)、10a、10b、10cの対応するトラックに、まだ安全にデステージされていないかどうかについての指示、を含む。スロットにハッシュされた複数のトラックは、共にリンクされる。他のタイプのデータ構造を使用して、適切なキャッシュ・ディレクトリが実装されてもよいということが理解される。
ストレージ・マネージャ24のI/O動作を含む動作は、キャッシュ書込み動作、ステージ動作、プレステージ動作、およびデステージ動作を含み、例えば、図示の実施形態におけるメモリ20のタスク制御ブロック(TCB:Task Control Block)32を利用する。各TCBは、特定のプロセスを管理するのに必要な情報を含むオペレーティング・システム・カーネルにおけるデータ構造である。ストレージ・コントローラは、TCBを使用してデータの移動を管理することによって、ストレージとの間で、およびキャッシュとの間で、情報を移動してもよい。ホストからストレージ・コントローラに書込みリクエストが出るとき、または、1次データ・ストレージ・システムから2次データ・ストレージ・システムにデータがミラーリングされるとき、TCBは、オペレーティング・システム符号からアロケートされてもよい。TCBは、書き込まれることになるデータが、発生元からキャッシュを通じてストレージに送られるとき、始まりから終わりまでの書込み処理についての情報を維持するために使用される。キャッシュがいっぱいである場合、TCBは、場所を解放するために、キャッシュ内に存在しているデータがデステージされる(すなわち、ストレージに書き込まれる)ことが可能になるまで、待ち行列に入れられてもよい。
本明細書の1つの実施形態において、ストレージ・マネージャ24は、同期ロジック34を含み、同期ロジック34は、1次データ・ストレージ・システムとして構成された第1のデータ・ストレージ・システム2a、2次データ・ストレージ・システムとして構成された第2のデータ・ストレージ・システム2b、および、3次データ・ストレージ・システムとして構成された第3のデータ・ストレージ・システム2cを含む複数のデータ・ストレージ・システムにおいて、複数のセーフ・データ・コミット・スキャン動作が行われるのを自動的に同期するように構成される。各データ・ストレージ・システム2a、2b、2cのストレージ・マネージャ24は、セーフ・データ・コミット・ロジック40を含み、セーフ・データ・コミット・ロジック40は、関連付けられたストレージ10a、10b、10cにそれぞれ(図1)、汚染されたデータをデステージするために、関連付けられたデータ・ストレージ・システムのキャッシュ・ディレクトリ30を定期的にスキャンする。セーフ・データ・コミット処理は、セーフ・データ・コミット・スキャン・スタート時間より前に、関連付けられたデータ・ストレージ・システムのキャッシュ28に書き込まれたどのようなものも、関連付けられたデータ・ストレージ・システムのストレージ10a、10b、10cに成功裏にデステージされ、安全に格納されたことをオペレータに保証することを可能にする。
ストレージ・マネージャ24は、ストレージ・マネージャ24のデータ複製ロジック44(図2)をさらに含み、データ複製ロジック44は、2次データ・ストレージ・システム2bによって表されるような2次データ・ストレージ・システムの2次ボリューム2(図1)として、1次データ・ストレージ・システム2aの1次ボリューム1(図1)のコピーを同期して生成するように構成される。ボリュームの1次と2次のペアであるボリューム1、ボリューム2は、1次ボリューム1への更新が、各2次ボリューム2に同期してミラーリングされるように、同期されたコピー関係またはミラー関係48にある。代替として、ボリュームの1次と2次のペアであるボリューム1、ボリューム2は、1次ボリューム1への更新が、各2次ボリューム2に同期せずにミラーリングされるように、非同期されたコピー関係またはミラー関係48にあってもよいということが理解される。
図1に示された構成において、ストレージ・コントローラ4aおよびデータ・ストレージ・ドライブ10aは、1次データ・ストレージ・システム2aの1次ストレージ制御ユニットおよび1次ストレージとしてそれぞれ構成された。同様に、ストレージ・コントローラ4bおよびそのデータ・ストレージ・ドライブ10bは、2次データ・ストレージ・システム2bの2次ストレージ制御ユニットおよび2次ストレージとしてそれぞれ構成された。したがって、図1に描写された構成において、ストレージ・コントローラ4aは、1次ストレージ・コントローラまたは制御ユニット4aと呼ばれることになり、データ・ストレージ・ドライブ10aは、1次ストレージ・ドライブ10aと呼ばれることになる。同様に、ストレージ・コントローラまたは制御ユニット4bは、2次ストレージ・コントローラまたは制御ユニット4bと呼ばれることになり、データ・ストレージ・ドライブ10bは、2次データ・ストレージ・ドライブ10bと呼ばれることになる。本実施形態において、コピー関係が、マルチ・ターゲット関係とも呼ばれる1対多の関係であることが可能になるように、複数の2次データ・ストレージがあってもよい。
特定のコピー関係において、ソース・ユニットは1次と呼ばれることが多く、ターゲット・ユニットは、2次と呼ばれることが多い。複製関係は、1次データ・ストレージ・ドライブ10aのストレージ・ユニットと、2次データ・ストレージ・ドライブ10bのストレージ・ユニットとの間で、定義される。データ・ストレージ・ドライブ10aが「1次」として、およびデータ・ストレージ10bが「2次」として呼ばれることにかかわらず、データ・ストレージ10a、10bの特定のストレージ・ユニットは、特定のコピー関係に応じて、1次(またはソースの役割)と2次の(またはターゲットの役割)の両方の役割を演じてもよい。
1次ストレージ・コントローラ4aは第1のサイトにあり、2次ストレージ・コントローラ4bは、第1のサイトから地理的または機能的に離れている可能性のある第2のサイトにある。したがって、この例では、第1のサイトは、ローカル・サイトにあってもよく、第2のサイトは、ローカル・サイトから、および互いから、短いまたは長い地理的距離によって地理的に隔てられたリモート・サイトにあってもよい。代替として、ローカルおよびリモート・サイトは、ネットワーク6の、同じ一般的な地理的位置にある異なる建物の中、同じ建物の異なる部屋の中、同じ部屋にある異なる機械の中、または、同じ機械の異なる部分もしくは区画の中など、比較的接近していてもよい。
同様に、2次データ・ストレージ・システム2bのストレージ・マネージャ24は、データ複製ロジック44(図2)を備え、データ複製ロジック44は、3次データ・ストレージ・システム2cによって表されるような3次データ・ストレージ・システムの3次ボリューム3(図1)として、2次データ・ストレージ・システム2bの1次ボリューム2(図1)のコピーを同期して生成するように構成される。ボリュームの1次と2次のペアであるボリューム2、ボリューム3は、ボリューム2への更新が、3次ボリューム3に同期してミラーリングされるように、同期されたコピー関係またはミラー関係48にある。本明細書による同期されたセーフ・データ・コミット・スキャンは、非同期式データ・ストレージ・システムにおいて同様に用いられてもよいということが理解される。
各データ・ストレージ・システム2a、2b、2cのストレージ・マネージャ24は、1次-2次役割交換ロジック52をさらに含み、1次-2次役割交換ロジック52は、1次データ・ストレージ・システム2aなどの1次データ・ストレージ・システム、および、2次データ・ストレージ・システム2bなどの2次データ・ストレージ・システムの、1次-2次の役割を交換するように構成される。したがって、1次-2次役割交換が成功裏に完了すると、2次データ・ストレージ・システムとして本来構成されたデータ・ストレージ・システム2bは、1次データ・ストレージとして再構成される。逆に、1次データ・ストレージ・システムとして本来構成されたデータ・ストレージ・システム2aは、新しい1次データ・ストレージ・システム、すなわち、1次-2次役割交換の結果を受けたデータ・ストレージ・システム2bに対する2次データ・ストレージ・システムとして再構成される。
1つの実施形態において、ストレージ・デバイス10、10a、10b、10cは、ハードディスク・ドライブおよび磁気テープなどの、1つもしくは複数の順次アクセス・ストレージ・デバイスで構成されてもよく、または、例えばソリッド・ステート・デバイス(SSD)などの、非順次アクセス・ストレージ・デバイスを含んでもよい。各ストレージ・デバイス10、10a、10b、10cは、単一の順次もしくは非順次アクセス・ストレージ・デバイスを備えてもよく、または、JBOD(単純ディスク束)、DASD(ダイレクト・アクセス・ストレージ・デバイス)、RAID(独立ディスクの冗長アレイ)アレイ、仮想化デバイス、テープ・ストレージ、フラッシュ・メモリ、等などのストレージ・デバイスのアレイを備えてもよい。
図示の実施形態において、同期ロジック34、セーフ・データ・コミット・スキャン・ロジック40、および1次-2次役割交換ロジック52を含むストレージ・マネージャ24は、メモリ20に格納され、CPU複合体12によって実行されるソフトウェアとして描写される。しかし、ストレージ・マネージャ24の論理機能は、特定の用途に応じて、ハードウェア、ソフトウェア、ファームウェア、または、これらの1つもしくは複数の組合せとして実装されてもよいということが理解される。
ストレージ・マネージャ24(図2)は、1つの実施形態において、キャッシュ28にデータを格納し、キャッシュ28と、トラック内のストレージ10(図2)、10a、10b、10c(図1)との間でデータを移送してもよい。トラックをキャッシュに書き込む際、TCBは、キャッシュ・ストレージの1つまたは複数のセグメントをアロケートしてトラックに書き込む。同様に、ストレージ・マネージャ24(図2)は、1つの実施形態において、トラック内の1次ストレージ・ドライブ10a(図1)から2次ストレージ・ドライブ10bに、または、トラック内の2次ストレージ・ドライブ10bから3次ストレージ・ドライブ10cに、データを移送してもよい。
本明細書において使用されるように、用語トラックは、ディスク・ストレージ・ユニット、ソリッド・ステート・ストレージ・ユニット、もしくは他のタイプのストレージ・ユニットの、データまたはストレージのサブユニットを指してもよい。トラックに加えて、ストレージ・ユニットは、ビット、バイト、ワード、セグメント、ページ、ブロック(論理ブロック・アドレス(LBA)など)、シリンダ、セグメント、エクステント、ボリューム、論理デバイス等、もしくは、これらのいずれかの部分、などのストレージもしくはデータの他のサブユニット、または、移送もしくはストレージに適した他のサブユニット、を備えてもよい。したがって、本明細書において使用されるように、セグメントは、トラックのサブユニットである。したがって、本明細書によるキャッシュ書込みおよびセーフ・データ・コミット処理時に処理されるデータのサブユニットの大きさは、特定の用途に応じて、変化してもよい。したがって、本明細書において使用されるように、用語「トラック」または用語「セグメント」は、データ・ストレージまたは移送の任意の適切なサブユニットを指す。
システム構成要素1a(図1)、1b~1n、4(図2)、4a(図1)、4b、4cは、これらの構成要素間の通信を可能にするネットワーク6に接続される。したがって、ネットワークはファブリックを含み、ストレージ・エリア・ネットワーク(SAN)、ローカル・エリア・ネットワーク(LAN)、イントラネット、インターネット、広域ネットワーク(WAN)、ピアツーピア・ネットワーク、ワイヤレス・ネットワーク、アービトレーテッド・ループ・ネットワーク等を含んでもよい。ストレージ・サブシステムからホスト1a、1b~1nへの通信経路は、例えば、ファイバ接続(FICON(R))などの、特定のホスト付属プロトコルに基づいてもよい。ファブリックの他の通信経路は、例えば、ファイバ・チャネル・アービトレーテッド・ループ構成、シリアル・ループ・アーキテクチャ、または、PCI-Expressインターフェースなどのペリフェラル・コンポーネント・インターコネクト(PCI)インターフェースなどのバス・インターフェースを備えてもよい。また、ファブリックの通信経路は、個々のネットワーク(インターネット・プロトコル)アドレスを各ノードが有するように、例えばイーサネット(R)・ネットワークの一部であってもよい。特定の用途に応じて、モデム電話経路、ワイヤレス・ネットワーク、等など、他のタイプの通信経路が利用されてもよい。
通信経路と関連付けられた通信ソフトウェアは、もしあれば、通信プロトコル、および通信プロトコルによる通信ハードウェアの動作、を制御する命令および他のソフトウェアを含む。特定の用途に応じて、他の通信経路プロトコルが利用されてもよいということが理解される。
図3のホスト1aによって表されるような典型的なホストは、CPU複合体202、および、ストレージ・コントローラ4、4a、4b、4cを介してストレージ10(図2)、10a、10b、10cからデータを読み込み、ストレージにデータ更新を書き込むように協働するオペレーティング・システム206とアプリケーション208を含むメモリ204を含む。適切なオペレーティング・システムの例は、z/OS(R)オペレーティング・システムである。特定の用途に応じて、他のタイプのオペレーティング・システムが用いられてもよいということが理解される。
図4は、データ・ストレージ・システムの全体的な性能を改善するために、実質的に同時に、および実質的に単一の同期されたセット・インターバルで、セーフ・データ・コミット・スキャン動作のセットが発生するように、複数のデータ・ストレージ・システムのそれぞれにおけるセーフ・データ・コミット・スキャン・ロジック40のセーフ・データ・コミット・スキャン動作のセットを同期する際の、1次データ・ストレージ・システムの同期ロジック34(図2)の自動的動作の1つの例を描写する。例えば、セーフ・データ・コミット・スキャン動作のセットは、実質的に同時に、および実質的に単一の同期されたセット・インターバルで発生するので、セーフ・データ・コミット・スキャン動作のセットによるI/Oレスポンス時間の、結果として生じる何らかの低減は同様に、実質的に同じ時間インターバルで発生し、インターバルの範囲外のセーフ・データ・コミット・スキャン動作のセットのインパクトを低減または除去する。図4に描写された1次データ・ストレージ・システム2aの動作は、図8および図9にそれぞれ描写された、2次および3次データ・ストレージ・システム2bおよび2cそれぞれのものと、同時発生して同期され、同時進行して動作する。
図5は、1次データ・ストレージ・システム2a(図1)、2次データ・ストレージ・システム2b、および3次データ・ストレージ・システム2cそれぞれにおけるセーフ・データ・コミット・スキャン・ロジック40によってそれぞれ行われる、セーフ・データ・コミット・スキャン動作の第1のセットである1次セーフ・データ・コミット・スキャン1、2次セーフ・データ・コミット・スキャン2、および、3次セーフ・データ・コミット・スキャン3の例を描写する。各セーフ・データ・コミット・スキャン動作であるスキャン1(図5)、スキャン2、スキャン3は、関連付けられたデータ・ストレージ・システム2a(図1)、2b、2cそれぞれのキャッシュ28(図2)にキャッシュされたデータを、関連付けられたデータ・ストレージ・システム2a、2b、2cそれぞれのデータ・ストレージ・ユニット10a、10b、10cそれぞれにデステージする。
図5、図6は、水平の時間軸「時間」に平行に向けられた、3つの水平のタイムラインである1次タイムライン1、2次タイムライン2、3次タイムライン3それぞれにおける、各データ・ストレージ・システム2a、2b、2cにおける同期ロジック34およびセーフ・データ・コミット・スキャン・ロジック40の自動的動作を描写する。図5に示されるように、セーフ・データ・コミット・スキャン動作の第1のセットであるスキャン1、スキャン2、スキャン3は、データ・ストレージ・システム2a、2b、2cにおけるセーフ・データ・コミット・スキャン動作によって引き起こされる、同期されたセーフ・データ・コミット・スキャン・セット・インターバル_SET1の範囲外の入出力レスポンス時間の低下の発生を低減または除去するために、単一の同期されたセーフ・データ・コミット・スキャン・セット・インターバル_SET1の中でタイムラインが実質的に重複するように同期してタイミングを合わされる。比較すると、以前のデータ・ストレージ・システムでは、1次、2次、および3次データ・ストレージ・システムのそれぞれは、典型的には、非同期式独立タイマーによって独立してセーフ・データ・コミット・スキャンを開始した。その結果、データ複製動作のレスポンス時間の悪化は、分散型データ・ストレージ・システムの様々なデータ・ストレージ・システムの各非同期式非重複セーフ・データ・コミット・スキャン動作に対する複数の非重複インターバルにおいて独立して発生する可能性がある。したがって、以前のシステムのオペレータは、複数の非同期されたセーフ・データ・コミット・スキャン動作によるレスポンス時間の複数の明らかな急上昇に遭遇する可能性がある。
図5の例では、1次データ・ストレージ・システム2aの同期ロジック34は、1次データ・ストレージ・システムにおける同期タイマー・インターバルを開始する(ブロック410、図4)ように構成される。例えば、図5は、1次データ・ストレージ・システム2a(図1)の1次タイムライン1における時間T0において開始された1次同期タイマー・インターバル_0を描写する。1つの実施形態において、タイマー・インターバル_0は、本明細書においてグローバル同期タイマー・インターバルとも呼ばれ、例えば1時間、セットされてもよい。特定の用途に応じて、他の持続期間が選択されてもよいということが理解される。下記で詳細に説明されるように、本明細書において、1次データ・ストレージ・システムの同期タイマー・インターバルは、セーフ・データ・コミット・スキャン動作の各セットの全てのセーフ・データ・コミット・スキャン動作のタイミングに影響を及ぼす可能性があるので、「グローバル」と呼ばれる。
グローバル同期タイマー・インターバル_0(図5)が満了すると(ブロック414、図4)、1次データ・ストレージ・システム2aの同期ロジック34は、1次タイムライン1におけるセーフ・データ・コミット・スキャン(SDCS)動作を、1次データ・ストレージ・システムにおいて開始する(418、図5)ように構成される。図5の例では、SDCS動作の第1のセットのセーフ・データ・コミット・スキャン動作であるスキャン1は、1次データ・ストレージ・システム2a(図1)において時間S1に開始され、時間S1は、SDCS動作の第1のセットに対する同期されたセーフ・データ・コミット・スキャン・セット・インターバル_SET1の始まりを示す。セーフ・データ・コミット・スキャン(SDCS)動作であるスキャン1は、1次データ・ストレージ・システム2aの同期ロジック34によって開始される(ブロック418、図4)のに応答して、1次データ・ストレージ・システムのセーフ・データ・コミット・スキャン・ロジック40によって行われる。
1次データ・ストレージ・システム2aの同期ロジック34が、1次データ・ストレージ・システム2aにおいてセーフ・データ・コミット・スキャン(SDCS)動作を開始する(418、図5)のと同じ時間S1にまたはほぼ同じ時間S1に、1次データ・ストレージ・システム2aの同期ロジック34は、スタート・セーフ・データ・コミット・スキャン(SDCS)メッセージを2次データ・ストレージ・システムに送信する(ブロック422、図4)ようにさらに構成される。図5の例では、「スタートSDCSメッセージ1」が時間S1に、2次データ・ストレージ・システム2b(図1)に送信される。
図8について下記でより詳細に説明されるように、2次データ・ストレージ・システム2bは、1次データ・ストレージ・システムからのスタートSDCSメッセージ1を使用して、1次データ・ストレージ・システム2aにおける同時発生かつ同時進行のセーフ・データ・コミット・スキャン動作(1次セーフ・データ・コミット・スキャン1)と、2次データ・ストレージ・システム2bにおけるセーフ・データ・コミット・スキャン動作を同期して開始する。その結果、セーフ・データ・コミット・スキャン動作であるスキャン1とスキャン2の両方が、セーフ・データ・コミット・スキャン動作の第1のセットに対する単一の同期されたセーフ・データ・コミット・スキャン・セット・インターバル_SET1において発生する。同様に、図9について下記でより詳細に説明されるように、2次データ・ストレージ・システム2bは、さらに、スタートSDCSメッセージであるスタートSDCSメッセージ2を3次データ・ストレージ・システムに送信し、3次データ・ストレージ・システムは、2次データ・ストレージ・システムからのスタートSDCSメッセージ2を使用して、1次データ・ストレージ・システム2aおよび2次データ・ストレージ・システム2bそれぞれにおける同時発生かつ同時進行のセーフ・データ・コミット・スキャン動作(1次セーフ・データ・コミット・スキャン1および2次セーフ・データ・コミット・スキャン2)と、3次データ・ストレージ・システム2cにおけるセーフ・データ・コミット・スキャン動作を同期して開始する。その結果、SDCS動作の第1のセットの3つの同期されたセーフ・データ・コミット・スキャン動作であるスキャン1、スキャン2、およびスキャン3全ては、セーフ・データ・コミット・スキャン動作の第1のセットに対する単一の同期されたセーフ・データ・コミット・スキャン・セット・インターバル_SET1において発生する。
図8に描写された2次データ・ストレージ・システム2bの同期ロジック34の自動的動作、および図9に描写された3次データ・ストレージ・システム2cの同期ロジック34の自動的動作に移る前に、1次データ・ストレージ・システム2aの同期ロジック34は、セーフ・データ・コミット・スキャン動作(この例ではスキャン1)が完了したかどうかを判定する(ブロック426、図4)ように構成されるということに留意されたい。完了した場合、セーフ・データ・コミット・スキャン動作であるスキャン1の開始時間、この例ではS1(図5)は、ログ記録動作であるログ1(図5)で、適切なセーフ・データ・コミット・スキャン・ログにタイムスタンプとしてログ記録される(ブロック430、図4)。この例では、セーフ・データ・コミット・スキャン動作であるスキャン1の完了、および、セーフ・データ・コミット・スキャン・スタート・タイムスタンプS1のログ記録は、セーフ・データ・コミット・スキャン・スタート時間S1より前に、1次データ・ストレージ・システム2aのキャッシュ28に書き込まれたどのようなものも、1次データ・ストレージ・システム2aのストレージ10aに成功裏にデステージされ、安全に格納されたことをオペレータに保証することを可能にする。
また、1次データ・ストレージ・システム2aの同期ロジック34は、セーフ・データ・コミット・スキャン動作、この例ではスキャン1が完了すると、1次データ・ストレージ・システム2aにおいて、別のグローバル同期タイマー・インターバルである1次グローバル・タイマー・インターバル1(図5、図6)を時間I1に開始する(ブロック410、図4)ように構成される。1つの実施形態において、グローバル・タイマー・インターバル1は、例えば1時間など、最初のグローバル同期タイマー・インターバル_0と同じ持続期間、セットされてもよい。特定の用途に応じて、他の持続期間が選択されてもよいということが理解される。下記でより詳細に説明されるように、次のグローバル同期タイマー・インターバル1が満了すると、上述の処理は、SDCS動作の別のセットに対して、1次データ・ストレージ・システム2aにおいて繰り返す。
次に、図4および図9それぞれに描写された1次および3次データ・ストレージ・システム2aおよび2cそれぞれのものと同期され、同時発生する2次データ・ストレージ・システム2bの動作に移ると、図8は、複数のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作のセットを同期する際の、2次データ・ストレージ・システムの同期ロジック34の自動的動作の例を描写する。2次データ・ストレージ・システムの同期ロジック34の動作は、複数のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の各セットを同期する際に、1次および3次データ・ストレージ・システムのそれぞれの同期ロジック34の動作と同期してかつ同時進行して動作する。
2次データ・ストレージ・システム2bの同期ロジック34は、1次データ・ストレージ・システムによって2次データ・ストレージ・システムに送信された(ブロック422、図4)スタート・セーフ・データ・コミット・スキャン(SDCS)メッセージを受信する(ブロック450、図8)ように構成される。図5の例では、「スタートSDCSメッセージ1」が、時間S1にまたはほぼ時間S1に、1次データ・ストレージ・システム2aによって送信され(1次セーフ・データ・コミット・スキャン1のスタート)、1次データ・ストレージ・システム2aから2次データ・ストレージ・システム2bへの伝送遅延の量に応じて、同じ時間S1またはほぼ同じ時間S1である、時間S2におけるまたはほぼ時間S2における時間に、2次データ・ストレージ・システム2b(図1)によって受信される。1次データ・ストレージ・システム2aから2次データ・ストレージ・システム2bへの伝送遅延の量は、1次データ・ストレージ・システム2aと2次データ・ストレージ・システム2bとの間にある地理的距離および他の信号伝送要因に応じて、例えば、無視できるほどの秒からおよそ数秒まで、変化してもよいということが理解される。特定の用途および環境に応じて、より長いまたはより短い遅延に遭遇することもある。
2次データ・ストレージ・システム2bにおいて「スタートSDCSメッセージ1」が受信されるのに応答して、2次データ・ストレージ・システム2bの同期ロジック34は、2次データ・ストレージ・システムにおける2次タイムライン2の、この例では時間S2に、セーフ・データ・コミット・スキャン(SDCS)動作を開始する(ブロック454、図8)ようにさらに構成される。図5の例では、2次データ・ストレージ・システムにおいて開始されたSDCS動作は、2次データ・ストレージ・システム2b(図1)における2次セーフ・データ・コミット・スキャン動作であるスキャン2である。その結果、1次データ・ストレージ・システム2aおよび2次データ・ストレージ・システム2bそれぞれのセーフ・データ・コミット・スキャン動作であるスキャン1とスキャン2の両方が、セーフ・データ・コミット・スキャン動作の第1のセットに対する単一の同期されたセーフ・データ・コミット・スキャン・セット・インターバル_SET1において発生する。セーフ・データ・コミット・スキャン(SDCS)動作であるスキャン2は、2次データ・ストレージ・システム2bの同期ロジック34によって開始される(ブロック454、図8)のに応答して、2次データ・ストレージ・システムのセーフ・データ・コミット・スキャン・ロジック40によって行われる。
2次データ・ストレージ・システム2bにおけるセーフ・データ・コミット・スキャン(SDCS)動作であるスキャン2を、2次データ・ストレージ・システム2bの同期ロジック34が開始する(454、図5)のと同じ時間S2にまたはほぼ同じ時間S2に、2次データ・ストレージ・システム2bの同期ロジック34は、スタート・セーフ・データ・コミット・スキャン(SDCS)メッセージを3次データ・ストレージ・システムに送信する(ブロック458、図8)ようにさらに構成される。図5の例では、「スタートSDCSメッセージ2」が、2次データ・ストレージ・システム2bによって、3次データ・ストレージ・システム2c(図1)に送信される。
図9について下記でより詳細に説明されるように、3次データ・ストレージ・システム2cは、2次データ・ストレージ・システムからのスタートSDCSメッセージ2を使用して、2次データ・ストレージ・システム2bにおける同時発生かつ同時進行のセーフ・データ・コミット・スキャン動作(2次セーフ・データ・コミット・スキャン2)と、3次データ・ストレージ・システム2cにおけるセーフ・データ・コミット・スキャン動作を同期して開始する。上記に示されたように、2次データ・ストレージ・システム2bにおけるセーフ・データ・コミット・スキャン動作であるスキャン2は、さらに、1次データ・ストレージ・システム2aにおける同時発生かつ同時進行のセーフ・データ・コミット・スキャン動作(1次セーフ・データ・コミット・スキャン1)と同期される。その結果、データ・ストレージ・システム2a、2b、2cそれぞれのセーフ・データ・コミット・スキャン動作であるスキャン1、スキャン2、およびスキャン3は、実質的に同時発生かつ同時進行して動くように同期される。したがって、SDCS動作の第1のセットの3つの同期されたセーフ・データ・コミット・スキャン動作であるスキャン1、スキャン2、およびスキャン3全ては、セーフ・データ・コミット・スキャン動作の第1のセットに対する単一の同期されたセーフ・データ・コミット・スキャン・セット・インターバル_SET1において発生する。その結果、セーフ・データ・コミット・スキャン動作の第1のセットにより低下したレスポンス時間のいずれかのインターバルは、同様に、同期されたセーフ・データ・コミット・スキャン・セット・インターバル_SET1に対して実質的に同時発生し、実質的に限定される。
2次データ・ストレージ・システム2bの同期ロジック34は、2次データ・ストレージ・システム2bのセーフ・データ・コミット・スキャン動作(この例ではスキャン2)が完了したかどうかを判定する(ブロック462、図8)ように構成される。完了した場合、セーフ・データ・コミット・スキャン動作であるスキャン2の開始時間、この例ではS2(図5)は、ログ記録動作であるログ2(図5)で、適切なセーフ・データ・コミット・スキャン・ログにタイムスタンプとしてログ記録される(ブロック466、図8)。この例では、セーフ・データ・コミット・スキャン動作であるスキャン2の完了と、セーフ・データ・コミット・スキャン・スタート・タイムスタンプS2のログ記録は、スキャン2のセーフ・データ・コミット・スキャン・スタート時間S2より前に、2次データ・ストレージ・システム2bのキャッシュ28に書き込まれたどのようなものも、2次データ・ストレージ・システム2bのストレージ10bに成功裏にデステージされ、安全に格納されたことをオペレータに保証することを可能にする。
2次データ・ストレージ・システム2bの同期ロジック34は、2次データ・ストレージ・システム2bにおける2次セーフ・データ・コミット・スキャン2が完了すると、2次データ・ストレージ・システム2bにおいて、別の同期タイマー・インターバルである2次ローカル・タイマー・インターバル2(図5、図6)を開始する(ブロック466、図8)ようにさらに構成される。2次データ・ストレージ・システム2bおよび3次データ・ストレージ・システム2cの同期タイマー・インターバルは、これらの同期タイマー・インターバルによる同期タイミングへの影響が、1次データ・ストレージ・システムのグローバル・タイマー・インターバルよりローカルなものであってもよいので、本明細書では「グローバル」ではなく「ローカル」と呼ばれる。
2次ローカル・タイマー・インターバル2は、2次データ・ストレージ・システム2b(図1)の2次タイムライン2における時間I2に開始される。下記でより詳細に説明されるように、次のローカル同期タイマー・インターバル2の満了は、スタートSDCSメッセージをタイムリに受信できなかったにもかかわらず、SDCS動作の別のセットに対して、2次データ・ストレージ・システム2bにおいて上述の処理が繰り返すのを可能にすることができる。
本明細書の1つの実施形態において、1次データ・ストレージ・システム2aから2次データ・ストレージ・システム2bにおいて受信された「スタートSDCSメッセージ1」は、同期されたタイマー・インターバル持続期間パラメータ・データを含む。1つの実施形態において、1次データ・ストレージ・システム2aからのスタートSDCSメッセージ1にパッケージされた、同期されたタイマー・インターバル持続期間データは、1次データ・ストレージ・システム2aの同期している1次グローバル・タイマー・インターバル1のインターバルを定義する。2次データ・ストレージ・システム2bの同期ロジック34は、1次データ・ストレージ・システム2aからのスタートSDCSメッセージ1の中で1次データ・ストレージ・システム2aから受信された、同期されたタイマー・インターバル持続期間データに応じて、2次データ・ストレージ・システム2bにおける2次ローカル・タイマー・インターバル2(図5、図6)の持続期間をセットするようにさらに構成される。したがって、1つの実施形態において、2次データ・ストレージ・システム2bにおける2次ローカル・タイマー・インターバル2(図5、図6)の持続期間は、1次データ・ストレージ・システム2aにおける1次グローバル同期タイマー・インターバル1(図5、図6)の持続期間より長い、小さいパーセンテージ(例えば10%~20%など)または短い時間(例えば5分~10分など)になるようにセットされてもよい。したがって、1つの実施形態において、タイマー・インターバル2は、例えば1時間より長い、小さいパーセンテージまたは短い時間にセットされてもよい。特定の用途に応じて、他の持続期間が選択されてもよいということが理解される。
2次同期タイマー・インターバル2の持続期間を、1次同期タイマー・インターバル1の持続期間に近いものにセットすることは、比較的制約されたセーフ・データ・コミット・スキャン・セット・インターバルにとどまるように、同期されたSDCS動作の第1のセットのSDCS動作であるスキャン1およびスキャン2を同期させることを容易にするということが理解される。同時に、2次同期タイマー・インターバル2の持続期間が、1次同期タイマー・インターバル1の持続期間よりわずかに大きくなるようにセットすることは、下記で詳細に説明されるように、2次および3次データ・ストレージ・システムにおける同期インターバルの満了ではなく、スタートSDCSメッセージに基づいて、2次および3次データ・ストレージ・システムのSDCS動作を同期させることを容易にするということが理解される。
次に、図4と図8それぞれに描写された1次および2次データ・ストレージ・システム2aおよび2bそれぞれの動作と同期され、同時発生する3次データ・ストレージ・システム2cの動作に移ると、図9は、複数のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の各セットを同期する際の、3次データ・ストレージ・システムの同期ロジック34の自動的動作の例を描写する。3次データ・ストレージ・システムの同期ロジック34の動作は、複数のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の各セットを同期する際に、1次および2次データ・ストレージ・システムのそれぞれの同期ロジック34の動作と同期してかつ同時進行して動作する。
2次データ・ストレージ・システム2bについて上述されたものに類似の様式で、3次データ・ストレージ・システム2cの同期ロジック34は、2次データ・ストレージ・システムによって3次データ・ストレージ・システムに送信された(ブロック458、図8)スタート・セーフ・データ・コミット・スキャン(SDCS)メッセージを受信する(ブロック504、図9)ように構成される。図5の例では、「スタートSDCSメッセージ2」が、時間S2にまたはほぼ時間S2に、2次データ・ストレージ・システム2bによって送信され、2次データ・ストレージ・システム2bから3次データ・ストレージ・システム2cへの伝送遅延の量に応じて、同じ時間S2またはほぼ同じ時間S2である、時間S3にまたはほぼ時間S3に、3次データ・ストレージ・システム2c(図1)によって受信される。2次データ・ストレージ・システム2bから3次データ・ストレージ・システム2cへの伝送遅延の量は、例えば、2次データ・ストレージ・システム2bと3次データ・ストレージ・システム2cとの間にある地理的距離および他の信号伝送要因に応じて、例えば、無視できるほどの秒からおよそ数秒まで、変化してもよいということが理解される。特定の用途および環境に応じて、より長いまたはより短い遅延に遭遇することもある。
3次データ・ストレージ・システム2cにおいて「スタートSDCSメッセージ2」が受信されるのに応答して、3次データ・ストレージ・システム2cの同期ロジック34は、3次データ・ストレージ・システムにおける3次タイムライン3の、この例では時間S3に、セーフ・データ・コミット・スキャン(SDCS)動作を開始する(ブロック508、図9)ようにさらに構成される。図5の例では、3次データ・ストレージ・システムにおいて開始されたSDCS動作は、3次データ・ストレージ・システム2c(図1)における3次セーフ・データ・コミット・スキャン動作であるスキャン3である。その結果、1次データ・ストレージ・システム2a、2次データ・ストレージ・システム2b、および3次データ・ストレージ・システム2cそれぞれの、3つの同期されたセーフ・データ・コミット・スキャン動作であるスキャン1、スキャン2、およびスキャン3全ては、セーフ・データ・コミット・スキャン動作の第1の同期されたセットに対する単一の同期されたセーフ・データ・コミット・スキャン・セット・インターバル_SET1において発生する。セーフ・データ・コミット・スキャン(SDCS)動作であるスキャン3は、3次データ・ストレージ・システム2cの同期ロジック34によって開始される(ブロック508、図9)のに応答して、3次データ・ストレージ・システムのセーフ・データ・コミット・スキャン・ロジック40によって行われる。
3次データ・ストレージ・システム2cの同期ロジック34は、3次データ・ストレージ・システム2cのセーフ・データ・コミット・スキャン動作(この例ではスキャン3)が完了したかどうかを判定する(ブロック512、図9)ように構成される。完了した場合、セーフ・データ・コミット・スキャン動作であるスキャン3の開始時間、この例ではS3(図5)は、ログ記録動作であるログ3(図5)で、適切なセーフ・データ・コミット・スキャン・ログにタイムスタンプとしてログ記録される(ブロック516、図9)。この例では、セーフ・データ・コミット・スキャン動作であるスキャン3の完了、および、セーフ・データ・コミット・スキャン・スタート・タイムスタンプS3のログ記録は、スキャン3のセーフ・データ・コミット・スキャン・スタート時間S3より前に、3次データ・ストレージ・システム2cのキャッシュ28に書き込まれたどのようなものも、3次データ・ストレージ・システム2cのストレージ10cに成功裏にデステージされ、安全に格納されたことをオペレータに保証することを可能にする。
セーフ・データ・コミット・スキャン動作の第1のセットの最後のセーフ・データ・コミット・スキャン動作の完了は、セーフ・データ・コミット・スキャン動作の第1のセットに対する同期されたセーフ・データ・コミット・スキャン・セット・インターバル_SET1の終わりを示す。図5の例では、3次データ・ストレージ・システム2cの3次セーフ・データ・コミット・スキャン動作であるスキャン3の完了は、セーフ・データ・コミット・スキャン動作の第1のセットに対する同期されたセーフ・データ・コミット・スキャン・セット・インターバル_SET1の終わりを示す。最後に完了することになるセーフ・データ・コミット・スキャン動作の同期されたセットの特定のセーフ・データ・コミット・スキャン動作は、各セーフ・データ・コミット・スキャン動作における正確な開始時間、およびデステージされることになるデータの量、ならびに、個々のデータ・ストレージ・システムの他の動作条件に応じて、変化することもあるということが理解される。それでも、動作のセットのセーフ・データ・コミット動作の時間の重複の量は、本明細書による同期動作によって実質的に増加しても、最大化してもよい。したがって、この例では、SDCS動作の第1の同期されたセットの、3つの同期されたセーフ・データ・コミット・スキャン動作であるスキャン1、スキャン2、およびスキャン3全ては、セーフ・データ・コミット・スキャン動作の第1の同期されたセットに対する単一の同期されたセーフ・データ・コミット・スキャン・セット・インターバル_SET1において発生するように、時間が実質的に重複し、実質的に同時発生する。その結果、セーフ・データ・コミット・スキャン動作により低下したレスポンス時間のいずれかのインターバルは、同様に、システム性能を改善するために、同期されたセーフ・データ・コミット・スキャン・セット・インターバル_SET1に対して実質的に同時発生し、実質的に限定される。
3次データ・ストレージ・システム2cの同期ロジック34は、3次データ・ストレージ・システム2cにおける3次セーフ・データ・コミット・スキャン3が完了すると、3次データ・ストレージ・システム2cにおいて、別の同期タイマー・インターバルである3次ローカル・タイマー・インターバル3(図5、図6)を開始する(ブロック516、図9)ようにさらに構成される。3次ローカル・タイマー・インターバル3は、3次データ・ストレージ・システム2c(図1)の3次タイムライン3における時間I3に開始される。下記でより詳細に説明されるように、次のローカル同期タイマー・インターバル3の満了は、スタートSDCSメッセージをタイムリに受信できなかったにもかかわらず、SDCS動作の別の同期されたセットに対して、3次データ・ストレージ・システム2cにおいて上述の処理が繰り返すのを可能にすることができる。
図6は、1次データ・ストレージ・システム2a(図1)、2次データ・ストレージ・システム2b、および3次データ・ストレージ・システム2cのそれぞれにおけるセーフ・データ・コミット・スキャン・ロジック40によってそれぞれ行われる、セーフ・データ・コミット・スキャン動作の第2の同期されたセットである1次セーフ・データ・コミット・スキャン4、2次セーフ・データ・コミット・スキャン5、および3次セーフ・データ・コミット・スキャン6の例を描写する。ここでも、各セーフ・データ・コミット・スキャン動作であるスキャン4(図6)、スキャン5、スキャン6は、関連付けられたデータ・ストレージ・システム2a(図1)、2b、2cそれぞれのキャッシュ28(図2)にキャッシュされたデータを、関連付けられたデータ・ストレージ・システム2a、2b、2cそれぞれのデータ・ストレージ・ユニット10a、10b、10cそれぞれにデステージする。
図6は、セーフ・データ・コミット・スキャン動作の別のセットを同期させることについて、3つの水平タイムラインである1次タイムライン1、2次タイムライン2、3次タイムライン3それぞれに、各データ・ストレージ・システム2a、2b、2cにおける同期ロジック34およびセーフ・データ・コミット・スキャン・ロジック40のさらなる動作を描写する。図6に示されたように、セーフ・データ・コミット・スキャン動作の第2の同期されたセットであるスキャン4、スキャン5、スキャン6は、図5について説明されたセーフ・データ・コミット・スキャン動作の第1の同期されたセットのように、データ・ストレージ・システム2a、2b、2cにおけるセーフ・データ・コミット・スキャン動作によって引き起こされる、同期されたセーフ・データ・コミット・スキャン・セット・インターバル_SET2の範囲外の入出力レスポンス時間の低下の発生を低減または除去するために、単一の同期されたセーフ・データ・コミット・スキャン・セット・インターバル_SET2の中でタイムラインが実質的に重複するように同期してタイミングを合わされる。
図4、および、1次データ・ストレージ・システム2aの同期ロジック34の自動的動作に戻ると、上述のように、1次データ・ストレージ・システム2aの同期ロジック34は、1次データ・ストレージ・システム2aのセーフ・データ・コミット・スキャン動作であるスキャン1が完了すると、データ・ストレージ・システム2a、2b、2cのセーフ・データ・コミット・スキャン動作の別のセットを同期するために、1次データ・ストレージ・システム2aにおいて、別の同期タイマー・インターバルである1次グローバル・タイマー・インターバル1(図5、図6)を時間I1(図5)に開始する(ブロック410、図4)。タイマー・インターバル1(図6)が満了すると(ブロック414、図4)、1次データ・ストレージ・システム2aの同期ロジック34は、同期されたセーフ・データ・コミット・スキャン(SDCS)動作の次のセットの1次セーフ・データ・コミット・スキャン動作を開始する(418、図5)。図6の例では、同期されたSDCS動作の次のセットは、1次セーフ・データ・コミット・スキャン(SDCS)動作であるスキャン4を、1次データ・ストレージ・システムにおける1次タイムライン1に含む。図6に示されるように、セーフ・データ・コミット・スキャン動作であるスキャン4は、1次データ・ストレージ・システム2a(図1)において時間S4に開始され、同期されたSDCS動作の第2のセットに対する同期されたセーフ・データ・コミット・スキャン・セット・インターバル_SET2の始まりを示す。
さらに、1次データ・ストレージ・システム2aにおいて別のセーフ・データ・コミット・スキャン(SDCS)動作を、1次データ・ストレージ・システム2aの同期ロジック34が開始する(418、図6)のと同じ時間S4にまたはほぼ同じ時間S4に、1次データ・ストレージ・システム2aの同期ロジック34は、別のスタート・セーフ・データ・コミット・スキャン(SDCS)メッセージを2次データ・ストレージ・システムに送信する(ブロック422、図4)。図6の例では、「スタートSDCSメッセージ3」が、時間S4にまたはほぼ時間S4に、2次データ・ストレージ・システム2b(図1)に送信される。図8について下記でより詳細に説明されるように、2次データ・ストレージ・システム2bは、1次データ・ストレージ・システム2aからのスタートSDCSメッセージ3を使用して、1次データ・ストレージ・システム2aにおける同期されたSDCS動作の次のセットの同時発生かつ同時進行の1次セーフ・データ・コミット・スキャン動作であるスキャン5と、同期されたSDCS動作の次のセットのセーフ・データ・コミット・スキャン動作を、2次データ・ストレージ・システム2bにおいて同期する。
図8、および、2次データ・ストレージ・システム2bの同期ロジック34の自動的動作に戻ると、2次データ・ストレージ・システム2bの同期ロジック34は、2次データ・ストレージ・システム2bにおける2次セーフ・データ・コミット・スキャン2(図5)が完了すると、2次データ・ストレージ・システム2b(図1)の2次タイムライン2における時間I2(図5)に、2次データ・ストレージ・システムにおける同期タイマー・インターバルである2次ローカル・タイマー・インターバル2(図5、図6)を開始する(ブロック466、図8)。2次データ・ストレージ・システム2bの同期ロジック34は、1次データ・ストレージ・システムによって2次データ・ストレージ・システム2bに送信された(ブロック422、図4)次のスタート・セーフ・データ・コミット・スキャン(SDCS)メッセージであるスタートSDCSメッセージ3が受信されたかどうかを判定する(ブロック480、図8)ように構成される。図6の例では、「スタートSDCSメッセージ3」が、1次データ・ストレージ・システム2aによって送信され、同期している2次ローカル・タイマー・インターバル2の満了前に、2次データ・ストレージ・システム2bによって受信される。前述のように、2次データ・ストレージ・システム2bにおける2次ローカル・タイマー・インターバル2(図5、図6)の持続期間は、1つの実施形態において、1次データ・ストレージ・システムの同期している1次グローバル・タイマー・インターバル1の持続期間のものよりわずかに長くなるようにセットされてもよい。その結果、同期されたSDCS動作の典型的なセットにおいて、スタートSDCSメッセージは、2次データ・ストレージ・システムの同期している2次ローカル・タイマー・インターバルの満了前に、1次データ・ストレージ・システムから受信されることになる。
2次データ・ストレージ・システム2bにおいて「スタートSDCSメッセージ3」が時間S5に受信されるのに応答して、2次データ・ストレージ・システム2bの同期ロジック34は、(ローカル・タイマー・インターバル2の末端のハッシュで示された部分によって表されるような)ローカル・タイマー・インターバル2をリセット(ブロック482)し、2次データ・ストレージ・システムにおける2次タイムライン2の、この例では時間S5に、別のセーフ・データ・コミット・スキャン(SDCS)動作であるスキャン5を開始する(ブロック454、図8)。その結果、1次データ・ストレージ・システム2aおよび2次データ・ストレージ・システム2bそれぞれのセーフ・データ・コミット・スキャン動作であるスキャン4とスキャン5の両方が、セーフ・データ・コミット・スキャン動作の第2の同期されたセットに対する単一の同期されたセーフ・データ・コミット・スキャン・セット・インターバル_SET2の中で発生する。
さらに、スタート・セーフ・データ・コミット・スキャン・メッセージ3を受信すると、ローカル・タイマー・インターバル2がリセット(ブロック482)されるので、セーフ・データ・コミット・スキャン動作は、その後のローカル同期タイマー・インターバル2の満了に応答して再び開始されるのではなく、受信されたスタート・メッセージ3によってのみ開始される(ブロック454)。このように、特定のデータ・ストレージ・システムの各セーフ・データ・コミット・スキャン動作は、例えば、セーフ・データ・コミット・スキャン・セット・インターバル_SET2などの任意の1つのセーフ・データ・コミット・スキャン・セット・インターバルにおいて、スタート・メッセージ、またはローカル同期タイマー・インターバルの満了、の両方ではなく、どちらかによって開始される。
さらに、2次データ・ストレージ・システム2bの同期ロジック34は、図5のスタートSDCSメッセージ2について上述されたものに類似の様式で、別のスタート・セーフ・データ・コミット・スキャン・メッセージであるスタートSDCSメッセージ4(図6)を3次ストレージ・システムに送信する(ブロック458、図8)。3次データ・ストレージ・システム2cにおいて「スタートSDCSメッセージ4」(図6)が受信される(ブロック524、図9)のに応答して、3次データ・ストレージ・システム2cの同期ロジック34は、ローカル・タイマー・インターバル3をリセット(ブロック526)し、3次データ・ストレージ・システムにおける3次タイムライン3の、この例では時間S6に、別のセーフ・データ・コミット・スキャン(SDCS)動作であるスキャン6を開始する(ブロック508、図9)。その結果、1次データ・ストレージ・システム2a、2次データ・ストレージ・システム2b、および3次データ・ストレージ・システム2cそれぞれの3つの同期されたセーフ・データ・コミット・スキャン動作であるスキャン4、スキャン5、およびスキャン6全ては、セーフ・データ・コミット・スキャン動作の第2の同期されたセットに対する単一の同期されたセーフ・データ・コミット・スキャン・セット・インターバル_SET2の中で発生する。
2次データ・ストレージ・システム2bについて上述されたものに類似の様式で、ローカル・タイマー・インターバル3は、ローカル同期タイマー・インターバル3のその後の満了に応答して再び開始されるのではなく、受信されたスタート・メッセージ4によってのみ、セーフ・データ・コミット・スキャン動作が開始されるように、時間S6にリセット(ブロック526)される。このように、各セーフ・データ・コミット・スキャン動作は、例えば、セーフ・データ・コミット・スキャン・セット・インターバル_SET2などの任意の1つのセーフ・データ・コミット・スキャン・セット・インターバルにおいて、任意の1つのデータ・ストレージ・システムにおける、スタート・メッセージ、またはローカル同期タイマー・インターバルの満了、の両方ではなく、どちらかによって開始される。
図7は、同期している2次ローカル・タイマー・インターバル2の満了後、時間S5’に、スタートSDCSメッセージ3’が、1次データ・ストレージ・システム2aによって送信される、または、2次データ・ストレージ・システム2bによって受信される例を示す。スタートSDCSメッセージ3’は、図6のスキャン4およびスタートSDCSメッセージ3について上述されたものに類似の様式で、グローバル・タイマー・インターバル1の満了後に、および、1次セーフ・データ・コミット・スキャン4の開始に関連して、1次データ・ストレージ・システム2aによって送信される。
スタートSDCSメッセージ3’は、ネットワークの混雑、および、1次データ・ストレージ・システム2aにおける動作上の問題、を含む様々な要因により、2次データ・ストレージ・システム2bへの到着が遅れることがある。しかし、2次データ・ストレージ・システム2bにおける2次ローカル・タイマー・インターバル2(図5、図6)の持続期間は、1つの実施形態において、1次データ・ストレージ・システムの同期している1次グローバル・タイマー・インターバル1の持続期間のものよりわずかに長くなるようにセットされてもよいので、2次データ・ストレージ・システムにおける2次タイムライン2の、この例では時間S5’における、別のセーフ・データ・コミット・スキャン(SDCS)動作であるスキャン5’の開始(ブロック454、図8)の遅れは限定的である。
したがって、次のスタート・セーフ・データ・コミット・スキャン(SDCS)メッセージがまだ受信されていないことを、2次データ・ストレージ・システム2bの同期ロジック34が判定する(ブロック480、図8)と、2次データ・ストレージ・システム2bの同期ロジック34は、同期タイマー・インターバル2が満了しているかどうかを判定する(ブロック484、図8)。2次同期タイマー・インターバル2の満了(ブロック484、図8)、および、スタート・セーフ・データ・コミット・スキャン・メッセージ3が事前に受信されていないこと(ブロック480)に応答して、2次データ・ストレージ・システム2bの同期ロジック34は、図7の2次データ・ストレージ・システムにおける2次タイムライン2の、この例では時間S5’に、別のセーフ・データ・コミット・スキャン(SDCS)動作であるスキャン5’(図7)を開始する(ブロック454、図8)。さらに、2次データ・ストレージ・システム2bの同期ロジック34は、図5のスタートSDCSメッセージ2について上述されたものに類似の様式で、別のスタート・セーフ・データ・コミット・スキャン・メッセージであるスタートSDCSメッセージ4’(図7)を3次ストレージ・システムに送信する(ブロック458、図8)。
したがって、1次データ・ストレージ・システムからスタートSDCSメッセージ3’を事前に受信せずに、同期している2次ローカル・タイマー・インターバル2が満了すると、2次SDCS動作であるスキャン5’は、スタートSDCSメッセージ3’をさらに待たずに、開始されてもよい。その結果、スタートSDCSメッセージ3’の送信または受信の遅れにかかわらず、2次SDCS動作であるスキャン5’は、SDCS動作の第2のセットに対するセーフ・データ・コミット・スキャン・セット・インターバル_SET2の中で開始され、完了されてもよい。
図7のローカル・タイマー・インターバル2などのローカル・タイマー・インターバルの満了に応答して、例えば、スキャン5’などのセーフ・データ・コミット・スキャン動作が開始されると、メッセージ3’(図7)などの遅れたスタート・セーフ・データ・コミット・スキャン・メッセージのその後の受信は実質的に無視され、別のセーフ・データ・コミット・スキャン動作を開始するために使用されない。逆に、図6について上述されたように、ローカル・タイマー・インターバル2の満了前の、タイムリなスタート・セーフ・データ・コミット・スキャン・メッセージ3(図6)の受信に応答して、セーフ・データ・コミット・スキャン動作が開始されると、ローカル・タイマー・インターバル2は、上述のようにリセットされ、別のセーフ・データ・コミット・スキャン動作を開始するために使用されない。このように、2次データ・ストレージ・システム2bの各セーフ・データ・コミット・スキャン動作は、同じセーフ・データ・コミット・スキャン・セット・インターバルにおいて、スタートSDCSメッセージ、またはローカル同期タイマー・インターバルの満了、の両方ではなく、どちらかによって開始される。
代替実施形態において、同期している2次ローカル・タイマー・インターバル2の満了、および、同期している2次ローカル・タイマー・インターバル2の満了までに1次データ・ストレージ・システムから第2のスタート・セーフ・コミット・スキャン動作メッセージ3’が受信されていないこと、に応答して、2次データ・ストレージ・システム2bの同期ロジック34は、セーフ・データ・コミット・スキャン動作の第2の同期されたセットの1次セーフ・データ・コミット・スキャン動作であるスキャン4のステータスを確かめるために、1次データ・ストレージ・システム2aに接触するように構成されてもよい。1次データ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の第2の同期されたセットのセーフ・データ・コミット・スキャン動作のステータスに応じて、第2のデータ・ストレージ・システムにおける時間の同期タイマー・インターバルのタイミング合わせをリセットするべきか、第2のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の第2の同期されたセットのセーフ・データ・コミット・スキャン動作を開始するべきかについて、2次データ・ストレージ・システム2bの同期ロジック34によって決定されてもよい。
例えば、1次データ・ストレージ・システムからのステータス情報は、1次データ・ストレージ・システムと2次データ・ストレージ・システムとの間のコピー関係が依然として有効であること、または、様々な理由で終了したこと、を示してもよい。関係が終了していた場合、セーフ・データ・コミット・スキャン動作は、このような終了によって不要になっていた可能性がある。したがって、2次データ・ストレージ・システムにおける同期タイマー・インターバルはリセットされてもよい。逆に、1次データ・ストレージ・システムにおいてセーフ・データ・コミット・スキャンが進んでいることを1次データ・ストレージ・システムからのステータス情報が示す場合、スタート・セーフ・データ・コミット・スキャン・メッセージが、2次データ・ストレージ・システムによって受信されなかったことにかかわらず、同時発生かつ同時進行のセーフ・データ・コミット・スキャン動作が、2次データ・ストレージ・システムにおいて開始されてもよい。
図9、および、3次データ・ストレージ・システム2cの同期ロジック34の動作に戻ると、3次データ・ストレージ・システム2cの同期ロジック34は、3次データ・ストレージ・システム2cにおける3次セーフ・データ・コミット・スキャン3が完了すると(ブロック512、図9)、3次データ・ストレージ・システム2c(図1)の3次タイムライン3における時間I3(図5)に、3次データ・ストレージ・システムにおける同期タイマー・インターバルである3次ローカル・タイマー・インターバル3(図5、図6)を開始する(ブロック516、図9)。3次データ・ストレージ・システム2cの同期ロジック34は、2次データ・ストレージ・システム2bによって3次データ・ストレージ・システム2cに送信された(ブロック458、図8)次のスタート・セーフ・データ・コミット・スキャン(SDCS)メッセージであるスタートSDCSメッセージ4’が受信されたかどうかを判定する(ブロック524、図9)ように構成される。図7の例では、スタートSDCSメッセージ4’は、2次データ・ストレージ・システム2bによって送信されるか、または、同期している3次ローカル・タイマー・インターバル3の満了後、3次データ・ストレージ・システム2cによって受信される。比較すると、図6の例では、スタートSDCSメッセージ4は、2次データ・ストレージ・システム2bによって送信され、同期している3次ローカル・タイマー・インターバル3の満了前に、3次データ・ストレージ・システム2cによって受信される。
本明細書の1つの実施形態において、上記で論じられたスタートSDCSメッセージ1に類似の様式で、2次データ・ストレージ・システム2bから3次データ・ストレージ・システム2cにおいて受信されたスタートSDCSメッセージ2は、同期されたタイマー・インターバル持続期間パラメータ・データを含む。1つの実施形態において、2次データ・ストレージ・システム2aからのスタートSDCSメッセージ2にパッケージされた、同期されたタイマー・インターバル持続期間パラメータ・データは、1次グローバル・タイマー・インターバル1または2次ローカル・タイマー・インターバル2などの同期タイマー・インターバルのインターバルを定義する。3次データ・ストレージ・システム2cの同期ロジック34は、2次データ・ストレージ・システム2bからのスタートSDCSメッセージ2の中で2次データ・ストレージ・システム2bから受信された、同期されたタイマー・インターバル持続期間パラメータ・データに応じて、3次データ・ストレージ・システム2cにおける3次ローカル・タイマー・インターバル3(図5、図6)の持続期間をセットするようにさらに構成される。
したがって、1つの実施形態において、3次データ・ストレージ・システム2cにおける3次ローカル・タイマー・インターバル3(図5、図6)の持続期間は、1次同期タイマー・インターバル1(図5、図6)または2次同期タイマー・インターバル2の持続期間より長い、小さいパーセンテージ(例えば10%~20%など)または短い時間(例えば5分~10分など)になるようにセットされてもよい。したがって、1つの実施形態において、タイマー・インターバル3は、例えば1時間より長い、小さいパーセンテージまたは短い時間にセットされてもよい。特定の用途に応じて、他の持続期間が選択されてもよいということが理解される。
3次同期タイマー・インターバル3の持続期間を、1次または2次同期タイマー・インターバルに近いものにセットすることは、比較的制約されたセーフ・データ・コミット・スキャン・セット・インターバル_SET2にとどまるように、同期されたSDCS動作の第2のセットのSDCS動作であるスキャン3、スキャン4、およびスキャン5を同期させることを容易にするということがさらに理解される。同時に、2次同期タイマー・インターバル2の持続期間が、1次または2次同期タイマー・インターバルのものよりわずかに長くなるようにセットすることは、下記で詳細に説明されるように、データ・ストレージ・システムにおいて、どちらが最初に発生しても、同期インターバルの満了ではなく、スタートSDCSメッセージに基づいて、1次、2次、および3次データ・ストレージ・システムのSDCS動作を同期させることを容易にするということが理解される。
前述のように、3次データ・ストレージ・システム2cにおける3次ローカル・タイマー・インターバル3(図5、図6)の持続期間は、1つの実施形態において、2次データ・ストレージ・システムの同期している2次ローカル・タイマー・インターバル2の持続期間のものよりわずかに長くなるようにセットされてもよい。その結果、図6に描写されたものなど、同期されたSDCS動作の典型的なセットにおいて、スタートSDCSメッセージは、3次データ・ストレージ・システムの同期している3次ローカル・タイマー・インターバルの満了前に、2次データ・ストレージ・システムから受信されることになる。したがって、同期されたSDCS動作の典型的なセットにおいて、SDCS動作は、3次データ・ストレージ・システムの同期している3次ローカル・タイマー・インターバルの満了ではなく、2次データ・ストレージ・システムから受信されたスタートSDCSメッセージに応答して開始されることになる。しかし、2次データ・ストレージ・システムからのスタートSDCSメッセージが非常に長い期間遅れる場合、SDCS動作は、下記で説明されるように、3次データ・ストレージ・システムの同期している3次ローカル・タイマー・インターバルの満了に応答して開始されることになる。
したがって、次のスタート・セーフ・データ・コミット・スキャン(SDCS)メッセージがまだ受信されていないことを、3次データ・ストレージ・システム2cの同期ロジック34が判定する(ブロック524、図9)と、3次データ・ストレージ・システム2cの同期ロジック34は、同期タイマー・インターバル3が満了しているかどうかを判定する(ブロック530、図9)。例えば、図7は、同期している3次ローカル・タイマー・インターバル3の満了を過ぎて、スタートSDCSメッセージ4’が遅れた例を描写する。したがって、3次同期タイマー・インターバル3の満了(ブロック530、図9)に応答して、3次データ・ストレージ・システム2cの同期ロジック34は、3次データ・ストレージ・システムにおける3次タイムライン3の、この例では時間S6’に、別のセーフ・データ・コミット・スキャン(SDCS)動作であるスキャン6’(図7)を開始する(ブロック508、図9)。
スタートSDCSメッセージ4’は、ネットワークの混雑、および、2次データ・ストレージ・システム2bにおける動作上の問題、を含む様々な要因により、3次データ・ストレージ・システム2cへの到着が遅れることがある。しかし、3次データ・ストレージ・システム2cにおける3次ローカル・タイマー・インターバル3(図5、図6)の持続期間は、1つの実施形態において、2次データ・ストレージ・システムの同期している2次ローカル・タイマー・インターバル2の持続期間のものよりわずかに長くなるようにセットされてもよいので、3次データ・ストレージ・システムにおける3次タイムライン2の、この例では時間S6’に、別のセーフ・データ・コミット・スキャン(SDCS)動作であるスキャン6’の開始(ブロック508、図9)のその後の遅れは限定的である。したがって、同期している3次ローカル・タイマー・インターバル3が満了し、2次データ・ストレージ・システムからスタートSDCSメッセージが受信されていない場合、3次SDCS動作であるスキャン6’は、スタートSDCSメッセージ4’をさらに待たずに、開始されてもよい。その結果、スタートSDCSメッセージ4’の送信または受信の遅れにもかかわらず、3次SDCS動作であるスキャン6’は、SDCS動作の第2のセットに対するセーフ・データ・コミット・スキャン・セット・インターバル_SET2の中で開始され、完了されてもよい。
SDCS動作であるスキャン1、スキャン2、およびスキャン3について上述されたものに類似の様式で、図6のSDCS動作であるスキャン4、スキャン5、およびスキャン6が完了すると、SDCS動作であるスキャン4、スキャン5、およびスキャン6の開始時間を示すタイムスタンプは、図6に示されるように、データ・ストレージ・システム2a、2b、2cそれぞれのログ記録動作であるログ4、ログ5、およびログ6でログ記録される。さらに、同期タイマー・インターバルであるインターバル4、インターバル5、およびインターバル6が、同期されたSDCS動作の次のセットに対して、図6に示されるように、データ・ストレージ・システム2a、2b、2c、それぞれにおいて開始される。
図7の例では、図7のSDCS動作であるスキャン4、スキャン5’、およびスキャン6’が完了すると、SDCS動作であるスキャン4、スキャン5’、およびスキャン6’の開始時間を示すタイムスタンプは、図7に示されるように、データ・ストレージ・システム2a、2b、2cそれぞれのログ記録動作であるログ4、ログ5’、およびログ6’でログ記録される。さらに、同期タイマー・インターバルであるインターバル4、インターバル5’、およびインターバル6’が、同期されたSDCS動作の次のセットに対して、図7に示されるように、データ・ストレージ・システム2a、2b、2cそれぞれにおいて開始される。
本明細書による同期されたセーフ・データ・コミット・スキャン動作は、上述の1次、2次、3次階層構造以外の、様々な異なる階層構造を備えるデータ・ストレージ・システムにおいて用いられてもよいということが理解される。例えば、データ・ストレージ・システムは、4次レベル、5次レベル、等など、3次を超える階層レベルを備えてもよい。また、データ・ストレージ・システムは、1次データ・ストレージ・システムが、複数の2次データ・ストレージ・システムを備えることができるように、2次データ・ストレージ・システムが複数の3次データ・ストレージ・システムを備えることができるように等、1対多のコピー関係を可能にしてもよい。
図10は、階層式データ・ストレージ・システムにおける同期されたセーフ・データ・コミット・スキャン動作の別の例を描写し、ここで、分散型データ・ストレージ・システムにおいて、1つのデータ・ストレージ・システムが、マスタ・データ・ストレージ・システムとして選択され、複数のデータ・ストレージ・システムが、マスタ・データ・ストレージ・システムに対するサブ・データ・ストレージ・システムとして選択された。例えば、データ・ストレージ・システム2a、2b、および2c(図1)は、この例では、マスタ・データ・ストレージ・システム、第1のサブ・データ・ストレージ・システム、および第2のサブ・データ・ストレージ・システムそれぞれとして構成されてもよい。また、マスタおよびサブ・データ・ストレージ・システム2a、2b、および2cは、上述ものに類似の様式で、ミラーコピー関係の1次データ・ストレージ・システム、2次データ・ストレージ・システム、または3次データ・ストレージ・システム、あるいはその組合せとして構成されてもよい。したがって、マスタ・データ・ストレージ・システム2aは、同様に、例えばミラーコピー関係の1次データ・ストレージ・システムであってもよい。しかし、マスタ・データ・ストレージ・システムは、他の実施形態において、2次または3次データ・ストレージ・システムであってもよいということが理解される。
マスタ・データ・ストレージ・システムのタイムライン_M1(図10)において、最初の同期マスタ・タイマー・インターバル_M0が満了すると、セーフ・データ・コミット・スキャン動作であるスキャン_M1が、MS1に示された時間に開始される。マスタ・セーフ・データ・コミット・スキャン動作であるスキャン_M1が開始される時間MS1にまたはほぼ時間MS1に、マスタ・データ・ストレージ・システムは、同時発生またはほぼ同時発生のスタートSDCSメッセージであるメッセージ_S2およびメッセージ_S3を、直接的に2つのサブ・データ・ストレージ・システムに発行する。同時発生かつ同時進行のスタートSDCSメッセージであるメッセージ_S2およびメッセージ_S3は、2つのサブ・データ・ストレージ・システムによって直接的に受信された単一のブロードキャスト・メッセージとして、または、例えば、マスタ・データ・ストレージ・システムから直接、サブ・データ・ストレージ・システムのそれぞれに、同時進行して、もしくは連続的に、別々に発行された別個のメッセージとして、実行されてもよい。比較すると、図5~図7の実施形態において、スタート・セーフ・データ・コミット・スキャン・メッセージは、2次データ・ストレージ・システムから3次データ・ストレージ・システムに伝搬または中継された。
スタートSDCSメッセージが、マスタ・データ・ストレージ・システムから直接的に受信されたのに応答して、セーフ・データ・コミット・スキャン動作であるスキャン_S2が、1つのサブ・データ・ストレージ・システムに対して、タイムライン_S2におけるSS2に示された時間に開始される。同様に、スタートSDCSメッセージが、マスタ・データ・ストレージ・システムから直接的に受信されたのに応答して、セーフ・データ・コミット・スキャン動作であるスキャン_S3が、図10の例では、他のサブ・データ・ストレージ・システムに対して、タイムライン_S3におけるSS3に示された時間に開始される。
したがって、サブ・データ・ストレージ・システムは、マスタ・データ・ストレージ・システムから直接的に受信された1つまたは複数のスタートSDCSメッセージを使用して、マスタ・データ・ストレージ・システムにおける同時発生かつ同時進行のセーフ・データ・コミット・スキャン動作と、サブ・データ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作を同期させる。その結果、マスタおよび2つのサブ・データ・ストレージ・システム2a、2b、2cそれぞれのセーフ・データ・コミット・スキャン動作であるスキャン_M1、スキャン_S2、およびスキャン_S3は、実質的に同時発生かつ同時進行で動くように同期される。したがって、図10のSDCS動作の第1のセットの3つの同期されたセーフ・データ・コミット・スキャン動作であるスキャン_M1、スキャン_S2、およびスキャン_S3全ては、セーフ・データ・コミット・スキャン動作の第1の同期されたセットに対する単一の同期されたセーフ・データ・コミット・スキャン・セット・インターバル_SET_M1の中で発生する。その結果、セーフ・データ・コミット・スキャン動作により低下したレスポンス時間のいずれかのインターバルは、同様に、同期されたセーフ・データ・コミット・スキャン・セット・インターバル_SET_M1に対して実質的に同時発生し、実質的に限定される。
SDCS動作であるスキャン1(図5)、スキャン2、およびスキャン3について上述されたものに類似の様式で、図10のSDCS動作であるスキャン_M1、スキャン_S2、およびスキャン_S3の第1のセットが完了すると、SDCS動作であるスキャン_M1、スキャン_S2、およびスキャン_S3の開始時間を示すタイムスタンプが、図10に示されるように、データ・ストレージ・システム2a、2b、2cそれぞれのログ記録動作であるログ_M1、ログ_S2、およびログ_S3それぞれでログ記録される。さらに、同期タイマー・インターバルであるマスタ・タイマー・インターバル_M1、サブ・タイマー・インターバル_S2、およびサブ・タイマー・インターバル_S3が、同期されたSDCS動作の次のセットに対して、図10に示されるように、データ・ストレージ・システム2a、2b、2cそれぞれにおいて、時間MI1、SI2、SI3それぞれに、開始される。
同期サブ・タイマー・インターバルであるインターバル_S2およびインターバル_S3の持続期間は、1つの実施形態において、マスタ・データ・ストレージ・システムの同期マスタ・タイマー・インターバル_M1の持続期間のものより、わずかに長くなるようにセットされてもよい。その結果、同期されたSDCS動作の典型的なセットにおいて、スタートSDCSメッセージは、サブ・データ・ストレージ・システムの同期サブ・タイマー・インターバルの満了前に、マスタ・データ・ストレージ・システムから受信されることになる。したがって、同期されたSDCS動作の典型的なセットにおいて、SDCS動作は、図7について上述されたものに類似の様式で、サブ・データ・ストレージ・システムの同期サブ・タイマー・インターバルの満了に応答するのではなく、図6について上述されたものに類似の様式で、マスタ・データ・ストレージ・システムからスタートSDCSメッセージが受信されたのに応答して、開始されることになる。しかし、特定のサブ・データ・ストレージ・システムにおいて、マスタ・データ・ストレージ・システムからのスタートSDCSメッセージが、非常に長い期間、遅れた場合、そのサブ・データ・ストレージ・システムにおけるSDCS動作は、図7について上述されたものに類似の様式で、関連付けられたデータ・ストレージ・システムの同期サブ・タイマー・インターバルの満了に応答して、開始されることになる。
その結果、マスタおよびサブ・データ・ストレージ・システムのセーフ・データ・コミット・スキャン動作の各同期されたセットの全ての同期されたSDCS動作は、SDCS動作がマスタ・データ・ストレージ・システムからのスタートSDCSメッセージによってトリガされようと、ローカルな同期サブ・タイマー・インターバルの満了によってトリガされようと、セーフ・データ・コミット・スキャン・セット・インターバル_SET_M1などの単一の同期されたセーフ・データ・コミット・スキャン・セット・インターバルの中で発生することになる。したがって、サブ・データ・ストレージ・システムにおける各セーフ・データ・コミット・スキャン動作は、いずれか1つのデータ・ストレージ・システム、および、同期されたセーフ・データ・コミット・スキャン動作の特定のセットに対するセーフ・データ・コミット・スキャン・セット・インターバルなどのセーフ・データ・コミット・スキャン・セット・インターバル、において、スタート・メッセージ、またはローカル同期タイマー・インターバルの満了、の両方ではなく、どちらかによって開始される。
分散型データ・ストレージ・システムの個々のデータ・ストレージ・システムのセーフ・データ・コミット・スキャン動作の同期されたセットは、同期されたセーフ・データ・スキャン・コミット・インターバルの範囲外の入出力レスポンス時間の低下の発生を低減または除去するために、単一の同期されたセーフ・データ・コミット・スキャン・セット・インターバルの中で時間が実質的に重複するように同期してタイミングを合わされるということが上記からわかる。特定の用途に応じて、他の実施形態および長所が実現されてもよい。
図の計算構成要素は、それぞれ、図11に示されたコンピュータ・システム1002など、1つまたは複数のコンピュータ・システムにおいて実行されてもよい。コンピュータ・システム/サーバ1002は、コンピュータ・システムによって実行されるプログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な背景で説明されてもよい。一般に、プログラム・モジュールは、特定のタスクを行う、または、特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造、などを含んでもよい。コンピュータ・システム/サーバ1002は、通信ネットワークを通じてリンクされたリモート処理デバイスによってタスクが行われる分散型クラウド・コンピューティング環境で実践されてもよい。分散型クラウド・コンピューティング環境では、プログラム・モジュールは、メモリ・ストレージ・デバイスを含むローカルとリモート両方のコンピュータ・システム・ストレージ媒体の中に配置されてもよい。
図11に示されるように、コンピュータ・システム/サーバ1002は、汎用コンピューティング・デバイスの形で示される。コンピュータ・システム/サーバ1002の構成要素は、1つまたは複数のプロセッサまたは処理ユニット1004、システム・メモリ1006、および、システム・メモリ1006を含む様々なシステム構成要素をプロセッサ1004に連結するバス1008を含んでもよいがこれらに限定されない。バス1008は、メモリ・バスまたはメモリ・コントローラ、周辺機器バス、アクセラレイティッド・グラフィックス・ポート、および、様々なバス・アーキテクチャのいずれかを使用するプロセッサまたはローカル・バスを含む、バス構造のいくつかのタイプのいずれかの1つまたは複数に相当する。例として、および限定ではなく、このようなアーキテクチャは、インダストリ・スタンダード・アーキテクチャ(ISA)バス、マイクロ・チャネル・アーキテクチャ(MCA)バス、エンハンストISA(EISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA)ローカル・バス、およびペリフェラル・コンポーネント・インターコネクト(PCI)バスを含む。
コンピュータ・システム/サーバ1002は、典型的には、様々なコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム/サーバ1002によってアクセス可能な任意の利用可能な媒体であってもよく、揮発性媒体と不揮発性媒体の両方、取外し可能媒体と取外し不能媒体の両方を含む。
システム・メモリ1006は、ランダム・アクセス・メモリ(RAM)1010またはキャッシュ・メモリ1012あるいはその両方など、揮発性メモリの形のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ1002は、他の取外し可能/取外し不能な、揮発性/不揮発性のコンピュータ・システム・ストレージ媒体をさらに含んでもよい。ほんの一例として、(図示されていないが、典型的には「ハード・ドライブ」と呼ばれる)取外し不能な不揮発性磁気媒体を読み書きするために、ストレージ・システム1013が提供されることが可能である。図示されていないが、取外し可能な不揮発性磁気ディスク(例えば「フロッピー(R)・ディスク」)を読み書きするための磁気ディスク・ドライブ、および、CD-ROM、DVD-ROM、または他の光媒体などの取外し可能な不揮発性光ディスクを読み書きするための光ディスク・ドライブが提供されることが可能である。このような事例では、それぞれが、1つまたは複数のデータ媒体インターフェースによってバス1008に接続されることが可能である。下記でさらに描写され、説明されることになるように、メモリ1006は、本発明の実施形態の機能を実行するように構成されたプログラム・モジュールのセット(例えば、少なくとも1つ)を備える少なくとも1つのプログラム製品を含んでもよい。
オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データだけでなく、プログラム・モジュール1016のセット(少なくとも1つ)を備えるプログラム/ユーティリティ1014が、例として、および限定ではなく、メモリ1006に格納されてもよい。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データ、のそれぞれ、またはこれらのいくつかの組合せは、ネットワーキング環境の実装形態を含んでもよい。コンピュータ・システム1002の構成要素は、本明細書において説明されるような、本発明の実施形態の機能または方法あるいはその両方を一般に実行するプログラム・モジュール1016として実装されてもよい。図1のシステムは、1つまたは複数のコンピュータ・システム1002に実装されてもよく、ここで、複数のコンピュータ・システム1002でこれらが実行される場合、コンピュータ・システムは、ネットワークで通信してもよい。
また、コンピュータ・システム/サーバ1002は、キーボード、ポインティング・デバイス、ディスプレイ1020、等などの1つもしくは複数の外部デバイス1018、コンピュータ・システム/サーバ1002とユーザが対話できるようにする1つもしくは複数のデバイス、または、1つもしくは複数の他のコンピューティング・デバイスとコンピュータ・システム/サーバ1002が通信できるようにする任意のデバイス(例えば、ネットワーク・カード、モデム、等)、あるいはその組合せ、と通信してもよい。このような通信は、入出力(I/O)インターフェース1022を介して発生することが可能である。さらに、コンピュータ・システム/サーバ1002は、ローカル・エリア・ネットワーク(LAN)、一般的な広域ネットワーク(WAN)、または、パブリック・ネットワーク(例えばインターネット)、あるいはその組合せなどの1つまたは複数のネットワークと、ネットワーク・アダプタ1024を介して通信することができる。描写されるように、ネットワーク・アダプタ1024は、コンピュータ・システム/サーバ1002の他の構成要素と、バス1008を介して通信する。図示されていないが、他のハードウェアまたはソフトウェア構成要素あるいはその両方が、コンピュータ・システム/サーバ1002と共に使用される可能性があるということが理解されよう。例は、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、および、データ・アーカイブ・ストレージ・システム、等を含むがこれらに限定されない。
i、j、およびnなどの、本明細書において使用される参照文字は、同じ値または異なる値を表すことがある要素の不定数の事例を表すために使用され、様々な説明される事例における異なる要素または同じ要素と共に使用されるときに同じ値または異なる値を表すことがある。
本発明は、システム、方法、または、コンピュータ・プログラム製品、あるいはその組合せであってもよい。コンピュータ・プログラム製品は、本発明の態様によるプロセッサ動作をプロセッサに行わせるためのコンピュータ可読プログラム命令を保持するコンピュータ可読ストレージ媒体(または複数の媒体)を含んでもよい。
コンピュータ可読ストレージ媒体は、命令実行デバイスによる使用のための命令を保持し、格納することができる有形デバイスであることが可能である。例えば、コンピュータ可読ストレージ媒体は、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、または前述のいずれかの適切な組合せであってもよいが、これらに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の完全に網羅されていないリストは、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)、消去可能プログラマブル・リード・オンリ・メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リード・オンリ・メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、命令が記録されたパンチ・カードまたは溝内隆起構造などの機械的にエンコードされたデバイス、および、前述のいずれかの適切な組合せを含む。コンピュータ可読ストレージ媒体は、本明細書において使用されるように、電波もしくは他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、または、ワイヤを通じて伝送される電気信号など、それ自体が一時的な信号であると解釈されるべきではない。
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から個々のコンピューティング/処理デバイスに、あるいは、例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、もしくはワイヤレス・ネットワーク、またはその組合せといったネットワークを介して外部コンピュータまたは外部ストレージ・デバイスに、ダウンロードされることが可能である。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを備えてもよい。各コンピューティング・デバイス/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、コンピュータ可読プログラム命令をネットワークから受信し、個々のコンピューティング・デバイス/処理デバイス内のコンピュータ可読ストレージ媒体に格納するためにコンピュータ可読プログラム命令を転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ(ISA)命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、Java(R)、Smalltalk(R)、C++、もしくは同様のものなどのオブジェクト指向プログラミング言語、および、「C」プログラミング言語、もしくは類似のプログラミング言語などの従来の手続き型プログラミング言語を含む1つもしくは複数のプログラミング言語の任意の組合せで書かれたソース・コードもしくはオブジェクト・コードのどちらか、であってもよい。コンピュータ可読プログラム命令は、スタンド・アロンのソフトウェア・パッケージとして、全面的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で実行してもよく、部分的にユーザのコンピュータ上および部分的にリモート・コンピュータ上で、または全面的にリモート・コンピュータもしくはサーバ上で実行してもよい。後者のシナリオにおいて、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくは広域ネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続されてもよく、または、(例えば、インターネット・サービス・プロバイダを使用してインターネットを通じて)外部コンピュータに接続されてもよい。いくつかの実施形態において、例えば、プログラマブル・ロジック回路機器、フィールド・プログラマブル・ゲート・アレイ(FPGA)、または、プログラマブル・ロジック・アレイ(PLA)を含む電子回路機器は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路機器を個別化することによって、コンピュータ可読プログラム命令を実行してもよい。
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の流れ図またはブロック図あるいはその両方を参照しながら本明細書において説明される。流れ図またはブロック図あるいはその両方の各ブロック、および、流れ図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実行されることが可能であるということが理解されよう。
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行する命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックに指定された機能/動作を実行するための手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。また、これらのコンピュータ可読プログラム命令は、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックに指定された機能/動作の態様を実行する命令を含む製品を、命令が格納されたコンピュータ可読ストレージ媒体が含むべく、コンピュータ可読ストレージ媒体に格納され、コンピュータ、プログラム可能データ処理装置、または他のデバイス、あるいはその組合せに特定の手法で機能するように指示することができるものであってもよい。
また、コンピュータ可読プログラム命令は、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行する命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックに指定された機能/動作を実行するべく、コンピュータ実行処理を生み出すために、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラム可能装置、または他のデバイスで一連の動作ステップを行わせるものであってもよい。
図中の流れ図およびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を示す。この点に関して、流れ図およびブロック図における各ブロックは、命令のモジュール、セグメント、または一部に相当することがあり、指定の論理機能を実行するための1つまたは複数の実行可能命令を含む。いくつかの代替実装形態において、ブロックに記された機能は、図に記された順序とは異なる順序で発生してもよい。例えば、連続して示された2つのブロックは実際に、実質的に並行に実行されてもよく、または、ブロックは時には、含まれる機能に応じて、逆の順序で実行されてもよい。ブロック図または流れ図あるいはその両方の各ブロック、および、ブロック図または流れ図あるいはその両方におけるブロックの組合せは、指定の機能もしくは動作を実行する、または、特殊用途のハードウェアとコンピュータ命令の組合せを実行する、特殊用途のハードウェアに基づくシステムによって実行されることが可能であるということにも留意されたい。
用語「一実施形態(an embodiment)」、「実施形態(embodiment)」、「複数の実施形態(embodiments)」、「その実施形態(the embodiment)」、「それらの実施形態(the embodiments)」、「1つまたは複数の実施形態(one or more embodiments)」、「いくつかの実施形態(some embodiments)」、および「1つの実施形態(one embodiment)」は、別途明確に指定されない限り、「本発明の(全てではなく)1つまたは複数の実施形態(one or more (but not all) embodiments of the present invention(s))」を意味する。
用語「含む(including)」、「備える(comprising)」、「有する(having)」、およびその変化形は、別途明確に指定されない限り、「含むが限定されない(including but not limited to)」を意味する。
項目の列挙されたリストは、別途明確に指定されない限り、項目のいずれかまたは全てが、相互に排他的であることを意味するものではない。
用語「ある(a)」、「1つの(an)」、および「その(the)」は、別途明確に指定されない限り、「1つまたは複数(one or more)」を意味する。
互いに通信中のデバイスは、別途明確に指定されない限り、互いに連続的に通信中である必要はない。さらに、互いに通信中のデバイスは、1つまたは複数の中間体を通じて直接的または間接的に通信してもよい。
いくつかの構成要素が互いに通信中である実施形態の説明は、全てのこのような構成要素が必要であることを意味するものではない。反対に、様々な任意選択の構成要素が、本発明の多種多様な可能な実施形態を示すために説明される。
単一のデバイスまたは物品が本明細書において説明されるとき、2つ以上のデバイス/物品が(これらが連携していてもいなくても)、単一のデバイス/物品の代わりに使用されてもよいということが容易に明らかになるであろう。同様に、2つ以上のデバイスまたは物品が本明細書において説明される場合(これらが連携していてもいなくても)、2つ以上のデバイスもしくは物品の代わりに、単一のデバイス/物品が使用されてもよい、または、示された数のデバイスもしくはプログラムの代わりに、異なる数のデバイス/物品が使用されてもよい、ということが容易に明らかになるであろう。デバイスの機能または特徴あるいはその両方は、代替として、このような機能/特徴を備えるものとして明示的に説明されていない1つまたは複数の他のデバイスによって具現化されてもよい。したがって、本発明の他の実施形態は、デバイス自体を含む必要はない。
本発明の様々な実施形態の前述の説明は、例証および説明のために提示されてきた。これは、網羅的であること、または、開示の正確な形式に本発明を限定することを意図するものではない。多くの修正および変更が、上記の教示の観点から可能である。この詳細な説明によってではなく、むしろ、本明細書に添付の特許請求の範囲によって、本発明の範囲が限定されるということが意図される。上記の明細書、例、およびデータは、本発明の構造の製造および使用の完全な説明を提供する。本発明の多くの実施形態は、本発明の思想および範囲から逸脱することなく行われることが可能なので、本発明は、後で添付された本明細書における特許請求の範囲から成り立つ。

Claims (18)

  1. 方法であって、
    複数のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の第1のセットを同期させることを含み、各セーフ・データ・コミット・スキャン動作が、データ・ストレージ・システムのキャッシュにキャッシュされたデータを、データ・ストレージ・システムのデータ・ストレージ・ユニットにデステージし、セーフ・データ・コミット・スキャン動作の前記第1のセットを同期させることが、
    第1のデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の前記第1のセットの第1のセーフ・データ・コミット・スキャン動作を開始することと、
    前記第1のデータ・ストレージ・システムから第2のデータ・ストレージ・システムに、第1のスタート・セーフ・データ・コミット・スキャン動作メッセージを送信することと、
    前記第1のスタート・セーフ・データ・コミット・スキャン動作メッセージに応答して、前記第2のデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の前記第1のセットの第2のセーフ・データ・コミット・スキャン動作を開始することと
    前記複数のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の第2のセットを同期させることをさらに含み、セーフ・データ・コミット・スキャン動作の前記第2のセットを同期させることが、
    第1のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の前記第1のセットの前記第1のセーフ・データ・コミット・スキャン動作が完了すると、前記第1のデータ・ストレージ・システムにおける時間インターバルのタイミングを合わせることと、
    前記第2のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の前記第1のセットの前記第2のセーフ・データ・コミット・スキャン動作が完了すると、前記第2のデータ・ストレージ・システムにおける時間インターバルのタイミングを合わせることと、
    前記第1のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミング合わせの満了に応答して、前記第1のデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の前記第2のセットの第1のセーフ・データ・コミット・スキャン動作を開始することと、
    前記第1のデータ・ストレージ・システムから前記第2のデータ・ストレージ・システムに第2のスタート・セーフ・データ・コミット・スキャン動作メッセージを送信することと
    を含む、方法。
  2. 前記第1のデータ・ストレージ・システムから前記第2のデータ・ストレージ・システムへの前記第1のスタート・セーフ・データ・コミット・スキャン動作メッセージが、前記第1のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミングを合わせる持続期間を定義するタイマー・インターバル持続期間パラメータを含み、前記第2のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミング合わせの持続期間が、前記第1のデータ・ストレージ・システムからの前記第1のスタート・セーフ・データ・コミット・スキャン動作メッセージの前記タイマー・インターバル持続期間パラメータの関数である、請求項に記載の方法。
  3. 前記第2のデータ・ストレージ・システムにおける前記時間インターバルの前記持続期間が、前記第1のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミングを合わせる持続期間より長くなるようにセットされる、請求項に記載の方法。
  4. セーフ・データ・コミット・スキャン動作の前記第2のセットを同期させることが、
    前記第2のスタート・セーフ・データ・コミット・スキャン動作メッセージに応答して、前記第2のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミングを合わせることが満了していない場合、前記第2のデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の前記第2のセットの第2のセーフ・データ・コミット・スキャン動作を開始することと、
    前記第2のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミング合わせの満了に応答して、第2のスタート・セーフ・データ・コミット・スキャン動作メッセージが前記第1のデータ・ストレージ・システムから受信されていない場合、前記第2のデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の前記第2のセットの第2のセーフ・データ・コミット・スキャン動作を開始することと
    をさらに含む、請求項に記載の方法。
  5. 前記複数のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の第3のセットを同期させることをさらに含み、セーフ・データ・コミット・スキャン動作の前記第3のセットを同期させることが、
    前記第1のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の前記第2のセットの前記第1のセーフ・データ・コミット・スキャン動作が完了すると、前記第1のデータ・ストレージ・システムにおける別の時間インターバルのタイミングを合わせることと、
    前記第2のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の前記第2のセットの前記第2のセーフ・データ・コミット・スキャン動作が完了すると、前記第2のデータ・ストレージ・システムにおける別の時間インターバルのタイミングを合わせることと、
    を含む、請求項に記載の方法。
  6. セーフ・データ・コミット・スキャン動作の前記第2のセットを同期させることが、
    前記第2のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミング合わせの満了、および、前記第2のスタート・セーフ・データ・コミット・スキャン動作メッセージが前記第1のデータ・ストレージ・システムから受信されていないこと、に応答して、前記第1のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の前記第2のセットの第1のセーフ・データ・コミット・スキャン動作のステータスを確かめるために、前記第1のデータ・ストレージ・システムに接触すること、および、前記第1のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の前記第2のセットの第1のセーフ・データ・コミット・スキャン動作の前記ステータスに応じて、前記第2のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミング合わせをリセットするべきか、前記第2のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の前記第2のセットの第2のセーフ・データ・コミット・スキャン動作を開始するべきかについて、決定すること
    をさらに含む、請求項に記載の方法。
  7. 前記第1のデータ・ストレージ・システムが、マスタ・データ・ストレージ・システムであり、前記第2のデータ・ストレージ・システムが、サブ・データ・ストレージ・システムであり、セーフ・データ・コミット・スキャン動作の前記第1のセットを前記同期させることが、
    前記マスタ・データ・ストレージ・システムから別のサブ・データ・ストレージ・システムに第2のスタート・セーフ・データ・コミット・スキャン動作メッセージを送信することと、
    前記第2のスタート・セーフ・データ・コミット・スキャン動作メッセージに応答して、別のサブ・データ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の前記第1のセットの第3のセーフ・データ・コミット・スキャン動作を開始することと
    をさらに含む、請求項1に記載の方法。
  8. 前記第1のデータ・ストレージ・システムが、1次データ・ストレージ・システムであり、前記第2のデータ・ストレージ・システムが、2次データ・ストレージ・システムであり、セーフ・データ・コミット・スキャン動作の前記第1のセットを前記同期させることが、
    前記第1のスタート・セーフ・データ・コミット・スキャン動作メッセージに応答して、前記2次データ・ストレージ・システムから3次データ・ストレージ・システムに第2のスタート・セーフ・データ・コミット・スキャン動作メッセージを送信することと、
    前記第2のスタート・セーフ・データ・コミット・スキャン動作メッセージに応答して、前記3次データ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の前記第1のセットの第3のセーフ・データ・コミット・スキャン動作を開始することと
    をさらに含む、請求項1に記載の方法。
  9. 請求項1~8の何れか1項に記載の方法を、コンピュータに実行させる、コンピュータ・プログラム
  10. 請求項9に記載の前記コンピュータ・プログラムを、コンピュータ可読ストレージ媒体に記憶した、ストレージ媒体
  11. 複数のデータ・ストレージ・システムであって、各データ・ストレージ・システムが、ストレージ・コントローラ、およびストレージ・コントローラによって制御され、データを格納するように構成されたデータ・ストレージ・ユニットを備え、各データ・ストレージ・システムの前記ストレージ・コントローラが、プロセッサおよびキャッシュを備え、前記複数のデータ・ストレージ・システムが、1次データ・ストレージ・システムとして構成された第1のデータ・ストレージ・システム、および2次データ・ストレージ・システムとして構成された第2のデータ・ストレージ・システムを含む、前記複数のデータ・ストレージ・システムを備え、前記プロセッサの動作が、
    複数のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の第1のセットを同期させることを含み、各セーフ・データ・コミット・スキャン動作が、データ・ストレージ・システムのキャッシュにキャッシュされたデータを、データ・ストレージ・システムのデータ・ストレージ・ユニットにデステージし、セーフ・データ・コミット・スキャン動作の前記第1のセットを同期させることが、
    第1のデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の前記第1のセットの第1のセーフ・データ・コミット・スキャン動作を開始することと、
    前記第1のデータ・ストレージ・システムから第2のデータ・ストレージ・システムに、第1のスタート・セーフ・データ・コミット・スキャン動作メッセージを送信することと、
    前記第1のスタート・セーフ・データ・コミット・スキャン動作メッセージに応答して、前記第2のデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の前記第1のセットの第2のセーフ・データ・コミット・スキャン動作を開始することと
    前記複数のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の第2のセットを同期させることをさらに含み、セーフ・データ・コミット・スキャン動作の前記第2のセットを同期させることが、
    第1のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の前記第1のセットの前記第1のセーフ・データ・コミット・スキャン動作が完了すると、前記第1のデータ・ストレージ・システムにおける時間インターバルのタイミングを合わせることと、
    前記第2のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の前記第1のセットの前記第2のセーフ・データ・コミット・スキャン動作が完了すると、前記第2のデータ・ストレージ・システムにおける時間インターバルのタイミングを合わせることと、
    前記第1のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミング合わせの満了に応答して、前記第1のデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の前記第2のセットの第1のセーフ・データ・コミット・スキャン動作を開始することと、
    前記第1のデータ・ストレージ・システムから前記第2のデータ・ストレージ・システムに第2のスタート・セーフ・データ・コミット・スキャン動作メッセージを送信することと
    を含む、システム。
  12. 前記第1のデータ・ストレージ・システムから前記第2のデータ・ストレージ・システムへの前記第1のスタート・セーフ・データ・コミット・スキャン動作メッセージが、前記第1のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミングを合わせる持続期間を定義するタイマー・インターバル持続期間パラメータを含み、前記第2のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミング合わせの持続期間が、前記第1のデータ・ストレージ・システムからの前記第1のスタート・セーフ・データ・コミット・スキャン動作メッセージの前記タイマー・インターバル持続期間パラメータの関数である、請求項11に記載のシステム。
  13. 前記第2のデータ・ストレージ・システムにおける前記時間インターバルの前記持続期間が、前記第1のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミングを合わせる持続期間より長くなるようにセットされる、請求項12に記載のシステム。
  14. セーフ・データ・コミット・スキャン動作の前記第2のセットを同期させることが、
    前記第2のスタート・セーフ・データ・コミット・スキャン動作メッセージに応答して、前記第2のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミングを合わせることが満了していない場合、前記第2のデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の前記第2のセットの第2のセーフ・データ・コミット・スキャン動作を開始することと、
    前記第2のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミング合わせの満了に応答して、第2のスタート・セーフ・データ・コミット・スキャン動作メッセージが前記第1のデータ・ストレージ・システムから受信されていない場合、前記第2のデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の前記第2のセットの第2のセーフ・データ・コミット・スキャン動作を開始することと
    をさらに含む、請求項11に記載のシステム。
  15. 前記プロセッサ動作が、
    前記複数のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の第3のセットを同期させることをさらに含み、セーフ・データ・コミット・スキャン動作の前記第3のセットを同期させることが、
    前記第1のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の前記第2のセットの前記第1のセーフ・データ・コミット・スキャン動作が完了すると、前記第1のデータ・ストレージ・システムにおける別の時間インターバルのタイミングを合わせることと、
    前記第2のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の前記第2のセットの前記第2のセーフ・データ・コミット・スキャン動作が完了すると、前記第2のデータ・ストレージ・システムにおける別の時間インターバルのタイミングを合わせることと
    を含む、請求項14に記載のシステム。
  16. セーフ・データ・コミット・スキャン動作の前記第2のセットを同期させることが、
    前記第2のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミング合わせの満了、および、前記第2のスタート・セーフ・データ・コミット・スキャン動作メッセージが前記第1のデータ・ストレージ・システムから受信されていないこと、に応答して、前記第1のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の前記第2のセットの第1のセーフ・データ・コミット・スキャン動作のステータスを確かめるために、前記第1のデータ・ストレージ・システムに接触すること、および、前記第1のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の前記第2のセットの第1のセーフ・データ・コミット・スキャン動作の前記ステータスに応じて、前記第2のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミング合わせをリセットするべきか、前記第2のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の前記第2のセットの第2のセーフ・データ・コミット・スキャン動作を開始するべきかについて、決定すること
    をさらに含む、請求項11に記載のシステム。
  17. 前記第1のデータ・ストレージ・システムが、マスタ・データ・ストレージ・システム
    であり、前記第2のデータ・ストレージ・システムが、サブ・データ・ストレージ・システムであり、セーフ・データ・コミット・スキャン動作の前記第1のセットを前記同期させることが、
    前記マスタ・データ・ストレージ・システムから別のサブ・データ・ストレージ・システムに第2のスタート・セーフ・データ・コミット・スキャン動作メッセージを送信することと、
    前記第2のスタート・セーフ・データ・コミット・スキャン動作メッセージに応答して、別のサブ・データ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の前記第1のセットの第3のセーフ・データ・コミット・スキャン動作を開始することと
    をさらに含む、請求項11に記載のシステム。
  18. 前記第1のデータ・ストレージ・システムが、1次データ・ストレージ・システムであり、前記第2のデータ・ストレージ・システムが、2次データ・ストレージ・システムであり、セーフ・データ・コミット・スキャン動作の前記第1のセットを前記同期させることが、
    前記第1のスタート・セーフ・データ・コミット・スキャン動作メッセージに応答して、前記2次データ・ストレージ・システムから3次データ・ストレージ・システムに第2のスタート・セーフ・データ・コミット・スキャン動作メッセージを送信することと、
    前記第2のスタート・セーフ・データ・コミット・スキャン動作メッセージに応答して、前記3次データ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の前記第1のセットの第3のセーフ・データ・コミット・スキャン動作を開始することと
    をさらに含む、請求項11に記載のシステム。
JP2020543167A 2018-03-06 2019-02-27 複数のデータ・ストレージ・システムにおける同期されたセーフ・データ・コミット・スキャン Active JP7184909B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/913,735 2018-03-06
US15/913,735 US10809938B2 (en) 2018-03-06 2018-03-06 Synchronized safe data commit scans in multiple data storage systems
PCT/IB2019/051576 WO2019171212A1 (en) 2018-03-06 2019-02-27 Synchronized safe data commit scans in multiple data storage systems

Publications (2)

Publication Number Publication Date
JP2021515926A JP2021515926A (ja) 2021-06-24
JP7184909B2 true JP7184909B2 (ja) 2022-12-06

Family

ID=67842642

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020543167A Active JP7184909B2 (ja) 2018-03-06 2019-02-27 複数のデータ・ストレージ・システムにおける同期されたセーフ・データ・コミット・スキャン

Country Status (6)

Country Link
US (1) US10809938B2 (ja)
JP (1) JP7184909B2 (ja)
CN (1) CN111684407B (ja)
DE (1) DE112019000568T5 (ja)
GB (1) GB2586398B (ja)
WO (1) WO2019171212A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11144358B1 (en) * 2018-12-06 2021-10-12 Pure Storage, Inc. Asynchronous arbitration of shared resources
CN114116746A (zh) * 2021-11-24 2022-03-01 北京字节跳动网络技术有限公司 多系统数据存储方法、装置、介质及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005519408A (ja) 2002-03-06 2005-06-30 マラソン テクノロジーズ コーポレイション 増分不一致を使用するミラーコピーの生成方法
JP2008134987A (ja) 2006-10-30 2008-06-12 Hitachi Ltd 情報システム及び情報システムのデータ転送方法
CN101446972A (zh) 2008-12-12 2009-06-03 中兴通讯股份有限公司 一种动态数据同步的方法和系统
CN103745353A (zh) 2014-01-23 2014-04-23 福建联迪商用设备有限公司 一种电子支付终端验证方法及系统

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6292905B1 (en) 1997-05-13 2001-09-18 Micron Technology, Inc. Method for providing a fault tolerant network using distributed server processes to remap clustered network resources to other servers during server failure
US6185608B1 (en) 1998-06-12 2001-02-06 International Business Machines Corporation Caching dynamic web pages
EP1158409B1 (en) 2000-05-25 2008-05-28 Hitachi, Ltd. Storage system making possible data synchronisation confirmation at time of asynchronous remote copy
US7127512B2 (en) 2002-02-19 2006-10-24 Qualcomm Inc. Method and apparatus for two-phase commit in data distribution to a web farm
GB0308264D0 (en) 2003-04-10 2003-05-14 Ibm Recovery from failures within data processing systems
JP2005079912A (ja) 2003-08-29 2005-03-24 Matsushita Electric Ind Co Ltd セキュアデータ管理装置
US7370163B2 (en) * 2004-05-03 2008-05-06 Gemini Storage Adaptive cache engine for storage area network including systems and methods related thereto
US7752173B1 (en) * 2005-12-16 2010-07-06 Network Appliance, Inc. Method and apparatus for improving data processing system performance by reducing wasted disk writes
US7651593B2 (en) 2005-12-19 2010-01-26 Commvault Systems, Inc. Systems and methods for performing data replication
US7506011B2 (en) * 2006-07-26 2009-03-17 International Business Machines Corporation System and apparatus for optimally trading off the replication overhead and consistency level in distributed applications
US20090313428A1 (en) 2006-09-25 2009-12-17 Intellimagic Optimising Remote Mirroring Resynchronisation
US7613738B2 (en) 2007-01-16 2009-11-03 Microsoft Corporation FAT directory structure for use in transaction safe file system
US8046548B1 (en) 2007-01-30 2011-10-25 American Megatrends, Inc. Maintaining data consistency in mirrored cluster storage systems using bitmap write-intent logging
US8650155B2 (en) 2008-02-26 2014-02-11 Oracle International Corporation Apparatus and method for log based replication of distributed transactions using globally acknowledged commits
US7921328B1 (en) 2008-04-18 2011-04-05 Network Appliance, Inc. Checkpoint consolidation for multiple data streams
JP5147570B2 (ja) 2008-07-02 2013-02-20 株式会社日立製作所 ストレージシステム及びリモートコピー復旧方法
US9165012B2 (en) 2009-10-02 2015-10-20 Symantec Corporation Periodic file system checkpoint manager
US8332589B2 (en) * 2010-09-29 2012-12-11 International Business Machines Corporation Management of write cache using stride objects
US8924354B2 (en) 2011-02-01 2014-12-30 Ca, Inc. Block level data replication
US8538926B2 (en) 2011-03-08 2013-09-17 Rackspace Us, Inc. Massively scalable object storage system for storing object replicas
JP5752327B2 (ja) 2012-06-26 2015-07-22 株式会社日立製作所 ストレージシステム、及びストレージシステムの制御方法
US8909985B2 (en) 2012-07-12 2014-12-09 International Business Machines Corporation Multiple hyperswap replication sessions
US20140258635A1 (en) 2013-03-08 2014-09-11 Oracle International Corporation Invalidating entries in a non-coherent cache
US20160048428A1 (en) 2013-09-04 2016-02-18 DataGravity, Inc. Thin provisioned clone
US9390281B2 (en) 2013-12-30 2016-07-12 Open Invention Network, Llc Protecting data in insecure cloud storage
US9904688B2 (en) 2014-09-30 2018-02-27 International Business Machines Corporation Buffering and replicating data written to a distributed storage system
US10275320B2 (en) 2015-06-26 2019-04-30 Commvault Systems, Inc. Incrementally accumulating in-process performance data and hierarchical reporting thereof for a data stream in a secondary copy operation
US10630802B2 (en) 2015-12-07 2020-04-21 International Business Machines Corporation Read caching in PPRC environments
US10318429B2 (en) 2016-11-10 2019-06-11 International Business Machines Corporation Adjustment of the number of tasks for a cache storage scan and destage application based on the type of elements to be destaged from the cache storage
CN107124317A (zh) 2017-05-31 2017-09-01 郑州云海信息技术有限公司 一种容灾系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005519408A (ja) 2002-03-06 2005-06-30 マラソン テクノロジーズ コーポレイション 増分不一致を使用するミラーコピーの生成方法
JP2008134987A (ja) 2006-10-30 2008-06-12 Hitachi Ltd 情報システム及び情報システムのデータ転送方法
CN101446972A (zh) 2008-12-12 2009-06-03 中兴通讯股份有限公司 一种动态数据同步的方法和系统
CN103745353A (zh) 2014-01-23 2014-04-23 福建联迪商用设备有限公司 一种电子支付终端验证方法及系统

Also Published As

Publication number Publication date
CN111684407B (zh) 2023-09-19
US10809938B2 (en) 2020-10-20
GB2586398A (en) 2021-02-17
JP2021515926A (ja) 2021-06-24
DE112019000568T5 (de) 2020-10-15
CN111684407A (zh) 2020-09-18
GB202015329D0 (en) 2020-11-11
GB2586398B (en) 2022-06-08
US20190278481A1 (en) 2019-09-12
WO2019171212A1 (en) 2019-09-12

Similar Documents

Publication Publication Date Title
JP7210537B2 (ja) 整合性グループにおける整合したポイント・イン・タイム・スナップコピーの非同期ローカル及びリモート生成
JP7004714B2 (ja) 整合したポイントインタイム・スナップ・コピーの非同期のローカル生成およびリモート生成のためのコンピュータ・プログラム、システム、および方法
US7747576B2 (en) Incremental update control for remote copy
US9959174B2 (en) Storage checkpointing in a mirrored virtual machine system
JP7412063B2 (ja) ストレージ・デバイスのミラーリング方法、デバイス、プログラム
US20040260896A1 (en) Method, system, and article of manufacture for consistent copying of storage volumes
US10824364B2 (en) Point-in-time snap copy on asynchronous consistency group management
US11119687B2 (en) Device reservation state synchronization in data mirroring
TW201617893A (zh) 處理快速的非同步串流的方法及裝置
US10552330B2 (en) Wait classified cache writes in a data storage system
JP7184909B2 (ja) 複数のデータ・ストレージ・システムにおける同期されたセーフ・データ・コミット・スキャン
US11347604B2 (en) Point-in-time snap copy withdrawal management
US20190317667A1 (en) Data resynchronization
US20080109621A1 (en) Suspension of Asynchronous Remote Copying System
US11221955B2 (en) Metadata track selection switching in a data storage system
US10210060B2 (en) Online NVM format upgrade in a data storage system operating with active and standby memory controllers
US10740007B2 (en) Synchronized primary-secondary role swaps with synchronized safe data commit scans
US20220091770A1 (en) Tracking changes of storage volumes during data transfers

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210721

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220502

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220720

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220726

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221017

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: 20221115

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221124

R150 Certificate of patent or registration of utility model

Ref document number: 7184909

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150