IP Library Granted Patent US 10,191,677
Granted Patent B1
US 10,191,677 · App. 15/481,125 · Granted Jan 29, 2019

Asynchronous splitting

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,191,677
App. No.
15/481,125
Granted
Jan 29, 2019
Kind
B1
Abstract

A computer implemented method, system, and program product for asynchronous splitting in a virtual replication environment, the method comprising intercepting IO directed to one or more volumes, adding, at a splitter, ordering info to the IOs, and sending the IOs to an appliance.

Claims (57)

1. A computer implemented method for asynchronous splitting in a virtual replication environment, the method comprising:

intercepting IO, by one or more splitters, from virtual machines directed to one or more virtual volumes; wherein the virtual machines are running in one or more hypervisors; wherein each of the one or more hypervisors has a virtualization layer and each respective splitter of the one or more splitters runs in a respective virtualization layer; wherein at least one splitter of the one or more splitters is configured intercept IOs written by at least one virtual machine of the virtual machines to the virtual volume in the respective hypervisor of the one or more hypervisors; wherein each respective virtualization layer consumes one or more volumes and exposes one or more virtual volumes corresponding to portions of the consumed one or more volumes to the virtual machines; wherein exposing the one or more virtual volumes allows the virtual machines to access to one or more exposed virtual machine volumes;

adding ordering information to a copy of the IO intercepted by the one or more splitters;

sending the copy of the IO to a replication appliance running on a hypervisor on a replication site; and

determining whether there are IOs coming to a consistency group (CG) from multiple hypervisors;

ordering the IO received at the replication appliance using the ordering information.

2. The method of claim 1 further comprising:

acknowledging the IO before the IO is sent to the replication appliance; wherein acknowledging the IO causes the IO to be written to the virtual volume.

3. The method of claim 2 where the one or more virtual volumes are uniquely assigned to one or more consistency groups.

4. The method of claim 3 wherein the one or more virtual volumes accessed by the virtual machines are running on the one or more hypervisors.

5. The method of claim 1 wherein the ordering information is placed in a SCSI CDB.

6. The method of claim 5 wherein the IO to be sent to the replication appliance are kept in a buffer in a respective splitter of the one or more splitters, the method further comprising:

checking the size of the buffer of the respective splitter; and

delaying further IO based on a determination the buffer is larger than a predetermined size.

7. The method of claim 6 further comprising:

based on a positive determination of IOs coming from multiple hypervisors, determining whether there are conflict due to IOs arriving to the same location from multiple virtual machines;

based on a positive determination of conflicts, re-reading the IO with conflicts during the period the hypervisors are quiesced.

8. A computer program product for asynchronous splitting in a virtual replication environment comprising:

a non-transitory computer readable medium encoded with computer executable program code executable across one or more processors to perform:

intercepting IO, by one or more splitters, from virtual machines directed to one or more virtual volumes; wherein the virtual machines are running in one or more hypervisors; wherein each of the one or more hypervisors has a virtualization layer and each respective splitter of the one or more splitters runs in a respective virtualization layer; wherein at least one splitter of the one or more splitters is configured intercept IOs written by at least one virtual machine of the virtual machines to the virtual volume in the respective hypervisor of the one or more hypervisors; wherein each respective virtualization layer consumes one or more volumes and exposes one or more virtual volumes corresponding to portions of the consumed one or more volumes to the virtual machines; wherein exposing the one or more virtual volumes allows the virtual machines to access to one or more exposed virtual machine volumes;

adding ordering information to a copy of the IO intercepted by the one or more splitters;

sending the copy of the IO to a replication appliance running on a hypervisor on a replication site; and

determining whether there are IOs coming to a consistency group (CG) from multiple hypervisors;

ordering the IO received at the replication appliance using the ordering information.

9. The computer program product of claim 8 the code further enabling:

acknowledging the IO before the IO is sent to the replication appliance; wherein acknowledging the IO causes the IO to be written to the virtual volume.

10. The method of computer program product 9 where the one or more virtual volumes are uniquely assigned to one or more consistency groups.

11. The computer program product of claim 10 wherein the one or more virtual volumes accessed by the virtual machines are running on the one or more hypervisors.

12. The computer program product of claim 11 wherein the IO to be sent to the replication appliance are kept in a buffer in a respective splitter of the one or more splitters the code further configured to perform:

checking the size of the buffer the respective splitter; and

delaying further IO based on a determination the buffer is larger than a predetermined size.

13. The computer program product of claim 8 wherein the ordering information is placed in a SCSI CDB.

14. The computer program product of claim 8 the code further configured to perform:

determining whether there are IOs coming to a consistency group (CG) from multiple hypervisors;

based on a positive determination, periodically quiescing the IOs from the hypervisors from the volumes in the CG, creating a bookmark, and unquiescing the IOs.

15. The computer program product of claim 14 the code configured to perform:

based on a positive determination of IOs coming from multiple hypervisors, determining whether there are conflict due to IOs arriving to the same location from multiple virtual machines;

based on a positive determination of conflicts, re-reading the IO with conflicts while the hypervisors are quiesced.

16. A system for data asynchronous splitting in a virtual replication environment, the system comprising:

one or more volumes;

one or more processors;

one or more memories

a splitter;

an appliance; and

computer-executable logic loaded in the one or more memories, wherein the computer-executable program code is executable across one or more processors to perform:

intercepting IO, by one or more splitters, from virtual machines directed to one or more virtual volumes; wherein the virtual machines are running in one or more hypervisors; wherein each of the one or more hypervisors has a virtualization layer and each respective splitter of the one or more splitters runs in a respective virtualization layer; wherein at least one splitter of the one or more splitters is configured intercept IOs written by at least one virtual machine of the virtual machines to the virtual volume in the respective hypervisor of the one or more hypervisors; wherein each respective virtualization layer consumes one or more volumes and exposes one or more virtual volumes corresponding to portions of the consumed one or more volumes to the virtual machines; wherein exposing the one or more virtual volumes allows the virtual machines to access to one or more exposed virtual machine volumes;

adding ordering information to a copy of the IO intercepted by the one or more splitters;

sending the copy of the IO to a replication appliance running on a hypervisor on a replication site; and

determining whether there are IOs coming to a consistency group (CG) from multiple hypervisors;

ordering the IO received at the replication appliance using the ordering information.

17. The system of claim 16 the computer-executable program logic executable to:

acknowledging the IO before the IO is sent to the replication appliance; wherein acknowledging the IO enables causes the IO to be written to the virtual volume.

18. The system of claim 17 where the one or more virtual volumes are uniquely assigned to the one or more consistency groups.

19. The system of claim 16 wherein the one or more virtual volumes accessed by the virtual machines running on the one or more hypervisors.

20. The system of claim 16 the computer-executable program logic further executable to:

based on a positive determination of IOs coming from multiple hypervisors, determining whether there are conflict due to IOs arriving to the same location from multiple virtual machines;

based on a positive determination of conflicts, re-reading the IO with conflicts during the period the hypervisors are quiesced.

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 (042769/0001) Recorded Apr 26, 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 (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 059803/0802 →
RELEASE OF SECURITY INTEREST AT REEL 042768 FRAME 0585 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058297/0536 →
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 Jun 16, 2017
From: NATANZON, ASSAF; COHEN, SAAR
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 042730/0439 →
PATENT SECURITY INTEREST (CREDIT) Recorded Jun 12, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 042768/0585 →
PATENT SECURITY INTEREST (NOTES) Recorded Jun 12, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 042769/0001 →