JP4398463B2 - Method, system, and program for incremental virtual copy - Google Patents

Method, system, and program for incremental virtual copy Download PDF

Info

Publication number
JP4398463B2
JP4398463B2 JP2006516135A JP2006516135A JP4398463B2 JP 4398463 B2 JP4398463 B2 JP 4398463B2 JP 2006516135 A JP2006516135 A JP 2006516135A JP 2006516135 A JP2006516135 A JP 2006516135A JP 4398463 B2 JP4398463 B2 JP 4398463B2
Authority
JP
Japan
Prior art keywords
target
source
data block
storage
indicator
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.)
Expired - Fee Related
Application number
JP2006516135A
Other languages
Japanese (ja)
Other versions
JP2006527873A5 (en
JP2006527873A (en
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 JP2006527873A publication Critical patent/JP2006527873A/en
Publication of JP2006527873A5 publication Critical patent/JP2006527873A5/ja
Application granted granted Critical
Publication of JP4398463B2 publication Critical patent/JP4398463B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/2082Data synchronisation
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99954Version management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

Disclosed is a technique for reducing an amount of data transferred. A first indicator is maintained for each source block of data to indicate whether the source block of data has been updated in source storage since the source block of data was last transferred to target storage. A second indicator is maintained for each target block of data in target storage to indicate whether the target block of data has been updated in target storage since the target block of data was overwritten by a corresponding source block of data. When transferring data from the source storage to the target storage, each source block of data for which a first indicator has been set to indicate that the source block of data has been updated is transferred and each source block of data that corresponds to a target block of data for which a second indicator has been set to indicate that the target block of data has been updated is transferred.

Description

本発明は、インクリメンタル仮想コピーに向けられる。   The present invention is directed to incremental virtual copying.

コンピューティング・システムは、多くの場合、データ処理を行い、アプリケーション・プログラムを稼動させるための1つ又はそれ以上のホスト・コンピュータ(「ホスト」)、データを格納する直接アクセス型格納デバイス(DASD)、及び、該ホストと該DASDとの間のデータ転送を制御するための格納コントローラを含む。コントロール・ユニット又は格納ディレクタとも呼ばれる格納コントローラは、ループ・アーキテクチャにおいて接続される幾多のハードディスク・ドライブで構成された格納スペースに対するアクセスを管理し、他の場合においては直接アクセス型格納デバイス(DASD)と呼ばれる。ホストは、格納コントローラを通して、格納スペースに対する入力/出力(I/O)要求を通信することができる。   Computing systems often process one or more host computers (“hosts”) for processing data and running application programs, direct access storage devices (DASD) for storing data, And a storage controller for controlling data transfer between the host and the DASD. A storage controller, also called a control unit or storage director, manages access to storage space consisting of a number of hard disk drives connected in a loop architecture, and in other cases is called a direct access storage device (DASD) . The host can communicate input / output (I / O) requests for the storage space through the storage controller.

多くのシステムにおいて、DASDのような1つの格納デバイス上のデータを同じ又は別の格納デバイスにコピーして、データ・ボリュームに対するアクセスを2つの異なるデバイスから与えるようにすることができる。ポイント・イン・タイム・コピーは、全てのデータをソース・ボリュームからターゲット・ボリュームに物理的にコピーして、該ターゲット・ボリュームがポイント・イン・タイム時点のデータのコピーを有するようにすることを含む。ポイント・イン・タイム・コピーは、さらに、論理的にデータのコピーを作成し、次いで、必要な時にデータをさらにコピー・オバーするだけで、事実上、物理的なコピー動作を遅らせることができる。この論理的コピー動作が行われると、ターゲット・ボリューム及びソース・ボリュームがアクセス不能になる時間を最小にすることができる。   In many systems, data on one storage device, such as DASD, can be copied to the same or another storage device so that access to the data volume is provided from two different devices. Point-in-time copying is a physical copy of all data from a source volume to a target volume, so that the target volume has a copy of the data at the point-in-time. Including. Point-in-time copying can effectively delay the physical copying operation by simply making a logical copy of the data and then only copying over the data when needed. When this logical copy operation is performed, the time during which the target volume and the source volume are inaccessible can be minimized.

多数の直接アクセス格納デバイス(DASD)サブシステムが、「高速複製機能」とも呼ばれる「即時仮想コピー」動作を行うことができる。即時仮想コピー動作は、関連性テーブルのようなメタデータ又はポインタを修正し、ソース・データ・オブジェクトをオリジナル及びコピーの両方として扱うことによって行われる。ホストのコピー要求に応答して、格納サブシステムは、如何なるデータの物理的コピーも作成することなく、直ちにコピーの作成を報告する。「仮想」コピーだけが作成され、付加的な物理的コピーの不存在は、ホストには全く知られない。   Many direct access storage device (DASD) subsystems can perform “instant virtual copy” operations, also called “fast replication features”. An immediate virtual copy operation is performed by modifying metadata or pointers, such as an association table, and treating the source data object as both an original and a copy. In response to a host copy request, the storage subsystem immediately reports the creation of a copy without creating a physical copy of any data. Only a “virtual” copy is created and the absence of an additional physical copy is completely unknown to the host.

後に格納システムがオリジナル又はコピーの更新を受信すると、更新が別個に格納され、更新されたデータ・オブジェクトに対して相互参照が行われるだけである。この時点で、オリジナルのデータ・オブジェクトとコピーのデータ・オブジェクトの分化が始まる。最初の利点は、即時仮想コピーが殆ど瞬間的に行われ、通常の物理コピー動作よりもずっと速く完了するという点である。このことにより、ホスト及び格納サブシステムが解放され、他のタスクを実行することが可能になる。ホスト又は格納サブシステムは、バックグラウンド処理において又は別の機会に、オリジナルのデータ・オブジェクトの実際の物理的コピーを作成することさえ可能である。   If the storage system later receives an original or copy update, the update is stored separately and only cross-referenced to the updated data object. At this point, the differentiation of the original data object and the copy data object begins. The first advantage is that immediate virtual copy occurs almost instantaneously and completes much faster than normal physical copy operations. This frees the host and storage subsystem and allows other tasks to be performed. The host or storage subsystem can even make an actual physical copy of the original data object, either in background processing or on another occasion.

1つのこのような即時仮想コピー動作は、FlashCopy(商標)動作として知られている。FlashCopy(商標)動作は、同じ又は異なるデバイス上のソース・ボリュームとターゲット・ボリュームとの間の論理的ポイント・イン・タイム関連性を確立することを含む。FlashCopy(商標)動作は、ターゲット・ディスク上におけるFlashCopy(商標)関連性内のトラックの位置が固められるまで、該トラックがソース・ディスク上に常駐することを保証する。関連性テーブルを用いて、サブシステムにおける全ての既存のFlashCopy(商標)関連性についての情報を維持する。FlashCopy(商標)関連性の確立段階においては、1つのエントリが、確立されているFlashCopy(商標)に参加するソース及びターゲットについて、ソース及びターゲットの関連性テーブルに記録される。各々の付加されたエントリは、FlashCopy(商標)関連性に関する、全ての要求される情報を維持する。関連性についての両方のエントリは、ソース領域からの全てのFlashCopy(商標)トラックがターゲット領域に物理的にコピーされるか、又は、取下げコマンドが受信された場合に、関連性テーブルから除去される。場合によっては、全てのトラックがソース領域からターゲット領域にコピーされても、関連性は持続する。   One such immediate virtual copy operation is known as a FlashCopy ™ operation. The FlashCopy ™ operation involves establishing a logical point-in-time relationship between a source volume and a target volume on the same or different devices. The FlashCopy ™ operation ensures that the track resides on the source disk until the position of the track in the FlashCopy ™ association on the target disk is fixed. A relationship table is used to maintain information about all existing FlashCopy ™ relationships in the subsystem. In the FlashCopy ™ relationship establishment phase, an entry is recorded in the source and target relationship table for the sources and targets that participate in the established FlashCopy ™. Each appended entry maintains all the required information regarding the FlashCopy ™ relevance. Both entries for relevance are removed from the relevancy table when all FlashCopy ™ tracks from the source area are physically copied to the target area or a withdrawal command is received. . In some cases, the relationship persists even if all tracks are copied from the source area to the target area.

ターゲットの関連性テーブルは、さらに、FlashCopy(商標)関連性に含まれるどのトラックが、まだコピーされておらず、したがって、保護トラックであるかを識別するビットマップを含む。ターゲット・デバイスにおける各々のトラックは、ビットマップにおいて1ビットで表される。ターゲット・ビットは、対応するトラックがFlashCopy(商標)関連性のターゲット・トラックとして確立された場合に設定される。ソース又はターゲット・デバイス上への書き込み又はバックグラウンドのコピー・タスクのために、対応するトラックがソース位置からコピーされ、ターゲット・デバイスにデステージされた場合に、ターゲット・ビットが再設定される。   The target association table further includes a bitmap that identifies which tracks included in the FlashCopy ™ association have not yet been copied and are therefore protected tracks. Each track in the target device is represented by one bit in the bitmap. The target bit is set when the corresponding track is established as a FlashCopy (TM) related target track. The target bit is reset when the corresponding track is copied from the source location and destaged to the target device for a write or background copy task on the source or target device.

従来技術においては、FlashCopy(商標)動作中の論理的なポイント・イン・タイム関連性の確立の一部として、FlashCopy(商標)関連性に含まれるソース・キャッシュ内の全てのトラックは、物理的なソース・ボリューム、例えば、ソースDASDにデステージしなければならず、FlashCopy(商標)に含まれるターゲット・キャッシュ内の全てのトラックは廃棄されなければならない。   In the prior art, as part of establishing a logical point-in-time relationship during FlashCopy ™ operation, all tracks in the source cache included in the FlashCopy ™ relationship are physically A new source volume, eg source DASD, must be destaged and all tracks in the target cache contained in FlashCopy ™ must be discarded.

論理的関連性が確立されると、ホストは、次いで、ソース・ボリューム及びターゲット・ボリューム上のデータに即時アクセスすることができ、該データは、バックグラウンド動作の一部としてコピーされ得る。トラックがFlashCopy(商標)関連性におけるターゲットであり、キャッシュにはない場合における該トラックに対する読み取りは、ステージ・インターセプトをトリガし、ソース・トラックがまだコピーされておらず、ターゲット・キャッシュからトラックにアクセスが与えられる前である場合に、要求されたターゲット・トラックに対応するソース・トラックが、ターゲット・キャッシュにステージされるようにする。このことは、ターゲットが、FlashCopy(商標)動作のポイント・イン・タイムにおいて存在したソースからのコピーを有することを確実にする。さらに、コピー・オバーされていないソース・デバイス上のトラックに対するどのような書き込みも、デステージ・インターセプトをトリガし、ソース・デバイス上のトラックが、ターゲット・デバイスにコピーされるようにする。   Once the logical association is established, the host can then immediately access the data on the source and target volumes, which can be copied as part of the background operation. A read on a track when the track is a target in FlashCopy ™ relevance and not in the cache triggers a stage intercept, the source track has not yet been copied and the track is accessed from the target cache The source track corresponding to the requested target track is staged in the target cache. This ensures that the target has a copy from the source that existed at the point of time of the FlashCopy ™ operation. In addition, any write to a track on the source device that has not been copied over triggers a destage intercept, causing the track on the source device to be copied to the target device.

即時仮想コピー技術は、フォアグラウンド処理を中断又は減速することなく、データの複製コピーを迅速に(少なくとも部分的に)作成するために開発されたものである。FlashCopy(商標)動作のような即時仮想コピー技術は、ポイント・イン・タイムのコピー・ツールを提供する。即時仮想コピー技術は、例えば、データ・バックアップ、データ・マイグレーション、データ・マイニング、試験等を含む種々の用途に用いることができる。例えば、ソース・データの物理的「バックアップ」コピーの作成に即時仮想コピー技術を用い、障害回復を助けることができる。   Instant virtual copy technology has been developed to quickly (at least partially) create duplicate copies of data without interrupting or slowing down foreground processing. Immediate virtual copy technology such as FlashCopy ™ operation provides a point-in-time copy tool. The immediate virtual copy technology can be used for various applications including, for example, data backup, data migration, data mining, testing, and the like. For example, immediate virtual copy technology can be used to create a physical “backup” copy of the source data to aid in disaster recovery.

即時仮想コピー技術は大量のデータのコピーに対して有用であるが、従来型の即時仮想コピー技術を改善することもできる。特に、当該技術分野において、大量のデータを物理的にコピーすることを回避する、改善された即時仮想コピー技術に対する必要性が存在する。   Although the immediate virtual copy technology is useful for copying a large amount of data, the conventional immediate virtual copy technology can also be improved. In particular, there is a need in the art for improved instant virtual copy technology that avoids physically copying large amounts of data.

第1の側面において、本発明は、ソース・データ・ブロックが最後にターゲット格納部に転送されたとき以降にソース格納部においてソース・データ・ブロックが更新されたかどうかを示す、各ソース・データ・ブロックについての第1のインジケータを維持するステップと、ターゲット・データ・ブロックが対応するソース・データ・ブロックによって上書きされたとき以降にターゲット格納部においてターゲット・データ・ブロックが更新されたかどうかを示す、ターゲット格納部内の各ターゲット・データ・ブロックについての第2のインジケータを維持するステップと、ソース格納部からターゲット格納部にデータを転送する時に、ソース・データ・ブロックが更新されたことを示すように第1のインジケータが設定された、各ソース・データ・ブロックを転送し、かつ、ターゲット・データ・ブロックが更新されたことを示すように第2のインジケータが設定された、ターゲット・データ・ブロックに対応する各ソース・データ・ブロックを転送するステップとを含む、転送されるデータ量を減少させる方法を提供する。   In a first aspect, the invention provides for each source data block to indicate whether the source data block has been updated in the source store since the last time the source data block was transferred to the target store. Maintaining a first indicator for the block and indicating whether the target data block has been updated in the target store since the target data block was overwritten by the corresponding source data block; Maintaining a second indicator for each target data block in the target store and indicating that the source data block has been updated when transferring data from the source store to the target store Each saw with the first indicator set Transfer each source data block corresponding to the target data block with the second indicator set to transfer the data block and to indicate that the target data block has been updated A method for reducing the amount of data transferred.

本方法は、ステージ動作のために、対応するソース・データ・ブロック又はターゲット・データ・ブロックが取り出されるべきかどうかを示す、各ターゲット・データ・ブロックについての第3のインジケータを維持するステップをさらに含むことが好ましい。   The method further comprises maintaining a third indicator for each target data block indicating whether the corresponding source data block or target data block should be retrieved for stage operation. It is preferable to include.

本方法は、ソース・データ・ブロックがターゲット格納部にコピーされた時に、ターゲット・データ・ブロックについての第3のインジケータを更新するステップをさらに含むことが好ましい。   The method preferably further comprises the step of updating a third indicator for the target data block when the source data block is copied to the target store.

本方法は、インクリメンタル仮想コピー動作を受信するステップと、ソース・データ・ブロックについての第1のインジケータ及び該ソース・データ・ブロックに対応するターゲット・データ・ブロックについての第2のインジケータに基づいて、各ターゲット・データ・ブロックについての第3のインジケータを更新するステップとをさらに含み、ここで、ソース格納部からターゲット格納部にデータを転送することは、ソース・データ・ブロックがターゲット格納部に転送されるべきであることを第3のインジケータが示している、各ソース・データ・ブロックを転送することを含むことが好ましい。   The method is based on receiving an incremental virtual copy operation, a first indicator for a source data block and a second indicator for a target data block corresponding to the source data block, Updating a third indicator for each target data block, wherein transferring data from the source store to the target store is transferred from the source data block to the target store. Preferably, it includes transferring each source data block, where the third indicator indicates that it should be done.

本方法は、インクリメンタル仮想コピー関連性を確立した後、ステージ動作のために、ターゲット・データ・ブロックに対応するソース・データ・ブロックがソース格納部から取り出されるべきであることを示すように、各ターゲット・データ・ブロックについての第3のインジケータを更新するステップをさらに含むことが好ましい。   After establishing the incremental virtual copy relevance, the method sets each source data block corresponding to the target data block to be retrieved from the source store for stage operation. Preferably, the method further comprises updating a third indicator for the target data block.

本方法は、ソース格納部からターゲット格納部にデータを転送した後、該ソース・データ・ブロックが最後にターゲット格納部に転送されたとき以降にソース格納部においてソース・データ・ブロックが更新されなかったことを示すように、各ソース・ブロックについての第1のインジケータを更新するステップさらに含むことが好ましい。   In this method, after data is transferred from the source storage to the target storage, the source data block is not updated in the source storage since the last time the source data block was transferred to the target storage. Preferably, the method further includes updating the first indicator for each source block.

本方法は、ソース格納部からターゲット格納部にデータを転送した後、該ソース・データ・ブロックが最後にターゲット格納部に転送されたとき以降にターゲット格納部においてターゲット・データ・ブロックが更新されなかったことを示すように、各ターゲット・データ・ブロックについての第2のインジケータを更新するステップとをさらに含むことが好ましい。   The method does not update the target data block in the target store after the last transfer of the source data block to the target store after transferring data from the source store to the target store. Preferably, the method further includes updating a second indicator for each target data block.

各ソース・データ・ブロック及び各ターゲット・データ・ブロックは、あるボリュームのトラックを含むことが好ましい。   Each source data block and each target data block preferably includes a volume of tracks.

各ソース・データ・ブロック及び各ターゲット・データ・ブロックは、あるボリュームのセクタを含むことが好ましい。   Each source data block and each target data block preferably includes a sector of a volume.

本方法は、データのソース部分とデータのターゲット部分との間でインクリメンタル仮想コピー動作を行うことによって、データのソース部分とデータのターゲット部分との間にインクリメンタル仮想コピー関連性を形成するステップをさらに含み、ここで、インクリメンタル仮想コピー関連性において、データのソース部分内の各ソース・データ・ブロックについての第1のインジケータ及びデータのターゲット部分内の各ターゲット・データ・ブロックについての第2のインジケータが維持される。   The method further comprises the step of forming an incremental virtual copy relationship between the source portion of the data and the target portion of the data by performing an incremental virtual copy operation between the source portion of the data and the target portion of the data. Where, in an incremental virtual copy relationship, a first indicator for each source data block in the source portion of data and a second indicator for each target data block in the target portion of data are Maintained.

本方法は、ソース・データ・ブロックが更新されなかったことを示すように、各ソース・データ・ブロックについての第1のインジケータを更新するステップと、ターゲット・データ・ブロックが更新されなかったことを示すように、各ターゲット・データ・ブロックについての第2のインジケータを更新するステップと、ソース・データ・ブロックをターゲット格納部に転送する必要があることを示すように、各ターゲット・データ・ブロックについての第3のインジケータを更新するステップとをさらに含むことが好ましい。   The method updates the first indicator for each source data block to indicate that the source data block has not been updated, and indicates that the target data block has not been updated. As shown, for each target data block, updating the second indicator for each target data block and indicating that the source data block needs to be transferred to the target store Preferably updating the third indicator of.

本方法は、ソース・データ・ブロックが更新された時に、ソース・データ・ブロックが更新されたことを示すように、ソース・データ・ブロックについての第1のインジケータを更新するステップをさらに含むことが好ましい。   The method may further include updating a first indicator for the source data block to indicate that the source data block has been updated when the source data block is updated. preferable.

本方法は、ターゲット・データ・ブロックが更新された時に、ターゲット・データ・ブロックが更新されたことを示すように、ターゲット・データ・ブロックについての第2のインジケータを更新するステップをさらに含むことが好ましい。   The method may further include updating a second indicator for the target data block to indicate that the target data block has been updated when the target data block is updated. preferable.

同様に、ソース・データ・ブロックが最後にターゲット格納部に転送されたとき以降にソース格納部においてソース・データ・ブロックが更新されたかどうかを示す、各ソース・データ・ブロックについての第1のインジケータを維持するステップと、対応するソース・データ・ブロックによってターゲット・データ・ブロックが上書きされたとき以降にターゲット格納部においてターゲット・データ・ブロックが更新されたかどうかを示す、ターゲット格納部内の各ターゲット・データ・ブロックについての第2のインジケータを維持するステップと、ソース格納部からターゲット格納部にデータを転送する時に、ソース・データ・ブロックが更新されたかどうかを示すように第1のインジケータが設定された、各ソース・データ・ブロックを転送するステップと、ターゲット・データ・ブロックが更新されたかどうかを示すように第2のインジケータが設定された、ターゲット・データ・ブロックに対応する各ソース・データ・ブロックを転送するステップとを含む動作が行われる、転送されるデータ量を減少させるための製品を提供することもできる。   Similarly, a first indicator for each source data block that indicates whether the source data block has been updated in the source store since the last time the source data block was transferred to the target store And each target in the target store that indicates whether the target data block has been updated in the target store since the target data block was overwritten by the corresponding source data block. Maintaining a second indicator for the data block, and when transferring data from the source store to the target store, the first indicator is set to indicate whether the source data block has been updated. Each source data block And transferring each source data block corresponding to the target data block with a second indicator set to indicate whether the target data block has been updated. It is also possible to provide a product for reducing the amount of data transferred on which the operation takes place.

本製品は、ステージ動作のために、対応するソース・データ・ブロック又はターゲット・データ・ブロックが取り出されるべきかどうかを示す、各ターゲット・データ・ブロックについての第3のインジケータを維持するステップをさらに含む動作を行うことが好ましい。   The product further comprises maintaining a third indicator for each target data block indicating whether the corresponding source data block or target data block should be retrieved for stage operation. It is preferable to perform the operation including.

本製品は、ソース・データ・ブロックがターゲット格納部にコピーされた時に、ターゲット・データ・ブロックについての第3のインジケータを更新するステップを含むことが好ましい。   The product preferably includes updating a third indicator for the target data block when the source data block is copied to the target store.

本製品は、インクリメンタル仮想コピー動作を受信するステップと、ソース・データ・ブロックについての第1のインジケータ及びソース・データ・ブロックに対応するターゲット・データ・ブロックについての第2のインジケータに基づいて、各ターゲット・データ・ブロックについての第3のインジケータを更新するステップとをさらに含むことが好ましく、ここで、ソース格納部からターゲット格納部にデータを転送することは、ソース・データ・ブロックがターゲット格納部に転送されるべきであることを第3のインジケータが示している、各ソース・データ・ブロックを転送することを含む。   The product includes a step of receiving an incremental virtual copy operation and a first indicator for a source data block and a second indicator for a target data block corresponding to the source data block, Updating a third indicator for the target data block, wherein transferring the data from the source store to the target store is such that the source data block is the target store. Transferring each source data block, the third indicator indicating that it should be transferred to

本製品は、インクリメンタル仮想コピー関連性を確立した後、ステージ動作のために、ターゲット・データ・ブロックに対応するソース・データ・ブロックがソース格納部から取り出されるべきであることを示すように、各ターゲット・データ・ブロックについての第3のインジケータを更新するステップを含むことが好ましい。   After establishing the incremental virtual copy relevance, the product will indicate that the source data block corresponding to the target data block should be retrieved from the source store for stage operation. Preferably, the method includes updating a third indicator for the target data block.

本製品は、ソース格納部からターゲット格納部にデータを転送した後、ソース・データ・ブロックが最後にターゲット格納部に転送されたとき以降にソース格納部においてソース・データ・ブロックが更新されなかったことを示すように、各ソース・ブロックについての第1のインジケータを更新するステップを含むことが好ましい。   In this product, after transferring data from the source storage to the target storage, the source data block was not updated in the source storage since the last time the source data block was transferred to the target storage As indicated, it preferably includes the step of updating a first indicator for each source block.

本製品は、ソース格納部からターゲット格納部にデータを転送した後、ターゲット・データ・ブロックが最後にターゲット格納部に転送されたとき以降にターゲット格納部においてターゲット・データ・ブロックが更新されなかったことを示すように、各ターゲット・データ・ブロックについての第2のインジケータを更新するステップを含むことが好ましい。   In this product, after transferring data from the source storage to the target storage, the target data block was not updated in the target storage since the last time the target data block was transferred to the target storage As indicated, it preferably includes the step of updating a second indicator for each target data block.

各ソース・データ・ブロック及び各ターゲット・データ・ブロックが、あるボリュームのトラックを含むことが好ましい。   Each source data block and each target data block preferably includes a volume of tracks.

各ソース・データ・ブロック及び各ターゲット・データ・ブロックが、あるボリュームのセクタを含むことが好ましい。   Each source data block and each target data block preferably includes a sector of a volume.

本製品は、データのソース部分とデータのターゲット部分との間でインクリメンタル仮想コピー動作を行うことによって、データのソース部分とデータのターゲット部分との間にインクリメンタル仮想コピー関連性を形成するステップを含むことが好ましく、ここで、インクリメンタル仮想コピー関連性において、データのソース部分内の各ソース・データ・ブロックについての第1のインジケータ及びデータのターゲット部分内の各ターゲット・データ・ブロックについての第2のインジケータが維持される。   The product includes the step of forming an incremental virtual copy relationship between the source portion of the data and the target portion of the data by performing an incremental virtual copy operation between the source portion of the data and the target portion of the data. Preferably, in an incremental virtual copy relationship, a first indicator for each source data block in the source portion of data and a second for each target data block in the target portion of data An indicator is maintained.

本製品は、ソース・データ・ブロックが更新されなかったことを示すように、各ソース・データ・ブロックについての第1のインジケータを更新するステップと、ターゲット・データ・ブロックが更新されなかったことを示すように、各ターゲット・データ・ブロックについての第2のインジケータを更新するステップと、ソース・データ・ブロックをターゲット格納部に転送する必要があることを示すように、各ターゲット・データ・ブロックについての第3のインジケータを更新するステップとをさらに含むことが好ましい。   The product updates the first indicator for each source data block to indicate that the source data block has not been updated and indicates that the target data block has not been updated. As shown, for each target data block, updating the second indicator for each target data block and indicating that the source data block needs to be transferred to the target store Preferably updating the third indicator of.

本製品は、ソース・データ・ブロックが更新された時に、ソース・データ・ブロックが更新されたことを示すように、ソース・データ・ブロックについての第1のインジケータを更新するステップをさらに含むことが好ましい。   The product may further include updating a first indicator for the source data block to indicate that the source data block has been updated when the source data block is updated. preferable.

本製品は、ターゲット・データ・ブロックが更新された時に、ターゲット・データ・ブロックが更新されたことを示すように、ターゲット・データ・ブロックについての第2のインジケータを更新するステップをさらに含むことが好ましい。   The product may further include updating a second indicator for the target data block to indicate that the target data block has been updated when the target data block is updated. preferable.

第2の側面において、本発明は、ソース・データ・ブロックが最後にターゲット格納部に転送されたとき以降にソース格納部においてソース・データ・ブロックが更新されたかどうかを示す、各ソース・データ・ブロックについての第1のインジケータを維持するための手段と、対応するソース・データ・ブロックによってターゲット・データ・ブロックが上書きされたとき以降にターゲット格納部においてターゲット・データ・ブロックが更新されたかどうかを示す、ターゲット格納部内の各ターゲット・データ・ブロックについての第2のインジケータを維持するための手段と、ソース格納部からターゲット格納部にデータを転送する時に、ソース・データ・ブロックが更新されたかどうかを示すように第1のインジケータが設定された、各ソース・データ・ブロックを転送するための手段と、ターゲット・データ・ブロックが更新されたかどうかを示すように第2のインジケータが設定された、ターゲット・データ・ブロックに対応する各ソース・データ・ブロックを転送するための手段とを含む、転送されるデータ量を減少させるためのシステムを提供する。   In a second aspect, the present invention provides each source data block indicating whether the source data block has been updated in the source store since the last time the source data block was transferred to the target store. Means for maintaining a first indicator for the block and whether the target data block has been updated in the target store since the target data block was overwritten by the corresponding source data block; Means for maintaining a second indicator for each target data block in the target store, and whether the source data block was updated when transferring data from the source store to the target store The first indicator was set to indicate Means for transferring each source data block and each source data block corresponding to the target data block with a second indicator set to indicate whether the target data block has been updated And a system for reducing the amount of data transferred, including means for transferring blocks.

本システムは、ステージ動作のために、対応するソース・データ・ブロック又はターゲット・データ・ブロックが取り出されるべきかどうかを示す、各ターゲット・データ・ブロックについての第3のインジケータを維持するための手段を含むことが好ましい。   The system includes means for maintaining a third indicator for each target data block that indicates whether the corresponding source data block or target data block should be retrieved for stage operation. It is preferable to contain.

本システムは、ソース・データ・ブロックがターゲット格納部にコピーされた時に、ターゲット・データ・ブロックについての第3のインジケータを更新するための手段を含むことが好ましい。   The system preferably includes means for updating a third indicator for the target data block when the source data block is copied to the target store.

本システムは、インクリメンタル仮想コピー動作を受信するステップと、ソース・データ・ブロックについての第1のインジケータ及びソース・データ・ブロックに対応するターゲット・データ・ブロックについての第2のインジケータに基づいて、各ターゲット・データ・ブロックについての第3のインジケータを更新するステップとをさらに含むことが好ましく、ここで、ソース格納部からターゲット格納部にデータを転送することは、ソース・データ・ブロックがターゲット格納部に転送されるべきであることを第3のインジケータが示している、各ソース・データ・ブロックを転送するための手段を含むことが好ましい。   The system is configured to receive each incremental virtual copy operation, and based on a first indicator for the source data block and a second indicator for the target data block corresponding to the source data block, Updating a third indicator for the target data block, wherein transferring the data from the source store to the target store is such that the source data block is the target store. Preferably, it includes means for transferring each source data block, wherein the third indicator indicates that it should be transferred to.

本システムは、インクリメンタル仮想コピー関連性を確立した後、ステージ動作のために、ターゲット・データ・ブロックに対応するソース・データ・ブロックがソース格納部から取り出されるべきであることを示すように、各ターゲット・データ・ブロックについての第3のインジケータを更新するための手段を含むことが好ましい。   After establishing the incremental virtual copy relevance, the system will indicate that the source data block corresponding to the target data block should be retrieved from the source store for stage operation. Preferably, means are included for updating a third indicator for the target data block.

本システムは、ソース格納部からターゲット格納部にデータを転送した後、ソース・データ・ブロックが最後にターゲット格納部に転送されたとき以降にソース格納部においてソース・データ・ブロックが更新されなかったことを示すように、各ソース・データ・ブロックについての第1のインジケータを更新するための手段を含むことが好ましい。   In this system, after transferring data from the source storage to the target storage, the source data block was not updated in the source storage since the last time the source data block was transferred to the target storage As indicated, it preferably includes means for updating the first indicator for each source data block.

本システムは、ソース格納部からターゲット格納部にデータを転送した後、ソース・データ・ブロックが最後にターゲット格納部に転送されたとき以降にターゲット格納部においてターゲット・データ・ブロックが更新されなかったことを示すように、各ターゲット・データ・ブロックについての第2のインジケータを更新するための手段を含むことが好ましい。   The system did not update the target data block in the target store after the last time the source data block was transferred to the target store after transferring data from the source store to the target store As indicated, it preferably includes means for updating the second indicator for each target data block.

各ソース・データ・ブロック及び各ターゲット・データ・ブロックが、あるボリュームのトラックを含むことが好ましい。   Each source data block and each target data block preferably includes a volume of tracks.

各ソース・データ・ブロック及び各ターゲット・データ・ブロックが、あるボリュームのセクタを含むことが好ましい。   Each source data block and each target data block preferably includes a sector of a volume.

本製品は、データのソース部分とデータのターゲット部分との間でインクリメンタル仮想コピー動作を行うことによって、データのソース部分とデータのターゲット部分との間にインクリメンタル仮想コピー関連性を形成するための手段を含み、ここで、インクリメンタル仮想コピー関連性において、データのソース部分内の各ソース・データ・ブロックについての第1のインジケータ及びデータのターゲット部分内の各ターゲット・データ・ブロックについての第2のインジケータが維持されることが好ましい。   The product provides a means for creating an incremental virtual copy relationship between a data source portion and a data target portion by performing an incremental virtual copy operation between the data source portion and the data target portion. Where, in an incremental virtual copy relationship, a first indicator for each source data block in the source portion of data and a second indicator for each target data block in the target portion of data Is preferably maintained.

本システムは、ソース・データ・ブロックが更新されなかったことを示すように、各ソース・データ・ブロックについての第1のインジケータを更新するための手段と、ターゲット・データ・ブロックが更新されなかったことを示すように、各ターゲット・データ・ブロックについての第2のインジケータを更新するための手段と、ソース・データ・ブロックをターゲット格納部に転送する必要があることを示すように、各ターゲット・データ・ブロックについての第3のインジケータを更新するための手段とを含むことが好ましい。   The system has means for updating the first indicator for each source data block and the target data block has not been updated to indicate that the source data block has not been updated. Means for updating the second indicator for each target data block and each target data block to indicate that the source data block needs to be transferred to the target store. And means for updating a third indicator for the data block.

本システムは、ソース・データ・ブロックを更新した時に、ソース・データ・ブロックが更新されたことを示すように、ソース・データ・ブロックについての第1のインジケータを更新するための手段を含むことが好ましい。   The system may include means for updating a first indicator for the source data block to indicate that the source data block has been updated when the source data block is updated. preferable.

本システムは、ターゲット・データ・ブロックを更新した時に、ターゲット・データ・ブロックが更新されたことを示すように、ターゲット・データ・ブロックについての第2のインジケータを更新する手段を含むことが好ましい。   The system preferably includes means for updating a second indicator for the target data block to indicate that the target data block has been updated when the target data block is updated.

第3の側面において、本発明は、コンピュータ・システムに読み込まれ、コンピュータ・システム上で実行されるときに、第1の側面による方法のステップを実行させるためのコンピュータ・プログラム・コードを含む、コンピュータ・プログラムを提供する。コンピュータ・プログラムの好ましい特徴は、第1の側面の好ましい方法のステップに対応するコンピュータ・プログラム・コードを含む。   In a third aspect, the present invention includes a computer program code for causing a method step according to the first aspect to be executed when read into a computer system and executed on the computer system.・ Provide programs. Preferred features of the computer program include computer program code corresponding to the preferred method steps of the first aspect.

したがって、転送されるデータ量を減少させる方法、システム、及びプログラムが提供されることが好ましい。ソース・データ・ブロックが最後にターゲット格納部に転送されたとき以降にソース格納部においてソース・データ・ブロックが更新されたかどうかを示す、各ソース・データ・ブロックについての第1のインジケータが維持される。対応するソース・データ・ブロックによってターゲット・データ・ブロックが上書きされたとき以降にターゲット格納部においてターゲット・データ・ブロックが更新されたかどうかを示す、ターゲット格納部内の各ターゲット・データ・ブロックについての第2のインジケータが維持される。ソース格納部からターゲット格納部にデータを転送する時に、ソース・データ・ブロックが更新されたことを示すように第1のインジケータが設定された、各ソース・データ・ブロックが転送され、ターゲット・データ・ブロックを更新したことを示すように第2のインジケータが設定された、ターゲット・データ・ブロックに対応する各ソース・データ・ブロックが転送される。   Therefore, it is preferable to provide a method, system and program for reducing the amount of data transferred. A first indicator for each source data block is maintained that indicates whether the source data block has been updated in the source store since the last time the source data block was transferred to the target store. The A first for each target data block in the target store that indicates whether the target data block has been updated in the target store since the target data block was overwritten by the corresponding source data block. Two indicators are maintained. When transferring data from the source store to the target store, each source data block with a first indicator set to indicate that the source data block has been updated is transferred and the target data Each source data block corresponding to the target data block is transferred with the second indicator set to indicate that the block has been updated.

説明された本発明の実施は、インクリメンタル仮想コピーを作成するための方法、システム、及びプログラムを提供する。   The described implementation of the invention provides a method, system, and program for creating incremental virtual copies.

ここで、添付の図面を参照して、単なる例示として、本発明の好ましい実施形態を説明する。   Preferred embodiments of the present invention will now be described, by way of example only, with reference to the accompanying drawings.

以下の説明において、本発明の一部を形成し、本発明の幾つかの実施を示す添付図面について説明する。本発明の範囲を逸脱することなく、他の実施を用いることができ、構造上及び動作上の変更をなし得ることが理解される。   In the following description, reference is made to the accompanying drawings that form a part hereof and in which are shown several embodiments of the invention. It is understood that other implementations can be used and structural and operational changes can be made without departing from the scope of the invention.

本発明の実施は、即時仮想コピー動作の機能を強化するインクリメンタル仮想コピー動作を提供するものである。インクリメンタル仮想コピー動作を用いる場合、ソース・ボリュームからターゲット・ボリュームへの最後の即時仮想コピー動作以降、ソース・ボリューム及びターゲット・ボリュームにおいて更新されたデータ・ブロックだけがコピーされる。インクリメンタル仮想コピー動作は、ソース・ボリュームの物理コピーを作成する時間を減少させ、他のアプリケーションへの影響を最小にする(例えば、データをデステージするための物理的格納部に対する帯域幅の使用を最小にし、これにより物理的格納部からの読み取りのために、多くの帯域幅が可能になる)。   The implementation of the present invention provides an incremental virtual copy operation that enhances the functionality of an immediate virtual copy operation. When using an incremental virtual copy operation, only the data blocks that have been updated in the source and target volumes since the last immediate virtual copy operation from the source volume to the target volume are copied. Incremental virtual copy operations reduce the time to create a physical copy of the source volume and minimize the impact on other applications (for example, using bandwidth for physical storage to destage data). Minimize, which allows a lot of bandwidth for reading from the physical store).

図1及び図2は、本発明の特定の実施によるコンピューティング環境をブロック図で示す。格納コントローラ100は、ネットワーク190上で、入力/出力(I/O)要求をホスト140a、b、...l(ここで、a、b及びlは、任意の整数値とすることができる)から受け取り、ボリューム(例えば、論理ユニット番号、論理装置など)122a、b...n及び132a、b...mのそれぞれを有するように構成された格納デバイス120、130の方向に向けられ、ここで、m及びnは、異なる整数値であってもよいし、又は、同じ整数値であってもよい。特定の実施においては、ターゲット格納部130のサイズは、ソース格納部120より大きいか又はこれと等しくすることができる。   1 and 2 illustrate in a block diagram a computing environment in accordance with a particular implementation of the present invention. The storage controller 100 sends input / output (I / O) requests to the hosts 140a, b,. . . l (where a, b and l can be any integer value) and volumes (eg, logical unit numbers, logical devices, etc.) 122a, b. . . n and 132a, b. . . Directed toward storage devices 120, 130 configured to have each of m, where m and n may be different integer values or may be the same integer value. In particular implementations, the size of the target store 130 can be greater than or equal to the source store 120.

ソース格納部120は、データ・ブロックを含む格納ブロック150に分割することができる1つ又はそれ以上のボリューム122a、b...nを含み、この格納ブロック150は、データのサブブロックを含む格納サブブロック(150a−150p、ここで、a及びpは任意の整数値とすることができる)にさらに分割される。ボリュームは、格納部の任意の論理エレメント又は物理エレメントとすることができる。特定の実施においては、データ・ブロックはトラックのコンテンツであり、データ・サブブロックはトラックのセクタのコンテンツである。   The source storage 120 may be divided into one or more volumes 122a, b. . . This storage block 150 is further divided into storage sub-blocks (150a-150p, where a and p can be any integer value) including sub-blocks of data. A volume can be any logical or physical element of the storage. In a particular implementation, the data block is the content of the track and the data sub-block is the content of the sector of the track.

ターゲット格納部130は、ソース格納部120のボリューム122a、b...nの全て又はサブセットのコピーを維持する。さらに、例えばホスト140によって、ターゲット格納部130を修正することができる。ターゲット格納部130は、データ・ブロックを含む格納ブロック150に分割することができる1つ又はそれ以上のボリューム132a、b...mを含み、格納ブロック150は、データのサブブロックを含む格納サブブロック(150a−150p、ここで、a及びpは任意の整数値とすることができる)にさらに分割される。ボリュームは、格納部の任意の論理エレメント又は物理エレメントとすることができる。特定の実施においては、データ・ブロックはトラックであり、データ・サブブロックはトラックのセクタである。   The target storage unit 130 includes volumes 122a, b. . . Maintain a copy of all or a subset of n. Furthermore, the target storage unit 130 can be modified by the host 140, for example. The target storage unit 130 can be divided into one or more volumes 132a, b. . . storage block 150 is further subdivided into storage sub-blocks (150a-150p, where a and p can be any integer value) including sub-blocks of data. A volume can be any logical or physical element of the storage. In a particular implementation, the data block is a track and the data sub-block is a sector of the track.

参照を簡略にするために、本明細書において、トラック及びセクタという用語は、データ・ブロック及びデータ・サブブロックの例として用いられるが、これらの用語の使用は、本発明の実施をトラック及びセクタに制限することを意図するものではない。本発明の実施は、あらゆるタイプの格納部、又はいずれかの方法で分割された格納ブロック又はデータ・ブロックにも適用可能である。さらに、本発明の実施はデータ・ブロックに言及しているが、本発明の代替的な実施は、データ・サブブロックにも適用可能である。   For simplicity of reference, the terms track and sector are used herein as examples of data blocks and data sub-blocks, but the use of these terms makes track and sector implementation of the present invention. It is not intended to be limited to. The implementation of the present invention is also applicable to any type of storage, or storage block or data block divided in any way. Furthermore, although the implementation of the present invention refers to data blocks, alternative implementations of the present invention are also applicable to data sub-blocks.

格納コントローラ100は、ソース・キャッシュ124を含み、そこでは、ソース格納部120に書き込まれる(すなわち、トラックが物理的格納部にデステージされる)まで、ソース格納部120内のトラックへの更新が維持される。格納コントローラ100は、ターゲット・キャッシュ134を含み、そこでは、ターゲット格納部130に書き込まれる(すなわち、トラックが物理的格納部にデステージされる)まで、ターゲット格納部130内のトラックへの更新が維持される。ソース・キャッシュ124及びターゲット・キャッシュ134は、別個の又は同じ格納デバイスの異なるセクションを含むことができる。ソース・キャッシュ124及びターゲット・キャッシュ134は、ホスト140a、b、...l、ソース格納部120、及びターゲット格納部130の間で伝送される読み取りデータ及び書き込みデータをバッファに入れるために用いられる。さらに、キャッシュ124及び134は、ソース・キャッシュ及びターゲット・キャッシュと呼ばれ、ポイント・イン・タイム・コピー関連性にあるソース・データ・ブロック又はターゲット・データ・ブロックを保持するが、これらのキャッシュ124及び134は、異なるポイント・イン・タイム・コピー関連性にあるソース・データ・ブロック及びターゲット・データ・ブロックを同時に格納することができる。   The storage controller 100 includes a source cache 124 where updates to tracks in the source store 120 are written until written to the source store 120 (ie, the track is destaged to the physical store). Maintained. The storage controller 100 includes a target cache 134 where updates to tracks in the target store 130 are written until the target store 130 is written (ie, the track is destaged to the physical store). Maintained. Source cache 124 and target cache 134 may include different sections of separate or the same storage device. Source cache 124 and target cache 134 are connected to hosts 140a, b,. . . l, read data and write data transmitted between the source storage unit 120 and the target storage unit 130 are used for buffering. In addition, caches 124 and 134 are referred to as source and target caches and hold source or target data blocks that are in a point-in-time copy relationship, but these caches 124. And 134 can simultaneously store source and target data blocks that are in different point-in-time copy relationships.

付加的に、格納コントローラ100は、不揮発性キャッシュ118を含む。不揮発性キャッシュ118を、例えばバッテリ・バックアップ式揮発性メモリとし、データ更新の不揮発性コピーを維持することができる。   In addition, the storage controller 100 includes a non-volatile cache 118. The non-volatile cache 118 may be a battery-backed volatile memory, for example, to maintain a non-volatile copy of the data update.

格納コントローラ100は、揮発性デバイス及び/又は不揮発性デバイス内に実装することができるシステム・メモリ110をさらに含む。システム・メモリ110は、データを読み取るための読み取り処理112と、データを書き込むための書き込み処理114と、インクリメンタル仮想コピー処理116とを含む。読み取り処理112は、システム・メモリ110において実行され、格納部120からキャッシュ124及び格納部130からキャッシュ134にデータを読み取る。書き込み処理114は、システム・メモリ110において実行され、キャッシュ124から格納部120及びキャッシュ134から格納部130にデータを書き込む。インクリメンタル仮想コピー処理116は、システム・メモリ110において実行され、ソース格納部120からターゲット格納部130にデータを転送するインクリメンタル仮想コピー動作を実行する。本発明の特定の実施においては、多数のインクリメンタル仮想コピー処理がある。本発明の特定の実施においては、格納コントローラ100において実行する代わりに又はそれに加えて、格納コントローラ100に接続された別の格納コントローラにおいて、インクリメンタル仮想コピー処理を実行することもできる。システム・メモリ110は、キャッシュ124及び134とは別個の格納デバイス内にあってもよく、或いはキャッシュ124及び134の一方又は両方と格納デバイスを共有してもよい。   The storage controller 100 further includes a system memory 110 that can be implemented in volatile and / or non-volatile devices. The system memory 110 includes a read process 112 for reading data, a write process 114 for writing data, and an incremental virtual copy process 116. The read process 112 is executed in the system memory 110 and reads data from the storage unit 120 to the cache 124 and from the storage unit 130 to the cache 134. The write process 114 is executed in the system memory 110 and writes data from the cache 124 to the storage unit 120 and from the cache 134 to the storage unit 130. The incremental virtual copy process 116 is executed in the system memory 110 and executes an incremental virtual copy operation for transferring data from the source storage unit 120 to the target storage unit 130. In a particular implementation of the invention, there are a number of incremental virtual copy processes. In certain implementations of the invention, instead of or in addition to being executed at the storage controller 100, the incremental virtual copy process may be executed at another storage controller connected to the storage controller 100. The system memory 110 may be in a storage device that is separate from the caches 124 and 134 or may share the storage device with one or both of the caches 124 and 134.

参照を簡単にするために、本発明の実施は、本明細書ではソース格納部及びターゲット格納部と呼ばれる、いずれか2つの格納媒体間のデータ転送にも適用可能である。例えば、図1に示されるように、本発明の特定の実施は、単一の格納コントローラに配置された2つの格納媒体と共に用いることができる。さらに、本発明の代替的な特定の実施は、異なる格納コントローラ、異なる物理的サイト等に配置された2つの格納媒体と共に用いることができる。また、参照を簡単にするために、ソース格納部内のデータ・ブロックを「ソース・データ・ブロック」と呼び、ターゲット格納部内のデータ・ブロックを「ターゲット・データ・ブロック」と呼ぶ。   For ease of reference, the implementation of the present invention is also applicable to data transfer between any two storage media, referred to herein as source storage and target storage. For example, as shown in FIG. 1, a particular implementation of the present invention can be used with two storage media located in a single storage controller. Further, alternative specific implementations of the present invention can be used with two storage media located at different storage controllers, different physical sites, and the like. In order to simplify the reference, a data block in the source storage unit is called a “source data block”, and a data block in the target storage unit is called a “target data block”.

特定の実施において、(ターゲット格納部130の代わりに又はこれに加えて)取り外し可能な格納部を用いて、ソース格納部120の全て又はサブセットのコピーを維持することができ、本発明の実施は、データを、ターゲット格納部ではなく取り外し可能な格納部に転送する。取り外し可能な格納部は、格納コントローラ100に常駐することができる。   In certain implementations, removable storage can be used (instead of or in addition to target storage 130) to maintain a copy of all or a subset of source storage 120, and implementations of the invention , Transfer the data to the removable storage instead of the target storage. The removable storage can reside in the storage controller 100.

格納コントローラ100は、さらに、プロセッサ複合体(図示せず)を含み、Enterprise Storage Server7(ESS,商標)、39907 Storage Controllerなどの、当該技術分野に知られる、あらゆる格納コントローラ又はサーバを含むことができる。ホスト140a、b...lは、サーバ、メインフレーム、ワークステーション、パーソナル・コンピュータ、手持ち式コンピュータ、ラップトップ型テレフォニー・デバイス、ネットワーク・アプライアンスなどの当該技術分野に知られる、あらゆるコンピューティング・デバイスを含むことができる。格納コントローラ100及びホスト・システム140a、b...1は、格納エリア・ネットワーク(SAN)、ローカル・エリア・ネットワーク(LAN)、広域エリア・ネットワーク(WAN)、インターネット、イントラネットなどを含むことができるネットワーク190を介して通信する。ソース格納部120及びターゲット格納部130は各々、直接アクセス格納デバイス(DASD)、単純ディスク束(JBOD)、新磁気ディスク制御機構アレイ(RAID)、仮想化デバイスなどの格納デバイスのアレイを含むことができる。   The storage controller 100 further includes a processor complex (not shown) and can include any storage controller or server known in the art, such as Enterprise Storage Server 7 (ESS ™), 39907 Storage Controller, etc. . Hosts 140a, b. . . l can include any computing device known in the art, such as a server, mainframe, workstation, personal computer, handheld computer, laptop telephony device, network appliance, and the like. Storage controller 100 and host systems 140a, b. . . 1 communicates over a network 190 that may include a storage area network (SAN), a local area network (LAN), a wide area network (WAN), the Internet, an intranet, and the like. Each of the source storage unit 120 and the target storage unit 130 may include an array of storage devices such as a direct access storage device (DASD), a simple disk bundle (JBOD), a new magnetic disk control mechanism array (RAID), and a virtualization device. .

さらに、図1は単一の格納コントローラを示しているが、当業者であれば、ネットワーク(例えば、ローカル・エリア・ネットワーク(LAN)、広域エリア・ネットワーク(WAN)、インターネット等)を介して多数の格納コントローラを接続することができ、その多数の格納コントローラの1つ又はそれ以上が本発明を実施できることを理解するであろう。   In addition, although FIG. 1 shows a single storage controller, those skilled in the art will recognize many via a network (eg, a local area network (LAN), a wide area network (WAN), the Internet, etc.). It will be appreciated that multiple storage controllers can be connected and that one or more of the multiple storage controllers can implement the present invention.

ホスト140がソース格納部120内のデータ・ブロックを更新することを望むとき、ホスト140は、ソース・キャッシュ124内の格納ブロックにデータを
書き込む。書き込み動作は、ソース・キャッシュ124内の格納ブロックを同期修正し(すなわち、書き込みホスト140は、動作の完了を待つ)、次いで、バックグラウンド処理において、ソース・キャッシュ124のコンテンツが、ソース格納部120に書き込まれる。書き込み動作は、データを更新し、新しいデータを書き込み、又は同じデータを再度書き込むことができる。ソース・キャッシュ124内のデータをソース格納部120に書き込むことは、デステージ動作と呼ばれる。ソース格納部120からソース・キャッシュ124にデータ・ブロックの全て又は一部をコピーするのは、ステージ動作である。同様に、ターゲット格納部130とターゲット・キャッシュ134との間でデータをステージ及びデステージすることができる。さらに、ソース格納部120からターゲット・キャッシュ134にデータをステージすることもできる。
When the host 140 wishes to update a data block in the source store 120, the host 140 writes data to the store block in the source cache 124. A write operation synchronously modifies the storage block in the source cache 124 (ie, the write host 140 waits for the operation to complete), and then in background processing, the contents of the source cache 124 are transferred to the source store 120. Is written to. A write operation can update data, write new data, or write the same data again. Writing data in the source cache 124 to the source storage unit 120 is called a destage operation. Copying all or part of a data block from the source store 120 to the source cache 124 is a stage operation. Similarly, data can be staged and destaged between the target store 130 and the target cache 134. In addition, data can be staged from the source storage 120 to the target cache 134.

図3は、本発明の特定の実施による種々の構造体200、210、及び220を示す。不揮発性キャッシュ118は、ターゲット・コピー構造体200を含む。ターゲット・コピー構造体200を用いて、データを、ソース格納部120からキャッシュ124又はターゲット格納部130からキャッシュ134に取り出すかどうかを判断することができる(すなわち、ステージ動作のために)。さらに、ターゲット・コピー構造体200を用いて、ソース格納部120内のどのデータ・ブロックがターゲット格納部130にコピーされるかを判断することができる。ターゲット・コピー構造体200は、例えば、ボリューム内の各データ・ブロックについてのインジケータ(例えば、1ビット)を含む。インジケータが第1の値(例えば、1)に設定されたとき、その設定は、ステージ動作のために、データ・ブロックがソース格納部120から取り出されるべきであることを示すか、或いはインクリメンタル仮想コピー動作のために、データ・ブロックがターゲット格納部130にコピーされるべきであることを示す。インジケータが第2の値(例えば、ゼロ)に設定された場合、その設定は、ステージ動作のために、データ・ブロックがターゲット格納部130から取り出されるべきであることを示すか、或いはインクリメンタル仮想コピー動作のために、データ・ブロックがソース格納部120からターゲット格納部130にコピーされるべきであることを示す。   FIG. 3 illustrates various structures 200, 210, and 220 according to certain implementations of the invention. The non-volatile cache 118 includes a target copy structure 200. The target copy structure 200 can be used to determine whether data is retrieved from the source store 120 to the cache 124 or from the target store 130 to the cache 134 (ie, for stage operations). Furthermore, the target copy structure 200 can be used to determine which data blocks in the source storage 120 are copied to the target storage 130. The target copy structure 200 includes, for example, an indicator (eg, 1 bit) for each data block in the volume. When the indicator is set to a first value (e.g., 1), the setting indicates that the data block should be retrieved from the source store 120 for stage operation, or an incremental virtual copy Indicates that the data block should be copied to the target store 130 for operation. If the indicator is set to a second value (eg, zero), the setting indicates that the data block should be retrieved from the target store 130 for stage operation, or an incremental virtual copy. Indicates that the data block should be copied from the source store 120 to the target store 130 for operation.

インクリメンタル仮想コピー関連性が確立されたソース格納部120のデータの一部内にあるデータ・ブロックの更新を監視するために、ソース変更記録構造体210が使用される。このソース変更記録構造体210は、インクリメンタル仮想コピー関連性の一部である、ソース格納部120内の各データ・ブロックについてのインジケータ(例えば、1ビット)を含む。インジケータが第1の値(例えば、1)に設定された場合、その設定は、最後のインクリメンタル仮想コピー動作以降にデータ・ブロックが更新されたことを示す。インジケータが第2の値(例えば、ゼロ)に設定された場合、その設定は、最後のインクリメンタル仮想コピー動作以降にデータ・ブロックが更新されなかったことを示す。   A source change record structure 210 is used to monitor the update of data blocks in the portion of data in the source store 120 where the incremental virtual copy relevance has been established. The source change recording structure 210 includes an indicator (eg, 1 bit) for each data block in the source store 120 that is part of the incremental virtual copy relationship. If the indicator is set to a first value (eg, 1), the setting indicates that the data block has been updated since the last incremental virtual copy operation. If the indicator is set to a second value (eg, zero), the setting indicates that the data block has not been updated since the last incremental virtual copy operation.

インクリメンタル仮想コピー関連性が確立された後、ターゲット格納部130内のデータ・ブロックの更新を監視するために、ターゲット変更記録構造体220が使用される。このターゲット変更記録構造体220は、インクリメンタル仮想コピー関連性の一部である、ターゲット格納部130内の各データ・ブロックについてのインジケータ(例えば、ビット)を含む。インジケータが第1の値(例えば、1)に設定された場合、その設定は、最後のインクリメンタル仮想コピー動作以降にデータ・ブロックが更新されたことを示す。インジケータが第2の値(例えばゼロ)に設定された場合、その設定は、最後のインクリメンタル仮想コピー動作以降にデータ・ブロックが更新されなかったことを示す。   After the incremental virtual copy relevance is established, the target change recording structure 220 is used to monitor updates of data blocks in the target store 130. The target change recording structure 220 includes an indicator (eg, a bit) for each data block in the target store 130 that is part of the incremental virtual copy relevance. If the indicator is set to a first value (eg, 1), the setting indicates that the data block has been updated since the last incremental virtual copy operation. If the indicator is set to a second value (eg, zero), the setting indicates that the data block has not been updated since the last incremental virtual copy operation.

本発明の特定の実施において、各々の構造体200、210、及び220はビットマップを含み、各々のインジケータは、ビットを含む。各々の構造体200、210、及び220においては、第n番目のインジケータは、第n番目のデータ・ブロックに対応する(例えば、各々の構造体200、210、及び220における第1のインジケータは、第1のデータ・ブロックに対応する)。構造体200、210、及び220が、3つの別個の構造体として示されたが、本発明の範囲を逸脱することなく、これらの構造体をいずれの形態で組み合わせてもよい。本発明の特定の実施においては、各ボリュームについて各構造体のコピーが存在する。本発明の特定の代替的な実施においては、全てのボリュームについて各構造体の単一のコピーが存在する。   In a particular implementation of the invention, each structure 200, 210, and 220 includes a bitmap and each indicator includes a bit. In each structure 200, 210, and 220, the nth indicator corresponds to the nth data block (eg, the first indicator in each structure 200, 210, and 220 is Corresponding to the first data block). Although structures 200, 210, and 220 have been shown as three separate structures, these structures may be combined in any form without departing from the scope of the present invention. In a particular implementation of the invention, there is a copy of each structure for each volume. In certain alternative implementations of the invention, there is a single copy of each structure for every volume.

図4は、本発明の特定の実施に従って構造体を更新するための、インクリメンタル仮想コピー処理116において実施される論理を示す。ブロック300において、制御は、インクリメンタル仮想コピー関連性の最初の確立で開始する。インクリメンタル仮想コピー動作がデータの対応する部分の間で行われるとき、ソース格納部120内のデータの1つ又はそれ以上の部分(例えば、ソース・ボリューム)とターゲット格納部130内のデータの対応する部分(例えば、ターゲット・ボリューム)との間で、インクリメンタル仮想コピー関連性が形成される。第1のインクリメンタル仮想コピー動作は、例えば、1つ又はそれ以上のソース・ボリュームを対応するターゲット・ボリュームにコピーすることができる。しかしながら、次のコピーは、インクリメンタル・コピーを作成し、最後の即時仮想コピー動作以降に変更されなかったソース・ボリュームのいずれの部分の再コピーも回避することができる。   FIG. 4 illustrates the logic implemented in the incremental virtual copy process 116 for updating a structure in accordance with a particular implementation of the present invention. At block 300, control begins with the initial establishment of an incremental virtual copy relationship. When an incremental virtual copy operation is performed between corresponding portions of data, one or more portions of data in the source store 120 (eg, source volume) and corresponding data in the target store 130 An incremental virtual copy relationship is formed with a portion (eg, target volume). The first incremental virtual copy operation can, for example, copy one or more source volumes to corresponding target volumes. However, the next copy creates an incremental copy and can avoid recopying any part of the source volume that has not changed since the last immediate virtual copy operation.

ブロック310において、インクリメンタル仮想コピー処理116は、ターゲット・コピー構造体200内のインジケータを更新し、ステージ動作のために、インジケータに対応する全てのデータ・ブロックがソース格納部から取り出されるべきであること、及び、インクリメンタル仮想コピー動作又は物理コピー動作のために、全てのデータ・ブロックがソース格納部からターゲット格納部にコピーされるべきであることを示す。本発明の特定の実施においては、ターゲット・コピー構造体200内のインジケータは、1に設定される。   At block 310, the incremental virtual copy process 116 updates the indicator in the target copy structure 200, and all data blocks corresponding to the indicator should be retrieved from the source store for stage operation. And that all data blocks should be copied from the source store to the target store for an incremental virtual or physical copy operation. In a particular implementation of the invention, the indicator in the target copy structure 200 is set to 1.

ブロック320において、インクリメンタル仮想コピー処理116は、ソース変更記録構造体210内のインジケータを更新し、最後のインクリメンタル仮想コピー動作以降にインジケータに対応するソース・データ・ブロックが更新されなかったことを示す。本発明の特定の実施において、ソース変更記録構造体210内の全てのインジケータがゼロに設定される。ブロック330において、インクリメンタル仮想コピー処理116は、ターゲット変更記録構造体220内のインジケータを更新し、最後のインクリメンタル仮想コピー動作以降にインジケータに対応するターゲット・データ・ブロックが更新されなかったことを示す。本発明の特定の実施において、ターゲット変更記録構造体220内の全てのインジケータが、ゼロに設定される。   In block 320, the incremental virtual copy process 116 updates the indicator in the source change recording structure 210 to indicate that the source data block corresponding to the indicator has not been updated since the last incremental virtual copy operation. In a particular implementation of the invention, all indicators in the source change recording structure 210 are set to zero. In block 330, the incremental virtual copy process 116 updates the indicator in the target change recording structure 220 to indicate that the target data block corresponding to the indicator has not been updated since the last incremental virtual copy operation. In a particular implementation of the present invention, all indicators in the target change recording structure 220 are set to zero.

図5は、本発明の特定の実施に従ってインクリメンタル仮想コピー動作を実行するための、インクリメンタル仮想コピー処理116において実施される論理を示す。ブロック400において、制御は、インクリメンタル仮想コピー動作を受信するインクリメンタル仮想コピー処理116で開始する。ホスト140によってインクリメンタル仮想コピー動作を実行することもできる。図5のフローに図示されていないが、インクリメンタル仮想コピー動作を受信する前に、例えば、ホスト140におけるユーザによって、ソース格納部120及び/又はターゲット格納部130において1つ又はそれ以上のデータ・ブロックを更新することができる。   FIG. 5 illustrates the logic implemented in the incremental virtual copy process 116 for performing an incremental virtual copy operation in accordance with a particular implementation of the present invention. At block 400, control begins with an incremental virtual copy process 116 that receives an incremental virtual copy operation. An incremental virtual copy operation can also be performed by the host 140. Although not illustrated in the flow of FIG. 5, one or more data blocks in the source store 120 and / or the target store 130 are received, for example, by a user at the host 140, prior to receiving an incremental virtual copy operation. Can be updated.

ブロック410において、インクリメンタル仮想コピー処理116は、ソース変更記録構造体210及びターゲット変更記録構造体220内のインジケータを用いて、ターゲット・コピー構造体200内のインジケータを更新する。本発明の特定の実施において、ソース変更記録構造体210は、「OR」演算を用いてターゲット変更記録構造体220と合体され、「OR」演算の結果は、ターゲット・コピー構造体200に「論理和演算」される。   At block 410, the incremental virtual copy process 116 updates the indicator in the target copy structure 200 with the indicators in the source change recording structure 210 and the target change recording structure 220. In a particular implementation of the present invention, the source change recording structure 210 is merged with the target change recording structure 220 using an “OR” operation, and the result of the “OR” operation is sent to the target copy structure 200 as “logic”. It is “summed”.

ブロック420において、ターゲット・コピー構造体200が更新された後、インクリメンタル仮想コピー処理116は、ソース変更記録構造体210内のインジケータを更新し、最後のインクリメンタル仮想コピー動作以降にソース・データ・ブロックが更新されなかったことを示す。本発明の特定の実施においては、ソース変更記録構造体210内の全てのインジケータがゼロに設定される。ブロック430において、インクリメンタル仮想コピー処理116は、ターゲット変更記録構造体220内のインジケータを更新し、最後のインクリメンタル仮想コピー動作以降にターゲット・データ・ブロックが更新されなかったことを示す。本発明の特定の実施においては、ターゲット変更記録構造体220内の全てのインジケータがゼロに設定される。   After the target copy structure 200 is updated at block 420, the incremental virtual copy process 116 updates the indicator in the source change recording structure 210 so that the source data block has been updated since the last incremental virtual copy operation. Indicates that it was not updated. In a particular implementation of the present invention, all indicators in the source change recording structure 210 are set to zero. In block 430, the incremental virtual copy process 116 updates the indicator in the target change recording structure 220 to indicate that the target data block has not been updated since the last incremental virtual copy operation. In a particular implementation of the invention, all indicators in the target change recording structure 220 are set to zero.

図6は、本発明の特定の実施に従って書き込み動作を処理するための、書き込み処理114において実施される論理を示す。ブロック500において、制御は、データ・ブロック書き込み要求を受信する書き込み処理114で開始する。ブロック520において、書き込み処理114が、データ・ブロックがインクリメンタル仮想コピー関連性にあるかどうかを判断する。データ・ブロックがインクリメンタル仮想コピー関連性にある場合には、処理はブロック530に続き、他の場合には、処理はブロック560に続く。ブロック530において、書き込み処理114は、データ・ブロックがターゲット格納部130内にあるかどうかを判断する。データ・ブロックがターゲット格納部130内にある場合には、処理はブロック540に続き、他の場合には、処理はブロック550に続く。   FIG. 6 illustrates the logic performed in the write process 114 for processing write operations in accordance with a particular implementation of the present invention. In block 500, control begins with a write process 114 that receives a data block write request. At block 520, the write process 114 determines whether the data block is in an incremental virtual copy relationship. If the data block is in an incremental virtual copy relationship, processing continues at block 530, otherwise processing continues at block 560. In block 530, the write process 114 determines whether the data block is in the target store 130. If the data block is in the target store 130, processing continues at block 540, otherwise processing continues at block 550.

ブロック540において、ターゲット変更記録構造体220内のデータ・ブロックについてのインジケータが更新され、最後のインクリメンタル仮想コピー動作以降にターゲット・データ・ブロックが変更されたことを示す。本発明の特定の実施においては、ターゲット変更記録構造体220内のインジケータが1に設定される。ブロック550において、ソース変更記録構造体210内のデータ・ブロックについてのインジケータが更新され、最後のインクリメンタル仮想コピー動作以降にソース・データ・ブロックが変更されたことを示す。本発明の特定の実施においては、ソース変更記録構造体210内のインジケータが1に設定される。ブロック560においては、書き込み動作は、書き込み処理114によって実行される。   At block 540, the indicator for the data block in the target change recording structure 220 is updated to indicate that the target data block has changed since the last incremental virtual copy operation. In a particular implementation of the present invention, the indicator in the target change recording structure 220 is set to 1. At block 550, the indicator for the data block in the source change recording structure 210 is updated to indicate that the source data block has changed since the last incremental virtual copy operation. In a particular implementation of the present invention, the indicator in the source change recording structure 210 is set to 1. In block 560, the write operation is performed by the write process 114.

図7は、本発明の特定の実施に従って読み取り動作を処理するための、読み取り処理112において実施される論理を示す。ブロック600において、制御は、データ・ブロック読み取り要求の受信で開始する。ブロック620において、読み取り処理112が、データ・ブロックがインクリメンタル仮想コピー関連性にあるターゲットであるかどうかを判断する。データ・ブロックがインクリメンタル仮想コピー関連性にあるターゲットである場合には、処理はブロック630に続き、他の場合には、処理はブロック660に続く。ブロック630において、読み取り処理は、データ・ブロックについてのインジケータがターゲット・コピー構造体において設定されるかどうかを判断し、そのデータがソース格納部120から読み取られることを示す。データ・ブロックについてのインジケータがターゲット・コピー構造体において設定される場合には、処理はブロック640に続き、他の場合には、処理はブロック650に続く。   FIG. 7 illustrates the logic implemented in the read process 112 for processing read operations in accordance with a particular implementation of the present invention. In block 600, control begins with receipt of a data block read request. At block 620, the read process 112 determines whether the data block is a target that is in incremental virtual copy relevance. If the data block is a target that is in an incremental virtual copy relationship, processing continues to block 630; otherwise, processing continues to block 660. At block 630, the read process determines whether an indicator for the data block is set in the target copy structure and indicates that the data is read from the source store 120. If the indicator for the data block is set in the target copy structure, processing continues at block 640, otherwise processing continues at block 650.

ブロック640において、読み取り処理112は、ソース格納部120からデータ・ブロックを読み取る(すなわち、ステージする)。ブロック650において、読み取り処理112は、ターゲット格納部130からデータ・ブロックを読み取る(すなわち、ステージする)。ブロック660において、読み取り処理112は、データ・ブロックの通常の読み取りを実行する。   At block 640, the read process 112 reads (ie, stages) the data block from the source store 120. At block 650, the read process 112 reads (ie, stages) the data block from the target store 130. At block 660, the read process 112 performs a normal read of the data block.

図8は、本発明の特定の実施に従ったバックグラウンド・コピー処理を示す。ブロック700において、制御は、データ・ブロックをコピーすべき時であるかどうかの判断で開始する。ブロック710において、データ・ブロックについてのターゲット・コピー構造体内のインジケータが、データ・ブロックがコピーされなかったことを示しているかどうかを判断する。データ・ブロックがコピーされなかったことを示している場合には、処理はブロック730に続き、他の場合には、処理はブロック720に続く。ブロック720において、次のデータ・ブロックを処理することができ、或いは処理される他のデータ・ブロックがない場合には、この論理を終了する。   FIG. 8 illustrates a background copy process according to a particular implementation of the present invention. In block 700, control begins with a determination of whether it is time to copy the data block. At block 710, it is determined whether an indicator in the target copy structure for the data block indicates that the data block has not been copied. If it indicates that the data block has not been copied, processing continues at block 730; otherwise, processing continues at block 720. At block 720, the next data block can be processed, or the logic ends if no other data block is processed.

ブロック730において、図7の論理に従ってデータ・ブロックが読み取られる。ブロック740において、データ・ブロックは、ターゲット格納部130にデステージされる。ブロック750において、データ・ブロックのためのターゲット・コピー構造体200内のインジケータが更新され、データ・ブロックがコピーされたことを示す。本発明の特定の実施において、ターゲット・コピー構造体200内のインジケータはゼロに設定される。   At block 730, the data block is read according to the logic of FIG. At block 740, the data block is destaged to the target store 130. At block 750, the indicator in the target copy structure 200 for the data block is updated to indicate that the data block has been copied. In a particular implementation of the invention, the indicator in the target copy structure 200 is set to zero.

このように、本発明の特定の実施において、インクリメンタル仮想コピー動作は、書き込み(すなわち、更新)を監視し、即時仮想コピー関係に参加するボリュームのトラックへの変更を記録することによって達成される。最初の即時仮想コピー動作の後、ソース・ボリューム全体をコピーすることなく、ソース・ボリューム又はターゲット・ボリュームのいずれかにおいて更新されたトラックを、ソース・ボリュームからターゲット・ボリュームにコピーすることができる。   Thus, in a specific implementation of the present invention, incremental virtual copy operations are accomplished by monitoring writes (ie, updates) and recording changes to the tracks of the volumes that participate in the immediate virtual copy relationship. After the initial immediate virtual copy operation, tracks updated in either the source volume or the target volume can be copied from the source volume to the target volume without copying the entire source volume.

Enterprise Storage Server、FlashCopy及び3990は、米国及び/又は他の国におけるInternational Business Machines Corporation社の商標又はコモンロー上の商標である。   Enterprise Storage Server, FlashCopy, and 3990 are trademarks of International Business Machines Corporation or common law trademarks in the United States and / or other countries.

付加的な実施の詳細
インクリメンタル仮想コピーのための述べられた技術は、方法、装置、又は製品としてし、ソフトウェア、ファームウェア、ハードウェア、又はこれらのあらゆる組み合わせを生産するための標準的なプログラミング、及び/又は、工学技術を用いて実施することができる。ここで用いる「製品」という用語は、ハードウェア論理(例えば、集積回路チップ、プログラマブル・ゲート・アレイ(PGA)、特定用途向け集積回路(ASIC)など)において実施されるコード又は論理、又は、磁気格納媒体(例えば、ハードディスク・ドライブ、フロッピィ・ディスク、テープなど)のようなコンピュータ可読媒体、光学格納(CDROM、光ディスクなど)、揮発性及び不揮発性メモリ・デバイス(例えば、EEPROM、ROM、PROM、RAM、DRAM、SRAM、ファームウェア、プログラマブル論理など)を指す。コンピュータ可読媒体におけるコードは、さらに、伝送媒体を通して、又は、ネットワーク上のファイル・サーバからアクセス可能とすることができる。このような場合においては、コードが実施される製品は、ネットワーク伝送ライン、ワイヤレス伝送媒体、空気を通って伝搬する信号、無線波、赤外線信号等などの伝送媒体を含むことができる。したがって、「製品」は、コードが具現される媒体を含むことができる。さらに、「製品」は、コードが具現され、処理され、実行されるハードウェア・コンポーネントとソフトウェア・コンポーネントの組み合わせを含むことができる。もちろん、当業者であれば、本発明の範囲から逸脱することなく、多くの修正をこの構成に行うことができ、製品は、当該技術分野に知られる媒体を支持するあらゆる情報を含むことができることを認識するであろう。
Additional Implementation Details The described technique for incremental virtual copying is a standard programming to produce software, firmware, hardware, or any combination thereof, as a method, apparatus, or product, and It can be implemented using engineering techniques. As used herein, the term “product” refers to code or logic implemented in hardware logic (eg, an integrated circuit chip, programmable gate array (PGA), application specific integrated circuit (ASIC), etc.), or magnetic Computer readable media such as storage media (eg, hard disk drive, floppy disk, tape, etc.), optical storage (CDROM, optical disk, etc.), volatile and non-volatile memory devices (eg, EEPROM, ROM, PROM, RAM) , DRAM, SRAM, firmware, programmable logic, etc.). The code on the computer-readable medium may further be accessible through a transmission medium or from a file server on the network. In such a case, the product on which the code is implemented may include transmission media such as network transmission lines, wireless transmission media, signals propagating through the air, radio waves, infrared signals, and the like. Accordingly, the “product” may include a medium in which the code is embodied. Further, a “product” can include a combination of hardware and software components in which code is embodied, processed, and executed. Of course, one of ordinary skill in the art can make many modifications to this configuration without departing from the scope of the present invention, and the product can include any information supporting media known in the art. Will recognize.

