IP Library › Granted Patent US 11,593,177
Granted Patent B2
US 11,593,177 · App. 16/822,490 · Granted Feb 28, 2023

Cost-savings using ephemeral hosts in infrastructure as a service environments based on health score

Inventors: Dragos Victor Misca (San Francisco, CA); Sahan Bamunavita Gamage (San Jose, CA); Pranshu Jain (Sunnyvale, CA); Zhelong Pan (Cupertino, CA)
Assignee: VMWARE, INC.
G06F9/505G06F2209/505G06F2209/5011G06F2209/5014
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,593,177
App. No.
16/822,490
Filed
Mar 18, 2020
Granted
Feb 28, 2023
Kind
B2
Examiner
XU, ZUJIA
Art Unit
2195
USPC
718/104
Abstract

Various examples are disclosed for placing virtual machine (VM) workloads in a computing environment. Ephemeral workloads can be placed onto reserved instances or reserved hosts in a cloud-based VM environment. If a request to place a guaranteed workload is received, ephemeral workloads can be evacuated to make way for the guaranteed workload.

Claims (67)

1. A system, comprising:

at least one computing device including at least one processor;

program instructions stored in memory and executable in the at least one computing device that, when executed by the at least one computing device, cause the at least one computing device to:

determine in a deployment of virtual machine workloads in a hosted computing environment that there is an excess capacity of at least one reserved host of a plurality of reserved hosts from a host pool assigned to the deployment;

identify a first ephemeral workload to assign to a first reserved host of the plurality of reserved hosts in the deployment of virtual machine workloads;

place the first ephemeral workload to the first reserved host in the deployment of virtual machine workloads;

obtain a request to place a guaranteed workload in the deployment of virtual machines workloads;

determine that there is no excess capacity in the host pool assigned to the deployment;

identify a plurality of clusters of workloads running on at least one of the plurality of reserved hosts from the host pool, individual clusters of workloads including one or more respective ephemeral workloads;

calculate a respective cluster health score for the individual clusters of workloads based upon a health of the respective cluster after a hypothetical removal of multiple combinations of the one or more respective ephemeral workloads within the respective cluster, wherein calculating the respective cluster health score comprises identifying a respective particular combination of ephemeral workloads from the multiple combinations of the at least one respective ephemeral workloads within the respective cluster to return a highest cluster health score;

identify a second reserved host of the plurality of reserved hosts based on the highest cluster health score of a first cluster of workloads from the plurality of clusters of workloads, the first cluster of workloads running on the second reserved host within the host pool, the first cluster of workloads comprising a first combination of ephemeral workloads that if evacuated would result in the highest cluster health score;

evacuate the first combination of ephemeral workloads from the second reserved host; and

place the guaranteed workload on the second reserved host,

wherein the guaranteed workload is guaranteed execution in the hosted computing environment, and the first ephemeral workload, the first combination of ephemeral workloads, and the one or more respective ephemeral workloads are allowed execution in the hosted computing environment based at least in part on an availability within the hosted computing environment.

2. The system of claim 1 , wherein the cluster of workloads comprises a collection of virtual machine workloads assigned to a particular user or a particular customer within the deployment.

3. The system of claim 1 , wherein the host pool comprises a plurality of virtual machines that are executed using a plurality of reserved computing units assigned to the deployment.

4. The system of claim 1 , wherein the program instructions select the second reserved host by at least:

ranking a plurality of respective cluster health scores for the identified plurality of clusters of workloads; and

identifying the first cluster of workloads from the identified clusters with a respective cluster health score indicating a highest health relative to a remainder of the identified clusters.

5. The system of claim 1 , wherein the program instructions determine that there is no excess capacity in the plurality of reserved hosts in the host pool by determining that the virtual machine workloads are fully utilizing the reserved hosts assigned to the deployment.

6. The system of claim 1 , wherein the first combination of ephemeral workloads is evacuated from the second reserved host after a timeout period.

7. The system of claim 1 , wherein the guaranteed workload requires multiple hosts for execution, and wherein the program instructions further cause the at least one computing device to at least:

identify a third reserved host of the plurality of reserved hosts based on the respective cluster health score of a second cluster of workloads from the plurality of clusters of workloads, the second cluster of workloads running on the third reserved host within the host pool; and

place the guaranteed workload on the second reserved host and the third reserved host.

8. A non-transitory computer-readable medium for predictive allocation of computing resources in a virtual desktop infrastructure environment, comprising embodying program code executable in at least one computing device that, when executed by at least one processor of the at least one computing device, causes the at least one computing device to:

determine in a deployment of virtual machine workloads in a hosted computing environment that there is an excess capacity of at least one reserved host of a plurality of reserved hosts from a host pool assigned to the deployment;

identify a first ephemeral workload to assign to a first reserved host of the plurality of reserved hosts in the deployment of virtual machine workloads;

place the first ephemeral workload to the first reserved host in the deployment of virtual machine workloads;

obtain a request to place a guaranteed workload in the deployment of virtual machines workloads;

determine that there is no excess capacity in the host pool assigned to the deployment;

identify a plurality of clusters of workloads running on at least one of the plurality of reserved hosts from the host pool, individual clusters of workloads including one or more respective ephemeral workloads;

calculate a respective cluster health score for the individual clusters of workloads based upon a health of the respective cluster after a hypothetical removal of multiple combinations of the one or more respective ephemeral workloads within the respective cluster, wherein calculating the respective cluster health score comprises identifying a respective particular combination of ephemeral workloads from the multiple combinations of the at least one respective ephemeral workloads within the respective cluster to return a highest cluster health score;

