IP Library Granted Patent US 10,083,093
Granted Patent B1
US 10,083,093 · App. 13/077,256 · Granted Sep 25, 2018

Consistent replication in a geographically disperse active environment

Inventors: Assaf Natanzon (Ramat-Gan, IL); Steven R. Bromling (Alberta, CA); Saar Cohen (Mishmeret, IL); Jehuda Shemer (Kfar Saba, IL); Alex Solan (Hertzliya, IL)
Assignee: EMC IP Holding Company LLC
G06F11/1456G06F11/1458G06F11/2074
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,083,093
App. No.
13/077,256
Filed
Mar 31, 2011
Granted
Sep 25, 2018
Kind
B1
Art Unit
2132
USPC
711/162
Abstract

A method, system, and program product for enabling a virtual service layer to consume a storage medium of a first site and a storage medium of a second site, enabling the virtual service layer to map the storage mediums of the first and second sites as one or more virtual storage volumes, wherein the one or more storage volumes are mirrored between the first and second site, and enabling the virtual service layer to create a write order fidelity delta set of the virtual storage volumes by writing the delta set to backend storage and notifying a splitter to which delta set the IO belongs.

Claims (60)

1. A system for data replication, the system comprising:

a virtual service layer-comprising a splitter;

a first site, coupled to the virtual service layer, the first site comprising: a storage medium; and

a second site, geographically disparate from the first site, coupled to the virtual service layer comprising:

a storage medium; and executable program logic configured for execution of:

enabling the virtual service layer to consume the storage mediums of the first site and the storage medium of the second site and to map the storage mediums of the first and second sites as one or more virtual storage volumes; wherein the virtual service layer presents the one or more storage volumes at both the first site and the second site, wherein at least one of the one or more storage volumes being presented at the first site is the same storage volume as at least one of the one or more storage volumes being presented at the second site; wherein the virtual service layer enables contemporaneous read/write access to each of the one or more virtual storage volumes at both the first and second site; wherein the splitter is enabled to split IO written to the one or more virtual storage volumes at the first site and the second site; wherein data corresponding to the one or more virtual storage volumes mapped by the virtual service layer to the storage mediums on the first and second site is synchronized at the first and second site; and

enabling the virtual service layer to create a write order fidelity delta set of the one or more virtual storage volumes by writing a delta set to backend storage; wherein the delta set represents a crash consistent image; wherein the delta set has IOs; and notifying the splitter to which delta set the IO belongs.

2. The system of claim 1 wherein the computer-executable logic operating is further configured for execution of:

flushing, by the virtual service layer all IOs of a delta set; and

ensuring the IOs in a delta set are complete successfully before stating an IO of a new delta set.

3. The system of claim 1 wherein the computer-executable logic operating is further configured for execution of:

the splitter intercepting IOs from a delta, wherein the IOs include a delta set identifier.

4. The system of claim 1 wherein the computer-executable logic operating is further configured for execution of:

the splitter sending IOs with a delta set counter, wherein the delta set counter is encoded in a CDB, to a replication appliance on the first site.

5. The system of claim 4 wherein the computer-executable logic operating is further configured for execution of:

intercepting the IO with the delta set counter at a replication appliance; and

closing a snapshot when an IO with a delta set counter that is not equal to the last received delta set counter; wherein the snapshot includes the IO received before the non-equivalent delta set counter.

6. The system of claim 4 wherein the computer-executable logic operating is further configured for execution of:

restoring a broken mirror between the one or more virtual storage volumes, wherein a broken mirror indicates that the one or more virtual storage volumes are not consistent between the first site and the second site;

making the replication appliance unable to create a snapshot of the volumes while the mirror is being restored.

7. The system of claim 6 wherein the computer-executable logic operating is further configured for execution of:

fixing the mirror to restore consistency to the one or more virtual service volumes; and

flushing all IOs before the virtual service layer notifies the first site and the second site that consistency is restored.

8. A computer implemented method for data replication, the method comprising:

enabling a virtual service layer comprising a splitter to consume a storage medium of a first site and a storage medium of a second site;

enabling the virtual service layer to map the storage mediums of the first and second sites as one or more virtual storage volumes; wherein the virtual service layer presents the one or more storage volumes at both the first site and the second site, wherein at least one of the one or more storage volumes being presented at the first site is the same storage volume as at least one of the one or more storage volumes being presented at the second site; wherein the virtual service layer enables contemporaneous read/write access to each of the one or more virtual storage volumes at both the first and second site; wherein data corresponding to the one or more virtual storage volumes mapped to the storage mediums on the first and second site is synchronized at the first and second site; wherein the splitter is enabled to split IO written to the one or more virtual storage volumes at the first site and the second site; wherein data corresponding to the one or more virtual storage volumes mapped by the virtual service layer to the storage mediums on the first and second site is synchronized at the first and second site;

