IP Library Granted Patent US 10,025,510
Granted Patent B1
US 10,025,510 · App. 15/199,972 · Granted Jul 17, 2018

Technique for copying unallocated logical regions of thin logical units

Inventors: Milind Koli (Morrisville, NC); Timothy C. Ng (Cary, NC); James Mark Holt (Raleigh, NC); David Haase (Fuquay Varina, NC); Vedashree Anantha Raman (Germantown, MD)
Assignee: EMC IP Holding Company LLC
G06F3/0619G06F3/065G06F3/067G06F3/0659
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,025,510
App. No.
15/199,972
Granted
Jul 17, 2018
Kind
B1
Abstract

A technique for use in managing data storage in a data storage system is disclosed. A first and second data storage commands (DSC) are received from a storage driver stack. Determining if the first DSC and the second DSC are both related aspects of a combined storage command and if so, establishing a pairing structure to pair the first DSC and the second DSC together. Fulfilling the combined storage command by fulfilling both the first DSC and the second DSC with reference to the pairing structure.

Claims (65)

1. A method performed by a mapping driver of a computing device operating as a data storage system, the method comprising:

receiving, using a processor, from a storage driver stack, a first data storage command (DSC);

receiving, using a processor, from the storage driver stack, a second DSC;

determining, using a processor, that the first DSC and the second DSC are both related aspects of a combined storage command;

in response to determining, establishing, using a processor, a pairing structure to pair the first DSC and the second DSC together; and

fulfilling, using a processor, the combined storage command by fulfilling both the first DSC and the second DSC with reference to the pairing structure, wherein:

the combined storage command is a copy command issued by a remote host instructing the data storage system to copy data from a source location to a destination location;

the first DSC is a source command directing the data storage system to copy from the source location, the source command specifying a source device, a source offset, and a length; and

the second DSC is a destination command directing the data storage system to copy to the destination location, the destination command specifying a destination device and a destination offset.

2. The method of claim 1 wherein the first DSC is received prior to the second DSC and the method further comprises:

successfully completing the combined storage command;

in response to successfully completing, reporting success as response to the first DSC; and

in response to successfully completing, refraining from responding to the second DSC.

3. The method of claim 1 wherein the method further comprises:

receiving a cancellation command directing the data storage system to cancel the combined storage command prior to successfully completing the combined storage command;

in response to receiving the cancellation command, reporting an error as response to the first DSC; and

in response to receiving the cancellation command, reporting an error as response to the second DSC.

4. The method of claim 1 wherein establishing the pairing structure includes:

creating a source descriptor structure that specifies the source device, the source offset, and the length;

creating a destination descriptor structure that specifies the destination device and the destination offset;

inserting a reference to the destination descriptor structure within the source descriptor structure; and

inserting a reference to the source descriptor structure within the destination descriptor structure.

5. The method of claim 4 wherein fulfilling the combined storage command includes sending the source descriptor structure and the destination descriptor structure to an address translation module configured to:

translate the source location from a logical source address to a physical source address; and

translate the destination location from a logical destination address to a physical destination address.

6. The method of claim 1 wherein fulfilling the combined storage command by fulfilling both the first DSC and the second DSC with reference to the pairing structure includes:

translating the source location from a logical source address to a physical source address;

translating the destination location from a logical destination address to a physical destination address; and

sending a copy DSC to a physical storage driver directing the physical storage driver to copy data from the physical source address to the physical destination address, the physical storage driver being able to fulfill the copy DSC without communicating with any driver in the storage driver stack above the mapping driver.

7. The method of claim 1 wherein receiving the second DSC from the storage driver stack includes:

in response to receiving the first DSC, sending a request up the storage driver stack requesting another DSC having a same combined storage command identifier as the first DSC; and

in response to sending the request up the storage driver stack, receiving the second DSC from the storage driver stack, the second DSC having the same combined storage command identifier as the first DSC.

8. A method performed by a mapping driver of a computing device operating as a data storage system, the method comprising:

receiving, using a processor, from a storage driver stack, a first data storage command (DSC);

receiving, using a processor, from the storage driver stack, a second DSC;

determining, using a processor, that the first DSC and the second DSC are both related aspects of a combined storage command;

in response to determining, establishing, using a processor, a pairing structure to pair the first DSC and the second DSC together; and

fulfilling, using a processor, the combined storage command by fulfilling both the first DSC and the second DSC with reference to the pairing structure, wherein:

the combined storage command is a mirrored unmap command issued by a remote host instructing the data storage system to unmap data from both a first destination location and a second destination location in a mirrored fashion;

the first DSC is a first unmap command directing the data storage system to unmap the data from the first destination location, the first unmap command specifying a first logical deallocation descriptor structure; and

the second DSC is a second unmap command directing the data storage system to unmap the data from the second destination location, the second write command specifying a second logical deallocation descriptor structure.

9. The method of claim 8 wherein fulfilling the combined storage command by fulfilling both the first DSC and the second DSC with reference to the pairing structure includes:

translating the first destination location from a first logical destination address to a first physical destination address;

translating the second destination location from a second logical destination address to a second physical destination address; and

sending a copy DSC to a physical storage driver directing the physical storage driver to copy data from first physical destination address to the second physical destination address, the physical storage driver being able to fulfill the copy DSC without communicating with any driver in the storage driver stack above the mapping driver.

10. A computer program product comprising a non-transitory computer-readable storage medium storing instructions, which, when executed by a computing device cause the computing device to operate a mapping driver of a data storage system by:

receiving, using a processor, from a storage driver stack, a first data storage command (DSC);

receiving, using a processor, from the storage driver stack, a second DSC;

determining, using a processor, that the first DSC and the second DSC are both related aspects of a combined storage command;

in response to determining, establishing, using a processor, a pairing structure to pair the first DSC and the second DSC together; and

fulfilling, using a processor, the combined storage command by fulfilling both the first DSC and the second DSC with reference to the pairing structure, wherein:

the combined storage command is a copy command issued by a remote host instructing the data storage system to copy data from a source location to a destination location;

the first DSC is a source command directing the data storage system to copy from the source location, the source command specifying a source device, a source offset, and a length; and

the second DSC is a destination command directing the data storage system to copy to the destination location, the destination command specifying a destination device and a destination offset.

11. An apparatus comprising:

persistent data storage; and

control circuitry coupled to memory configured to execute a mapping driver of a data storage system by:

receiving, using a processor, from a storage driver stack, a first data storage command (DSC);

receiving, using a processor, from the storage driver stack, a second DSC;

determining, using a processor, that the first DSC and the second DSC are both related aspects of a combined storage command directed at the persistent data storage;

in response to determining, establishing, using a processor, a pairing structure to pair the first DSC and the second DSC together; and

fulfilling, using a processor, the combined storage command by fulfilling both the first DSC and the second DSC with reference to the pairing structure, wherein:

the combined storage command is a copy command issued by a remote host instructing the data storage system to copy data from a source location to a destination location;

the first DSC is a source command directing the data storage system to copy from the source location, the source command specifying a source device, a source offset, and a length; and

the second DSC is a destination command directing the data storage system to copy to the destination location, the destination command specifying a destination device and a destination offset.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (047648/0422) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060160/0862 →
RELEASE OF SECURITY INTEREST AT REEL 047648 FRAME 0346 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0510 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 047648/0422 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047648/0346 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2017
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 041872/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 28, 2016
From: KOLI, MILIND; NG, TIMOTHY C.; HOLT, JAMES MARK; HAASE, DAVID; RAMAN, VEDASHREE ANANTHA
To: EMC CORPORATION
Reel/Frame 040427/0550 →