IP Library Granted Patent US 10,558,483
Granted Patent B2
US 10,558,483 · App. 15/493,034 · Granted Feb 11, 2020

Optimal dynamic placement of virtual machines in geographically distributed cloud data centers

Inventors: Ali Balma (Tunis, TN); Nejib Ben Hadj-Alouane (Tunis, TN); Aly Megahed (San Jose, CA); Mohamed Mohamed (San Jose, CA); Samir Tata (Cupertino, CA); Hana Teyeb (Tunis, TN)
Assignee: International Business Machines Corporation
G06F9/45558G06F2009/4557G06F2009/45595
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,558,483
App. No.
15/493,034
Granted
Feb 11, 2020
Kind
B2
Abstract

A computer-implemented method according to one embodiment includes identifying a set of virtual machines to be placed within a system, receiving characteristics associated with the set of virtual machines, determining characteristics associated with a current state of the system, determining a placement of the set of virtual machines within the system, based on the characteristics associated with the set of virtual machines and the characteristics associated with a current state of the system, determining an updated placement of all virtual machines currently placed within the system, based on the characteristics associated with the set of virtual machines and the characteristics associated with a current state of the system, and determining a migration sequence within the system in order to implement the updated placement of all virtual machines currently placed within the system.

Claims (62)

1. A computer-implemented method, comprising:

identifying a set of virtual machines to be placed within a system, the system including a cloud-based storage network including a plurality of data centers that are each located in different geographical locations and that are connected utilizing a backbone network;

receiving characteristics associated with the set of virtual machines, the characteristics including:

resource utilization for the set of virtual machines, the resource utilization including central processing unit (CPU) utilization for each virtual machine of the set of virtual machines, random access memory (RAM) utilization for each virtual machine of the set of virtual machines, storage utilization for each virtual machine of the set of virtual machines, and network utilization for each virtual machine of the set of virtual machines,

a maximum latency allowed by each of the set of virtual machines,

limitations on a physical location where each of the set of virtual machines may be physically stored, and

a traffic matrix describing network traffic that occurs between each virtual machine within the set of virtual machines;

determining characteristics associated with a current state of the system, the characteristics including:

a capacity of each of the plurality of data centers within the system, including a listing of available CPU resources, RAM resources, and storage resources at each of the plurality of data centers within the system,

a current utilization of the capacity of each of the plurality of data centers by virtual machines currently placed within the system,

a current placement within one or more data centers of the virtual machines currently placed within the system,

a global traffic matrix describing network traffic that occurs between all the virtual machines currently placed within the system;

determining a placement of the set of virtual machines within the system, based on the characteristics associated with the set of virtual machines and the characteristics associated with a current state of the system, where the placement includes a location within the system where each of the set of virtual machines is to be placed that minimizes an amount of communication traffic on the backbone network, while still enabling the characteristics associated with the set of virtual machines;

determining an updated placement of all virtual machines currently placed within the system, based on the characteristics associated with the set of virtual machines and the characteristics associated with a current state of the system;

determining a migration sequence within the system in order to implement the updated placement of all virtual machines currently placed within the system, where the migration sequence is determined utilizing a linear optimization model and indicates an order of movements of all virtual machines currently placed within the system from one data center within the system to another data center within the system that minimizes communication traffic within the backbone network while implementing the updated placement of all virtual machines currently placed within the system; and

implementing the updated placement, utilizing the migration sequence.

2. The computer-implemented method of claim 1 , wherein the linear optimization model includes a path for a flow between each virtual machine,

where a total network traffic includes a sum of products of amounts of flow between each pair of virtual machines by lengths of each path expressed in a number of hops, and

a minimum value of total traffic is obtained by finding a Hamiltonian cycle of minimum value spanning all virtual machines to be migrated.

3. The computer-implemented method of claim 1 , wherein the migration sequence is implemented using migration mechanisms provided by an infrastructure as a service (IaaS) manager.

4. The computer-implemented method of claim 1 , wherein the placement of the set of virtual machines within the system, the updated placement of all virtual machines currently placed within the system, and the migration sequence are all determined simultaneously.

5. The computer-implemented method of claim 1 , wherein the placement of the set of virtual machines within the system and the updated placement of all virtual machines currently placed within the system are optimized utilizing one or more optimization models.

6. The computer-implemented method of claim 1 , wherein the placement of the set of virtual machines within the system is performed using an infrastructure as a service (IaaS) manager application program interface (API).

7. The computer-implemented method of claim 1 , wherein the system includes an infrastructure as a system (IaaS) that provides virtualized computing resources.

8. A computer program product for optimal dynamic virtual machine placement in geographically distributed cloud data centers, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, wherein the computer readable storage medium is not a transitory signal per se, the program instructions executable by a processor to cause the processor to perform a method comprising:

identifying a set of virtual machines to be placed within a system, utilizing the processor the system including a cloud-based storage network including a plurality of data centers that are each located in different geographical locations and that are connected utilizing a backbone network;

receiving characteristics associated with the set of virtual machines, utilizing the processor, the characteristics including:

resource utilization for the set of virtual machines, the resource utilization including central processing unit (CPU) utilization for each virtual machine of the set of virtual machines, random access memory (RAM) utilization for each virtual machine of the set of virtual machines, storage utilization for each virtual machine of the set of virtual machines, and network utilization for each virtual machine of the set of virtual machines,

a maximum latency allowed by each of the set of virtual machines,

limitations on a physical location where each of the set of virtual machines may be physically stored, and

a traffic matrix describing network traffic that occurs between each virtual machine within the set of virtual machines;

determining characteristics associated with a current state of the system, utilizing the processor, the characteristics including:

a capacity of each of the plurality of data centers within the system, including a listing of available CPU resources, RAM resources, and storage resources at each of the plurality of data centers within the system,

a current utilization of the capacity of each of the plurality of data centers by virtual machines currently placed within the system,

a current placement within one or more data centers of the virtual machines currently placed within the system,

a global traffic matrix describing network traffic that occurs between all the virtual machines currently placed within the system;

determining a placement of the set of virtual machines within the system, based on the characteristics associated with the set of virtual machines and the characteristics associated with a current state of the system, utilizing the processor, where the placement includes a location within the system where each of the set of virtual machines is to be placed that minimizes an amount of communication traffic on the backbone network, while still enabling the characteristics associated with the set of virtual machines;

determining an updated placement of all virtual machines currently placed within the system, based on the characteristics associated with the set of virtual machines and the characteristics associated with a current state of the system, utilizing the processor;

determining a migration sequence within the system in order to implement the updated placement of all virtual machines currently placed within the system, utilizing the processor where the migration sequence is determined utilizing a linear optimization model and indicates an order of movements of all virtual machines currently placed within the system from one data center within the system to another data center within the system that minimizes communication traffic within the backbone network while implementing the updated placement of all virtual machines currently placed within the system; and

implementing, utilizing the processor, the updated placement, utilizing the migration sequence.

9. The computer program product of claim 8 , wherein the migration sequence is implemented using migration mechanisms provided by an infrastructure as a service (IaaS) manager.

10. The computer program product of claim 8 , wherein the placement of the set of virtual machines within the system, the updated placement of all virtual machines currently placed within the system, and the migration sequence are all determined simultaneously, utilizing the processor.

11. The computer program product of claim 8 , wherein the placement of the set of virtual machines within the system and the updated placement of all virtual machines currently placed within the system are optimized utilizing one or more optimization models.

12. The computer program product of claim 8 , wherein the placement of the set of virtual machines within the system is performed using an infrastructure as a service (IaaS) manager application program interface (API).

13. A system, comprising:

a processor; and

logic integrated with the processor, executable by the processor, or integrated with and executable by the processor, the logic being configured to:

identify a set of virtual machines to be placed within a system, the system including a cloud-based storage network including a plurality of data centers that are each located in different geographical locations and that are connected utilizing a backbone network;

receive characteristics associated with the set of virtual machines, the characteristics including:

resource utilization for the set of virtual machines, the resource utilization including central processing unit (CPU) utilization for each virtual machine of the set of virtual machines, random access memory (RAM) utilization for each virtual machine of the set of virtual machines, storage utilization for each virtual machine of the set of virtual machines, and network utilization for each virtual machine of the set of virtual machines,

a maximum latency allowed by each of the set of virtual machines,

limitations on a physical location where each of the set of virtual machines may be physically stored, and

a traffic matrix describing network traffic that occurs between each virtual machine within the set of virtual machines;

determine characteristics associated with a current state of the system, the characteristics including:

a capacity of each of the plurality of data centers within the system, including a listing of available CPU resources, RAM resources, and storage resources at each of the plurality of data centers within the system,

a current utilization of the capacity of each of the plurality of data centers by virtual machines currently placed within the system,

a current placement within one or more data centers of the virtual machines currently placed within the system,

a global traffic matrix describing network traffic that occurs between all the virtual machines currently placed within the system;

determine a placement of the set of virtual machines within the system, based on the characteristics associated with the set of virtual machines and the characteristics associated with a current state of the system, where the placement includes a location within the system where each of the set of virtual machines is to be placed that minimizes an amount of communication traffic on the backbone network, while still enabling the characteristics associated with the set of virtual machines;

determine an updated placement of all virtual machines currently placed within the system, based on the characteristics associated with the set of virtual machines and the characteristics associated with a current state of the system;

determine a migration sequence within the system in order to implement the updated placement of all virtual machines currently placed within the system, where the migration sequence is determined utilizing a linear optimization model and indicates an order of movements of all virtual machines currently placed within the system from one data center within the system to another data center within the system that minimizes communication traffic within the backbone network while implementing the updated placement of all virtual machines currently placed within the system; and

implement the updated placement, utilizing the migration sequence.

Assignments (3)
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 Oct 4, 2017
From: BALMA, ALI; HADJ-ALOUANE, NEJIB BEN; TEYEB, HANA
To: UNIVERSITY OF TUNIS EL-MANAR
Reel/Frame 044126/0786 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 28, 2017
From: MEGAHED, ALY; MOHAMED, MOHAMED; TATA, SAMIR
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 042181/0349 →
Continuity (1)
Related Publication 20180307512A1 · Oct 25, 2018