IP Library › Granted Patent US 10,871,911
Granted Patent B2
US 10,871,911 · App. 15/660,682 · Granted Dec 22, 2020

Reducing data amplification when replicating objects across different sites

Inventors: Pascal Renauld (Palo Alto, CA); Enning Xiang (San Jose, CA); Eric Knauft (San Francisco, CA)
Assignee: VMware, Inc.
G06F3/065G06F3/0619G06F3/0664G06F3/0688G06F3/0689G06F9/45558G06F11/1076G06F11/1464G06F16/27G06F2009/45579G06F2009/45583G06F2009/45595G06F2201/84
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,871,911
App. No.
15/660,682
Granted
Dec 22, 2020
Kind
B2
Abstract

Component objects of a virtual disk are backed by first storage nodes, which are at a primary site, and replicated in second storage nodes, which are at a secondary site. Responsive to a write command issued to the virtual disk, a coordinating node at the primary site issues a first write operation to a first replication module running therein, and transmits a second write operation to a second replication module running in a coordinating node at the secondary site. The first replication module, responsive to the first write operation, instructs the first storage nodes backing first and second component objects of the virtual disk to write the data. The second replication module, responsive to the second write operation, instructs the second storage nodes backing third and fourth component objects, which are replicas of the first and second component objects, respectively, to write the data.

Claims (30)

1. A method of replicating component objects of a virtual disk, that are backed by first storage nodes, which are at a primary site, in second storage nodes, which are at a secondary site, said method comprising:

at a coordinating node at the primary site, responsive to receiving a write command issued to the virtual disk, (i) issuing a first write operation and a replica of the first write operation, (ii) transmitting a second write operation, identical to the first write operation, to a coordinating node at the secondary site responsible for replicating data received from the coordinating node at the primary site on the second storage nodes, and (iii) instructing, responsive to the first write operation and the replica of the first write operation, the first storage nodes that are backing first and second component objects of the virtual disk to write data on at least two corresponding local storage devices, wherein

the coordinating node at the secondary site, responsive to receiving the second write operation, (i) issues a replica of the second write operation and (ii) instructs the second storage nodes that are backing third and fourth component objects to write data on at least two corresponding local storage devices.

2. The method of claim 1 , wherein the data written on the at least two corresponding local storage devices of the first storage nodes are identical to the data written on the at least two corresponding local storage devices of the second storage nodes.

3. The method of claim 2 , wherein the data written on each of the at least two corresponding local storage devices of the first storage nodes are identical, and the data written on each of the at least two corresponding local storage devices of the second storage nodes are identical.

4. The method of claim 2 , wherein the data written on the at least two corresponding local storage devices of the first storage nodes include first data, which is written in at least one local storage device of one of the first storage nodes, and second data, which is written in at least one local storage device of another one of the first storage nodes, and the data written on the at least two corresponding local storage devices of the second storage nodes include the first data and the second data, the first data being written in at least one local storage device of one of the second storage nodes and the second data being written in at least one local storage device of another one of the second storage nodes.

5. The method of claim 4 , wherein the first data is user data and the second data is parity data.

6. The method of claim 1 , wherein the instructing by the coordinating nodes at the primary and the secondary sites are performed by their respective RAID 1 engines.

7. The method of claim 1 , wherein the instructing by the coordinating nodes at the primary and the secondary sites are performed by their respective RAID 5 engines.

8. The method of claim 1 , wherein the coordinating node at the primary site further includes a replication module that issues the first and second write operations.

9. A non-transitory computer readable medium comprising instructions to be executed in a coordinating node at a primary site to carry out a method of replicating component objects of a virtual disk, that are backed by first storage nodes, which are at the primary site, in second storage nodes, which are at a secondary site, said method comprising:

responsive to receiving a write command issued to the virtual disk, (i) issuing a first write operation and a replica of the first write operation, (ii) transmitting a second write operation, identical to the first write operation, to a coordinating node at the secondary site responsible for replicating data received from the coordinating node at the primary site on the second storage nodes, and (iii) instructing, responsive to the first write operation and the replica of the first write operation, the first storage nodes that are backing first and second component objects of the virtual disk to write data on at least two corresponding local storage devices, wherein

the coordinating node at the secondary site, responsive to receiving the second write operation, (i) issues a replica of the second write operation and (ii) instructs the second storage nodes that are backing third and fourth component objects to write data on at least two corresponding local storage devices.

10. The non-transitory computer readable medium of claim 9 , wherein the data written on the at least two corresponding local storage devices of the first storage nodes are identical to the data written on the at least two corresponding local storage devices of the second storage nodes.

11. The non-transitory computer readable medium of claim 10 , wherein the data written on each of the at least two corresponding local storage devices of the first storage nodes are identical, and the data written on each of the at least two corresponding local storage devices of the second storage nodes are identical.

12. The non-transitory computer readable medium of claim 10 , wherein the data written on the at least two corresponding local storage devices of the first storage nodes include first data, which is written in at least one local storage device of one of the first storage nodes, and second data, which is written in at least one local storage device of another one of the first storage nodes, and the data written on the at least two corresponding local storage devices of the second storage nodes include the first data and the second data, the first data being written in at least one local storage device of one of the second storage nodes and the second data being written in at least one local storage device of another one of the second storage nodes.

13. The non-transitory computer readable medium of claim 12 , wherein the first data is user data and the second data is parity data.

14. The non-transitory computer readable medium of claim 9 , wherein the instructing by the coordinating nodes at the primary and the secondary sites are performed by their respective RAID 1 engines.

15. The non-transitory computer readable medium of claim 9 , wherein the instructing by the coordinating nodes at the primary and the secondary sites are performed by their respective RAID 5 engines.

16. The non-transitory computer readable medium of claim 9 , wherein the coordinating node at the primary site further includes a replication module that issues the first and second write operations.

17. A distributed computer system for replicating first and second component objects of a virtual disk, comprising:

a first coordinating node;

first storage nodes that back the first and second component objects, the first storage nodes communicating with the first coordinating node through a first local area network;

a second coordinating node communicating with the first coordinating node through a wide area network; and

second storage nodes that back third and fourth component objects, which are replicas of the first and second component objects, respectively, the second storage nodes communicating with the second coordinating node through a second local area network, wherein

responsive to receiving a write command issued to the virtual disk, the first coordinating node (i) issues a first write operation and a replica of the first write operation, (ii) transmits a second write operation, identical to the first write operation, to the second coordinating node responsible for replicating data received from the first coordinating node on the second storage nodes, and (iii) instructs, responsive to the first write operation and the replica of the first write operation, the first storage nodes that are backing the first and second component objects to write data on at least two corresponding local storage devices, wherein

the second coordinating node, responsive to receiving the second write operation, (i) issues a replica of the second write operation and (ii) instructs the second storage nodes that are backing the third and fourth component objects to write data on at least two corresponding local storage devices of the second storage nodes.

18. The distributed computer system of claim 17 , wherein the instructing by the coordinating nodes at the primary and the secondary sites are performed by their respective RAID 1 engines.

19. The distributed computer system of claim 17 , wherein the instructing by the coordinating nodes at the primary and the secondary sites are performed by their respective RAID 5 engines.

20. The distributed computer system of claim 17 , wherein the first coordinating node further includes a RAID 1 engine that issues the first and second write operations.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067103/0030 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 16, 2017
From: RENAULD, PASCAL; XIANG, ENNING; KNAUFT, ERIC
To: VMWARE, INC.
Reel/Frame 043311/0882 →
Continuity (1)
Related Publication 20190034087A1 · Jan 31, 2019