Original Publication Date: 2005-Mar-18
Included in the Prior Art Database: 2005-Mar-18
Incremental flashcopy is a slightly modified flashcopy mechanism. In addition to the normal flashcopy, incremental flashcopy keeps a map of grains that have been modified in the source after the flashcopy has been initiated/last merged. The incremental flashcopy has a new operation - "Sync Flashcopy". Sync Flashcopy when invoked, merges the bitmap of the modified grains with the data structure used by the regular flashcopy to make it look like the newly modified grains (ones indicated by grain bitmap) haven't been copied by the flashcopy and then restarts the background copy to scan the whole range of grains. Effectively, Sync Flashcopy changes the flashcopy target's image to reflect the state of the source disk at a more recent timepoint.
Flashcopy is a point-in-time copy operation between two storage volumes. Unlike in a normal copy, from source volume's user perspective the copy operation is completed in a very short period of time compared to the time taken by conventional copy. When a flashcopy is initiated between a source volume and a target volume, a bitmap corresponding to all the blocks (or grains) is created. The purpose of this FC bitmap (Flashcopy Bitmap) is to track which blocks/grains have been copied and which ones haven't been. Flashcopy also involves a background copy loop, Fake Read Logic and a Copy On Write Logic that use the FC bitmap in the following manner
Background Copy Loop - This is a background loop (doesn't interfere with command executions from the initiator - Typically implemented as a low priority thread) that copies the blocks/grains one by one from the source volume to the target volume and in the process also marking the corresponding bit in the FC bitmap as copied.
Copy On Write Logic - This logic is invoked when a write to the source volume hit a volume/grain that hasn't been copied to the target volume, COW blocks the write to the source volume, copies the corresponding volume from the source volume to the target volume, marks the corresponding bit in the bitmap as copied and then continues with the write to the source volume.
Fake Read Logic - This logic is invoked when the target volume receives a read request for a volume/grain that hasn't been copied. The Fake Read Logic reads the data from the corresponding source volume block/grain and use...