図4から図8までの論理は、特定の順番で生じる特定の動作を説明する。代替的な実施においては、特定の論理動作は、異なる順番で実行してもよいし、又は修正或いは除去してもよい。さらに、上述の論理に動作を付加することができ、依然として述べられた実施に適合することができる。さらに、ここに述べられる動作は、順次に生じてもよいし、又は、特定の動作が平行して処理されてもよく、或いは単一の処理によって実行されるものとして説明された動作を分散処理によって実行してもよい。   The logic of FIGS. 4-8 describes specific operations that occur in a specific order. In alternative implementations, certain logic operations may be performed in a different order, or modified or removed. Furthermore, operations can be added to the logic described above and still be compatible with the described implementation. Further, the operations described herein may occur sequentially, or certain operations may be processed in parallel, or operations described as being performed by a single process may be distributed. It may be executed by.

図4から図8までの図示された論理は、ソフトウェア、ハードウェア、プログラマブル及び非プログラマブル・ゲート・アレイ論理、或いはハードウェア、ソフトウェア、又はゲート・アレイ論理のあらゆる組み合わせにおいて実施することができる。   The illustrated logic of FIGS. 4-8 can be implemented in software, hardware, programmable and non-programmable gate array logic, or any combination of hardware, software, or gate array logic.

