Technology Brief: Intel Virtualization Technology for Connectivity
2
In non-virtualized environments, port partitioning provides hardware-
based QoS features that enable a physical port to consolidate the traffic
of a greater number of physical ports with no loss of functionality and
more flexible bandwidth allocation.
Both technologies enable a single Ethernet port to appear as multi-
ple adapters to virtual machines (VMs) by allowing the Intel Ethernet
Controller to place data packets directly into individual VM memory
stacks using a process called direct memory access (DMA). Each VM’s
device buffer is assigned a transmit/receive queue pair in the Intel
Ethernet Controller, and this pairing between VM and network hard-
ware helps avoid needless packet copies and route lookups in the
virtual switch. The result is less data in the host server’s buffers
and an overall improvement in I/O performance.
Hypervisor-controlled Port Partitioning
Using Virtual Machine Device Queues
VMDq works in conjunction with VMware NetQueue* or Microsoft
Virtual Machine Queues* (VMQ), in their respective hypervisors, to use
the sorting and queuing functionality in the controller for traffic steer-
ing and Tx/Rx round-robin scheduling for balanced bandwidth allocation
across multiple transmit and receive queues. Using these technologies,
Figure 2. Virtual Machine Device Queues
VMDq enables the hypervisor to represent a single network port as
multiple ports that are assigned to the VMs, resulting in less data in
the host’s buffers and an overall performance improvement to I/O
operations. When VMDq is enabled, the hypervisor handles queue
assignment, delivering the benefits of port partitioning and the
on-controller QoS features with little to no administrative
overhead by the IT staff (Figure 2).
SR-IOV-enabled Port Partitioning
Many recent Linux* releases have been enabled to partition a single
physical Ethernet Controller into multiple virtual interfaces that can
be used by local host processes or directly by VMs. With support for
the PCI-SIG SR-IOV specification, Intel Ethernet Controllers support
this port partitioning, which administrators can use to create multi-
ple isolated networks for use in both bare-metal Linux and virtualized
server deployments. As seen in Figure 3, the Linux OS screenshots
show the two ports on the Intel® 82576 Gigabit Network Connection
available on the server as Ethernet Controllers. After using the max_
vfs command to enable seven virtual functions per port, the OS
shows the original two ports and 14 additional Ethernet Controllers
that are now available for the administrator to assign to traffic to.
Rx
Rx
Rx
Tx
Tx
Tx
Intel® Ethernet Controller
Low-Traffic VMs High-Traffic VM
Virtual NIC
VM 1
Virtual NIC
VM 3
Virtual NIC
VM 2
Virtual Software Search
VMware ESX* 4.1 with NetQueue*
Default Queue
(VM 1 and VM 2)
NetQueue
(Not assigned to a VM)
NetQueue
(VM3)
Rx
Tx
Rx
Tx
Tx
Tx
Rx
Rx
Rx
Tx
Tx
Tx
Virtual Ethernet Bridge - Layer 2 Sorter and Classifier
Figure 3. Linux OS screenshots