Systems and methods for a snapshot of data
First Claim
1. A method for taking a snapshot of a portion of a file system including files and directories, the method comprising:
- accepting, by a computer processor, at least one path that represents a portion of a file system which is less than the entire file system;
accessing, by the computer processor, metadata associated with data that represents the top-most level of the at least one path, the metadata comprising information about the data, the information comprising a governance list, the governance list configured to comprise identifiers of a plurality of snapshots governing the data;
obtaining, by the computer processor, a snapshot identifier identifying a snapshot;
adding, by the computer processor, the snapshot identifier to the governance list of the accessed metadata prior to any modifications of the portion of the file system represented by the at least one path;
receiving a request to modify a portion of a file to be modified within the portion of the file system represented by the at least one path;
determining that the portion of the file to be modified is governed by a snapshot;
copying the portion of the file to be modified prior to modifying the portion of the file to be modified; and
creating an at least one indication in a snapshot metadata associated with the copied portion of the file, the at least one indication indicating that one or more references to unmodified portions of the file are not stored in the snapshot metadata.
12 Assignments
0 Petitions
Accused Products
Abstract
In one embodiment, a user or client device is connected to a distributed file system comprised of one or more physical nodes. The data on each of the physical nodes store metadata about files and directories within the file system. Some of the embodiments permit a user to take a snapshot of data stored on the file system. The snapshot may include a single file, a single directory, a plurality of files within a directory, a plurality of directories, a path on the file system that includes nested files and subdirectories, or more than one path on the file system that each includes nested files and directories. According to one embodiment, the system stores and updates metadata, including a governance list, for each of the files and directories. The governance list provides a representation of the snapshots which govern a file or directory and its descendants.
374 Citations
13 Claims
-
1. A method for taking a snapshot of a portion of a file system including files and directories, the method comprising:
-
accepting, by a computer processor, at least one path that represents a portion of a file system which is less than the entire file system; accessing, by the computer processor, metadata associated with data that represents the top-most level of the at least one path, the metadata comprising information about the data, the information comprising a governance list, the governance list configured to comprise identifiers of a plurality of snapshots governing the data; obtaining, by the computer processor, a snapshot identifier identifying a snapshot; adding, by the computer processor, the snapshot identifier to the governance list of the accessed metadata prior to any modifications of the portion of the file system represented by the at least one path; receiving a request to modify a portion of a file to be modified within the portion of the file system represented by the at least one path; determining that the portion of the file to be modified is governed by a snapshot; copying the portion of the file to be modified prior to modifying the portion of the file to be modified; and creating an at least one indication in a snapshot metadata associated with the copied portion of the file, the at least one indication indicating that one or more references to unmodified portions of the file are not stored in the snapshot metadata. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A data storage system with snapshot capability on a per directory and descendants basis comprising;
-
at least one storage device; at least one computer processor; a file system stored on the at least one storage device and accessible by the at least one computer processor, the file system comprising multiple metadata nodes logically arranged hierarchically each metadata node comprising information about a directory or file stored on the at least one storage device, the information comprising a governance list, the governance list comprising identifiers of zero or more snapshots governing the directory or file and configured to comprise identifiers of a plurality of snapshots governing the directory or file; and at least one executable software module, the at least one computer processor configured to execute the at least one executable software module, the at least one executable software module configured to; accept at least one path that represents a portion of the file system which is less than the entire file system; access a metadata node corresponding to the top-most level of the at least one path; obtain a snapshot identifier; add the snapshot identifier to the governance list of the accessed metadata node; receive a request to modify a portion of a file within the portion of the file system represented by the at least one path determine that the portion of the file to be modified is governed by a snapshot; copy the portion of the file to be modified prior to modifying the portion of the file to be modified; and create an at least one indication in a snapshot metadata node associated with the copied portion of the file, the at least one indication indicating that one or more references to unmodified portions of the file are not stored in the snapshot metadata node. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A data storage system with snapshot capability on a per directory and descendants basis comprising:
-
at least one storage device; at least one computer processor; a file system stored on the at least one storage device and accessible by the at least one computer processor, the file system comprising multiple metadata nodes logically arranged hierarchically, each metadata node comprising information about a directory or file stored on the at least one storage device, the information comprising a governance list and at least one metatree, the governance list comprising identifiers of zero or more snapshots governing the directory or file and configured to comprise identifiers of a plurality of snapshots governing the directory or file; and at least one executable software module, the at least one computer processor configured to execute the at least one executable software module, the at least one executable software module configured to; accept at least one path that represents a portion of the file system which is less than the entire file system; access a metadata node corresponding to the top-most level of the at least one path; obtain a snapshot identifier; and add the snapshot identifier to the governance list of the accessed metadata node. - View Dependent Claims (12, 13)
-
Specification