Ensure network interface order with nova-network

asked 2016-01-26 19:32:17 -0500

SMM gravatar image

I have a newly installed Kilo environment, 11.2.4, using nova-network. I have three controllers, ten compute nodes, a swift node and a cinder node. I installed via the openstack-ansible playbook, with some modification to get set up with nova-network. The users have a need to create instances with five network interfaces, each for a different network. As we have been testing in preparation for them moving from an older openstack environment, it became clear that the interfaces were not always appearing in the specified order. This was true whether I used a python script using the novaclient module or just did nova boot from the command line.

I can see the body of the post to the api and the networks are in the correct order at that time. This I'm entirely sure of.

After that, I tried tracing rabbitmq messages and decoding them to see if I could figure out what was going on. For everything I say about rabbitmq messages, mentally append "...I think.", as I am only about 90% sure I am getting this part right. I can see one of the nova_api_os_compute_containers publish a message that is received by one of the nova_conductor_containers. In that message is the NetworkRequestList with all the NetworkRequest entries in the correct order. I can see another message published by the conductor and picked up by the compute node the instance is created on that also has the NetworkRequestList in the correct order.

But at the end, the order is wrong sometimes. The libvirt xml file has the interfaces in a different order in that case. Inside the instance, the interfaces are in whatever order they are in the xml file. The way in which the order is wrong is not always the same and a particular compute node can have instances create correctly and incorrectly within a few minutes of each other.

Can someone please tell me how I can make sure that the network order reliably comes out the same way it goes in?

Thank you,

Sean

edit retag flag offensive close merge delete