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.
- Enable iommu on the host by running the following command within the domain 0 console:
/opt/xensource/libexec/xen-cmdline –set-xen iommu=1
- Reboot the host.
- 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)
- 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.
- 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.