1) The 'No compute node record for host phanpy: ComputeHostNotFound_Remote: Compute host phanpy could not be found.' message is benign, this message appears on first start of the `nova-compute` service. It keeps appearing in the log here due to failure to register available resources. See 3) 2) Technically, the compute hosts are partially registered with `nova`: $ nova service-list +----+----------------+---------------------+----------+---------+-------+----------------------------+-----------------+ | Id | Binary | Host | Zone | Status | State | Updated_at | Disabled Reason | +----+----------------+---------------------+----------+---------+-------+----------------------------+-----------------+ | 1 | nova-conductor | juju-302a0a-2-lxd-2 | internal | enabled | up | 2018-06-29T10:28:00.000000 | - | | 14 | nova-scheduler | juju-302a0a-2-lxd-2 | internal | enabled | up | 2018-06-29T10:28:01.000000 | - | | 15 | nova-compute | phanpy | nova | enabled | up | 2018-06-29T10:28:01.000000 | - | | 16 | nova-compute | aurorus | nova | enabled | up | 2018-06-29T10:28:05.000000 | - | | 26 | nova-compute | zygarde | nova | enabled | up | 2018-06-29T10:28:05.000000 | - | +----+----------------+---------------------+----------+---------+-------+----------------------------+-----------------+ 3) However the compute hosts does not have any resources. The reason for no resources appearing in `nova` is that `nova-compute` service hits a TraceBack during initial host registration: 2018-06-29 06:25:57.161 35528 ERROR nova.compute.manager Traceback (most recent call last): 2018-06-29 06:25:57.161 35528 ERROR nova.compute.manager File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 7277, in update_available_resource_for_node 2018-06-29 06:25:57.161 35528 ERROR nova.compute.manager rt.update_available_resource(context, nodename) 2018-06-29 06:25:57.161 35528 ERROR nova.compute.manager File "/usr/lib/python2.7/dist-packages/nova/compute/resource_tracker.py", line 664, in update_available_resource 2018-06-29 06:25:57.161 35528 ERROR nova.compute.manager resources = self.driver.get_available_resource(nodename) 2018-06-29 06:25:57.161 35528 ERROR nova.compute.manager File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 6438, in get_available_resource 2018-06-29 06:25:57.161 35528 ERROR nova.compute.manager self._get_pci_passthrough_devices() 2018-06-29 06:25:57.161 35528 ERROR nova.compute.manager File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 5945, in _get_pci_passthrough_devices 2018-06-29 06:25:57.161 35528 ERROR nova.compute.manager pci_info.append(self._get_pcidev_info(name)) 2018-06-29 06:25:57.161 35528 ERROR nova.compute.manager File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 5906, in _get_pcidev_info 2018-06-29 06:25:57.161 35528 ERROR nova.compute.manager device.update(_get_device_capabilities(device, address)) 2018-06-29 06:25:57.161 35528 ERROR nova.compute.manager File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 5877, in _get_device_capabilities 2018-06-29 06:25:57.161 35528 ERROR nova.compute.manager pcinet_info = self._get_pcinet_info(address) 2018-06-29 06:25:57.161 35528 ERROR nova.compute.manager File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 5820, in _get_pcinet_info 2018-06-29 06:25:57.161 35528 ERROR nova.compute.manager virtdev = self._host.device_lookup_by_name(devname) 2018-06-29 06:25:57.161 35528 ERROR nova.compute.manager File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/host.py", line 838, in device_lookup_by_name 2018-06-29 06:25:57.161 35528 ERROR nova.compute.manager return self.get_connection().nodeDeviceLookupByName(name) 2018-06-29 06:25:57.161 35528 ERROR nova.compute.manager File "/usr/lib/python2.7/dist-packages/eventlet/tpool.py", line 186, in doit 2018-06-29 06:25:57.161 35528 ERROR nova.compute.manager result = proxy_call(self._autowrap, f, *args, **kwargs) 2018-06-29 06:25:57.161 35528 ERROR nova.compute.manager File "/usr/lib/python2.7/dist-packages/eventlet/tpool.py", line 144, in proxy_call 2018-06-29 06:25:57.161 35528 ERROR nova.compute.manager rv = execute(f, *args, **kwargs) 2018-06-29 06:25:57.161 35528 ERROR nova.compute.manager File "/usr/lib/python2.7/dist-packages/eventlet/tpool.py", line 125, in execute 2018-06-29 06:25:57.161 35528 ERROR nova.compute.manager six.reraise(c, e, tb) 2018-06-29 06:25:57.161 35528 ERROR nova.compute.manager File "/usr/lib/python2.7/dist-packages/eventlet/tpool.py", line 83, in tworker 2018-06-29 06:25:57.161 35528 ERROR nova.compute.manager rv = meth(*args, **kwargs) 2018-06-29 06:25:57.161 35528 ERROR nova.compute.manager File "/usr/lib/python2.7/dist-packages/libvirt.py", line 4177, in nodeDeviceLookupByName 2018-06-29 06:25:57.161 35528 ERROR nova.compute.manager if ret is None:raise libvirtError('virNodeDeviceLookupByName() failed', conn=self) 2018-06-29 06:25:57.161 35528 ERROR nova.compute.manager libvirtError: Node device not found: no node device with matching name 'net_enP2p1s0f2_02_0f_b7_00_00_01' As both the above analysis and the referenced mailing list thread suggest, the hardware/driver in question has a peculiar operating mode in that it is not possible to query which physical device a virtual function belongs to: $ sudo virsh nodedev-list|grep net $ grep libvirtd /var/log/syslog|head -20 Jun 29 08:07:00 phanpy libvirtd[2487]: 2018-06-29 08:07:00.616+0000: 2487: error : virNetSocketReadWire:1811 : End of file while reading data: Input/output error Jun 29 08:18:37 phanpy libvirtd[110330]: 2018-06-29 08:18:37.946+0000: 110362: info : libvirt version: 4.0.0, package: 1ubuntu8.2 (Marc Deslauriers