CONTROLLING NETWORK UTILIZATION
First Claim
1. A method of specifying and allocating network bandwidth for distributed applications executing in a network on virtual machines (VMs) executing on hosts in the network, the method comprising:
- storing application network specifications, each application network specification specifying network requirements of a distributed application having application elements executing on a plurality of the VMs on a plurality of the hosts;
monitoring network usage in the network;
based on the application network specifications and the monitoring, determining a network bandwidth requirement; and
satisfying the network bandwidth requirement by migrating one or more of the VMs in the network and/or by a hypervisor on one of the hosts increasing or decreasing network transmissions of a VM managed thereby.
2 Assignments
0 Petitions
Accused Products
Abstract
Network utilization of an arbitrary application is controlled by tracking network usage statistics of virtual machines (VMs), including at least VMs hosting parts of the application. For network utilization control, VMs serve as network proxies for elements of the application. A specification for a network requirement of the application is evaluated against the network usage statistics. When a network capacity requirement to/from/through an element of the application is not satisfied, one or more VMs are adapted to satisfy the requirement. For example, a VM may be migrated from a host or network location that has excess network bandwidth. Or, for example, network bandwidth availability for an under-requirement VM may be increased and bandwidth availability for a VM at an appropriate host or network location may be decreased. Thus, application-level communication path requirements may be satisfied using VM adaptations.
-
Citations
20 Claims
-
1. A method of specifying and allocating network bandwidth for distributed applications executing in a network on virtual machines (VMs) executing on hosts in the network, the method comprising:
-
storing application network specifications, each application network specification specifying network requirements of a distributed application having application elements executing on a plurality of the VMs on a plurality of the hosts; monitoring network usage in the network; based on the application network specifications and the monitoring, determining a network bandwidth requirement; and satisfying the network bandwidth requirement by migrating one or more of the VMs in the network and/or by a hypervisor on one of the hosts increasing or decreasing network transmissions of a VM managed thereby. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method of distributing network usage among a plurality of hosts hosting virtual machines (VMs) communicating via a network, wherein each host has a hypervisor that manages the VMs executing thereon, the method comprising:
-
accessing network information stored by one or more computers, the network information comprising information specifying network requirements of respective distributed applications running on the VMs, where each distributed application executes on a plurality of the VMs; and attempting to satisfy the network requirements of the applications by migrating VMs among the hosts or by the hypervisors increasing or decreasing network capacity available to the VMs that the hypervisors manage. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14)
-
-
15. One or more computer-readable storage media storing information to enable one or more devices to execute a network controller, the network controller, when executed, performing a process comprising:
-
accessing stored network statistics data comprising network usage statistics of individual VMs executing on hosts, the statistics including individual statistics of respective VMs executing elements of an application on the hosts; accessing a network specification for the application, the application comprised of the elements executing on VMs executing on the hosts, the network specification specifying a network requirement for an element of the application; and evaluating the network specification against the network statistics to identify one or more target VMs to receive a VM adaptation. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification