IP Library Granted Patent US 11,010,206
Granted Patent B2
US 11,010,206 · App. 16/272,562 · Granted May 18, 2021

Constrained placement in hierarchical randomized schedulers

Inventor: Luca Castellano (San Francisco, CA)
Assignee: VMware, Inc.
G06F9/5077G06F9/45558G06F9/5005H04L67/10H04L67/1008H04L67/1029H04L67/38G06F2009/4557G06F2009/45562
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,010,206
App. No.
16/272,562
Granted
May 18, 2021
Kind
B2
Abstract

A distributed scheduler for a virtualized computer system has a hierarchical structure and includes a root scheduler as the root node, one or more branch schedulers as intermediate nodes, and a plurality of hosts as leaf nodes. A request to place a virtual computing instance is propagated down the hierarchical structure to the hosts that satisfy placement constraints of the request. Each host that receives the request responds with a score indicating resource availability on that host, and the scores are propagated back up the hierarchical structure. Branch schedulers that receive such scores compare the received scores and further propagate a “winning” score, such as the highest or lowest score, up the hierarchical structure, until the root scheduler is reached. The root scheduler makes a similar comparison of received scores to select the best candidate among the hosts to place the virtual computing instance.

Claims (34)

1. A resource scheduling system for a plurality of hosts, the resource scheduling system comprising:

at least one processor;

a memory storing at least one application executable by the at least one processor, the at least one application, when executed, causes the at least one processor to at least:

receive a placement request to place a virtual computing instance in at least one of a plurality of hosts, the placement request specifying at least one constraint;

transmit a constrained placement request to at least one branch scheduler corresponding to at least one host satisfying the at least one constraint, wherein the at least one branch scheduler is configured to further propagate the constrained placement request to at least one other branch scheduler corresponding to at least one additional host satisfying the at least one constraint;

obtain a plurality of responses from the at least one branch scheduler and the at least one other branch scheduler;

select a host from the at least one host and the at least one additional host based upon the plurality of responses; and

cause the virtual computing instance to be executed on the host, wherein the plurality of hosts and the at least one additional host are configured to maintain data representative of available resources and issue a response indicative of the available resources for the constrained placement request to a respective parent branch scheduler.

2. The resource scheduling system of claim 1 , wherein at least one branch scheduler maintains information indicating devices or networks to which respective hosts are connected, and the resource scheduling system is configured to at least store aggregated device or network connectivity information for the at least one branch scheduler, the aggregated device or network connectivity information comprising counts of a number of hosts associated with the at least one branch scheduler that are connected to the devices or networks.

3. The resource scheduling system of claim 1 , wherein the at least one additional host comprises a host having the most available resources for the constrained placement request.

4. The resource scheduling system of claim 1 , wherein the host is selected at random from the at least one host and the at least one additional host.

5. The resource scheduling system of claim 1 , wherein the at least one branch scheduler comprises a component of a cluster manager that manages one of the plurality of hosts.

6. The system of claim 1 , wherein the virtual computing instance is a virtual machine.

7. A non-transitory computer readable medium comprising instructions to be executed in a computer system, the instructions causing the computer system to at least:

receive a placement request to place a virtual computing instance in at least one of a plurality of hosts, the placement request specifying at least one constraint;

transmit a constrained placement request to at least one branch scheduler corresponding to at least one host satisfying the at least one constraint, wherein the at least one branch scheduler is configured to further propagate the constrained placement request to at least one other branch scheduler corresponding to at least one additional host satisfying the at least one constraint;

obtain a plurality of responses from the at least one branch scheduler and the at least one other branch scheduler;

select a host from the at least one host and the at least one additional host based upon the plurality of responses; and

cause the virtual computing instance to be executed on the host, wherein the plurality of hosts and the at least one additional host are configured to maintain data representative of available resources and issue a response indicative of the available resources for the constrained placement request to a respective parent branch scheduler.

8. The non-transitory computer readable medium of claim 7 , wherein at least one branch scheduler maintains information indicating devices or networks to which respective hosts are connected, and the computer system is configured to at least store aggregated device or network connectivity information for the at least one branch scheduler, the aggregated device or network connectivity information comprising counts of a number of hosts associated with the at least one branch scheduler that are connected to the devices or networks.

9. The non-transitory computer readable medium of claim 7 , wherein the at least one additional host comprises a host having the most available resources for the constrained placement request.

10. The non-transitory computer readable medium of claim 7 , wherein the host is selected at random from the at least one host and the at least one additional host.

11. The non-transitory computer readable medium of claim 7 , wherein the at least one branch scheduler comprises a component of a cluster manager that manages one of the plurality of hosts.

12. The non-transitory computer readable medium of claim 7 , wherein the virtual computing instance is a virtual machine.

13. A method of placing a virtual computing instance on a host in a plurality of hosts, comprising:

receiving a placement request to place a virtual computing instance in at least one of a plurality of hosts, the placement request specifying at least one constraint;

transmitting a constrained placement request to at least one branch scheduler corresponding to at least one host satisfying the at least one constraint, wherein the at least one branch scheduler is configured to further propagate the constrained placement request to at least one other branch scheduler corresponding to at least one additional host satisfying the at least one constraint;

obtaining a plurality of responses from the at least one branch scheduler and the at least one other branch scheduler;

selecting a host from the at least one host and the at least one additional host based upon the plurality of responses; and

causing the virtual computing instance to be executed on the host, wherein the plurality of hosts and the at least one additional host are configured to maintain data representative of available resources and issue a response indicative of the available resources for the constrained placement request to a respective parent branch scheduler.

14. The method of claim 13 , wherein the at least one additional host comprises a host having the most available resources for the constrained placement request.

15. The method of claim 13 , wherein the host is selected at random from the at least one host and the at least one additional host.

16. The method of claim 13 , wherein the at least one branch scheduler comprises a component of a cluster manager that manages one of the plurality of hosts.

17. The method of claim 13 , wherein the virtual computing instance is a virtual machine.

Assignments (1)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
Continuity (4)
Continuation 15798026 · Oct 30, 2017
Continuation 14986161 · Dec 31, 2015
Provisional Application 62211671 · Aug 28, 2015
Related Publication 20190188051A1 · Jun 20, 2019