Patent ID: 8943285
Filing Date: 2015-01-27
Classification: G06F

Abstract:
1. A method comprising: selecting or configuring a destination storage unit to have a size at least as large as a size of an original storage unit and to have a block size equal to a block size of the original storage unit; providing a virtual storage device having a size at least as large as the size of the original storage unit, a block size equal to the block size of the original storage unit, and a control block mappable to two storage units; thereafter, substituting the virtual storage device for the original storage unit on a target system and mapping the control block of the virtual storage device to both the original and the destination storage units; maintaining at the virtual storage device a flag for each of a plurality of data blocks associated by the target system with the original storage unit; receiving I/O requests at the virtual storage device, the I/O requests comprising block write requests and block read requests; directing each block write request to the destination storage unit instead of the original storage unit and setting the flag for each block written; directing each block read request to the original storage unit if the flag for the requested block is not set, and otherwise to the destination storage unit; concurrently with receiving the I/O requests, copying only allocated data blocks whose flags are not set from the original storage unit to the destination storage unit and setting the flag for each block copied; and thereafter, substituting the destination storage unit for the virtual storage device on the target system by unmapping the control block of the virtual storage device from the destination storage unit and mapping the destination storage unit to the target system.