Systems and methods for copying data maintained in a dynamic storage volume and verifying the copied data
AssigneeCirrus Data Solutions, Inc.
InventorsWai T. Lam, Wayne Lam, Yik Shum Tam
Life of this patent
Estimating the term…
Abstract
A first volume comprising a plurality of blocks stored in a first location is accessed. A plurality of hash values representing the plurality of blocks is stored. The plurality of blocks is copied to a second volume stored in a second location, generating a copied volume. The copied volume is verified based on the plurality of hash values. In one embodiment, the first volume is altered, after the plurality of hash values is stored. Altering the first volume may include changing data in a selected one of the plurality of blocks. The first volume may be altered during copying of the plurality of blocks to the second volume.
Claims27
A method of verifying copied data, the method comprising:
- accessing a first volume comprising a plurality of blocks stored in a first location;
- storing a plurality of hash values representing the plurality of blocks;
- copying the plurality of blocks to a second volume stored in a second location, generating a copied volume;
- and
- verifying the copied volume based on the plurality of hash values.
An apparatus comprising:
- a memory storing computer program instructions;
- and
- a processor communicatively coupled to the memory, the processor configured to execute the computer program instructions which, when executed on the processor, cause the processor to perform operations comprising:
- accessing a first volume comprising a plurality of blocks stored in a first location;
- storing a plurality of hash values representing the plurality of blocks;
- copying the plurality of blocks to a second volume stored in a second location, generating a copied volume;
- and
- verifying the copied volume based on the plurality of hash values.
A method of copying data and verifying the copied data, the method comprising:
- copying a plurality of blocks from a first volume stored in a first location to a second volume stored in a second location;
- storing a plurality of hash values representing the plurality of blocks;
- performing one or more write operations with respect to selected blocks in the first volume during copying of data from the first volume to the second volume, to generate one or more updated blocks;
- updating the plurality of hash values to include one or more updated hash values representing the one or more updated blocks;
- copying the one or more updated blocks from the first volume to the second volume;
- determining that an expected time associated with updating the plurality of hash values to include second updated hash values representing one or more second updated blocks and copying the one or more second updated blocks from the first volume to the second volume is less than a predetermined limit;
- pausing input/output operations with respect to the first volume during a selected time period, in response to the determining;
- and
- updating the plurality of hash values to include the second updated hash values and copying the one or more second updated blocks from the first volume to the second volume, during the selected time period.
A method of verifying data copied from a dynamic volume, the method comprising:
- copying a source volume to generate a destination volume, the source volume comprising a plurality of blocks;
- generating a plurality of digests representing the plurality of blocks;
- updating the plurality of digests to include updated digests representing one or more selected blocks of the source volume that were changed during copying of the source volume;
- copying to the destination volume the one or more selected blocks;
- and
- verifying the destination volume based on the updated plurality of digests.
A device comprising:
- a memory storing computer program instructions;
- and
- a processor configured to execute the computer program instructions which, when executed on the processor, cause the processor to perform operations comprising:
- copying a source volume to generate a destination volume, the source volume comprising a plurality of blocks;
- generating a plurality of digests representing the plurality of blocks;
- updating the plurality of digests to include updated digests representing one or more selected blocks of the source volume that were changed during copying of the source volume;
- copying to the destination volume the one or more selected blocks;
- and
- verifying the destination volume based on the updated plurality of digests.
An apparatus comprising:
- means for copying a source volume to generate a destination volume, the source volume comprising a plurality of blocks;
- means for generating a plurality of digests representing the plurality of blocks;
- means for updating the plurality of digests to include updated digests representing one or more selected blocks of the source volume that were changed during copying of the source volume;
- means for copying to the destination volume the one or more selected blocks;
- and
- means for verifying the destination volume based on the updated plurality of digests.
Dependencies are inferred from the claim text.