IP Library › Granted Patent US 9,990,161
Granted Patent B2
US 9,990,161 · App. 14/573,747 · Granted Jun 5, 2018

Consistent replication of virtual computing instance data

Inventors: Sudarsan R. Piduri (Campbell, CA); Ilia Langouev (Santa Cruz, CA)
Assignee: VMware, Inc.
G06F3/067G06F3/065G06F3/0607G06F3/0659
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 9,990,161
App. No.
14/573,747
Granted
Jun 5, 2018
Kind
B2
Abstract

Virtual computing instance data that are stored across multiple storage volumes are replicated in a manner such that the write order is maintained. The frequency of the replication is set so that the recovery point objective defined for the VM data can be satisfied. The replication includes the steps of determining a set of logical storage volumes across which the virtual computing instance issues dependent write IOs, issuing a first command to the virtual computing instance to block new IOs and to block receipt of IO acknowledgements, issuing a command to create replicas of all the logical storage volumes in the set, and then issuing a second command to the virtual computing instance to unblock new IOs and unblock receipt of IO acknowledgements.

Claims (31)

1. A non-transitory computer readable storage medium comprising instructions that cause computer system to carry out a method of replicating data for a virtual computing instance wherein the virtual computing instance and a virtualization management module are running on hypervisor executing on a host computer communicatively coupled to a storage system, said method comprising:

determining, by the virtualization management module, a set of logical storage volumes across which the virtual computing instance issues dependent write IOs wherein the logical storage volumes are provisioned in the storage system;

issuing, by the virtualization management module, a first command to the virtual computing instance to block the virtual computing instance from issuing new IOs to the logical storage volumes of the set of logical storage volumes in the storage system, and to block the virtual computing instance from receiving IO acknowledgements sent by the storage system without waiting for in-flight IOs to complete;

responsive to issuing the first command and before issuing a second command to the virtual computing instance wherein the second command unblocks the virtual computing instance from issuing new IOs to the storage system and unblocks the virtual computing instance from receiving IO acknowledgements sent by the storage system, issuing, by the virtualization module, a command to the storage system wherein the command instructs the storage system to create replicas of all the logical storage volumes in the set to which the virtual computing instance issues dependent write IOs on a second storage system such that the dependent writes of the replicas are ordered in the same manner as the logical storage volumes in the set; and

issuing, by the virtualization module, the second command to the virtual computing instance.

2. The non-transitory computer readable storage medium of claim 1 , wherein the logical storage volumes are virtual volumes that include a first virtual volume that stores data of a first virtual disk for the virtual computing instance and a second virtual volume that stores data of a second virtual disk for the virtual computing instance.

3. The non-transitory computer readable storage medium of claim 2 , wherein each of the virtual volumes has an independent storage policy.

4. The non-transitory computer readable storage medium of claim 1 wherein the virtualization module waits for an acknowledgement from the storage system that replicas have been created before issuing the second command.

5. The non-transitory computer readable storage medium of claim 1 , wherein the virtualization management module determines the set of logical storage volumes across which the virtual computing instances issue dependent write IOs in response to the write requests, from consistency group definitions maintained by the virtualization management module.

6. A method of replicating data for a virtual computing instance wherein the virtual computing instance and a virtualization management module are running on hypervisor executing on a host computer communicatively coupled to a storage system, said method comprising:

determining, by the virtualization management module, a set of logical storage volumes across which the virtual computing instances issue dependent write IOs wherein the logical storage volumes are provisioned in the storage system;

issuing, by the virtualization module, a first command to the virtual computing instance to block the virtual computing instance from issuing new IOs to the logical storage volumes of the set of logical storage volumes in the storage system, and to block the virtual computing instance from receiving IO acknowledgements sent by the storage system without waiting for in-flight IOs to complete;

responsive to issuing the first command and before issuing a second command to the virtual computing instance wherein the second command unblocks the virtual computing instance from issuing new IOs to the storage system and unblocks the virtual computing instance from receiving receipt of IO acknowledgements sent by the storage system, issuing, by the virtualization module, a command to the storage system wherein the command instructs the storage system to create replicas of all the logical storage volumes in the set to which the virtual computing instance issues dependent write IOs on a second storage system such that the dependent writes of the replicas are ordered in the same manner as the logical storage volumes in the set; and

issuing the second command to each of the virtual computing instances.

7. The method of claim 6 , wherein the logical storage volumes are virtual volumes that include a first virtual volume that stores data of a virtual disk of one of the virtual computing instances and a second virtual volume that stores data of a virtual disk of another one of the virtual computing instances.

8. The method of claim 7 , wherein each of the virtual volumes has an independent storage policy.

9. The method of claim 6 , wherein virtualization management module determines the set of logical storage volumes across which the virtual computing instances issue dependent write IOs in response to the write requests, from consistency group definitions maintained by the virtualization management module.

10. The method of claim 6 wherein the virtualization management module waits for an acknowledgement from the storage system that replicas have been created before issuing the second command.

11. The method of claim 6 , wherein the creation of replicas comprises using an API to instruct the storage system to flush an IO cache for the logical storage volumes in the set such that write data for the logical storage volumes in the set that has already been acknowledged has been written.

12. The method of claim 6 , wherein the creation of replicas comprises using an API to instruct the storage system to remove one or more replicas in response to determining that an error occurred in creating the replica.

13. A computer system comprising:

a processor; and

a non-transitory computer readable medium having stored thereon program code for replicating data for a virtual computing instance wherein the virtual computing instance and a virtualization management module are running on hypervisor executing on a host computer communicatively coupled to a storage system, the program code causing the processor to:

determine, by the virtualization management module, a set of logical storage volumes across which the virtual computing instance issues dependent write IOs wherein the logical storage volumes are provisioned in the storage system;

issue, by the virtualization module, a first command to the virtual computing instance to block the virtual computing instance from issuing new IOs to the logical storage volumes of the set of logical storage volumes in the storage system, and to block the virtual computing instance from receiving IO acknowledgements sent by the storage system without waiting for in-flight IOs to complete;

responsive to issuing the first command and before issuing a second command to the virtual computing instance wherein the second command unblocks the virtual computing instance from issuing new IOs to the storage system and unblocks the virtual computing instance from receiving IO acknowledgements sent by the storage system, issue, by the virtualization module, a command to the storage system wherein the command instructs the storage system to create replicas of all the logical storage volumes in the set to which the virtual computing instance issues dependent write IOs on a second storage system such that the dependent writes of the replicas are ordered in the same manner as the logical storage volumes in the set; and

issue, by the virtualization module, the second command to the virtual computing instance.

14. The computer system of claim 13 , wherein the logical storage volumes are virtual volumes that include a first virtual volume that stores data of a first virtual disk for the virtual computing instance and a second virtual volume that stores data of a second virtual disk for the virtual computing instance.

15. The computer system of claim 14 , wherein each of the virtual volumes has an independent storage policy.

16. The computer system of claim 13 wherein the virtualization module waits for an acknowledgement from the storage system that replicas have been created before issuing the second command.

17. The system of claim 13 , wherein the virtualization management module determines the set of logical storage volumes across which the virtual computing instances issue dependent write IOs in response to the write requests, from consistency group definitions maintained by the virtualization management module.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 17, 2017
From: PIDURI, SUDARSAN R.; LANGOUEV, ILIA
To: VMWARE, INC.
Reel/Frame 044162/0218 →
Continuity (1)
Related Publication 20160179437A1 · Jun 23, 2016