IP Library Granted Patent US 11,347,521
Granted Patent B2
US 11,347,521 · App. 16/744,896 · Granted May 31, 2022

Cloud restart for non-critical performance virtual machines

Inventors: Anant Agarwal (San Jose, CA); Rahul Chandrasekaran (Los Altos, CA); Aalap Desai (Newark, CA); Vikram Nair (Mountain View, CA); Zhelong Pan (Cupertino, CA)
Assignee: VMware, Inc.
G06F9/4418G06F9/45558G06F11/3495G06F2009/45575G06F2009/45595
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 11,347,521
App. No.
16/744,896
Granted
May 31, 2022
Kind
B2
Abstract

A method of restarting a virtual machine running in a cluster of hosts in a first data center, in a second data center, wherein each virtual machine is assigned a priority level, includes: transmitting virtual machines images running in the cluster at a first time to the second data center; selecting virtual machines to be restarted in the second data center according to priority levels assigned; and for each selected virtual machine, (a) generating difference data in an image of the selected virtual machine at a second time and at the first time, (b) transmitting the difference data to the second data center, (c) setting the virtual machine inactive in the first data center, and (d) communicating with the second data center to set as active; and power on, a virtual machine in the second data center using the image of the virtual machine transmitted to the second data center.

Claims (38)

1. A method of restarting a virtual machine running in a cluster of hosts in a first data center, in a second data center, wherein each of the virtual machines running in the cluster of hosts is assigned a priority level, the method comprising:

selecting one or more of the virtual machines running in the cluster of hosts to be restarted in the second data center according to priority levels assigned to the virtual machines, wherein the one or more virtual machines that are selected have a lowest priority level assigned thereto;

transmitting images of the selected virtual machines at a first point in time to the second data center;

monitoring a performance of one or more of the virtual machines having a highest priority level assigned thereto after the first point in time; and

upon determining that the monitored performance of the one or more of the virtual machines having the highest priority level assigned thereto is below a minimum performance threshold, restarting each of the selected virtual machines in the second data center by: (a) generating difference data representing a difference in an image of the selected virtual machine at a second point in time and the image of the selected virtual machine at the first point in time, (b) transmitting the difference data to the second data center, (c) setting the selected virtual machine to be inactive in the first data center; and (d) communicating with a control plane in the second data center to set as active, and power on, a virtual machine in the second data center using the image of the selected virtual machine transmitted to the second data center after updating the image using the difference data.

2. The method of claim 1 , wherein the first data center is an on-premise data center serving one tenant and the second data center is a cloud data center serving a plurality of tenants.

3. The method of claim 1 , wherein the monitored performance is computer processor usage and the minimum performance threshold is defined according to an SLA (service level agreement).

4. The method of claim 1 wherein the one or more virtual machines that are selected have two lowest priority levels assigned thereto.

5. The method of claim 4 , wherein

upon determining that the monitored performance of the one or more of the virtual machines having the highest priority level assigned thereto is below the minimum performance threshold, the one or more virtual machines that are assigned the lowest priority level are powered on in the second data center; and then

upon determining that the monitored performance of the one or more of the virtual machines having the highest priority level assigned thereto is still below the minimum performance threshold, the one or more virtual machines that are assigned the second lowest priority level are powered on in the second data center.

6. The method of claim 1 , wherein the one or more virtual machines that have been selected are live migrated to the second data center.

7. The method of claim 1 , wherein each of the hosts of the cluster includes an agent that monitors the performance of virtual machines running therein and reports the performance to a master service, and the performance of the one or more of the virtual machines having the highest priority level assigned thereto is determined based on the performance reported by the agents to the master service.

8. The method of claim 7 , wherein each agent sends a heartbeat signal to the master service at prescribed times and the master service determines that a host of the cluster has failed based on the heartbeat signal not being received from an agent of the failed host at a prescribed time.

9. A computer system comprising:

a memory configured to store executable code for restarting a virtual machine (VM) running in a cluster of hosts in a first data center; and

a processor configured to execute the code to:

select one or more virtual machines running in the cluster of hosts to be restarted in the second data center according to priority levels assigned to the virtual machines, wherein the one or more virtual machines that are selected have a lowest priority level assigned thereto;

transmit images of the selected virtual machines at a first point in time to the second data center;

