IP Library Granted Patent US 7,769,971
Granted Patent B2
US 7,769,971 · App. 11/693,382 · Granted Aug 3, 2010

Replication and restoration of single-instance storage pools

Assignee: Data Center Technologies
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,769,971
App. No.
11/693,382
Filed
Mar 29, 2007
Granted
Aug 3, 2010
Kind
B2
Art Unit
2185
USPC
711/162
Abstract

A system and method for managing single instance storage. A computer system includes at least two backup servers, each backup server included in a single-instance storage pool. A first backup server conveys a first de-duplicated list identifying data segments from the first storage pool to a second backup server. The first backup server receives from the second backup server a second de-duplicated list identifying a subset of the data segments and conveys the subset of the data segments to the second backup server. In response to receiving the first list from the first backup server, the second backup server de-duplicates the first list against a second storage pool and conveys the second list to the first backup server. In response to receiving the subset of the data segments, the second backup server adds the received data segments to the second storage pool.

Claims (79)

1. A computer system comprising:

a first storage pool; and

a second storage pool;

wherein a first backup server of the first storage pool is configured to:

convey a first de-duplicated list identifying one or more data segments from the first storage pool to a second backup server associated with the second storage pool;

receive from the second backup server a second de-duplicated list identifying at least a subset of the one or more data segments; and

convey the subset of the one or more data segments to the second storage pool;

wherein each client of one or more clients included in the system is configured to:

assemble a batch of data segments including only data segments that do not have a backup copy already stored in the first storage pool;

convey the assembled batch to the first backup server; and

assign a batch number to the data segments and references in the assembled batch; and

wherein the first backup server is further configured to:

store batch numbers in a backup history;

select only data segments and references for inclusion in the first list whose batch numbers are stored in the backup history; and

clear the backup history after conveying said subset to the second storage pool.

2. The system as recited in claim 1 ,

wherein in response to receiving the first list from the first backup server, the second backup server is configured to:

de-duplicate the first list against the second storage pool to create the second de-duplicated list; and

convey the second de-duplicated list to the first backup server;

wherein in response to receiving said subset of the one or more data segments, the second backup server is further configured to add the subset of the one or more data segments to the second storage pool.

3. The system as recited in claim 2 , further comprising one or more clients,

wherein for each data segment stored in the first or the second storage pool, there is stored a fingerprint that identifies the data segment and a reference to each client from which a copy of the data segment was received for backup; and

wherein to de-duplicate the first list, the second backup server is further configured to de-duplicate the data segments and each data segment's associated references against the second storage pool.

4. The system as recited in claim 3 , wherein the fingerprints identifying the data segments are encrypted.

5. The system as recited in claim 2 , wherein in response to a request to reverse replicate at least a portion of a second storage pool, the second backup server is configured to:

convey a first de-duplicated reverse list identifying one or more data segments to the first backup server;

receive from the first backup server a second de-duplicated reverse list identifying at least a subset of the one or more data segments of the first de-duplicated reverse list; and

convey the at least a subset of the one or more data segments to the first backup server;

wherein in response to receiving the first reverse list from the second backup server, the first backup server is configured to:

de-duplicate the first reverse list against the first storage pool; and

convey the second de-duplicated reverse list to the second backup server; and

wherein in response to receiving the at least a subset of the one or more data segments, the first backup server is further configured to add the at least a subset of the one or more data segments to the first storage pool.

6. A method of replicating single-instance storage pools between backup servers, the method comprising a first backup server:

conveying a first de-duplicated list identifying one or more data segments from a first storage pool to a second backup server associated with a second storage pool;

receiving from the second backup server a second de-duplicated list identifying at least a subset of the one or more data segments; and

conveying the at least a subset of the one or more data segments to the second backup server;

assembling a batch of data segments including only data segments that do not have a backup copy already stored in the first storage pool;

conveying the assembled batch to the first backup server;

