IP Library Granted Patent US 10,146,454
Granted Patent B1
US 10,146,454 · App. 15/199,192 · Granted Dec 4, 2018

Techniques for performing data storage copy operations in an integrated manner

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,146,454
App. No.
15/199,192
Granted
Dec 4, 2018
Kind
B1
Abstract

A method is provided for performance by an I/O Coordination module of a computing device operating as a data storage system in order to obtain and process physical extent mappings in the context of an XCOPY Lite or XCOPY type operation. The method involves breaking down the source region into physical source extents with reference to a container filesystem representing the logical volume of the source as a file. The I/O Coordination module is then able to separately process each of these physical source extents and also obtain its corresponding physical destination extents with reference to the container filesystem, which also represents the logical volume of the destination as a file. The I/O Coordination module is then able to cause integrated copy commands to be issued to an underlying physical storage driver. An apparatus, system, and computer program product for performing a similar method are also provided.

Claims (81)

1. A method performed by an I/O Coordination module of a computing device operating as a data storage system, the method comprising:

receiving a logical source descriptor structure that specifies a logical source disk, a logical source offset, and a length for a copy operation, the logical source disk being provided by the computing device from physical storage of the computing device;

receiving a logical destination descriptor structure that specifies a logical destination disk and a logical destination offset for the copy operation;

requesting a physical mapping of the source descriptor structure from a container filesystem configured to present a file as a logical disk;

in response to requesting the physical mapping of the source descriptor structure, receiving a first set of storage extent descriptors, each storage extent descriptor of the first set describing a respective physical storage extent on the physical storage of the computing device, the first set representing a mapping of the source descriptor structure onto physical storage; and

for each storage extent descriptor of the first set:

requesting a physical mapping of a corresponding location of the logical destination descriptor structure from the container filesystem;

in response to requesting the physical mapping of the corresponding location, receiving a second set of storage extent descriptors, each storage extent descriptor of the second set describing a respective physical storage extent on the physical storage of the computing device, the second set representing a mapping of the corresponding location of the destination descriptor structure onto physical storage; and

sending, by the I/O Coordination module running on the computing device, a copy request to a physical storage driver also running on the computing device, the copy request directing the physical storage driver to copy data from the physical storage extent of that storage extent descriptor of the first set to the physical storage extents of the second set, the copy request causing the data to be copied directly from one physical storage extent of the physical storage of the computing device to another physical storage extent of the physical storage of the computing device without the data leaving the computing device.

2. The method of claim 1 wherein:

receiving the second set of storage extent descriptors includes receiving a buffer, the buffer including:

a set of write commands respectively directed at the second set of storage extent descriptors; and

metadata; and

sending the copy request includes:

modifying the set of write commands within the buffer to become copy commands respectively sourced from corresponding portions of the physical storage extent of that storage extent descriptor of the first set; and

sending the metadata and the copy commands to the physical storage driver.

3. The method of claim 2 wherein:

receiving the logical source descriptor includes receiving the logical source descriptor from a mapping driver operating on the computing device;

receiving the logical destination descriptor structure includes receiving the logical source descriptor from the mapping driver; and

sending the metadata and the copy commands to the physical storage driver includes sending the modified buffer to the mapping driver, the mapping driver being configured to:

extract the metadata and the copy commands from the modified buffer; and

send the metadata and the copy commands to the physical storage driver within an inter-driver packet.

4. The method of claim 1 wherein

receiving the logical source descriptor includes receiving the logical source descriptor from a mapping driver operating on the computing device;

receiving the logical destination descriptor structure includes receiving the logical source descriptor from the mapping driver; and

sending the copy request to the physical storage driver includes sending information to the mapping driver, the mapping driver being configured to:

generate the copy request; and

send the copy request to the physical storage driver within an inter-driver packet.

5. The method of claim 4 wherein the method further comprises:

in response to requesting the physical mapping of the source descriptor structure, further receiving a third set of storage extent descriptors, each storage extent descriptor of the third set describing a subset of a location defined by the logical source descriptor structure, each subset of the location including a logical offset and length of the logical source disk representing a region that currently lacks any physical storage backing; and

for each storage extent descriptor of the third set:

sending an indication that a portion of the logical destination descriptor structure corresponding to the region of that storage extent descriptor is unallocated to the mapping driver, the mapping driver being configured to send a logical deallocation descriptor structure back to the I/O Coordination module;

receiving the logical deallocation descriptor structure from the mapping driver;

sending a request to deallocate physical storage backing corresponding to the logical deallocation descriptor structure to the container filesystem; and

in response to sending the request to deallocate, receiving confirmation of deallocation.

6. 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 an I/O Coordination module of a data storage system by:

receiving a logical source descriptor structure that specifies a logical source disk, a logical source offset, and a length for a copy operation, the logical source disk being provided by the computing device from physical storage of the data storage system;

receiving a logical destination descriptor structure that specifies a logical destination disk and a logical destination offset for the copy operation;

requesting a physical mapping of the source descriptor structure from a container filesystem configured to present a file as a logical disk;

