How to Enable Single Root I/O Virtualization SR-IOV on XenServer
Summary
This article describes how to improve network performance in XenServer virtual machines by purchasing a Network Interface Card (NIC) with Single Root I/O Virtualization (SR-IOV) support.
This is also the method if you want to virtualize your Provisioning Services hosts – READ MORE HERE
Background
The SRIOV support is a method used for sharing I/O devices with near physical computer speed.
To learn more about SR-IOV, refer to PCI-SIG SR_IOV Primer.
Note 1: A single SR-IOV NIC can support multiple Virtual Functions; each Virtual Function can be attached to a different virtual machine as a 1:1 ratio (1 Virtual Function to 1 virtual machine).
Note 2: Xen Kernel version 3.4.2 supports the SR-IOV features for Red Hat Enterprise Linux or SUSE Linux Enterprise Server. Citrix XenServer 5.5 however does not support it.
Note 3: Citrix only has one NIC certified for SR-IOV on XenServer (Intel 82599 10 gigabyte Ethernet Controller).
Procedure
Perform the following the steps to enable SR-IOV on XenServer.
- Enable iommu on the XenServer host by running the following command within the domain 0 console:
/opt/xensource/libexec/xen-cmdline –set-xen iommu=1 - Restart the host.
- Assign one or more Virtual Functions to a virtual machine. Obtain a list of Virtual Functions in the system by running the following command in the XenServer console:
lspciYou should see many (such as 120) devices like this:
07:10.0 Ethernet controller: Intel Corporation 82559 Ethernet Controller Virtual Function (rev 01) - Run the following command to assign one of these Virtual Functions to the target virtual machine:
xe vm-param-set other-config:pci=0/0000:07:10.0 uuid=uuid_of_the_VMNote
: Substitute 07:10.0 in the example above with the PCI bus address of the Virtual Function that you want to assign. - Start the virtual machine and install the correct Virtual Function driver in it.
Read the knowledge article here