図9は、本発明の特定の実施に従って用いることができるコンピュータ・システムのアーキテクチャを示す。格納コントローラ100及び/又はホスト140は、コンピュータ・アーキテクチャ800を実装することができる。コンピュータ・アーキテクチャ800は、プロセッサ802(例えば、マイクロプロセッサ)、メモリ804(例えば、揮発性メモリ・デバイス)、及び格納部810(例えば、磁気ディスク・ドライブ、光ディスク・ドライブ、光ディスク・ドライブ、テープ・ドライブなどの不揮発性格納部)を実装することができる。メモリ804において、オペレーティング・システム805を実行することができる。格納部810は、内蔵式格納デバイス、或いは取付け式格納部又はネットワーク・アクセス可能な格納部を含むこともできる。当該技術分野に知られている方法で、格納部810内のコンピュータ・プログラム806をメモリ804に読み込み、プロセッサ802によって実行することができる。アーキテクチャは、ネットワークとの通信を可能にするネットワーク・カード808をさらに含む。プロセッサ802にユーザ入力を提供するために、入力デバイス812が用いられ、この入力デバイス812は、キーボード、マウス、ペン・スタイラス、マイクロフォン、タッチ・センシティブ表示スクリーン、又はあらゆる他の当該技術分野に知られる作動又は入力機構を含むことができる。出力デバイス814は、プロセッサ802又は表示モニタ、プリンタ、格納部などの他のコンポーネントから伝送される情報をレンダリングすることができる。コンピュータ・システムのコンピュータ・アーキテクチャ800は、図示されたものより少ないコンポーネントを含んでもよく、ここに図示されない付加的なコンポーネントを含んでもよく、或いは図示されたコンポーネントと付加的なコンポーネントの何らかの組み合わせを含んでもよい。   FIG. 9 illustrates the architecture of a computer system that can be used in accordance with a particular implementation of the present invention. Storage controller 100 and / or host 140 may implement computer architecture 800. The computer architecture 800 includes a processor 802 (eg, a microprocessor), memory 804 (eg, volatile memory device), and storage 810 (eg, magnetic disk drive, optical disk drive, optical disk drive, tape drive). Etc.) can be implemented. An operating system 805 can execute in the memory 804. The storage 810 can also include a self-contained storage device, or a mounted storage or a network accessible storage. The computer program 806 in the storage unit 810 can be read into the memory 804 and executed by the processor 802 by methods known in the art. The architecture further includes a network card 808 that enables communication with the network. An input device 812 is used to provide user input to the processor 802, which is known to the keyboard, mouse, pen stylus, microphone, touch sensitive display screen, or any other art. An actuation or input mechanism can be included. The output device 814 can render information transmitted from the processor 802 or other components such as a display monitor, printer, storage, and the like. The computer system's computer architecture 800 may include fewer components than those shown, may include additional components not shown here, or may include some combination of the components shown and additional components. But you can.

