Mirroring data between primary and secondary sites
First Claim
1. A method for synchronizing data between a primary storage managed by a primary server at a first site and a secondary storage managed by a secondary server at a second site, comprising:
- copying updates to segments of the primary storage at the first site to corresponding segments of the secondary storage at the second site as part of a first copy operation;
providing codes generated from the segments in the secondary storage at the second site and a valid flag for at least one code indicating whether the code for the segment of data is valid;
setting the valid flag to indicate one of the segments of data as invalid in response to receiving an update to the segment of data that results in the current code for the segment not reflecting the updated state of that segment;
generating a new code for segments in the secondary storage whose valid flag indicates that the segment is invalid;
setting the valid flag for the segment for which the new code is calculated to indicate that the code for the segment is valid;
providing codes generated from segments of the primary storage at the first site;
initiating a second copy operation to copy segments from the secondary storage at the second site to the primary storage at the first site;
determining, for segments in the secondary storage at the second site, whether the valid flag for the code for the segment in the secondary storage at the second site indicates that the code is valid in response to initiating the second copy operation; and
comparing the code for at least one of the segments in the secondary storage at the second site determined to be valid with the code for the corresponding segment in the primary storage at the first site to determine whether to copy the data from the segment in the secondary storage at the second site to the primary storage at the first site as part of the second copy operation.
1 Assignment
0 Petitions
Accused Products
Abstract
Provided are a method, system, and article of manufacture for mirroring data between a first site and a second site. Updates to segments of storage at the first site are copied to corresponding segments of storage at the second site. Codes are generated from the segments at the second site and a valid flag is provided for at least one code indicating whether the code for the segment of data is valid. One code is generated from each segment of storage at the first site. An operation is initiated to copy segments from the second site to the first site. A determination is made for segments at the second site as to whether the valid flag for the code for the segment at the second site indicates that the code is valid in response to initiating the copy operation. The valid code for at least one segment in the second site is compared with the code for the corresponding segment at the first site to determine whether to copy the data from the segment at the second site to the first site as part of the copy operation.
24 Citations
29 Claims
-
1. A method for synchronizing data between a primary storage managed by a primary server at a first site and a secondary storage managed by a secondary server at a second site, comprising:
-
copying updates to segments of the primary storage at the first site to corresponding segments of the secondary storage at the second site as part of a first copy operation; providing codes generated from the segments in the secondary storage at the second site and a valid flag for at least one code indicating whether the code for the segment of data is valid; setting the valid flag to indicate one of the segments of data as invalid in response to receiving an update to the segment of data that results in the current code for the segment not reflecting the updated state of that segment; generating a new code for segments in the secondary storage whose valid flag indicates that the segment is invalid; setting the valid flag for the segment for which the new code is calculated to indicate that the code for the segment is valid; providing codes generated from segments of the primary storage at the first site; initiating a second copy operation to copy segments from the secondary storage at the second site to the primary storage at the first site; determining, for segments in the secondary storage at the second site, whether the valid flag for the code for the segment in the secondary storage at the second site indicates that the code is valid in response to initiating the second copy operation; and comparing the code for at least one of the segments in the secondary storage at the second site determined to be valid with the code for the corresponding segment in the primary storage at the first site to determine whether to copy the data from the segment in the secondary storage at the second site to the primary storage at the first site as part of the second copy operation. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for synchronizing data between a primary storage managed by a primary server at a first site and a secondary storage managed by a secondary server at a second site, comprising:
-
copying data from segments of the primary storage at the first site to corresponding segments of the secondary storage at the second site; receiving updates at the secondary storage at the second site in response to detecting a failure at the first site, wherein updates are not received at the primary storage at the first site while updates are being received at the secondary storage at the second site; detecting an availability of the first site before the first site is ready to begin receiving updates and mirroring updates to the secondary storage at the second site; initiating operations to calculate codes for the segments at the primary and secondary storages at the first and second sites, respectively, in response to detecting the availability of the first site; setting a valid flag to indicate one of the segments of data as invalid in response to receiving an update to the segment of data that results in the current code for the segment not reflecting the updated state of that segment; generating a new code for segments in the secondary storage whose valid flag indicates that the segment is invalid; setting the valid flag for the segment for which the new code is calculated to indicate that the code for the segment is valid; initiating a synchronize operation to copy segments from the secondary storage at the second site to the primary storage at the first site in response to determining that the first site is ready to begin receiving updates and mirror updates to the secondary storage at the second site; and comparing the codes for segments in the secondary storage at the second site with the codes for the corresponding segments in the primary storage at the first site to determine whether to copy the data from the segments in the secondary storage at the second site to the primary storage at the first site as part of the synchronize operation. - View Dependent Claims (11)
-
-
12. A system for synchronizing data between a primary storage at a first site and a secondary storage at a second site, comprising:
-
a first system managing access to the primary storage at the first site; a first copy manager program executed by the first system to perform operations comprising; copying updates to segments of storage in the primary storage at the first site to corresponding segments of storage in the secondary storage at the second site as part of a first copy operation; and providing codes generated from the segments of storage of the primary storage at the first site; a second system managing access to the secondary storage at the second site; and a second copy manager program executed by the second system to perform operations comprising; providing codes generated from the segments in the secondary storage at the second site and a valid flag for at least one code indicating whether the code for the segment of data is valid; setting the valid flag to indicate one of the segments of data as invalid in response to receiving an update to the segment of data that results in the current code for the segment not reflecting the updated state of that segment; generating a new code for segments in the secondary storage whose valid flag indicates that the segment is invalid; setting the valid flag for the segment for which the new code is calculated to indicate that the code for the segment is valid; initiating a second copy operation to copy segments from the secondary storage at the second site to the primary storage at the first site; determining, for segments in the secondary storage at the second site, whether the valid flag for the code for the segment in the secondary storage at the second site indicates that the code is valid in response to initiating the second copy operation; and comparing the valid code for at least one of the segments in the secondary storage at the second site with the code for the corresponding segment in the primary storage at the first site to determine whether to copy the data from the segment in the secondary storage at the second site to the primary storage at the first site as part of the second copy operation. - View Dependent Claims (13, 14, 15, 16)
-
-
17. A system for synchronizing data between a primary storage at a first site and a secondary storage at a second site, comprising:
-
a first system managing access to the primary storage at the first site; a second system managing access to the secondary storage at the second site; a first copy manager executed by the first system and a second copy manager executed by the second system, wherein at least one of the first and second copy managers are executed to perform operations, the operations comprising; copying data from segments of the primary storage at the first site to corresponding segments of the secondary storage at the second site; receiving updates at the secondary storage at the second site in response to detecting a failure at the first site, wherein updates are not received at the primary storage at the first site while updates are being received at the secondary storage at the second site; detecting an availability of the first site before the first site is ready to begin receiving updates and mirroring updates to the secondary storage at the second site; initiating operations to calculate codes for the segments in the primary and secondary storages at the first and second sites, respectively, in response to detecting the availability of the first site; setting a valid flag to indicate one of the segments of data as invalid in response to receiving an update to the segment of data that results in the current code for the segment not reflecting the updated state of that segment; generating a new code for segments in the secondary storage whose valid flag indicates that the segment is invalid; setting the valid flag for the segment for which the new code is calculated to indicate that the code for the segment is valid; initiating a synchronize operation to copy segments from the secondary storage at the second site to the primary storage at the first site in response to determining that the first site is ready to begin receiving updates and mirror updates to the secondary storage at the second site; and comparing the codes for segments in the secondary storage at the second site with the codes for the corresponding segments in the primary storage at the first site to determine whether to copy the data from the segments in the secondary storage at the second site to the primary storage at the first site as part of the synchronize operation. - View Dependent Claims (18)
-
-
19. An article of manufacture comprising a computer readable storage medium including program instructions implemented in a first and second copy managers for synchronizing data between a primary storage at a first site and a secondary storage at a second site, wherein at least one of the first and second copy managers are executed to perform operations, the operations comprising:
-
copying updates to segments of storage in the primary storage at the first site to corresponding segments of the secondary storage at the second site; providing codes generated from the segments in the secondary storage at the second site and a valid flag for at least one code indicating whether the code for the segment of data is valid; providing codes generated from segments of the primary storage at the first site; setting a valid flag to indicate one of the segments of data as invalid in response to receiving an update to the segment of data that results in the current code for the segment not reflecting the updated state of that segment; generating a new code for segments in the secondary storage whose valid flag indicates that the segment is invalid; setting the valid flag for the segment for which the new code is calculated to indicate that the code for the segment is valid; initiating an operation to copy segments from the secondary storage at the second site to the primary storage at the first site; determining, for segments in the secondary storage at the second site, whether the valid flag for the code for the segment in the secondary storage at the second site indicates that the code is valid in response to initiating the copy operation; and comparing the valid code for at least one of the segments in the secondary storage at the second site with the code for the corresponding segment in the primary storage at the first site to determine whether to copy the data from the segment in the secondary storage at the second site to the primary storage at the first site as part of the copy operation. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27)
-
-
28. An article of manufacture comprising a computer readable storage medium including program instructions implemented in a first and second copy managers for synchronizing data between a primary storage at a first site and a secondary storage at a second site, wherein at least one of the first and second copy managers are executed to perform operations, the operations comprising:
-
copying data segments of storage in the primary storage at the first site to corresponding segments of storage in the secondary storage at the second site; receiving updates to the secondary storage at the second site in response to detecting a failure at the first site, wherein updates are not received at the first site while updates are being received at the in the secondary storage at the second site; detecting an availability of the first site before the first site is ready to begin receiving updates and mirroring updates to the secondary storage at the second site; initiating operations to calculate codes for the segments in the primary and secondary storages at the first and second sites, respectively, in response to detecting the availability of the first site; setting a valid flag to indicate one of the segments of data as invalid in response to receiving an update to the segment of data that results in the current code for the segment not reflecting the updated state of that segment; generating a new code for segments in the secondary storage whose valid flag indicates that the segment is invalid; setting the valid flag for the segment for which the new code is calculated to indicate that the code for the segment is valid; initiating a synchronize operation to copy segments from the secondary storage at the second site to the primary storage at the first site in response to determining that the first site is ready to begin receiving updates and mirror updates to the secondary storage at the second site; and comparing the codes for segments in the secondary storage at the second site with the codes for the corresponding segments in the primary storage at the first site to determine whether to copy the data from the segments in the secondary storage at the second site to the primary storage at the first site as part of the synchronize operation. - View Dependent Claims (29)
-
Specification