Claims
- 1. In a primary system that has a primary mass storage and is in communication with a secondary system that has a secondary mass storage, a method for mirroring and archiving the primary mass storage on the secondary mass storage, the method comprising:
after the secondary mass storage has been synchronized with the primary mass storage, tracking changes to the primary mass storage during a time interval; identifying an end of the time interval by identifying when the primary mass storage is in a logically consistent state; using the tracked changes to create an update that includes any tracked changes necessary to represent the state of the primary mass storage at the end of the time interval; and transferring the update to the secondary mass storage, such that the secondary mass storage can be brought current with the logically consistent state of the primary mass storage.
- 2. The method of claim 1, wherein the update includes only the tracked changes that are required for bringing the secondary mass storage device current with the logically consistent state of the primary mass storage device.
- 3. The method of claim 1, wherein the update is created by consolidating the tracked changes.
- 4. The method of claim 3, wherein the update does not include tracked changes that represent an intermediate state of the primary mass storage that existed after a beginning and before the end of the time interval.
- 5. The method of claim 1, wherein transferring the update to the secondary mass storage results in the update being stored at the secondary mass storage such that the logically consistent state of the primary mass storage is determinable from the update stored at the secondary mass storage.
- 6. The method of claim 1, wherein using the tracked changes to create the update comprises retaining, for each storage location of the primary mass storage that has changed during the time interval, information representing the most recent change to the particular storage location, with the information representing any previous changes to the particular storage location being discarded, such that the update includes only the changes that are required for bringing the secondary mass storage device current with the logically consistent state of the primary mass storage device.
- 7. The method of claim 1, further comprising:
storing a copy of the update in a cache holding area associated with the primary system; and providing access to data included in a mirrored and archived version of the primary mass storage by first determining whether the data is included in one the update stored in the cache holding area and then providing access to the data from the secondary mass storage if the data is not included in the update in the cache holding area.
- 8. The method of in claim 1, wherein tracking changes to the primary mass storage during the time interval and consolidating the tracked changes are conducted independently of any particular file structure associated with the primary mass storage or the secondary mass storage.
- 9. The method of claim 1, wherein tracking the changes to the primary mass storage during the time interval comprises storing information representing all changes, wherein the changes are tracked at a disk level of the primary mass storage.
- 10. The method of claim 1, wherein consolidating the tracked changes is conducted in an ongoing manner during the time interval.
- 11. The method of claim 1, wherein consolidating the tracked changes is conducted at or after the end of the corresponding time interval.
- 12. The method of claim 1, further comprising encrypting data transferred between the primary system and the secondary system by:
exchanging values between the primary system and the secondary system, the values being subject to change from one moment to the next; manipulating, by the primary system, a first value exchanged from the secondary system to the primary system to generate a primary system key seed; manipulating by the secondary system, a second value exchanged from the primary system to the secondary system to generate a secondary system key seed, the primary system key seed and the secondary system key seed being equal; using the primary key seed at the primary system to generate a primary encryption key; using the secondary key seed at the secondary system to generate a secondary encryption key, the primary encryption key and the secondary encryption being equal, as if they had been generated using a single key seed; and encrypting and decrypting data transmitted between the primary system and the secondary system using the primary encryption key and the secondary encryption key.
- 13. A computer program product for implementing, in a primary system that has a primary mass storage and is in communication with a secondary system that has a secondary mass storage, a method for mirroring and archiving the primary mass storage on the secondary mass storage, the computer program product comprising:
a computer-readable medium carrying computer-executable instructions for implementing the method, the computer-executable instructions, when executed, causing the primary system to:
track changes to the primary mass storage during a time interval that occurs after the secondary mass storage has been synchronized with the primary mass storage; identify an end of the time interval by identifying when the primary mass storage is in a logically consistent state; use the tracked changes to create an update that includes any tracked changes necessary to represent the state of the primary mass storage at the end of the time interval; and transfer the update to the secondary mass storage, such that the secondary mass storage can be brought current with the logically consistent state of the primary mass storage.
- 14. The computer program product of claim 13, wherein the update includes only the tracked changes that are required for bringing the secondary mass storage device current with the logically consistent state of the primary mass storage device.
- 15. The computer program product of claim 13, wherein the update is created by consolidating the tracked changes.
- 16. The computer program product of claim 16, wherein the update does not include tracked changes that represent an intermediate state of the primary mass storage that existed after a beginning and before the end of the time interval.
- 17. The computer program product of claim 13, wherein transferring the update to the secondary mass storage results in the update being stored at the secondary mass storage such that the logically consistent state of the primary mass storage is determinable from the update stored at the secondary mass storage.
- 18. The computer program product of claim 13, wherein consolidating the tracked changes comprises retaining, for each storage location of the primary mass storage that has changed during the time interval, information representing the most recent change to the particular storage location, with the information representing any previous changes to the particular storage location being discarded, such that the update includes only the changes that are required for bringing the secondary mass storage device current with the primary mass storage device as the data in the primary mass storage device exists at the end of the time interval.
- 19. The computer program product of claim 13, wherein the computer-executable instructions, when executed, further cause the primary system to:
store a copy of the update in a cache holding area associated with the primary system; and provide access to data included in a mirrored and archived version of the primary mass storage by first determining whether the data is included in one the update stored in the cache holding area and then providing access to the data from the secondary mass storage if the data is not included in the update in the cache holding area.
- 20. The computer program product of claim 13, wherein tracking changes to the primary mass storage during the time interval and consolidating the tracked changes are conducted independently of any particular file structure associated with the primary mass storage or the secondary mass storage.
- 21. In a primary system that has a primary mass storage and is in communication with a secondary system having a secondary mass storage, a method for mirroring and archiving the primary mass storage by transmitting to the secondary mass storage only those changes to the primary mass storage that are necessary to bring the secondary mass storage current with the primary mass storage, while representing a plurality of logically consistent states of the primary mass storage, the method comprising:
initiating synchronization of the secondary mass storage with the primary mass storage; and for each of a plurality of distinct time intervals:
changing data stored in storage locations of the primary mass storage; identifying when the primary mass storage is in a logically consistent state, so as to identify an end of a current time interval of the plurality of distinct time intervals; as the data is changed, storing information representing all changes that have been made in the storage locations during the each of the plurality of time intervals in updates that correspond to the plurality of time intervals; consolidating the stored information in each update such that each update includes only the changes that are required for bringing the secondary mass storage device current with the primary mass storage device as the data in the primary mass storage device exists at the end of the corresponding time interval; and transferring each update to the secondary mass storage, such that the secondary mass storage can be brought current with the logically consistent states of the primary mass storage corresponding to the updates.
- 22. The method of claim 21, wherein consolidating the stored information comprises retaining, for each storage location that has changed during the corresponding time interval, the information representing the most recent change to the particular storage location for that update, with the information representing any previous changes to the particular storage location being discarded for that update.
RELATED APPLICATIONS
[0001] This application is a continuation of U.S. patent application Ser. No. 10/157,427, filed May 28, 2002, which is to issue as U.S. Pat. No. 6,609,183. U.S. patent application Ser. No. 10/157,427 is a continuation of U.S. patent application Ser. No. 09/255,486, filed Feb. 23, 1999, now issued as U.S. Pat. No. 6,397,307. The foregoing patent applications are incorporated herein by reference.
Continuations (2)
|
Number |
Date |
Country |
| Parent |
10157427 |
May 2002 |
US |
| Child |
10641467 |
Aug 2003 |
US |
| Parent |
09255486 |
Feb 1999 |
US |
| Child |
10157427 |
May 2002 |
US |