Claims
- 1. A method of maintaining a copy of at least one data volume in a computer system for at least one point in time, comprising:
establishing a first repository for a first snapshot of a base volume; and prior to a write operation to a first region of the base volume, copying the first region of the base volume to the first repository.
- 2. A method as recited in claim 1,
further comprising detecting write operations to the base volume; and wherein said copying is performed only for regions in the base volume for which write operations are detected.
- 3. A method as recited in claim 2,
further comprising determining whether the first region was previously written to the first repository, and wherein said copying is performed only if the first region was not previously written to the first repository.
- 4. A method as recited in claim 3, further comprising reading data from a second region of the first snapshot by:
determining whether the second region has changed in the base volume; reading the second region from the first repository if the second region has changed; and reading the second region from the base volume if the second region has not changed.
- 5. A method as recited in claim 4, further comprising:
establishing a second repository for a second snapshot of the base volume at a point in time later than said establishing of the first repository; and prior to writing to a third region of the base volume after said establishing of the second repository, copying the third region of the base volume to the second repository.
- 6. A method as recited in claim 5, further comprising reading data from a fourth region of the second snapshot by:
determining whether the fourth region has changed in the base volume since said establishing of the second repository; reading the fourth region from the second repository if the fourth region has changed since said establishing of the second repository; and reading the fourth region from the base volume if the fourth region has not changed since said establishing of the second repository.
- 7. A method as recited in claim 6, wherein said establishing, copying, detecting, determining and reading are performed at least in part using filesystem software also used for the writing to the base volume.
- 8. A method as recited in claim 7, wherein the first and second repositories are filesystems and said determining of changes in the base volume is based on whether one of the second and fourth regions corresponds to a written extent.
- 9. A method as recited in claim 8, further comprising maintaining data integrity of the first and second snapshots by changing a flag indicating that data has not been written to an extent only after the write operation to the base volume is completed.
- 10. A method as recited in claim 4, wherein the first repository is a filesystem created and accessed by filesystem software also used for the writing to the base volume and said determining of whether the second region has changed in the base volume is based on whether the second region corresponds to an unwritten extent in the filesystem of the first repository.
- 11. A method as recited in claim 3, wherein the first repository is a filesystem created and accessed by filesystem software also used for the writing to the base volume and said determining of whether the first region was previously written to the first repository is based on whether the first region corresponds to a written extent in the filesystem of the first repository.
- 12. A computer system maintaining a copy of at least one data volume for at least one point in time, comprising:
at least one storage device storing at least one data volume; and a processor, coupled to said storage device, to establish a first repository for a first snapshot of a base volume and, prior to a write operation to a first region of the base volume, to copy the first region of the base volume to the first repository.
- 13. A computer system as recited in claim 12, wherein said processor further detects write operations to the base volume and copies only regions in the base volume for which write operations are detected.
- 14. A computer system as recited in claim 13, wherein said processor further determines whether the first region was previously written to the first repository and copies the first region only if the first region was not previously written to the first repository.
- 15. A computer system as recited in claim 14, wherein said processor further reads data from a second region of the first snapshot by determining whether the second region has changed in the base volume, reading the second region from the first repository if the second region has changed and reading the second region from the base volume if the second region has not changed.
- 16. A computer system as recited in claim 15,
wherein said at least one storage device stores a second repository for a second snapshot of the base volume at a point in time after establishment of the first repository; and wherein said processor further copies a third region of the base volume to the second repository prior to writing to the third region of the base volume after establishment of the second repository.
- 17. A computer system as recited in claim 16, wherein said processor further reads data from a fourth region of the second snapshot by determining whether the fourth region has changed in the base volume since establishment of the second repository, reading the fourth region from the second repository if the fourth region has changed since establishment of the second repository and reading the fourth region from the base volume if the fourth region has not changed since establishment of the second repository.
- 18. At least one computer readable medium storing at least one program embodying a method of maintaining a copy of at least one data volume in a computer system for at least one point in time, said method comprising:
establishing a first repository for a first snapshot of a base volume; and prior to a write operation to a first region of the base volume, copying the first region of the base volume to the first repository.
- 19. At least one computer readable medium as recited in claim 18,
wherein said method further comprises detecting write operations to the base volume; and wherein said copying is performed only for regions in the base volume for which write operations are detected.
- 20. At least one computer readable medium as recited in claim 19,
wherein said method further comprises determining whether the first region was previously written to the first repository, and wherein said copying is performed only if the first region was not previously written to the first repository.
- 21. At least one computer readable medium as recited in claim 20, wherein said method further comprises reading data from a second region of the first snapshot by:
determining whether the second region has changed in the base volume; reading the second region from the first repository if the second region has changed; and reading the second region from the base volume if the second region has not changed.
- 22. At least one computer readable medium as recited in claim 21, wherein said method further comprises:
establishing a second repository for a second snapshot of the base volume at a point in time later than said establishing of the first repository; and prior to writing to a third region of the base volume after said establishing of the second repository, copying the third region of the base volume to the second repository.
- 23. At least one computer readable medium as recited in claim 22, wherein said method further comprises reading data from a fourth region of the second snapshot by:
determining whether the fourth region has changed in the base volume since said establishing of the second repository; reading the fourth region from the second repository if the fourth region has changed since said establishing of the second repository; and reading the fourth region from the base volume if the fourth region has not changed since said establishing of the second repository.
CROSS-REFERENCE TO RELATED APPLICATION(S)
[0001] This application is related to and claims priority to U.S. provisional application entitled CLUSTERED FILESYSTEM having Ser. No. 60/296,046, by Bannister et al., filed Jun. 5, 2001 and incorporated by reference herein. This application is a continuation-in-part of the U.S. application entitled CLUSTERED FILESYSTEM having Ser. No. 10/162,258, filed Jun. 5, 2002 and incorporated by reference herein.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60296046 |
Jun 2001 |
US |
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
10162258 |
Jun 2002 |
US |
Child |
10682841 |
Oct 2003 |
US |