With the following extract from the bundle, after the creation of the virtual functions, the VFs are not announce by nova-compute.
neutron-openvswitch:
charm: cs:neutron-openvswitch
num_units: 0
bindings:
data: *overlay-space
options:
worker-multiplier: *worker-multiplier
bridge-mappings: *bridge-mappings
prevent-arp-spoofing: True
firewall-driver: openvswitch
dns-servers: "8.8.8.8"
enable-local-dhcp-and-metadata: true
data-port: 'br-data:eno4'
enable-sriov: True
sriov-device-mappings: 'physnet_sriov:eno5'
sriov-numvfs: 'eno5:8'
Only one interface is included in the extract of the bundle for brevity.
On one of the hosts:
2019-02-21 14:00:32.570 340576 INFO nova.compute.resource_tracker [req-eff0e938-fced-45a4-8e02-0a7410145050 - - - - -] Final resource view: name=xxx.maas phys_ram=386699MB used_ram=1024MB phys_disk=878GB used_disk=1GB total_vcpus=72 used_vcpus=1 pci_stats=[PciDevicePool(count=2,numa_node=0,product_id='1015',tags={dev_type='type-PF',physical_network='physnet_sriov'},vendor_id='15b3'), PciDevicePool(count=4,numa_node=0,product_id='1572',tags={dev_type='type-PF',physical_network='physnet_sriov'},vendor_id='8086'), PciDevicePool(count=2,numa_node=1,product_id='1015',tags={dev_type='type-PF',physical_network='physnet_sriov'},vendor_id='15b3'), PciDevicePool(count=4,numa_node=2,product_id='1015',tags={dev_type='type-PF',physical_network='physnet_sriov'},vendor_id='15b3'), PciDevicePool(count=4,numa_node=2,product_id='1572',tags={dev_type='type-PF',physical_network='physnet_sriov'},vendor_id='8086')]
After restarting nova-compute on the host, they are correctly announced:
2019-02-21 14:00:45.546 642821 INFO nova.compute.resource_tracker [req-f53b43f9-9b58-4ca9-a9ea-02562279bf53 - - - - -] Final resource view: name=xxx.maas phys_ram=386699MB used_ram=1024MB phys_disk=878GB used_disk=1GB total_vcpus=72 used_vcpus=1 pci_stats=[PciDevicePool(count=2,numa_node=0,product_id='1015',tags={dev_type='type-PF',physical_network='physnet_sriov'},vendor_id='15b3'), PciDevicePool(count=4,numa_node=0,product_id='1572',tags={dev_type='type-PF',physical_network='physnet_sriov'},vendor_id='8086'), PciDevicePool(count=2,numa_node=1,product_id='1015',tags={dev_type='type-PF',physical_network='physnet_sriov'},vendor_id='15b3'), PciDevicePool(count=4,numa_node=2,product_id='1015',tags={dev_type='type-PF',physical_network='physnet_sriov'},vendor_id='15b3'), PciDevicePool(count=4,numa_node=2,product_id='1572',tags={dev_type='type-PF',physical_network='physnet_sriov'},vendor_id='8086'), PciDevicePool(count=16,numa_node=0,product_id='1016',tags={dev_type='type-VF',physical_network='physnet_sriov'},vendor_id='15b3'), PciDevicePool(count=16,numa_node=2,product_id='1016',tags={dev_type='type-VF',physical_network='physnet_sriov'},vendor_id='15b3'), PciDevicePool(count=32,numa_node=0,product_id='154c',tags={dev_type='type-VF',physical_network='physnet_sriov'},vendor_id='8086'), PciDevicePool(count=16,numa_node=1,product_id='1016',tags={dev_type='type-VF',physical_network='physnet_sriov'},vendor_id='15b3'), PciDevicePool(count=32,numa_node=2,product_id='154c',tags={dev_type='type-VF',physical_network='physnet_sriov'},vendor_id='8086')]
Any change to SR-IOV configuration should trigger a remote restart in nova-compute:
# Trigger remote restart in parent application
remote_ restart( 'neutron- plugin' , 'nova-compute')