IP Library Granted Patent US 10,171,300
Granted Patent B2
US 10,171,300 · App. 14/929,531 · Granted Jan 1, 2019

Automatic redistribution of virtual machines as a growing neural gas

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,171,300
App. No.
14/929,531
Granted
Jan 1, 2019
Kind
B2
Abstract

A method and associated systems for automatic redistribution of virtual machines. A cloud-optimization module selects parameters, such as bandwidth requirements, that characterize an efficiency of a virtual network. It assigns weightings to these parameters based on relative importance of each parameter to the proper operation of the network, where the weightings may be determined as functions of captured network-performance statistics. The module translates the network's topology into a graph in which each node represents a network entity, such as a virtual machine or an application, and each edge represents a connection between two such entities. The module then uses a growing neural gas algorithm to revise the graph and the weightings, and translates the revised graph to a more optimal topology that has redistributed the network entities to operate more efficiently, as measured by the weighted parameters.

Claims (59)

1. A cloud-provisioning system comprising a processor, a memory coupled to the processor, a computer-readable hardware storage device coupled to the processor, a network monitor, and an interface to a network-administration mechanism, the storage device containing program code configured to be run by the processor via the memory to implement a method for automatic reprovisioning of virtual infrastructure components of a virtual network, the method comprising:

the cloud-provisioning system selecting a set of network parameters, wherein each parameter of the set of network parameters identifies one or more performance characteristics of the virtual network;

the cloud-provisioning system representing a current topology of the virtual network as a graph, wherein the graph represents a component of the virtual network as a node and a connection between two components of the virtual network as an edge connecting two nodes that represent the two components;

the cloud-provisioning system receiving via the network monitor information that identifies a set of network-utilization figures, wherein each figure of the set of network-utilization figures identifies an amount of network resources used by one component of the set of virtual components;

the cloud-provisioning system associating a weighting with each parameter of the set of network parameters as a function of the received network-utilization figures, wherein the associating comprises:

the cloud-provisioning system launching a growing neural gas algorithm in order to generate a new topology of the virtual network, wherein the new topology identifies a new set of connections between pairs of virtual infrastructure components of the set of virtual components and wherein the new topology provides optimized bandwidth utilization; and

the cloud-provisioning system optimizing the virtual network by provisioning and reprovisioning the pairs of virtual infrastructure components of the virtual network, as a function of the weighted parameters and the current utilization information, such that the virtual infrastructure components conform to the new topology.

2. The cloud-provisioning system of claim 1 , wherein each parameter of the set of network parameters is selected from a group comprising:

a ratio of: i) a number of TCP connections between a pair of virtual machines, and ii) a total number of TCP connections between a first virtual machine of the pair of virtual machines and all other virtual components of the virtual network,

a ratio of a virtual machine's current utilization relative to an amount of network data requested from the virtual machine,

an amount of bandwidth required by a pair of applications in order for the applications to communicate with each other over the virtual network, wherein at least one application of the pair of applications runs on the virtual network,

an amount of network utilization associated with each physical or logical location of a subset of the set of virtual components,

an amount of network utilization associated with each user of the virtual network, and

an amount of network utilization associated with a user of the virtual network.

3. The cloud-provisioning system of claim 1 , wherein the launching a growing neural gas algorithm comprises:

the cloud-provisioning system initializing a growing neural gas algorithm with values of each parameter of the set of network parameters; and

the cloud-provisioning system passing a mathematical representation of the graph to the growing neural gas algorithm.

4. The cloud provisioning system of claim 1 , wherein each node of the graph represents a network entity selected from the group consisting of: a virtual machine; a software application installed in the virtual network, and an other component of a virtual infrastructure.

5. The cloud-provisioning system of claim 1 , wherein the received information received via the network monitor comprises a log of network utilization statistics associated with one or more components of the virtual network.

6. The cloud-provisioning system of claim 1 , wherein the topology of the virtual network organizes the set of virtual components of the virtual network into a hierarchical structure of one or more regions that each comprise one or more locations of a set of locations, wherein each location of the set of locations comprises one or more points of delivery of a set of points of delivery, and wherein each point of delivery of the set of points of delivery comprises one or more virtual components of the set of virtual components.

7. A method for automatic reprovisioning of virtual infrastructure components of a virtual network, the method comprising:

a cloud-provisioning system selecting a set of network parameters, wherein each parameter of the set of network parameters identifies one or more performance characteristics of the virtual network;

the cloud-provisioning system representing a current topolog of the virtual network as a graph, wherein the graph represents a component of the virtual network as a node and a connection between two components of the virtual network as an edge connecting two nodes that represent the two components;

the cloud-provisioning system receiving via the network monitor information that identifies a set of network-utilization figures, wherein each figure of the set of network-utilization figures identifies an amount of network resources used by one component of the set of virtual components;

the cloud-provisioning system associating a weighting with each parameter of the set of network parameters as a function of the received network-utilization figures, wherein the associating comprises:

the cloud-provisioning system launching a growing neural gas algorithm in order to generate a new topology of the virtual network, wherein the new topology identifies a new set of connections between pairs of virtual infrastructure components of the set of virtual components and wherein the new topology provides optimized bandwidth utilization; and

