IP Library Granted Patent US 10,509,707
Granted Patent B1
US 10,509,707 · App. 15/379,862 · Granted Dec 17, 2019

Selective data mirroring

Inventors: Douglas E. LeCrone (Hopkinton, MA); Paul A. Linstead (Shrewsbury, MA)
Assignee: EMC IP Holding Company LLC
G06F11/2082G06F16/258G06F16/275
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,509,707
App. No.
15/379,862
Granted
Dec 17, 2019
Kind
B1
Abstract

Described are techniques for mirroring data that may include issuing, by an application on a host, a write operation that writes first data to a primary storage entity having data stored in accordance with a first format and first structure; intercepting, on the host, the write operation; and performing, on the host, first processing to process the write operation. The first processing may include: sending the write operation to a data storage system including the primary storage entity; determining whether the primary storage entity is mirrored as a second storage entity having data stored in a second format and second structure different from the first format and first structure; and responsive to determining the primary storage entity is mirrored as the second storage entity, issuing one or more second write operations to mirror the first data on the second storage entity in accordance with the second format and second structure.

Claims (50)

1. A method of mirroring data comprising:

issuing, by an application on a host, a write operation that writes first data to a primary storage entity, said primary storage entity having data stored in accordance with a first format and first structure;

intercepting, on the host, the write operation; and

responsive to intercepting the write operation on the host, performing first processing on the host to process the write operation received from the application on the host, the first processing comprising:

sending the write operation from the host to a data storage system including the primary storage entity;

determining, using mapping information, whether the primary storage entity is mirrored as a second storage entity having data stored in a second format and second structure different from the first format and first structure, wherein the mapping information identifies whether mirroring is enabled or disabled for different ranges of logical device offsets of logical devices in the data storage system which are mirrored on other logical devices;

responsive to determining, using the mapping information, that the primary storage entity is mirrored as the second storage entity, issuing one or more second write operations to mirror the first data on the second storage entity in accordance with the second format and second structure; and

responsive to determining, using the mapping information, that the primary storage entity is not mirrored as the second storage entity, not issuing any write operation to mirror the first data on the second storage entity.

2. The method of claim 1 , where the first processing includes processing the first data to store the first data on the second storage entity in accordance with the second format and second structure without modifying the first data.

3. The method of claim 2 , wherein the first processing includes:

partitioning the first data into multiple portions; and

determining first metadata describing a representation of the first data as the multiple portions, wherein the one or more second write operations write the first metadata and the multiple portions to the second storage entity.

4. The method of claim 1 , wherein the first processing includes:

transforming the first data to second data in accordance with the second format and second structure, wherein the second data includes a modified form of the first data, wherein the one or more second write operations write the second data to the second storage entity and also writes any second metadata, to the second storage entity, wherein the second metadata describes the second data in accordance with the second format and second structure.

5. The method of claim 4 , wherein said transforming includes performing any one or more of: removing at least some of the first data, replacing a first portion of the first data with different data, adding additional data to the first data.

6. The method of claim 1 , wherein the primary storage entity and second storage entity are in a same data storage system.

7. The method of claim 1 , where the first processing is performed by an I/O driver on the host.

8. The method of claim 1 , further comprising:

performing processing that initially synchronizes the primary storage entity and the second storage entity prior to processing the write operation.

9. The method of claim 1 , wherein the primary storage entity is a first file on a first logical device, and the second storage entity is a second file on a second logical device, wherein data is stored on the first logical device in accordance with the first format and the first structure and data is stored on the second logical device in accordance with the second format and the second structure.

10. The method of claim 1 , wherein the primary storage entity is a first logical device and the second storage entity is a second logical device, wherein data is stored on the first logical device in accordance with the first format and the first structure and data is stored on the second logical device in accordance with the second format and the second structure.

11. The method of claim 1 , wherein the primary storage entity is a portion of a first device and the second storage entity is a portion of a second device.

12. The method of claim 1 , wherein the first processing writes the first data to the primary storage entity and mirrors the first data on the second storage entity in a synchronous manner whereby an acknowledgement regarding completion of the write operation is returned to the application when the host receives acknowledgement that the first data has been written to the first storage entity and also received acknowledgement that the first data has been mirrored to the second storage entity.

