Claims
- 1. A method for updating a file system snapshot, comprising:
accessing a first file system snapshot in a plurality of file system snapshots, wherein the first file system snapshot includes data contents; copying the data contents of the first file system snapshot, wherein the data contents includes any one of:
at least one shadow inode and at least one data block referenced by a disk address in a shadow inode; and at least one shadow inode, and writing the data contents which have been copied to a next oldest file system snapshot.
- 2. The method of claim 1, wherein the copying of the data contents comprises copying the data contents of the first file system snapshot, wherein the data contents includes any one of:
at least one shadow inode, at least one indirect block referenced by a shadow inode and at least one data block referenced by a disk address in an indirect block; and at least one shadow inode.
- 3. The method of claim 1, further comprising:
updating the data contents of the first file system snapshot in accordance with modifications to at least one source file corresponding to the first file system snapshot.
- 4. The method of claim 1, further comprising:
accessing a next most recent file system snapshot; copying the data contents of the next most recent file system snapshot, wherein the data contents includes any one of:
at least one shadow inode and at least one data block referenced by a disk address in a shadow inode; and at least one shadow inode, and writing the data contents which have been copied to the first file system snapshot.
- 5. The method of claim 4, wherein the copying of the data contents includes copying the data contents of the next most recent file system snapshot, wherein the data contents includes any one of:
at least one shadow inode, at least one indirect block referenced by a shadow inode and at least one data block referenced by a disk address in an indirect block; and at least one shadow inode.
- 6. A method for retrieving snapshot data, comprising:
accessing in a snapshot dataset a shadow inode corresponding to a source file; determining whether the shadow inode includes a disk address; wherein if the shadow inode includes a disk address, reading a data block referenced by the disk address; wherein if the shadow inode does not include a disk address and a next most recent snapshot dataset exists, accessing the next most recent snapshot dataset and repeatedly executing the first accessing step, the determining step and the second accessing step until the reading step is executed; and wherein if the shadow inode does not include a disk address and a next most recent snapshot dataset does not exist, accessing a file system inode corresponding to the shadow inode and reading a data block referenced by a disk address in the file system inode.
- 7. The method of claim 6, further comprising:
wherein if the shadow inode includes a disk address, reading an indirect block referenced by the disk address and at least one data block referenced by at least one disk address in the indirect block.
- 8. The method of claim 6, further comprising:
wherein if the shadow inode does not include a disk address, accessing a next most recent snapshot dataset having the same ancestor as the first snapshot dataset and repeatedly executing the first accessing step, the determining step and the second accessing step until the reading step is executed.
- 9. A system for updating a file system snapshot, comprising:
means for accessing a first file system snapshot in a plurality of file system snapshots, wherein the first file system snapshot includes data contents; means for copying the data contents of the first file system snapshot, wherein the data contents includes any one of:
at least one shadow inode and at least one data block referenced by a disk address in a shadow inode; and at least one shadow inode, and means for writing the data contents which have been copied to a next oldest file system snapshot.
- 10. The system of claim 9, wherein the means for copying of the data contents comprises means for copying the data contents of the first file system snapshot, wherein the data contents includes any one of:
at least one shadow inode and at least one data block referenced by a disk address in a shadow inode; and at least one shadow inode.
- 11. The system of claim 9, further comprising:
means for updating the data contents of the first file system snapshot in accordance with modifications to at least one source file corresponding to the first file system snapshot.
- 12. The system of claim 9, further comprising:
means for accessing a next most recent file system snapshot; means for copying the data contents of the next most recent file system snapshot, wherein the data contents includes any one of:
at least one shadow inode and at least one data block referenced by a disk address in a shadow inode; and at least one shadow inode, and means for writing the data contents which have been copied to the first file system snapshot.
- 13. The system of claim 12, wherein the means for copying of the data contents includes means for copying the data contents of the next most recent file system snapshot, wherein the data contents includes any one of:
at least one shadow inode, at least one indirect block referenced by a shadow inode and at least one data block referenced by a disk address in an indirect block; and at least one shadow inode.
- 14. A system for retrieving snapshot data, comprising:
means for accessing in a snapshot dataset a shadow inode corresponding to a source file; means for determining whether the shadow inode includes a disk address; means for reading a data block referenced by the disk address; means for accessing a next most recent snapshot dataset and repeatedly executing the first means for accessing, the means for determining and the second means for accessing until the means for reading is executed; and means for accessing a file system inode corresponding to the shadow inode and reading a data block referenced by a disk address in the file system inode.
- 15. The system of claim 14, further comprising:
means for reading an indirect block referenced by the disk address and at least one data block referenced by at least one disk address in the indirect block.
- 16. The system of claim 14, further comprising:
means for accessing a next most recent snapshot dataset having the same ancestor as the snapshot dataset and repeatedly executing the first means for accessing, the means for determining and the means for reading.
- 17. A computer readable medium including computer instructions for updating a file system snapshot, the computer instructions comprising instructions for:
accessing a first file system snapshot in a plurality of file system snapshots, wherein the first file system snapshot includes data contents; copying the data contents of the first file system snapshot, wherein the data contents includes any one of:
at least one shadow inode and at least one data block referenced by a disk address in a shadow inode; and at least one shadow inode, and writing the data contents which have been copied to a next oldest file system snapshot.
- 18. The computer readable medium of claim 17, wherein the copying of the data contents comprises copying the data contents of the first file system snapshot, wherein the data contents includes any one of:
at least one shadow inode and at least one data block referenced by a disk address in a shadow inode; and at least one shadow inode.
- 19. The computer readable medium of claim 17, further comprising instructions for:
updating the data contents of the first file system snapshot in accordance with modifications to at least one source file corresponding to the first file system snapshot.
- 20. The computer readable medium of claim 17, further comprising instructions for:
accessing a next most recent file system snapshot; copying the data contents of the next most recent file system snapshot, wherein the data contents includes any one of:
at least one shadow inode and at least one data block referenced by a disk address in a shadow inode; and at least one shadow inode, and writing the data contents which have been copied to the first file system snapshot.
- 21. The computer readable medium of claim 20, wherein the copying of the data contents includes copying the data contents of the next most recent file system snapshot, wherein the data contents includes any one of:
at least one shadow inode, at least one indirect block referenced by a shadow inode and at least one data block referenced by a disk address in an indirect block; and at least one shadow inode.
- 22. A computer readable medium including computer instructions for retrieving snapshot data, the computer instructions comprising instructions for:
accessing in a snapshot dataset a shadow inode corresponding to a source file; determining whether the shadow inode includes a disk address; wherein if the shadow inode includes a disk address, reading a data block referenced by the disk address; wherein if the shadow inode does not include a disk address and a next most recent snapshot dataset exists, accessing the next most recent snapshot dataset and repeatedly executing the first accessing instructions, the determining instructions and the second accessing instructions until the reading instructions are executed; and wherein if the shadow inode does not include a disk address and a next most recent snapshot dataset does not exist, accessing a file system inode corresponding to the shadow inode and reading a data block referenced by a disk address in the file system inode.
- 23. The computer readable medium of claim 22, further comprising instructions for:
wherein if the shadow inode includes a disk address, reading an indirect block referenced by the disk address and at least one data block referenced by at least one disk address in the indirect block.
- 24. The computer readable medium of claim 22, further comprising instructions for:
wherein if the shadow inode does not include a disk address, accessing a next most recent snapshot dataset having the same ancestor as the snapshot dataset and repeatedly executing the first instructions for accessing, the instructions for determining and the second instructions for accessing until the instructions for reading are executed.
- 25. A system for updating a file system snapshot, comprising:
a first file system snapshot in a plurality of file system snapshots, wherein the first file system snapshot includes data contents; data contents of the first file system snapshot, wherein the data contents includes any one of:
at least one shadow inode and at least one data block referenced by a disk address in a shadow inode; and at least one shadow inode, and means for writing the data contents to a next oldest file system snapshot.
- 26. The system of claim 25, wherein the data contents includes any one of:
at least one shadow inode, at least one indirect block referenced by a shadow inode and at least one data block referenced by a disk address in an indirect block; and at least one shadow inode.
- 27. The system of claim 25, further comprising:
a next most recent file system snapshot; data contents of the next most recent file system snapshot, wherein the data contents includes any one of:
at least one shadow inode and at least one data block referenced by a disk address in a shadow inode; and at least one shadow inode, and means for writing the data contents to the first file system snapshot.
- 28. A system for retrieving snapshot data, comprising:
a shadow inode in a first snapshot dataset corresponding to a source file; a disk address included in the shadow inode; a data block referenced by the disk address; a next most recent snapshot dataset.
- 29. The system of claim 28, further comprising:
an indirect block referenced by the disk address; and at least one data block referenced by at least one disk address in the indirect block.
- 30. The system of claim 28, further comprising:
a next most recent snapshot dataset having the same ancestor as the first snapshot dataset.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application relates to the inventors' concurrently filed and commonly assigned U.S. patent application Ser. No. ______, attorney docket number POU920020010US1; U.S. patent application Ser. No. ______, attorney docket number POU920020010US1; U.S. patent application Ser. No. ______, attorney docket number POU920020012US1; U.S., attorney docket number POU920020013US1; and U.S. patent application Ser. No. ______, attorney docket number POU920020014US1. All of these applications were filed on Feb. 15, 2002 and are commonly assigned to International Business Machines Corporation.