IP Library Patent Application 13916385
Patent Application
App. No. 13/916,385

COLLABORATIVE BACKUP IN A NETWORKED STORAGE SYSTEM

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
13/916,385
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 copy or backup operations, the system can use the client-side signature repository to identify data blocks located in primary storage that are new or that have changed. The system can also use the client-side signature repository to identify multiple locations within primary storage where different instances of the data blocks are located. Accordingly, during a copy or backup operation of one client computing device, the system can source a data block that is to be copied to secondary storage from another client computing device that includes a second instance of the data block.

Claims (52)

1 . A method of generating a secondary copy data set for a client computing device by collaboratively sourcing data to be used in the secondary copy data set from at least one other client computing device, the method comprising:

for each respective client computing device of a plurality of client computing devices:

monitoring storage of a plurality of files formed by data blocks generated by one or more software applications running on the respective client computing device,

wherein the files are stored in a data store associated with the respective client computing device;

maintaining, by a signature repository agent executing on one or more processors, a global mapping indicating which data blocks are stored in the data stores associated with each of the plurality of client computing devices, wherein separate copies of at least some of the data blocks reside in the data stores of multiple ones of the plurality of client computing devices;

in response to instructions to create a secondary copy in secondary storage of at least a subset of the plurality of files stored in the data store of a first client computing device of the plurality of client computing devices,

querying, by the signature repository agent, the global mapping to identify at least a first group of data blocks in the subset of the plurality of files that are stored in the data store associated with a second client computing device of the plurality of client computing devices;

retrieving the first group of data blocks from the data store associated with the second client computing device; and

retrieving at least some of the remaining data blocks in the first portion from the data store associated with the first client computing device.

2 . The method of claim 1 , further comprising communicating the retrieved data blocks to the secondary storage, wherein the secondary copy is created using at least the retrieved data blocks.

3 . The method of claim 1 , wherein the signature repository agent resides on a computing device that is separate from each of the plurality of client computing devices.

4 . The method of claim 3 , wherein the global mapping is maintained in one or more storage devices that are separate from the data stores of the plurality of client computing devices.

5 . The method of claim 3 , further comprising maintaining signatures in the global mapping which correspond to the data blocks that are stored in the data store associated with each of the plurality of client computing devices.

6 . The method of claim 5 , further comprising including in the global mapping, for each data block referenced in the global mapping:

a client computing device identifier indicating which client computing device stores the referenced data block in its associated data store; and

a storage location for the referenced data block within the client computing device that stores the referenced block.

7 . The method of claim 1 , further comprising:

accessing priority information associated with the first client computing device and the second client computing device;

wherein said retrieving the first group of data blocks comprises retrieving the first group of data blocks from the data store associated with the second client computing device only if the priority information indicates that it is preferable to source the data from the data store associated with the second client computing device rather than from the data store associated with the first client computing device.

8 . The method of claim 7 , wherein the priority information comprises one or more of user-defined priority, processing load information, and an amount of available resources.

9 . The method of claim 1 , wherein the global mapping includes only metadata and does not include copies of the data blocks referenced in the global mapping.

10 . The method of claim 1 , wherein the secondary storage comprises deduplicated data.

11 . The method of claim 1 , wherein the data stores of plurality of client computing devices comprises deduplicated data.

12 . A storage system for generating a secondary copy data set for a client computing device by collaboratively sourcing data to be used in the secondary copy data set from at least one other client computing device, the system comprising:

a global mapping stored in one or more storage devices and indicating which data blocks are stored in data stores associated with a plurality of client computing devices, wherein the data blocks are generated by one or more software applications running on the plurality of client computing devices;

a signature repository agent executing on a computing device and configured to:

maintain the global mapping indicating which data blocks are stored in the data stores associated with each of the plurality of client computing devices, wherein separate copies of at least some of the data blocks reside in the data stores of multiple ones of the plurality of client computing devices;

in response to instructions to create a secondary copy in secondary storage of at least a subset of data blocks stored in the data store associated with the first client computing device,

query the global mapping to identify at least a first group of data blocks in the subset of data blocks that are stored in the data store associated with a second client computing device of the plurality of client computing devices;

wherein the first group of data blocks is retrieved from the data store associated with the second client computing device; and

wherein at least some of the remaining data blocks in the subset of data blocks are retrieved from the data store associated with the first client computing device.

13 . The system of claim 12 , wherein the data blocks retrieved from the data stores of the first and second client computing devices are communicated to the secondary storage subsystem which creates the secondary copy using the communicated data blocks.

14 . The system of claim 12 , wherein the signature repository agent executes on a computing device that is distinct from each of the plurality of client computing devices.

15 . The system of claim 14 , wherein the global mapping is maintained in one or more storage devices that are separate from the data stores of the plurality of client computing devices.

16 . The system of claim 14 , wherein the global mapping includes signatures which correspond to the data blocks that are stored in the data store associated with each of the plurality of client computing devices.

17 . The system of claim 14 , wherein the one or more storage devices on which the global mapping is stored additionally store, for each data block referenced in the global mapping:

a client computing device identifier indicating which client computing device of the plurality of client computing devices stores the referenced data block in its associated data store; and

a storage location for the referenced data block within the client computing device that stores the referenced data block.

18 . The system of claim 12 , wherein the signature repository agent is further configured to access priority information associated with the first client computing device and the second client computing device,

wherein the first group of data blocks is retrieved from the data store associated with the second client computing device only if the priority information indicates that it is preferable to source the data from the data store associated with the second data store rather than from the data store associated with the first client computing device.

19 . The system of claim 18 , wherein the priority information comprises one or more of user-defined priority, processing load information, and an amount of available resources.

20 . The system of claim 12 , wherein the global mapping includes only metadata and does not include copies of the data blocks referenced in the global mapping.

21 . The system of claim 12 , wherein the secondary storage comprises deduplicated data.

22 . The system of claim 12 , wherein the data stores of the plurality of client computing devices comprise deduplicated data.

23 . A computer-readable, non-transitory storage medium having one or more computer-executable modules for generating a secondary copy data set for a client computing device by collaboratively sourcing data to be used in the secondary copy data set from at least one other client computing device, the one or more computer-executable modules comprising:

a first module in communication with a plurality of client computing devices and configured to:

maintain a global mapping indicating which data blocks are stored in data stores associated with a plurality of client computing devices, wherein the data blocks are generated by one or more software applications running on the plurality of client computing devices, wherein separate copies of at least some of the data blocks reside in the data stores of multiple ones of the plurality of client computing devices;

in response to instructions to create a secondary copy in secondary storage of at least a subset of data blocks stored in the data store associated with the first client computing device,

query the global mapping to identify at least a first group of data blocks in the subset of data blocks that are stored in the data store associated with the second client computing device;

wherein the first group of data blocks is retrieved from the data store associated with the second client computing device; and

wherein at least some of the remaining data blocks in the subset of data blocks are retrieved from the data store associated with the first client computing device.

24 . The storage medium of claim 23 , wherein the data blocks retrieved from the data stores of the first and second client computing devices are communicated to the secondary storage subsystem which creates the secondary copy using the communicated data blocks.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Jan 6, 2021
From: BANK OF AMERICA, N.A.
To: COMMVAULT SYSTEMS, INC.
Reel/Frame 054913/0905 →
SECURITY INTEREST Recorded Jul 2, 2014
From: COMMVAULT SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 033266/0678 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 30, 2013
From: MULLER, MARCUS S; NGO, DAVID
To: COMMVAULT SYSTEMS, INC.
Reel/Frame 031314/0814 →