コンピュータ・アーキテクチャ800は、メインフレーム、サーバ、パーソナル・コンピュータ、ワークステーション、ラップトップ、手持ち式コンピュータ、テレフォニー・デバイス、ネットワーク・アプライアンス、仮想化デバイス、格納コントローラ等といった当該技術分野に知られている、あらゆるコンピューティング・デバイスを含むことができる。当該技術分野に知られている、あらゆるプロセッサ802及びオペレーティング・システム805を用いることができる。   Computer architecture 800 is known in the art such as mainframes, servers, personal computers, workstations, laptops, handheld computers, telephony devices, network appliances, virtualization devices, storage controllers, etc. Any computing device can be included. Any processor 802 and operating system 805 known in the art can be used.

本発明の実施の上記の説明は、例証及び説明のために与えられたものである。本発明の実施の上記の説明は、網羅的なものであること、本発明を開示された正確な形態に制限することも意図していない。上記の教示に照らして多くの修正及び変形が可能である。本発明の範囲は、この詳細な説明ではなく、ここに添付された特許請求の範囲によって制限されることが意図されている。上記の仕様、例、及びデータは、本発明の構成の製造及び使用を十分に説明するものである。本発明の精神及び範囲から逸脱することなく、本発明の多くの実施を行うことができるので、本発明は、上記の添付の特許請求の範囲内にある。   The above description of implementation of the invention has been given for the purposes of illustration and description. The above description of implementation of the invention is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the invention be limited not by this detailed description, but rather by the claims appended hereto. The above specifications, examples, and data are sufficient to describe the manufacture and use of the composition of the invention. Since many implementations of the invention can be made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended.

本発明の特定の実施に従ったコンピューティング環境をブロック図で示す。FIG. 2 illustrates in a block diagram a computing environment in accordance with certain implementations of the invention. 本発明の特定の実施に従ったコンピューティング環境をブロック図で示す。FIG. 2 illustrates in a block diagram a computing environment in accordance with certain implementations of the invention. 本発明の特定の実施に従った種々の構造体を示す。Fig. 4 illustrates various structures according to certain implementations of the invention. 本発明の特定の実施に従って構造体を更新するための論理を示す。Fig. 4 illustrates logic for updating a structure in accordance with a particular implementation of the present invention. 本発明の特定の実施に従ってインクリメンタル仮想コピー動作を実行するための論理を示す。Fig. 4 illustrates logic for performing an incremental virtual copy operation in accordance with a specific implementation of the present invention. 本発明の特定の実施に従って書き込み動作を処理するための、書き込み処理において実施される論理を示す。Fig. 4 illustrates logic implemented in a write process for processing a write operation in accordance with a particular implementation of the present invention. 本発明の特定の実施に従って読み取り動作を処理するための、読み取り処理において実施される論理を示す。Fig. 4 illustrates logic implemented in a read process for processing a read operation in accordance with a particular implementation of the present invention. 本発明の特定の実施に従ったバックグラウンド・コピー処理を示す。Fig. 4 illustrates a background copy process according to a specific implementation of the present invention. 本発明の特定の実施に従って用い得るコンピュータ・システムのアーキテクチャを示す。Fig. 2 illustrates a computer system architecture that may be used in accordance with certain implementations of the invention.

