Cooperative application workload scheduling for a consolidated virtual environment
First Claim
1. A method for managing a cluster for a distributed computing application, the method comprising:
- receiving, from a user, an indication specifying a workload priority of an application workload for executing a distributed computing application relative to other workloads, wherein the other workloads are not for executing the distributed computing application in a virtualized computing system, wherein the distributed computing application includes a workload scheduler configured to distribute execution of the application workload to a plurality of virtual machines (VMs) allocated from a resource pool within the virtualized computing system;
modifying a resource control for the resource pool based on the workload priority;
responsive to determining that the workload priority indicates a higher priority for executing the distributed computing application relative to the other workloads, determining an amount of available computing resources comprised of resources not reserved by other workloads within the virtualized computing system;
responsive to determining that the workload priority does not indicate a higher priority for executing the distributed computing application relative to the other workloads, determining the amount of available computing resources comprised of inactive resources held by the other workloads within the virtualized computing system; and
modifying a first VM of the plurality of VMs to increase an amount of computing resources seen by the workload scheduler to be available for execution of the application workload based on the determined amount of available computing resources.
2 Assignments
0 Petitions
Accused Products
Abstract
Application resource scheduler module is provided to achieve cooperative application workload scheduling for a consolidated virtual environment. The application resource scheduler aids an application workload scheduler that is part of a distributed computing application, such as Hadoop, to achieve a specified relative priority of the application workload virtual machines to other virtual machines in the virtual environment. The application resource scheduler assists in achieving cooperative workload scheduling by revising the amount of resources that the application workload scheduler sees as available and by setting resource controls for the virtual machines of the distributed computing application to influence the resources the virtual machines receive from the underlying consolidated virtual environment.
-
Citations
19 Claims
-
1. A method for managing a cluster for a distributed computing application, the method comprising:
-
receiving, from a user, an indication specifying a workload priority of an application workload for executing a distributed computing application relative to other workloads, wherein the other workloads are not for executing the distributed computing application in a virtualized computing system, wherein the distributed computing application includes a workload scheduler configured to distribute execution of the application workload to a plurality of virtual machines (VMs) allocated from a resource pool within the virtualized computing system; modifying a resource control for the resource pool based on the workload priority; responsive to determining that the workload priority indicates a higher priority for executing the distributed computing application relative to the other workloads, determining an amount of available computing resources comprised of resources not reserved by other workloads within the virtualized computing system; responsive to determining that the workload priority does not indicate a higher priority for executing the distributed computing application relative to the other workloads, determining the amount of available computing resources comprised of inactive resources held by the other workloads within the virtualized computing system; and modifying a first VM of the plurality of VMs to increase an amount of computing resources seen by the workload scheduler to be available for execution of the application workload based on the determined amount of available computing resources. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A non-transitory computer-readable storage medium comprising instructions that, when executed in a computing device, manage a cluster for a distributed computing application by performing the steps of:
-
receiving, from a user, an indication specifying a workload priority of an application workload for executing a distributed computing application relative to other workloads, wherein the other workloads are not for executing the distributed computing application in a virtualized computing system, wherein the distributed computing application includes a workload scheduler configured to distribute execution of the application workload to a plurality of virtual machines (VMs) allocated from a resource pool within the virtualized computing system; modifying a resource control for the resource pool based on the workload priority; responsive to determining that the workload priority indicates a higher priority for executing the distributed computing application relative to the other workloads, determining an amount of available computing resources comprised of resources not reserved by other workloads within the virtualized computing system; responsive to determining that the workload priority does not indicate a higher priority for executing the distributed computing application relative to the other workloads, determining the amount of available computing resources comprised of inactive resources held by the other workloads within the virtualized computing system; and modifying a first VM of the plurality of VMs to increase an amount of computing resources seen by the workload scheduler to be available for execution of the application workload based on the determined amount of available computing resources. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A virtualized computing system for executing for executing a distributed computing application, the virtualized computing system comprising:
-
a plurality of hosts configured to execute a plurality of virtual machines (VMs), wherein the plurality of VMs are organized into a first resource pool designated for the distributed computing application; a workload scheduler configured to distribute execution of an application workload for executing the distributed computing application to a plurality of nodes, wherein the plurality of nodes are virtual machines allocated from the first resource pool, wherein the workload scheduler is not configured to be aware that the plurality of nodes are VMs; an application resource scheduler configured to perform an operation for managing a cluster for a distributed computing application, the operation comprising; receiving, from a user, an indication specifying a workload priority of the application workload relative to other workloads, wherein the other workloads are not for executing the distributed computing application in a virtualized computing system; modifying a resource control setting for the first resource pool based on the workload priority; determining an amount of available computing resources within the virtualized computing system; and modifying a first VM of the plurality of VMs to increase an amount of computing resources seen by the workload scheduler to be available for execution of the application workload based on the determined amount of available computing resources; wherein the operation comprising the step of determining an amount of available computing resources within the virtualized computing system further comprises; responsive to determining that the workload priority indicated a higher priority for executing the distributed computing application relative to the other workloads, determining an amount of available computing resources comprised of resources not reserved by other workloads within the virtualized computing system; and responsive to determining that the workload priority does not indicate a higher priority for executing the distributed computing application relative to the other workloads, determining the amount of available computing resources comprised of inactive resources held by the other workloads within the virtualized computing system. - View Dependent Claims (18, 19)
-
Specification