How to Enable Single Root I/O Virtualization SR-IOV on XenServer 6
Summary
This article describes how to improve network performance in XenServer Feature Pack 1 Virtual Machines (VMs) by using a Network Interface Card (NIC) with Single Root I/O Virtualization (SR-IOV) support. Customers running XenServer 6.0 should refer to CTX131381 – How to Assign SR-IOV Enabled NICs with XenServer 6.0
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 VM as a 1:1 ratio (1 Virtual Function to 1 VM).
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 Feature Pack 1 (Intel 82599 10 gigabyte Ethernet Controller).
Procedure
Perform the following the steps to enable SR-IOV on XenServer Feature Pack 1.
- 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 VM. 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 VM:
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 VM and install the correct Virtual Function driver in it.
More Information
CTX126624 – XenServer Single Route I/O Virtualization (SR-IOV) Support for Provisioning Services Virtual Machines
CTX131381 – How to Assign SR-IOV Enabled NICs with XenServer 6.0