Claims (9)

ソース格納部とターゲット格納部との間でデータを転送するためのシステムにおいて、転送されるデータ量を減少させる方法であって、
前記システムは、
1つ又はそれ以上のホスト・コンピュータと、
前記ホスト・コンピュータにネットワークを介して接続される1つ又はそれ以上の格納コントローラと、
前記格納コントローラに接続されうるソース格納部であって、1つ又はそれ以上のソース・データ・ブロックをソース・ボリュームとして含む、前記ソース格納部と、
前記格納コントローラに接続されうるターゲット格納部であって、1つ又はそれ以上のターゲット・データ・ブロックをターゲット・ボリュームとして含み、前記ターゲット・データ・ブロックは、前記ソース・ボリュームの全て又は一部のコピーを維持する、前記ターゲット格納部と
を含み、
前記格納コントローラは、前記ソース格納部又は前記ターゲット格納部への入力又は出力要求を前記ホスト・コンピュータから受け取り、該要求を前記ソース格納部又は前記ターゲット格納部へ向け、さらに前記ソース格納部と前記ターゲット格納部との間のデータ転送を制御し、
前記格納コントローラは、
システム・メモリと、
前記ソース格納部に接続されうるソース・キャッシュであって、前記ソース格納部にデータが書き込まれるまで前記ソース格納部内へのデータ更新が維持される、前記ソース・キャッシュと、
前記ターゲット格納部に接続されうるターゲット・キャッシュであって、前記ターゲット格納部にデータが書き込まれるまで前記ターゲット格納部内へのデータ更新が維持される、前記ターゲット・キャッシュと、
不揮発性キャッシュと
を含み、
前記格納コントローラは、
前記ソース格納部から前記ソース・キャッシュへ及び前記ターゲット格納部から前記ターゲット・キャッシュへデータを読み取るための読み取り処理と、
前記ソース・キャッシュから前記ソース格納部へ及び前記ターゲット・キャッシュから前記ターゲット格納部へデータを書き込むための書き込み処理と、
ソース格納部からターゲット格納部にデータを転送し、仮想コピー動作を実行する仮想コピー処理と
を前記システム・メモリ内に読み込み、そして実行することができ、
前記不揮発性キャッシュは、
ソース変更記録構造体と、
ターゲット変更記録構造体と、
ターゲット・コピー構造体と
を記憶し、
前記ソース変更記録構造体は、前記各ソース・データ・ブロックについての第1のインジケータを含み、前記第1のインジケータは、ソース・データ・ブロックが仮想コピー動作として最後にターゲット格納部に転送されたとき以降に、該ソース・データ・ブロックが更新されたかどうかを示し、
前記ターゲット変更記録構造体は、前記各ターゲット・データ・ブロックについての第2のインジケータを含み、前記第2のインジケータは、ターゲット・データ・ブロックが仮想コピー動作として該ターゲット・データ・ブロックに対応するソース・データ・ブロックによって更新されたとき以降に、ターゲット・データ・ブロックが更新されたかどうかを示し、
前記ターゲット・コピー構造体は、前記各ターゲット・データ・ブロックについての第3のインジケータを含み、前記3のインジケータは、仮想コピー動作としてソース・データ・ブロックがターゲット・データ・ブロックに転送されるべきであるかどうかを示し、
前記方法は、前記システムに、仮想コピー動作を可能にするために、
前記ソース格納部の1つ又はそれ以上のソース・ボリュームと前記ターゲット格納部の前記1つ又はそれ以上のソース・ボリュームに対応する1つ又はそれ以上のターゲット格納部のターゲット・ボリュームとの間で仮想コピー関連性を確立するステップと、
前記ソース格納部からソース・データ・ブロックを取り出されるべきこと、及び前記ソース格納部から前記ターゲット格納部に前記ソース・データ・ブロックがコピーされるべきであることを示すように前記第3のインジケータを更新するステップと、
ソース・データ・ブロックが仮想コピー動作として最後にターゲット格納部に転送されたとき以降に、前記ソース・データ・ブロックが更新されなかったことを示すように前記第1のインジケータを更新するステップと、
前記仮想コピー動作として最後にターゲット格納部に転送された以降に、前記ターゲット・データ・ブロックが更新されなかったことを示すように前記第2のインジケータを更新するステップと
実行させることを含む、前記方法。
In a system for transferring data between a source storage and a target storage, a method for reducing the amount of data transferred,
The system
One or more host computers;
One or more storage controllers connected to the host computer via a network;
A source storage that may be connected to the storage controller, the source storage including one or more source data blocks as a source volume;
A target storage that can be connected to the storage controller, comprising one or more target data blocks as a target volume, the target data blocks being all or part of the source volume Maintaining a copy of the target storage and
Including
The storage controller receives an input or output request to the source storage unit or the target storage unit from the host computer, directs the request to the source storage unit or the target storage unit, and further, the source storage unit and the target storage unit Control data transfer to and from the target store,
The storage controller
System memory,
A source cache that can be connected to the source storage, wherein the data update is maintained in the source storage until data is written to the source storage;
A target cache that can be connected to the target storage, wherein the target cache maintains data updates until data is written to the target storage; and
With non-volatile cache
Including
The storage controller
A read process for reading data from the source store to the source cache and from the target store to the target cache;
A write process for writing data from the source cache to the source storage and from the target cache to the target storage;
A virtual copy process that transfers data from the source storage to the target storage and performs a virtual copy operation;
Can be loaded into the system memory and executed,
The non-volatile cache is
A source change record structure; and
A target change recording structure;
With the target copy structure
Remember
The source change recording structure includes a first indicator for each source data block, the first indicator being last transferred to the target store as a virtual copy operation . since when, indicates whether the source data block has been updated,
The target change recording structure includes a second indicator for each target data block, the second indicator corresponding to the target data block as a virtual copy operation by the target data block . since when it is updated by the source data block, it indicates whether or not the target data block has been updated,
The target copy structure includes a third indicator for each target data block, the third indicator transferring a source data block to the target data block as a virtual copy operation. Whether it should be
The method provides the system with a virtual copy operation.
Between one or more source volumes of the source store and a target volume of one or more target stores corresponding to the one or more source volumes of the target store Establishing a virtual copy relevance;
The third indicator to indicate that a source data block is to be retrieved from the source store and that the source data block is to be copied from the source store to the target store A step of updating
Updating the first indicator to indicate that the source data block has not been updated since the last time the source data block was transferred to the target store as a virtual copy operation;
Since the last transferred to target storage unit as the virtual copy operation, comprising and a step of updating the second indicator to indicate that the target data block has not been updated, Said method.
前記方法は、前記システムに、The method includes:
データ・ブロックへの書き込み要求を受信するステップと、Receiving a write request to a data block;
前記書き込み対象のデータ・ブロックが前記仮想コピー関連性内にあるかどうかを判断するステップと、Determining whether the data block to be written is within the virtual copy association;
前記仮想コピー関連性にある場合に、前記書き込み対象のデータ・ブロックが前記ターゲット格納部内にあるかどうかを判断するステップと、Determining if the data block to be written is in the target storage if it is in the virtual copy relevance;
前記書き込み対象のデータ・ブロックが前記ターゲット格納部内にある場合に、前記第2のインジケータを更新するステップと、Updating the second indicator when the data block to be written is in the target store;
前記前記書き込み対象のデータ・ブロックが前記ターゲット格納部内にない場合に、前記第1のインジケータを更新するステップと、Updating the first indicator if the data block to be written is not in the target store;
前記データ・ブロックへの書き込みを実行するステップとPerforming a write to the data block;
を実行させることを含む、請求項1に記載の方法。The method according to claim 1, further comprising:
前記方法は、前記システムに、The method includes:
データ・ブロックへの読み取り要求を受信するステップと、Receiving a read request for a data block;
前記読み取り対象のデータ・ブロックが前記仮想コピー関連性内にあるかどうかを判断するステップと、Determining whether the data block to be read is within the virtual copy association;
前記仮想コピー関連性にある場合に、前記第3のインジケータが読み取り対象が前記ソース格納部であるべきであることを示すかどうかを判断するステップと、Determining if the third indicator indicates that the read target should be the source store when in the virtual copy relevance;
前記第3のインジケータが読み取り対象が前記ソース格納部であるべきであることを示す場合に、前記ソース格納部からデータ・ブロックを読み取るステップとReading a block of data from the source store if the third indicator indicates that the read target should be the source store;
前記第3のインジケータが読み取り対象が前記ソース格納部であるべきであることを示さない場合に、前記ターゲット格納部からデータ・ブロックを読み取るステップとReading a data block from the target store if the third indicator does not indicate that the read target should be the source store;
を実行させることを含む、請求項1に記載の方法。The method according to claim 1, further comprising:
前記方法は、前記システムに、The method includes:
データ・ブロックをバックグラウンドでコピーすると判断する場合に、If you decide to copy the data block in the background,
前記第3のインジケータがデータ・ブロックがコピーされなかったことを示す場合に、該データ・ブロックを読み取り、前記ターゲット格納部にコピーし、そして前記データ・ブロックがコピーされたことを示すように前記第3のインジケータを更新するステップと、If the third indicator indicates that the data block has not been copied, the data block is read, copied to the target store, and the data block is copied to indicate that the data block has been copied. Updating the third indicator;
前記第3のインジケータがデータ・ブロックがコピーされたことを示す場合に、処理されるべき次のデータ・ブロックがある場合、該次のデータ・ブロックを処理するステップとProcessing the next data block if there is a next data block to be processed if the third indicator indicates that the data block has been copied;
を実行させることを含む、請求項1に記載の方法。The method according to claim 1, further comprising:
ソース格納部とターゲット格納部との間でデータを転送するためのシステムであって、
1つ又はそれ以上のホスト・コンピュータと、
前記ホスト・コンピュータにネットワークを介して接続される1つ又はそれ以上の格納コントローラと、
前記格納コントローラに接続されうるソース格納部であって、1つ又はそれ以上のソース・データ・ブロックをソース・ボリュームとして含む、前記ソース格納部と、
前記格納コントローラに接続されうるターゲット格納部であって、1つ又はそれ以上のターゲット・データ・ブロックをターゲット・ボリュームとして含み、前記ターゲット・データ・ブロックは、前記ソース・ボリュームの全て又は一部のコピーを維持する、前記ターゲット格納部と
を含み、
前記格納コントローラは、前記ソース格納部又は前記ターゲット格納部への入力又は出力要求を前記ホスト・コンピュータから受け取り、該要求を前記ソース格納部又は前記ターゲット格納部へ向け、さらに前記ソース格納部と前記ターゲット格納部との間のデータ転送を制御し、
前記格納コントローラは、
システム・メモリと、
前記ソース格納部に接続されうるソース・キャッシュであって、前記ソース格納部にデータが書き込まれるまで前記ソース格納部内へのデータ更新が維持される、前記ソース・キャッシュと、
前記ターゲット格納部に接続されうるターゲット・キャッシュであって、前記ターゲット格納部にデータが書き込まれるまで前記ターゲット格納部内へのデータ更新が維持される、前記ターゲット・キャッシュと、
不揮発性キャッシュと
を含み、
前記格納コントローラは、
前記ソース格納部から前記ソース・キャッシュへ及び前記ターゲット格納部から前記ターゲット・キャッシュへデータを読み取るための読み取り処理と、
前記ソース・キャッシュから前記ソース格納部へ及び前記ターゲット・キャッシュから前記ターゲット格納部へデータを書き込むための書き込み処理と、
ソース格納部からターゲット格納部にデータを転送し、仮想コピー動作を実行する仮想コピー処理と
を前記システム・メモリ内に読み込み、そして実行することができ、
前記不揮発性キャッシュは、
ソース変更記録構造体と、
ターゲット変更記録構造体と、
ターゲット・コピー構造体と
を記憶し、
前記ソース変更記録構造体は、前記各ソース・データ・ブロックについての第1のインジケータを含み、前記第1のインジケータは、ソース・データ・ブロックが仮想コピー動作として最後にターゲット格納部に転送されたとき以降に、該ソース・データ・ブロックが更新されたかどうかを示し、
前記ターゲット変更記録構造体は、前記各ターゲット・データ・ブロックについての第2のインジケータを含み、前記第2のインジケータは、ターゲット・データ・ブロックが仮想コピー動作として該ターゲット・データ・ブロックに対応するソース・データ・ブロックによって更新されたとき以降に、ターゲット・データ・ブロックが更新されたかどうかを示し、
前記ターゲット・コピー構造体は、前記各ターゲット・データ・ブロックについての第3のインジケータを含み、前記第3のインジケータは、仮想コピー動作としてソース・データ・ブロックがターゲット・データ・ブロックに転送されるべきであるかどうかを示し、
前記システムは、仮想コピー動作を可能にするために、
前記ソース格納部の1つ又はそれ以上のソース・ボリュームと前記ターゲット格納部の前記1つ又はそれ以上のソース・ボリュームに対応する1つ又はそれ以上のターゲット格納部のターゲット・ボリューム間で仮想コピー関連性を確立し、
前記ソース格納部からソース・データ・ブロックを取り出されるべきこと、及び前記ソース格納部から前記ターゲット格納部に前記ソース・データ・ブロックがコピーされるべきであることを示すように前記第3のインジケータを更新し、
ソース・データ・ブロックが仮想コピー動作として最後にターゲット格納部に転送されたとき以降に、前記ソース・データ・ブロックが更新されなかったことを示すように前記第1のインジケータを更新し、
前記仮想コピー動作として最後にターゲット格納部に転送された以降に、前記ターゲット・データ・ブロックが更新されなかったことを示すように前記第2のインジケータを更新する、
前記システム。
A system for transferring data between a source store and a target store,
One or more host computers;
One or more storage controllers connected to the host computer via a network;
A source storage that may be connected to the storage controller, the source storage including one or more source data blocks as a source volume;
A target storage that can be connected to the storage controller, comprising one or more target data blocks as a target volume, the target data blocks being all or part of the source volume Maintaining a copy of the target storage and
Including
The storage controller receives an input or output request to the source storage unit or the target storage unit from the host computer, directs the request to the source storage unit or the target storage unit, and further, the source storage unit and the target storage unit Control data transfer to and from the target store,
The storage controller
System memory,
A source cache that can be connected to the source storage, wherein the data update is maintained in the source storage until data is written to the source storage;
A target cache that can be connected to the target storage, wherein the target cache maintains data updates until data is written to the target storage; and
With non-volatile cache
Including
The storage controller
A read process for reading data from the source store to the source cache and from the target store to the target cache;
A write process for writing data from the source cache to the source storage and from the target cache to the target storage;
A virtual copy process that transfers data from the source storage to the target storage and performs a virtual copy operation;
Can be loaded into the system memory and executed,
The non-volatile cache is
A source change record structure; and
A target change recording structure;
With the target copy structure
Remember
The source change recording structure includes a first indicator for each source data block, the first indicator being last transferred to the target store as a virtual copy operation . since when, indicates whether the source data block has been updated,
The target change recording structure includes a second indicator for each target data block, the second indicator corresponding to the target data block as a virtual copy operation by the target data block . since when it is updated by the source data block, it indicates whether or not the target data block has been updated,
The target copy structure includes a third indicator for each target data block, the third indicator transferring a source data block to the target data block as a virtual copy operation. Whether it should be
In order to enable the virtual copy operation, the system
Virtual copy between one or more source volumes of the source storage and target volumes of one or more target storages corresponding to the one or more source volumes of the target storage Establish relevance,
The third indicator to indicate that a source data block is to be retrieved from the source store and that the source data block is to be copied from the source store to the target store Update
Updating the first indicator to indicate that the source data block has not been updated since the last time the source data block was transferred to the target store as a virtual copy operation;
Updating the second indicator to indicate that the target data block has not been updated since it was last transferred to the target store as the virtual copy operation;
Said system.
データ・ブロックへの書き込み要求を受信し、Receive a write request to a data block,
前記書き込み対象のデータ・ブロックが前記仮想コピー関連性内にあるかどうかを判断し、Determining whether the data block to be written is within the virtual copy association;
前記仮想コピー関連性にある場合に、前記書き込み対象のデータ・ブロックが前記ターゲット格納部内にあるかどうかを判断し、If it is in the virtual copy relationship, determine whether the data block to be written is in the target storage;
前記書き込み対象のデータ・ブロックが前記ターゲット格納部内にある場合に、前記第2のインジケータを更新し、Updating the second indicator when the data block to be written is in the target store;
前記前記書き込み対象のデータ・ブロックが前記ターゲット格納部内にない場合に、前記第1のインジケータを更新し、Updating the first indicator if the data block to be written is not in the target store;
前記データ・ブロックへの書き込みを実行する、Performing a write to the data block;
請求項5に記載のシステム。The system according to claim 5.
データ・ブロックへの読み取り要求を受信し、Receive a read request to the data block,
前記読み取り対象のデータ・ブロックが前記仮想コピー関連性内にあるかどうかを判断し、Determining whether the data block to be read is within the virtual copy association;
前記仮想コピー関連性にある場合に、前記第3のインジケータが読み取り対象が前記ソース格納部であるべきであることを示すかどうかを判断し、If in the virtual copy relevance, determine whether the third indicator indicates that the read target should be the source store;
前記第3のインジケータが読み取り対象が前記ソース格納部であるべきであることを示す場合に、前記ソース格納部からデータ・ブロックを読み取りRead a data block from the source store when the third indicator indicates that the read target should be the source store
前記第3のインジケータが読み取り対象が前記ソース格納部であるべきであることを示さない場合に、前記ターゲット格納部からデータ・ブロックを読み取る、Reads a block of data from the target store if the third indicator does not indicate that the read target should be the source store;
請求項5に記載のシステム。The system according to claim 5.
データ・ブロックをバックグラウンドでコピーすると判断される場合に、If it is determined that the data block is copied in the background,
前記第3のインジケータがデータ・ブロックがコピーされなかったことを示す場合に、該データ・ブロックを読み取り、前記ターゲット格納部にコピーし、そして前記データ・ブロックがコピーされたことを示すように前記第3のインジケータを更新し、If the third indicator indicates that the data block has not been copied, the data block is read, copied to the target store, and the data block is copied to indicate that the data block has been copied. Update the third indicator,
前記第3のインジケータがデータ・ブロックがコピーされたことを示す場合に、処理されるべき次のデータ・ブロックがある場合、該次のデータ・ブロックを処理する、If there is a next data block to be processed when the third indicator indicates that the data block has been copied, process the next data block;
請求項5に記載のシステム。The system according to claim 5.
コンピュータ・システムに、請求項1〜4のいずれか1項に記載の方法のステップを実行させるコンピュータ・プログラム。The computer program which makes a computer system perform each step of the method of any one of Claims 1-4 .
JP2006516135A 2003-06-18 2004-06-11 Method, system, and program for incremental virtual copy Expired - Fee Related JP4398463B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/465,118 US6996586B2 (en) 2003-06-18 2003-06-18 Method, system, and article for incremental virtual copy of a data block
PCT/EP2004/051044 WO2004114136A2 (en) 2003-06-18 2004-06-11 Method, system, and program for incremental virtual copy

