IP Library Granted Patent US 10,809,939
Granted Patent B2
US 10,809,939 · App. 16/034,510 · Granted Oct 20, 2020

Disk synchronization

Inventors: Vadim Agarkov (Saint Petersburg, RU); Sergey Storozhevjkh (Saint Petersburg, RU); Maksim Vazhenin (Saint Petersburg, RU); Ilya Volzhev (Saint Petersburg, RU); Michael E. Bappe (Loveland, CO)
Assignee: EMC IP Holding Company LLC
G06F3/065G06F3/061G06F3/067G06F3/0659G06F11/079G06F11/0727G06F11/0751G06F11/0793
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,809,939
App. No.
16/034,510
Granted
Oct 20, 2020
Kind
B2
Abstract

Embodiments of the present disclosure relate to a system, a computer program product and a method for synchronizing data between a source disk and a target disk in a cluster by performing synchronization between a source disk and a target disk, the synchronization being performed while a plurality of application I/Os on a plurality of nodes in a cluster are configured to access the source disk; and wherein a coordinator and a plurality of workers in the cluster are configured to manage copying data from the source disk to the target disk.

Claims (58)

1. A method for synchronizing data between a source disk and a target disk in a cluster, the method comprising:

performing synchronization while a plurality of application input/outputs (I/O)s on a plurality of nodes in the cluster are enabled to access the source disk, wherein a coordinator and a plurality of workers in the cluster are configured to manage copying data from the source disk to the target disk, and the coordinator is configured to send to the plurality of workers a suspend status notification comprising a selected range to be copied from the source disk to the target disk; and

upon receiving a copied status notification from any of the plurality of workers in the cluster indicating the selected range has been copied, the coordinator is configured to mark the specified range as synchronized, and send a resume status notification to the plurality of workers instructing the plurality of workers to resume application write I/Os for the selected range, wherein upon receiving notification from the workers acknowledging the resume status notification, the coordinator is configured to shift to a subsequent next range to be copied.

2. The method of claim 1 , wherein the worker, on receiving the suspend status notification from the coordinator, is configured to determine if an any outstanding fully overlapping application write I/Os exists on the selected range.

3. The method of claim 2 , wherein on positive determination of the outstanding fully overlapping application write I/Os, the worker is further configured to:

wait until the outstanding fully overlapping application write I/Os are completed;

clone the application write I/Os to the target disk; and

send the copied status notification.

4. The method of claim 2 , wherein on negative determination of the outstanding fully overlapping application write I/Os, the worker is configured to:

suspend conflicting outstanding application write I/O clones to the target disk; and

wait for the conflicting outstanding application write I/O clones on the target disk to drain.

5. The method of claim 4 , wherein during the wait for the conflicting outstanding application write I/O clones on the target disk to drain, if a new fully overlapping application write I/O is received for the selected range, the worker is further configured to:

resume the application write I/O clones for the selected range to the target disk;

issue the new fully overlapping application write I/O to the source disk;

clone the new fully overlapping application write I/O to the target disk; and

send the copied status notification to the coordinator.

6. The method of claim 4 , wherein during the wait for the conflicting outstanding application write I/Os to drain, if a new fully overlapping application write I/O is not received, the worker is further configured to:

send the suspended status notification to the coordinator.

7. The method of claim 6 , wherein the coordinator, on receiving the suspended status notification from all the workers in the cluster, is configured to:

copy the selected range;

mark the selected range as synchronized;

send the resume status notification to all the workers in the cluster; and

wait for all the workers to respond, and when all the workers respond with the success status notification in response to the resume status notification, shift to the subsequent next range to be copied.

8. The method of claim 1 , wherein the coordinator, in response to the suspend status notification, is configured to receive an error status notification from any of the plurality of workers in the cluster, and to interrupt synchronization between the source disk and the target disk with an error.

9. The method of claim 1 , wherein the coordinator, in response to the suspend status notification, is configured to receive a timeout status notification from any of the plurality of workers in the cluster, and to interrupt synchronization between the source disk and the target disk with an error.

10. The method of claim 1 , wherein the coordinator, in response to the resume status notification is configured to receive the error status notification, and to interrupt synchronization between the source disk and the target disk with an error.

11. The method of claim 1 , wherein the coordinator, in response to the resume status notification, is configured to receive the timeout status notification from any of the plurality of workers in the cluster, and to interrupt synchronization between the source disk and the target disk with an error.

