IP Library › Granted Patent US 10,248,444
Granted Patent B2
US 10,248,444 · App. 14/230,838 · Granted Apr 2, 2019

Method of migrating virtual machines between non-uniform memory access nodes within an information handling system

Inventors: Kiran Kumar Devarapalli (Bangalore, IN); Krishnaprasad K (Bangalore, IN); Shiva Prasad Katta (Bangalore, IN)
Assignee: Dell Products, L.P.
G06F9/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,248,444
App. No.
14/230,838
Filed
Mar 31, 2014
Granted
Apr 2, 2019
Kind
B2
Examiner
LI, HEWY H
Art Unit
2136
USPC
711/162
Abstract

A method for allocating virtual machines (VMs) to run within a non-uniform memory access (NUMA) system includes a first processing node and a second processing node. A request is received at the first processing node for additional capacity for at least one of (a) establishing an additional VM and (b) increasing processing resources to an existing VM on the first processing node. In response to receiving the request, a migration manager identifies whether the first processing node has the additional capacity requested. In response to identifying that the first processing node does not have the additional capacity requested, at least one VM is selected from an ordered array of the multiple VMs executing on the first processing node. The selected VM has low processor and memory usage relative to the other VMs. The selected VM is migrated from the first processing node to the second processing node for execution.

Claims (73)

1. A computer implemented method for allocating virtual machines (VMs) to run within a non-uniform memory access system having at least a first processing node and a second processing node, the method comprising:

arranging multiple VMs into an ordered array of VMs based on relative percentages of utilization of memory resources, measured in cycles, by the individual VMs associated with the first processing node as a primary weighing factor utilized in ranking the VMs of the first processing node, and utilizing a utilization of processor resources as a secondary weighting factor, wherein arranging the multiple VMs include:

ranking the multiple VMs based on processor usage and memory usage, the memory usage including a second memory usage value from a second memory associated with the second processing node and wherein the second memory usage value is the amount of memory used by VMs executing on the first processing node; and

generating the ordered array of the multiple VMs executing on the first processing node based on the ranking;

receiving a request at the first processing node for additional capacity for establishing an additional VM on the first processing node having multiple VMs executing thereon;

in response to receiving the request, identifying whether the first processing node has the additional capacity requested;

in response to identifying that the first processing node does not have the additional capacity requested, selecting from the ordered array of the multiple VMs executing on the first processing node, at least one VM having low processor and memory usage relative to the other VMs to be re-assigned for execution from the first processing node to the second processing node;

migrating the at least one selected VM from the first processing node to the second processing node for execution; and

establishing the additional VM on the first processing node when the migrating of the at least one VM to the second processing node provides the additional capacity requested on the first processing node.

2. The method of claim 1 , further comprising:

generating a plurality of VMs to schedule for execution on at least one of the processing nodes;

initially assigning the multiple VMs to the first processing node for execution;

executing the multiple VMs on the first processing node; and

tracking processor and memory usage data for each of the VMs during execution on the first processing node.

3. The method of claim 2 , further comprising:

storing the ordered array of the multiple VMs to a memory device.

4. The method of claim 1 , further comprising:

triggering the at least one migrated VM to execute on the second processing node.

5. The method of claim 1 , wherein ranking the multiple VMs further comprises:

assigning a higher rank to VMs that are associated with the usage of lower amounts of processor and memory resources than VMs that are associated with the usage of higher amounts of processor and memory resources.

6. The method of claim 5 , wherein generating the ordered array of the multiple VMs further comprises:

ordering the highest ranking VMs first into the ordered array of VMs and the lowest ranking VMs last into the ordered array of VMs.

7. The method of claim 2 , wherein ranking the VMs is further based on:

a first memory usage value from a first memory associated with the first processing node; and

a percent usage value of the first memory and a processor usage value for a first processor associated with the first processing node.

8. A non-uniform memory access (NUMA) machine comprising:

a plurality of operatively-interconnected NUMA nodes, each of the NUMA nodes having at least one processor and at least one associated memory, the NUMA nodes communicatively coupled by a system interconnect fabric such that the processors of each of the NUMA nodes can access the memory of each of the other NUMA nodes, the NUMA nodes including a first NUMA node having a first processor and a first memory, the first processor having migration manager firmware executing thereon to manage the allocation of virtual machines (VMs) within the NUMA nodes, wherein the migration manager firmware configures the first processor to:

arrange multiple VMs into an ordered array of VMs based on relative percentages of utilization of memory resources, measured in cycles, by the individual VMs associated with the first processing node as a primary weighing factor utilized in ranking the VMs of the first processing node, and utilization of processor resources is utilized as a secondary weighting factor, wherein to arrange the multiple VMs the firmware configures the first processor to:

rank the multiple VMs based on processor usage and memory usage using at least a second memory usage value from a second memory associated with the second processing node and wherein the second memory usage value is the amount of memory used by the first processing node; and

generate the ordered array of the multiple VMs executing on the first NUMA node based on the ranking;