Publications (3)

Publication Number Publication Date
JP2006527873A JP2006527873A (en) 2006-12-07
JP2006527873A5 JP2006527873A5 (en) 2009-06-18
JP4398463B2 true JP4398463B2 (en) 2010-01-13

Family

ID=33517438

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006516135A Expired - Fee Related JP4398463B2 (en) 2003-06-18 2004-06-11 Method, system, and program for incremental virtual copy

Country Status (8)

Country Link
US (1) US6996586B2 (en)
EP (1) EP1634173B1 (en)
JP (1) JP4398463B2 (en)
CN (1) CN100356336C (en)
AT (1) ATE338303T1 (en)
DE (1) DE602004002216T2 (en)
TW (1) TWI289749B (en)
WO (1) WO2004114136A2 (en)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7000145B2 (en) * 2003-06-18 2006-02-14 International Business Machines Corporation Method, system, and program for reverse restore of an incremental virtual copy
US7467266B2 (en) * 2003-08-05 2008-12-16 International Business Machines Corporation Snapshot management method apparatus and system
US7277997B2 (en) * 2004-03-16 2007-10-02 International Business Machines Corporation Data consistency for mirroring updatable source data storage
US7409510B2 (en) * 2004-05-27 2008-08-05 International Business Machines Corporation Instant virtual copy to a primary mirroring portion of data
US7461100B2 (en) * 2004-05-27 2008-12-02 International Business Machines Corporation Method for fast reverse restore
US7346733B2 (en) 2004-09-09 2008-03-18 Hitachi, Ltd. Storage apparatus, system and method using a plurality of object-based storage devices
JP2006164162A (en) 2004-12-10 2006-06-22 Fujitsu Ltd Copy control device and method
US7415488B1 (en) * 2004-12-31 2008-08-19 Symantec Operating Corporation System and method for redundant storage consistency recovery
US7617259B1 (en) * 2004-12-31 2009-11-10 Symantec Operating Corporation System and method for managing redundant storage consistency at a file system level
US7617260B2 (en) * 2005-11-10 2009-11-10 International Business Machines Corporation Data set version counting in a mixed local storage and remote storage environment
US20090313428A1 (en) * 2006-09-25 2009-12-17 Intellimagic Optimising Remote Mirroring Resynchronisation
US7587564B2 (en) * 2006-09-26 2009-09-08 International Business Machines Corporation System, method and computer program product for managing data versions
CN101589386B (en) * 2006-12-04 2013-03-27 桑迪士克Il有限公司 Incremental transparent file updating
US8589341B2 (en) * 2006-12-04 2013-11-19 Sandisk Il Ltd. Incremental transparent file updating
US7865473B2 (en) * 2007-04-02 2011-01-04 International Business Machines Corporation Generating and indicating incremental backup copies from virtual copies of a data set
US8250323B2 (en) * 2007-12-06 2012-08-21 International Business Machines Corporation Determining whether to use a repository to store data updated during a resynchronization
JP5425922B2 (en) 2008-10-30 2014-02-26 インターナショナル・ビジネス・マシーンズ・コーポレーション Method, system, and computer program for performing data writing on a storage device
WO2011007459A1 (en) * 2009-07-17 2011-01-20 株式会社日立製作所 Storage device and method of controlling same
JP5290938B2 (en) * 2009-11-18 2013-09-18 富士通株式会社 Copy control apparatus and method
US8694745B2 (en) * 2010-09-15 2014-04-08 Symantec Corporation Physical to virtual disks creation (P2V) method, by harvesting data from critical sectors
US8433870B2 (en) 2010-10-12 2013-04-30 International Business Machines Corporation Multiple incremental virtual copies
US9218255B2 (en) * 2012-08-27 2015-12-22 International Business Machines Corporation Multi-volume instant virtual copy freeze
US9116852B2 (en) 2012-10-16 2015-08-25 International Business Machines Corporation Processing a copy command directed to a first storage architecture for data that is stored in a second storage architecture
US9135121B2 (en) 2012-10-16 2015-09-15 International Business Machines Corporation Managing updates and copying data in a point-in-time copy relationship expressed as source logical addresses and target logical addresses
US9405704B2 (en) * 2012-10-16 2016-08-02 International Business Machines Corporation Establishing a point-in-time copy relationship between source logical addresses and target logical addresses
US11768623B2 (en) 2013-01-10 2023-09-26 Pure Storage, Inc. Optimizing generalized transfers between storage systems
US9589008B2 (en) 2013-01-10 2017-03-07 Pure Storage, Inc. Deduplication of volume regions
US9389799B2 (en) 2013-05-22 2016-07-12 International Business Machines Corporation Parallel processes for performing multiple incremental copies
CN103870544A (en) * 2014-02-25 2014-06-18 小米科技有限责任公司 Method and device for virtually operating file, and electronic equipment
US9600203B2 (en) 2014-03-11 2017-03-21 Amazon Technologies, Inc. Reducing data volume durability state for block-based storage
US9720620B1 (en) 2014-03-11 2017-08-01 Amazon Technologies, Inc. Efficient data volume replication for block-based storage
US10007602B2 (en) 2014-05-06 2018-06-26 International Business Machines Corporation Flash copy relationship management
DK2996025T3 (en) * 2014-09-11 2018-06-18 Datadobi Cvba Data migration tool with intermediate incremental copies
US10108352B2 (en) * 2015-03-03 2018-10-23 International Business Machines Corporation Incremental replication of a source data set
US9607062B1 (en) * 2015-11-19 2017-03-28 International Business Machines Corporation Data locality in data integration applications
CN106406763A (en) * 2016-09-21 2017-02-15 郑州云海信息技术有限公司 A background copy method and device
US11223528B2 (en) * 2017-01-27 2022-01-11 Box. Inc. Management of cloud-based shared content using predictive cost modeling
CN109522152B (en) * 2018-09-06 2021-05-14 清华大学 Disaster recovery method, storage medium and device for electron microscope data
CN111143115A (en) * 2018-11-05 2020-05-12 中国移动通信集团云南有限公司 Remote disaster recovery method and device based on backup data
TWI768478B (en) * 2020-09-25 2022-06-21 宏碁股份有限公司 Electronic device and method and for adaptively arranging external hardware resources

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH076530B2 (en) * 1986-09-27 1995-01-30 日立建機株式会社 Hydraulic circuit of hydraulic excavator
JP2778786B2 (en) * 1990-03-02 1998-07-23 富士通株式会社 Data update / restoration processing method
US5463765A (en) * 1993-03-18 1995-10-31 Hitachi, Ltd. Disk array system, data writing method thereof, and fault recovering method
JP3583829B2 (en) * 1995-04-13 2004-11-04 株式会社日立製作所 Control method and control device for external storage subsystem
US6092066A (en) 1996-05-31 2000-07-18 Emc Corporation Method and apparatus for independent operation of a remote data facility
US20020156966A1 (en) * 2001-04-20 2002-10-24 Ward Alan R. Dual port RAM with automatic write indicators
GB0227786D0 (en) 2002-11-29 2003-01-08 Ibm Improved remote copy synchronization in disaster recovery computer systems

