IP Library Granted Patent US 11,740,921
Granted Patent B2
US 11,740,921 · App. 17/101,714 · Granted Aug 29, 2023

Coordinated container scheduling for improved resource allocation in virtual computing environment

Inventor: Jeremy Warner Olmsted-Thompson (Seattle, WA)
Assignee: Google LLC
G06F9/45558G06F9/4881G06F9/5077G06F2009/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,740,921
App. No.
17/101,714
Granted
Aug 29, 2023
Kind
B2
Abstract

The technology provides for allocating an available resource in a computing system by bidirectional communication between a hypervisor and a container scheduler in the computing system. The computing system for allocating resources includes one or more processors configured to receive a first scheduling request to initiate a first container on a first virtual machine having a set of resources. A first amount of resources is allocated from the set of resources to the first container on the first virtual machine in response to the first scheduling request. A hypervisor is notified in a host of the first amount of resources allocated to the first container. A second amount of resources from the set of resources is allocated to a second virtual machine in the host. A reduced amount of resources available in the set of resources is determined. A container scheduler is notified by the hypervisor for the reduced amount of resources of the set of resources available on the first virtual machine.

Claims (44)

1. A method for allocating resources in a computing system, comprising:

receiving, by one or more processors, a first scheduling request to initiate a first container on a first virtual machine having a set of resources;

allocating, by the one or more processors, a first amount of resources from the set of resources to the first container on the first virtual machine in response to the first scheduling request;

notifying, by the one or more processors, a hypervisor in a host of the first amount of resources allocated to the first container;

allocating, by the one or more processors, a second amount of resources from the set of resources to a second virtual machine in the host;

determining, by the one or more processors, if a full amount of the set of the resources on the host is consumed or an unused amount of resources is available in the set of resources on the host, wherein the unused amount of resources is monitored in real time by a container scheduler;

in response to the unused amount of resources being available in the set of resources on the host, notifying the hypervisor in real time by a container scheduler about the unused amount of resources of the set of resources available on the first virtual machine, wherein the unused amount of resources is dynamically rearranged or allocated by the hypervisor; and

in response to the full amount of the set of the resources on the host being consumed, notifying, by the one or more processors, the container scheduler when the full amount of the set of resources on the host is consumed.

2. The method of claim 1 , further comprising:

receiving, by the one or more processors, a second scheduling request to initiate a second container on the first virtual machine; and

allocating, by the one or more processors, a third amount of resources from the set of resources to the second container on the first virtual machine in response to the second scheduling request.

3. The method of claim 2 , further comprising:

notifying, by the one or more processors, the hypervisor of the third amount of resources from the set of resources allocated to the second container; and

allocating, by the one or more processors, a fourth amount of resources from the set of resources to a third virtual machine in the host.

4. The method of claim 1 , wherein the first virtual machine is a virtual machine registered with a container scheduling system.

5. The method of claim 1 , wherein the container scheduler and the hypervisor are both controlled by a cloud service provider.

6. The method of claim 1 , wherein receiving the first scheduling request further comprises:

assigning, by the one or more processors, an upper bound of the set of resources on the first virtual machine; and

notifying, by the one or more processors, the hypervisor about the upper bound of the set of resources on the first virtual machine.

7. The method of claim 1 , wherein notifying the first virtual machine or the container scheduler about the unused amount of resources further comprises:

notifying the first virtual machine or the container scheduler by the hypervisor about the unused amount of resources.

8. The method of claim 1 , wherein allocating the first amount of resources further comprises:

utilizing a balloon driver to allocate the resources.

9. The method of claim 1 , wherein receiving the first scheduling request for scheduling the first container further comprises:

checking, by the one or more processors, workload consumed in the first container; and

maintaining, by the one or more processors, the workload below the first amount of resources as requested.

10. The method of claim 1 , wherein the container scheduler and the hypervisor are configured to communicate bidirectionally.

11. The method of claim 1 , wherein the first container is initiated in a pod deployed in the first virtual machine.

12. A computing system for allocating resources, comprising:

one or more processors configured to:

receive a first scheduling request to initiate a first container on a first virtual machine having a set of resources;

allocate a first amount of resources from the set of resources to the first container on the first virtual machine in response to the first scheduling request;

notify a hypervisor in a host of the first amount of resources allocated to the first container;

allocate a second amount of resources from the set of resources to a second virtual machine in the host;

determine if a full amount of the set of the resources on the host is consumed or an unused amount of resources is available in the set of resources on the host, wherein the unused amount of resources is monitored in real time by a container scheduler;

in response to the unused amount of resources being available in the set of resource on the host, notify the hypervisor in real time by the container scheduler about the unused amount of resources of the set of resources available on the first virtual machine, wherein the unused amount of resources is dynamically rearranged or allocated by the hypervisor; and

in response to the full amount of the set of the resources on the host being consumed, notify the container scheduler by the hypervisor when the full amount of the set of resources on the host is consumed.

13. The computing system of claim 12 , wherein the one or more processors are further configured to:

receive a second scheduling request to initiate a second container on the first virtual machine; and

allocate a third amount of resources from the set of resources to the second container on the first virtual machine in response to the second scheduling request.

14. The computing system of claim 13 , wherein the one or more processors are further configured to:

notify the hypervisor of the third amount of resources from the set of resources allocated to the second container; and

allocate a fourth amount of resources from the set of resources to a third virtual machine in the host.

15. The computing system of claim 12 , wherein the container scheduler and the hypervisor are both controlled by a cloud service provider.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 3, 2020
From: OLMSTED-THOMPSON, JEREMY WARNER
To: GOOGLE LLC
Reel/Frame 054526/0735 →
Continuity (1)
Related Publication 20220164208A1 · May 26, 2022
Cited By (2)
US 12,489,696 US 12,645,636