System and method for estimating storage space needed to store data migrated from a source storage to a target storage
First Claim
1. A computer-implemented method, comprising:
- for each of a plurality of segments of a file to be migrated from a source storage tier to a target storage tier;
determining whether the segment exists in a source candidate index of the source storage tier;
in response to determining that the segment does not exist in the source candidate index;
transmitting, by a candidate builder of the source storage tier, a fingerprint of the segment to the target storage tier over a network, andin response to a response received from the target storage tier indicating that the segment has not been stored in the target storage tier based on the fingerprint, incrementing an estimated storage space of the target tier estimated for migrating the file based on a size of the segment;
after all segments of the file have been processed, communicating with the target storage tier to determine whether the target storage tier has enough storage space to store the segments of the file based on the estimated storage space;
in response to determining that the estimated storage space of the target storage tier is sufficient to store the segments of the file;
populating the source candidate index to indicate the one or more segments of the file, andmigrating, by a migration module of the source storage tier, one or more segments of the file that have not been stored in the target tier, wherein migrating one or more segments of the file occurs without scanning a logical namespace or file system of the source storage tier,wherein the segments are deduplicated segments, and wherein at least one of the segments is referenced by a plurality of files,wherein the target storage tier is configured to match the fingerprint of each segment against a target index structure having information indicating segments that are currently stored in the target storage tier, wherein the target index structure comprises a bit array, wherein the fingerprint of a segment determines an offset to an entry of the bit array, and wherein a value stored in the entry is utilized to indicate whether the segment is currently stored in the target storage tier.
9 Assignments
0 Petitions
Accused Products
Abstract
Techniques for data migration of a storage system are described herein. According to one embodiment, for at least one of segments of a file to be migrated from a source storage tier to a target storage tier, a fingerprint of the segment is transmitted to the target storage tier. In response to a response received from the target storage tier indicating that the segment has not been stored in the target tier based on the fingerprint, a storage space of the target tier estimated for migrating the file is incremented. One or more segments of the file that have not been stored in the target tier are migrated if the one or more segments of the file fit in the target storage tier based on the estimated storage space of the target tier.
86 Citations
23 Claims
-
1. A computer-implemented method, comprising:
-
for each of a plurality of segments of a file to be migrated from a source storage tier to a target storage tier; determining whether the segment exists in a source candidate index of the source storage tier; in response to determining that the segment does not exist in the source candidate index; transmitting, by a candidate builder of the source storage tier, a fingerprint of the segment to the target storage tier over a network, and in response to a response received from the target storage tier indicating that the segment has not been stored in the target storage tier based on the fingerprint, incrementing an estimated storage space of the target tier estimated for migrating the file based on a size of the segment; after all segments of the file have been processed, communicating with the target storage tier to determine whether the target storage tier has enough storage space to store the segments of the file based on the estimated storage space; in response to determining that the estimated storage space of the target storage tier is sufficient to store the segments of the file; populating the source candidate index to indicate the one or more segments of the file, and migrating, by a migration module of the source storage tier, one or more segments of the file that have not been stored in the target tier, wherein migrating one or more segments of the file occurs without scanning a logical namespace or file system of the source storage tier, wherein the segments are deduplicated segments, and wherein at least one of the segments is referenced by a plurality of files, wherein the target storage tier is configured to match the fingerprint of each segment against a target index structure having information indicating segments that are currently stored in the target storage tier, wherein the target index structure comprises a bit array, wherein the fingerprint of a segment determines an offset to an entry of the bit array, and wherein a value stored in the entry is utilized to indicate whether the segment is currently stored in the target storage tier. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A non-transitory computer-readable storage medium having instructions stored therein, which when executed by a computer, cause the computer to perform operations for data migration of a storage system, the operations comprising:
-
for each of a plurality of segments of a file to be migrated from a source storage tier to a target storage tier; determining whether the segment exists in a source candidate index of the source storage tier; in response to determining that the segment does not exist in the source candidate index; transmitting, by a candidate builder of the source storage tier, a fingerprint of the segment to the target storage tier over a network, and in response to a response received from the target storage tier indicating that the segment has not been stored in the target tier based on the fingerprint, incrementing an estimated storage space of the target storage tier estimated for migrating the file based on a size of the segment; after all segments of the file have been processed, communicating with the target storage tier to determine whether the target storage tier has enough storage space to store the segments of the file based on the estimated storage space; in response to determining that the estimated storage space of the target storage tier is sufficient to store the segments of the file; populating the source candidate index to indicate the one or more segments of the file, and migrating, by a migration module of the source storage tier, one or more segments of the file that have not been stored in the target tier, wherein migrating one or more segments of the file occurs without scanning a logical namespace or file system of the source storage, wherein the segments are deduplicated segments, and wherein at least one of the segments is referenced by a plurality of files, wherein the target storage tier is configured to match the fingerprint of each segment against a target index structure having information indicating segments that are currently stored in the target storage tier, wherein the target index structure comprises a bit array, wherein the fingerprint of a segment determines an offset to an entry of the bit array, and wherein a value stored in the entry is utilized to indicate whether the segment is currently stored in the target storage tier. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A storage system, comprising:
-
a processor; and a memory to store instructions, which when executed from the memory, cause the processor to; for each of a plurality of segments of a file to be migrated from a source storage tier to a target storage tier; determine whether the segment exists in a source candidate index of the source storage tier; in response to determining that the segment does not exist in the source candidate index; transmit, by a candidate builder, a fingerprint of the segment to the target storage tier, in response to a response received from the target storage tier indicating that the segment has not been stored in the target tier based on the fingerprint, increment an estimated storage space of the target storage tier estimated for migrating the file based on a size of the segment, after all segments of the file have been processed, communicating with the target storage tier to determine whether the target storage tier has enough storage space to store the segments of the file based on the estimated storage space, in response to determining that the estimated storage space of the target storage tier is sufficient to store the segments of the file; populate the source candidate index to indicate the one or more segments of the file, and migrate, by a migration module, one or more segments of the file that have not been stored in the target tier, wherein migrating one or more segments of the file occurs without scanning a logical namespace or file system of the source storage tier, wherein the segments are deduplicated segments, and wherein at least one of the segments is referenced by a plurality of files, wherein the target storage tier is configured to match the fingerprint of each segment against a target index structure having information indicating segments that are currently stored in the target storage tier, wherein the target index structure comprises a bit array, wherein the fingerprint of a segment determines an offset to an entry of the bit array, and wherein a value stored in the entry is utilized to indicate whether the segment is currently stored in the target storage tier. - View Dependent Claims (18, 19, 20, 21, 22, 23)
-
Specification