COLLABORATIVE RESTORE IN A NETWORKED STORAGE SYSTEM
First Claim
1. A method of restoring data to a first client computing device located in a primary storage subsystem using data blocks residing in a data store associated with a second client computing device located in the primary storage subsystem, the method comprising:
- maintaining in a signature repository data block signatures corresponding to data blocks that form primary data, the primary data generated by one or more applications executing on a plurality of client computing devices located within a primary storage subsystem, the primary data for each respective client computing device of the plurality of 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 of corresponding to a previous version of the primary data of a first client computing device of the plurality of client computing devices;
querying, using one or more processors, the signature repository to identify at least a first group of data blocks corresponding to a first group of data block signatures of the received set of data block signatures, the first group of data blocks stored in the data store associated with a second client computing device of the plurality of client computing devices;
retrieving at least some of the first group of data blocks from the data store associated with the second client computing device; and
restoring the secondary copy to the data store associated with the first client computing device using at least the data blocks retrieved from the second client computing device.
4 Assignments
0 Petitions
Accused Products
Abstract
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 also use the client-side signature repository to identify multiple locations within primary storage where instances of some of the data blocks to be restored are located. Accordingly, during a restore operation of one client computing device, the system can source a data block to be restored to the client computing device from another client computing device that is in primary storage.
31 Citations
19 Claims
-
1. A method of restoring data to a first client computing device located in a primary storage subsystem using data blocks residing in a data store associated with a second client computing device located in the primary storage subsystem, the method comprising:
-
maintaining in a signature repository data block signatures corresponding to data blocks that form primary data, the primary data generated by one or more applications executing on a plurality of client computing devices located within a primary storage subsystem, the primary data for each respective client computing device of the plurality of 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 of corresponding to a previous version of the primary data of a first client computing device of the plurality of client computing devices; querying, using one or more processors, the signature repository to identify at least a first group of data blocks corresponding to a first group of data block signatures of the received set of data block signatures, the first group of data blocks stored in the data store associated with a second client computing device of the plurality of client computing devices; retrieving at least some of the first group of data blocks from the data store associated with the second client computing device; and restoring the secondary copy to the data store associated with the first client computing device using at least the data blocks retrieved from the second client computing device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. 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 signature repository including one or more data block signatures corresponding to data blocks that are generated by one or more applications executing on a plurality of client computing devices and that form primary data, the primary data for each respective client computing device of the plurality of client computing devices stored in a data store associated with the respective client computing device; and a repository agent executing on a computing device that is separate from the plurality of client computing devices, the repository agent configured to; maintain the signature repository in one or more storage devices; 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 plurality of client computing devices; and query the signature repository to identify at least a first group of data blocks corresponding to a first group of data block signatures of the received set of data block signatures, the first group of data blocks stored in the data store associated with a second client computing device of the plurality of client computing devices, wherein the secondary copy is restored to the data store associated with the first client computing device using at least some of the first group of data blocks that are retrieved from the data store associated with the second client computing device. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A computer-readable, non-transitory storage medium having one or more computer-executable modules for maintaining a signature repository accessible by multiple client computing devices in a data storage system, the one or more computer-executable modules comprising:
-
a first module in communication with a plurality of client computing devices, the plurality of client computing devices within a primary storage subsystem and having one or more applications executing thereon that generate primary data formed of a plurality of data blocks, the primary data for each respective client computing device of the plurality of client computing devices stored in a data store associated with the respective client computing device, wherein the first module is configured to; maintain a signature repository including data block signatures corresponding to the plurality 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 plurality of client computing devices; and query the signature repository to identify at least a first group of data blocks corresponding to a first group of data block signatures of the received set of data block signatures, the first group of data blocks stored in the data store associated with a second client computing device of the plurality of client computing devices, wherein the secondary copy is restored to the data store associated with the first client computing device using at least some of the first group of data blocks that are retrieved from the data store associated with the second client computing device.
-
Specification