IP Library Granted Patent US 6,912,636
Granted Patent B1
US 6,912,636 · App. 10/902,980 · Granted Jun 28, 2005

System and method for providing safe data movement using third party copy techniques

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 6,912,636
App. No.
10/902,980
Granted
Jun 28, 2005
Kind
B1
Abstract

Systems, methods, apparatus and software can utilize an indirect write driver to prevent possible error conditions associated with using a third-party copy operation directed at a storage resource. A data transport mechanism such as a data restore application initiates a third-party copy operation from a data source to a data cache. The indirect write driver monitors write commands as they pass to a storage resource driver. If a command is found to be an indirect write command, e.g., a command designed to complete the movement of data from the data cache to the storage resource, it is handled accordingly. Normal write commands are passed on to the storage resource driver. By completing the data move operation using normal storage management channels, e.g., the operating system, file system, and/or volume manager, error conditions can be avoided.

Claims (72)

1. A method comprising:

receiving a write command targeting a destination storage resource;

determining whether the write command targeting the destination storage resource includes information about an intermediate storage resource;

passing the write command targeting the destination storage resource to a storage resource driver when the write command targeting the destination storage resource does not include information about an intermediate storage resource; and

causing a data move operation from the intermediate storage resource to the destination storage resource when the write command targeting the destination storage resource includes information about the intermediate storage resource.

2. The method of claim 1 wherein the causing a data move operation from the intermediate storage resource to the destination storage resource further comprises:

initiating a third-party copy operation, wherein the third-party copy operation moves data from the intermediate storage resource to the destination storage resource.

3. The method of claim 1 further comprising:

determining an extent list including at least one extent describing a portion of the intermediate storage resource;

sending the extent list to a data mover operable to perform a third-party copy operation; and

initiating the third-party copy operation, wherein the third-party copy operation moves data from a source storage resource to the portion of the intermediate storage resource.

4. The method of claim 3 further comprising:

initiating operation of a second driver, the second driver executing on a computer system and performing at least one of: the receiving a write command, the determining whether the write command targeting the destination storage resource includes information about an intermediate storage resource, the passing the write command, and the causing a data move operation.

5. The method of claim 1 wherein the determining further comprises:

examining a location indication for data to be written by the write command targeting the destination storage resource; and

determining whether the location indication for data to be written by the write command targeting the destination storage resource refers to the intermediate storage resource.

6. The method of claim 1 encoded in a computer readable medium as instructions executable on a processor, the computer readable medium being one of an electronic storage medium, a magnetic storage medium, an optical storage medium, and a communications medium conveying signals encoding the instructions.

7. The method of claim 1 wherein the intermediate storage resource is at least one of: a data cache, a portion of a disk array, and a part of a third-party copy device.

8. The method of claim 1 further comprising:

allocating a portion of the intermediate storage resource for use by a third-party copy device.

9. The method of claim 1 wherein the causing the data move operation from the intermediate storage resource to the destination storage resource when the write command targeting the destination storage resource includes information about the intermediate storage resource further comprises: using the information about the intermediate storage resource.

10. A system comprising:

a driver configured to:

receive a write command targeting a destination storage resource;

determine whether the write command targeting the destination storage resource includes information about an intermediate storage resource;

cause a data move operation from the intermediate storage resource to the destination storage resource when the write command targeting the destination storage resource includes information about the intermediate storage resource; and

a data transport module configured to:

initiate a third-party copy operation, wherein the third-party copy operation moves data from a source storage resource to the intermediate storage resource.

11. The system of claim 10 wherein the intermediate storage resource is at least one of: a data cache, a portion of a disk array, and a part of a third-party copy device.

12. The system of claim 10 further comprising:

a data mover in communication with the data transport module and configured to perform the third-party copy operation.

13. The system of claim 10 further comprising a storage resource driver, wherein the data move operation provides at least one command to the storage resource driver, the at least one command including a write command for writing data from the intermediate storage resource to the destination storage resource.

14. The system of claim 10 wherein the data transport module is a data restore application.

15. The system of claim 10 wherein the driver is further configured to:

determine an extent list including at least one extent describing a portion of the intermediate storage resource;

send the extent list to a data mover operable to perform a third-party copy operation.

16. The system of claim 10 wherein the driver is further configured to:

examine a location indication for data to be written by the write command targeting the destination storage resource; and

determine whether the location indication for data to be written by the write command targeting the destination storage resource refers to the intermediate storage resource.

17. The system of claim 10 wherein at least one of the driver and the data transport module is further configured to:

allocate a portion of the intermediate storage resource for use by a third-party copy device.

18. The system of claim 10 wherein the driver is further configured to:

use the information about the intermediate storage resource to cause the data move operation from the intermediate storage resource to the destination storage resource when the write command targeting the destination storage resource includes information about the intermediate storage resource.

19. The system of claim 10 further comprising:

a computer system including:

a first processor; and

a first memory coupled to the first processor;

wherein the data transport module and the driver are encoded as instructions stored in the first memory and executable on the first processor.

20. The system of claim 19 further comprising:

a network coupling the first computer system, the destination storage resource, the intermediate storage resource, and a data mover to each other.

21. The system of claim 10 further comprising:

a first computer system including:

a first processor; and

a first memory coupled to the first processor;

a second computer system including:

a second processor; and

a second memory coupled to the second processor; and

a network coupling the first computer system to the second computer system;

wherein the data transport module is encoded as instructions stored in the first memory and executable on the first processor, and the driver is encoded as instructions stored in the second memory and executable on the second processor.

22. An apparatus comprising:

a means for receiving a write command targeting a destination storage resource;

a means for determining whether the write command targeting the destination storage resource includes information about an intermediate storage resource;

a means for passing the write command targeting the destination storage resource to a storage resource driver when the write command targeting the destination storage resource does not include information about an intermediate storage resource; and

a means for causing a data move operation from the intermediate storage resource to the destination storage resource when the write command targeting the destination storage resource includes information about the intermediate storage resource.

23. The apparatus of claim 22 further comprising:

a means for determining an extent list including at least one extent describing a portion of the intermediate storage resource;

a means for sending the extent list to a data mover operable to perform a third-party copy operation; and

a means for initiating the third-party copy operation, wherein the third-party copy operation moves data from a source storage resource to the portion of the intermediate storage resource.

24. The apparatus of claim 22 further comprising:

a means for allocating a portion of the intermediate storage resource for use by a third-party copy device.

25. The apparatus of claim 22 further comprising:

a means for using the information about the intermediate storage resource.

Assignments (13)
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 →
CHANGE OF NAME Recorded Oct 1, 2007
From: VERITAS OPERATING CORPORATION
To: SYMANTEC OPERATING CORPORATION
Reel/Frame 019899/0213 →