IP Library › Granted Patent US 10,303,500
Granted Patent B2
US 10,303,500 · App. 15/646,415 · Granted May 28, 2019

Deploying a virtual machine in a computing environment

Inventors: Li Long Chen (Beijing, CN); Randy A. Rendahl (Raleigh, NC); Xiao Yang Zhu (Beijing, CN); Lin Zhi Zou (Beijing, CN)
Assignee: International Business Machines Corporation
G06F9/45533G06F9/45558G06F2009/4557
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 10,303,500
App. No.
15/646,415
Granted
May 28, 2019
Kind
B2
Abstract

A method and associated system. In response to a request to deploy a virtual machine in a computing environment, a virtual machine resource usage pattern having attributes matching a subset of attributes in than ordered sequence of attributes is selected from at least one virtual machine resource usage pattern stored in a virtual machine resource usage pattern library, based on an ordering of the attributes in the ordered sequence of attributes, wherein the virtual machine resource usage pattern library stores usage patterns for virtual machines previously deployed. A node on which the virtual machine is to be deployed is selected, based on the selected virtual machine resource usage pattern and predicted runtime resource requirements of the virtual machine to be deployed based on historical running data of virtual machines. The virtual machine is configured for being deployed on the selected node. The virtual machine is deployed on the selected node.

Claims (44)

1. A method, said method comprising:

in response to a request to deploy a virtual machine in a computing environment wherein the request identifies an ordered sequence of attributes that the virtual machine to be deployed comprises, one or more processors of a computer system selecting, from at least one virtual machine resource usage pattern stored in a virtual machine resource usage pattern library, a virtual machine resource usage pattern having attributes matching a subset of attributes in the ordered sequence of attributes, said selecting the virtual machine resource usage pattern based on an ordering of the attributes in the ordered sequence of attributes, wherein the virtual machine resource usage pattern library stores usage patterns for virtual machines previously deployed;

said one or more processors selecting, from a plurality of nodes in the computing environment, a node on which the virtual machine is to be deployed, said selecting the node based on the selected virtual machine resource usage pattern and predicted runtime resource requirements of the virtual machine to be deployed based on historical running data of a plurality of virtual machines;

said one or more processors configuring the virtual machine for being deployed on the selected node; and

said one or more processors deploying the virtual machine on the selected node.

2. The method of claim 1 , wherein the at least one virtual machine resource usage pattern is a plurality of virtual machine resource usage patterns, wherein the attributes in the ordered sequence of attributes are denoted and sequenced as A 1 , A 2 , . . . , A N , wherein N is at least 2, and wherein said selecting the virtual machine resource usage pattern comprises:

determining a maximum value of M in a range of 1 to N for which a condition is satisfied, wherein the condition is that one or more virtual machine resource usage patterns of the plurality of virtual machine resource usage patterns match A 1 , A 2 , . . . , A M .

3. The method of claim 2 , wherein said determining the maximum value of M comprises initially setting M=N and subsequently iteratively looping through the ordered sequence of attributes from A M to A 1 to determine for each iteration of said looping whether the condition is satisfied, and if so then terminating said looping with a final value of M having been determined, and if not then decrementing M by 1 and performing a next iteration of said looping.

4. The method of claim 1 , said method further comprising:

said one or more processors updating the selected virtual machine resource usage by using resource usage information of the virtual machine deployed on the selected node at runtime.

5. The method of claim 1 , wherein said selecting the node comprises:

predicting the runtime resource requirements of the virtual machine to be deployed, wherein said predicting is based on the historical running data of the plurality of virtual machines, at the plurality of nodes, which have been previously deployed in the computing environment and which comprise the selected virtual machine resource usage pattern; and

selecting the node on which the virtual machine is to be deployed as one node of the plurality of nodes having available resources exceeding the predicted runtime resource requirements of the virtual machine to be deployed.

6. The method of claim 5 , wherein the historical running data of the plurality of virtual machines comprises amounts of specified resources previously consumed at runtime by each virtual machine of the plurality of virtual machines.

7. The method of claim 6 , wherein said predicting is based on an average of the amounts of each specified resource previously consumed at runtime by each virtual machine of plurality of virtual machines.

8. A computer program product, comprising one or more computer readable hardware storage devices having computer readable program code stored therein, said program code containing instructions executable by one or more processors of a computer system to implement a method, said method comprising:

in response to a request to deploy a virtual machine in a computing environment wherein the request identifies an ordered sequence of attributes that the virtual machine to be deployed comprises, said one or more processors selecting, from at least one virtual machine resource usage pattern stored in a virtual machine resource usage pattern library, a virtual machine resource usage pattern having attributes matching a subset of attributes in the ordered sequence of attributes, said selecting the virtual machine resource usage pattern based on an ordering of the attributes in the ordered sequence of attributes, wherein the virtual machine resource usage pattern library stores usage patterns for virtual machines previously deployed;

said one or more processors selecting, from a plurality of nodes in the computing environment, a node on which the virtual machine is to be deployed, said selecting the node based on the selected virtual machine resource usage pattern and predicted runtime resource requirements of the virtual machine to be deployed based on historical running data of a plurality of virtual machines;

said one or more processors configuring the virtual machine for being deployed on the selected node; and

said one or more processors deploying the virtual machine on the selected node.

