IP Library Granted Patent US 10,592,527
Granted Patent B1
US 10,592,527 · App. 13/762,183 · Granted Mar 17, 2020

Techniques for duplicating deduplicated data

Inventors: Yingsong Jia (Beijing, CN); William Joseph Browning (Blaine, ME); Yong Tian (Beijing, CN)
Assignee: Veritas Technologies LLC
G06F16/27
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 10,592,527
App. No.
13/762,183
Filed
Feb 7, 2013
Granted
Mar 17, 2020
Kind
B1
Examiner
LE, MICHAEL
Art Unit
2163
USPC
707/610
Abstract

Techniques for duplicating deduplicated data include identifying a connection between a source deduplicated data storage and a target deduplicated data storage. A location of a block of data is determined that is located on the source deduplicated data storage for copying to the target deduplicated data storage. A first reference on the target deduplicated data storage is created to the location of the block of data on the source deduplicated data storage. A second reference is created on the source deduplicated data storage to the location of the block of data on the source deduplicated data storage.

Claims (50)

1. A method for duplicating deduplicated data comprising:

identifying a connection between a source deduplicated data storage and a target deduplicated data storage;

determining a location of a block of data located on the source deduplicated data storage for copying to the target deduplicated data storage;

creating references identifying data blocks of the source deduplicated data storage virtually written to the target deduplicated data store to ensure that the contents of each data block associated with a virtual write remains available on the source deduplicated data storage for at least as long as the target deduplicated data storage maintains a written reference to the location of the data block on the source deduplicated data storage, including:

creating a first reference on the target deduplicated data storage to the location of the block of data on the source deduplicated data storage; and

creating a second reference on the source deduplicated data storage to the location of the block of data on the source deduplicated data storage, wherein the second reference further indicates that the block of data on the source deduplicated data storage has not been fully copied to the target deduplicated data storage, and wherein an identifier for the block of data is included in a reference table in the source deduplicated data storage to protect the block of data from modification or deletion as long as the first reference on the target deduplicated data storage points to the location of the block of data on the source deduplicated data storage;

responding to a request for the block of data at the target deduplicated data storage by retrieving a copy of the block of data from the location referenced in the first reference on the target deduplicated data storage via the identified connection;

copying the block of data on the source deduplicated data storage to the target deduplicated data storage; and

updating the first reference on the target deduplicated data storage to refer to the location of a copy of the block of data on the target deduplicated data storage; and

removing the second reference on the source deduplicated data storage;

wherein the virtual write is performed to create references to make the target deduplicated data storage available before the actual data is copied with the source deduplicated data storage being prevented from deleting or modifying data blocks identified in the reference table until at least they are no longer needed in by the target deduplicated data storage.

2. The method of claim 1 , wherein the connection conforms to a Fibre Channel Protocol.

3. The method of claim 1 , wherein the source deduplicated data storage comprises a plurality of images, and wherein each image of the plurality of images comprises a plurality of blocks of data for copying.

4. The method of claim 1 wherein copying the block of data further comprises copying a plurality of blocks of data in a sequence of locations of the plurality of blocks of data.

5. The method of claim 1 , wherein determining a location of a block of data located on the source deduplicated data storage further comprises comparing a fingerprint of the block of data with a set of fingerprints of a plurality of blocks of data at the target deduplicated data storage.

6. The method of claim 1 , wherein the source deduplicated data storage includes a set of data containers in which each data container contains a set of data blocks and the method further comprises: transferring data container identifiers over the connection from the source deduplicated data storage to the target deduplicated data storage; and performing virtual writes for each source data block at the source deduplicated data storage not yet present on the target deduplicated data storage.

7. A system for duplicating deduplicated data comprising:

one or more processors communicatively coupled to a network; wherein the one or more processors are configured to:

identify a connection between a source deduplicated data storage and a target deduplicated data storage;

determine a location of a block of data located on the source deduplicated data storage for copying to the target deduplicated data storage;

create references identifying data blocks of the source deduplicated data storage virtually written to the target deduplicated data store to ensure that the contents of each data block associated with a virtual write remains available on the source deduplicated data storage for at least as long as the target deduplicated data storage maintains a written reference to the location of the data block on the source deduplicated data storage including:

create a first reference on the target deduplicated data storage to the location of the block of data on the source deduplicated data storage; and

create a second reference on the source deduplicated data storage to the location of the block of data on the source deduplicated data storage, wherein the second reference further indicates that the block of data on the source deduplicated data storage has not been fully copied to the target deduplicated data storage, and wherein an identifier for the block of data is included in a reference table in the source deduplicated data storage to protect the block of data from modification or deletion as long as the first reference on the target deduplicated data storage points to the location of the block of data on the source deduplicated data storage;