the cloud-provisioning system optimizing the virtual network by provisioning and reprovisioning the pairs of virtual infrastructure components of the virtual network, as a function of the weighted parameters and the current utilization information, such that the virtual infrastructure components conform to the new topology.

8. The method of claim 7 , wherein each parameter of the set of network parameters is selected from a group comprising:

a ratio of: i) a number of TCP connections between a pair of virtual machines, and ii) a total number of TCP connections between a first virtual machine of the pair of virtual machines and all other virtual components of the virtual network,

a ratio of a virtual machine's current utilization relative to an amount of network data requested from the virtual machine,

an amount of bandwidth required by a pair of applications in order for the applications to communicate with each other over the virtual network, wherein at least one application of the pair of applications runs on the virtual network,

an amount of network utilization associated with each physical or logical location of a subset of the set of virtual components,

an amount of network utilization associated with each user of the virtual network, and

an amount of network utilization associated with a user of the virtual network.

9. The method of claim 7 , wherein the launching a growing neural gas algorithm comprises:

the cloud-provisioning system initializing a growing neural gas algorithm with values of each parameter of the set of network parameters; and

the cloud-provisioning system passing a mathematical representation of the graph to the growing neural gas algorithm.

10. The method of claim 7 , wherein each node of the graph represents a network entity selected from the group consisting of: a virtual machine, a software application installed in the virtual network, and an other component of a virtual infrastructure.

11. The method of claim 7 , wherein the received information received via the network monitor comprises a log of network utilization statistics associated with one or more components of the virtual network.

12. The method of claim 7 , wherein the topology of the virtual network organizes the set of virtual components of the virtual network into a hierarchical structure of one or more regions that each comprise one or more locations of a set of locations, wherein each location of the set of locations comprises one or more points of delivery of a set of points of delivery, and wherein each point of delivery of the set of points of delivery comprises one or more virtual components of the set of virtual components.

13. The method of claim 7 , further comprising providing at least one support service for at least one of creating, integrating, hosting, maintaining, and deploying computer-readable program code in the computer system, wherein the computer-readable program code in combination with the computer system is configured to implement the selecting, representing, receiving, associating, launching, and optimizing.

14. A computer program product, comprising a computer-readable hardware storage device having a computer-readable program code stored therein, the program code configured to be executed by a cloud-optimization module comprising a processor, a memory coupled to the processor, a computer-readable hardware storage device coupled to the processor, a network monitor, and an interface to a network-administration mechanism, the storage device containing program code configured to be run by the processor via the memory to implement a method for automatic reprovisioning of virtual infrastructure components of a virtual network, the method comprising:

a cloud-provisioning system selecting a set of network parameters, wherein each parameter of the set of network parameters identifies one or more performance characteristics of the virtual network;

the cloud-provisioning system representing a current topology of the virtual network as a graph, wherein the graph represents a component of the virtual network as a node and a connection between two components of the virtual network as an edge connecting two nodes that represent the two components;

the cloud-provisioning system receiving via the network monitor information that identifies a set of network-utilization figures, wherein each figure of the set of network-utilization figures identifies an amount of network resources used by one component of the set of virtual components;

the cloud-provisioning system associating a weighting with each parameter of the set of network parameters as a function of the received network-utilization figures, wherein the associating comprises:

the cloud-provisioning system launching a growing neural gas algorithm in order to generate a new topology of the virtual network, wherein the new topology identities a new set of connections between pairs of virtual infrastructure components of the set of virtual components and wherein the new topology provides optimized bandwidth utilization; and

the cloud-provisioning system optimizing the virtual network b provisioning and reprovisioning the pairs of virtual infrastructure components of the virtual network, as a function of the weighted parameters and the current utilization information, such that the virtual infrastructure components conform to the new topology.

15. The computer program product of claim 14 , wherein each parameter of the set of network parameters is selected from a group comprising:

a ratio of: i) a number of TCP connections between a pair of virtual machines, and ii) a total number of TCP connections between a first virtual machine of the pair of virtual machines and all other virtual components of the virtual network,

a ratio of a virtual machine's current utilization relative to an amount of network data requested from the virtual machine,

an amount of bandwidth required by a pair of applications in order for the applications to communicate with each other over the virtual network, wherein at least one application of the pair of applications runs on the virtual network,

an amount of network utilization associated with each physical or logical location of a subset of the set of virtual components,

an amount of network utilization associated with each user of the virtual network, and

an amount of network utilization associated with a user of the virtual network;

and wherein wherein the launching a growing neural gas algorithm comprises:

the processor initializing a growing neural gas algorithm with values of each parameter of the set of network parameters; and

the processor passing a mathematical representation of the graph to the growing neural gas algorithm.

16. The computer program product of claim 14 , wherein the received information received via the network monitor comprises a log of network utilization statistics associated with one or more components of the virtual network.

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 Nov 2, 2015
From: EGGEN, BERTUS; HOLLINGSWORTH, JOHN F.; MANDALIA, BAIJU D.; TETLOW, PHILIP D.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 036933/0103 →