IP Library Granted Patent US 7,529,785
Granted Patent B1
US 7,529,785 · App. 11/363,780 · Granted May 5, 2009

Efficient backups using dynamically shared storage pools in peer-to-peer networks

View Patent ↗
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 7,529,785
App. No.
11/363,780
Granted
May 5, 2009
Kind
B1
Abstract

A system for efficient backups using dynamically shared storage pools in peer-to-peer networks comprises one or more processors and memory coupled to the processors. The memory stores instructions executable by the processors to implement a backup manager configured to dynamically subdivide a storage pool into one or more portions of storage currently designated for local backup data and one or more portions of storage currently designated for peer-to-peer (P2P) backup data. In response to local backup data received from a backup client, the backup manager may store the local backup data in a portion of the storage pool that is currently designated for local backup data. The backup manager may then generate a P2P version of the local backup data, e.g., by encrypting and/or redundancy encoding the local backup data, and transmit parts of the P2P version to each of one or more peer devices in the P2P network.

Claims (104)

1. A system comprising:

one or more processors;

memory coupled to the one or more processors, wherein the memory stores program instructions executable by the one or more processors to implement a first backup manager configured to:

subdivide a storage pool into one or more portions of storage designated for local backup data and one or more portions of storage designated for peer-to-peer (P2P) backup data;

receive a first request from a first backup client to store first local backup data, wherein the first local backup data includes a first plurality of data blocks;

in response to the first request:

store the first plurality of data blocks of the first local backup data in a first portion of the storage pool designated for local backup data; and

transmit at least a portion of a P2P version of the first local backup data to each of one or more backup managers implemented by one or more peer devices of a P2P network;

receive a second request to store second backup data, wherein the second backup data includes a second plurality of data blocks;

store the second backup data in response to the second request, wherein storing the second backup data comprises replacing one or more particular data blocks of the first local backup data with one or more of the data blocks of the second backup data.

2. The system of claim 1 ,

wherein said receiving the second request to store the second backup data comprises receiving a request from a second backup manager to store particular P2P backup data;

wherein said storing the second backup data comprises:

reallocating storage which stores the one or more particular data blocks of the first local backup data from the first portion of the storage pool designated for local backup data to a second portion of the storage pool designated for P2P backup data; and

storing the particular P2P backup data in the second portion of the storage pool.

3. The system of claim 2 , wherein the first backup manager is further configured to:

prior to reallocating the storage which stores the one or more particular data blocks of the first local backup data from the first portion of the storage pool to the second portion of the storage pool, determine that the first local backup data is recoverable from one or more additional backup managers implemented by one or more peer devices of the P2P network.

4. The system of claim 2 ,

wherein the first backup manager is configured to reallocate the storage which stores the one or more particular data blocks of the first local backup data from the first portion of the storage pool to the second portion of the storage pool prior to completing a transmission of the at least a portion of the P2P version of the first local backup data to each of the one or more backup managers implemented by the one or more peer backup devices.

5. The system of claim 1 ,

wherein said receiving the second request to store the second backup data comprises receiving a request from a second backup client to store second local backup data;

wherein replacing the one or more particular data blocks of the first local backup data with the one or more of the data blocks of the second backup data comprises replacing the one or more particular data blocks of the first local backup data with one or more data blocks of the second local backup data.

6. The system of claim 1 , wherein the first backup manager is further configured to:

receive a third request from a second backup manager to store particular P2P backup data, wherein the particular P2P backup data includes a third plurality of data blocks; and

in response to the third request, store the third plurality of data blocks of the particular P2P backup data in a second portion of the storage pool designated for P2P backup data.

7. The system of claim 6 , wherein the first backup manager is further configured to:

receive a fourth request to store additional backup data, wherein the additional backup data includes a fourth plurality of data blocks; and

store the additional backup data in response to the fourth request, wherein storing the additional backup data comprises replacing one or more particular data blocks of the particular P2P backup data with one or more of the data blocks of the additional backup data.

8. The system of claim 7 ,