9. The computer program product of claim 8 , wherein the at least one virtual machine resource usage pattern is a plurality of virtual machine resource usage patterns, wherein the attributes in the ordered sequence of attributes are denoted and sequenced as A 1 , A 2 , . . . , A N , wherein N is at least 2, and wherein said selecting the virtual machine resource usage pattern comprises:

determining a maximum value of M in a range of 1 to N for which a condition is satisfied, wherein the condition is that one or more virtual machine resource usage patterns of the plurality of virtual machine resource usage patterns match A 1 , A 2 , . . . , A M .

10. The computer program product of claim 9 , wherein said determining the maximum value of M comprises initially setting M=N and subsequently iteratively looping through the ordered sequence of attributes from A M to A 1 to determine for each iteration of said looping whether the condition is satisfied, and if so then terminating said looping with a final value of M having been determined, and if not then decrementing M by 1 and performing a next iteration of said looping.

11. The computer program product of claim 8 , said method further comprising:

said one or more processors updating the selected virtual machine resource usage by using resource usage information of the virtual machine deployed on the selected node at runtime.

12. The computer program product of claim 8 , wherein said selecting the node comprises:

predicting the runtime resource requirements of the virtual machine to be deployed, wherein said predicting is based on the historical running data of the plurality of virtual machines, at the plurality of nodes, which have been previously deployed in the computing environment and which comprise the selected virtual machine resource usage pattern; and

selecting the node on which the virtual machine is to be deployed as one node of the plurality of nodes having available resources exceeding the predicted runtime resource requirements of the virtual machine to be deployed.

13. The computer program product of claim 12 , wherein the historical running data of the plurality of virtual machines comprises amounts of specified resources previously consumed at runtime by each virtual machine of the plurality of virtual machines.

14. The computer program product of claim 13 , wherein said predicting is based on an average of the amounts of each specified resource previously consumed at runtime by each virtual machine of plurality of virtual machines.

15. A computer system, comprising one or more processors, one or more memories, and one or more computer readable hardware storage devices, said one or more hardware storage devices containing program code executable by the one or more processors via the one or more memories to implement a method, said method comprising:

in response to a request to deploy a virtual machine in a computing environment wherein the request identifies an ordered sequence of attributes that the virtual machine to be deployed comprises, said one or more processors selecting, from at least one virtual machine resource usage pattern stored in a virtual machine resource usage pattern library, a virtual machine resource usage pattern having attributes matching a subset of attributes in the ordered sequence of attributes, said selecting the virtual machine resource usage pattern based on an ordering of the attributes in the ordered sequence of attributes, wherein the virtual machine resource usage pattern library stores usage patterns for virtual machines previously deployed;

said one or more processors selecting, from a plurality of nodes in the computing environment, a node on which the virtual machine is to be deployed, said selecting the node based on the selected virtual machine resource usage pattern and predicted runtime resource requirements of the virtual machine to be deployed based on historical running data of a plurality of virtual machines;

said one or more processors configuring the virtual machine for being deployed on the selected node; and

said one or more processors deploying the virtual machine on the selected node.

16. The computer system of claim 15 , wherein the at least one virtual machine resource usage pattern is a plurality of virtual machine resource usage patterns, wherein the attributes in the ordered sequence of attributes are denoted and sequenced as A 1 , A 2 , . . . , A N , wherein N is at least 2, and wherein said selecting the virtual machine resource usage pattern comprises:

determining a maximum value of M in a range of 1 to N for which a condition is satisfied, wherein the condition is that one or more virtual machine resource usage patterns of the plurality of virtual machine resource usage patterns match A 1 , A 2 , . . . , A M .

17. The computer system of claim 16 , wherein said determining the maximum value of M comprises initially setting M=N and subsequently iteratively looping through the ordered sequence of attributes from A M to A 1 to determine for each iteration of said looping whether the condition is satisfied, and if so then terminating said looping with a final value of M having been determined, and if not then decrementing M by 1 and performing a next iteration of said looping.

18. The computer system of claim 15 , said method further comprising:

said one or more processors updating the selected virtual machine resource usage by using resource usage information of the virtual machine deployed on the selected node at runtime.

19. The computer system of claim 15 , wherein said selecting the node comprises:

predicting the runtime resource requirements of the virtual machine to be deployed, wherein said predicting is based on the historical running data of the plurality of virtual machines, at the plurality of nodes, which have been previously deployed in the computing environment and which comprise the selected virtual machine resource usage pattern; and

selecting the node on which the virtual machine is to be deployed as one node of the plurality of nodes having available resources exceeding the predicted runtime resource requirements of the virtual machine to be deployed.

20. The computer system of claim 19 , wherein the historical running data of the plurality of virtual machines comprises amounts of specified resources previously consumed at runtime by each virtual machine of the plurality of virtual machines.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 13, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: KYNDRYL, INC.
Reel/Frame 057885/0644 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 11, 2017
From: CHEN, LI LONG; RENDAHL, RANDY A.; ZHU, XIAO YANG; ZOU, LIN ZHI
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 042970/0493 →
Priority Claims (1)
CN 2013 1 0376402 · Aug 26, 2013 · national
Continuity (2)
Continuation 14904970
Related Publication 20170308393A1 · Oct 26, 2017