You could see in this open source world alike OpenStack, OpenDaylight also getting its own popularity. Starting from the Hydrogen release, Opendaylight now with its 3rd release cycle named Lithium. There are more than 60+ projects available/incubated with OpenDaylight Lithium that could fulfill all the networking necessity around the SDN world. There also some dedicated projects for OpenStack that are designed and integrated with opendaylight. In this post, I will take you through the integration steps to deploy OpenStack to work with opendaylight.
1. Prerequisites
Before getting into the integration work, I consider the reader is already up with the working OpenStack-Kilo setup.
2. Install OpenDaylight:
OpenDaylight Controller runs in a JVM. So Install openjdk7 using the below command.
$ apt-get install openjdk-7-jdk |
Download the latest OpenDaylight-Lithium package from the official repo.
$ wget https://nexus.opendaylight.org/content/groups/public/org/opendaylight/integration/distribution-karaf/0.3.3-Lithium-SR3/distribution-karaf-0.3.3-Lithium-SR3.tar.gz |
Uncompress it as root, and start OpenDaylight using the command below,
$ tar xvfz distribution-karaf-0.3.3-Lithium-SR3.tar.gz
$ cd distribution-karaf-0.3.3-Lithium-SR3/ $ ./bin/start # Start OpenDaylight as a server process and Wait for some time before running the next command below. |
Connect to the Karaf shell,
$ ./bin/client # connecting to the OpenDaylight with the client |
Now, you should be in OpenDaylight’s console. Install all the required features.
opendaylight-user@root> feature:install odl-base-all odl-aaa-authn odl-restconf odl-nsf-all odl-adsal-northbound odl-mdsal-apidocs odl-ovsdb-openstack odl-ovsdb-northbound odl-dlux-core |
Note:-
For Openstack-Liberty version integration the only required (and working) features are:
feature:install odl–ovsdb–openstack odl–dlux-core #Thanks to Pedro André for this remark:-)
#Feature installation may take some time to install.
Once the installation is completed, you can check whether everything is working fine by using the below curl call.
$ curl -u admin:admin http://<OPENDAYLIGHT SERVER’s IP>:8080/controller/nb/v2/neutron/networks |
The response should be an empty network list if opendaylight is working properly.
Also, you should be able to log in to the dlux interface on http://<OPENDAYLIGHT SERVER’s IP>:8181/index.html – the default username and password is “admin/admin”. (see screenshot below)
$ tail -f data/log/karaf.log
$ tail -f logs/web_access_log_2015-12.txt |
Additionally, you can find the log details at the below location,
Now, you are up with the working OpenDaylight-Lithium setupJ. Let’s get into the Integration part,
3. Erase all VMs, networks, routers and ports in the Controller Node
Since, you already have the working OpenStack setup. You might test for VM provisioning as sanity test but before integrating the openstack with the OpenDaylight you must clean up all the unwanted data from the openstack database. When using OpenDaylight as the Neutron back-end, ODL expects to be the only source for Open vSwitch configuration. Because of this, it is necessary to remove existing OpenStack and Open vSwitch configurations to give OpenDaylight a clean slate.
Following steps will guide you through the cleaning process!
• Delete instances
$ nova list $ nova delete <instance names>
• Remove link from subnets to routers $ neutron subnet-list $ neutron router-list $ neutron router-port-list <router name> $ neutron router-interface-delete <router name> <subnet ID or name>
• Delete subnets, nets, routers $ neutron subnet-delete <subnet name> $ neutron net-list $ neutron net-delete <net name> $ neutron router-delete <router name>
• Check that all ports have been cleared – at this point, this should be an empty list $ neutron port-list |
Stop the neutron-server service:
While Neutron is managing the OVS instances on compute and control nodes, OpenDaylight and Neutron can be in conflict. To prevent issues, we turn off Neutron server on the network controller, and Neutron’s Open vSwitch agents on all hosts.
$ service neutron-server stop |
4. Configure OpenvSwitches in Network and Compute Nodes
The neutron plugin in every node must be removed because only OpenDaylight will be controlling the openvswitches. So on each host, we will clear the pre-existing Open vSwitch config and set OpenDaylight to manage the openVswitch.
$ apt-get purge neutron-plugin-openvswitch-agent
$ service openvswitch-switch stop $ rm -rf /var/log/openvswitch/* $ rm -rf /etc/openvswitch/conf.db #Clear openvswitch database and start it again. $ service openvswitch-switch start $ ovs-vsctl show # This command must return the empty set except OpenVswitch ID and it’s Version. |
5. Connect Openswitch with OpenDaylight:
Use the following commands to make the opendaylight manage the openvswitch,
$ ovs-vsctl set Open_vSwitch <OPENVSWITCH ID> other_config={‘local_ip’='<TUNNEL INTERFACE IP>’}
$ ovs-vsctl set-manager tcp:<OPENDAYLIGHT MANAGEMENT IP>:6640 |
You can get OpenVswitch ID from the command “ovs-vsctl show” and Tunnel IP from OpenStack ml2_conf.ini file.
Execute the above command in all the node(Network & Compute node) which has openVswitch Installed.
Create the bridge br-ex which is needed for the external network for OpenStack in the network(neutron) node.
$ ovs-vsctl add-br br-ex
$ ovs-vsctl add-port br-ex <INTERFACE NAME OF EXTERNAL NETWORK> #commonly eth0 or p2p1 $ ovs-vsctl show |
The above command will show that you are connected to the OpenDaylight server, and OpenDaylight will automatically create a br-int bridge.
|
6. Configure ml2_conf.ini for odl driver
Edit vi /etc/neutron/plugins/ml2/ml2_conf.ini in all the nodes required and modify the following configuration. And leave the other configurations as it is.
[ml2]
type_drivers = flat,vxlan tenant_network_types = vxlan mechanism_drivers = opendaylight
[ml2_odl] password = admin username = admin url = http://<OPENDAYLIGHT SERVER’s IP>:8080/controller/nb/v2/neutron |
7. Configure Neutron Database
Reset the neutron database,
$ mysql -uroot –p
$ drop database neutron; $ create database neutron; $ grant all privileges on neutron.* to ‘neutron’@’localhost’ identified by ‘<YOUR NEUTRON PASSWORD>’; $ grant all privileges on neutron.* to ‘neutron’@’%’ identified by ‘<YOUR NEUTRON PASSWORD>’; $ exit
$ su -s /bin/sh -c “neutron-db-manage –config-file /etc/neutron/neutron.conf –config-file etc/neutron/plugins/ml2/ml2_conf.ini upgrade head” neutron |
Restart the neutron-server:
8. Install networking_odl python moduleIMPORTANT: Probably, you should get the status as neutron service failed to start by this time. Don’t worry, this is a temporary issue. Since, you have enabled opendaylight as a mechanism_driver but not yet installed the python module for it. So here we go… Install networking_odl python module.
Now, restart the neutron-server and check its status which should be running without errors. 9. Verify the integration:We are almost completed the OpenStack with Opendaylight integration. Now, it’s time to verify it. Create initial networks in openstack and check whether the same is reflected in opendaylight. You could create the network using openstack horizon dashboard also. Below are the commands to create the same in CLI.
Once, the network creation is done. You could see the same networks has been created in opendaylight using the below command.
The above command will return the network information which is created in opendaylight through openstack.
Congratulations! You’re done! 🙂 If everything works correctly you will be able to ping every VM. _________________ Thanks, Vinoth Kumar selvaraj 23/Dec/2015 |
Hi,
While following your instructions I got stuck in chapter 5 (integrating ODL with Openstack).
It’s not clear in which nodes should be done the commands.
Also could you please clarify what you mean by the Tunner IP “…and Tunnel IP from OpenStack IP.”
Thanks.
Thanks for your insight on my blog.
1) You should follow that steps in Network node.
2) Tunnel Ip:
The local-IP you have mentioned in ml2_conf.ini file.This is the IP for VM-to-VM communication (Data Path network IP).
Hi,
thank you for your comments and update on this procedure.
I’ve currently using Liberty branch but, for some reason, it’s not working when trying to create the router (verify chapter).
Did you tried with this Openstack version?
Thanks and keep up this good job
I tried in Openstack Kilo and Opendaylight-Lithium SR2.
Hi,
Just a remark.
In Liberty version the only required (and working) features are:
feature:install odl-ovsdb-openstack odl-dlux-core
When installed other feature it broke the OVS connector.
Hope if helps you.
BR,
PMA
Thank you for your remark PMA,
I will update it shortly. 🙂
Thanks,
Vinoth
Hi,
if I dont’ add also odl-aaa-authn, it won’t work. So I have to do: feature:install odl-aaa-authn odl-ovsdb-openstack odl-dlux-core
I’m on Liberty + Beryllium right now
The error was:
Error executing command: Can’t install feature odl-dlux-core/0.0.0:
Could not start bundle mvn:org.opendaylight.aaa/aaa-shiro-act/0.3.0-Beryllium in feature(s) odl-restconf-1.3.0-Beryllium: The bundle “org.opendaylight.aaa.shiro-act_0.3.0.Beryllium [359]” could not be resolved. Reason: Missing Constraint: Import-Package: org.opendaylight.aaa.shiro; version=”[0.3.0,1.0.0)”
Hi Andre
I am doing the same implementation with Liberty, how many nodes do you have ?
and did you execute step 6. Configure ml2_conf.ini for odl driver for the COMPUTE node ?
Thanks
Milan
Hi finoth followed above instruction with latest kilo release of openstack.
openvswitch is connecting to ODL mgr, ovs-vsctl is showing connected but
br-int is not comming up.
Ensure that Opendaylight karaf is running while running “ovs-vsctl set Open_vSwitch … and its next command” , as it is responsible for creating br-int bridge.
br-int issue was with some package conflict on ODL side. i cleaned all.
installed just odl-ovsdb-openstack and br-int is coming up and flow rules are also commming to br-int.
But now vxlan tunnels are not coming up.
In /etc/neutron/plugins/ml2/ml2_conf.ini my tunnel ip is same as mgmt. interface ip
My ovs switch is also latest ovs_version: “2.3.2”
dont know what i’m missing.
HI,
I made all settings, you can create the network, but to try to create an instantiate I get the following error as if the node computer was not able to communicate with other nodes:
“Please try again later [Error:. No valid host was found There are not enough hosts available.].”
Would you help me?
Observation: it would be good to put in the tutorial in which node should be done the setting, I was a little lost and may have set the wrong node.
Adriano,
Could please post the error log here. Most likely you would find the errors in neutron log file at this situation.
Thanks,
Vinoth
Hi, i have the same problem, moreover i have also on all compute nodes and network node the br-int as well as br-ext on network node with status of DOWN (it should be rather UP, right?) ovs-system has also DOWN state. I can create new network, routers, but i can’t create any instance. My openstack is based on one controller node, two computes and one network node, ODL is on the dedicated separated machine.
neutron server.log on the controller has such errors:
2016-03-07 04:56:09.731 4188 ERROR neutron.plugins.ml2.managers [req-f9feedeb-bd21-45a2-81ed-dcdcd22db125 4a58c40737944ec8b34e0a199aff5348 9b8e31aadf4e4ed2ad034971136258dc – – -] Mechanism driver ‘opendaylight’ failed in update_port_postcommit
2016-03-07 04:56:09.731 4188 ERROR neutron.plugins.ml2.managers Traceback (most recent call last):
2016-03-07 04:56:09.731 4188 ERROR neutron.plugins.ml2.managers File “/usr/lib/python2.7/site-packages/neutron/plugins/ml2/managers.py”, line 394, in _call_on_drivers
2016-03-07 04:56:09.731 4188 ERROR neutron.plugins.ml2.managers getattr(driver.obj, method_name)(context)
2016-03-07 04:56:09.731 4188 ERROR neutron.plugins.ml2.managers File “/usr/lib/python2.7/site-packages/neutron/plugins/ml2/drivers/opendaylight/driver.py”, line 86, in update_port_postcommit
2016-03-07 04:56:09.731 4188 ERROR neutron.plugins.ml2.managers self.odl_drv.synchronize(‘update’, odl_const.ODL_PORTS, context)
2016-03-07 04:56:09.731 4188 ERROR neutron.plugins.ml2.managers File “/usr/lib/python2.7/site-packages/networking_odl/ml2/mech_driver.py”, line 58, in synchronize
2016-03-07 04:56:09.731 4188 ERROR neutron.plugins.ml2.managers self.sync_single_resource(operation, object_type, context)
2016-03-07 04:56:09.731 4188 ERROR neutron.plugins.ml2.managers File “/usr/lib/python2.7/site-packages/networking_odl/ml2/mech_driver.py”, line 167, in sync_single_resource
2016-03-07 04:56:09.731 4188 ERROR neutron.plugins.ml2.managers self.out_of_sync = True
2016-03-07 04:56:09.731 4188 ERROR neutron.plugins.ml2.managers File “/usr/lib/python2.7/site-packages/oslo_utils/excutils.py”, line 195, in __exit__
2016-03-07 04:56:09.731 4188 ERROR neutron.plugins.ml2.managers six.reraise(self.type_, self.value, self.tb)
2016-03-07 04:56:09.731 4188 ERROR neutron.plugins.ml2.managers File “/usr/lib/python2.7/site-packages/networking_odl/ml2/mech_driver.py”, line 164, in sync_single_resource
2016-03-07 04:56:09.731 4188 ERROR neutron.plugins.ml2.managers {object_type[:-1]: resource})
2016-03-07 04:56:09.731 4188 ERROR neutron.plugins.ml2.managers File “/usr/lib/python2.7/site-packages/networking_odl/common/client.py”, line 42, in sendjson
2016-03-07 04:56:09.731 4188 ERROR neutron.plugins.ml2.managers r.raise_for_status()
2016-03-07 04:56:09.731 4188 ERROR neutron.plugins.ml2.managers File “/usr/lib/python2.7/site-packages/requests/models.py”, line 851, in raise_for_status
2016-03-07 04:56:09.731 4188 ERROR neutron.plugins.ml2.managers raise HTTPError(http_error_msg, response=self)
2016-03-07 04:56:09.731 4188 ERROR neutron.plugins.ml2.managers HTTPError: 500 Server Error: Server Error
2016-03-07 04:56:09.731 4188 ERROR neutron.plugins.ml2.managers
2016-03-07 04:56:09.734 4188 ERROR neutron.plugins.ml2.plugin [req-f9feedeb-bd21-45a2-81ed-dcdcd22db125 4a58c40737944ec8b34e0a199aff5348 9b8e31aadf4e4ed2ad034971136258dc – – -] _bind_port_if_needed failed, deleting port ‘1207be0e-1e3e-450a-a63a-7b0826246e1d’
2016-03-07 04:56:10.030 4188 ERROR neutron.api.v2.resource [req-f9feedeb-bd21-45a2-81ed-dcdcd22db125 4a58c40737944ec8b34e0a199aff5348 9b8e31aadf4e4ed2ad034971136258dc – – -] create failed
2016-03-07 04:56:10.030 4188 ERROR neutron.api.v2.resource Traceback (most recent call last):
2016-03-07 04:56:10.030 4188 ERROR neutron.api.v2.resource File “/usr/lib/python2.7/site-packages/neutron/api/v2/resource.py”, line 83, in resource
2016-03-07 04:56:10.030 4188 ERROR neutron.api.v2.resource result = method(request=request, **args)
2016-03-07 04:56:10.030 4188 ERROR neutron.api.v2.resource File “/usr/lib/python2.7/site-packages/oslo_db/api.py”, line 146, in wrapper
2016-03-07 04:56:10.030 4188 ERROR neutron.api.v2.resource ectxt.value = e.inner_exc
2016-03-07 04:56:10.030 4188 ERROR neutron.api.v2.resource File “/usr/lib/python2.7/site-packages/oslo_utils/excutils.py”, line 195, in __exit__
2016-03-07 04:56:10.030 4188 ERROR neutron.api.v2.resource six.reraise(self.type_, self.value, self.tb)
2016-03-07 04:56:10.030 4188 ERROR neutron.api.v2.resource File “/usr/lib/python2.7/site-packages/oslo_db/api.py”, line 136, in wrapper
2016-03-07 04:56:10.030 4188 ERROR neutron.api.v2.resource return f(*args, **kwargs)
2016-03-07 04:56:10.030 4188 ERROR neutron.api.v2.resource File “/usr/lib/python2.7/site-packages/neutron/api/v2/base.py”, line 516, in create
2016-03-07 04:56:10.030 4188 ERROR neutron.api.v2.resource obj = do_create(body)
2016-03-07 04:56:10.030 4188 ERROR neutron.api.v2.resource File “/usr/lib/python2.7/site-packages/neutron/api/v2/base.py”, line 498, in do_create
2016-03-07 04:56:10.030 4188 ERROR neutron.api.v2.resource request.context, reservation.reservation_id)
2016-03-07 04:56:10.030 4188 ERROR neutron.api.v2.resource File “/usr/lib/python2.7/site-packages/oslo_utils/excutils.py”, line 195, in __exit__
2016-03-07 04:56:10.030 4188 ERROR neutron.api.v2.resource six.reraise(self.type_, self.value, self.tb)
2016-03-07 04:56:10.030 4188 ERROR neutron.api.v2.resource File “/usr/lib/python2.7/site-packages/neutron/api/v2/base.py”, line 491, in do_create
2016-03-07 04:56:10.030 4188 ERROR neutron.api.v2.resource return obj_creator(request.context, **kwargs)
2016-03-07 04:56:10.030 4188 ERROR neutron.api.v2.resource File “/usr/lib/python2.7/site-packages/neutron/plugins/ml2/plugin.py”, line 1051, in create_port
2016-03-07 04:56:10.030 4188 ERROR neutron.api.v2.resource self.delete_port(context, result[‘id’])
2016-03-07 04:56:10.030 4188 ERROR neutron.api.v2.resource File “/usr/lib/python2.7/site-packages/oslo_utils/excutils.py”, line 195, in __exit__
2016-03-07 04:56:10.030 4188 ERROR neutron.api.v2.resource six.reraise(self.type_, self.value, self.tb)
2016-03-07 04:56:10.030 4188 ERROR neutron.api.v2.resource File “/usr/lib/python2.7/site-packages/neutron/plugins/ml2/plugin.py”, line 1046, in create_port
2016-03-07 04:56:10.030 4188 ERROR neutron.api.v2.resource bound_context = self._bind_port_if_needed(mech_context)
2016-03-07 04:56:10.030 4188 ERROR neutron.api.v2.resource File “/usr/lib/python2.7/site-packages/neutron/plugins/ml2/plugin.py”, line 284, in _bind_port_if_needed
2016-03-07 04:56:10.030 4188 ERROR neutron.api.v2.resource context, need_notify)
2016-03-07 04:56:10.030 4188 ERROR neutron.api.v2.resource File “/usr/lib/python2.7/site-packages/neutron/plugins/ml2/plugin.py”, line 322, in _attempt_binding
2016-03-07 04:56:10.030 4188 ERROR neutron.api.v2.resource plugin_context, port_id, binding, bind_context)
2016-03-07 04:56:10.030 4188 ERROR neutron.api.v2.resource File “/usr/lib/python2.7/site-packages/neutron/plugins/ml2/plugin.py”, line 442, in _commit_port_binding
2016-03-07 04:56:10.030 4188 ERROR neutron.api.v2.resource self.mechanism_manager.update_port_postcommit(cur_context)
2016-03-07 04:56:10.030 4188 ERROR neutron.api.v2.resource File “/usr/lib/python2.7/site-packages/neutron/plugins/ml2/managers.py”, line 631, in update_port_postcommit
2016-03-07 04:56:10.030 4188 ERROR neutron.api.v2.resource continue_on_failure=True)
2016-03-07 04:56:10.030 4188 ERROR neutron.api.v2.resource File “/usr/lib/python2.7/site-packages/neutron/plugins/ml2/managers.py”, line 405, in _call_on_drivers
2016-03-07 04:56:10.030 4188 ERROR neutron.api.v2.resource method=method_name
2016-03-07 04:56:10.030 4188 ERROR neutron.api.v2.resource MechanismDriverError: update_port_postcommit failed.
2016-03-07 04:56:10.030 4188 ERROR neutron.api.v2.resource
Any ideas? Anyone has similar issues?
ODL – beryllium, OS – liberty
Macko,
Just a suggestion!
Since logs shows the Post-commit error!
I would suggest you to check from ODL controller side. Because Post-commit usually occurs when everything works fine from openstack end.
In your case, Openstack neutron successfully triggers the odl APIs to create ports but ODL failed at some level in creating the port in ovs-switch end.
Thanks,
Vinoth
thank you for suggestion
Definitely, your suggestion is good. There is some problem on ODL site – ODL returns HTTP/1.1 500 Server Error. Have you any ideas what/how to investigate this problem?
The example API call from neutron to ODL, to create port:
PUT /controller/nb/v2/neutron/ports/da9aca8e-45c6-44eb-8467-c18906fde67f HTTP/1.1
Host: 192.168.128.159:8080
Content-Length: 2661
Accept-Encoding: gzip, deflate
Accept: */*
User-Agent: python-requests/2.7.0 CPython/2.7.5 Linux/3.10.0-327.10.1.el7.x86_64
Connection: keep-alive
Content-Type: application/json
Authorization: Basic YWRtaW46YWRtaW4=
{
“port”: {
“binding:host_id”: “computeD2.wro.lab”,
“allowed_address_pairs”: [],
“extra_dhcp_opts”: [],
“device_owner”: “compute:nova”,
“binding:profile”: {},
“security_groups”: [
{
“tenant_id”: “6d56ef1007604941936ca0b8f964049a”,
“description”: “Default security group”,
“id”: “efc702da-95b5-4ab6-9a5b-c6c3aaf1e15d”,
“security_group_rules”: [
{
“remote_group_id”: null,
“direction”: “egress”,
“remote_ip_prefix”: null,
“protocol”: null,
“ethertype”: “IPv4”,
“tenant_id”: “6d56ef1007604941936ca0b8f964049a”,
“port_range_max”: null,
“port_range_min”: null,
“id”: “1ff21a35-0e47-41aa-9542-12700e0eb644”,
“security_group_id”: “efc702da-95b5-4ab6-9a5b-c6c3aaf1e15d”
},
{
“remote_group_id”: null,
“direction”: “egress”,
“remote_ip_prefix”: null,
“protocol”: null,
“ethertype”: “IPv6”,
“tenant_id”: “6d56ef1007604941936ca0b8f964049a”,
“port_range_max”: null,
“port_range_min”: null,
“id”: “333b70d4-1835-4c46-9254-d4472171a8a6”,
“security_group_id”: “efc702da-95b5-4ab6-9a5b-c6c3aaf1e15d”
},
{
“remote_group_id”: “efc702da-95b5-4ab6-9a5b-c6c3aaf1e15d”,
“direction”: “ingress”,
“remote_ip_prefix”: null,
“protocol”: null,
“ethertype”: “IPv6”,
“tenant_id”: “6d56ef1007604941936ca0b8f964049a”,
“port_range_max”: null,
“port_range_min”: null,
“id”: “be10c2a3-4085-427c-9bdd-a5aafde2d1e6”,
“security_group_id”: “efc702da-95b5-4ab6-9a5b-c6c3aaf1e15d”
},
{
“remote_group_id”: “efc702da-95b5-4ab6-9a5b-c6c3aaf1e15d”,
“direction”: “ingress”,
“remote_ip_prefix”: null,
“protocol”: null,
“ethertype”: “IPv4”,
“tenant_id”: “6d56ef1007604941936ca0b8f964049a”,
“port_range_max”: null,
“port_range_min”: null,
“id”: “deaad0e3-ddb5-40f1-8904-0da7931d42e0”,
“security_group_id”: “efc702da-95b5-4ab6-9a5b-c6c3aaf1e15d”
}
],
“name”: “default”
}
],
“device_id”: “351fbb8d-f0cd-408f-a3eb-aa4b0fa8996a”,
“name”: “”,
“admin_state_up”: true,
“dns_name”: “”,
“binding:vif_details”: {},
“binding:vnic_type”: “normal”,
“binding:vif_type”: “binding_failed”
}
}HTTP/1.1 500 Server Error
Content-Length: 0
Server: Jetty(8.1.15.v20140411)
Hi, I am experiencing the same issue. Did you fix it? Can you post the solution? Thank you.
root@node-1:~/distribution-karaf-0.3.3-Lithium-SR3# ./bin/client
client: JAVA_HOME not set; results may vary
What should be the password here??
root@node-1:~/distribution-karaf-0.3.3-Lithium-SR3# ./bin/client
client: JAVA_HOME not set; results may vary
Logging in as _g_:admingroup
280 [sshd-SshClient[5575b132]-nio2-thread-2] WARN org.apache.sshd.client.keyverifier.AcceptAllServerKeyVerifier – Server at [/0.0.0.0:8101, DSA, c2:c2:c4:53:09:00:67:82:d7:c7:04:19:4d:d2:69:4e] presented unverified {} key: {}
Password:
Password:
Password:
Authentication failed
Try this,
# ./bin/start
# ./bin/client -u karaf
Thank you for the reply. Was able to login using ./bin/client -u karaf
Now. i am not able to login to the ODL controller GUI:After installing all features when I try to login using the http://:8181/index.html – I get the following update on the karaf client
opendaylight-user@root>feature:install odl-base-all odl-aaa-authn odl-restconf odl-nsf-all odl-adsal-northbound odl-mdsal-apidocs odl-ovsdb-openstack odl-ovsdb-northbound odl-dlux-core
Refreshing bundles org.apache.aries.util (9)
Refreshing bundles org.ops4j.pax.web.pax-web-api (77), org.apache.xbean.bundleutils (74), org.ops4j.pax.web.pax-web-jetty (80), io.netty.codec (148), io.netty.handler (151), org.ops4j.pax.web.pax-web-sp i (78), org.ops4j.pax.web.pax-web-runtime (79), com.sun.jersey.servlet (154)
GossipRouter started at Wed Feb 17 22:33:55 GMT 2016
Listening on port 12001 bound on address 0.0.0.0/0.0.0.0
Backlog is 1000, linger timeout is 2000, and read timeout is 0
opendaylight-user@root>
opendaylight-user@root>Exception in thread “Thread-155” java.net.BindException: Address already in use
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:463)
at sun.nio.ch.Net.bind(Net.java:455)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
at io.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:125)
at io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:485)
at io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1081)
at io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:502)
at io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:487)
at io.netty.channel.ChannelDuplexHandler.bind(ChannelDuplexHandler.java:38)
at io.netty.handler.logging.LoggingHandler.bind(LoggingHandler.java:240)
at io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:502)
at io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:487)
at io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:904)
at io.netty.channel.AbstractChannel.bind(AbstractChannel.java:198)
at io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:348)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:357)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:357)
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:111)
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)
at java.lang.Thread.run(Thread.java:745)
root@node-13:~/distribution-karaf-0.3.3-Lithium-SR3# history
I am trying this configuration on Openstack kilo (Mirantis). So all these configurations are done on controller node which also has neutron services.
Thank you!
Hi,
This error could be due to the openVswitch-switch running in your ODL controller machine. So before starting the odl, make sure openvwitch service is at stop state.
Thanks,
Vinoth
can you give me some more references, which are more clear. a bit more explanation.
hi
i followed all the steps mentioned here but i couldn’t launch instance. neutron server log says port binding failed on host compute. In network node l3 agent log says cannot find br-int. I added br-int manually on compute and network nodes but i am facing ‘port binding failed ‘. After creating networks, In ODL node if i do curl for neutron networks it shows 404 error, before integrating i got empty as output. Please help me with the issue. Thank you!
Which ODL and OpenStack release are you using?
And what plugin and mechanism driver configured in your OpenStack?
whether openVswitch or Linux bridge?
Thanks for replying. ODL version is Lithium SR3 and Openstack version is liberty with Open vSwitch and mechanism driver is configured as opendaylight as mentioned in the post on both compute and networking nodes. All the features mentioned here are installed in ODL.
Could please share your logs here?
Thanks for replying. I solved the errors related networking by using beryllium version of ODL. After installing python-pip and networking_odl, keystone got destroyed. All the commands are throwing 500 error. Restarting keystone Details are below
No handlers could be found for logger “keystoneclient.auth.identity.generic.base” ERROR (InternalServerError): Internal Server Error (HTTP 500)
netstat shows
netstat -plant |grep 5000
tcp6 0 0 :::5000 :::* LISTEN 2233/apache2
netstat -plant |grep 35357
tcp6 0 0 :::35357 :::* LISTEN 2233/apache2
Restarting service with systemd-start got following error “Address already in use” link https://gist.github.com/harsha-hari/13efdd7ed35b88037786
Please help with this. Thank you!
I Posted the log here https://ask.openstack.org/en/question/89726/openstack-and-opendaylight-integration-keystone-issue/ can get a idea i guess. Thank you!
I installed OpenStack Liberty + Lithium SR3 and this is working just for liberty you need to install additional liberty opendaylight driver that is avalaible at git.
git clone https://github.com/openstack/networking-odl -b stable/liberty
python setup.py install
instead of
$ apt-get install python-pip
$ pip install networking_odl
one question just, here in the verification you only create private network, this is working for me, but what about public net?
i managed to create the network and sub-net public but i can not boot an instance, i get bind port failed at the openvswtich of OpenStack
Hi ,
Thanks for the feedback.
Answering your question, At the time of writing this article, Public network creation is not supported in OpednDalight Lithium.So I tried only with local network creation.
Now, At beryllium release, it may be available but I am not sure about it.
If you find any information related to this, please update it here.
Thanks,
Vinoth
Hi Vinoth
One aditional question, step 6. Configure ml2_conf.ini for odl driver do i need to execute in controller+network node only or in controller+network and compute node ??
in my scenario i have 2 nodes, one is controller+networking and the second is compute
Thanks
Milan
Milan,
From the openstack architecture view, It’s not necessary to Configure ODL driver in the compute node. But I don’t have hands-on experience with DVR concept which may require configuration in compute node also. So why to give a chance for error! Configuring it in compute node won’t backfire us and moreover it will simply ignore the configuration if it is not necessary. So I would recommend to install it on controller+network and compute node.
Thanks,
Vinoth
Hello vinoth,
I followed your steps till creating database in mysql. However when I run neutron-db-manager … upgrade head neutron, it shows there is no user neutron in passwd.
After rechecking in /etc/passwd there is no user neutron.
How do i solve this problem?
Hi,
You might miss the neutron DB user creation part.
Please follow the section 7 again and make sure that you run the command inside the MySQL terminal without any error message.
Thanks,
Vinoth
What version of openvswitch is needed to integrate it with opendaylight lithium controller. Currently I am using version: 2.0.2.
I am unable to connect controller to ovsdb. Suggest methods to troubleshoot.
thank you
hi,from your steps,my instance can’t get ip ,ovs on compute node drop all packets,why?please help me
Hello,
is it possible to have the same configuration, but with VLAN provider networks instead of GRE/VXLAN?
The configuration works well with openvswitch-agent, but when using ODL instead of the openvswitch-agent, my VM-to-VM communication does not work anymore. Any clues?
hello , im facing the same problem . Does it work with VLAN provider ??
Dear,
Many thanks for your efforts.
I try to follow all the steps, but I ask if there is any configuration to do in Openstack?? Can you help me to easily move to the other steps?
I found also some problem when introducing this command Service neutron-server stop : the command is not found, is there any other option to stop neutron server?
Best Regards
Hi,
I want to integrate the Opendaylight Lithium with Openstack Kilo.
I followed the document and the VM is created.
The VM port is shown in the OVS and ODL.
There’s no error message on the neutron, but the VM does not get IP.
Any idea?
root@compute1:/etc/init.d# ovs-vsctl show
54f90d4d-7feb-48cb-9f8d-de05f5f49728
Manager “tcp:10.2.0.13:6640”
is_connected: true
Bridge br-int
Controller “tcp:10.2.0.13:6633”
is_connected: true
Port br-int
Interface br-int
type: internal
Port “tapf2e4840f-de”
Interface “tapf2e4840f-de”
ovs_version: “2.3.2”
root@network:/etc/init.d# ovs-vsctl show
2475de2e-6513-4d15-af04-3277ef55662b
Manager “tcp:10.2.0.13:6640”
is_connected: true
Bridge br-ex
Controller “tcp:10.2.0.13:6633”
is_connected: true
Port “qg-319443bc-99”
Interface “qg-319443bc-99”
type: internal
Port br-ex
Interface br-ex
type: internal
Port “eth3”
Interface “eth3”
Bridge br-int
Controller “tcp:10.2.0.13:6633”
is_connected: true
Port “qr-39a2391e-1d”
Interface “qr-39a2391e-1d”
type: internal
Port br-int
Interface br-int
type: internal
Port “tapd80e005a-3b”
Interface “tapd80e005a-3b”
type: internal
ovs_version: “2.3.2”
nova list
+————————————–+———-+——–+————+————-+———————————-+
| ID | Name | Status | Task State | Power State | Networks |
+————————————–+———-+——–+————+————-+———————————-+
| 968fc6b5-a691-471a-b4a4-0c39eaad2996 | servidor | ACTIVE | – | Running | demo-net=192.168.1.5, 30.2.0.102 |
+————————————–+———-+——–+————+————-+———————————-+
HI, Kumar Selvaraj.
Thank you for your post. I followed your post and installed OpenDaylight. But I got something wrong. I checked the neutron log and every time it starts, an error show ‘Could not load ‘opendaylight’: No module named opendaylight.driver’.
I did pip install networking_odl
and also I followed a suggestion above using
git clone https://github.com/openstack/networking-odl -b stable/liberty
python setup.py install
I actually did install networking-odl and networking_odl as other tutorials suggests.
But this still did not work. Could you give me some advice?
Having read this I believed it was rather enlightening. I appreciate you finding the
time and effort to put this article together. I once again find myself
personally spending a significant amount of time both
reading and posting comments. But so what, it was still worthwhile!
Respected Sir,
I am trying to integrate Openstack Ussuri with Opendaylight Lithium. i am facing issue at stage 7. I am not able to start a neutron service. What can be the problem?
https://uploads.disquscdn.com/images/46014032d29d8909a6dd3b80aa3427d1ed7b484d46e38a8790667becce59e93a.png