[Openstack] Openstack SRIOV and PCI passthrough error while creating instance

Moshe Levi moshele at mellanox.com
Mon Jan 29 09:29:48 UTC 2018


Can you try to restart libvirtd and query again "virsh nodedev-list"

From: Navdeep Uniyal [mailto:navdeep.uniyal at bristol.ac.uk]
Sent: Monday, January 29, 2018 10:32 AM
To: Moshe Levi <moshele at mellanox.com>; openstack at lists.openstack.org
Subject: RE: [Openstack] Openstack SRIOV and PCI passthrough error while creating instance

Hi Moshe,

Thank you very much for your response. I could see the list of nodes using virsh:

net_enp129s0f0_3c_fd_fe_a9_37_c0
net_enp129s0f1_3c_fd_fe_a9_37_c1
net_enp129s2_36_a5_18_f7_41_c6
net_enp129s2f1_96_b0_b3_37_cf_c5
net_enp129s2f2_0e_0c_63_76_07_0f
net_enp129s2f3_36_ca_41_10_7f_62
net_enp129s2f4_f2_79_ee_75_38_a9
net_enp129s2f5_2a_a1_c6_02_55_11
net_enp129s2f6_16_e3_c4_01_8c_6d
net_enp129s2f7_66_56_63_d8_a8_ad

these does not have the node 'net_enp129s2_b2_87_6e_13_a1_5e' listed. Could you please help me finding out what could be the reason behind this mismatch.


Kind Regards,
Navdeep Uniyal

From: Moshe Levi [mailto:moshele at mellanox.com]
Sent: 29 January 2018 06:50
To: Navdeep Uniyal <navdeep.uniyal at bristol.ac.uk<mailto:navdeep.uniyal at bristol.ac.uk>>; openstack at lists.openstack.org<mailto:openstack at lists.openstack.org>
Subject: RE: [Openstack] Openstack SRIOV and PCI passthrough error while creating instance

Hi Navdeep,

The errors you are pointing out shouldn't cause  error while creating instance with SR-IOV/PCI passthrough.
They are part of the SR-IOV nic capabilities feature which is not completed yet.

Libvirt "virsh nodedev-list" command will show you the list of nic and this method [1] will look it in the hypervisor.
For some reason you have a mismatch here. You need to compare them.  Anyway if there is a mismatch it just won't report the capabilities of the nic.
As I mentioned above I think this is not the issue for the error while creating instance

[1] https://github.com/openstack/nova/blob/91f7a999988b3f857d738d39984117e6c514cbec/nova/pci/utils.py#L196-L217<https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fopenstack%2Fnova%2Fblob%2F91f7a999988b3f857d738d39984117e6c514cbec%2Fnova%2Fpci%2Futils.py%23L196-L217&data=02%7C01%7Cmoshele%40mellanox.com%7C64da232237d54639b39208d566f2cc83%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C636528115363097991&sdata=9warkJI5zs0l57YKgpBrXTUA5IO7lN1xWAAKxDo%2FSy0%3D&reserved=0>


From: Navdeep Uniyal [mailto:navdeep.uniyal at bristol.ac.uk]
Sent: Sunday, January 28, 2018 10:58 PM
To: openstack at lists.openstack.org<mailto:openstack at lists.openstack.org>
Subject: [Openstack] Openstack SRIOV and PCI passthrough error while creating instance

Dear All,

I am getting an error while creating SRIOV enabled instances following the guide from Openstack pike https://docs.openstack.org/neutron/pike/admin/config-sriov.html<https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.openstack.org%2Fneutron%2Fpike%2Fadmin%2Fconfig-sriov.html&data=02%7C01%7Cmoshele%40mellanox.com%7C7035d805a74d45ff0bbe08d56692fd3e%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C636527703870300090&sdata=Oljh3%2Ff1B%2FLCsNxHIUkS%2FgLzTBkpOY3XaWBixYKWOaQ%3D&reserved=0>



I want to start an instance on openstack pike with SRIOV enabled NICs. However, I am getting a Libvirt error regarding the node name. The error looks weird as the node name is not matching the interface name on the host machine or in the configuration files.