12. The method of claim 6 , wherein any of the plurality of workers, on receiving the resume status notification from the coordinator, is configured to resume a suspended I/O and send the success status notification to all the workers if all the application write I/Os were suspended starting from the time of the suspended status notification until the application write I/Os are resumed.

13. The method of claim 6 , wherein any of the plurality of workers, on receiving the resume status notification from the coordinator, is configured to send the error status notification if all the application write I/Os were not suspended starting from the time of the suspended status notification until the resume status notification.

14. An apparatus, comprising:

electronic hardware circuitry comprising at least one of a processor, a memory, a programmable logic device or a logic gate is configured to:

perform synchronization between a source disk and a target disk, the synchronization performed while a plurality of application I/Os on a plurality of nodes in a cluster are enabled to access the source disk,

wherein a coordinator and a plurality of workers in the cluster are configured to manage copying data from the source disk to the target disk and the coordinator is configured to send to the plurality of workers a suspend status notification comprising a selected range to be copied from the source disk to the target disk; and

upon receiving a copied status notification from any of the plurality of workers in the cluster, the coordinator is configured to mark the specified range as synchronized, and send a resume status notification to the plurality of workers instructing the plurality of workers to resume application write I/Os for the selected range, wherein upon receiving notification from the workers acknowledging the resume status notification, the coordinator is configured to shift to a subsequent next range to be copied.

15. The apparatus of claim 14 , wherein the worker, on receiving the suspend status notification from the coordinator, is configured to determine if an any outstanding fully overlapping application write I/Os exists on the selected range;

wherein on positive determination of the outstanding fully overlapping application write I/Os, the worker is further configured to:

wait until the outstanding fully overlapping application write I/Os are completed;

clone the application write I/Os to the target disk; and

send the copied status notification.

16. The apparatus of claim 15 , wherein on negative determination of the outstanding fully overlapping application write I/Os, the worker is configured to:

suspend conflicting outstanding application write I/O clones to the target disk; and

wait for the conflicting outstanding application write I/O clones on the target disk to drain.

17. The apparatus of claim 16 , wherein during the wait for the conflicting outstanding application write I/O clones on the target disk to drain, if a new fully overlapping application write I/O is received for the selected range, the worker is further configured to:

resume the application write I/O clones for the selected range to the target disk;

issue the new fully overlapping application write I/O to the source disk;

clone the new fully overlapping application write I/O to the target disk; and

send the copied status notification to the coordinator.

18. A computer program product embodied on a non-transitory computer readable medium, the computer program product including instructions that, when executed by a computer, causes the computer to perform operations comprising:

performing synchronization between a source disk and a target disk, the synchronization performed while a plurality of application I/Os on a plurality of nodes in a cluster are enabled to access the source disk, wherein a coordinator and a plurality of workers in the cluster are configured to manage copying data from the source disk to the target disk and the coordinator is configured to send to the plurality of workers a suspend status notification comprising a selected range to be copied from the source disk to the target disk; and

upon receiving a copied status notification from any of the plurality of workers in the cluster, the coordinator is configured to mark the specified range as synchronized, and send a resume status notification to the plurality of workers instructing the plurality of workers to resume application write I/Os for the selected range, wherein upon receiving notification from the workers acknowledging the resume status notification, the coordinator is configured to shift to a subsequent next range to be copied.

19. The computer program product of claim 18 , wherein the worker, on receiving the suspend status notification from the coordinator, is configured to determine if an any outstanding fully overlapping application write I/Os exists on the selected range;

wherein on positive determination of the outstanding fully overlapping application write I/Os, the worker is further configured to:

wait until the outstanding fully overlapping application write I/Os are completed;

clone the application write I/Os to the target disk; and

send the copied status notification.

20. The computer program product of claim 19 , wherein on negative determination of the outstanding fully overlapping application write I/Os, the worker is configured to:

suspend conflicting outstanding application write I/O clones to the target disk; and

wait for the conflicting outstanding application write I/O clones on the target disk to drain.

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 (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 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 6, 2018
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 046723/0264 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 16, 2018
From: AGARKOV, VADIM; STOROZHEVYKH, SERGEY; VAZHENIN, MAKSIM; VOLZHEV, ILYA; BAPPE, MICHAEL E.
To: EMC CORPORATION
Reel/Frame 046358/0888 →