Block-based sparse backup images of file system volumes
First Claim
1. A non-transitory computer-accessible storage medium storing program instructions executable to:
- receive user input selecting a subset of at least two files, but not all files, of a volume to be backed up, wherein the volume includes a plurality of blocks, wherein the plurality of blocks includes a respective set of data blocks for each file of the volume and blocks of file system metadata structures for the volume, wherein the volume includes a first directory, wherein the first directory includes a plurality of files, wherein the plurality of files of the first directory includes a first one or more files included in the selected subset of files and a second one or more files not included in the selected subset of files;
in response to receiving the user input selecting the subset of files, copy a subset of the plurality of blocks of the volume into a backup image, wherein copying the subset of blocks includes copying each data block for each file of the selected subset of files without copying data blocks for files not in the selected subset of files, wherein data blocks for the first one or more files of the first directory are copied into the backup image, wherein data blocks for the second one or more files of the first directory are not copied into the backup image;
wherein said copying the subset of blocks further includes copying blocks of one or more file system metadata structures needed for accessing the selected subset of files, wherein copying the blocks of the one or more file system metadata structures includes copying blocks of a first directory structure corresponding to the first directory, wherein copying the blocks of the first directory structure includes copying blocks representing respective directory entries for each of the plurality of files of the first directory;
wherein the program instructions are further executable to;
after said copying the subset of blocks into the backup image, receive a request directed to the backup image for a list of files in the first directory; and
in response to the request;
determine a list including each file of the plurality of files of the first directory;
for each respective file of the second one or more files whose data blocks were not copied into the backup image, filter the respective file from the list; and
return information indicating the filtered list of files in response to the request.
7 Assignments
0 Petitions
Accused Products
Abstract
A system and method for creating a backup image from a volume including a plurality of files are described. Information specifying a subset of the files, but not all of the files, to backup may be received. The volume may include a plurality of blocks, where the plurality of blocks includes a respective set of data blocks for each file of the volume and blocks of file system metadata structures for the volume. The method may comprise identifying a subset of, but not all of, the plurality of blocks to copy into the backup image. The subset of blocks may include each data block for each file of the subset of files, and may also include blocks of one or more file system metadata structures needed for accessing the subset of files. The method may further comprise copying each block of the subset of blocks into the backup image. In some embodiments the subset of blocks may be copied into the backup image without copying data blocks for files not in the specified subset of files.
167 Citations
15 Claims
-
1. A non-transitory computer-accessible storage medium storing program instructions executable to:
-
receive user input selecting a subset of at least two files, but not all files, of a volume to be backed up, wherein the volume includes a plurality of blocks, wherein the plurality of blocks includes a respective set of data blocks for each file of the volume and blocks of file system metadata structures for the volume, wherein the volume includes a first directory, wherein the first directory includes a plurality of files, wherein the plurality of files of the first directory includes a first one or more files included in the selected subset of files and a second one or more files not included in the selected subset of files; in response to receiving the user input selecting the subset of files, copy a subset of the plurality of blocks of the volume into a backup image, wherein copying the subset of blocks includes copying each data block for each file of the selected subset of files without copying data blocks for files not in the selected subset of files, wherein data blocks for the first one or more files of the first directory are copied into the backup image, wherein data blocks for the second one or more files of the first directory are not copied into the backup image; wherein said copying the subset of blocks further includes copying blocks of one or more file system metadata structures needed for accessing the selected subset of files, wherein copying the blocks of the one or more file system metadata structures includes copying blocks of a first directory structure corresponding to the first directory, wherein copying the blocks of the first directory structure includes copying blocks representing respective directory entries for each of the plurality of files of the first directory; wherein the program instructions are further executable to; after said copying the subset of blocks into the backup image, receive a request directed to the backup image for a list of files in the first directory; and in response to the request; determine a list including each file of the plurality of files of the first directory; for each respective file of the second one or more files whose data blocks were not copied into the backup image, filter the respective file from the list; and return information indicating the filtered list of files in response to the request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system comprising:
-
one or more processors; and memory storing program instructions, wherein the program instructions are executable by the one or more processors to; receive user input selecting a subset of at least two files, but not all files, of a volume to be backed up, wherein the volume includes a plurality of blocks, wherein the plurality of blocks includes a respective set of data blocks for each file of the volume and blocks of file system metadata structures for the volume, wherein the volume includes a first directory, wherein the first directory includes a plurality of files, wherein the plurality of files of the first directory includes a first one or more files included in the selected subset of files and a second one or more files not included in the selected subset of files; in response to receiving the user input selecting the subset of files, copy a subset of the plurality of blocks of the volume into a backup image, wherein copying the subset of blocks includes copying each data block for each file of the selected subset of files without copying data blocks for files not in the selected subset of files, wherein data blocks for the first one or more files of the first directory are copied into the backup image, wherein data blocks for the second one or more files of the first directory are not copied into the backup image; wherein said copying the subset of blocks further includes copying blocks of one or more file system metadata structures needed for accessing the selected subset of files, wherein copying the blocks of the one or more file system metadata structures includes copying blocks of a first directory structure corresponding to the first directory, wherein copying the blocks of the first directory structure includes copying blocks representing respective directory entries for each of the plurality of files of the first directory; wherein the program instructions are further executable by the one or more processors to; after said copying the subset of blocks into the backup image, receive a request directed to the backup image for a list of files in the first directory; and in response to the request; determine a list including each file of the plurality of files of the first directory; for each respective file of the second one or more files whose data blocks were not copied into the backup image, filter the respective file from the list; and return information indicating the filtered list of files in response to the request. - View Dependent Claims (12, 13)
-
-
11. A method comprising:
-
receiving user input selecting a subset of at least two files, but not all files, of a volume to be backed up, wherein the volume includes a plurality of blocks, wherein the plurality of blocks includes a respective set of data blocks for each file of the volume and blocks of file system metadata structures for the volume, wherein the volume includes a first directory, wherein the first directory includes a plurality of files, wherein the plurality of files of the first directory includes a first one or more files included in the selected subset of files and a second one or more files not included in the selected subset of files; in response to receiving the user input selecting the subset of files, copying a subset of the plurality of blocks of the volume into a backup image, wherein copying the subset of blocks includes copying each data block for each file of the selected subset of files without copying data blocks for files not in the selected subset of files, wherein data blocks for the first one or more files of the first directory are copied into the backup image, wherein data blocks for the second one or more files of the first directory are not copied into the backup image; wherein said copying the subset of blocks further includes copying blocks of one or more file system metadata structures needed for accessing the selected subset of files, wherein copying the blocks of the one or more file system metadata structures includes copying blocks of a first directory structure corresponding to the first directory, wherein copying the blocks of the first directory structure includes copying blocks representing respective directory entries for each of the plurality of files of the first directory; wherein the method further comprises; after said copying the subset of blocks into the backup image, receiving a request directed to the backup image for a list of files in the first directory; and in response to the request; determining a list including each file of the plurality of files of the first directory; for each respective file of the second one or more files whose data blocks were not copied into the backup image, filtering the respective file from the list; and returning information indicating the filtered list of files in response to the request. - View Dependent Claims (14, 15)
-
Specification