wherein receiving the fourth request to store the additional backup data comprises receiving a request to store additional local backup data;

wherein said storing the additional backup data comprises:

reallocating storage which stores the one or more particular data blocks of the particular P2P backup data from the second portion of the storage pool designated for P2P backup data to a third portion of the storage pool designated for local backup data; and

storing the additional local backup data in the third portion of the storage pool.

9. The system of claim 7 ,

wherein the particular P2P backup data is first P2P backup data;

wherein said receiving the fourth request to store the additional backup data comprises receiving a request from a third backup manager to store second P2P backup data;

wherein replacing the one or more particular data blocks of the particular P2P backup data with the one or more of the data blocks of the additional backup data comprises replacing one or more particular data blocks of the first P2P backup data with one or more data blocks of the second P2P backup data.

10. The system of claim 1 , wherein receiving the first request from the first backup client to store the first local backup data comprises:

receiving a request from the first backup client to store a source data set;

exclude a data object of the source data set from the first local backup data stored in the first portion of the storage pool in response to determining that a restorable backup version of the data object is already accessible to the first backup manager.

11. The system of claim 10 ,

wherein in determining that the restorable backup version of the data object is already accessible, the first backup manager is configured to determine that the restorable backup version of the data object is accessible from another backup manager implemented by a peer device of the P2P network.

12. The system of claim 1 ,

wherein the first local backup data includes a data object;

wherein the first backup manager is further configured to generate an encrypted version of the data object for inclusion in the P2P version of the first local backup data.

13. The system of claim 1 ,

wherein the first local backup data includes a data object;

wherein the first backup manager is further configured to generate a redundancy-encoded version of the data object for inclusion in the P2P version of the first local backup data.

14. The system of claim 1 , wherein the first backup manager is incorporated within a network-attached storage (NAS) device.

15. The system of claim 1 , wherein the first backup manager is incorporated within at least one of:

a network router;

a gateway;

a firewall.

16. The system of claim 1 ,

wherein the first local backup data includes a plurality of data objects;

wherein the backup manager is further configured toassign a rank to each data object of the plurality of data objects;

wherein, to transmit the at least a portion of the P2P version of the first local backup data to each of the one or more backup managers implemented by the one or more peer devices, the first backup manager is further configured to transmit respective P2P versions of the plurality of data objects in a sequence derived at least in part from the respective rank assigned to each data object of the plurality of data objects.

17. A tangible, computer-readable medium storing program instructions executable to implement a first backup manager configured to:

subdivide a storage pool into one or more portions of storage designated for local backup data and one or more portions of storage designated for peer-to-peer (P2P) backup data;

receive a first request from a first backup client to store first local backup data, wherein the first local backup data includes a first plurality of data blocks;

in response to the first request:

store the first plurality of data blocks of the first local backup data in a first portion of the storage pool designated for local backup data; and

transmit at least a portion of a P2P version of the first local backup data to each of one or more backup managers implemented by one or more peer devices of a P2P network;

receive a second request to store second backup data, wherein the second backup data includes a second plurality of data blocks;

store the second backup data in response to the second request, wherein storing the second backup data comprises replacing one or more particular data blocks of the first local backup data with one or more of the data blocks of the second backup data.

18. The computer-readable medium of claim 17 ,

wherein said receiving the second request to store the second backup data comprises receiving a request from a second backup manager to store particular P2P backup data;

wherein said storing the second backup data comprises:

reallocating storage which stores the one or more particular data blocks of the first local backup data from the first portion of the storage pool designated for local backup data to a second portion of the storage pool designated for P2P backup data; and

storing the particular P2P backup data in the second portion of the storage pool.

19. The computer-readable medium of claim 17 ,

wherein said receiving the second request to store the second backup data comprises receiving a request from a second backup client to store second local backup data;

wherein replacing the one or more particular data blocks of the first local backup data with the one or more of the data blocks of the second backup data comprises replacing the one or more particular data blocks of the first local backup data with one or more data blocks of the second local backup data.

