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.
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.
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.
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
-
Verify that vSphere Distributed Switch is version 6.5.0 and later.
- Verify that Network I/O Control on the switch is version 3.
- Verify that Network I/O Control is enabled. See Enable Network I/O Control on a vSphere Distributed Switch.
- Verify that the virtual machine system traffic has a configured bandwidth reservation. See How to Allocate Bandwidth for System Traffic.
Procedure
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
- Verify that Network I/O Control is enabled. See Enable Network I/O Control on a vSphere Distributed Switch.
Procedure
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
-
Verify that vSphere Distributed Switch is version 6.5.0 and later.
- Verify that Network I/O Control on the switch is version 3.
- Verify that Network I/O Control is enabled. See Enable Network I/O Control on a vSphere Distributed Switch.
- Verify that the virtual machine system traffic has a configured bandwidth reservation. See How to Allocate Bandwidth for System Traffic.
Procedure
Results
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
-
Verify that vSphere Distributed Switch is version 6.5.0 and later.
- Verify that Network I/O Control on the switch is version 3.
- Verify that Network I/O Control is enabled. See Enable Network I/O Control on a vSphere Distributed Switch.
- Verify that the virtual machine system traffic has a configured bandwidth reservation. See How to Allocate Bandwidth for System Traffic.
- Verify that the virtual machines are associated with a specific network resource pool through the connected distributed port groups. See Add a Distributed Port Group to a Network Resource Pool.
Procedure
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
-
Verify that vSphere Distributed Switch is version 6.5.0 and later.
- Verify that Network I/O Control on the switch is version 3.
- Verify that Network I/O Control is enabled. See Enable Network I/O Control on a vSphere Distributed Switch.
- Verify that the virtual machine system traffic has a configured bandwidth reservation. See How to Allocate Bandwidth for System Traffic.
Procedure
- On the vSphere Client Home page, click Networking and navigate to the distributed switch.
- On the Configure tab, expand Resource Allocation.
- Click Network resource pools.
- Select a network resource pool from the list and click Edit.
- 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.
- 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
- Locate a distributed port group in the vSphere Client.
- Select a distributed switch and click the Networks tab.
- Click Distributed Port Groups.
- Right-click the distributed port group and select Edit Settings.
- In the Edit Settings dialog box for the port group, click General.
- 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
- On the vSphere Client Home page, click Networking and navigate to the distributed switch.
- On the Configure tab, expand Resource Allocation.
- Click Network resource pools.
- Select a network resource pool and click Remove.
- Click OK to delete the resource pool.