IP Library Granted Patent US 9,678,838
Granted Patent B2
US 9,678,838 · App. 14/459,345 · Granted Jun 13, 2017

Protecting virtual machines from network failures

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,678,838
App. No.
14/459,345
Granted
Jun 13, 2017
Kind
B2
Abstract

Systems and techniques are described for protecting virtual machines from network failures. A described technique includes running a virtual machine on a first source host; replicating, over a first network, data related to the virtual machine to a destination host; determining that the destination host has become unreachable, over the first network, from the first source host; determining whether a second source host can reach the destination host over the first network or a second network; determining whether the virtual machine can run on the second source host; and running the virtual machine on the second source host.

Claims (61)

1. A computer-implemented method comprising:

running a virtual machine on a first source host;

replicating, over a first network, data related to the virtual machine to a destination host, wherein the data related to the virtual machine comprises data stored by the virtual machine in virtual storage associated with the virtual machine;

during the replicating of the data related to the virtual machine to the destination host, identifying a network failure of the first network;

determining, based on identifying the network failure of the first network, that the destination host has become unreachable, over the first network, from the first source host, and, in response:

determining that a second source host can reach the destination host over the first network or over a second network;

determining that the virtual machine can run on the second source host; and

based on determining that the second source host can reach the destination host and determining that the virtual machine can run on the second source host, running the virtual machine on the second source host instead of on the first source host, wherein running the virtual machine on the second source host includes providing access to virtual machine data to the virtual machine running on the second source host including virtual machine data that has not been replicated to the destination host, and continuing the replication of the data related to the virtual machine from the second source host to the destination host.

2. The method of claim 1 wherein determining that the destination host has become unreachable comprises:

determining that data sent to the destination host during the replication has not been successfully transmitted to the destination host.

3. The method of claim 1 wherein the virtual machine is in a high availability duster of virtual machines, wherein the first source host has been configured as a slave node for the high availability cluster, and wherein determining whether a second source host can reach the destination host and determining whether the virtual machine can run on the second source host comprises:

providing, by the first source host, an indication that the destination host has become unreachable to a host that has been configured as a master node for the high availability cluster; and

determining, by the host that has been configured as the master node, whether the second source host can reach the destination host and whether the virtual machine can run on the second source host.

4. The method of claim 1 , wherein the virtual machine is in a high availability cluster of virtual machines, wherein the source host has been configured as a master node for the high availability cluster, and wherein determining whether a second source host can reach the destination host and determining whether the virtual machine can run on the second source host comprises:

determining, by the first source host, whether the second source host can reach the destination host and whether the virtual machine can run on the second secure host.

5. The method of claim 1 , further comprising:

determining that the second source host is reachable by the first source host over the first network or over a different network.

6. The method of claim 5 , wherein determining that the second source host is reachable comprises:

sending a ping request to the second source host over the first network or the different network; and

receiving a response to the ping request from the second source host.

7. The method of claim 1 , wherein determining that the second source host can reach the destination host comprises:

determining that no network failure has been detected on a network communication path between the second source host and the destination host.

8. The method of claim 1 , wherein determining that the virtual machine can run on the second source host comprises:

determining that the second source host has sufficient available resources to run the virtual machine.

9. The method of claim 1 , wherein running the virtual machine on the second source host comprises:

migrating the virtual machine to the second source host.

10. The method of claim 1 , wherein running the virtual machine on the second source host comprises:

suspending the virtual machine on the first source host; and

resuming the virtual machine on the second source host.

11. A system comprising one or more computers and one or more storage devices storing instructions that when executed by the one or more computers cause the one or more computers to perform operations comprising:

running a virtual machine on a first source host;

replicating, over a first network, data related to the virtual machine to a destination host, wherein the data related to the virtual machine comprises data stored by the virtual machine in virtual storage associated with the virtual machine;

during the replicating of the data related to the virtual machine to the destination host, identifying a network failure of the first network;

