Error: “Exceeded maximum number of retries. Exceeded max scheduling attempts 3 for instance <instance_id>. Last exception: Binding failed for port. ucode: 500” while launching a VM in OpenStack Mitaka. If you are stuck with a similar issue, here’s how you can solve it.
In addition to the above error message, look out for more information in neutron log files. For instance, neutron-server.log contained “WARNING neutron.plugins.ml2.drivers.mech_agent [id] Port <id> on network <id> not bound, no agent registered on host cloudcomputenode5“.
The above error hints that the neutron network agent in the compute node (cloudcomputenode5, in my case) does not seems to be present/bind to the request. To solve this, check all the necessary configurations related to neutron agent in the compute node.
Make sure the below configurations are present in the compute node.
1. Check if neutron-linuxbridge-agent‘ is installed. If not, install it as shown below:
#apt-get install neutron-linuxbridge-agent
2. Ensure the below configurations are present in /etc/neutron/neutron.conf.
[DEFAULT] rpc_backend = rabbit auth_strategy = keystone [oslo_messaging_rabbit] rabbit_host = controller rabbit_userid = openstack rabbit_password = RABBIT_PASS [keystone_authtoken] auth_uri = http://controller:5000 auth_url = http://controller:35357 memcached_servers = controller:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = neutron password = NEUTRON_PASS
3. Configure Linux bridge agent as shown below:
# vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini
[linux_bridge] #Replace PROVIDER_INTERFACE_NAME with the name of the underlying provider physical network interface. physical_interface_mappings = provider:PROVIDER_INTERFACE_NAME
[vxlan] enable_vxlan = True local_ip = <IP_ADDRESS_COMPUTE_NODE> l2_population = True
[securitygroup] enable_security_group = True firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
4. Ensure compute node is configured to use neutron networking.
# vim /etc/nova/nova.conf
[neutron] url = http://controller:9696 auth_url = http://controller:35357 auth_type = password project_domain_name = default user_domain_name = default region_name = RegionOne project_name = service username = neutron password = NEUTRON_PASSWORD
4. Start compute and Linux bridge agent services.
# /etc/init.d/nova-compute restart # /etc/init.d/neutron-linuxbridge-agent restart
Now the Neutron bridge agent has been configured in the compute node. The process can be verified using the below command in Controller node.
[Controller]# neutron agent-list
The output from the above command should list the new network agent at the compute node. That’s it! Launch a new VM and it should work.
I love bugs and I love fixing them!