Provisioning virtual machine placement
AssigneeInternational Business Machines Corporation
InventorsJames J. Bozek, Bruce A. Smith, Edward S. Suffern, James L. Wooldridge
Life of this patent
Estimating the term…
Abstract
Virtual machines are provisioned computers in a computer environment based on input/output (I/O) requirements of software tasks. A workload request, requesting the execution of a software task on a virtual machine, is received. The I/O requirements of the software task are matched to an optimal computer, in the computer environment, that has an I/O bandwidth capability that best matches the I/O requirements of the software task. The software task is then routed to a virtual machine, on the optimal computer, for execution of the software task.
Claims17
A computer-implemented method of provisioning virtual machines in a computer chassis, the computer-implemented method comprising:
- receiving a workload request, wherein the workload request is a request for a virtual machine (VM) to execute a software task;
- determining a relative importance of an input/output (I/O) bandwidth requirement and a processing requirement of the software task;
- identifying an I/O bandwidth capability and a processing capability for each of multiple computers in a computer chassis;
- identifying a first optimal computer as having a highest I/O bandwidth capability due to having more I/O interfaces than any other computer in the computer chassis, wherein the first optimal computer has the I/O bandwidth capability that optimally matches the I/O bandwidth requirement of the software task over other computers in the computer chassis;
- identifying a second optimal computer as having a highest processing capability due to having more processors and more local storage drives than any other computer in the computer chassis, wherein the second optimal computer has the processing capability that optimally matches the processing requirement of the software task over other computers in the computer chassis;
- competing, by the first and second optimal computers, for a job to run the software task;
- in response to determining that the I/O bandwidth requirement of the software task is more important than the processing requirement of the software task, assigning execution of an I/O intensive application to at least one VM on the first optimal computer;
- and
- in response to determining that the processing requirement of the software task is more important than the I/O bandwidth requirement of the software task, assigning execution of a processing intensive application to at least one VM on the second optimal computer.
A computer program product comprising:
- a computer readable storage media;
- first program instructions to receive a workload request, wherein the workload request is a request for a virtual machine (VM) to execute a software task;
- second program instructions to determine a relative importance of an input/output (I/O) bandwidth requirement and a processing requirement of the software task;
- third program instructions to identify an I/O bandwidth capability and a processing capability for each of multiple computers in a computer chassis;
- fourth program instructions to identify a first optimal computer as having a highest I/O bandwidth capability due to having more I/O interfaces than any other computer in the computer chassis, wherein the first optimal computer has the I/O bandwidth capability that optimally matches the I/O bandwidth requirement of the software task over other computers in the computer chassis;
- fifth program instructions to identify a second optimal computer as having a highest processing capability due to having more processors and more local storage drives than any other computer in the computer chassis, wherein the second optimal computer has the processing capability that optimally matches the processing requirement of the software task over other computers in the computer chassis;
- sixth program instructions to compete for a job to run the software task by the first and second optimal computers;
- seventh program instructions to, in response to determining that the I/O bandwidth requirement of the software task is more important than the processing requirement of the software task, assign execution of an I/O intensive application to at least one VM on the first optimal computer;
- and
- eighth program instructions to, in response to determining that the processing requirement of the software task is more important than the I/O bandwidth requirement of the software task, assign execution of a processing intensive application to at least one VM on the second optimal computer;
- and wherein
- said first, second, third, fourth, fifth, sixth, seventh, and eighth program instructions are stored on said computer readable storage media.
A system comprising:
- a processor coupled to a memory, wherein the processor is programmed to provision virtual machines in a computer chassis by:
- receiving a workload request, wherein the workload request is a request for a virtual machine (VM) to execute a software task;
- determining a relative importance of an input/output (I/O) bandwidth requirement and a processing requirement of the software task;
- identifying an I/O bandwidth capability and a processing capability for each of multiple computers in a computer chassis;
- identifying a first optimal computer as having a highest I/O bandwidth capability due to having more I/O interfaces than any other computer in the computer chassis, wherein the first optimal computer has the I/O bandwidth capability that optimally matches the I/O bandwidth requirement of the software task over other computers in the computer chassis;
- identifying a second optimal computer as having a highest processing capability due to having more processors and more local storage drives than any other computer in the computer chassis, wherein the second optimal computer has the processing capability that optimally matches the processing requirement of the software task over other computers in the computer chassis;
- competing, by the first and second optimal computers, for a job to run the software task;
- in response to determining that the I/O bandwidth requirement of the software task is more important than the processing requirement of the software task, assigning execution of an I/O intensive application to at least one VM on the first optimal computer;
- and
- in response to determining that the processing requirement of the software task is more important than the I/O bandwidth requirement of the software task, assigning execution of a processing intensive application to at least one VM on the second optimal computer.
Dependencies are inferred from the claim text.