identify a second reserved host of the plurality of reserved hosts based on the highest cluster health score of a first cluster of workloads from the plurality of clusters of workloads, the first cluster of workloads running on the second reserved host within the host pool, the first cluster of workloads comprising a first combination of ephemeral workloads that if evacuated would result in the highest cluster health score;

evacuate the first combination of ephemeral workloads from the second reserved host; and

place the guaranteed workload on the second reserved host,

wherein the guaranteed workload is guaranteed execution in the hosted computing environment, and the first ephemeral workload, the first combination of ephemeral workloads, and the one or more respective ephemeral workloads are allowed execution in the hosted computing environment based at least in part on an availability within the hosted computing environment.

9. The non-transitory computer-readable medium of claim 8 , wherein the cluster of workloads comprises a collection of virtual machine workloads assigned to a particular user or a particular customer within the deployment.

10. The non-transitory computer-readable medium of claim 8 , wherein the host pool comprises a plurality of virtual machines that are executed using a plurality of reserved computing units assigned to the deployment.

11. The non-transitory computer-readable medium of claim 8 , wherein the program code selects the second reserved host by at least:

ranking a plurality of respective cluster health scores for the identified plurality of clusters of workloads; and

identifying the first cluster of workloads from the identified clusters with a respective cluster health score indicating a highest health relative to a remainder of the identified clusters.

12. The non-transitory computer-readable medium of claim 8 , wherein the program code determines that there is no excess capacity in the plurality of reserved hosts in the host pool by determining that the virtual machine workloads are fully utilizing the reserved hosts assigned to the deployment.

13. The non-transitory computer-readable medium of claim 8 , wherein the first combination of ephemeral workloads is evacuated from the second reserved host after a timeout period.

14. The non-transitory computer-readable medium of claim 8 , wherein the guaranteed workload requires multiple hosts for execution, and wherein the program code further causes the at least one computing device to at least:

identify a third reserved host of the plurality of reserved hosts based on the respective cluster health score of a second cluster of workloads from the plurality of clusters of workloads, the second cluster of workloads running on the third reserved host within the host pool; and

place the guaranteed workload on the second reserved host and the third reserved host.

15. A method, comprising:

determining in a deployment of virtual machine workloads in a hosted computing environment that there is an excess capacity of at least one reserved host of a plurality of reserved hosts from a host pool assigned to the deployment;

identifying a first ephemeral workload to assign to a first reserved host of the plurality of reserved hosts in the deployment of virtual machine workloads;

placing the first ephemeral workload to the first reserved host in the deployment of virtual machine workloads;

obtaining a request to place a guaranteed workload in the deployment of virtual machines workloads;

determining that there is no excess capacity in the host pool assigned to the deployment;

identifying a plurality of clusters of workloads running on at least one of the plurality of reserved hosts from the host pool, individual clusters of workloads including one or more respective ephemeral workloads;

calculating a respective cluster health score for the individual clusters of workloads based upon a health of the respective cluster after a hypothetical removal of multiple combinations of the one or more respective ephemeral workloads within the respective cluster, wherein calculating the respective cluster health score comprises identifying a respective particular combination of ephemeral workloads from the multiple combinations of the at least one respective ephemeral workloads within the respective cluster to return a highest cluster health score;

identifying a second reserved host of the plurality of reserved hosts based on the highest cluster health score of a first cluster of workloads from the plurality of clusters of workloads, the first cluster of workloads running on the second reserved host within the host pool, the first cluster of workloads comprising a first combination of ephemeral workloads that if evacuated would result in the highest cluster health score;

evacuating the first combination of ephemeral workloads from the second reserved host; and

placing the guaranteed workload on the second reserved host,

wherein the guaranteed workload is guaranteed execution in the hosted computing environment, and the first ephemeral workload, the first combination of ephemeral workloads, and the one or more respective ephemeral workloads are allowed execution in the hosted computing environment based at least in part on an availability within the hosted computing environment.

16. The method of claim 15 , wherein the host pool comprises a plurality of virtual machines that are executed using a plurality of reserved computing units assigned to the deployment.

17. The method of claim 15 , wherein selecting the second reserved host further comprises:

ranking a plurality of respective cluster health scores for the identified plurality of clusters of workloads; and

identifying the first cluster of workloads from the identified clusters with a respective cluster health score indicating a highest health relative to a remainder of the identified clusters.

18. The method of claim 15 , wherein determining that there is no excess capacity in the plurality of reserved hosts in the host pool by determining that the virtual machine workloads are fully utilizing the reserved hosts assigned to the deployment.

19. The method of claim 15 , wherein the first combination of ephemeral workloads is evacuated from the second reserved host after a timeout period.

20. The method of claim 15 , wherein the guaranteed workload requires multiple hosts for execution, and further comprising:

identifying a third reserved host of the plurality of reserved hosts based on the respective cluster health score of a second cluster of workloads from the plurality of clusters of workloads, the second cluster of workloads running on the third reserved host within the host pool; and

placing the guaranteed workload on the second reserved host and the third reserved host.

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 Mar 19, 2020
From: MISCA, DRAGOS VICTOR; GAMAGE, SAHAN BAMUNAVITA; JAIN, PRANSHU; PAN, ZHELONG
To: VMWARE, INC.
Reel/Frame 052162/0747 →
Continuity (1)
Related Publication 20210294651A1 · Sep 23, 2021