CONTENT-BASED REPLICATION OF DATA IN SCALE OUT SYSTEM
First Claim
1. A method for replicating data across storage systems, the method comprising:
- replicating a snapshot of a volume from an upstream system to a downstream system, the volume being a predefined logical storage area, the snapshot including one or more bins, the upstream system including one or more upstream arrays and the downstream system including one or more downstream arrays;
identifying locations for the bins of the snapshot, the location for each bin including the upstream array storing the bin and the downstream array storing a replicated version of the bin;
validating each bin by comparing an upstream bin checksum of the bin calculated by the corresponding upstream array with a downstream bin checksum of the replicated version of the bin calculated by the corresponding downstream array;
when the upstream bin checksum is different from the downstream bin checksum, defining a plurality of chunks in the bin; and
for each chunk in the bin,comparing an upstream chunk checksum calculated by the upstream array with a downstream chunk checksum calculated by the downstream array; and
sending, from the upstream array to the downstream array, data of the chunk when the upstream chunk checksum is different from the downstream chunk checksum.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods, systems, and programs are presented for replicating data across scale-out storage systems. One method includes replicating, from an upstream to a downstream system, a volume snapshot having one or more bins. Locations for the bins of the snapshot are identified, the location for each bin including the upstream array storing the bin and the downstream array storing a replicated version of the bin. Each bin is validated by comparing an upstream bin checksum of the bin with a downstream bin checksum of the replicated version of the bin. When the checksums are different, a plurality of chunks are defined in the bin, and for each chunk in the bin an upstream chunk checksum calculated by the upstream array is compared with a downstream chunk checksum calculated by the downstream array. The chunk is sent from the upstream to the downstream array when the chunk checksums are different.
17 Citations
20 Claims
-
1. A method for replicating data across storage systems, the method comprising:
-
replicating a snapshot of a volume from an upstream system to a downstream system, the volume being a predefined logical storage area, the snapshot including one or more bins, the upstream system including one or more upstream arrays and the downstream system including one or more downstream arrays; identifying locations for the bins of the snapshot, the location for each bin including the upstream array storing the bin and the downstream array storing a replicated version of the bin; validating each bin by comparing an upstream bin checksum of the bin calculated by the corresponding upstream array with a downstream bin checksum of the replicated version of the bin calculated by the corresponding downstream array; when the upstream bin checksum is different from the downstream bin checksum, defining a plurality of chunks in the bin; and for each chunk in the bin, comparing an upstream chunk checksum calculated by the upstream array with a downstream chunk checksum calculated by the downstream array; and sending, from the upstream array to the downstream array, data of the chunk when the upstream chunk checksum is different from the downstream chunk checksum. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method for replicating data across storage systems, the method comprising:
-
replicating a snapshot of a volume from an upstream system to a downstream system, the volume being a predefined logical storage area, the snapshot including one or more bins, each bin including one or more slices, the upstream system including one or more upstream arrays and the downstream system including one or more downstream arrays; identifying locations for the bins of the snapshot, the location for each bin including the upstream array storing the bin and the downstream array storing a replicated version of the bin; validating each bin by comparing an upstream bin checksum of the bin calculated by the corresponding upstream array with a downstream bin checksum of the replicated version of the bin calculated by the corresponding downstream array; and when the upstream bin checksum is different from the downstream bin checksum, for each slice in the bin, comparing an upstream slice checksum calculated by the upstream array with a downstream slice checksum calculated by the downstream array; when the upstream slice checksum is different from the downstream slice checksum, defining a plurality of chunks in the slice; and for each chunk in the slice, comparing an upstream chunk checksum calculated by the upstream array with a downstream chunk checksum calculated by the downstream array; and sending, from the upstream array to the downstream array, data of the chunk when the upstream chunk checksum is different from the downstream chunk checksum. - View Dependent Claims (13, 14, 15, 16)
-
-
17. A non-transitory computer-readable storage medium storing a computer program for replicating data across storage systems, the computer-readable storage medium comprising:
-
program instructions for replicating a snapshot of a volume from an upstream system to a downstream system, the volume being a predefined logical storage area, the snapshot including one or more bins, the upstream system including one or more upstream arrays and the downstream system including one or more downstream arrays; program instructions for identifying locations for the bins of the snapshot, the location for each bin including the upstream array storing the bin and the downstream array storing a replicated version of the bin; program instructions for validating each bin by comparing an upstream bin checksum of the bin calculated by the corresponding upstream array with a downstream bin checksum of the replicated version of the bin calculated by the corresponding downstream array; program instructions for defining a plurality of chunks in the bin when the upstream bin checksum is different from the downstream bin checksum; and for each chunk in the bin, program instructions for comparing an upstream chunk checksum calculated by the upstream array with a downstream chunk checksum calculated by the downstream array; and program instructions for sending, from the upstream array to the downstream array, data of the chunk when the upstream chunk checksum is different from the downstream chunk checksum. - View Dependent Claims (18, 19, 20)
-
Specification