Version 3 of Network I/O Control lets you configure bandwidth requirements for individual virtual machines. You can also use network resource pools where you can assign a bandwidth quota from the aggregated reservation for the virtual machine traffic and then allocate bandwidth from the pool to individual virtual machines.

How to Allocate Bandwidth for Virtual Machines

Network I/O Control allocates bandwidth for virtual machines by using two models: allocation across the entire vSphere Distributed Switch based on network resource pools and allocation on the physical adapter that carries the traffic of a virtual machine.

Network Resource Pools

A network resource pool represents a part of the aggregated bandwidth that is reserved for the virtual machine system traffic on all physical adapters connected to the distributed switch.

For example, if the virtual machine system traffic has 0.5 Gbps reserved on each 10 GbE uplink on a distributed switch that has 10 uplinks, then the total aggregated bandwidth available for VM reservation on this switch is 5 Gbps. Each network resource pool can reserve a quota of this 5 Gbps capacity.

The bandwidth quota that is dedicated to a network resource pool is shared among the distributed port groups associated with the pool. A virtual machine receives bandwidth from the pool through the distributed port group the VM is connected to.

By default, distributed port groups on the switch are assigned to a network resource pool, called default, whose quota is not configured.

Figure 1. Bandwidth Aggregation for Network Resource Pools Across the Uplinks of a vSphere Distributed Switch

Bandwidth aggregation for network resource pools across the uplinks of a vSphere Distributed Switch

Defining Bandwidth Requirements for a Virtual Machine

You allocate bandwidth to an individual virtual machine similarly to allocating CPU and memory resources. Network I/O Control version 3 provisions bandwidth to a virtual machine according to shares, reservation, and limits that are defined for a network adapter in the VM hardware settings. The reservation represents a guarantee that the traffic from the virtual machine can consume at least the specified bandwidth. If a physical adapter has more capacity, the virtual machine may use additional bandwidth according to the specified shares and limit.

Bandwidth Provisioning to a Virtual Machine on the Host

To guarantee bandwidth, Network I/O Control implements a traffic placement engine that becomes active if a virtual machine has bandwidth reservation configured. The distributed switch attempts to place the traffic from a VM network adapter to the physical adapter that can supply the required bandwidth and is in the scope of the active teaming policy.

The total bandwidth reservation of the virtual machines on a host cannot exceed the reserved bandwidth that is configured for the virtual machine system traffic.

The actual limit and reservation also depends on the traffic shaping policy for the distributed port group the adapter is connected to. For example, if a VM network adapter requires a limit of 200 Mbps and the average bandwidth configured in the traffic shaping policy is 100 Mbps, then the effective limit becomes 100Mbps.

Figure 2. Configuration for Bandwidth Allocation for Individual Virtual Machines

Bandwidth reservation for VM system traffic.

The reservation of bandwidth for a VM in Network I/O Control is guaranteed against the reservation of VM system traffic on the physical adapter that sends the traffic from the VM.

Bandwidth Allocation Parameters for Virtual Machine Traffic

Network I/O Control version 3 allocates bandwidth to individual virtual machines based on configured shares, reservation, and limit for the network adapters in the VM hardware settings.

Table 1. Bandwidth Allocation Parameters for a VM Network Adapter
Parameter for Bandwidth Allocation Description
Shares The relative priority, from 1 to 100, of the traffic through this VM network adapter against the capacity of the physical adapter that is carrying the VM traffic to the network.
Reservation The minimum bandwidth, in Mbps, that the VM network adapter must receive on the physical adapter.
Limit The maximum bandwidth on the VM network adapter for traffic to other virtual machines on the same or on another host.

Admission Control for Virtual Machine Bandwidth

To guarantee that sufficient bandwidth is available to a virtual machine, vSphere implements admission control at host and cluster levels based on bandwidth reservation and teaming policy.

Bandwidth Admission Control in vSphere Distributed Switch

When you power on a virtual machine, the Network I/O Control feature on a distributed switch verifies that these conditions are satisfied on the host.

  • A physical adapter on the host can supply the minimum bandwidth to the VM network adapters in accordance with the teaming policy and reservation.
  • The reservation for a VM network adapter is less than the free quota in the network resource pool.

If you change the reservation for a network adapter of a running virtual machine, Network I/O Control verifies again whether the associated network resource pool can accommodate the new reservation. If the pool does not have enough unclaimed quota, the change is not applied.

To use admission control in vSphere Distributed Switch, perform the following tasks:

  • Configure bandwidth allocation for the virtual machine system traffic on the distributed switch.
  • Configure a network resource pool with a reservation quota from the bandwidth configured for virtual machine system traffic.
  • Associate the network resource pool with the distributed port group that connects the virtual machines to the switch.
  • Configure the bandwidth requirements of a virtual machine connected to the port group.

Bandwidth Admission Control in vSphere DRS

If you power on a virtual machine that is in a cluster, vSphere DRS places the virtual machine on a host that has the capacity to guarantee the bandwidth reserved for the virtual machine according to the active teaming policy.

vSphere DRS migrates a virtual machine to another host to satisfy the bandwidth reservation of the virtual machine in these situations:

  • The reservation is changed to a value that the initial host can no longer satisfy.
  • A physical adapter that carries traffic from the virtual machine is offline.

To use admission control in vSphere DRS, perform the following tasks:

  • Configure bandwidth allocation for the virtual machine system traffic on the distributed switch.
  • Configure the bandwidth requirements of a virtual machine that is connected to the distributed switch.

For more information about resource management according to bandwidth demands of virtual machines, see the vSphere Resource Management documentation.

Bandwidth Admission Control in vSphere HA

When a host fails or is isolated, vSphere HA powers on a virtual machine on another host in the cluster according to the bandwidth reservation and teaming policy.

To use admission control in vSphere HA, perform the following tasks:

  • Allocate bandwidth for the virtual machine system traffic.
  • Configure the bandwidth requirements of a virtual machine that is connected to the distributed switch.

For more information about vSphere HA provides failover based on the bandwidth demands of virtual machines, see the vSphere Availability documentation.

Create a Network Resource Pool

Create network resource pools on a vSphere Distributed Switch to reserve bandwidth for a set of virtual machines.

A network resource pool provides a reservation quota to virtual machines. The quota represents a portion of the bandwidth that is reserved for virtual machine system traffic on the physical adapters connected to the distributed switch. You can set aside bandwidth from the quota for the virtual machines that are associated with the pool. The reservation from the network adapters of powered on VMs that are associated with the pool must not exceed the quota of the pool. See How to Allocate Bandwidth for Virtual Machines.

Prerequisites

Procedure

  1. On the vSphere Client Home page, click Networking and navigate to the distributed switch.
  2. On the Configure tab, expand Resource Allocation.
  3. Click Network resource pools.
  4. Click the Add icon.
  5. (Optional) Type a name and a description for the network resource pool.
  6. Enter a value for Reservation quota, in Mbps, from the free bandwidth that is reserved for the virtual machine system traffic.

    The maximum quota that you can assign to the pool is determined according to the following formula:

    max reservation quota = aggregated reservation for vm system traffic - quotas of the other resource pools

    where

    • aggregated reservation for vm system traffic = configured bandwidth reservation for the virtual machine system traffic on each pNIC * number of pNICs connected to the distributed switch
    • quotas of the other pools = the sum of the reservation quotas of the other network resource pools
  7. Click OK.

What to do next

Add one or more distributed port groups to the network resource pool so that you can allocate bandwidth to individual virtual machines from the quota of the pool. See Add a Distributed Port Group to a Network Resource Pool.

Add a Distributed Port Group to a Network Resource Pool

Add a distributed port group to a network resource pool so that you can allocate bandwidth to the virtual machines that are connected to the port group.

To assign a network resource pool to several distributed port groups at once, you can use the Resource allocation policy in the Manage Distributed Port Groups wizard. See Manage Policies for Multiple Port Groups on a vSphere Distributed Switch.

Network I/O Control allocates bandwidth to the virtual machines associated with the distributed port group according to the model implemented in the Network I/O Control version that is active on the distributed switch. See What is vSphere Network I/O Control.

Prerequisites

Procedure

  1. Locate a distributed port group in the vSphere Client.
    1. Select a distributed switch and click the Networks tab.
    2. Click Distributed Port Groups.
  2. Right-click the distributed port group and select Edit settings.
  3. In the Edit Settings dialog box, click General.
  4. From the Network resource pool drop-down menu, select the network resource pool and click OK.
    If the distributed switch does not contain network resource pools, you see only the (default) option in the drop-down menu.

Configure Bandwidth Allocation for a Virtual Machine

You can configure bandwidth allocation to individual virtual machines that are connected to a distributed port group. You can use shares, reservation, and limit settings for bandwidth.

Prerequisites

Procedure

  1. Locate the virtual machine in the vSphere Client.
    1. Select a data center, folder, cluster, resource pool, or host and click the VMs tab.
    2. Click Virtual Machines and click the virtual machine from the list.
  2. From the Actions menu, select Edit Settings.
  3. Expand the Network adapter section of the VM network adapter.
  4. If you want to configure bandwidth allocation for a new VM network adapter, from the Add new device drop-down menu select Network adapter.
    A New Network section displays options for bandwidth allocation and other network adapter settings.
  5. If the VM network adapter is not connected to the distributed port group, select the port group from the drop-down menu next to the Network adapter or New Network label.
  6. From the Shares drop-down menu, set the relative priority of the traffic from this virtual machine as shares from the capacity of the connected physical adapter.

    Network I/O Control applies the configured shares when a physical adapter is saturated.

    You can select an option to set a pre-defined value, or select Custom and type a number from 1 to 100 to set another share.

  7. In the Reservation text box, reserve a minimum bandwidth that must be available to the VM network adapter when the virtual machine is powered on.

    If you provision bandwidth by using a network resource pool, the reservation from the network adapters of powered on VMs that are associated with the pool must not exceed the quota of the pool.

    If vSphere DRS is enabled, to power on the virtual machine, make sure that the reservation from all VM network adapters on the host does not exceed the bandwidth reserved for virtual machine system traffic on the host physical adapters.

  8. In the Limit text box, set a limit on the bandwidth that the VM network adapter can consume.
  9. Click OK.

Results

Network

I/O Control allocates the bandwidth that you reserved for the network adapter of the virtual machine out of the reservation quota of the network resource pool.

Configure Bandwidth Allocation on Multiple Virtual Machines

With a single operation, configure bandwidth allocation on multiple virtual machines that are connected to a specific network resource pool, for example, after you upgrade Network I/O Control to version 3.

Prerequisites

Procedure

  1. On the vSphere Client Home page, click Networking and navigate to the distributed switch.
  2. On the Configure tab, expand Resource Allocation.
  3. Click Network resource pools.
  4. Select a network resource pool.
  5. Click Virtual Machines.
    A list of the VM network adapters that are connected to the selected network resource pool appears.
  6. Select the VM network adapters whose settings you want to configure and click Edit.
  7. From the Shares drop-down menu, set the relative priority of traffic from these virtual machines in the scope of the physical adapters that carry the traffic.

    Network I/O Control applies the configured shares when a physical adapter is saturated.

  8. In the Reservation text box, reserve a minimum bandwidth that must be available to each VM network adapter when the virtual machines are powered on.

    If you provision bandwidth by using a network resource pool, the reservation from the network adapters of powered on VMs that are associated with the pool must not exceed the quota of the pool.

  9. In the Limit text box, set a limit on the bandwidth that each VM network adapter can consume.
  10. Click OK.

Modify the Quota of a Network Resource Pool

Learn how to modify the quota of bandwidth that you can reserve for virtual machines connected to a set of distributed port groups.

Prerequisites

Procedure

  1. On the vSphere Client Home page, click Networking and navigate to the distributed switch.
  2. On the Configure tab, expand Resource Allocation.
  3. Click Network resource pools.
  4. Select a network resource pool from the list and click Edit.
  5. In the Reservation quota text box, enter the bandwidth quota for virtual machines from the aggregation of free bandwidth that is reserved for virtual machine system traffic on all physical adapters on the switch.
  6. Click OK.

Remove a Distributed Port Group from a Network Resource Pool

To stop allocating bandwidth to the virtual machines from the reservation quota of a network resource pool, remove the association between the port group to which the virtual machines are connected and the pool.

Procedure

  1. Locate a distributed port group in the vSphere Client.
    1. Select a distributed switch and click the Networks tab.
    2. Click Distributed Port Groups.
  2. Right-click the distributed port group and select Edit Settings.
  3. In the Edit Settings dialog box for the port group, click General.
  4. From the Network resource pool drop-down menu, select (default) and click OK.

Results

The distributed port group becomes associated with the default VM network resource pool.

Delete a Network Resource Pool

Delete a network resource pool that is no longer in use.

Prerequisites

Uncouple the network resource pool from all associated distributed port groups. See Remove a Distributed Port Group from a Network Resource Pool.

Procedure

  1. On the vSphere Client Home page, click Networking and navigate to the distributed switch.
  2. On the Configure tab, expand Resource Allocation.
  3. Click Network resource pools.
  4. Select a network resource pool and click Remove.
  5. Click OK to delete the resource pool.