Ditto address indicating true disk address for actual data blocks stored in one of an inode of the file system and subsequent snapshot
First Claim
1. A method for providing a file system snapshot, comprising:
- creating an initial snapshot dataset for a source file having at least one of metadata and data in a file system, wherein the initial snapshot dataset contains substantially no data and no metadata;
accepting, subsequent to the creating, a command to modify metadata in a second inode within the source file;
copying, in response to accepting the command to modify metadata, at least a portion of the metadata within the second inode into a first inode within the snapshot dataset; and
storing, in response to the accepting, disk address values into a disk address of the first inode that are equal to a ditto address, the ditto address indicating that the true disk address for the actual data block is stored in one of an inode of the file system and a subsequent snapshot.
1 Assignment
0 Petitions
Accused Products
Abstract
A system, method and computer readable medium for providing a file system snapshot with ditto address feature is disclosed. The method includes generating a file system snapshot wherein the snapshot is substantially empty. When metadata associated with a source file included in the snapshot is modified, the inode corresponding to the source file is copied to a shadow inode in the snapshot. When information is appended to a data block associated with a source file included in the snapshot, the inode corresponding to the source file is also copied to a shadow inode in the snapshot. When information in a data block associated with a source file included in the snapshot is overwritten or deleted, the inode corresponding to the source file is copied to a shadow inode in the snapshot and the original data block corresponding to the source file is copied to the snapshot.
83 Citations
26 Claims
-
1. A method for providing a file system snapshot, comprising:
-
creating an initial snapshot dataset for a source file having at least one of metadata and data in a file system, wherein the initial snapshot dataset contains substantially no data and no metadata; accepting, subsequent to the creating, a command to modify metadata in a second inode within the source file; copying, in response to accepting the command to modify metadata, at least a portion of the metadata within the second inode into a first inode within the snapshot dataset; and storing, in response to the accepting, disk address values into a disk address of the first inode that are equal to a ditto address, the ditto address indicating that the true disk address for the actual data block is stored in one of an inode of the file system and a subsequent snapshot. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system for providing a file system snapshot, comprising:
-
means for creating an initial snapshot dataset for a source file having at least one of metadata and data in a file system, wherein the initial snapshot dataset contains substantially no data and no metadata; means for accepting, subsequent to the creating, a command to modify metadata in a second inode within the source file; means for copying, in response to accepting the command to modify metadata, at least a portion of the metadata within the second inode into a first inode within the snapshot dataset; and means for storing, in response to accepting a command to modify metadata, disk address values into a disk address of the first inode that are equal to a ditto address, the ditto address indicating that the true disk address for the actual data block is stored in one of an inode of the file system and a subsequent snapshot. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A computer readable physical storage medium including computer instructions for providing a file system snapshot, the computer instructions comprising instructions for:
-
creating an initial snapshot dataset for a source file having at least one of metadata and data in a file system, wherein the initial snapshot dataset contains substantially no data and no metadata; accepting, subsequent to the creating, a command to modify metadata in a second inode within the source file; copying, in response to accepting the command to modify metadata, at least a portion of the metadata within the second inode into a first inode within the snapshot dataset; and storing, in response to the accepting, disk address values into a disk address of the first inode that are equal to a ditto address, the ditto address indicating that the true disk address for the actual data block is stored in one of an inode of the file system and a subsequent snapshot. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. A system for providing a file system snapshot, comprising:
-
an initial snapshot dataset for a source file containing data in a file system, wherein the snapshot dataset is substantially empty; a file system for accepting a command to modify metadata in a second inode within the source file; and a first inode in the snapshot dataset, the first inode comprising metadata copied from second inode corresponding to the source file, wherein the first inode is generated in response to accepting the command and wherein a ditto address is stored in a disk address of the first inode, the ditto address indicating that the stored disk address is an invalid disk address and indicates that the disk address is an invalid disk address and also indicates that the true disk address for the actual data block is stored in one of an inode of the file system and a subsequent snapshot. - View Dependent Claims (20, 21, 22, 23)
-
-
24. A method for deleting a first snapshot of a file system, comprising:
-
determining the existence of a snapshot that is older than a first snapshot; determining, in response to determining that there is an older snapshot, the existence of a ditto address in a disk address of an inode of the older snapshot to an inode or a data block in the first snapshot, wherein the ditto address indicates an invalid disk address and that the true disk address for the actual data block is stored in one of an inode of the file system and a subsequent snapshot; and deleting, in response to determining that there is no older snapshot, any node or data block in the first snapshot. - View Dependent Claims (25)
-
-
26. A method for restoring a first snapshot of a file system, comprising:
-
accepting a request to read data from a first snapshot determining if there is a most recent snapshot that is not the first snapshot; copying, in response to accepting the request and in response to determining that there is a most recent snapshot that is not the first snapshot, to the most recent snapshot any inode or data block in the file system referenced by the most recent snapshot, which shall be modified by the restoration of the first snapshot; wherein if there is an inode or a data block in the first snapshot, copying the inode or data block in the first snapshot to the file system determining that there is a ditto address in a disk address of an inode of the first snapshot wherein the ditto address indicates an invalid disk address and also indicates that the true disk address for the actual data block is stored in one of an inode of the file system and a subsequent snapshot; and copying, in response accepting the request and in response to determining that there is a ditto disk address in the first snapshot, wherein the ditto address indicates an invalid disk address, to the file system the inode or data block of the most recent snapshot that corresponds to an inode with the ditto disk address and that contains a valid disk address.
-
Specification