JP2015527670A - データ送信方法、データ受信方法、及びストレージデバイス - Google Patents

データ送信方法、データ受信方法、及びストレージデバイス Download PDF

Info

Publication number
JP2015527670A
JP2015527670A JP2015527787A JP2015527787A JP2015527670A JP 2015527670 A JP2015527670 A JP 2015527670A JP 2015527787 A JP2015527787 A JP 2015527787A JP 2015527787 A JP2015527787 A JP 2015527787A JP 2015527670 A JP2015527670 A JP 2015527670A
Authority
JP
Japan
Prior art keywords
data
storage device
address information
written
time interval
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.)
Granted
Application number
JP2015527787A
Other languages
English (en)
Other versions
JP6344798B2 (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2015527670A publication Critical patent/JP2015527670A/ja
Application granted granted Critical
Publication of JP6344798B2 publication Critical patent/JP6344798B2/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/2094Redundant storage or storage space
    • 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
    • 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/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
    • 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/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
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/885Monitoring specific for caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/466Metadata, control data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Retry When Errors Occur (AREA)
  • Computer Security & Cryptography (AREA)

Abstract

本発明の実施形態は、データ送信方法、データ受信方法、ストレージデバイスを提供し、方法は、ホストによって送信される第1のデータ書込み要求を、第1のストレージデバイスによって受信するステップであって、前記第1のデータ書込み要求は、書き込むべきデータ及びアドレス情報を伝送する、ステップと、第1の番号を、書き込むべきデータ及びアドレス情報に付与するとともに、第1の番号が付与された前記書き込むべきデータ及び前記アドレス情報をキャッシュに書き込むステップであって、前記第1の番号は、カレント時間間隔番号である、ステップと、第1の番号に対応する前記書き込むべきデータ及び前記アドレス情報を、前記キャッシュから読み出すステップと、後続のデータ書込み要求において伝送される情報を識別するために、カレント時間間隔番号を変更するステップと、前記書き込むべきデータ及び前記アドレス情報を第2のストレージデバイスに送信するステップと、を含む。本発明は、データ複製の効率を上げることができる。

Description

本発明は、ストレージ技術に関し、特にデータ送信方法、データ受信方法、及びストレージデバイスに関する。
本願は、参照により全体を本明細書に組み込まれる「Data Sending Method, Data Receiving Method, and Storage Device」と題する、2013年7月26日に出願された国際出願PCT/CN2013/080203の継続出願である。
遠隔データ複製技術(remote data replication technologies)としても知られる、データ障害復旧(Data disaster recovery)は、ローカルデータの有効な複製である非ローカルシステムの機構に言及する。ローカルデータ又は全体のアプリケーションシステムにおいて障害が発生するとき、システムの不可欠のサービスデータの少なくとも1つの有効なコピーが非ローカルに格納される。
一般的なデータ障害復旧システムは、生産センタ及び障害復旧センタを含む。生産センタでは、ホスト及びストレージアレイがサービスの正常動作のために配置され、障害復旧センタでは、ホスト及びストレージアレイが、生産センタが障害に遭遇した後に生産センタのサービスを引き継ぐために配置される。生産センタ又は障害復旧センタのいずれかのストレージアレイは、複数のデータボリュームを含み、データボリュームは、物理ストレージ領域をマッピングすることによって形成される論理的ストレージ領域である。生産センタでのサービスによって生成されたデータが生産アレイに書き込まれた後、そのデータは障害復旧リンクを使用して障害復旧センタに複製され得るとともに、障害復旧アレイに書き込まれ得る。障害復旧センタ内のデータが、障害発生後にサービスの引き継ぎをサポートできるように、障害復旧アレイに複製されたデータの一貫性が保証されなければならない。データの一貫性の保証は、実際は依存性ベースのデータ書込み要求であり、依存性は、保証される必要がある。アプリケーションプログラム、オペレーティングシステム、及びデータベースは全て、本質的に自身のサービスを実行するためにデータ書込み要求のこの依存性のロジックに頼っている。例えば、データ書込み要求2は、データ書込み要求1が完了するまで実行されない。順番は固定である。換言すると、データ書込み要求1が成功して完全に返されることが確保されるまで、システムはデータ書込み要求2を配信しない。このように、実行プロセスが失敗のために中断されるとき、サービスは特有の方法に頼ることによってリストアされ得る。そうではない場合、例えば、データが読み出されると、データ書込み要求2によって格納されたデータが読み出されることができる一方、データ書込み要求1によって格納されたデータが読み出されることができないとき、結果的にサービスがリストアされ得ないことがあり得る。
従来技術では、スナップショット技術が問題の解決に使用されている。
スナップショットは、ある時点(time point)(コピー動作が開始された時点)でのデータのイメージである。スナップショットの目的は、特定の時点でのデータボリュームのための状態ビュー(state view)を作成することである。このビューから、作成時のデータボリュームのデータのみを見ることができる一方、その時点の後のデータボリュームへの変更(新しいデータが書き込まれる)は、スナップショットビューに反映されない。このスナップショットビューを使用することによって、データの複製が実施され得る。生産センタにとって、スナップショットデータは、「静的」である。従って、データのスナップショットが各時点で取得された後、生産センタは障害復旧センタにスナップショットデータを複製できる。このことは、遠隔データ複製を実施するだけでなく、生産センタ内の後続のデータ書込み要求の実行に影響を与えない。障害復旧センタにとって、データの一貫性の要求も満足され得る。例えば、データ書込み要求2のデータの障害復旧センタへの複製が成功する一方、データ書込み要求1の複製が成功しないとき、データ書込み要求2より前のスナップショットデータが、障害復旧センタ内のデータを以前の状態にリストアするために使用され得る。
データ書込み要求を実行するときに、生産センタがスナップショットを処理するとともに、スナップショットデータのストレージ専用のデータボリュームに生成されたスナップショットデータを格納する必要があるので、生産センタは、障害復旧センタにスナップショットデータを複製するときに、データボリュームに格納されたスナップショットデータをキャッシュに読み出すとともに、障害復旧センタにスナップショットデータを送信する必要がある。しかしながら、スナップショットデータを生成するために使用されるデータが、キャッシュに存在したままであり、適切に利用され得ない場合がある。全ての複製は、データボリュームからスナップショットデータを読み出すことを要求し、そのことは長時間のデータ複製と低効率をもたらす。
本発明の実施形態は、データ送信方法を提供し、データ書込み要求において伝送される情報は、第1のストレージデバイスのキャッシュから第2のストレージデバイスに直接送信されることができ、そのことがデータ複製の効率を上げる。
第1態様では、本発明の実施形態は、データ送信方法を提供し、前記方法は、ホストによって送信される第1のデータ書込み要求を、第1のストレージデバイスによって受信するステップであって、前記第1のデータ書込み要求は、書き込むべきデータ及びアドレス情報を伝送する、ステップと、第1の番号を、書き込むべきデータ及びアドレス情報に付与するとともに、第1の番号が付与された前記書き込むべきデータ及び前記アドレス情報をキャッシュに書き込むステップであって、前記第1の番号は、カレント時間間隔番号である、ステップと、第1の番号に対応する前記書き込むべきデータ及び前記アドレス情報を、前記キャッシュから読み出すステップと、後続のデータ書込み要求において伝送される情報を識別するために、前記カレント時間間隔番号を変更するステップと、前記書き込むべきデータ及び前記アドレス情報を第2のストレージデバイスに送信するステップとを含む。
本発明の実施形態の第1の態様の第1の可能な実装では、前記第1の番号は、現在の複製タスクを識別するために使用され、前記方法は、第2の番号を記録するステップをさらに含み、前記第2の番号は、前記現在の複製タスクの前の最新の完了した複製タスクに対応する番号である。
本発明の実施形態の第1の態様の第1の可能な実装を参照すると、第1の態様の第2の可能な実施では、方法は、前記第2の番号の後であるとともに、前記第1の番号に先行する番号に対応する書き込むべきデータ及びアドレス情報を、前記キャッシュから読み出すステップと、前記第2の番号の後であるとともに、前記第1の番号に先行する前記番号に対応する前記書き込むべきデータ及び前記アドレス情報を前記第2のストレージデバイスに送信するステップとをさらに含む。
本発明の実施形態の第1の態様の第3の可能な実装では、方法は、前記カレント時間間隔番号を記録するステップをさらに含み、前記カレント時間間隔番号は、前記第1の番号を生成するために使用される。
第2の態様において、本発明の実施形態はデータ受信方法を提供し、前記方法は、第1のストレージデバイスによって送信されたアドレス情報を、第2のストレージデバイスによって受信するステップと、前記第1のストレージデバイスが故障していることが決定すると、第1の番号に対応する書き込むべきデータを、前記アドレス情報に従って前記第2のストレージデバイスによって取得するステップであって、前記第1の番号に対応するアドレス情報が前記受信したアドレス情報と同じであるとともに、前記第1の番号がカレント時間間隔番号に先行する番号である、ステップと、前記第1の番号に対応する前記書き込むべきデータ及び前記アドレス情報に第2の番号を付与するとともに、情報をキャッシュに書き込むステップとを含む。
本発明の実施形態の第2の態様の第1の可能な実装として、方法は、前記カレント時間間隔番号を記録するステップをさらに含み、前記カレント時間間隔番号は、前記第2の番号を生成するために使用される。
本発明の実施形態の第2の態様の第2の可能な実装では、方法は、ホストによって送信されたデータ読出し要求を受信するステップであって、前記データ読出し要求は、前記受信したアドレス情報を有する、ステップと、前記受信したアドレス情報に対応する最新の番号が前記第2の番号であることを決定するステップと、前記ホストに前記第2の番号に対応する書き込むべきデータを送信するステップとをさらに含む。
第3の態様では、本発明の実施形態は、ストレージデバイスを提供し、ストレージデバイスは、ホストによって送信される第1のデータ書込み要求を受信するように構成される受信モジュールであって、前記第1のデータ書込み要求は、書き込むべきデータ及びアドレス情報を伝送する、受信モジュールと、書き込むべきデータ及びアドレス情報に第1の番号を付与するとともに、第1の番号が付与された前記書き込むべきデータ及び前記アドレス情報をキャッシュに書き込み、第1の番号に対応する前記書き込むべきデータ及び前記アドレス情報を、前記キャッシュから読み出すように構成される読出し及び書込みモジュールであって、前記第1の番号は、カレント時間間隔番号である、読出し及び書込みモジュールと、後続のデータ書込み要求において伝送される情報を識別するために、カレント時間間隔番号を変更するように構成されるカレント時間間隔番号マネージャと、前記書き込むべきデータ及び前記アドレス情報を第2のストレージデバイスに送信するように構成される送信モジュールと、を具備する。
本発明の実施形態の第3の態様の第1の可能な実装では、前記第1の番号は、現在の複製タスクを識別するために使用され、前記カレント時間間隔番号マネージャは、第2の番号を記録するようにさらに構成され、前記第2の番号は、前記現在の複製タスクの前の最新の完了した複製タスクに対応する番号である。
本発明の実施形態の第3の態様の第1の可能な実装を参照すると、第3の態様の第2の可能な実装では、前記読出し及び書込みモジュールは、前記第2の番号の後であるとともに、前記第1の番号に先行する番号に対応する書き込むべきデータ及びアドレス情報を、前記キャッシュから読み出すようにさらに構成され、前記送信モジュールは、前記第2の番号の後であるとともに、前記第1の番号に先行する番号に対応する書き込むべきデータ及びアドレス情報を、前記第2のストレージデバイスに送信するようにさらに構成される。
本発明の実施形態の第3の態様の第3の実装では、前記カレント時間間隔番号マネージャは、前記カレント時間間隔番号を記録するようにさらに構成され、前記カレント時間間隔番号は、前記第1の番号を生成するために使用される。
第4の態様では、本発明の実施形態はストレージデバイスを提供し、ストレージデバイスは、第1のストレージデバイスによって送信されたアドレス情報を受信するように構成される受信モジュールと、前記第1のストレージデバイスが故障していることが決定すると、第1の番号に対応する書き込むべきデータを、前記アドレス情報に従って取得するように構成される探索モジュールであって、前記第1の番号に対応するアドレス情報が、前記受信したアドレス情報と同じであるとともに、前記第1の番号がカレント時間間隔番号に先行する番号である、探索モジュールと、前記第1の番号に対応する前記書き込むべきデータ及び前記アドレス情報に第2の番号を付与するとともに、情報をキャッシュに書き込むように構成される書込みモジュールとを具備する。
本発明の実施形態の第4の態様の第1の可能な実装では、ストレージデバイスは、前記カレント時間間隔番号を記録するように構成されるカレント時間間隔番号マネージャをさらに具備し、前記カレント時間間隔番号は、前記第2の番号を生成するために使用される。
本発明の実施形態の第4の態様の第2の可能な実装では、前記受信モジュールは、ホストによって送信されたデータ読出し要求を受信するようにさらに構成され、前記データ読出し要求は、前記受信したアドレス情報を含み、前記探索モジュールは、前記受信したアドレス情報に対応する最新の番号が前記第2の番号であることを決定するようにさらに構成され、前記ストレージデバイスは、送信モジュールをさらに具備し、前記送信モジュールは、前記第2の番号に対応する書き込むべきデータを前記ホストに送信するように構成される。
第5の態様では、本発明の実施形態は、ストレージデバイスを提供し、ストレージデバイスは、プロセッサと、メモリと、通信バスとを具備し、前記プロセッサと前記メモリは、前記通信バスを使用することによって通信し、前記メモリは、プログラムを格納するように構成され、前記プロセッサは、ホストによって送信される第1のデータ書込み要求を受信するステップであって、前記第1のデータ書込み要求は、書き込むべきデータ及びアドレス情報を伝送する、ステップと、書き込むべきデータ及びアドレス情報に第1の番号を付与するとともに、第1の番号が付与された前記書き込むべきデータ及び前記アドレス情報をキャッシュに書き込むステップであって、前記第1の番号は、カレント時間間隔番号である、ステップと、第1の番号に対応する前記書き込むべきデータ及び前記アドレス情報を、前記キャッシュから読み出すステップと、後続のデータ書込み要求において伝送される情報を識別するために、カレント時間間隔番号を変更するステップと、前記書き込むべきデータ及び前記アドレス情報を第2のストレージデバイスに送信するステップとを実施する前記プログラムを実行するように構成される。
本発明の実施形態の第5の態様の第1の可能な実装では、前記第1の番号は、現在の複製タスクを識別するために使用され、前記プロセッサは、第2の番号を記録するようにさらに構成され、前記第2の番号は、前記現在の複製タスクの前の最新の完了した複製タスクに対応する番号である。
本発明の実施形態の第5の態様の第1の可能な実装を参照して、第5の態様の第2の可能な実装では、前記プロセッサは、前記第2の番号の後であるとともに、前記第1の番号に先行する番号に対応する書き込むべきデータ及びアドレス情報を、前記キャッシュから読み出し、前記第2の番号の後であるとともに、前記第1の番号に先行する前記番号に対応する前記書き込むべきデータ及び前記アドレス情報を前記第2のストレージデバイスに送信するようにさらに構成される。
本発明の実施形態の第5の態様の第3の可能な実装では、前記プロセッサは、前記カレント時間間隔番号を記録するようにさらに構成され、前記カレント時間間隔番号は、前記第1の番号を生成するために使用される。
第6の様態では、本発明の実施形態はストレージデバイスを提供し、ストレージデバイスは、プロセッサと、メモリと、通信バスとを具備し、前記プロセッサ及び前記メモリは、前記通信バスを使用することによって通信し、前記メモリは、プログラムを格納するように構成され、前記プロセッサは、第1のストレージデバイスによって送信されたアドレス情報を受信するステップと、前記第1のストレージデバイスが故障していることが決定すると、前記アドレス情報に従って前記第2のストレージデバイスによって、第1の番号に対応する書き込むべきデータを取得するステップであって、前記第1の番号に対応するアドレス情報が、前記受信したアドレス情報と同じであるとともに、前記第1の番号がカレント時間間隔番号に先行する番号である、ステップと、前記第1の番号に対応する前記書き込むべきデータ及び前記アドレス情報に第2の番号を付与するとともに、情報をキャッシュに書き込むステップとを実施する前記プログラムを実行するように構成される。
本発明の実施形態の第6の態様の第1の可能な実装では、前記プロセッサは、前記カレント時間間隔番号を記録するようにさらに構成され、前記カレント時間間隔番号は、前記第2の番号を生成するために使用される。
本発明の実施形態の第6の態様の第2の可能な実装では、前記プロセッサは、ホストによって送信されたデータ読出し要求を受信するようにさらに構成され、前記データ読出し要求は、前記受信したアドレス情報を有し、前記プロセッサは、前記受信したアドレス情報に対応する最新の番号が前記第2の番号であることを決定し、前記ホストに前記第2の番号に対応する書き込むべきデータを送信するようにさらに構成される。
本発明の実施形態では、第1のストレージデバイスがホストによって送信されたデータ書込み要求を受信した後、データ書込み要求において伝送される情報は、書き込むべきデータ及びアドレス情報を含み、第1のストレージデバイスが、書き込むべきデータ及びアドレス情報に第1の番号を付与するとともに、その情報をキャッシュに書き込み、前記第1の番号はカレント時間間隔番号である。複製タスクがトリガされるとき、第1のストレージデバイスは、キャッシュから第1の番号に対応する書き込むべきデータ及びアドレス情報を読出し、第2のストレージデバイスにその情報を送信する。加えて、複製タスクがトリガされるとき、第1のストレージデバイスは、カレント時間間隔番号を変更し、その結果、第1のストレージデバイスが、後続のデータ書込み要求を受信するとき、変更されたカレント時間間隔番号と同じ番号をそのデータ書込み要求において伝送される情報に付与する。それによって、キャッシュ内では、第2のストレージデバイスに送信されるべきデータ書込み要求において伝送される情報は、第1のストレージデバイスによって受信されるデータ書込み要求において伝送される情報と区別される。このことは、キャッシュから第2のストレージデバイスへのデータ書込み要求において伝送される情報の直接送信を実施する。情報が、データボリュームから読み出す必要なくキャッシュから直接送信されるので、データ複製時間が短く、データ複製の効率が上がる。
本発明又は従来技術の実施形態の技術的解決策をより明確に説明するために、実施形態又は従来技術を記述することに必要とされる添付の図面を以下に簡潔に紹介する。以下の記述にある添付の図面は、本発明のいくつかの実施形態を示し、当業者は、創造的な努力なしにこれらの図面から別の図面をさらに導くことができる。
本発明の実施形態によるデータ送信方法のアプリケーションネットワークアーキテクチャの概略図である。 本発明の実施形態によるデータ送信方法のフローチャートである。 本発明の実施形態によるデータ受信方法のフローチャートである。 本発明の実施形態によるデータ送信方法のシグナリングのフローチャートである。 本発明の実施形態によるストレージデバイスの概略の構造図である。 本発明の実施形態による別のストレージデバイスの概略の構造図である。 本発明の実施形態によるさらに別のストレージデバイスの概略の構造図である。 本発明の実施形態によるさらに別のストレージデバイスの概略の構造図である。 本発明の実施形態によるデータ送信方法の別のアプリケーションネットワークアーキテクチャの概略図である。 本発明の実施形態によるデータ複製方法のフローチャートである。 本発明の実施形態による別のストレージデバイスの概略の構造図である。 本発明の実施形態によるさらに別のストレージデバイスの概略の構造図である。
本発明の実施形態の目的、技術的解決策、及び利点をより分かりやすくする目的で、本発明の実施形態の添付の図面を参照して、本発明の実施形態における技術的解決策を以下に明確に完全に記載する。記載された実施形態は、本発明の実施形態の全てではなく単なる一部である。創造的な努力なしに本発明の実施形態に基づいて当業者によって取得される他の全ての実施形態は、本発明の保護的範囲に含まれるべきである。
本発明の実施形態中に提供されるデータ送信方法は、ストレージデバイス中に実施され得る。図1は、本発明の実施形態において提供されるデータ送信方法のシステムアーキテクチャの概略図である。図1に示されるように、生産センタは、生産ホスト、接続デバイス、及び生産アレイ(以下の実施形態の第1のストレージデバイスに対応する)を含み、障害復旧センタのシステムアーキテクチャは、生産センタのシステムアーキテクチャに類似しており、障害復旧ホスト、接続デバイス、及び障害復旧アレイ(以下の実施形態の第2のストレージデバイスに対応する)を含む。本発明の実施形態では、1つ又は複数の障害復旧センタがあり得る。生産センタ及び障害復旧センタは、IP(Internet Protocol)又はFC(Fiber Channel)を介してデータを転送し得る。生産センタと障害復旧センタの間に制御センタがあり得る。制御センタは、生産センタ側又は障害復旧センタ側に配置されてよく、又は、生産センタと障害復旧センタの間のサードパーティデバイス上に配置されてもよい。生産アレイが故障するとき、制御センタは障害復旧アレイに信号を送信するように構成され、その結果、障害復旧アレイは生産アレイのホストサービスを引き継ぐ。
生産ホスト及び障害復旧ホストは、サーバ及びデスクトップコンピュータなど、従来技術で既知である任意のコンピュータデバイスであり得る。オペレーティングシステム、及び他のアプリケーションプログラムが、ホスト内部にインストールされる。
接続デバイスは、ファイバスイッチ又は他の現在利用可能なスイッチなど、ストレージデバイスとホストの間に、従来技術で既知である任意のインタフェースを含み得る。
生産アレイ及び障害復旧アレイは、1つ又は複数の相互接続したRAID(Redundant Array of Inexpensive Disks)、JBOD(Just a Bunch Of Disks)、及びテープライブラリなどの1つ又は複数の相互接続したディスクドライブによって形成されたディスクドライブなどの、従来技術で既知であるストレージデバイスであるか、又は、1つ又は複数の相互接続したディスクドライブがDASD(Direct Access Storage Device)のものである、1つ又は複数のストレージユニットのテープストレージデバイスの両方であり得る。
生産アレイのストレージ領域は、複数のデータボリュームを含み得る。データボリュームは、物理ストレージ領域をマッピングすることによって形成された論理ストレージ領域である。例えば、データボリュームは、LUN(Logic Unit Number)又はファイルシステムであり得る。本発明のこの実施形態では、障害復旧アレイは生産アレイに類似した構造を有する。
図1を参照すると、図1では、本発明の実施形態によるデータ送信方法を説明する。本発明のこの実施形態は、第1のストレージデバイスに適用され、第1のストレージデバイスは、コントローラ、キャッシュメモリ(以降では、キャッシュと称する)、及びストレージ媒体を含む。コントローラは、第1のストレージデバイスのプロセッサであるとともに、IOコマンド及び他のデータサービスを実行するように構成される。キャッシュは、コントローラとハードディスクの間に配置されたメモリであり、少量の容量であるが、ハードディスクより非常に高速である。ストレージ媒体は、第1のストレージデバイスの主メモリであり、一般に磁気ディスクなどの不揮発性ストレージ媒体である。発明の実施形態では、第1のストレージデバイスに含まれる全ての物理ストレージ領域は、ストレージ媒体として参照される。具体的に、以下のステップは、第1のストレージデバイス内のコントローラによって実行され得る。
ステップS101:第1のストレージデバイスは、ホストによって送信された第1のデータ書込み要求を受信し、第1のデータ書込み要求は、書き込むためのデータ及びアドレス情報を伝送する。
アドレス情報は、LBA(a Logic Unit Address)を含み得る。第1のストレージデバイスが複数のデータボリュームを含むとき、アドレス情報は、第1のストレージデバイスのデータボリュームのIDをさらに含み得る。
ステップS102:第1の番号を書き込むべきデータ及びアドレス情報に付与し、書き込むべきデータ及びアドレス情報をキャッシュに書き込む。ここで、第1の番号はカレント時間間隔番号である。第1のストレージデバイスは、カレント時間間隔番号マネージャを含み得、カレント時間間隔番号マネージャはカレント時間間隔番号を格納する。カレント時間間隔番号は、限定しないが、0、1、2などの数字、又は、a、b、cなどの文字であり得る。
第1のデータ書込み要求が受信されると、第1の番号が、第1のデータ書込み要求において伝送される書き込むべきデータとアドレス情報とに付与され、第1の番号は、カレント時間間隔番号によって割り当てられた値である。
第1の番号が第1のデータ書込み要求において伝送される情報に付与された後、第1のデータ書込み要求において伝送される変化した情報は、キャッシュに書き込まれ、その結果、第1のデータ書込み要求において伝送される書き込むべきデータ、アドレス情報、及び第1の番号は、全てキャッシュに格納される。
加えて、時間間隔内で、別のデータ書込み要求も受信され得、データ書込み要求において伝送される情報に第1の番号を加え、キャッシュにその情報を書き込むことも必要になる。カレント時間間隔番号が変わる前に、第1の番号が全てのデータ書込み要求において伝送される情報に付与されることに留意すべきである。
ステップS103:第1の番号に対応する書き込むべきデータ及びアドレス情報をキャッシュから読み出す。
複製タスクがトリガされると、第1の番号に対応する書き込むべきデータ及びアドレス情報をキャッシュから読み出し得る。第1の番号に対応する書き込むべきデータ及びアドレス情報の複数の部分があり得ることがわかる。
複製タスクは、第1のストレージデバイスが第2のストレージデバイスに、時間期間内に1つのデータボリュームによって受信されたデータ書込み要求において伝送される情報を送信することを意味し、カレント時間間隔番号と同じ番号が、全てのデータ書込み要求において伝送される情報に付与される。複製タスクは、限定ではないが、タイマによってトリガされるか、又は手動でトリガされ得る。複製の目的は、第1のストレージデバイスによって受信されたデータ書込み要求において伝送される書き込むべきデータを第2のストレージデバイスに送信することであり、その結果、第2のストレージデバイスは、第1のストレージデバイスが故障したときに、第1のストレージデバイスの働きを引き継ぐことができる。データ書込み要求において伝送されるアドレス情報(LBAなど)は、第2のストレージデバイスに送信される必要があり、LBAは、第2のストレージデバイスが書き込むべきデータを格納するアドレスを示すために使用されることがわかる。第2のストレージデバイスが、第1のストレージデバイスとして同様の物理構造を有するので、第1のストレージデバイスに適用可能なLBAは、第2のストレージデバイスにも適用可能である。
本発明の実施形態では、複製タスクは、第1のストレージデバイスのデータボリュームに特有である。第1のストレージデバイスが複数のデータボリュームを含むとき、各データボリュームは1つの複製タスクに対応する。
ステップS104:後続のデータ書込み要求において伝送される情報を識別するために、カレント時間間隔番号を変更する。
複製タスクがトリガされるとき、カレント時間間隔番号マネージャが、カレント時間間隔番号を変更する必要がある。後続のデータ書込み要求が受信されると、別の番号が、後続のデータ書込み要求において伝送される情報に付与される必要があり、別の番号は、変更されたカレント時間間隔番号によって割り当てられた値である。それによって、キャッシュ内では、第2のストレージデバイスに送信されるデータ書込み要求において伝送された情報が、第1のストレージデバイスによって受信されるデータ書込み要求において伝送される情報と区別され得る。
ステップS103及びステップS104が時系列に依存しないことに留意すべきである。
ステップS105:書き込むべきデータ及びアドレス情報を第2のストレージデバイスに送信する。
第1のストレージデバイスは、第1の番号に対応するとともにキャッシュから読み出される書き込むべきデータ及びアドレス情報を第2のストレージデバイスに送信する。
具体的には、第1のストレージデバイスは、読み出された全ての書き込むべきデータ及びアドレス情報を第2のストレージデバイスに直接送信し得る。すなわち、第1のストレージデバイスは、第2のストレージデバイスのデータボリュームのIDを取得した後、各データ書込み要求において伝送される書き込むべきデータ及びアドレス情報に従って新しいデータ書込み要求と、第2のストレージデバイスのデータボリュームのIDとを生成し、第2のストレージデバイスに新しいデータ書込み要求を送信する。
本発明の実施形態では、第1のストレージデバイスが、ホストによって送信されたデータ書込み要求を受信した後、データ書込み要求において伝送される情報は、書き込むべきデータ及びアドレス情報を含み、第1のストレージデバイスは、書き込むべきデータ及びアドレス情報に第1の番号を付与し、キャッシュにその情報を書き込む。第1の番号は、カレント時間間隔番号である。複製タスクがトリガされると、第1のストレージデバイスは、第1の番号に対応する書き込むべきデータ及びアドレス情報をキャッシュから読み出し、第2のストレージデバイスに情報を送信する。加えて、複製タスクがトリガされると、第1のストレージデバイスはカレント時間間隔番号を変更し、その結果、第1のストレージデバイスは、後続のデータ書込み要求を受信するとき、データ書込み要求において伝送される情報の変更されたカレント時間間隔番号と同じ番号を付与する。それによって、キャッシュ内では、第2のストレージデバイスに送信されるデータ書込み要求において伝送される情報は、第1のストレージデバイスによって受信されるデータ書込み要求において伝送される情報と区別される。このことは、キャッシュから第2のストレージデバイスへのデータ書込み要求において伝送される情報の直接送信を実施する。情報は、データボリュームから読み出す必要なくキャッシュから直接送信されるので、データ複製時間が短く、それよりデータ複製の効率が上がる。上述の実施形態では、複製タスクがトリガされるとき、第1のストレージデバイスは、カレント時間間隔番号に対応する書き込むべきデータ及びアドレス情報を第2のストレージデバイスに送信するとともに、後続のデータ書込み要求において伝送される情報を識別するために、カレント時間間隔番号を変更することがわかる。
後続の複製タスクがトリガされるとき、第1のストレージデバイスは、第2のストレージデバイスに変更したカレント時間間隔番号に対応する書き込むべきデータ及びアドレス情報を送信するとともに、カレント時間間隔番号を再度変更する。このことによって、第1のストレージデバイスが、完全に受信したデータ書込み要求において伝送される情報をまとめて第2のストレージデバイスに送信することを保証する。
しかしながら、複数の障害復旧センタがあるとき、第2の障害復旧センタに対応するストレージデバイスが第3のストレージデバイスであると仮定すると、第1のストレージデバイスはまた、第1のストレージデバイスによって受信したデータ書込み要求において伝送される情報を第3のストレージデバイスに送信する必要がある。第2のストレージデバイスのために、複製タスクがトリガされると、カレント時間間隔番号マネージャは、カレント時間間隔番号を変更する。この時点で、第2のストレージデバイスにカレント時間間隔番号によって割り当てられるとともに、第3のストレージデバイスに割り当てられる番号は、両方とも変更された番号である。しかしながら、カレント時間間隔番号が変更される前にその番号に対応するデータ書込み要求において伝送される情報は、まだ第3のストレージデバイスに送信されていない。
従って、複数の障害復旧センタのシナリオでは、上述の実施形態はさらに以下のステップを含み得る。
ステップS106:第2の番号を記録する。第2の番号は、現在の複製タスクの前の、最新の完了した複製タスクに対応する番号である。上述の実施形態では、第1の番号は、カレント時間間隔番号と同じであり、現在の複製タスクを識別するために使用され得る。現在の複製タスクは、第1のストレージデバイスが、時間の現在の期間内に、1つのデータボリュームによって受信されたデータ書込み要求において伝送される情報を第2のストレージデバイスに送信することを意味し、カレント時間間隔番号と同じ番号が、全てのデータ書込み要求において伝送される情報に付与される。
第2の番号は、現在の複製タスクの前の最新の完了した複製タスクに対応する番号である。
複数の障害復旧センタがあるとき、カレント時間間隔番号は、複製タスクが別の障害復旧センタ内のストレージデバイスに開始されるときに変更され得る。従って、以前に完了した複製タスクに対応する番号を記録する必要がある。
別の番号が第2の番号と第1の番号の間に存在する場合、この番号に対応するデータ書込み要求において伝送される情報は、第2のストレージデバイスに送信されず、ステップS107が実行される必要がある。
ステップS107:第2の番号に後続するとともに第1の番号に先行する番号に対応する書き込むべきデータ及びアドレス情報をキャッシュから読み出す。
特定の読み出しプロセスはステップS103と同様であり、本明細書にはさらに記載しない。
ステップS107及びステップS103は、時系列に依存せず、同時に実行されてよいことに留意すべきである。
ステップS108:第2の番号に後続するとともに第1の番号に先行する番号に対応する書き込むべきデータ及びアドレス情報を送信する。
特定の送信プロセスは、ステップS105と同様であり、本明細書にはさらに記載しない。
本発明の実施形態では、カレント時間間隔番号に対応するデータ書込み要求において伝送される情報が、第2のストレージデバイスに送信されるだけでなく、以前に完了した複製タスクに対応する番号と現在の時間期間番号の間の番号に対応するデータ書込み要求において伝送される情報も、第2のストレージデバイスに送信される。このことは、複数の障害復旧センタのシナリオに適用可能であり、データ複製の完全性を保証する。
図2を参照すると、図2では、本発明によるデータ受信方法の実施形態を説明する。本発明の実施形態は、障害復旧センタが生産センタによって送信されたデータ書込み要求において伝送される情報を受信するというシナリオに適用可能である。方法は、以下のステップを含み得る。
ステップS201:第2のストレージデバイスが、第1のストレージデバイスによって送信されたアドレス情報を受信する。
具体的には、第2のストレージデバイスは、第1のストレージデバイスによって送信された書き込むべきデータ及びアドレス情報を受信し得るか、又は第2のストレージデバイスは、第1のストレージデバイスによって送信されたデータ書込み要求を受信し得、データ書込み要求は、書き込むべきデータ及びアドレス情報を含み、アドレス情報は、LBAであってよい。第2のストレージデバイスが複数のデータボリュームを含むとき、アドレス情報は、第2のストレージデバイスのデータボリュームのIDをさらに含み得る。アドレス情報が1つ以上あり得ることがわかる。
書き込むべきデータ及びアドレス情報を受信した後、第2のストレージデバイスは、書き込むべきデータ及びアドレス情報にカレント時間間隔番号と同じ番号を付与し、その情報をキャッシュに書き込む。その結果、カレント時間間隔番号と同じ番号、書き込むべきデータ、及びアドレス情報がキャッシュに格納される。
第2のストレージデバイスはまた、カレント時間間隔番号マネージャを含むこと、及びカレント時間間隔番号マネージャがカレント時間間隔番号を格納することに留意すべきである。限定しないが、カレント時間間隔番号は、0、1、2などの数字、又は、a、b、cなどの文字であり得る。ここでのカレント時間間隔番号は、第1のストレージデバイスのカレント時間間隔番号と関係なくてよい。
ステップS202:第1のストレージデバイスが故障していることが決定すると、第2のストレージデバイスは、アドレス情報に従って第1の番号に対応する書き込むべきデータを取得する。第1の番号に対応するアドレス情報は、受信したアドレス情報と同じであり、第1の番号は、カレント時間間隔番号に先行する番号である。
一般に、第1のストレージデバイス及び第2のストレージデバイスの両方が正常に動作する場合、第2のストレージデバイスは、第1のストレージデバイスによって送信された全てのデータ書込み要求において伝送される情報を受信し、各データ書込み要求において伝送される情報に、カレント時間間隔番号と同じ番号を付与し、キャッシュにその情報を格納し得る。しかしながら、第1のストレージデバイスが故障した場合、第2のストレージデバイスは、第1のストレージデバイスのカレント時間間隔番号に対応する書き込むべきデータの一部のみを受信することがある。この場合、第2のストレージデバイスによって格納されたデータは、不正確である場合があり、かつ第2のストレージデバイスが直接第1のストレージデバイスの働きを引き継ぐ場合、データの一貫性が保証され得ない。例えば、ホストが、この時点で第2のストレージデバイスに読み出しデータ要求を送信する場合、アドレス情報に格納されたデータを読み出すことを要求するとき、第2のストレージデバイスがアドレス情報に対応する最新の番号を探索し、その後カレント時間間隔番号に対応する書き込むべきデータ(しかしながら、このデータは不正確である)をホストに送信する。従って、この場合、第2のストレージデバイスのキャッシュ内のデータから第2のストレージデバイスのカレント時間間隔番号に先行する番号に対応するデータをリストアする必要がある。
具体的には、第1のストレージデバイスが故障していることは、制御センタが第2のストレージデバイスに信号を送信する方法によって判断され得、信号は、第1のストレージデバイスが故障していること、及び第2のストレージデバイスが第1のストレージデバイスのホストサービスを引き継ぐ必要があることを示すために使用される。
一般に、複製タスクが完了するとき、制御センタが第1のストレージデバイス及び第2のストレージデバイスの両方に複製成功指示を送信し得る。第2のストレージデバイスが指示を受信しない場合、現在の複製タスクが完了していないことを示す。複製タスクの完了は、第1のストレージデバイスがカレント時間間隔番号に対応する全てのデータ書込み要求において伝送される情報を第2のストレージデバイスに送信したこと、及び第2のストレージデバイスがその情報を受信し終わったことを意味する。
第2のストレージデバイスが、第1のストレージデバイスが故障していることが決定すると、現在の複製タスクが完了する場合、第2のストレージデバイスは、直接第1のストレージデバイスの働きを引き継ぐことができ、データの一貫性が保証され得る。この状況は、本発明の実施形態の議論の範囲外である。
しかしながら、現在の複製タスクが完了しない場合、第2のストレージデバイスのキャッシュ内のデータから第2のストレージデバイスのカレント時間間隔番号に先行する番号に対応するデータをリストアする必要がある。
特定のリストア方法は、受信したアドレス情報に従って、受信したアドレス情報と同じアドレス情報が存在するか否かを判断するために、カレント時間間隔番号に先行する番号に対応するアドレス情報を探索し、同じアドレス情報が見つからない場合、アドレス情報が見つかるまでさらに先行する番号に対応するアドレス情報を探索することを継続し、番号に対応する書き込むべきデータを取得し得る。
ステップS203:第1の番号に対応する書き込むべきデータ及びアドレス情報に第2の番号を付与し、その情報をキャッシュに書き込む。
第2の番号は、カレント時間間隔番号を変更することによって取得された番号であるとともに、本発明の実施形態ではキャッシュに格納された最新の番号でもある。アドレス情報内に格納されたデータを読み出すことを要求するために、ホストが第2のストレージデバイスにデータ読出し要求を送信するとき、第2のストレージデバイスは、アドレス情報に対応する最新の番号が第2の番号であることを探索することによって学習し、第2の番号に対応する書き込むべきデータをホストに送信する。それによって、データの一貫性が保証される。
本発明の実施形態では、第2のストレージデバイスは、第1のストレージデバイスによって送信されたアドレス情報を受信し、第1のストレージデバイスが故障するとき、カレント時間間隔番号に先行する番号に対応する書き込むべきデータを取得し、カレント時間間隔番号に先行する番号に対応する書き込むべきデータ及びアドレス情報に第2の番号を付与し、キャッシュにその情報を格納する。それによって、データの一貫性が保証される。
図3を参照すると、図3では、本発明よるデータ送信方法の実施形態を説明する。本発明の実施形態では、生産アレイ内のキャッシュと障害復旧アレイ内のキャッシュとを区別するために、生産アレイ内のキャッシュが第1のキャッシュとして参照され、障害復旧アレイ内のキャッシュが第2のキャッシュとして参照される。
図3に示されるように、方法は、以下のステップを含む。
ステップS301:生産アレイは、生産ホストからデータ書込み要求Aを受信する。データ書込み要求Aは、ボリュームID、書込みアドレスA、及び書き込むべきデータAを含む。書込みアドレスAは、LBAなど、書き込むべきデータAが書き込まれる生産アレイの論理アドレスである。一般に、生産アレイが、データ書込み要求Aを実行するとき、生産アレイは、LBAをPBA(Physics Block Address)に変換する必要があり、その後PBAに従ってストレージ媒体に書き込むべきデータAを書き込む。ボリュームIDは、データ書込み要求Aに対応するデータボリュームのIDである。実施形態では、生産アレイは、1つのボリューム(以下、プライマリボリュームと称する)を含むと仮定する。データ書込み要求Aにおいて伝送される情報は、プライマリボリュームID、書込みアドレスA、及び書込みアドレスAを含む。
ステップS302:生産アレイは、データ書込み要求Aをデータ書込み要求A’に変更し、データ書込み要求A’は、データ書込み要求Aにおいて伝送される情報と第1の番号を含む。
本発明の実施形態では、生産アレイのコントローラは、カレント時間間隔番号(CTPN)マネージャを含み得る。CTPNマネージャは、第1の番号を生成するために使用されるカレント時間間隔番号を記録する。具体的には、第1の番号はカレント時間間隔番号に等しい。
データ書込み要求Aを受信した後、生産アレイは、データ書込み要求Aをデータ書込み要求A’に変更する。具体的には、変更方法は、データ書込み要求Aにおいて伝送される情報に第1の番号を付与することであり得る。例えば、カレント時間間隔番号は1であり、第1の番号も1である。
選択的に、書き込むべきデータAが受信され、タイムスタンプに対応する番号を判断するために、事前に格納された番号列内でタイムスタンプが合致するとき、タイムスタンプが記録され得る。具体的には、限定ではないが、番号列は、マッピングテーブル又は他の形式であり得る。表1に示されるように、番号列は複数の番号を含み、各番号はタイムスタンプの区間に対応する。
Figure 2015527670
データ書込み要求Aが受信されたときのタイムスタンプが9時30分であると仮定すると、対応する番号は1であり、データ書込み要求Aは、番号に従ってデータ書込み要求A’に変更され得る。
ステップS303:生産アレイは、データ書込み要求A’を第1のキャッシュに書込み、その結果、データ書込み要求A’において伝送される情報は、第1のキャッシュに格納される。データ書込み要求A’において伝送される情報は、第1の番号、プライマリボリュームID、書込みアドレスA、及び書き込むべきデータAを含む。
本発明の実施形態では、第1の番号は、複数のデータ書込み要求に対応し得る。CTPN内に記録されたカレント時間間隔番号が変更される前に、第1の番号が全ての受信されたデータ書込み要求において伝送される情報に付与される。
データ書込み要求Aが受信された後、データ書込み要求Bが受信されるとともにデータ書込み要求B’に変更され得、その結果、データ書込み要求B’は第1の番号をさらに含み、データ書込み要求Cも受信されるとともにデータ書込み要求C’に変更され得、その結果、データ書込み要求C’は、第1の番号をさらに含むことがわかる。
例えば、データ書込み要求A’、データ書込み要求B’、及びデータ書込み要求C’が第1のキャッシュに書き込まれた後、第1のキャッシュに書き込まれた情報は、表2に示さ得る。
Figure 2015527670
本発明の実施形態では、生産アレイが1つのデータボリューム(プライマリボリュームとして参照され得る)を含むと仮定すると、データ書込み要求A’、データ書込み要求B’、及びデータ書込み要求C’において伝送されるデータボリュームのIDは、全てプライマリボリュームIDであることに留意すべきである。本発明の別の実施形態では、生産アレイは、複数のデータボリュームを含み得、従って、データ書込み要求A’、データ書込み要求B’、及びデータ書込み要求C’において伝送されるデータボリュームのIDは、異なり得る。加えて、表2は、第1のキャッシュのデータ書込み要求において伝送される情報のストレージの例にすぎない。代替として、情報がツリー形式で格納されてよい。ストレージの形態は、本明細書では限定されない。
例として表2を取り上げると、番号、ボリュームID、及び書込みアドレスは、表2のインデックスとみなされ得る。インデックスに従って、対応する書き込むべきデータを見つけることができる。インデックスが同じとき、インデックスに対応する書き込むべきデータも、同じあるべきである。従って、新しいデータ書込み要求が書き込まれると、番号、ボリュームID、及び新しいデータ書込み要求の書込みアドレスと同じ情報が第1のキャッシュに格納されるか否かを判断する必要があり、格納される場合、新しいデータ書込み要求において伝送される情報が、古い情報を上書きするために使用される。データ書込み要求A’、データ書込み要求B’、及びデータ書込み要求C’が第1のキャッシュに書き込まれるとき、それらの番号、ボリュームID、及び書込みアドレスが第1のキャッシュにすでに格納された情報と同じであるか否かを判断する必要もあり、それらの番号、ボリュームID、及び書込みアドレスが、第1のキャッシュ内に既に格納された情報と異なるので、データ書込み要求A’、データ書込み要求B’、及びデータ書込み要求C’は、第1のキャッシュに全て書き込まれ得ることがわかる。
例えば、データ書込み要求Dが受信され、データ書込み要求DがプライマリボリュームID、書込みアドレスB、書き込むべきデータDを含む場合、データ書込み要求Dは、データ書込み要求D’に変更され、その結果、データ書込み要求D’は、第1の番号をさらに含む。従って、データ書込み要求D’が第1のキャッシュに書き込まれるとき、番号、ボリュームID、及びデータ書込み要求D’の書込みアドレスと同じ情報が第1のキャッシュに格納されるか否かを判断する必要があり、格納される場合、データ書込み要求D’において伝送される情報は、古い情報を上書きするために使用される。データ書込み要求D’において伝送される番号、ボリュームID、及び書込みアドレスは、第1のキャッシュ内の、データ書込み要求B’内に含まれる番号、ボリュームID、及び書込みアドレスと全て同じであるので、データ書込み要求D’の情報は、データ書込み要求B’の情報を上書きする。
具体的には、データ書込み要求D’が第1のキャッシュに書き込まれた後、第1のキャッシュに格納された情報は表3に示され得る。
Figure 2015527670
ステップS304:複製タスクがトリガされるとき、生産アレイは、CTPNマネージャ内に含まれるカレント時間間隔番号を変更し、例えば、1から2にカレント時間間隔番号を変更し得る。
生産アレイのカレント時間間隔番号と障害復旧アレイのカレント時間間隔番号とを区別するために、本発明の実施形態では、生産アレイのカレント時間間隔番号は第1のカレント時間間隔番号として参照され、障害復旧アレイのカレント時間間隔番号は、第2のカレント時間間隔番号として参照される。
第1のカレント時間間隔番号が1から2に変更された後、それに応じて、番号2は、後に受信される全てのデータ書込み要求において伝送される情報に付与されることがわかる。例えば、データ書込み要求Eが受信され、データ書込み要求EがプライマリボリュームID、書き込むべきデータドレスA、及び書き込むべきデータEを含み、データ書込み要求Eがデータ書込み要求E’に変更され、その結果、データ書込み要求E’がさらに番号2を含む。データ書込み要求Fが受信され、データ書込み要求Fが、プライマリボリュームID、書込みアドレスF、及び書き込むべきデータFを含み、書き込むべきデータFが書き込むべきデータF’に変更され、その結果、データ書込み要求F’はさらに番号2を含む。データ書込み要求E’及びデータ書込み要求F’は、第1のキャッシュに書き込まれ、第1のキャッシュに格納された情報は、表4に示され得る。
Figure 2015527670
ステップS305:障害復旧アレイは、障害復旧アレイのCTPNマネージャ内に含まれる第2のカレント時間間隔番号を変更し得、例えば11から12に変更し得る。
本発明の実施形態では、障害復旧アレイはまた、障害復旧アレイ自身のCPTNマネージャを含んでもよい。生産アレイの複製タスクがトリガされると、生産アレイのCTPNマネージャは第1のカレント時間間隔番号を変更し、制御センタはまた、障害復旧アレイに制御信号を送信し、その結果、障害復旧アレイはまた、そのCPTNマネージャに含まれる第2のカレント時間間隔番号を変更する。従って、ステップS305及びステップS304は、時系列に依存しない。
ステップS306A:生産アレイは、第1の番号に対応するデータ書込み要求において伝送される情報を第1のキャッシュから読み出す。
具体的には、上記記載に従って、第1の番号に対応するデータ書込み要求において伝送される情報が表3に示される。
ステップS306B:生産アレイは、障害復旧アレイに書き込まれるデータボリュームのIDを取得する。
ステップS306C:生産アレイは、データボリュームのID、及び第1の番号に対応するデータ書込み要求において伝送される情報に従って、新しいデータ書込み要求を生成する。
具体的には、データ書込み要求A’’は、データボリュームのID、書込みアドレスA、及び書き込むべきデータAに従って生成され得、データ書込み要求D’’は、データボリュームのID、書込みアドレスB、及び書き込むべきデータDに従って生成され得、データ書込み要求C’’は、データボリュームのID、書込みアドレスC、及び書き込むべきデータCに従って生成され得る。
本発明の別の実施形態では、生産アレイ及び障害復旧アレイの両方は、複数のデータボリュームを含み得、従って、データ書込み要求A’’、データ書込み要求D’’、及びデータ書込み要求C’’に含まれるデータボリュームのIDは異なり得る。しかしながら、障害復旧アレイ内のデータボリュームのIDが、生産アレイ内のデータボリュームのIDに1対1でマッピングされる。
ステップS307:生産アレイは、障害復旧アレイに新しいデータ書込み要求を送信する。
具体的には、生産アレイは、データ書込み要求A’’、データ書込み要求D’’、及びデータ書込み要求C’’を、障害復旧アレイに送信する。
ステップS308:障害復旧アレイは、受信したデータ書込み要求を変更する。
例えば、障害復旧アレイは、CTPNマネージャ内に記録された第2のカレント時間間隔番号に従って、データ書込み要求A’’をデータ書込み要求A’’’に変更し得る。具体的には、変更方法は、データ書込み要求A’’において伝送される情報に、番号12を付与することであり得る。
同様に、番号12は、データ書込み要求B’’において伝送される情報に付与され得、データ書込み要求B’’がデータ書込み要求B’’’に変更され、番号12は、データ書込み要求C’’において伝送される情報に付与され得、データ書込み要求C’’がデータ書込み要求C’’’に変更される。
ステップS309:障害復旧アレイは、変更したデータ書込み要求を第2のキャッシュに書き込む。
具体的には、第2のキャッシュに格納された情報は、表5に示され得る。
Figure 2015527670
ステップS310:データ書込み要求内の書込みアドレスに従って、障害復旧アレイは、書込みアドレスに対応するストレージ媒体に書き込むべきデータを書き込む。
一般に、キャッシュ領域は制限される。
従って、キャッシュ領域の利用率が特定のしきい値に達するとき、ハードディスクにキャッシュ内のデータを書き込む必要がある。具体的には、書き込むべきデータAは、書込みアドレスAに対応するストレージ媒体に書き込まれ、書き込むべきデータDは書込みアドレスBに対応するストレージ媒体に書き込まれ、書き込むべきデータCは書込みアドレスCに対応するストレージ媒体に書き込まれる。
ステップS311:データ書込み要求内の書込みアドレスに従って、生産アレイは、書込みアドレスに対応するストレージ媒体に書き込むべきデータを書き込む。
同様に、生産アレイのキャッシュ領域の利用率が特定のしきい値に達するとき、ハードディスクにキャッシュ内のデータを書き込む必要がある。上述からわかるように、以下の情報が第1のキャッシュに格納される。
Figure 2015527670
具体的には、同じボリュームID、同じ書込みアドレス、及び異なる番号をもつデータ書込み要求に対して、より小さい番号のデータ書込み要求において伝送される書き込むべきデータが最初に書き込まれ、その後、大きな番号のデータ書込み要求において伝送される書き込むべきデータが書き込まれる。例えば、書き込むべきデータDが最初に書き込まれ、続いて書き込むべきデータEが書き込まれる。又は、より大きな番号をもつデータ書込み要求において伝送される書き込むべきデータが、より小さな番号をもつデータ書込み要求において伝送される書き込むべきデータを書き込むことなく、直接書き込まれる。例えば、書き込むべきデータEが直接書き込まれる。
ステップS310及びステップS311は、時系列に依存しない。
ステップS312:複製タスクがトリガされると、生産アレイは、生産アレイのCTPNマネージャに含まれる第1のカレント時間間隔番号を変更し得、例えば、カレント時間間隔番号を2から3に変更し得る。
生産アレイのCTPN内の第1のカレント時間間隔番号が2から3に変更された後、それに応じて、後に生産アレイによって受信される全てのデータ書込み要求において伝送される情報に番号3が付与されることがわかる。
ステップS313:障害復旧アレイが障害復旧アレイのCTPNマネージャに含まれる第2のカレント時間間隔番号を変更し得、例えば、第2のカレント時間間隔番号を12から13に変更し得る。
障害復旧アレイのCTPNマネージャ内の第2のカレント時間間隔番号が、12から13に変更された後、それに応じて、後に障害復旧アレイによって受信される全てのデータ書込み要求において伝送される情報に番号13が付与されることがわかる。
ステップS314:生産アレイは、番号2に対応するデータ書込み要求において伝送される情報を読み出し、対応するデータ書込み要求を生成し、障害復旧アレイに生成したデータ書込み要求を送信する。
具体的に、上述の記載からわかるように、番号2に対応するデータ書込み要求において伝送される情報は、データ書込み要求Eにおいて伝送される情報とデータ書込み要求Fにおいて伝送される情報とを含む。同様に、生産アレイが障害復旧アレイのデータボリュームのIDを取得した後、生産アレイは、データボリュームのID、書込みアドレスA、及び書き込むべきデータEに従って、データ書込み要求E’’を生成し得、データボリュームのID、書込みアドレスF、及び書き込むべきデータFに従って、データ書込み要求F’’を生成し得る。従って、生産アレイによって障害復旧アレイに送信されたデータ書込み要求は、データ書込み要求E’’とデータ書込み要求F’’である。
本発明の実施形態では、生産アレイは、時系列に障害復旧アレイにデータ書込み要求を送信せず、データ書込み要求をランダムに送信し得ることに留意すべきである。具体的には、生産アレイは、最初にデータ書込み要求E’’を、その後にデータ書込み要求F’’を送信してよく、又は、最初にデータ書込み要求F’’を、その後にデータ書込み要求E’’を送信してもよい。
上述からわかるように、この時点で、障害復旧アレイのCTPNマネージャ内の第2のカレント時間間隔番号は13である。従って、データ書込み要求E’’を受信した後、障害復旧アレイは、番号13を含むデータ書込み要求E’’’にデータ書込み要求E’’を変更する必要がある。同様に、データ書込み要求F’’を受信した後、障害復旧アレイが番号13を含むデータ書込み要求F’’’にデータ書込み要求F’’を変更する必要がある。
ステップS315:障害復旧アレイが生産アレイのホストサービスを引き継ぐための指示を受信する。
本発明の実施形態では、生産アレイが故障する場合、障害復旧アレイが生産アレイのホストサービスを引き継ぐ必要がある。従って、障害復旧アレイがデータの一貫性の要求を満足する必要がある。
ステップS314からわかるように、現在の複製タスクにおいて、障害復旧アレイによって受信されるデータ書込み要求が、データ書込み要求E’’及びデータ書込み要求F’’を含む。変更されたデータ書込み要求E’’及びデータ書込み要求F’’が、両方とも第2のキャッシュへの書き込みが成功するまで、障害復旧アレイは生産アレイのホストサービスを引き継がない。障害復旧アレイがホストサービスを引き継ぐことを開始するとき、現在の複製サイクルが完了し、データの一貫性の要求が満たされたことを示す。
障害復旧アレイがデータ書込み要求E’’をデータ書込み要求E’’’に変更し、データ書込み要求F’’’の第2のキャッシュへの書き込みに成功する前に、データ書込み要求E’’’の第2のキャッシュへの書き込みが成功した後で、生産アレイが故障し、障害復旧アレイが生産アレイのホストサービスを引き継ぐことを開始する場合、現在の複製タスクが未完了であり、かつデータの一貫性の要求が満足されない。同様に、障害復旧アレイがデータ書込み要求F’’をデータ書込み要求F’’’に変更し、データ書込み要求E’’’の第2のキャッシュへの書き込みに成功する前に、データ書込み要求F’’’の第2のキャッシュへの書き込みに成功した後で、生産アレイが故障し、障害復旧アレイが生産アレイのホストサービスを引き継ぐことを開始する場合、現在の複製タスクが未完了であり、かつデータの一貫性の要求が満足されない。
この場合、番号12に対応する複製タスクが完了したときの状態に障害復旧アレイのキャッシュ内のデータをリストアする必要がある。以下では、障害復旧アレイがデータ書込み要求E’’をデータ書込み要求E’’’に変更するとともに、データ書込み要求E’’’を第2のキャッシュに成功裏に書き込むこと、かつデータ書込み要求F’’’を第2のキャッシュに成功裏に書き込みしないと仮定する。
ステップS316:障害復旧アレイが、現在の複製サイクルで第2のキャッシュに書き込みが成功したデータ書込み要求において伝送される書込みアドレスを取得する。
上述からわかるように、番号13に対応する複製タスクでは、データ書込み要求E’’’の第2のキャッシュへの書き込みが成功し、データ書込み要求E’’’において伝送される書込みアドレスは、書込みアドレスAである。
ステップS317:書込みアドレスに従って、障害復旧アレイは、書込みアドレスAと同じ書込みアドレスを探索するために、先行する番号に対応するデータ書込み要求において伝送される情報内でマッチングを実行する。
その書込みアドレスと同じ書込みアドレスが見つかると、S318が実行される。そうでない場合、マッチングは、データ書込み要求E’’’において伝送される書込みアドレスと同じアドレスが見つかるまで、さらに先行する番号(例えば、番号11)に対応するデータ書込み要求において伝送される情報内で実行されることが継続される。
上述からわかるように、番号12に対応するデータ書込み要求において伝送される情報は、表5に示される。データ書込み要求A’’において伝送される書込みアドレスは、データ書込み要求E’’’において伝送される書込みアドレスと同じである。
障害復旧アレイが、データボリュームのIDを含む各データ書込み要求において伝送される複数のボリューム及び情報を含むとき、書込みアドレス及びデータボリュームのIDの両方が同じであるべき必要があることがわかる。
ステップS318:見つかった書込みアドレスを含む情報に従って新しいデータ書込み要求を生成し、第2のキャッシュに新しいデータ書込み要求を書き込む。新しいデータ書込み要求は変更した番号を含む。
例えば、第2のキャッシュから読み出される情報は、書込みアドレスA及び書き込むべきデータA(及び、セカンダリボリュームIDをも含み得る)を含み、新しいデータ書込み要求は、読み出される情報及び変更された番号(例えば、番号は13から14に変更される)に従って生成され得る。新しいデータ書込み要求が第2のキャッシュに書き込まれた後のキャッシュに格納されたマッピング関係が、表6に示される。
Figure 2015527670
ホストが障害復旧アレイにデータ読出し要求を送信するとき、要求されたデータボリュームのIDがセカンダリボリュームIDであるとともに、書込みアドレスが書込みアドレスAであり、障害復旧アレイは、セカンダリボリュームID及び書込みアドレスAを有し、最新の番号に対応する書き込むべきデータを第2のキャッシュから探索し、ホストに書き込むべきデータを送信する。本発明の実施形態では、番号14に対応する書き込むべきデータAが第2のキャッシュからホストに送信される。
本発明の実施形態では、生産アレイが、データボリュームから関連情報を読み出す必要なく、キャッシュから障害復旧アレイに受信したデータ書込み要求において伝送される情報を直接送信し得、そのことがデータ複製の効率を上げるとともに、障害復旧アレイのデータ一貫性を保証する。
従来技術では、データ複製は、スナップショットデータによって実施され、その場合、生産アレイがデータ書込み要求を実行する毎に、キャッシュ内にデータ書込み要求において伝送されるデータをまず配置し、アドレスに格納された古いデータをデータ書込み要求において伝送される書込みアドレスに従って読み出し、データボリューム内にデータを格納し、書込みアドレスにキャッシュ内のデータを書き込む必要がある。データ書込み要求の応答メッセージは、これら全ての動作が完了するまでに返されない。追加のスナップショットプロセスのステップのために、データ書込み要求の処理の遅延が長引く。しかしながら、本発明の実施形態では、スナップショット処理がデータ上で実行される必要がなく、従って、データ書込み要求が変更されるとはいえ、消費時間が短い。従って、従来技術と比べ、本発明の実施形態は、データ書込み要求を処理する遅延を減少する。
図5を参照すると、図5は、本発明の実施形態によるストレージデバイス50の概略の構造図である。図5に示されるように、ストレージデバイス50は、受信モジュール501、読出し及び書込みモジュール502、カレント時間間隔番号マネージャ503、及び送信モジュール504を含む。
受信モジュール501は、ホストによって送信される第1のデータ書込み要求を受信するように構成され、第1のデータ書込み要求は、書き込むべきデータ及びアドレス情報を伝送する。
アドレス情報は、論理ブロックアドレス(LBA)を含み得る。
ストレージデバイス50が複数のデータボリュームを含むとき、アドレス情報は、ストレージデバイス50のデータボリュームのIDをさらに含む。
読出し及び書込みモジュール502は、書き込むべきデータ及びアドレス情報に第1の番号を付与するとともに、キャッシュに情報を書き込むように構成され、第1の番号はカレント時間間隔番号であり、キャッシュから第1の番号に対応する書き込むべきデータ及びアドレス情報を読み出すように構成される。
ストレージデバイス50は、カレント時間間隔番号マネージャ503を含み得、カレント時間間隔番号マネージャ503は、カレント時間間隔番号を格納し、カレント時間間隔番号は、0、1、2などの数字、又は、a、b、cなどの文字でよく、本明細書では限定されない。
第1のデータ書込み要求が受信されるとき、第1の番号が、第1のデータ書込み要求において伝送される書き込むべきデータ及びアドレス情報に追加され、第1の番号は、カレント時間間隔番号によって割り当てられた値である。
第1の番号が第1のデータ書込み要求において伝送される情報に付与された後、第1のデータ書込み要求において伝送される変更された情報がキャッシュに書き込まれ、その結果、書き込むべきデータ、アドレス情報、及び第1のデータ書込み要求において伝送される第1の番号が、全てキャッシュに格納される。
加えて、時間期間内に、別のデータ書込み要求がまた受信されることがあり、データ書込み要求において伝送される情報に第1の番号を付与するとともに、キャッシュに情報を書き込む必要がある。カレント時間間隔番号が変わる前に、第1の番号が全てのデータ書込み要求において伝送される情報に付与されることに留意すべきである。複製タスクがトリガされるとき、ストレージデバイス50は第1の番号に対応する書き込むべきデータ及びアドレス情報をキャッシュから読み出し得る。第1の番号に対応する書き込むべきデータ及びアドレス情報の複数の部分があることがわかる。
複製タスクは、ストレージデバイス50が時間期間内にデータボリュームによって受信されるデータ書込み要求において伝送される情報を、障害復旧センタ内のストレージデバイスに送信し、カレント時間間隔番号と同じ番号が全てのデータ書込み要求において伝送される情報に付与される。複製タスクはタイマによってトリガされるか、又は手動によってトリガされ、本明細書では限定されない。複製の目的は、ストレージデバイス50によって受信されるデータ書込み要求において伝送される書き込むべきデータを、障害復旧センタ内のストレージデバイスに送信することであり、その結果、障害復旧センタ内のストレージデバイスは、ストレージデバイス50が故障したときに、ストレージデバイス50の働きを引き継ぐことができる。理解できるように、データ書込み要求において伝送されるアドレス情報(LBAなど)が、障害復旧センタ内のストレージデバイスに送信される必要があり、LBAは、障害復旧センタのストレージデバイスが書き込むべきデータを格納するアドレスを示すために使用される。障害復旧センタ内のストレージデバイスは、ストレージデバイス50と同様の物理構造を有する。従って、ストレージデバイス50に適用可能なLBAは、障害復旧センタ内のストレージデバイスにも適用可能である。
本発明の実施形態では、複製タスクは、ストレージデバイス50のデータボリュームに特有である。ストレージデバイス50が複数のデータボリュームを含むとき、各データボリュームは1つの複製タスクに対応する。
カレント時間間隔番号マネージャ503は、後続のデータ書込み要求において伝送される情報を識別するためにカレント時間間隔番号を変更するように構成される。
複製タスクがトリガされるとき、カレント時間間隔番号マネージャ503はカレント時間間隔番号を変更する必要がある。後続のデータ書込み要求が受信されると、別の番号が、後続のデータ書込み要求において伝送される情報に付与される必要があり、別の番号は、変更されたカレント時間間隔番号によって割り当てられる値である。従って、キャッシュ内では、障害復旧センタ内のストレージデバイスに送信されるデータ書込み要求において伝送される情報は、ストレージデバイス50によって受信されるデータ書込み要求において伝送される情報と区別され得る。
送信モジュール504は、障害復旧センタ内のストレージデバイスに書き込むべきデータ及びアドレス情報を送信するように構成される。
ストレージデバイス50は、キャッシュから読み出した第1の番号に対応する書き込むべきデータ及びアドレス情報を、障害復旧センタ内の第2のストレージデバイスに送信する。
具体的には、ストレージデバイス50は、障害復旧センタ内のストレージデバイスに、全ての読み出された書き込むべきデータ及びアドレス情報を直接送信し得る。又は、ストレージデバイス50は、障害復旧センタ内のストレージデバイスのデータボリュームのIDを取得した後、各データ書込み要求において伝送される書き込むべきデータ及びアドレス情報に従って、新しいデータ書込み要求と、障害復旧センタ内のストレージデバイスのデータボリュームのIDとを生成し、障害復旧センタ内のストレージデバイスに新しいデータ書込み要求を送信する。
本発明の実施形態では、ストレージデバイス50がホストによって送信されたデータ書込み要求を受信した後、データ書込み要求において伝送された情報が書き込むべきデータ及びアドレス情報を含み、ストレージデバイス50が第1の番号を書き込むべきデータ及びアドレス情報に付与し、キャッシュに情報を書込み、第1の番号はカレント時間間隔番号である。複製タスクがトリガされると、ストレージデバイス50が、キャッシュから第1の番号に対応する書き込むべきデータ及びアドレス情報を読み出し、障害復旧センタ内のストレージデバイスにその情報を送信する。加えて、複製タスクがトリガされると、ストレージデバイス50が、カレント時間間隔番号を変更し、その結果、ストレージデバイス50は、続いてデータ書込み要求を受信するときに、データ書込み要求において伝送される情報に、変更されたカレント時間間隔番号と同じ番号を付与する。それによって、キャッシュ内では、障害復旧センタ内のストレージデバイスに送信されたデータ書込み要求において伝送される情報は、ストレージデバイス50によって受信されるデータ書込み要求において伝送される情報と区別される。このことは、キャッシュから障害復旧センタ内のストレージデバイスへのデータ書込み要求において伝送される情報の直接送信を実施する。情報が、データボリュームから読み出す必要なく、キャッシュから直接送信されるので、データ複製時間が短く、そのことがデータ複製の効率を上げる。
図6を参照すると、図6は、本発明の実施形態によるストレージデバイス60の概略の構成図である。
図6に示されるように、ストレージデバイス60は、受信モジュール601、探索モジュール602、及び書込みモジュール604を含む。
受信モジュール601は、ストレージデバイス50によって送信されたアドレス情報を受信するように構成される。
具体的には、ストレージデバイス60は、ストレージデバイス50によって送信された書き込むべきデータ及びアドレス情報を受信し得、又はストレージデバイス60は、ストレージデバイス50によって送信されたデータ書込み要求を受信し得、データ書込み要求は書き込むべきデータ及びアドレス情報を含み、アドレス情報は、論理ブロックアドレス(LBA)であり得る。ストレージデバイス60が複数のデータボリュームを含むとき、アドレス情報は、ストレージデバイス60のデータボリュームのIDをさらに含み得る。1つ以上のアドレス情報があり得ることわかる。
書き込むべきデータ及びアドレス情報を受信した後、ストレージデバイス60は、カレント時間間隔番号と同じ番号を書き込むべきデータ及びアドレス情報に付与し、その情報をキャッシュに書込み、その結果、カレント時間間隔番号と同じ番号、書き込むべきデータ、及びアドレス情報がキャッシュに格納される。
ストレージデバイス60はまた、カレント時間間隔番号マネージャ603を含み得、カレント時間間隔番号マネージャ603は、カレント時間間隔番号を格納することに留意すべきである。カレント時間間隔番号は、0、1、2などの数字、又は、a、b、cなどの文字でよく、本明細書では限定されない。ここでのカレント時間間隔番号は、ストレージデバイス50内のカレント時間間隔番号と関係がなくともよい。
探索モジュール602は、ストレージデバイス50が故障していることが決定すると、ストレージデバイス60がアドレス情報に従って第1の番号に対応する書き込むべきデータを取得するように構成され、第1の番号に対応するアドレス情報は、受信したアドレス情報と同じであり、第1の番号は、カレント時間間隔番号に先行する番号である。
一般に、ストレージデバイス50及びストレージデバイス60の両方が、正常に動作する場合、ストレージデバイス60は、ストレージデバイス50によって送信された全てのデータ書込み要求において伝送される情報を受信してよく、データ書込み要求において伝送される情報に、カレント時間間隔番号と同じ番号を付与し、かつキャッシュにその情報を格納する。しかしながら、ストレージデバイス50が故障する場合、ストレージデバイス60は、ストレージデバイス50のカレント時間間隔番号に対応する書き込むべきデータの一部のみを受信することがある。この場合、ストレージデバイス60によって格納されるデータは、不正確である可能性があり、ストレージデバイス60がストレージデバイス50の働きを直接引き継ぐ場合、データの一貫性が保証できない。例えば、ホストは、この時点でストレージデバイス60にデータ読出し要求を送信する場合、アドレス情報(LBAなど)に格納された読出しデータを要求すること、ストレージデバイス60は、アドレス情報に対応する最新の番号を探索し、カレント時間間隔番号に対応する書き込むべきデータをホストに送信し、しかしながら、データは不正確である。従って、この場合、ストレージデバイス60のキャッシュ内のデータから、ストレージデバイス60のカレント時間間隔番号に先行する番号に対応するデータをリストアする必要がある。
具体的に、ストレージデバイス50が故障することが、制御センタがストレージデバイス60に信号を送信する方法によって判断され得る。信号はストレージデバイス50が故障したことを示すために使用され、ストレージデバイス60は、ストレージデバイス50のホストサービスを引き継ぐ必要がある。
一般に、複製タスクが完了するとき、制御センタは、ストレージデバイス50及びストレージデバイス60の両方に複製成功指示を送信し得る。ストレージデバイス60が指示を受信しない場合、現在の複製タスクが完了しないこと示す。複製タスクの完了は、ストレージデバイス50がカレント時間間隔番号に対応する全てのデータ書込み要求で伝送される情報をストレージデバイス60に送信し、ストレージデバイス60がその情報の受信を終了したことを意味する。
ストレージデバイス60は、ストレージデバイス50が故障していることが決定すると、現在の複製タスクが完了する場合に、ストレージデバイス60がストレージデバイス50の働きを直接引き継ぐことができ、データの一貫性が保証され得る。この状況は、本発明の実施形態の議論の範囲外である。
しかしながら、現在の複製タスクが完了しない場合、ストレージデバイス60のキャッシュ内のデータから、ストレージデバイス60のカレント時間間隔番号に先行する番号に対応するデータをリストアする必要がある。
具体的な複製方法は、受信したアドレス情報に従って、受信したアドレス情報と同じアドレス情報のために、カレント時間間隔番号に先行する番号に対応するアドレス情報を探索し、同じアドレス情報が見つからない場合、アドレス情報が見つかるまでさらに先行する番号に対応するアドレス情報を探索することを継続し、番号に対応する書き込むべきデータを取得する。
書込みモジュール604は、第1の番号に対応する書き込むべきデータ及びアドレス情報に第2の番号を付与し、キャッシュにその情報を書き込むように構成される。
第2の番号は、カレント時間間隔番号を変更することによって取得された番号であり、この実施形態では、キャッシュ内に格納された最新の番号でもある。ホストがストレージデバイス60にデータ読出し要求を送信するとき、アドレス情報(LBAなど)内に格納された読出しデータを要求し、ストレージデバイス60は、アドレス情報に対応する最新の番号が第2の番号であることを探索することによって学習し、第2の番号に対応する書き込むべきデータをホストに送信する。それによって、データの一貫性が保証される。
本発明の実施形態では、ストレージデバイス60は、ストレージデバイス50によって送信されたアドレス情報を受信し、ストレージデバイス50が故障するとき、カレント時間間隔番号に先行する番号に対応する書き込むべきデータを取得し、カレント時間間隔番号に先行する番号に対応する書き込むべきデータ及びアドレス情報に、第2の番号を付与し、キャッシュにその情報を格納する。それによって、データの一貫性が保証される。
図7を参照すると、本発明の実施形態として、ストレージデバイス700が提供される。ストレージデバイス700は、従来技術で既知であるストレージデバイスを含み得る。本発明の実施形態は、ストレージデバイス700の特定の実装に限定されない。ストレージデバイス700は、プロセッサ710、通信インタフェース720、メモリ730、及び通信バス740を含む。
プロセッサ710、通信インタフェース720、及びメモリ730は、通信バス740を使用することによって相互通信を実施する。
通信インタフェース720は、例えば、ホスト又はスイッチと、ネットワーク要素と通信するように構成される。
プロセッサ710は、プログラム732を実行するように構成される。
具体的には、プログラム732はプログラムコードを含み、プログラムコードはコンピュータ動作命令を含む。
プロセッサ710は、CPU(central processing unit)、又はASIC(Application Specific Integrated Circuit)であり、本発明の実施形態を実装する1つ又は複数の組み込み回路に構成される。
メモリ730は、プログラム732を格納するように構成される。
メモリ730は、高速RAM、不揮発性メモリ、例えば、少なくとも1つの磁気ディスクメモリを含み得る。
プログラム732は、具体的に、ホストによって送信された第1のデータ書込み要求を受信するように構成される受信モジュール501であって、第1のデータ書込み要求は、書き込むべきデータ及びアドレス情報を伝送する、受信モジュールと、書き込むべきデータ及びアドレス情報に第1の番号を付与し、キャッシュにその情報を書き込む、読出し及び書込みモジュール502であって、第1の番号はカレント時間間隔番号であり、キャッシュから第1の番号に対応する書き込むべきデータ及びアドレス情報を読み出す、読出し及び書込みモジュールと、後続のデータ書込み要求において伝送される情報に一致するように、カレント時間間隔番号を変更するように構成されるカレント時間間隔番号マネージャ503と、障害復旧センタ内のストレージデバイスに書き込むべきデータ及びアドレス情報を送信するように構成される送信モジュール504とを含み得る。
プログラム732内のモジュールの具体的な実装のために、図5に説明される実施形態の対応するモジュールが参照されてよく、本明細書にはさらに記載しない。
図8に参照されるように、本発明の実施形態は、ストレージデバイス800を提供する。ストレージデバイス800は、従来技術で既知であるストレージデバイスを含み得る。本発明の実施形態は、ストレージデバイス800の特定の実装を限定しない。ストレージデバイス800は、プロセッサ810、通信インタフェース820、メモリ830、及び通信バス840を含む。
プロセッサ810、通信インタフェース820、及びメモリ830は、通信バス840を使用することによって相互通信を実施する。
通信インタフェース820は、例えば、ホスト又はスイッチである、ネットワーク要素と通信するように構成される。
プロセッサ810は、プログラム832を実行するように構成される。
具体的には、プログラム832はプログラムコードを含み、プログラムコードはコンピュータ動作命令を含む。
プロセッサ810は、CPU(central processing unit)、又はASIC(Application Specific Integrated Circuit)であり得、本発明の実施形態を実装する1つ又は複数の組み込み回路に構成され得る。
メモリ830は、プログラム832を格納するように構成される。
メモリ830は、高速RAM、不揮発性メモリ、例えば、少なくとも1つの磁気ディスクメモリを含み得る。
プログラム832は、具体的には、ストレージデバイス50によって送信されるアドレス情報を受信するように構成される受信モジュール601と、ストレージデバイス50が故障していることが決定すると、ストレージデバイス60が、アドレス情報に従って第1の番号に対応する書き込むべきデータを取得するように構成される探索モジュールであって、第1の番号に対応するアドレス情報は、受信したアドレス情報と同じであり、第1の番号がカレント時間間隔番号に先行する番号である、探索モジュール602と、第1の番号に対応する書き込むべきデータ及びアドレス情報に第2の番号を付与し、その情報をキャッシュに書き込むように構成される書込みモジュール604とを含み得る。
プログラム832内のモジュールの具体的な実装のために、図6に説明される実施形態の対応するモジュールが参照されてよく、本明細書にはさらに記載しない。
当業者に明確に理解できるように、好都合で明確な説明の目的で、上述のデバイス及びモジュールの詳細な動作プロセスに関して、上述の方法の実施形態における対応する処理が参照されてよく、本明細書では詳細を再度記載しない。
少なくとも2つの障害復旧センタを含むシナリオに対する本発明のこの実施形態で提供される方法のアプリケーションが以下に記載される。
図9に示されるように、ストレージシステムは、1つの生産センタ及び少なくとも2つの障害復旧センタを含む。
生産センタは、生産ホスト、接続デバイス、及び生産アレイを含む。障害復旧センタのシステムのアーキテクチャは、障害復旧ホスト、接続デバイス、及び障害復旧アレイを含む、生産センタのアーキテクチャと同様である。生産センタ及び障害復旧センタは、IP(Internet Protocol)又はFC(Fiber Chanel)を介してデータ転送を実行し得る。生産センタ及び障害復旧センタの間に制御センタがあり得る。制御センタは、生産センタ側又は障害復旧センタ側に配置され得るか、生産センタ及び障害復旧センタの間にサードパーティデバイスに配置され得る。制御センタは、生産アレイが故障するとき、障害復旧アレイに信号を送信するように構成され、その結果、障害復旧アレイは生産アレイのホストサービスを引き継ぐ。
生産ホスト及び障害復旧ホストは、サービス及びデスクトップなど従来技術で既知である任意のコンピュータであり得る。オペレーティングシステム及び他のアプリケーションプログラムがホスト内部にインストールされる。
接続デバイスは、ファイバスイッチ又は他の現在利用可能なスイッチなど、ストレージデバイス及びホストの間に、従来技術で既知である任意のインタフェースを含み得る。
生産アレイ及び障害復旧アレイは、1つ又は複数の相互接続したRAID(Redundant Array of Inexpensive Disks)、JBOD(Just a Bunch Of Disks)、及びテープライブラリなどの1つ又は複数の相互接続したディスクドライブなどの、従来技術で既知であるストレージデバイスであるか、又は、1つ又は複数の相互接続したディスクドライブがDASD(Direct Access ストレージデバイス)のものである、1つ又は複数のストレージユニットのテープストレージデバイスの両方であり得る。
生産アレイのストレージ領域は、複数のデータボリュームを含み得る。データボリュームは、物理ストレージ領域をマッピングすることによって形成される論理ストレージ領域である。例えば、データボリュームは、LUN(Logic Unit Number)又はファイルシステムである。本発明のこの実施形態では、障害復旧アレイは生産アレイの構造と同様の構造を有する。
生産センタ内のデータの安全性を保証するために、一般に、複数の障害復旧センタが配置される必要がある。生産センタ内のデータは複数の障害復旧センタに複製され、その結果、生産センタ及び1つの障害復旧センタの両方が障害に遭遇するとき、別の障害復旧センタがデータを格納し、データが失われない。本発明のこの実施形態では、生産アレイが障害復旧アレイに1つのデータボリュームに格納するデータを生産アレイが複製するタスクは、複製関係(又はペア)と呼ばれる。各複製関係は、1つのユニークな識別子(例えば、ID)に対応する。障害が発生する前に、生産アレイはホストによって送信されたデータ書込み要求を継続的に受信するので、生産アレイは、障害復旧アレイに格納するデータを継続的に複製する必要がある。従って、1つの複製関係は、時間期間の一定の番号に分割されてよく、生産アレイが、各期間内で1つのデータボリュームによって受信されるデータ書込み要求において伝送される情報を送信するタスクは、複製タスクと呼ばれる。
生産アレイは、カレント時間間隔番号を格納するカレント時間間隔番号マネージャを含み得る。カレント時間間隔番号は、本明細書では限定しないが、0、1、2などの数字、又は、a、b、cなどの文字であり得る。カレント時間間隔番号は、各障害復旧アレイに適用可能であることに留意すべきである。複製タスクがトリガされる毎に、カレント時間間隔番号は変更される。
例として、カレント時間間隔番号が1であることが使用される。生産アレイがデータ書込み要求を受信するとき、数値1の番号がデータ書込み要求において伝送される書き込むべきデータ及びアドレス情報に付与され、データ書込み要求において伝送される書き込むべきデータ及びアドレス情報、及び数値1の番号は、全てキャッシュに書き込まれる。
第1の障害復旧アレイに対応する複製タスクがトリガされるとき、生産アレイは数値1から数値2にカレント時間間隔番号を変更し、その結果、数値2の番号が、後続の受信したデータ書込み要求において伝送される書き込むべきデータ及びアドレス情報に付与される。その後、数値1の番号に対応する書き込むべきデータ及びアドレス情報が、第1の障害復旧アレイに送信される。
第2の障害復旧アレイに対応する複製タスクがトリガされるとき、生産アレイは、数値2から数値3にカレント時間間隔番号を変更し、その結果、数値3の番号が、後続の受信したデータ書込み要求において伝送される書き込むべきデータ及びアドレス情報に付与される。
第3の障害復旧アレイに対応する複製タスクがトリガされるとき、生産アレイは、数値3から数値4にカレント時間間隔番号を変更し、その結果、数値4の番号が後続の受信したデータ書込み要求において伝送される書き込むべきデータ及びアドレス情報に付与される。
しかしながら、第1の障害復旧アレイに対応する複製タスクが別の時間のためにトリガされるとき、複製アレイは、数値4から数値5にカレント時間間隔番号を変更し、その結果、数値5の番号が、後続の受信したデータ書込み要求において伝送される書き込むべきデータ及びアドレス情報に付与される。生産アレイはカレント時間間隔番号のみを記録すると仮定する。その後、この時点で、それに応じて、数値4の番号に対応する書き込むべきデータ及びアドレス情報が第1の障害復旧センタに送信される。結果的に、数値2の番号に対応する書き込むべきデータ及びアドレス情報と、数値3の番号に対応する書き込むべきデータ及びアドレス情報とは省略され、第1の障害復旧アレイに格納されたデータは、生産アレイ内のデータとの一貫性がなくなる。同様に、第2の障害復旧アレイ及び第3の障害復旧アレイは、受信した書き込むべきデータ及びアドレス情報が不完全であるという問題にも直面する。
図10を参照すると、図10では、その問題を解決するための、本発明によって提案されるデータ複製方法の実施形態を示す。方法は、少なくとも2つの障害復旧アレイに対応する生産アレイに適用される。本発明のこの実施形態では、記載を容易にするために、生産アレイが、第1のストレージデバイスとして参照され、少なくとも2つの障害復旧アレイの1つが、第2のストレージデバイスとして参照される。以降のステップの具体的な実行のために図2から図4に示される実施形態が参照され得る。
方法は、以下のステップを含む。
ステップ41:現在の複製タスクがトリガされるとき、第1のストレージデバイスは、カレント時間間隔番号を読み出す。複製タスクはタイマ又は手動によってトリガされてよく、又は他のトリガ方法でトリガされてよく、本明細書では限定されない。複製タスクがトリガされるとき、第1のストレージデバイスがカレント時間間隔番号マネージャからカレント時間間隔番号を読み出し得る。複製タスクがトリガされるとき、第1のストレージデバイスはトリガの瞬間にカレント時間間隔番号を変更し、本明細書では、第1のストレージデバイスによって読み出されたカレント時間間隔番号は、変更されたカレント時間間隔番号である。記載を容易にするために、以降のステップでは、変更前のカレント時間間隔番号を履歴時間期間番号と呼ぶ。
ステップ42:第2の番号を読み出す。第2の番号は、現在の複製タスクに相互に関連する最新の完了した複製タスクに対応する番号である。
本発明のこの実施形態では、最新の完了した複製タスクが現在の複製タスクに相互に関連するということは、現在の複製タスク及び最新の完了した複製タスクが同一の複製関係に属することを意味し、先行する記載から、各複製関係がユニークなIDを有することがわかる。複製タスクがトリガされるとき、第1のストレージデバイスはIDを受信し、IDに応じた第2の番号を読み出し得る。
具体的には、現在の複製タスクがタイマによってトリガされるとき、IDはタイマ内で保有され得、現在の複製タスクが手動でトリガされるとき、第1のストレージデバイスは、信号の形態又は他の形態でIDを受信してもよい。
本発明のこの実施形態では、複製タスクが完了する毎に、完了した複製タスクに対応する番号が記録される。限定ではないが、選択的に、最新の完了した複製タスクに対応する番号だけが格納されてよく、次の複製タスクが完了するときに番号が更新され、又は全ての完了した複製タスクに対応する番号が格納される。
最新の完了した複製タスクに対応する番号が各複製関係に記録されることが理解できる。
ステップ43:カレント時間間隔番号及び第2の番号に従って、第1の番号を決定する。第1の番号は、複製タスクがトリガされるときのカレント時間間隔番号より前の番号であり、第1の番号は第2の番号の後の番号である。
例えば、カレント時間間隔番号は数値5であり、第2の番号は数値2であり、間隔(2,5)内の任意の番号が、第1の番号として決定され得る。区間は、数値2及び数値5を除く、開区間であることに留意すべきである。
ステップ44:キャッシュに格納されるとともに第1の番号に対応する複製すべきデータ及び複製すべきデータのアドレス情報を、第2のストレージデバイスに複製する。
具体的には、複製すべきデータと、第1の番号に対応する複製すべきデータのアドレス情報とがキャッシュから読み出され、複製すべきデータ及び複製すべきデータのアドレス情報は、第2のストレージデバイスに送信される。
選択的に、第1のストレージデバイスは、複製すべきデータ及び複製すべきデータのアドレス情報を第2のストレージデバイスに直接送信し、又は複製すべきデータ及び複製すべきデータのアドレス情報に従ってデータ書込み要求を生成し得、データ書込み要求を第2のストレージデバイスに送信する。
選択的に、現在の複製タスクがトリガされるとき、かつ最新の完了した複製タスクに対応する番号の後で、複数の番号は全て、カレント時間間隔番号の前である条件を満足し、同じアドレス情報に対応する複数の番号は、アドレス情報及び最新の番号に対応する複製すべきデータのみが、第2のストレージデバイスに送信され得る。最新の番号は、最も直近に生成された番号である。例えば、カレント時間間隔番号が各時間に1を付与することによって変更され、最新の番号は最も大きい数値をもつ番号であると仮定する。
本発明のこの実施形態では、現在の複製タスクがトリガされるとき、第1のストレージデバイスは、カレント時間間隔番号及び第2の番号に従って第1の番号を決定し、第2の番号が、現在の複製タスクの前の最新の完了した複製タスクに対応する番号であり、第1の番号は、現在の複製タスクがトリガされるときのカレント時間間隔番号の前かつ第2の番号の後の番号であり、第1のストレージデバイスは、キャッシュに格納されるとともに第1の番号に対応する複製すべきデータ及び複製すべきデータのアドレス情報を第2のストレージデバイスに複製する。第2の番号とカレント時間間隔番号の間の全ての番号が、第1の番号として決定され得るので、番号が第1の番号として決定されない限り、複製すべきデータと番号に対応する複製すべきデータのアドレス情報とが、第2のストレージデバイスに複製され得る。従って、別の障害復旧アレイに対応する複製タスクがトリガされるとき、カレント時間間隔番号が変更される場合でさえ、第1のストレージデバイスが第2の番号に従って、複製すべきデータと第2のストレージデバイスに複製されない複製すべきデータのアドレス情報とを見つけ、それらを第2のストレージデバイスに複製し得る。そのことによって、複製の完全性が保証される。
選択的に、上述の実施形態では、現在の複製タスクがトリガされる前に、方法は、第1のデータ書込み要求を受信するステップであって、第1のデータ書込み要求は、複製すべきデータ及び複製すべきデータのアドレス情報を含む、ステップと、第1の番号を複製すべきデータ及び複製すべきデータのアドレス情報に付与するステップと、キャッシュにそれらを書き込むステップとをさらに含み、第1の番号は、履歴時間期間番号である。
具体的には、履歴時間期間番号は、第1のデータ書込み要求が受信される瞬間に対応するカレント時間間隔番号を参照する。図2から図4に示される実施形態から、複製タスクがトリガされるとき、履歴時間期間番号はカレント時間間隔番号に変更されることが理解できる。
選択的に、方法は、第2のデータ書込み要求を受信するステップであって、第2のデータ書込み要求は、ターゲットデータ及びターゲットデータのアドレス情報を含む、ステップと、第3の番号をターゲットデータ及びターゲットデータのアドレス情報に付与するステップと、第3の番号が第1の番号と同じであるか否かを判断するステップと、第3の番号が第1の番号と同じであるとき、ターゲットデータのアドレス情報が、複製されるべきデータのアドレス情報と同じか否かを判断するステップと、ターゲットデータのアドレス情報が、複製されるべきデータのアドレス情報と同じとき、キャッシュに格納された複製すべきデータをターゲットデータに置き換えるステップと、ターゲットデータのアドレス情報が複製されるべきデータのアドレス情報と同じでない場合、第3の番号が付与された後に、ターゲットデータ及びターゲットデータのアドレス情報をキャッシュに書き込むステップとをさらに含む。
第3の番号が第1の番号と同じでない場合、第3の番号が付与された後に、ターゲットデータ及びターゲットデータのアドレス情報がキャッシュに書き込まれる。
図11を参照すると、図11は、本発明の実施形態によるストレージデバイスの概略的な構造図である。図11に示されるように、ストレージデバイスは、読出し及び書込みモジュール52、決定モジュール53、及び複製モジュール54を含む。
読出し及び書込みモジュール52は、現在の複製タスクがトリガされるとき、カレント時間間隔番号を読み出すとともに、第2の番号を読み出すように構成され、第2の番号は、現在の複製タスクに相互に関連する最新の完了した複製タスクに対応する番号である。
決定モジュール53は、カレント時間間隔番号及び第2の番号に従って、第1の番号を決定するように構成され、現在の複製タスクがトリガされるとき、第1の番号は、カレント時間間隔番号の前の番号であり、第1の番号は第2の番号の後の番号である。
複製モジュール54は、キャッシュ内に格納されるとともに第1の番号に対応する複製されるべきデータ及び複製されるべきデータのアドレス情報を、第2のストレージデバイスに複製するように構成される。
本発明のこの実施形態では、現在の複製タスクがトリガされるとき、第1のストレージデバイスは、カレント時間間隔番号及び第2の番号に従って第1の番号を決定し、第2の番号は、現在の複製タスクの前の最新の完了した複製タスクに対応する番号であり、第1の番号は、現在の複製タスクがトリガされるときのカレント時間間隔番号の前かつ第2の番号の後の番号であり、複製されたデータ及びキャッシュに格納されかつ第1の番号に対応する複製されたデータのアドレス情報を第2のストレージデバイスに複製する。第2の番号とカレント時間間隔番号との間の全ての番号が、第1の番号として決定され得、番号が第1の番号として決定される限り、複製されるべきデータとその番号に対応する複製されるべきデータのアドレス情報とが、第2のストレージデバイスに複製され得る。従って、別の障害復旧アレイに対応する複製タスクがトリガされるときにカレント時間間隔番号が変更される場合でさえ、第1のストレージデバイスが、第2の番号に従って、複製されるべきデータと第2のストレージデバイスに複製されない複製されるべきデータのアドレス情報とを見つけ得、それらを第2のストレージデバイスに複製し得、それによって、複製の完全性が保証され得る。
選択的に、ストレージデバイスが、第2の番号を記録するように構成される記録モジュール55を含み得る。
選択的に、最新の完了した複製タスクが現在の複製タスクに相互に関連することは、現在の複製タスク及び最新の完了した複製タスクが、同じ複製関係に属していることを意味し、ストレージデバイスがさらに受信モジュール51を含む。
受信モジュール51は、複製関係に対応する識別子を受信するように構成される。
読出し及び書込みモジュールは、具体的には、識別子に従って現在の複製タスクに対応する第2の番号を読み出すように構成される。
選択的に、受信モジュール51は、現在の複製タスクがトリガされる前に、第1のデータ書込み要求を受信するようにさらに構成され、第1のデータ書込み要求は、複製されるべきデータ及び複製されるべきデータのアドレス情報を含み、読出し及び書込みモジュール52は、複製されるべきデータ及び複製されるべきデータのアドレス情報に第1の番号を付与し、それらをキャッシュに書き込むようにさらに構成され、第1の番号は、履歴時間期間番号である。カレント時間間隔番号は、履歴時間期間番号を変更することによって形成される。
選択的に、複製モジュール54は、具体的には、アドレス情報が、複数の番号に対応するとき、アドレス情報に対応する番号のうちの最新の番号を第1の番号として決定し、キャッシュに格納されるとともに第1の番号に対応する複製されるべきデータ及び複製されるべきデータのアドレス情報を、第2のストレージデバイスに複製する。
本発明のこの実施形態によって提供されるストレージデバイスは、上述の実施形態で説明されたデータ複製方法を実行するために使用される。モジュールの機能の詳細な記述のための方法の実施形態の記載が参照され、これ以上の詳細は本明細書には記載されない。
図12に示されるように、図12では、本発明の実施形態によって提供されるストレージデバイスを示し、ストレージデバイスは、プロセッサ101、メモリ102、システムバス(ショートのためのバス)105、及び通信インタフェース103を含む。プロセッサ101、メモリ102、及び通信インタフェース103が接続され、システムバス105を使用することによって相互通信を実施する。
プロセッサ101は、単一コア又は複数コアの中央処理ユニット、又は特定の集積回路であり得、本発明の実施形態を実施する1つ又は複数の集積回路に構成され得る。
メモリ102は、高速RAMメモリ、又は不揮発性メモリ、例えば、少なくとも1つの磁気ディスクメモリであり得る。
通信インタフェース103は、ストレージデバイスと通信するように構成される。
メモリ102は、コンピュータ実行可能命令1021を格納するように構成される。具体的には、コンピュータ実行可能命令1021は、プログラムコードを含み得る。
コンピュータの実行時、プロセッサ101はコンピュータ実行可能命令1021を実行し、図10に説明される方法手順を実行することができる。
本願で提供されるいくつかの実施形態では、開示されたデバイス及び方法は、他の方法で実施され得ることが理解されるべきである。例えば、記載された装置の実施形態は、単なる例示である。例えば、モジュールの分割は、単に、論理機能の分割であり、実際の実装では他の分割が可能である。例えば、複数のモジュール又は構成要素が、別のデバイスに組み合わされるか統合され得、又はいくつかの特徴が、無視されるか実行されなくてもよい。加えて、表示された又は議論された、相互結合、直接結合、又は通信接続は、いくつかのインタフェースを使用して実装され得る。装置間又はモジュール間の間接結合又は通信接続は、電気的、機械的、又は他の形態で実装され得る。
別々の部品で記載されたモジュールは、物理的に別々であってもなくてもよく、モジュールとして表示された部分は、物理的なサブモジュールであってもなくてもよく、1つの位置に位置してもよく、複数のネットワークサブモジュール上に分散されてもよい。モジュールのいくつか又は全ては、実際の必要性に従って実施形態の解決策を目的として達成するために選択され得る。
加えて、本発明の実施形態の機能モジュールが、処理モジュールに統合されてもよく、又はモジュールの各々が物理的に単独で存在してもよく、2つ又はそれ以上のモジュールが1つのモジュールに統合されてもよい。
当業者は、上述の実施形態のステップの全て又は一部が、ハードウェアによって実装されるか、又は関連ハードウェアに命令するプログラムによって実装され得ることを理解する。プログラムは、コンピュータ可読記録媒体に格納され得る。記録媒体は、読出し専用メモリ、磁気ディスク、又は光学ディスクであり得る。
最後に、上述の実施形態は、単に、本発明の技術的解決策を記載するためのものであり、本発明を限定するものではないことに留意すべきである。本発明は、上述の実施形態を参照して詳細に記載されるが、そのような変更又は置き換えが、対応する技術的解決策の本質を本発明の実施形態の技術的解決策の範囲から逸脱しない限りで、当業者は、上述の実施形態に記載される技術的解決策に変更を加え、又は、それの技術的特徴のいくつか又は全てに均等な置き換えが可能であることを理解すべきである。
50 ストレージデバイス
501 受信モジュール
502 読込み及び書込みモジュール
503 カレント時間間隔番号マネージャ
504 送信モジュール
60 ストレージデバイス
601 受信モジュール
602 探索モジュール
603 カレント時間間隔番号マネージャ
604 書込みモジュール
700 ストレージデバイス
710 プロセッサ
720 通信インタフェース
730 メモリ
732 プログラム
740 通信バス
800 ストレージデバイス
810 プロセッサ
820 通信インタフェース
830 メモリ
832 プログラム
840 通信バス
本発明の実施形態中に提供されるデータ送信方法は、ストレージデバイス中に実施され得る。図1は、本発明の実施形態において提供されるデータ送信方法のシステムアーキテクチャの概略図である。図1に示されるように、生産センタは、1つ又は複数の生産ホスト、接続デバイス、及び生産アレイ(以下の実施形態の第1のストレージデバイスに対応する)を含み、障害復旧センタのシステムアーキテクチャは、生産センタのシステムアーキテクチャに類似しており、障害復旧ホスト、接続デバイス、及び障害復旧アレイ(以下の実施形態の第2のストレージデバイスに対応する)を含む。本発明の実施形態では、1つ又は複数の障害復旧センタがあり得る。生産センタ及び障害復旧センタは、IP(Internet Protocol)又はFC(Fiber Channel)を介してデータを転送し得る。生産センタと障害復旧センタの間に制御センタがあり得る。制御センタは、生産センタ側又は障害復旧センタ側に配置されてよく、又は、生産センタと障害復旧センタの間のサードパーティデバイス上に配置されてもよい。生産アレイが故障するとき、制御センタは障害復旧アレイに信号を送信するように構成され、その結果、障害復旧アレイは生産アレイのホストサービスを引き継ぐ。
アドレス情報は、LBA(a Logic Block Address)を含み得る。第1のストレージデバイスが複数のデータボリュームを含むとき、アドレス情報は、第1のストレージデバイスのデータボリュームのIDをさらに含み得る。
特定のリストア方法は、受信したアドレス情報に従って、カレント時間断片番号に先行する番号に対応するアドレス情報が受信したアドレス情報と同一であるか否かを検査し、同一でない場合、受信したアドレス情報と同一のアドレス情報が見つかるまでさらに先行する番号に対応するアドレス情報を検査することを継続し見つかったアドレス情報の番号に対応する書き込むべきデータを取得し得る。
障害復旧アレイが、データボリュームのIDを含む各データ書込み要求において伝送される複数のボリューム及び情報を含むとき、書込みアドレス及びデータボリュームのIDの両方が合致すべき必要があることがわかる。

Claims (39)

  1. ホストによって送信される第1のデータ書込み要求を、第1のストレージデバイスによって受信するステップであって、前記第1のデータ書込み要求は、書き込むべきデータ及びアドレス情報を伝送する、ステップと、
    書き込むべきデータ及びアドレス情報に第1の番号を付与するとともに、前記第1の番号が付与された前記書き込むべきデータ及び前記アドレス情報をキャッシュに書き込むステップであって、前記第1の番号は、カレント時間間隔番号である、ステップと、
    前記第1の番号に対応する前記書き込むべきデータ及び前記アドレス情報を、前記キャッシュから読み出すステップと、
    後続のデータ書込み要求において伝送される情報を識別するために、カレント時間間隔番号を変更するステップと、
    前記書き込むべきデータ及び前記アドレス情報を第2のストレージデバイスに送信するステップと、
    を有することを特徴とするデータ送信方法。
  2. 前記第1の番号は、現在の複製タスクを識別するために使用され、
    前記方法は、第2の番号を記録するステップであって、前記第2の番号は、前記現在の複製タスクの前の最新の完了した複製タスクに対応する番号である、ステップをさらに有することを特徴とする請求項1に記載の方法。
  3. 前記第2の番号の後であるとともに、前記第1の番号に先行する番号に対応する書き込むべきデータ及びアドレス情報を、前記キャッシュから読み出すステップと、
    前記第2の番号の後であるとともに、前記第1の番号に先行する前記番号に対応する前記書き込むべきデータ及び前記アドレス情報を前記第2のストレージデバイスに送信するステップとを有することを特徴とする請求項2に記載の方法。
  4. 前記カレント時間間隔番号を記録するステップをさらに有し、前記カレント時間間隔番号は、前記第1の番号を生成するために使用されることを特徴とする請求項1に記載の方法。
  5. 前記書き込むべきデータ及び前記アドレス情報を第2のストレージデバイスに送信する前記ステップは、
    前記書き込むべきデータ及び前記アドレス情報に従って、第2のデータ書込み要求を生成するステップと、
    前記第2のデータ書込み要求を前記第2のストレージデバイスに送信するステップとを有することを特徴とする請求項1に記載の方法。
  6. 前記アドレス情報は、LBA(論理ブロックアドレス)を含み、
    前記書き込むべきデータ及び前記アドレス情報に従って、第2のデータ書込み要求を生成するステップは、
    前記第2のストレージデバイスのデータボリュームのIDを取得するステップと、
    前記第2のデータ書込み要求を生成するステップとを含み、
    前記第2のデータ書込み要求は、前記書き込むべきデータ、前記LBA、及び前記データボリュームのIDとを含むことを特徴とする請求項5に記載の方法。
  7. 第1のストレージデバイスから送信されたアドレス情報を、第2のストレージデバイスによって受信するステップと、
    前記第1のストレージデバイスが故障していることが決定すると、前記アドレス情報に従って前記第2のストレージデバイスによって、第1の番号に対応する書き込むべきデータを取得するステップであって、前記第1の番号に対応するアドレス情報が、前記受信したアドレス情報と同じであるとともに、前記第1の番号がカレント時間間隔番号に先行する番号である、ステップと、
    前記第1の番号に対応する前記書き込むべきデータ及び前記アドレス情報に第2の番号を付与するとともに、該情報をキャッシュに書き込むステップと
    を有することを特徴とするデータ受信方法。
  8. 前記カレント時間間隔番号を記録するステップをさらに有し、前記カレント時間間隔番号は、前記第2の番号を生成するために使用されることを特徴とする請求項7に記載の方法。
  9. ホストによって送信されたデータ読出し要求を受信するステップであって、前記データ読出し要求は前記受信したアドレス情報を有する、ステップと、
    前記受信したアドレス情報に対応する最新の番号が前記第2の番号であることを決定するステップと、
    前記第2の番号に対応する書き込むべきデータを前記ホストに送信するステップと
    をさらに有することを特徴とする請求項7に記載の方法。
  10. ホストによって送信される第1のデータ書込み要求を受信するように構成される受信モジュールであって、前記第1のデータ書込み要求は、書き込むべきデータ及びアドレス情報を伝送する、受信モジュールと、
    書き込むべきデータ及びアドレス情報に第1の番号を付与するとともに、第1の番号が付与された前記書き込むべきデータ及び前記アドレス情報をキャッシュに書き込み、第1の番号に対応する前記書き込むべきデータ及び前記アドレス情報を前記キャッシュから読み出すように構成される読出し及び書込みモジュールであって、前記第1の番号は、カレント時間間隔番号である、読出し及び書込みモジュールと、
    後続のデータ書込み要求において伝送される情報を識別するために、前記カレント時間間隔番号を変更するように構成されるカレント時間間隔番号マネージャと、
    前記書き込むべきデータ及び前記アドレス情報を第2のストレージデバイスに送信するように構成される送信モジュールと、
    を具備することを特徴とするストレージデバイス。
  11. 前記第1の番号は、現在の複製タスクを識別するために使用され、
    前記カレント時間間隔番号マネージャは、第2の番号を記録するようにさらに構成され、前記第2の番号は、前記現在の複製タスクの前の最新の完了した複製タスクに対応する番号であることを特徴とする請求項10に記載のストレージデバイス。
  12. 前記読出し及び書込みモジュールは、前記第2の番号の後であるとともに、前記第1の番号に先行する番号に対応する書き込むべきデータ及びアドレス情報を、前記キャッシュから読み出すようにさらに構成され、
    前記送信モジュールは、前記第2の番号の後であるとともに、前記第1の番号に先行する前記番号に対応する前記書き込むべきデータ及び前記アドレス情報を前記第2のストレージデバイスに送信するようにさらに構成されることを特徴とする請求項11に記載のストレージデバイス。
  13. 前記カレント時間間隔番号マネージャは、前記カレント時間間隔番号を記録するようにさらに構成され、前記カレント時間間隔番号は、前記第1の番号を生成するために使用されることを特徴とする請求項10に記載のストレージデバイス。
  14. 前記送信モジュールは、前記書き込むべきデータ及び前記アドレス情報に従って、第2のデータ書込み要求を生成するとともに、前記第2のストレージデバイスに前記第2のデータ書込み要求を送信するように特に構成されることを特徴とする請求項10に記載のストレージデバイス。
  15. 第1のストレージデバイスによって送信されたアドレス情報を受信するように構成される受信モジュールと、
    前記第1のストレージデバイスが故障していることが決定すると、前記アドレス情報に従って第2のストレージデバイスが、第1の番号に対応する書き込むべきデータを取得するように構成される探索モジュールであって、前記第1の番号に対応するアドレス情報が、前記受信したアドレス情報と同じであるとともに、前記第1の番号がカレント時間間隔番号に先行する番号である、探索モジュールと、
    前記第1の番号に対応する前記書き込むべきデータ及び前記アドレス情報に第2の番号を付与するとともに、該情報をキャッシュに書き込むように構成される書込みモジュールと
    を具備することを特徴とするストレージデバイス。
  16. 前記カレント時間間隔番号を記録するように構成されるカレント時間間隔番号マネージャをさらに具備し、前記カレント時間間隔番号は、前記第2の番号を生成するために使用されることを特徴とする請求項15に記載のストレージデバイス。
  17. 前記受信モジュールは、ホストによって送信されたデータ読出し要求を受信するようにさらに構成され、前記データ読出し要求は、前記受信したアドレス情報を有し、
    前記探索モジュールは、前記受信したアドレス情報に対応する最新の番号が前記第2の番号であることを決定するようにさらに構成され、
    前記ストレージデバイスは、送信モジュールをさらに具備し、前記送信モジュールは、前記第2の番号に対応する書き込むべきデータを前記ホストに送信するように構成されることを特徴とする請求項15に記載のストレージデバイス。
  18. プロセッサと、メモリと、通信バスとを具備するストレージデバイスであって、
    前記プロセッサ及び前記メモリは、前記通信バスを使用することによって通信し、
    前記メモリは、プログラムを格納するように構成され、
    前記プロセッサは、
    ホストによって送信される第1のデータ書込み要求を、第1のストレージデバイスによって受信するステップであって、前記第1のデータ書込み要求は、書き込むべきデータ及びアドレス情報を伝送する、ステップと、
    書き込むべきデータ及びアドレス情報に第1の番号を付与するとともに、第1の番号が付与された前記書き込むべきデータ及び前記アドレス情報をキャッシュに書き込むステップであって、前記第1の番号はカレント時間間隔番号である、ステップと、
    第1の番号に対応する前記書き込むべきデータ及び前記アドレス情報を、前記キャッシュから読み出すステップと、
    後続のデータ書込み要求において伝送される情報を識別するために、カレント時間間隔番号を変更するステップと、
    前記書き込むべきデータ及び前記アドレス情報を第2のストレージデバイスに送信するステップとを実施する前記プログラムを実行するように構成されることを特徴とするストレージデバイス。
  19. 前記第1の番号は、現在の複製タスクを識別するために使用され、
    前記プロセッサは、
    第2の番号を記録するようにさらに構成され、前記第2の番号は、前記現在の複製タスクの前の最新の完了した複製タスクに対応する番号であることを特徴とする請求項18に記載のストレージデバイス。
  20. 前記プロセッサは、前記第2の番号の後であるとともに、前記第1の番号に先行する番号に対応する書き込むべきデータ及びアドレス情報を、前記キャッシュから読み出し、
    前記第2の番号の後であるとともに、前記第1の番号に先行する前記番号に対応する前記書き込むべきデータ及び前記アドレス情報を前記第2のストレージデバイスに送信するようにさらに構成されることを特徴とする請求項19に記載のストレージデバイス。
  21. 前記プロセッサは、前記カレント時間間隔番号を記録するようにさらに構成され、前記カレント時間間隔番号は、前記第1の番号を生成するために使用されることを特徴とする請求項18に記載のストレージデバイス。
  22. 前記プロセッサは、前記書き込むべきデータ及び前記アドレス情報に従って第2のデータ書込み要求を生成し、前記第2のストレージデバイスに、前記第2のデータ書込み要求を送信するように特に構成されることを特徴とする請求項18に記載のストレージデバイス。
  23. 前記アドレス情報は、LBA(論理ブロックアドレス)を含み、
    前記プロセッサは、前記第2のストレージデバイスのデータボリュームのIDを取得し、前記第2のデータ書込み要求を生成するように特に構成され、前記第2のデータ書込み要求は、前記書き込むべきデータ、前記LBA、及び前記データボリュームのIDを含むことを特徴とする請求項22に記載のストレージデバイス。
  24. プロセッサと、メモリと、通信バスとを具備するストレージデバイスであって、
    前記プロセッサ及び前記メモリは、前記通信バスを使用することによって通信し、
    前記メモリは、プログラムを格納するように構成され、
    前記プロセッサは、
    第1のストレージデバイスによって送信されたアドレス情報を受信するステップと、
    前記第1のストレージデバイスが故障していることが決定すると、前記アドレス情報に従って第2のストレージデバイスによって、第1の番号に対応する書き込むべきデータを取得するステップであって、前記第1の番号に対応するアドレス情報が、前記受信したアドレス情報と同じであるとともに、前記第1の番号がカレント時間間隔番号に先行する番号である、ステップと、
    前記第1の番号に対応する前記書き込むべきデータ及び前記アドレス情報に第2の番号を付与するとともに、該情報をキャッシュに書き込むステップとを実施する前記プログラムを実行するように構成されることを特徴とするストレージデバイス。
  25. 前記プロセッサは、前記カレント時間間隔番号を記録するようにさらに構成され、前記カレント時間間隔番号は、前記第2の番号を生成するために使用されることを特徴とする請求項24に記載のストレージデバイス。
  26. 前記プロセッサは、ホストによって送信されたデータ読出し要求を受信するようにさらに構成され、前記データ読出し要求は、前記受信したアドレス情報を有し、
    前記プロセッサは、前記受信したアドレス情報に対応する最新の番号が前記第2の番号であることを決定し、前記ホストに前記第2の番号に対応する書き込むべきデータを送信するようにさらに構成される
    ことを特徴とする請求項24に記載のストレージデバイス。
  27. 現在の複製タスクがトリガされるとき、カレント時間間隔番号を第1のストレージデバイスによって読み出すステップと、
    第2の番号を読み出すステップであって、前記第2の番号は、前記現在の複製タスクに相互に関係する最新の完了した複製タスクに対応する番号である、ステップと、
    前記カレント時間間隔番号及び前記第2の番号に従って、第1の番号を決定するステップであって、前記第1の番号は、前記現在の複製タスクがトリガされるときのカレント時間間隔番号より前の番号であるとともに、前記第1の番号は、前記第2の番号より後の番号である、ステップと、
    キャッシュに格納されるとともに第1の番号に対応する複製されるべきデータ及び前記複製されるべきデータのアドレス情報を第2のストレージデバイスに複製するステップと
    を有することを特徴とするデータ複製方法。
  28. 前記現在の複製タスクに相互に関係する前記複製タスクは、前記現在の複製タスクと同じ複製関係に属する複製タスクと呼ばれ、
    前記現在の複製タスクがトリガされるとき、前記方法は、前記複製関係に対応する識別子を受信するステップをさらに有し、
    第2の番号を読み出す前記ステップは、前記識別子に従って前記第2の番号を読み出すステップを有することを特徴とする請求項27に記載の方法。
  29. 現在の複製タスクがトリガされる前に、
    前記方法は、第1のデータ書込み要求を受信するステップであって、前記第1のデータ書込み要求は、前記複製されるべきデータ及び前記複製されるべきデータのアドレスを有する、ステップと、
    前記複製されるべきデータ及び前記複製されるべきデータのアドレス情報に、前記第1の番号を付与するとともに、前記第1の番号が付与された前記複製されるべきデータ及び前記複製されるべきデータの前記アドレス情報を前記キャッシュに書き込むステップであって、前記第1の番号は、履歴時間期間番号である、ステップと
    をさらに有することを特徴とする請求項27に記載の方法。
  30. 前記カレント時間間隔番号は、前記履歴時間期間番号を変更することによって形成されることを特徴とする請求項29に記載の方法。
  31. キャッシュに格納されるとともに第1の番号に対応する複製されるべきデータ及び複製されるべきデータのアドレス情報を第2のストレージデバイスに複製する前記ステップは、
    前記アドレス情報が複数の番号に対応するとき、前記アドレス情報に対応する前記番号のうちの最新の番号が第1の番号であることを決定するステップと、
    前記キャッシュに格納されるとともに前記第1の番号に対応する前記複製すべきデータ及び前記複製すべきデータのアドレス情報を前記第2のストレージデバイスに複製するステップと
    を有することを特徴とする請求項27から30のいずれか一項に記載の方法。
  32. 第2のデータ書込み要求を受信するステップであって、前記第2のデータ書込み要求は、ターゲットデータ及び前記ターゲットデータのアドレス情報を有する、ステップと、
    前記ターゲットデータ及び前記ターゲットデータの前記アドレス情報に、第2の番号を付与するステップと、
    第3の番号が前記第1の番号と同じであるとき、前記ターゲットデータの前記アドレス情報が前記複製されるべきデータの前記アドレス情報と同じであるか否かを決定するステップと、
    前記ターゲットデータの前記アドレス情報が前記複製されるべきデータの前記アドレス情報と同じとき、前記キャッシュに格納された前記複製されるべきデータを前記ターゲットデータに置き換えるステップと、
    前記ターゲットデータの前記アドレス情報が、前記複製されるべきデータの前記アドレス情報と同じでないとき、前記第3の番号が加えられた後、前記ターゲットデータ及び前記ターゲットデータの前記アドレス情報を、前記キャッシュに書き込むステップと、
    をさらに有することを特徴とする請求項29に記載の方法。
  33. 前記第3の番号が、前記第1の番号と同じでないとき、前記第3の番号が付与された後に、前記ターゲットデータ及び前記ターゲットデータの前記アドレス情報を前記キャッシュに書き込むステップをさらに有することを特徴とする請求項32に記載の方法。
  34. 現在の複製タスクがトリガされるときにカレント時間間隔番号を読み出すとともに、第2の番号を読み出すように構成される読出し及び書込みモジュールであって、前記第2の番号は、前記現在の複製タスクに相互に関係する最新の完了した複製タスクに対応する番号である、読出し及び書込みモジュールと、
    前記カレント時間間隔番号及び前記第2の番号に従って、第1の番号を決定するように構成される決定モジュールであって、前記第1の番号は、前記現在の複製タスクがトリガされるときのカレント時間間隔番号より前の番号であるとともに、前記第1の番号は、前記第2の番号より後の番号である、決定モジュールと、
    キャッシュに格納されるとともに第1の番号に対応する複製されるべきデータ及び前記複製されるべきデータのアドレス情報を第2のストレージデバイスに複製するように構成される複製モジュールと
    を具備することを特徴とするストレージデバイス。
  35. 前記現在の複製タスクに相互に関係する前記複製タスクは、前記現在の複製タスクと同じ複製関係に属する複製タスクと呼ばれ、
    前記ストレージデバイスは、受信モジュールをさらに具備し、
    前記受信モジュールは、前記複製関係に対応する識別子を受信するように構成され、
    前記読出し及び書込みモジュールは、前記識別子に従って前記第2の番号を読み出すように特に構成されることを特徴とする請求項34に記載のストレージデバイス。
  36. 前記受信モジュールは、現在の複製タスクがトリガされる前に、第1のデータ書込み要求を受信するようにさらに構成され、
    前記第1のデータ書込み要求は、前記複製されるべきデータ及び前記複製されるべきデータのアドレスを有し、
    前記読出し及び書込みモジュールは、前記複製されるべきデータ及び前記複製されるべきデータのアドレス情報に、前記第1の番号を付与するとともに、前記第1の番号が付与された前記複製されるべきデータ及び前記複製されるべきデータの前記アドレス情報を前記キャッシュに書き込むようにさらに構成され、前記第1の番号は、履歴時間期間番号であることを特徴とする請求項35に記載のストレージデバイス。
  37. 前記カレント時間間隔番号は、前記履歴時間期間番号を変更することによって形成されることを特徴とする請求項36に記載のストレージデバイス。
  38. 前記複製モジュールは、前記アドレス情報が複数の番号に対応するとき、前記アドレス情報に対応する前記番号のうちの最新の番号を第1の番号として決定するとともに、前記キャッシュに格納されるとともに前記第1の番号に対応する前記複製すべきデータ及び前記複製すべきデータのアドレス情報を前記第2のストレージデバイスに複製するように特に構成されることを特徴とする請求項34から37のいずれか一項に記載のストレージデバイス。
  39. プロセッサと、メモリと、通信バスとを具備するストレージデバイスであって、
    前記プロセッサ及び前記メモリは、前記通信バスを使用することによって通信し、
    前記メモリは、プログラムを格納するように構成され、
    前記プロセッサは、請求項27から33のいずれか一項に記載の方法を実施するために、前記プログラムを実行するように構成されることを特徴するストレージデバイス。
JP2015527787A 2013-07-26 2013-11-15 データ送信方法、データ受信方法、及びストレージデバイス Active JP6344798B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CNPCT/CN2013/080203 2013-07-26
PCT/CN2013/080203 WO2015010327A1 (zh) 2013-07-26 2013-07-26 数据发送方法、数据接收方法和存储设备
PCT/CN2013/087229 WO2015010394A1 (zh) 2013-07-26 2013-11-15 数据发送方法、数据接收方法和存储设备

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2017233306A Division JP2018041506A (ja) 2013-07-26 2017-12-05 データ送信方法、データ受信方法、及びストレージデバイス

Publications (2)

Publication Number Publication Date
JP2015527670A true JP2015527670A (ja) 2015-09-17
JP6344798B2 JP6344798B2 (ja) 2018-06-20

Family

ID=50253404

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2015527787A Active JP6344798B2 (ja) 2013-07-26 2013-11-15 データ送信方法、データ受信方法、及びストレージデバイス
JP2017233306A Pending JP2018041506A (ja) 2013-07-26 2017-12-05 データ送信方法、データ受信方法、及びストレージデバイス

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2017233306A Pending JP2018041506A (ja) 2013-07-26 2017-12-05 データ送信方法、データ受信方法、及びストレージデバイス

Country Status (13)

Country Link
US (2) US9311191B2 (ja)
EP (2) EP2849048B1 (ja)
JP (2) JP6344798B2 (ja)
KR (1) KR101602312B1 (ja)
CN (1) CN103649901A (ja)
AU (2) AU2013385792B2 (ja)
CA (1) CA2868247C (ja)
DK (1) DK3179359T3 (ja)
ES (2) ES2610784T3 (ja)
HU (1) HUE037094T2 (ja)
NO (1) NO3179359T3 (ja)
RU (1) RU2596585C2 (ja)
WO (2) WO2015010327A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021501398A (ja) * 2017-10-31 2021-01-14 アビニシオ テクノロジー エルエルシー 時間間隔カウンタを使用してコンピュータクラスタを管理すること

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2868247C (en) * 2013-07-26 2017-04-04 Ji Ouyang Data sending method, data receiving method, and storage device
CN103488431A (zh) * 2013-09-10 2014-01-01 华为技术有限公司 一种写数据方法及存储设备
US9552248B2 (en) 2014-12-11 2017-01-24 Pure Storage, Inc. Cloud alert to replica
US10545987B2 (en) * 2014-12-19 2020-01-28 Pure Storage, Inc. Replication to the cloud
CN106407040B (zh) 2016-09-05 2019-05-24 华为技术有限公司 一种远程数据复制方法及系统
CN107844259B (zh) * 2016-09-18 2020-06-16 华为技术有限公司 数据访问方法、路由装置和存储系统
CN112068992A (zh) * 2016-10-28 2020-12-11 华为技术有限公司 一种远程数据复制方法、存储设备及存储系统
CN108076090B (zh) * 2016-11-11 2021-05-18 华为技术有限公司 数据处理方法和存储管理系统
CN106598768B (zh) * 2016-11-28 2020-02-14 华为技术有限公司 一种处理写请求的方法、装置和数据中心
CN108449277B (zh) * 2016-12-12 2020-07-24 华为技术有限公司 一种报文发送方法及装置
CN106776369B (zh) * 2016-12-12 2020-07-24 苏州浪潮智能科技有限公司 一种缓存镜像的方法及装置
CN108475254A (zh) * 2016-12-16 2018-08-31 华为技术有限公司 对象复制方法、装置及对象存储设备
CN106776147B (zh) * 2016-12-29 2020-10-09 华为技术有限公司 一种差异数据备份方法和差异数据备份装置
CN107122261B (zh) * 2017-04-18 2020-04-07 杭州宏杉科技股份有限公司 一种存储设备的数据读写方法及装置
CN107577421A (zh) * 2017-07-31 2018-01-12 深圳市牛鼎丰科技有限公司 智能设备扩容方法、装置、存储介质和计算机设备
CN108052294B (zh) * 2017-12-26 2021-05-28 郑州云海信息技术有限公司 一种分布式存储系统的修改写方法和修改写系统
US11216370B2 (en) * 2018-02-20 2022-01-04 Medtronic, Inc. Methods and devices that utilize hardware to move blocks of operating parameter data from memory to a register set
US10642521B2 (en) * 2018-05-11 2020-05-05 International Business Machines Corporation Scaling distributed queues in a distributed storage network
CN109032527B (zh) * 2018-07-27 2021-07-27 深圳华大北斗科技有限公司 数据处理方法、存储介质及计算机设备
US10942725B2 (en) * 2018-07-30 2021-03-09 Ford Global Technologies, Llc Over the air Ecu update
US11038961B2 (en) * 2018-10-26 2021-06-15 Western Digital Technologies, Inc. Ethernet in data storage device
CN109697035B (zh) * 2018-12-24 2022-03-29 深圳市明微电子股份有限公司 级联设备的地址数据的写入方法、写入设备及存储介质
US11693790B2 (en) * 2019-05-24 2023-07-04 Texas Instmments Incorporated Methods and apparatus to facilitate write miss caching in cache system
US11119862B2 (en) * 2019-10-11 2021-09-14 Seagate Technology Llc Delta information volumes to enable chained replication of data by uploading snapshots of data to cloud
WO2021097802A1 (zh) 2019-11-22 2021-05-27 华为技术有限公司 处理非缓存写数据请求的方法、缓存器和节点
US11755230B2 (en) * 2021-04-22 2023-09-12 EMC IP Holding Company LLC Asynchronous remote replication of snapshots

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07244597A (ja) * 1994-02-22 1995-09-19 Internatl Business Mach Corp <Ibm> 災害復旧機能を提供するために整合性グループを形成する方法および関連するシステム
JP2005128861A (ja) * 2003-10-24 2005-05-19 Hitachi Ltd リモートサイト及び/又はローカルサイトのストレージシステム及びリモートサイトストレージシステムのファイル参照方法
JP2006099495A (ja) * 2004-09-30 2006-04-13 Hitachi Ltd リモートコピーシステムおよびリモートコピー方法
JP2007066154A (ja) * 2005-09-01 2007-03-15 Hitachi Ltd データをコピーして複数の記憶装置に格納するストレージシステム
US20080028009A1 (en) * 2006-07-27 2008-01-31 David Ngo Systems and methods for continuous data replication
JP2012003621A (ja) * 2010-06-18 2012-01-05 Nec System Technologies Ltd ディスクアレイ装置間のリモートコピー処理システム、処理方法、及び処理用プログラム

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5758359A (en) * 1996-10-24 1998-05-26 Digital Equipment Corporation Method and apparatus for performing retroactive backups in a computer system
US6081875A (en) 1997-05-19 2000-06-27 Emc Corporation Apparatus and method for backup of a disk storage system
JP2000137638A (ja) * 1998-10-29 2000-05-16 Hitachi Ltd 情報記憶システム
US6526418B1 (en) * 1999-12-16 2003-02-25 Livevault Corporation Systems and methods for backing up data files
US6675177B1 (en) * 2000-06-21 2004-01-06 Teradactyl, Llc Method and system for backing up digital data
US6988165B2 (en) * 2002-05-20 2006-01-17 Pervasive Software, Inc. System and method for intelligent write management of disk pages in cache checkpoint operations
JP2004013367A (ja) * 2002-06-05 2004-01-15 Hitachi Ltd データ記憶サブシステム
US7761421B2 (en) 2003-05-16 2010-07-20 Hewlett-Packard Development Company, L.P. Read, write, and recovery operations for replicated data
JP2005309550A (ja) * 2004-04-19 2005-11-04 Hitachi Ltd リモートコピー方法及びリモートコピーシステム
US7054883B2 (en) * 2003-12-01 2006-05-30 Emc Corporation Virtual ordered writes for multiple storage devices
EP1577782B1 (en) * 2004-02-12 2010-04-28 Irdeto Access B.V. Method and system of external data storage
JP4455927B2 (ja) * 2004-04-22 2010-04-21 株式会社日立製作所 バックアップ処理方法及び実施装置並びに処理プログラム
CN100359476C (zh) * 2004-06-03 2008-01-02 华为技术有限公司 一种快照备份的方法
JP4519563B2 (ja) * 2004-08-04 2010-08-04 株式会社日立製作所 記憶システム及びデータ処理システム
US7519851B2 (en) * 2005-02-08 2009-04-14 Hitachi, Ltd. Apparatus for replicating volumes between heterogenous storage systems
US8127174B1 (en) * 2005-02-28 2012-02-28 Symantec Operating Corporation Method and apparatus for performing transparent in-memory checkpointing
US7310716B2 (en) * 2005-03-04 2007-12-18 Emc Corporation Techniques for producing a consistent copy of source data at a target location
US8005795B2 (en) * 2005-03-04 2011-08-23 Emc Corporation Techniques for recording file operations and consistency points for producing a consistent copy
ES2582364T3 (es) * 2005-12-19 2016-09-12 Commvault Systems, Inc. Sistemas y métodos para realizar replicación de datos
US7761663B2 (en) * 2006-02-16 2010-07-20 Hewlett-Packard Development Company, L.P. Operating a replicated cache that includes receiving confirmation that a flush operation was initiated
JP2007323507A (ja) * 2006-06-02 2007-12-13 Hitachi Ltd 記憶システム並びにこれを用いたデータの処理方法
US8150805B1 (en) * 2006-06-30 2012-04-03 Symantec Operating Corporation Consistency interval marker assisted in-band commands in distributed systems
US7885923B1 (en) * 2006-06-30 2011-02-08 Symantec Operating Corporation On demand consistency checkpoints for temporal volumes within consistency interval marker based replication
CN100485629C (zh) * 2006-08-15 2009-05-06 英业达股份有限公司 群聚式计算机系统高速缓存数据备份处理方法及系统
GB0616257D0 (en) * 2006-08-16 2006-09-27 Ibm Storage management system for preserving consistency of remote copy data
US8145865B1 (en) * 2006-09-29 2012-03-27 Emc Corporation Virtual ordered writes spillover mechanism
KR20080033763A (ko) 2006-10-13 2008-04-17 삼성전자주식회사 와이브로 네트워크에서의 상호인증을 통한 핸드오버 방법및 그 시스템
US8768890B2 (en) * 2007-03-14 2014-07-01 Microsoft Corporation Delaying database writes for database consistency
JP4964714B2 (ja) * 2007-09-05 2012-07-04 株式会社日立製作所 ストレージ装置及びデータの管理方法
US8073922B2 (en) * 2007-07-27 2011-12-06 Twinstrata, Inc System and method for remote asynchronous data replication
US8140772B1 (en) * 2007-11-06 2012-03-20 Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations System and method for maintaining redundant storages coherent using sliding windows of eager execution transactions
CN101634968B (zh) * 2008-01-17 2011-12-14 四川格瑞特科技有限公司 一种用于备份系统的海量数据高速缓存器的构造方法
CN105138435B (zh) 2008-08-08 2019-06-04 亚马逊技术有限公司 向执行中的程序提供对非本地块数据存储装置的可靠访问
US8250031B2 (en) 2008-08-26 2012-08-21 Hitachi, Ltd. Low traffic failback remote copy
US8767934B2 (en) 2008-09-03 2014-07-01 Avaya Inc. Associating a topic with a telecommunications address
US8762642B2 (en) * 2009-01-30 2014-06-24 Twinstrata Inc System and method for secure and reliable multi-cloud data replication
US8793288B2 (en) * 2009-12-16 2014-07-29 Sap Ag Online access to database snapshots
CN101751230B (zh) * 2009-12-29 2011-11-09 成都市华为赛门铁克科技有限公司 标定i/o数据的时间戳的设备及方法
US9389892B2 (en) * 2010-03-17 2016-07-12 Zerto Ltd. Multiple points in time disk images for disaster recovery
CN101901173A (zh) * 2010-07-22 2010-12-01 上海骊畅信息科技有限公司 一种灾备系统及灾备方法
US8443149B2 (en) * 2010-09-01 2013-05-14 International Business Machines Corporation Evicting data from a cache via a batch file
US8255637B2 (en) * 2010-09-27 2012-08-28 Infinidat Ltd. Mass storage system and method of operating using consistency checkpoints and destaging
US8667236B2 (en) * 2010-09-29 2014-03-04 Hewlett-Packard Development Company, L.P. Host based write ordering for asynchronous replication
US9792941B2 (en) * 2011-03-23 2017-10-17 Stormagic Limited Method and system for data replication
CN102306115B (zh) * 2011-05-20 2014-01-08 华为数字技术(成都)有限公司 异步远程复制方法、系统及设备
CN103092526B (zh) 2011-10-31 2016-03-30 国际商业机器公司 在存储设备间进行数据迁移的方法和装置
US8806281B1 (en) * 2012-01-23 2014-08-12 Symantec Corporation Systems and methods for displaying backup-status information for computing resources
JP6183876B2 (ja) * 2012-03-30 2017-08-23 日本電気株式会社 レプリケーション装置、レプリケーション方法及びプログラム
US20130339569A1 (en) * 2012-06-14 2013-12-19 Infinidat Ltd. Storage System and Method for Operating Thereof
US10318495B2 (en) * 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
US9311014B2 (en) * 2012-11-29 2016-04-12 Infinidat Ltd. Storage system and methods of mapping addresses of snapshot families
CA2868247C (en) * 2013-07-26 2017-04-04 Ji Ouyang Data sending method, data receiving method, and storage device

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07244597A (ja) * 1994-02-22 1995-09-19 Internatl Business Mach Corp <Ibm> 災害復旧機能を提供するために整合性グループを形成する方法および関連するシステム
JP2005128861A (ja) * 2003-10-24 2005-05-19 Hitachi Ltd リモートサイト及び/又はローカルサイトのストレージシステム及びリモートサイトストレージシステムのファイル参照方法
JP2006099495A (ja) * 2004-09-30 2006-04-13 Hitachi Ltd リモートコピーシステムおよびリモートコピー方法
JP2007066154A (ja) * 2005-09-01 2007-03-15 Hitachi Ltd データをコピーして複数の記憶装置に格納するストレージシステム
US20080028009A1 (en) * 2006-07-27 2008-01-31 David Ngo Systems and methods for continuous data replication
JP2012003621A (ja) * 2010-06-18 2012-01-05 Nec System Technologies Ltd ディスクアレイ装置間のリモートコピー処理システム、処理方法、及び処理用プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
高橋 直也 NAOYA TAKAHASHI: "災害対策用ディスク間遠隔コピー方式の改良 An Improved Inter-Disk Remote Copying Method to Cope with", 電子情報通信学会論文誌 (J87−D−I) 第6号 THE IEICE TRANSACTIONS ON INFORMATION AND SYSTEM, vol. 第J87-D-I巻, JPN6016004796, 1 June 2004 (2004-06-01), JP, pages 675 - 692, ISSN: 0003252829 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021501398A (ja) * 2017-10-31 2021-01-14 アビニシオ テクノロジー エルエルシー 時間間隔カウンタを使用してコンピュータクラスタを管理すること
JP7314127B2 (ja) 2017-10-31 2023-07-25 アビニシオ テクノロジー エルエルシー 時間間隔カウンタを使用してコンピュータクラスタを管理すること

Also Published As

Publication number Publication date
ES2610784T3 (es) 2017-05-03
DK3179359T3 (en) 2018-06-14
RU2014145359A (ru) 2016-05-27
US20160188240A1 (en) 2016-06-30
KR101602312B1 (ko) 2016-03-21
WO2015010327A1 (zh) 2015-01-29
AU2013385792A1 (en) 2015-02-12
EP2849048B1 (en) 2016-10-19
KR20150035507A (ko) 2015-04-06
CA2868247C (en) 2017-04-04
US10108367B2 (en) 2018-10-23
CA2868247A1 (en) 2015-01-26
RU2596585C2 (ru) 2016-09-10
EP2849048A4 (en) 2015-05-27
JP2018041506A (ja) 2018-03-15
JP6344798B2 (ja) 2018-06-20
ES2666580T3 (es) 2018-05-07
EP3179359B1 (en) 2018-03-07
HUE037094T2 (hu) 2018-08-28
NO3179359T3 (ja) 2018-08-04
CN103649901A (zh) 2014-03-19
EP3179359A1 (en) 2017-06-14
AU2013385792B2 (en) 2016-04-14
AU2016203273A1 (en) 2016-06-09
US20150113317A1 (en) 2015-04-23
US9311191B2 (en) 2016-04-12
WO2015010394A1 (zh) 2015-01-29
EP2849048A1 (en) 2015-03-18

Similar Documents

Publication Publication Date Title
JP6344798B2 (ja) データ送信方法、データ受信方法、及びストレージデバイス
US11734306B2 (en) Data replication method and storage system
US11461202B2 (en) Remote data replication method and system
US7302536B2 (en) Method and apparatus for managing replication volumes
US8285824B2 (en) Storage system and data replication method that refuses one or more requests for changing the first logical configuration information until the first storage apparatus and second storage apparatus are synchronized
JP2006023889A (ja) リモートコピーシステム及び記憶装置システム
JP2004252686A (ja) 情報処理システム
CN107133132B (zh) 数据发送方法、数据接收方法和存储设备
WO2015085529A1 (zh) 数据复制方法、数据复制装置和存储设备
JP2005135405A (ja) リモートミラーキャッシュ内の論理オブジェクトの完全性を保つシステム
US10877674B2 (en) Determining layout templates identifying storage drives
WO2018076633A1 (zh) 一种远程数据复制方法、存储设备及存储系统
JPWO2015198449A1 (ja) ストレージシステム
WO2017037878A1 (ja) ストレージシステム及び検証方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160509

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160920

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170118

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20170124

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20170217

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180517

R150 Certificate of patent or registration of utility model

Ref document number: 6344798

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250