13. The method of claim 1 , wherein the first processing writes the first data to the primary storage entity and mirrors the first data on the second storage entity in an asynchronous manner whereby an acknowledgement regarding completion of the write operation is returned to the application when the host receives acknowledgement that the first data has been written to the first storage entity without further requiring acknowledgement that the first data has been mirrored to the second storage entity.

14. A system comprising:

at least one processor; and

a memory comprising code stored thereon that, when executed, performs a method of mirroring data comprising:

issuing, by an application on a host, a write operation that writes first data to a primary storage entity, said primary storage entity having data stored in accordance with a first format and first structure;

intercepting, on the host, the write operation; and

responsive to intercepting the write operation on the host, performing first processing on the host to process the write operation received from the application on the host, the first processing comprising:

sending the write operation from the host to a data storage system including the primary storage entity;

determining, using mapping information, whether the primary storage entity is mirrored as a second storage entity having data stored in a second format and second structure different from the first format and first structure, wherein the mapping information identifies whether mirroring is enabled or disabled for different ranges of logical device offsets of logical devices in the data storage system which are mirrored on other logical devices;

responsive to determining, using the mapping information, that the primary storage entity is mirrored as the second storage entity, issuing one or more second write operations to mirror the first data on the second storage entity in accordance with the second format and second structure; and

responsive to determining, using the mapping information, that the primary storage entity is not mirrored as the second storage entity, not issuing any write operation to mirror the first data on the second storage entity.

15. A non-transitory computer readable medium comprising code stored thereon that, when executed, performs a method of mirroring data comprising:

issuing, by an application on a host, a write operation that writes first data to a primary storage entity, said primary storage entity having data stored in accordance with a first format and first structure;

intercepting, on the host, the write operation; and

responsive to intercepting the write operation on the host, performing first processing on the host to process the write operation received from the application on the host, the first processing comprising:

sending the write operation from the host to a data storage system including the primary storage entity;

determining, using mapping information, whether the primary storage entity is mirrored as a second storage entity having data stored in a second format and second structure different from the first format and first structure, wherein the mapping information identifies whether mirroring is enabled or disabled for different ranges of logical device offsets of logical devices in the data storage system which are mirrored on other logical devices;

responsive to determining, using the mapping information, that the primary storage entity is mirrored as the second storage entity, issuing one or more second write operations to mirror the first data on the second storage entity in accordance with the second format and second structure; and

responsive to determining, using the mapping information, that the primary storage entity is not mirrored as the second storage entity, not issuing any write operation to mirror the first data on the second storage entity.

16. The non-transitory computer readable medium of claim 15 , where the first processing includes processing the first data to store the first data on the second storage entity in accordance with the second format and second structure without modifying the first data.

17. The non-transitory computer readable medium of claim 16 , wherein the first processing includes:

partitioning the first data into multiple portions; and

determining first metadata describing a representation of the first data as the multiple portions, wherein the one or more second write operations write the first metadata and the multiple portions to the second storage entity.

18. The non-transitory computer readable medium of claim 15 , wherein the first processing includes:

transforming the first data to second data in accordance with the second format and second structure, wherein the second data includes a modified form of the first data, wherein the one or more second write operations write the second data to the second storage entity and also writes any second metadata, to the second storage entity, wherein the second metadata describes the second data in accordance with the second format and second structure.

19. The non-transitory computer readable medium of claim 18 , wherein said transforming includes performing any one or more of: removing at least some of the first data, replacing a first portion of the first data with different data, adding additional data to the first data.

20. The non-transitory computer readable medium of claim 15 , where the first processing is performed by an I/O driver on the host.

Assignments (8)
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 (052216/0758) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0680 →
RELEASE OF SECURITY INTEREST AF REEL 052243 FRAME 0773 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0152 →
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 26, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052243/0773 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Mar 24, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052216/0758 →
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 Dec 15, 2016
From: LECRONE, DOUGLAS E.; LINSTEAD, PAUL A.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040991/0839 →