Deduplication metadata access in deduplication file system
AssigneeAtlantis Computing, Inc.
InventorsChetan C Venkatesh, Abhijit P Hoskeri
Life of this patent
Estimating the term…
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.
Claims17
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.
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.
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.
Dependencies are inferred from the claim text.