assigning a batch number to the data segments and references in the assembled batch;

in response to receiving an assembled batch:

storing a batch number in a backup history;

selecting only data segments and references for inclusion in the first list whose batch numbers are stored in the backup history; and

clearing the backup history after conveying said subset to the second backup server.

7. The method as recited in claim 6 , further comprising the second backup server:

de-duplicating the first de-duplicated list against the second storage pool to create a second de-duplicated list, in response to receiving the first list from the first backup server;

conveying the second de-duplicated list to the first backup server; and

the first backup server adding the subset of the one or more data segments to the first storage pool in response to receiving said subset.

8. The method as recited in claim 7 , further comprising:

for each data segment stored in the first or the second storage pool, storing a fingerprint that identifies the data segment and a reference to each of one or more clients from which a copy of the data segment was received for backup; and

wherein de-duplicating the first list against a second storage pool further comprises de-duplicating the data segments and each data segment's associated references against the second storage pool.

9. The method as recited in claim 8 , wherein the fingerprints identifying the data segments are encrypted.

10. The method as recited in claim 7 , further comprising the second backup server:

conveying a first de-duplicated reverse list identifying one or more data segments from the second storage pool to the first backup server;

receiving from the first backup server a second de-duplicated reverse list identifying at least a subset of the one or more data segments of the first de-duplicated reverse list; and

conveying the at least a subset of the one or more data segments to the first backup server; and

the first backup server:

de-duplicating the first de-duplicated reverse list against the first storage pool, in response to receiving the first reverse list from the second backup server;

conveying the second de-duplicated reverse list to the second backup server; and

adding the at least a subset of the one or more data segments to the first storage pool in response to receiving the at least a subset of the one or more data segments.

11. A computer readable medium storing computer instructions that are executable by a processor to:

cause a first backup server to:

convey a first de-duplicated list identifying one or more data segments from a first storage pool to a second backup server associated with a second storage pool;

receive from the second backup server a second de-duplicated list identifying at least a subset of the one or more data segments; and

convey the at least a subset of the one or more data segments to the second backup server;

assemble a batch of data segments including only data segments that do not have a backup copy already stored in the first storage pool;

convey the assembled batch to the first backup server;

assign a batch number to the data segments and references in the assembled batch;

in response to receiving an assembled batch:

store a batch number in a backup history;

select only data segments and references for inclusion in the first list whose batch numbers are stored in the backup history; and

clear the backup history after conveying said subset to the second backup server.

12. The computer readable medium as recited in claim 11 , wherein the instructions are further executable to cause the second backup server to:

de-duplicate the first list against the second storage pool, in response to receiving the first list from the first backup server;

convey the second de-duplicated list to the first backup server; and

cause the first backup server to add the at least a subset of the one or more data segments to the first storage pool in response to receiving the at least a subset of the one or more data segments.

13. The computer readable medium as recited in claim 12 , wherein the instructions are further executable to:

for each data segment stored in the first or the second storage pool, store an associated fingerprint identifying the data segment and a reference to each of one or more clients from which a copy of the data segment was received for backup, wherein the list includes each data segment's associated references; and

wherein to de-duplicate the first list against a second storage pool further comprises de-duplicating the data segments and each data segment's associated references against the second storage pool.

14. The computer readable medium as recited in claim 13 , wherein the fingerprints identifying the data segments are encrypted.

Assignments (14)
AMENDMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2025
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 070779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 070335/0013 →
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 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 14, 2011
From: DATACENTERTECHNOLOGIES N.V.
To: SYMANTEC CORPORATION
Reel/Frame 026589/0412 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2007
From: CREMELIE, NICK; DE CONINCK, TOM; D'HOYE, KOEN; CUSTERS, JORIS
To: DATA CENTER TECHNOLOGIES
Reel/Frame 019114/0528 →
Continuity (1)
Related Publication 20080244204A1 · Oct 2, 2008