This article explains how to troubleshoot common SR-IOV Network related issues.
Common error scenario #1: A VM fails to have SR-IOV network assigned.
xe network-sriov-list
xe network-sriov-param-list uuid=<SR-IOV_Network_UUID>
Sample output
param name
default max_vfs
sysfs interface support
Common error scenario #2: When trying to assign SR-IOV Network to a VM from XenCenter, there is no SR-IOV Network option in “Add Virtual Interface” Wizard for the VM.
If the VM is newly created in XenServer 7.6, please check if the VM has <restriction field="allow-network-sriov" value="1"/> tagged in recommendations by xe vm-param-list uuid=<vm_uuid> command.
If there is no such tag, that means the OS of the VM does not support SR-IOV feature, you should not assign SR-IOV network to that VM.
Output sample for a guest OS that supports SR-IOV Network:
recommendations ( RO): <restrictions><restriction field="memory-static-max" max="1649267441664"/><restriction field="vcpus-max" max="32"/><restriction field="has-vendor-device" value="false"/><restriction field="allow-gpu-passthrough" value="1"/><restriction field="allow-vgpu" value="1"/><restriction field="allow-network-sriov" value="1"/><restriction max="255" property="number-of-vbds"/><restriction max="7" property="number-of-vifs"/></restrictions>
Please note, if a VM is exported from a previous XenServer version, even the guest OS supports SR-IOV feature, it has no above restriction field. You will need to assign SR-IOV Network to that VM by xe CLI.
Common error scenario #3: SR-IOV Network is assigned to a VM by xe CLI, while inside the VM, the SR-IOV Network is not visible.
In this case, please make sure
Example for Windows Server OS:
Example for Linux Server:
ethtool -i eth1
driver: ixgbevf
version: 3.2.2-k-rh7.4
firmware-version:
expansion-rom-version:
bus-info: 0000:00:05.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: no
supports-register-dump: yes
supports-priv-flags: no
Please understand, you can assign SR-IOV Network to any VM by xe CLI. So please be sure that you are assigning it to a guest that supports this feature. Even SR-IOV Network may work on a non-supported guest, Citrix does NOT support this use case if any problem occurs.
Common error scenario #4: VM fails to start after SR-IOV Network has been assigned.
In this, you need to check kern.log and xensource.log with keyword “sriov” to find more information.
Reference:
For your reference, here are messages are outputted for working scenario.
|
pool (Network SR-IOV enabled)
| pool(Network SR-IOV not configured) |
host (Network SR-IOV enabled) | Joining to existing pool will be blocked since the new host can be considered as a not clean host. | Joining to existing pool will be blocked since the new host can be considered as a not clean host. |
host (Network SR-IOV not configured) | The host can join the pool, but with following notice: 1. The SR-IOV network of the newly joined host will be enabled AUTOMATICALLY if and only if the NIC on host and the NIC on pool master have same NIC type and same NIC position; this is checked by XAPI; 2. If PCI type of same NIC position for pool master and newly joined host are different, then SR-IOV network will not be enabled for that NIC in the joined host; even the host can join the pool. 3. Different types of SR-IOV physical PIFs can NOT be put into one network; 4. In the pool, user can enable a SR-IOV network for the newly joined host by XE CLI if the SR-IOV PIF has same type with the pool master's PIF in that network, even they are in different positions. | The host can join the existing pool. |