IP Library Granted Patent US 8,825,863
Granted Patent B2
US 8,825,863 · App. 13/236,731 · Granted Sep 2, 2014

Virtual machine placement within a server farm

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 8,825,863
App. No.
13/236,731
Granted
Sep 2, 2014
Kind
B2
Abstract

Disclosed herein are methods, systems, and computer program products for the placement of a virtual machine within a plurality of cache-coherent NUMA servers. According to an aspect, an example method includes determining a resource requirement of the virtual machine. The example method may also include determining a resource availability of one or more nodes of the plurality of servers. Further, the example method may include selecting placement of the virtual machine within one or more nodes of the plurality of cache-coherent NUMA servers based on the determined resource requirement and the determined resource availability.

Claims (43)

1. A method for placement of a virtual machine within a plurality of servers, the method comprising:

using at least a processor and memory for:

determining a memory requirement of the virtual machine;

determining a memory availability of one or more nodes of each of the servers, each node having a processor and memory accessible by the respective processor;

determining a first node set with available memory and a second node set with available memory that are within different servers and that each meet the memory requirement of the virtual machine;

determining which of the first and second node sets has the least number of nodes with available memory; and

placing the virtual machine within the one of the first and second node sets that has the least number of available nodes.

2. The method of claim 1 , wherein determining the memory availability comprises determining an amount of memory available within at least one of the one or more nodes of the plurality of servers.

3. The method of claim 1 , wherein placing the virtual machine comprises placing the virtual machine within a single physical server among the plurality of servers.

4. The method of claim 1 , wherein determining the memory availability comprises determining the memory availability based on a uniform memory access availability.

5. The method of claim 1 , wherein the plurality of servers comprises a plurality of non-uniform memory access servers.

6. The method of claim 5 , wherein the plurality of non-uniform memory access servers are configured to operate in a server farm.

7. The method of claim 5 , wherein the plurality of non-uniform memory access servers are configured to utilize a cache coherent interconnect.

8. The method of claim 1 , further comprising using the at least one processor and memory for selecting the virtual machine for migration.

9. The method of claim 8 , further comprising using the at least one processor and memory for migrating the virtual machine from a first server of the plurality of servers to a second server of the plurality of servers.

10. The method of claim 8 , further comprising using the at least one processor and memory for generating a list of candidate servers of the plurality of servers for placement of the virtual machine.

11. The method of claim 10 , wherein placing the virtual machine comprises migrating the virtual machine from a first server of the plurality of servers to a second server among the list of candidate servers based on the determined memory requirement and the determined memory availability.

12. A system for placement of a virtual machine within a plurality of servers, the system comprising:

a virtual machine placement manager comprising a processor and memory and configured to execute and respond to placement requests; and

a resource manager comprising a processor and memory and configured to:

determine a memory requirement of the virtual machine;

determine a memory availability of one or more nodes of each of the servers, each node having a processor and memory accessible by the respective processor;

determine a first node set with available memory and a second node set with available memory that are within different servers and that each meet the memory requirement of the virtual machine;

determine which of the first and second node sets has the least number of nodes with available memory; and

place the virtual machine within the one of the first and second node sets that has the least number of available nodes.

13. The system of claim 12 , wherein the resource manager is configured to place the virtual machine within a single physical server among the plurality of servers.

14. The system of claim 12 , wherein the resource manager is configured to determine the memory availability based on a uniform memory access availability.

15. The system of claim 12 , wherein the plurality of servers comprises a plurality of non-uniform memory access servers.

16. The system of claim 12 , wherein the plurality of non-uniform memory access servers are configured to utilize a cache coherent interconnect.

17. The system of claim 12 , wherein the resource manager is configured to: select the virtual machine for migration; and

migrate the virtual machine from a first server of the plurality of servers to a second server of the plurality of servers.

18. The system of claim 12 , wherein the resource manager is configured to:

select the virtual machine for migration;

generate a list of candidate servers of the plurality of servers for placement of the virtual machine; and

migrate the virtual machine from a first server of the plurality of servers to a second server among the list of candidate servers based on the determined memory requirement and the determined memory availability.

19. A computer program product for placement of a virtual machine within a plurality of servers, said computer program product comprising:

a computer readable non-transitory storage medium having computer readable program code embodied therewith, the computer readable program code comprising:

computer readable program code configured to:

determine a memory requirement of the virtual machine;

determine a memory availability of one or more nodes of each of the servers, each node having a processor and memory accessible by the respective processor;

determine a first node set with available memory and a second node set with available memory that are within different servers and that each meet the memory requirement of the virtual machine;

determine which of the first and second node sets has the least number of nodes with available memory; and

place the virtual machine within the one of the first and second node sets that has the least number of available nodes.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2014
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: LENOVO INTERNATIONAL LIMITED
Reel/Frame 034194/0291 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 20, 2011
From: HANSSON, NILS PETER JOACHIM; SUFFERN, EDWARD S.; WOOLDRIDGE, JAMES L.; YOU, BRIAN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 026931/0961 →