monitor a performance of one or more of the virtual machines having a highest priority level assigned thereto after the first point in time; and

upon determining that the monitored performance of the one or more of the virtual machines having the highest priority level assigned thereto is below a minimum performance threshold, restart each of the selected virtual machines in the second data center by: (a) generating difference data representing a difference in an image of the selected virtual machine at a second point in time and the image of the selected virtual machine at the first point in time, (b) transmitting the difference data to the second data center, (c) setting the selected virtual machine to be inactive in the first data center; and (d) communicating with a control plane in the second data center to set as active, and power on, a virtual machine in the second data center using the image of the selected virtual machine transmitted to the second data center after updating the image using the difference data.

10. The computer system of claim 9 , wherein the first data center is an on-premise data center serving one tenant and the second data center is a cloud data center serving a plurality of tenants.

11. The computer system of claim 9 wherein the monitored performance is computer processor usage and the minimum performance threshold is defined according to an SLA (service level agreement).

12. The computer system of claim 9 , wherein the one or more virtual machines that are selected have two lowest priority levels assigned thereto.

13. The computer system of claim 12 , wherein

upon determining that the monitored performance of the one or more of the virtual machines having the highest priority level assigned thereto is below the minimum performance threshold, the one or more virtual machines that are assigned the lowest priority level are powered on in the second data center; and then

upon determining that the monitored performance of the one or more of the virtual machines having the highest priority level assigned thereto is still below the minimum performance threshold, the one or more virtual machines that are assigned the second lowest priority level are powered on in the second data center.

14. The computer system of claim 9 , wherein the one or more virtual machines that have been selected are live migrated to the second data center.

15. The computer system of claim 9 , wherein each of the hosts of the cluster includes an agent that monitors the performance of virtual machines running therein and reports the performance to a master service, and the performance of the one or more of the virtual machines having the highest priority level assigned thereto is determined based on the performance reported by the agents to the master service.

16. The computer system of claim 15 , wherein each agent sends a heartbeat signal to the master service at prescribed times and the master service determines that a host of the cluster has failed based on the heartbeat signal not being received from an agent of the failed host at a prescribed time.

17. A non-transitory computer-readable medium storing code for causing, when executed by a processor, restarting of a virtual machine running in a cluster of hosts in a first data center, to a second data center, the processor when executing the code performing the steps of:

selecting one or more virtual machines running in the cluster of hosts to be restarted in the second data center according to priority levels assigned to the virtual machines, wherein the one or more virtual machines that are selected have a lowest priority level assigned thereto;

transmiting images of the selected virtual machines at a first point in time to the second data center;

monitoring a performance of one or more of the virtual machines having a highest priority level assigned thereto after the first point in time; and

upon determining that the monitored performance of the one or more of the virtual machines having the highest priority level assigned thereto is below a minimum performance threshold, restarting each of the selected virtual machines in the second data center by: (a) generating difference data representing a difference in an image of the selected virtual machine at a second point in time and the image of the selected virtual machine at the first point in time, (b) transmitting the difference data to the second data center, (c) setting the selected virtual machine to be inactive in the first data center; and (d) communicating with a control plane in the second data center to set as active, and power on, a virtual machine in the second data center using the image of the selected virtual machine transmitted to the second data center after updating the image using the difference data.

18. The non-transitory computer-readable medium of claim 17 , wherein the first data center is an on-premise data center serving one tenant and the second data center is a cloud data center serving a plurality of tenants.

19. The non-transitory computer-readable medium of claim 17 , wherein the monitored performance is computer processor usage and the minimum performance threshold is defined according to an SLA (service level agreement).

20. The non-transitory computer-readable medium of claim 17 , wherein each of the hosts of the cluster includes an agent that monitors the performance of virtual machines running therein and reports the performance to a master service, and the performance of the one or more of the virtual machines having the highest priority level assigned thereto is determined based on the performance reported by the agents to the master service.

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 Apr 29, 2020
From: AGARWAL, ANANT; CHANDRASEKARAN, RAHUL; DESAI, AALAP; NAIR, VIKRAM; PAN, ZHELONG
To: VMWARE, INC.
Reel/Frame 052529/0941 →
Continuity (1)
Related Publication 20210224077A1 · Jul 22, 2021