RESTORE USING A CLIENT SIDE SIGNATURE REPOSITORY IN A NETWORKED STORAGE SYSTEM
A storage system according to certain embodiments includes a client-side signature repository that includes information representative of a set of data blocks stored in primary storage. During restore operations, the system can use the client-side signature repository to identify data blocks located in primary storage. The system can source the identified data blocks from their respective locations within primary storage instead of the secondary storage for the restore operation.
1 . A method of restoring data to a primary storage subsystem using data blocks residing in the primary storage subsystem, the method comprising:
maintaining data block signatures in a signature repository, the data block signatures corresponding to at least unique signatures of data blocks that form primary data, the primary data generated by one or more applications executing on one or more of client computing devices, the primary data for each respective client computing device of the one or more client computing devices stored in a data store associated with the respective client computing device;
receiving a set of data block signatures corresponding to data blocks in a secondary copy of data maintained in a secondary storage subsystem, the secondary copy corresponding to a previous version of the primary data of a first client computing device of the one or more client computing devices;
comparing, by one or more processors, the received set of data block signatures to the data block signatures in the signature repository to determine which data blocks in the secondary copy already reside in the primary storage subsystem; and
restoring the secondary copy to the data store associated with the first client computing device using at least some of the data blocks in the secondary copy that already reside in the primary storage subsystem, wherein the remaining data blocks in the secondary copy are retrieved from the secondary storage subsystem.
2 . The method of claim 1 , wherein some of the data blocks in the secondary copy that already reside in the primary storage subsystem reside in the data store associated with the first client computing device and some of the data blocks in the secondary copy that already reside in the primary storage subsystem reside in the data store associated with at least one client computing device other than the first client computing device.
3 . The method of claim 1 , wherein the signature repository further includes, for respective signatures in the signature repository:
an indication as to which of the one or more client computing devices stores a copy of the corresponding data block; and
location information indicating where each respective copy of the corresponding data block is located in the data store of the client computing device that stores the respective copy of the data block.
4 . The method of claim 1 , wherein the signature repository further includes, for respective signatures in the signature repository, an indication as to the number of copies of the data block that reside in the primary storage subsystem.
5 . The method of claim 1 , wherein at least one signature in the signature repository corresponds to a plurality of copies of the corresponding data block, the plurality of copies residing in different locations of the primary storage subsystem, and wherein the signature repository further includes a sourcing order indicator that is referenced to determine which of the plurality of copies is to be used to restore at least a portion of the data store associated with the first client computing device.
6 . The method of claim 1 , wherein the secondary copy is a secondary copy that is accessible using an information management system configured to manage the creation of the secondary copies, and wherein the primary data comprises primary data that is accessible by the applications executing on the client computing devices without use of the information management system.
7 . The method of claim 1 , wherein the data block signatures are generated using a hash algorithm.
8 . The method of claim 1 , wherein the signature repository further includes age information associated with one or more of the data blocks represented in the signature repository.
9 . The method of claim 1 , wherein the secondary storage subsystem comprises deduplicated data.
10 . The method of claim 1 , wherein the data store of one or more client computing devices comprises deduplicated data.
11 . A storage system for restoring data to a primary storage subsystem using data blocks residing in the primary storage subsystem, the storage system comprising:
a data store comprising a signature repository including one or more data block signatures corresponding to data blocks that are generated by one or more applications executing on one or more client computing devices in a primary storage subsystem, the data blocks forming primary data of the one or more client computing devices, the primary data for each respective client computing device of the client computing devices stored in a data store associated with the respective client computing device; and
a signature repository agent executing on one or more computing devices in the primary storage subsystem, the signature repository agent configured to:
maintain the signature repository;
receive a set of data block signatures corresponding to data blocks in a secondary copy of data maintained in a secondary storage subsystem, the secondary copy corresponding to a previous version of the primary data of a first client computing device of the one or more client computing devices;
compare the received set of data block signatures to the data block signatures in the signature repository to determine which data blocks in the secondary copy already reside in the primary storage subsystem; and
wherein at least some of the data blocks identified in the comparison are used to restore secondary copy to the first client computing device, wherein the remaining data blocks in the secondary copy are retrieved from the secondary storage subsystem.
12 . The system of claim 11 , wherein some of the data blocks in the secondary copy that already reside in the primary storage subsystem reside in the data store associated with the first client computing device and some of the data blocks in the secondary copy that already reside in the primary storage subsystem reside in the data store associated with at least one client computing device other than the first client computing device.
13 . The system of claim 11 , wherein the signature repository further includes, for respective signatures in the signature repository:
an indication as to which of the one or more client computing devices stores a copy of the corresponding data block; and
location information indicating where each respective copy of the corresponding data block is located in the data store of the client computing device that stores the respective copy of the data block.
14 . The system of claim 11 , wherein the signature repository further includes, for respective signatures in the signature repository, an indication as to the number of copies of the data block corresponding to each respective signature reside in the primary storage subsystem.
15 . The system of claim 11 , wherein at least one signature in the signature repository corresponds to a plurality of copies of the corresponding data block, the plurality of copies residing in different locations of the primary storage subsystem, and wherein the signature repository further includes a sourcing order indicator that is referenced to determine which of the plurality of copies is to be used to restore at least a portion of the data store associated with the first client computing device.
16 . The system of claim 11 , wherein the secondary copy is a secondary copy that is accessible using an information management system configured to manage the creation of the secondary copies, and wherein the primary data comprises primary data that is accessible by the applications executing on the client computing devices without use of the information management system.
17 . The system of claim 11 , wherein the one or more data block signatures are generated using a hash algorithm.
18 . The system of claim 11 , wherein the signature repository further includes age information associated with one or more of the data blocks represented in the signature repository.
19 . The system of claim 11 , wherein the secondary storage comprises deduplicated data.
20 . The system of claim 11 , wherein the data store of one or more client computing devices comprises deduplicated data.
21 . A computer-readable, non-transitory storage medium having one or more computer-executable modules for maintaining a signature repository accessible by one or more client computing devices in a primary storage subsystem of a data storage system, the one or more computer-executable modules comprising:
a first module in communication with one or more client computing devices that generate data blocks forming primary data, the primary data generated by one or more applications executing on the one or more client computing devices, the primary data for each respective client computing device of the one or more client computing devices stored in a data store associated with the respective client computing device, wherein the first module is configured to:
maintain data block signatures in a signature repository, the data block signatures corresponding to at least unique signatures of data blocks that form the primary data;
receive a set of data block signatures corresponding to data blocks in a secondary copy of data maintained in a secondary storage subsystem, the secondary copy corresponding to a previous version of the primary data of a first client computing device of the one or more client computing devices; and
compare the received set of data block signatures to the data block signatures in the signature repository to identify which data blocks in the secondary copy already reside in the primary storage subsystem,
wherein at least some of the data blocks identified in the comparison are used to restore secondary copy to the first client computing device, wherein the remaining data blocks in the secondary copy are retrieved from the secondary storage subsystem.
22 . The storage medium of claim 21 , wherein some of the data blocks in the secondary copy that already reside in the primary storage subsystem reside in the data store associated with the first client computing device and some of the data blocks in the secondary copy that already reside in the primary storage subsystem reside in the data store associated with at least one client computing device other than the first client computing device.