receive a request at the first NUMA node for additional capacity to support establishing an additional virtual machine (VM) on the first NUMA node having multiple VMs executing thereon;

in response to receiving the request, the migration manager identifies whether the first NUMA node has the additional capacity requested;

in response to identifying that the first NUMA node does not have the additional capacity requested, the migration manager selects, from the ordered array of the multiple VMs executing on the first NUMA node, at least one VM having low processor and memory usage relative to the other VMs to be re-assigned for execution from the first NUMA node to a second NUMA node;

migrate the at least one selected VM from the first NUMA node to the second NUMA node for execution; and

establish the additional VM on the first processing node when the migrating of the at least one VM to the second processing node provides the additional capacity requested on the first processing node.

9. The NUMA machine of claim 8 , wherein the firmware further configures the first processor to:

generate a plurality of VMs to schedule for execution on at least one of the NUMA nodes;

initially assign the multiple VMs to the first NUMA node for execution;

execute the multiple VMs on the first NUMA node; and

track processor and memory usage data for each of the VMs during execution on the first NUMA node.

10. The NUMA machine of claim 8 , wherein the firmware further configures the first processor to:

store the ordered array of the multiple VMs to a memory device.

11. The NUMA machine of claim 8 , wherein the firmware further configures the first processor to:

trigger the at least one migrated VM to execute on the second NUMA node.

12. The NUMA machine of claim 8 , wherein the firmware further configures the first processor to:

assign a higher rank to VMs that are associated with the usage of lower amounts of processor and memory resources than VMs that are associated with the usage of higher amounts of processor and memory resources.

13. The NUMA machine of claim 8 , wherein the firmware further configures the first processor to:

order the highest ranking VMs first into the ordered array of VMs and the lowest ranking VMs last into the ordered array of VMs.

14. An information handling system (IHS) comprising:

a first non-uniform memory access (NUMA) node and a second NUMA node, the first NUMA node having a first processor and a first memory, the second NUMA node having a second processor and a second memory;

a system interconnect fabric communicatively coupling the first NUMA node and the second NUMA node such that the processors of each of the NUMA nodes can access the memory of each of the other NUMA nodes;

the first processor having a migration manager firmware executing thereon to manage the allocation of virtual machines (VMs) within the NUMA nodes, and the migration manager firmware configures the first processor to:

arrange multiple VMs into an ordered array of VMs based on relative percentages of utilization of memory resources, measured in cycles, by the individual VMs associated with the first processing node as a primary weighing factor utilized in ranking the VMs of the first processing node, and utilization of processor resources is utilized as a secondary weighting factor, wherein to arrange the multiple VMs the firmware configures the first processor to:

rank the multiple VMs based on processor usage and memory usage using at least a second memory usage value from a second memory associated with the second processing node and wherein the second memory usage value is the amount of memory used by the first processing node; and

generate the ordered array of the multiple VMs executing on the first NUMA node based on the ranking;

receive a request at the first NUMA node for additional capacity for establishing an additional VM on the first NUMA node having multiple VMs executing thereon;

in response to receiving the request, identify whether the first NUMA node has the additional capacity requested;

in response to identifying that the first NUMA node does not have the additional capacity requested, select from the ordered array of the multiple VMs executing on the first NUMA node, at least one VM having low processor and memory usage relative to the other VMs to be re-assigned for execution from the first NUMA node to the second NUMA node;

migrate the at least one selected VM from the first NUMA node to the second NUMA node for execution; and

establish the additional VM on the first processing node when the migrating of the at least one VM to the second processing node provides the additional capacity requested on the first processing node.

15. The information handling system of claim 14 , wherein the firmware further configures the first processor to:

generate a plurality of VMs to schedule for execution on at least one of the NUMA nodes;

initially assign the multiple VMs to the first NUMA node for execution;

execute the multiple VMs on the first NUMA node; and

track processor and memory usage data for each of the VMs during execution on the first NUMA node.

16. The information handling system of claim 14 , wherein the firmware further configures the first processor to:

store the ordered array of the multiple VMs to a memory device.

17. The information handling system of claim 14 , wherein the firmware further configures the first processor to:

trigger the at least one migrated VM to execute on the second NUMA node.

18. The information handling system of claim 14 , wherein the firmware further configures the first processor to:

assign a higher rank to VMs that are associated with the usage of lower amounts of processor and memory resources than VMs that are associated with the usage of higher amounts of processor and memory resources.

19. The information handling system of claim 14 , wherein the firmware further configures the first processor to:

order the highest ranking VMs first into the ordered array of VMs and the lowest ranking VMs last into the ordered array of VMs.

Assignments (11)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0466) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 060753/0486 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 050724/0466 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2014
From: DEVARAPALLI, KIRAN KUMAR; K, KRISHNAPRASAD; KATTA, SHIVA PRASAD
To: DELL PRODUCTS L.P.
Reel/Frame 032564/0353 →
Continuity (1)
Related Publication 20150277779A1 · Oct 1, 2015