20. The computer-readable medium of claim 17 , wherein the first backup manager is further configured to:

receive a third request from a second backup manager to store particular P2P backup data, wherein the particular P2P backup data includes a third plurality of data blocks; and

in response to the third request, store the third plurality of data blocks of the particular P2P backup data in a second portion of the storage pool designated for P2P backup data.

21. The computer-readable medium of claim 20 , wherein the first backup manager is further configured to:

receive a fourth request to store additional backup data, wherein the additional backup data includes a fourth plurality of data blocks; and

store the additional backup data in response to the fourth request, wherein storing the additional backup data comprises replacing one or more particular data blocks of the particular P2P backup data with one or more of the data blocks of the additional backup data.

22. The computer-readable medium of claim 21 ,

wherein receiving the fourth request to store the additional backup data comprises receiving a request to store additional local backup data;

wherein said storing the additional backup data comprises:

reallocating storage which stores the one or more particular data blocks of the particular P2P backup data from the second portion of the storage pool designated for P2P backup data to a third portion of the storage pool designated for local backup data; and

storing the additional local backup data in the third portion of the storage pool.

23. The computer-readable medium of claim 21 ,

wherein the particular P2P backup data is first P2P backup data;

wherein said receiving the fourth request to store the additional backup data comprises receiving a request from a third backup manager to store second P2P backup data;

wherein replacing the one or more particular data blocks of the particular P2P backup data with the one or more of the data blocks of the additional backup data comprises replacing one or more particular data blocks of the first P2P backup data with one or more data blocks of the second P2P backup data.

24. A method implemented by a first backup manager executing in a computer system, the method comprising:

subdividing a storage pool into one or more portions of storage designated for local backup data and one or more portions of storage designated for peer-to-peer (P2P) backup data;

receiving a first request from a first backup client to store first local backup data, wherein the first local backup data includes a first plurality of data blocks;

in response to the first request:

storing the first plurality of data blocks of the first local backup data in a first portion of the storage pool designated for local backup data; and

transmitting at least a portion of a P2P version of the first local backup data to each of one or more backup managers implemented by one or more peer devices of a P2P network;

receiving a second request to store second backup data, wherein the second backup data includes a second plurality of data blocks;

storing the second backup data in response to the second request, wherein storing the second backup data comprises replacing one or more particular data blocks of the first local backup data with one or more of the data blocks of the second backup data.

25. The method of claim 24 ,

wherein said receiving the second request to store the second backup data comprises receiving a request from a second backup manager to store particular P2P backup data;

wherein said storing the second backup data comprises:

reallocating storage which stores the one or more particular data blocks of the first local backup data from the first portion of the storage pool designated for local backup data to a second portion of the storage pool designated for P2P backup data; and

storing the particular P2P backup data in the second portion of the storage pool.

26. The method of claim 24 ,

wherein said receiving the second request to store the second backup data comprises receiving a request from a second backup client to store second local backup data;

wherein replacing the one or more particular data blocks of the first local backup data with the one or more of the data blocks of the second backup data comprises replacing the one or more particular data blocks of the first local backup data with one or more data blocks of the second local backup data.

Assignments (12)
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED ON REEL 019872 FRAME 979. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNEE IS SYMANTEC OPERATING CORPORATION. Recorded Mar 5, 2012
From: VERITAS OPERATING CORPORATION
To: SYMANTEC OPERATING CORPORATION
Reel/Frame 027819/0462 →
CHANGE OF NAME Recorded Sep 26, 2007
From: VERITAS OPERATING CORPORATION
To: SYMANTEC CORPORATION
Reel/Frame 019872/0979 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 28, 2006
From: SPERTUS, MICHAEL P.; KRITOV, SLAVA; KIENZLE, DARRELL M.; VAN RIETSCHOTE, HANS F.; ORLING, ANTHONY T.; SOBEL, WILLIAM E.
To: VERITAS OPERATING CORPORATION
Reel/Frame 017632/0442 →