Citrix XenServer SR-IOV Support for Provisioning Services Virtual Machines

As companies virtualize more and more of their server infrastructure they are increasingly interested in virtualizing Provisioning Services hosts. However, the significant level of network IO that occurs on a Provisioning Services host can be challenging for the virtualization platform. This article describes how to virtualize Provisioning Services hosts with maximum performance and scalability by leveraging Single Route I/O Virtualization (SR-IOV) capabilities of Intel Niantic NICs with XenServer (versions 5.6 and later).

To make use of this capability, you must have a host server in which a SR-IOV capable network device is installed. The device tested for this article is the IntelĀ® 82599 10 Gigabit Ethernet Controller.

Note: The setup procedure below requires that the 10 GigE NIC not be used as the management interface for the host. A second physical NIC must be installed on the system for that purpose.

Follow these steps:

The following procedure is a detailed step-by-step guide for configuring an SR-IOV-enabled Provisioning Services virtual machine on XenServer 5.6, provided that your system meets the hardware and firmware requirements described above.

  1. Enable iommu on the host by running the following command within the domain 0 console:
    /opt/xensource/libexec/xen-cmdline –set-xen iommu=1
  2. Reboot the host.
  3. Assign one or more VFs to a virtual machine. Obtain a list of VFs in the system by executing the lspci command in the XenServer console. You should see many (such as 120) devices like this:

07:10.0 Ethernet controller: Intel Corporation 82559 Ethernet Controller Virtual Function (rev 01)

  1. Assign one of these VFs to the target virtual machine executing the following command:
    xe vm-param-set other-config:pci=0/0000:07:10.0 uuid=uuid_of_the_VM

    Substitute 07:10.0 in the example above with the pci bus address of the VF you want to assign.

  2. Boot the virtual machine and install the correct VF driver in it.

Once the driver is installed, Provisioning Services should be installed and configured as normal.