Deduplication metadata access in deduplication file system
First Claim
1. A method, comprising:
- determining a state of a file system comprising reading a flag configured to track whether a previous unmount of the file system was complete;
reading a table associated with the file system, including reading a plurality of block numbers associated with a plurality of files in the file system, the table being stored on a disk in a non-volatile storage, wherein the plurality of block numbers includes a block number and another block number, wherein each block number is read to determine an ordered sequence of locations on the disk of one or more data blocks or block groups for a file associated with said each block number;
determining whether each of the plurality of block numbers exists in a reconstruction map being created in a volatile system memory;
modifying the reconstruction map by adding a new entry to the reconstruction map for a block number that does not already exist in the reconstruction map, and incrementing a reference count in the reconstruction map for a block number that does already exist in the reconstruction map;
obtaining a hash value associated with each of the plurality of block numbers and adding the hash value to corresponding entries of the reconstruction map;
reading a plurality of block numbers sequentially from the disk to retrieve corresponding data blocks or block groups from the ordered sequence of locations on the disk using the plurality of block numbers; and
constructing a deduplication metadata data structure that describes file system data based on the hash value, wherein the deduplication metadata structure is constructed in the volatile system memory from the reconstruction map.
3 Assignments
0 Petitions
Accused Products
Abstract
Techniques associated with deduplication metadata access in a deduplication file system are described, including determining a state of a file system, reading a table associated with the file system, including reading block numbers associated with files in the file system, the table being stored in a storage, wherein the block numbers include a block number and logical block number, determining whether each of the block numbers exists in a reconstruction map, modifying the reconstruction map, obtaining a hash value associated with each of the block numbers, reading data blocks from a disk using the plurality of block numbers, and constructing deduplication metadata in system memory (i.e., RAM) using a read of the data blocks.
70 Citations
17 Claims
-
1. A method, comprising:
-
determining a state of a file system comprising reading a flag configured to track whether a previous unmount of the file system was complete; reading a table associated with the file system, including reading a plurality of block numbers associated with a plurality of files in the file system, the table being stored on a disk in a non-volatile storage, wherein the plurality of block numbers includes a block number and another block number, wherein each block number is read to determine an ordered sequence of locations on the disk of one or more data blocks or block groups for a file associated with said each block number; determining whether each of the plurality of block numbers exists in a reconstruction map being created in a volatile system memory; modifying the reconstruction map by adding a new entry to the reconstruction map for a block number that does not already exist in the reconstruction map, and incrementing a reference count in the reconstruction map for a block number that does already exist in the reconstruction map; obtaining a hash value associated with each of the plurality of block numbers and adding the hash value to corresponding entries of the reconstruction map; reading a plurality of block numbers sequentially from the disk to retrieve corresponding data blocks or block groups from the ordered sequence of locations on the disk using the plurality of block numbers; and constructing a deduplication metadata data structure that describes file system data based on the hash value, wherein the deduplication metadata structure is constructed in the volatile system memory from the reconstruction map. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system, comprising:
-
a volatile system memory configured to store a deduplication metadata; and a processor configured to run a deduplication application configured to determine a state of a file system and read a table associated with the file system, including reading a plurality of block numbers associated with a plurality of files in the file system, wherein the plurality of block numbers includes a block number and another block number, and wherein each block number is read to determine an ordered sequence of locations on a disk of one or more data blocks or block groups for a file associated with said each block number, and wherein the state of the file system is determined by reading a flag configured to track whether a previous unmount of the file system was complete determine whether each of the plurality of block numbers exists in a reconstruction map being created in the volatile system memory, modify the reconstruction map by adding a new entry to the reconstruction map for a block number that does not already exist in the reconstruction map, and incrementing a reference count in the reconstruction map for a block number that does already exist in the reconstruction map, obtain a hash value associated with each of the plurality of block numbers and add the hash value to corresponding entries of the reconstruction map, read a plurality of block numbers sequentially from the disk to retrieve corresponding data blocks or block groups from the ordered sequence of locations on the disk using the plurality of block numbers, and construct the deduplication metadata as a deduplication metadata data structure that describes file system data based on the hash value, wherein the deduplication metadata structure is constructed in the volatile system memory from the reconstruction map. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A computer program product embodied in a non-transitory computer readable medium and comprising computer instructions for:
-
determining a state of a file system comprising reading a flag configured to track whether a previous unmount of the file system was complete; reading a table associated with the file system, including reading a plurality of block numbers associated with a plurality of files in the file system, the table being stored on a disk in a non-volatile storage, wherein the plurality of block numbers includes a block number and another block number, wherein each block number is read to determine an ordered sequence of locations on the disk of one or more data blocks or block groups for a file associated with said each block number; determining whether each of the plurality of block numbers exists in a reconstruction map being created in a volatile system memory; modifying the reconstruction map by adding a new entry to the reconstruction map for a block number that does not already exist in the reconstruction map, and incrementing a reference count in the reconstruction map for a block number that does already exist in the reconstruction map; obtaining a hash value associated with each of the plurality of block numbers and adding the hash value to corresponding entries of the reconstruction map; reading a plurality of block numbers sequentially from the disk to retrieve corresponding data blocks or block groups from the ordered sequence of locations on the disk using the plurality of block numbers; and constructing a deduplication metadata data structure that describes file system data based on the hash value, wherein the deduplication metadata structure is constructed in the volatile system memory from the reconstruction map.
-
Specification