Also Published As

Publication number Publication date
US20040260898A1 (en) 2004-12-23
DE602004002216T2 (en) 2007-07-26
TWI289749B (en) 2007-11-11
JP2006527873A (en) 2006-12-07
ATE338303T1 (en) 2006-09-15
CN1788256A (en) 2006-06-14
EP1634173A2 (en) 2006-03-15
WO2004114136A3 (en) 2005-05-26
US6996586B2 (en) 2006-02-07
CN100356336C (en) 2007-12-19
TW200513845A (en) 2005-04-16
DE602004002216D1 (en) 2006-10-12
EP1634173B1 (en) 2006-08-30
WO2004114136A2 (en) 2004-12-29

Similar Documents

Publication Publication Date Title
JP4398463B2 (en) Method, system, and program for incremental virtual copy
US7000145B2 (en) Method, system, and program for reverse restore of an incremental virtual copy
US8429363B2 (en) Multiple incremental virtual copies
US7409510B2 (en) Instant virtual copy to a primary mirroring portion of data
US6611901B1 (en) Method, system, and program for maintaining electronic data as of a point-in-time
JP4701007B2 (en) Fast reverse restore
US7587564B2 (en) System, method and computer program product for managing data versions
US7055009B2 (en) Method, system, and program for establishing and maintaining a point-in-time copy
US8825975B2 (en) Caching source blocks of data for target blocks of data
US7024530B2 (en) Method, system, and program for establishing and using a point-in-time copy relationship
US7133983B2 (en) Method, system, and program for asynchronous copy
JP4681247B2 (en) Disk array device and disk array device control method
JP2004127294A (en) Virtual storage system and its operation method
US7124323B2 (en) Method, system, and program for recovery of a reverse restore operation
JP4398464B2 (en) System, method, and program for managing point-in-time copy relationships between one target volume and one source volume
US7650476B2 (en) System, method and computer program product for generating a consistent point in time copy of data
US20060015696A1 (en) Integrated storage device
US8095755B2 (en) System, method and computer program product for generating a consistent point in time copy of data
US7047378B2 (en) Method, system, and program for managing information on relationships between target volumes and source volumes when performing adding, withdrawing, and disaster recovery operations for the relationships
JP2005352821A (en) Method, system and program for managing information related to relationship between target volume and source volume when executing additional operation, withdrawal operation and disaster recovery operation with respect to relationship

Legal Events

Date Code Title Description
A529 Written submission of copy of amendment under article 34 pct

Free format text: JAPANESE INTERMEDIATE CODE: A529

Effective date: 20060214

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070605

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070605

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090421

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20090421

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20090521

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090602

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090724

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090724

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20090724

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090727

TRDD Decision of grant or rejection written
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20091016

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20091016

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091016

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091022

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121030

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121030

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131030

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees