VMware vSphere 7 keeps both features from previous releases. NIOC (Network I/O control) and SIOC (Storage I/O control). This post is part of the Free VCP-DCV 2021 Study Guide. The main page of the guide is here – VCP7-DCV Study Guide – VCP-DCV 2021 Certification, and you'll find there ALL the chapters.
Network I/O control allows you to determine and shape the bandwidth within vSphere. You can use it together with Network Resource pools that allow you to specify the bandwidth for specific type of network traffic. You'll need an Enterprise Plus license where you leverage vSphere Distributed switches and NIOC.
The section of Resource allocation is divided into a System traffic and Network resource pools. You can access those sections by selecting the vSphere Network icon > under datacenter, where you have your vDS > Configure > System traffic.
You can use NIOC for Quality of Service (QoS) on network traffic. This can be useful for vSAN when vSAN traffic must share the physical NIC with other traffic types, such as vMotion, management, virtual machines.
Version 3 of the Network I/O Control (NIOC) feature offers improved network resource reservation and allocation across the entire switch. vSphere NIOC v3 introduces a mechanism to reserve bandwidth for system traffic based on the capacity of the physical adapters on a host. It enables fine-grained resource control at the VM network adapter level similar to the model that you use for allocating CPU and memory resources.
When enabled NIOC divides the traffic into resource pools. Bandwidth reservations can be used to isolate network resources for a class of traffic, for example in VSAN cluster you’d want to reserve part of the traffic only for VSAN traffic no matter what happens to the other traffic.
Models for Bandwidth Resource Reservation – Network I/O Control version 3 supports separate models for resource management of system traffic related to infrastructure services, such as vSphere Fault Tolerance, and of virtual machines.
The system traffic section – here you can configure shares, reservations and limits for your system based network traffic.
- Management networking traffic
- Fault tolerance (FT)
- vSphere replication
- vSphere data protection backup
- Virtual machine
Shares – Shares, from 1 to 100, reflect the relative priority of a system traffic type against the other system traffic types that are active on the same physical adapter. The amount of bandwidth available to a system traffic type is determined by its relative shares and by the amount of data that the other system features are transmitting. For example, you assign 100 shares to vSphere FT traffic and iSCSI traffic while each of the other network resource pools has 50 shares. A physical adapter is configured to send traffic for vSphere Fault Tolerance, iSCSI and management. At a certain moment, vSphere Fault Tolerance and iSCSI are the active traffic types on the physical adapter and they use up its capacity. Each traffic receives 50% of the available bandwidth. At another moment, all three traffic types saturate the adapter. In this case, vSphere FT traffic and iSCSI traffic obtain 40% of the adapter capacity, and vMotion 20%.
Reservation – The minimum bandwidth, in Mbps, that must be guaranteed on a single physical adapter. The total bandwidth reserved among all system traffic types cannot exceed 75 percent of the bandwidth that the physical network adapter with the lowest capacity can provide. Reserved bandwidth that is unused becomes available to other types of system traffic.
However, Network I/O Control does not redistribute the capacity that system traffic does not use to virtual machine placement. For example, you configure a reservation of 2 Gbps for iSCSI. It is possible that the distributed switch never imposes this reservation on a physical adapter because iSCSI uses a single path.
The unused bandwidth is not allocated to virtual machine system traffic so that Network I/O Control can safely meet a potential need for bandwidth for system traffic for example, in the case of a new iSCSI path where you must provide bandwidth to a new VMkernel adapter
Limit – The maximum bandwidth, in Mbps or Gbps, that a system traffic type can consume on a single physical adapter.
Network Resource Pools – this section is for controlling the VM traffic.
When clicking the Network resource pools menu link and then click Add, you'll create a new network resource pool that will have a reservation quota. You can then assign a VM to that pool.
Bandwidth Guarantee to Virtual Machines – Network I/O Control version 3 provisions bandwidth to the network adapters of virtual machines by using constructs of shares, reservation and limit. Based on these constructs, to receive sufficient bandwidth, virtualized workloads can rely on admission control in vSphere Distributed Switch, vSphere DRS and vSphere HA.
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.
You can enable Network I/O Control in the configuration properties of the vDS. Right-click the vDS in the vSphere Client, and choose menu Settings > Edit Settings.
Concerning the system traffic it’s possible to have a look at those metrics and details:
- Network I/O Control Status (state is Enabled/Disabled)
- NIOC Version
- Physical network adapters details
- Available bandwidth capacity
- Total bandwidth capacity
- Maximum reservation allowed
- Configured reservation
- Minimum link speed
vSphere 7 SIOC (Storage I/O control)
With SIOC enabled on a datastore, you prevent the other VMs from the “noisy neighbor” situation where a single VM takes all the resources. The device’s latency is monitored. If latency is higher than configured values, SIOC kicks in and reduces the latency by throttling back VMs that are exceeding their consumption of IOPS.
Storage IO Control (SIOC) only kicks in when there is a contention. SIOC makes sure that every VM gets its fair share of storage resources. Storage I/O control can “heal” part of your storage performance problems by setting a priority at the VM level (VMDK). You know the “noisy neighbor story”.
When you enable Storage I/O Control on a datastore, ESXi host starts to monitor the device latency that hosts observe when communicating with that datastore. When device latency exceeds a threshold, the datastore is considered to be congested and each VM that accesses that datastore is allocated I/O resources in proportion to their shares.
By default, all VMs are set to Normal (1000). You set shares per VMDK. You can adjust the number for each based on need. The default is 1000.
Limitations and Requirements:
- NFS v4.1 isn’t supported (it is for NFS v3).
- Storage I/O Control does not support datastores with multiple extents.
- SAN with auto-tiering has to be certified for SIOC.
- Datastores that are Storage I/O Control-enabled must be managed by a single vCenter Server system.
- Must be disabled before removing a datastore.
- Raw Device Mapping (RDM) is not supported. (it is on iSCSI NFS and FC).
When you enable Storage I/O Control (SIOC) on a datastore, the host starts to monitor the latency. When latency on the datastore with enabled SIOC is more than the configured threshold, vSphere views the data store as “congested” and each VM that is accessing the SIOC enabled datastore is allocated I/O resources in proportion to their shares (that we'll configure on a per VMDK level).
The I/O filter framework (VAIO) allows VMware and its partners to develop filters that intercept I/O for each VMDK and provides the desired functionality at the VMDK granularity. VAIO works along with Storage Policy-Based Management (SPBM) which allows you to set the filter preferences through a storage policy that is attached to VMDKs.
Two step process to activate SIOC:
Step 1. Activate SIOC at the datastore level via vSphere Client or vSphere Web client. Select Datastore > Configure > General > Storage I/O control section.
Step 2: Set the number of storage I/O shares and an upper limit of I/O operations per second (IOPS) allowed for each virtual machine. By default, all virtual machine shares are set to Normal (1000) with unlimited IOPS.
Thanks for reading.
- VMware VCP7-DCV Exam page here. You'll find all lessons there, when finished.
- VCP6.7-DCV Study Guide – VCP-DCV 2019 certification (use this one until VMware allows it).
More posts from ESX Virtualization:
- vSphere 7.0 Download Now Available
- vSphere 7.0 Page [All details about vSphere and related products here]
- VMware vSphere 7.0 Announced – vCenter Server Details
- VMware vSphere 7.0 DRS Improvements – What's New
- How to Patch vCenter Server Appliance (VCSA) – [Guide]
- What is The Difference between VMware vSphere, ESXi and vCenter
- How to Configure VMware High Availability (HA) Cluster