in response to requesting the physical mapping of the source descriptor structure, receiving a first set of storage extent descriptors, each storage extent descriptor of the first set describing a respective physical storage extent on the physical storage of the data storage system, the first set representing a mapping of the source descriptor structure onto physical storage; and

for each storage extent descriptor of the first set:

requesting a physical mapping of a corresponding location of the logical destination descriptor structure from the container filesystem;

in response to requesting the physical mapping of the corresponding location, receiving a second set of storage extent descriptors, each storage extent descriptor of the second set describing a respective physical storage extent on the physical storage of the data storage system, the second set representing a mapping of the corresponding location of the destination descriptor structure onto physical storage; and

sending, by the I/O Coordination module running on the computing device, a copy request to a physical storage driver also running on the computing device, the copy request directing the physical storage driver to copy data from the physical storage extent of that storage extent descriptor of the first set to the physical storage extents of the second set, the copy request causing the data to be copied directly from one physical storage extent of the physical storage of the data storage system to another physical storage extent of the physical storage of the data storage system without the data leaving the data storage system.

7. The computer program product of claim 6 wherein:

receiving the second set of storage extent descriptors includes receiving a buffer, the buffer including:

a set of write commands respectively directed at the second set of storage extent descriptors; and

metadata; and

sending the copy request includes:

modifying the set of write commands within the buffer to become copy commands respectively sourced from corresponding portions of the physical storage extent of that storage extent descriptor of the first set; and

sending the metadata and the copy commands to the physical storage driver.

8. The computer program product of claim 7 wherein:

receiving the logical source descriptor includes receiving the logical source descriptor from a mapping driver operating on the computing device;

receiving the logical destination descriptor structure includes receiving the logical source descriptor from the mapping driver; and

sending the metadata and the copy commands to the physical storage driver includes sending the modified buffer to the mapping driver, the mapping driver being configured to:

extract the metadata and the copy commands from the modified buffer; and

send the metadata and the copy commands to the physical storage driver within an inter-driver packet.

9. The computer program product of claim 6 wherein

receiving the logical source descriptor includes receiving the logical source descriptor from a mapping driver operating on the computing device;

receiving the logical destination descriptor structure includes receiving the logical source descriptor from the mapping driver; and

sending the copy request to the physical storage driver includes sending information to the mapping driver, the mapping driver being configured to:

generate the copy request; and

send the copy request to the physical storage driver within an inter-driver packet.

10. The computer program product of claim 9 wherein the instructions, when executed by the computing device, further cause the computing device to:

in response to requesting the physical mapping of the source descriptor structure, further receive a third set of storage extent descriptors, each storage extent descriptor of the third set describing a subset of a location defined by the logical source descriptor structure, each subset of the location including a logical offset and length of the logical source disk representing a region that currently lacks any physical storage backing; and

for each storage extent descriptor of the third set:

send an indication that a portion of the logical destination descriptor structure corresponding to the region of that storage extent descriptor is unallocated to the mapping driver, the mapping driver being configured to send a logical deallocation descriptor structure back to the I/O Coordination module;

receive the logical deallocation descriptor structure from the mapping driver;

send a request to deallocate physical storage backing corresponding to the logical deallocation descriptor structure to the container filesystem; and

in response to sending the request to deallocate, receive confirmation of deallocation.

11. An apparatus comprising:

persistent data storage; and

control circuitry coupled to memory configured to execute an I/O Coordination module of a data storage system by:

receiving a logical source descriptor structure that specifies a logical source disk, a logical source offset, and a length for a copy operation, the logical source disk being provided by the apparatus from the persistent data storage;

receiving a logical destination descriptor structure that specifies a logical destination disk and a logical destination offset for the copy operation;

requesting a physical mapping of the source descriptor structure from a container filesystem configured to present a file as a logical disk;

in response to requesting the physical mapping of the source descriptor structure, receiving a first set of storage extent descriptors, each storage extent descriptor of the first set describing a respective physical storage extent on the persistent data storage, the first set representing a mapping of the source descriptor structure onto the persistent data storage; and

for each storage extent descriptor of the first set:

requesting a physical mapping of a corresponding location of the logical destination descriptor structure from the container filesystem;

in response to requesting the physical mapping of the corresponding location, receiving a second set of storage extent descriptors, each storage extent descriptor of the second set describing a respective physical storage extent of the persistent data storage, the second set representing a mapping of the corresponding location of the destination descriptor structure onto the persistent data storage; and

sending, by the I/O Coordination module running on the control circuitry, a copy request to a physical storage driver also running on the control circuitry, the copy request directing the physical storage driver to copy data from the physical storage extent of that storage extent descriptor of the first set to the physical storage extents of the persistent data storage of the second set, the copy request causing the data to be copied directly from one physical storage extent of the persistent data storage to another physical storage extent of the persistent data storage without the data leaving the apparatus.

Assignments (4)
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 →
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 →
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 Feb 1, 2017
From: KOLI, MILIND M.; NG, TIMOTHY C.; HOLT, JAMES MARK; HAASE, DAVID; RAMAN, VEDASHREE
To: EMC CORPORATION
Reel/Frame 041147/0708 →
Cited By (1)
US 12,223,197