respond to a request for the block of data at the target deduplicated data storage by retrieving a copy of the block of data from the location referenced in the first reference on the target deduplicated data storage via the identified connection;

copy the block of data on the source deduplicated data storage to the target deduplicated data storage;

update the first reference on the target deduplicated data storage to refer to the location of a copy of the block of data on the target deduplicated data storage; and

remove the second reference on the source deduplicated data storage;

wherein the virtual write is performed to create references to to make the target deduplicated data storage available before the actual data is copied with the source deduplicated data storage being prevented from deleting or modifying data blocks identified in the reference table until at least they are no longer needed by the target deduplicated data storage.

8. The system of claim 7 , wherein the connection conforms to a Fibre Channel Protocol.

9. The system of claim 7 , wherein the source deduplicated data storage comprises a plurality of images, and wherein each image of the plurality of images comprises a plurality of blocks of data for copying.

10. The system of claim 7 , wherein copy the block of data further comprises copy a plurality of blocks of data in a sequence of locations of the plurality of blocks of data.

11. The system of claim 7 , wherein the source deduplicated data storage includes a set of data containers in which each data container contains a set of data blocks and wherein the one or more processors are further configured to: transfer data container identifiers over the connection from the source deduplicated data storage to the target deduplicated data storage; and perform virtual writes for each source data block at the source deduplicated data storage not yet present on the target deduplicated data storage, wherein during a virtual write, the target deduplicated data storage makes a reference to the location of the data block on the source deduplicated data storage.

12. An article of manufacture for duplicating deduplicated data, the article of manufacture comprising:

at least one non-transitory processor readable storage medium; and

instructions stored on the at least one medium;

wherein the instructions are configured to be readable from the at least one medium by at least one processor and thereby cause the at least one processor to operate so as to:

identify a connection between a source deduplicated data storage and a target deduplicated data storage;

determine a location of a block of data located on the source deduplicated data storage for copying to the target deduplicated data storage;

create references identifying data blocks of the source deduplicated data storage virtually written to the target deduplicated data store to ensure that the contents of each data block associated with a virtual write remains available on the source deduplicated data storage for at least as long as the target deduplicated data storage maintains a written reference to the location of the data block on the source deduplicated data storage including:

create a first reference on the target deduplicated data storage to the location of the block of data on the source deduplicated data storage; and

create a second reference on the source deduplicated data storage to the location of the block of data on the source deduplicated data storage, wherein the second reference further indicates that the block of data on the source deduplicated data storage has not been fully copied to the target deduplicated data storage, and wherein an identifier for the block of data is included in a reference table in the source deduplicated data storage to protect the block of data from modification or deletion as long as the first reference on the target deduplicated data storage points to the location of the block of data on the source deduplicated data storage; and

respond to a request for the block of data at the target deduplicated data storage by retrieving a copy of the block of data from the location referenced in the first reference on the target deduplicated data storage via the identified connection;

copying the block of data on the source deduplicated data storage to the target deduplicated data storage;

updating the first reference on the target deduplicated data storage to refer to the location of a copy of the block of data on the target deduplicated data storage; and

removing the second reference on the source deduplicated data storage;

wherein the virtual write is performed to create references to to make the target deduplicated data storage available before the actual data is copied with the source deduplicated data storage being prevented from deleting or modifying data blocks identified in the reference table until at least they are no longer needed by the target deduplicated data storage.

13. The article of manufacture of claim 12 , wherein the connection conforms to a Fibre Channel Protocol.

14. The article of manufacture of claim 12 , wherein the source deduplicated data storage comprises a plurality of images, and wherein each image of the plurality of images comprises a plurality of blocks of data for copying.

15. The article of manufacture of claim 12 , wherein copy the block of data further comprises copy a plurality of blocks of data in a sequence of locations of the plurality of blocks of data.

16. The article of manufacture of claim 12 , wherein the source deduplicated data storage includes a set of data containers in which each data container contains a set of data blocks and wherein the one or more processors are further configured to: transfer data container identifiers over the connection from the source deduplicated data storage to the target deduplicated data storage; and perform virtual writes for each source data block at the source deduplicated data storage not yet present on the target deduplicated data storage, wherein during a virtual write, the target deduplicated data storage makes a reference to the location of the data block on the source deduplicated data storage.

Assignments (14)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2026
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 075794/0333 →
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 Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038483/0203 →
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 037693/0158 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 8, 2013
From: JIA, YINGSONG; BROWNING, WILLIAM J.; TIAN, YONG
To: SYMANTEC CORPORATION
Reel/Frame 029781/0565 →
Cited By (2)
US 12,271,307 US 12,483,610