2018-01-28 20:40:11.416 2953 ERROR nova.compute.manager [req-caa92f1d-5ac1-402d-a8bc-b08ab350a21f - - - - -] Error updating resources for node jupiter.: libvirtError: Node device not found: no node device with matching name 'net_enp129s2_b2_87_6e_13_a1_5e' 2018-01-28 20:40:11.416 2953 ERROR nova.compute.manager Traceback (most recent call last): 2018-01-28 20:40:11.416 2953 ERROR nova.compute.manager File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 6696, in update_available_resource_for_node 2018-01-28 20:40:11.416 2953 ERROR nova.compute.manager rt.update_available_resource(context, nodename) 2018-01-28 20:40:11.416 2953 ERROR nova.compute.manager File "/usr/lib/python2.7/dist-packages/nova/compute/resource_tracker.py", line 641, in update_available_resource 2018-01-28 20:40:11.416 2953 ERROR nova.compute.manager resources = self.driver.get_available_resource(nodename) 2018-01-28 20:40:11.416 2953 ERROR nova.compute.manager File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 5857, in get_available_resource 2018-01-28 20:40:11.416 2953 ERROR nova.compute.manager 2018-01-28 20:40:11.416 2953 ERROR nova.compute.manager File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 5621, in _get_pci_passthrough_devices 2018-01-28 20:40:11.416 2953 ERROR nova.compute.manager for name in dev_names: 2018-01-28 20:40:11.416 2953 ERROR nova.compute.manager File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 5582, in _get_pcidev_info 2018-01-28 20:40:11.416 2953 ERROR nova.compute.manager device['label'] = 'label_%(vendor_id)s_%(product_id)s' % device 2018-01-28 20:40:11.416 2953 ERROR nova.compute.manager File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 5553, in _get_device_capabilities 2018-01-28 20:40:11.416 2953 ERROR nova.compute.manager pcinet_info = self._get_pcinet_info(address) 2018-01-28 20:40:11.416 2953 ERROR nova.compute.manager File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 5496, in _get_pcinet_info 2018-01-28 20:40:11.416 2953 ERROR nova.compute.manager virtdev = self._host.device_lookup_by_name(devname) 2018-01-28 20:40:11.416 2953 ERROR nova.compute.manager File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/host.py", line 845, in device_lookup_by_name 2018-01-28 20:40:11.416 2953 ERROR nova.compute.manager return self.get_connection().nodeDeviceLookupByName(name) 2018-01-28 20:40:11.416 2953 ERROR nova.compute.manager File "/usr/lib/python2.7/dist-packages/eventlet/tpool.py", line 186, in doit 2018-01-28 20:40:11.416 2953 ERROR nova.compute.manager result = proxy_call(self._autowrap, f, *args, **kwargs) 2018-01-28 20:40:11.416 2953 ERROR nova.compute.manager File "/usr/lib/python2.7/dist-packages/eventlet/tpool.py", line 144, in proxy_call 2018-01-28 20:40:11.416 2953 ERROR nova.compute.manager rv = execute(f, *args, **kwargs) 2018-01-28 20:40:11.416 2953 ERROR nova.compute.manager File "/usr/lib/python2.7/dist-packages/eventlet/tpool.py", line 125, in execute 2018-01-28 20:40:11.416 2953 ERROR nova.compute.manager six.reraise(c, e, tb) 2018-01-28 20:40:11.416 2953 ERROR nova.compute.manager File "/usr/lib/python2.7/dist-packages/eventlet/tpool.py", line 83, in tworker 2018-01-28 20:40:11.416 2953 ERROR nova.compute.manager rv = meth(*args, **kwargs) 2018-01-28 20:40:11.416 2953 ERROR nova.compute.manager File "/usr/lib/python2.7/dist-packages/libvirt.py", line 4177, in nodeDeviceLookupByName 2018-01-28 20:40:11.416 2953 ERROR nova.compute.manager if ret is None:raise libvirtError('virNodeDeviceLookupByName() failed', conn=self) 2018-01-28 20:40:11.416 2953 ERROR nova.compute.manager libvirtError: Node device not found: no node device with matching name 'net_enp129s2_b2_87_6e_13_a1_5e' 2018-01-28 20:40:11.416 2953 ERROR nova.compute.manager

The correct interface name is enp129s0f0. However, I am getting the node name as net_enp129s2_b2_87_6e_13_a1_5e' which i believe is the reason behind the failure of vm creation on openstack. Please if someone could help me understand how the node name is passed on to the Libvirt from openstack or how can I resolve this issue.



Regards,
Navdeep
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack/attachments/20180129/51317c2c/attachment.html>


More information about the Openstack mailing list