I followed the openstack and mellanox documentation to successfully bring up my own setup. I created Ethernet SR-IOV instances on compute node by following the steps in this doc:
The VM instances boot and even show the mellanox virtual eth interface that was 'pass-through’ed to it. However, it doesn’t get a IP automatically.
My queries are:
Has anyone seen DHCP working with mellanox ml2 setup?
I have not installed ‘Mellanox Dnsmasq driver’ as it is mentioned under the ‘InfiniBand Network’ section of mellanox-icehouse doc whereas I am configuring ‘Ethernet Network’. Should I still install ‘Mellanox Dnsmasq driver’?
I see this error in /var/log/neutron/dhcp-agent.log on network node - “TRACE neutron.agent.dhcp_agent RemoteError: Remote error: AgentNotFoundByTypeHost Agent with agent_type=DHCP agent and host=controller could not be found”. Should I worry about it?
Can I do something else (run some quick tests, check logs etc) to debug this?
Note:
neutron-dhcp-agent is running on network node.
While the VM instance is coming up, it shows this on console for few seconds - “Determing IP information for eth0…”. And, finally it says “failed”.
Due to a packaging bug, the Open vSwitch agent initialization script explicitly looks for the Open vSwitch plug-in configuration file rather than a symbolic link /etc/neutron/plugin.ini pointing to the ML2 plug-in configuration file. Run the following commands to resolve this issue:
# sed -i ‘s,plugins/openvswitch/ovs_neutron_plugin.ini,plugin.ini,g’ /etc/init.d/neutron-openvswitch-agent
But, this is not required as it causes the neutron-openvswitch-agent to not load the correct config file (/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini). neutron-openvswitch-agent must load config from this file. Also, it looks like they have wrongly fixed it in the icehouse repository. So now, the neutron-openvswitch-agent service script always points to the wrong file on Linux.
Mellanox documentation (Mellanox-Neutron-Icehouse-Redhat - OpenStack https://wiki.openstack.org/wiki/Mellanox-Neutron-Icehouse-Redhat ) asks users to edit /etc/neutron/dhcp_agent.ini to set “interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver”. But this should be set to “neutron.agent.linux.interface.OVSInterfaceDriver” otherwise a tap port is not created under br-int for the DHCP process
After making the above changes, my VM instances are getting IPs assigned
Actually, I wanted to confirm whether mellanox ml2 agents have anything to do with DHCP configuration or handling. Since, you are indicating they are unrelated. I will now pursue it as a separate generic issue.
Thanks for confirming that mlnx-dhcp agent is not needed for ethernet. With static IPs I can ping between VMs (no problems there). Is there anything that I can try to debug the DHCP part?
However, I ignored the following under “3. Configure the DHCP server according to the following guidelines” as the link is broken. Can you please update the doc with a valid link. Maybe this link can help me.