APPROACH FOR OPTIMIZING RESTORES OF DEDUPLICATED DATA
First Claim
1. A method for optimizing restores of deduplicated data within a storage management system, the storage management system comprising a client computing system coupled to a client data store and a server computing system coupled to a deduplicated server data store, with the method comprising:
- maintaining a chunk index on the client computing system, the chunk index tracking locations of chunks within files remaining on the client data store after storage of the files to the server data store;
retrieving chunks for a specified file during a restore of the specified file from the server data store to the client data store, including for each chunk of the specified file;
determining whether a valid entry for the chunk exists in the chunk index;
retrieving the chunk from the server data store responsive to determining a valid entry for the chunk does not exist in the chunk index; and
retrieving the chunk from a location on the client data store specified in the chunk index responsive to determining a valid entry for the chunk exists in the chunk index; and
reconstructing the specified file from the retrieved copies of the chunks and completing the restore of the specified file to the client data store.
1 Assignment
0 Petitions
Accused Products
Abstract
Various techniques for improving the performance of restoring deduplicated data files from a server to a client within a storage management system are disclosed. In one embodiment, a chunk index is maintained on the client that tracks the chunks remaining on the client for each data file that is stored to and restored from the storage server. When a specific file is selected for restore from the storage server to the client, the client determines if any local copies of this specific file'"'"'s chunks are stored in files already existing on the client data store. The file is then reconstructed from a combination of these local copies of the file chunks and chunks retrieved from the storage server. Therefore, only chunks that are not stored or are inaccessible to the client are retrieved from the server, reducing server-side processing requirements and the bandwidth required for data restore operations.
-
Citations
22 Claims
-
1. A method for optimizing restores of deduplicated data within a storage management system, the storage management system comprising a client computing system coupled to a client data store and a server computing system coupled to a deduplicated server data store, with the method comprising:
-
maintaining a chunk index on the client computing system, the chunk index tracking locations of chunks within files remaining on the client data store after storage of the files to the server data store; retrieving chunks for a specified file during a restore of the specified file from the server data store to the client data store, including for each chunk of the specified file; determining whether a valid entry for the chunk exists in the chunk index; retrieving the chunk from the server data store responsive to determining a valid entry for the chunk does not exist in the chunk index; and retrieving the chunk from a location on the client data store specified in the chunk index responsive to determining a valid entry for the chunk exists in the chunk index; and reconstructing the specified file from the retrieved copies of the chunks and completing the restore of the specified file to the client data store. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for optimizing restores of deduplicated data onto a client computing system in a storage management system, the storage management system comprising a client computing system coupled to a client data store and a server computing system coupled to a deduplicated server data store, with the method comprising:
-
receiving data of a file from the client data store for storage to the server data store; storing deduplicated chunks of the file within the server data store, wherein the client computing system maintains an index to track locations of file chunks remaining on the client data store after storage to the server data store; providing one or more chunks of the file from the server data store during a restore of the file to the client data store, including providing the chunk from the server data store responsive to the client computing system determining the one or more chunks do not exist on the client data store; and providing an end-to-end digest of the file to the client computing system to enable verification of the restore of the file to the client data store.
-
-
12. A storage management system, comprising:
-
a client computing system; a server computing system connected to the client computing system via a network; a client data store coupled to the client computing system; a server data store coupled to the server computing system; at least one processor within the storage management system; and at least one memory store within the storage management system having instructions operable with the at least one processor for optimizing restores of deduplicated data, the instructions being executed for; maintaining a chunk index on the client computing system, the chunk index tracking locations of chunks within files remaining on the client data store after storage of the files to the server data store; retrieving chunks for a specified file during a restore of the specified file from the server data store to the client data store, including for each chunk of the specified file; determining whether a valid entry for the chunk exists in the chunk index; retrieving the chunk from the server data store responsive to determining a valid entry for the chunk does not exist in the chunk index; and retrieving the chunk from a location on the client data store specified in the chunk index responsive to determining a valid entry for the chunk exists in the chunk index; and reconstructing the specified file from the retrieved copies of the chunks and completing the restore of the specified file to the client data store. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A storage management system, comprising:
-
a client computing system; a server computing system connected to the client computing system via a network; a client data store coupled to the client computing system; a server data store coupled to the server computing system; at least one processor within the storage management system; and at least one memory store within the storage management system having instructions operable with the at least one processor for optimizing restores of deduplicated data from the server computing system onto the client computing system, the instructions being executed for; receiving data of a file from the client data store for storage to the server data store; storing deduplicated chunks of the file within the server data store, wherein the client computing system tracks locations of file chunks remaining on the client data store after storage to the server data store; providing one or more chunks of the file from the server data store during a restore of the file to the client data store, including providing the chunk from the server data store responsive to the client computing system determining the one or more chunks do not exist on the client data store; and providing an end-to-end digest of the file to the client computing system to enable verification of the restore of the file to the client data store.
-
Specification