enabling the virtual service layer to create a write order fidelity delta set of the one or more virtual storage volumes by writing a delta set to backend storage; wherein the delta set represents a crash consistent image; wherein the delta set has IOs; and

notifying the splitter to which delta set the IO belongs.

9. The method of claim 8 further comprising:

flushing, by the virtual service layer all IOs of a delta set; and

ensuring the IOs in a delta set are complete successfully before stating an IO of a new delta set.

10. The method of claim 8 further comprising:

the splitter intercepting IOs from a delta, wherein the IOs include a delta set identifier.

11. The method of claim 8 further comprising:

the splitter sending IOs with a delta set counter, wherein the delta set counter is encoded in a CDB, to a replication appliance on the first site.

12. The method of claim 8 further comprising:

intercepting the IO with the delta set counter at a replication appliance; and

closing a snapshot when an IO with a delta set counter that is not equal to the last received delta set counter; wherein the snapshot includes the IO received before the non-equivalent delta set counter.

13. The method of claim 8 further comprising:

restoring a broken mirror between the one or more virtual storage volumes, wherein a broken mirror indicates that the one or more virtual storage volumes are not consistent between the first site and the second site;

making the replication appliance unable to create a snapshot of the volumes while the mirror is being restored.

14. A computer program product comprising:

a non-transitory computer readable medium encoded with computer executable program code for implementing consistent snapshots in a replication environment, the replication environment having a production site and a splitter, the production site having storage mediums, the code:

enabling a virtual service layer to consume a storage medium of a first site and a storage medium of a second site;

enabling the virtual service layer to map the storage mediums of the first and second sites as one or more virtual storage volumes; wherein the virtual service layer presents the one or more storage volumes at both the first site and the second site, wherein at least one of the one or more storage volumes being presented at the first site is the same storage volume as at least one of the one or more storage volumes being presented at the second site; wherein the virtual service layer enables contemporaneous read/write access to each of the one or more virtual storage volumes at both the first and second site; wherein data corresponding to the one or more virtual storage volumes mapped by the virtual service layer to the storage mediums on the first and second site is synchronized at the first and second site; wherein the splitter is enabled to split IO written to the one or more virtual storage volumes at the first site and the second site; and

enabling the virtual service layer to create a write order fidelity delta set of the one or more virtual storage volumes by writing a delta set to backend storage; wherein the delta set represents a crash consistent image; wherein the delta set has IOs; and notifying the splitter to which delta set the IO belongs.

15. The computer program product of claim 14 , wherein the code further enables:

flushing, by the virtual service layer all IOs of a delta set; and

ensuring the IOs in a delta set are complete successfully before stating an IO of a new delta set.

16. The computer program product of claim 14 , wherein the code further enables:

the splitter intercepting IOs from a delta, wherein the IOs include a delta set identifier.

17. The computer program product of claim 14 , wherein the code further enables:

the splitter sending IOs with a delta set counter, wherein the delta set counter is encoded in a CDB, to a replication appliance on the first site.

18. The computer program product of claim 14 , wherein the code further enables: intercepting the IO with the delta set counter at a replication appliance; and closing a snapshot when an IO with a delta set counter that is not equal to the last received delta set counter; wherein the snapshot includes the IO received before the non-equivalent delta set counter.

19. The computer program product of claim 14 , wherein the code further enables:

intercepting the IO with the delta set counter at a replication appliance; and

closing a snapshot when an IO with a delta set counter that is not equal to the last received delta set counter; wherein the snapshot includes the IO received before the non-equivalent delta set counter.

20. The computer program product of claim 14 , wherein the code further enables:

restoring a broken mirror between the one or more virtual storage volumes, wherein a broken mirror indicates that the one or more virtual storage volumes are not consistent between the first site and the second site;

making the replication appliance unable to create a snapshot of the volumes while the mirror is being restored.

Assignments (12)
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 (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2013
From: EMC INTERNATIONAL COMPANY
To: EMC CORPORATION
Reel/Frame 030847/0412 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 24, 2013
From: NATANZON, ASSAF; COHEN, SAAR; SHEMER, JEHUDA; SOLAN, ALEX
To: EMC INTERNATIONAL COMPANY
Reel/Frame 030479/0973 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 24, 2013
From: BROMLING, STEVEN R
To: EMC CORPORATION
Reel/Frame 030479/0928 →