determining, based on identifying the network failure of the first network, that the destination host has become unreachable, over the first network, from the first source host, and, in response:

determining that a second source host can reach the destination host over the first network or over a second network;

determining that the virtual machine can run on the second source host; and

based on determining that the second source host can reach the destination host and determining that the virtual machine can run on the second source host, running the virtual machine on the second source host instead of on the first source host, wherein running the virtual machine on the second source host includes providing access to virtual machine data to the virtual machine running on the second source host including virtual machine data that has not been replicated to the destination host, and continuing the replication of the data related to the virtual machine from the second source host to the destination host.

12. The system of claim 11 , the operations further comprising:

continuing the replication of the data related to the virtual machine data from the second source host to the destination host.

13. The system of claim 11 , wherein the virtual machine is in a high availability cluster of virtual machines, wherein the first source host has been configured as a slave node for the high availability cluster, and wherein determining whether a second source host can reach the destination host and determining whether the virtual machine can run on the second source host comprises:

providing, by the first source host, an indication that the destination host has become unreachable to a host that has been configured as a master node for the high availability cluster; and

determining, by the host that has been configured as the master node, whether the second source host can reach the destination host and whether the virtual machine can run on the second source host.

14. The system of claim 11 , wherein the virtual machine is in a high availability cluster of virtual machines, wherein the source host has been configured as a master node for the high availability cluster, and wherein determining whether a second source host can reach the destination host and determining whether the virtual machine can run on the second source host comprises:

determining, by the first source host, whether the second source host can reach the destination host and whether the virtual machine can run on the second source host.

15. The system of claim 11 , wherein determining that the second source host can reach the destination host comprises:

determining that no network failure has been detected on a network communication path between the second source host and the destination host.

16. A non-transitory computer storage medium, encoded with a computer program, the computer program comprising instructions that when executed by one or more computers cause the one or more computers to perform operations comprising:

running a virtual machine on a first source host;

replicating, over a first network, data related to the virtual machine to a destination host, wherein the data related to the virtual machine comprises data stored by the virtual machine in virtual storage associated with the virtual machine;

during the replicating of the data related to the virtual machine to the destination host, identifying a network failure of the first network;

determining, based on identifying the network failure of the first network, that the destination host has become unreachable, over the first network, from the first source host, and, in response:

determining that a second source host can reach the destination host over the first network or over a second network;

determining that the virtual machine can run on the second source host; and

based on determining that the second source host can reach the destination host and determining that the virtual machine can run on the second source host, running the virtual machine on the second source host instead of on the first source host, wherein running the virtual machine on the second source host includes providing access to virtual machine data to the virtual machine running on the second source host including virtual machine data that has not been replicated to the destination host, and continuing the replication of the data related to the virtual machine from the second source host to the destination host.

17. The computer storage medium of claim 16 , the operations further comprising:

continuing the replication of the data related to the virtual machine data from the second source host to the destination host.

18. The computer storage medium of claim 16 , wherein the virtual machine is in a high availability cluster of virtual machines, wherein the first source host has been configured as a slave node for the high availability cluster, and wherein determining whether a second source host can reach the destination host and determining whether the virtual machine can run on the second source host comprises:

providing, by the first source host, an indication that the destination host has become unreachable to a host that has been configured as a master node for the high availability cluster; and

determining, by the host that has been configured as the master node, whether the second source host can reach the destination host and whether the virtual machine can run on the second source host.

19. The computer storage medium of claim 16 , wherein the virtual machine is in a high availability cluster of virtual machines, wherein the source host has been configured as a master node for the high availability cluster, and wherein determining whether a second source host can reach the destination host and determining whether the virtual machine can run on the second source host comprises:

determining, by the first source host, whether the second source host can reach the destination host and whether the virtual machine can run on the second source host.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 14, 2014
From: MARAKALA, SANTHOSH; RAJANNA, ROHIT
To: VMWARE, INC.
Reel/Frame 033532/0148 →