OpenDaylight Integration with OpenStack
This repository provides a set of virtual scenarios to explore an OpenStack environment in which OpenDaylight is the network management provider.
Demo scenarios have been created using Virtual Networks over linuX (VNX).
- VNX installed (VNX Installation Guide)
- KVM-based nested virtualization
- Hard Drive: 5 GB avaible space (Filesystem size)
- Memory: 4 GB RAM or more
STEP 1: Clone this repository
$ git clone https://github.com/ralvarep/odl-openstack.git
STEP 2: Build filesystem (Read filesystems/00-README.txt)
Virtual scenarios have been configured using filesystems in copy-on-write (COW) mode. This allows you to use a single filesystem for all virtual machines, thereby optimizing the disk space occupied.
STEP 3: Create virtual scenario
There are several scenarios in which you can interact. To create them:
$ sudo vnx -f SCENARIO_FILE.xml -t SCENARIO_FILE => single-node => multi-node_2nodes => multi-node_3nodes => multi-node_4nodes
STEP 4: Start virtual scenario
The virtual scenarios can be started with different configurations. For this, it is automatically loaded the appropriate configuration in DevStack nodes.
When the scenario is created, login to consoles with vnx:xxxx, and then run in the host:
$ sudo vnx -f SCENARIO_FILE.xml -x CONF_TAG --h2vm-timeout 0 CONF_TAG => start-no-odl (Start DevStack, without OpenDaylight) => start-odl-l2 (Start DevStack with OpenDaylight [L2 services]) => start-odl-l3 (Start DevStack with OpenDaylight [L2 & L3 services])
This step takes several minutes, about 5-10 min (depending on the chosen configuration and host computing capacity).
Finally, the following message will be showed...
This is your host ip: 10.0.0.11 Horizon is now available at http://10.0.0.11/ Keystone is serving at http://10.0.0.11:5000/ The default users are: admin and demo The password: password
...and you can test OpenDaylight and OpenStack ☺.
Horizon is avaible from host through 192.168.122.11.
- Stop DevStack and OpenDaylight
$ sudo vnx -f SCENARIO_FILE.xml -x stop
- Shutdown scenario
$ sudo vnx -f SCENARIO_FILE.xml --shutdown
- Start scenario that has previously been shutdown
$ sudo vnx -f SCENARIO_FILE.xml --start
- Destroy scenario
$ sudo vnx -f SCENARIO_FILE.xml -P
- Other useful tags to be executed
$ sudo vnx -f SCENARIO_FILE.xml -x TAG TAG => stack (Execute stack.sh) => unstack (Execute unstack.sh) => start-odl (Start OpenDaylight) => stop-odl (Stop OpenDaylight)
- To resize consoles, execute in each VM:
Single-node (with external OpenDaylight)
=> ctrl-comp1 (Controller node [Controller + Network + Compute])
=> odl......... (OpenDaylight node) => ctrl-comp1.. (Controller node [Controller + Network + Compute])
=> odl......... (OpenDaylight node) => ctrl-comp1.. (Controller node [Controller + Network + Compute1]) => comp2....... (Compute node [Compute2])
=> odl......... (OpenDaylight node) => ctrl-comp1.. (Controller node [Controller + Network + Compute1]) => comp2....... (Compute node [Compute2]) => comp3....... (Compute node [Compute3])
Example topologies in OpenStack
The XML templates of virtual scenarios (SCENARIO_FILE.xml) have been configured for a host with 8 VCPU and 16 GB RAM. If you have less memory and computing resources, these values can be changed in the definitions of virtual machines.
It has been used virbr0 network in these scenarios, which is provided by default by libvirt. If you are using other libvirt network, change 192.168.122.X for you network IP in SCENARIO_FILE.xml files and local.conf located under conf folder.
This project has been developed by Raúl Álvarez Pinilla as a result of the Master's Thesis entitled "Study of Software Defined Networking through the development of virtual scenarios based on the OpenDaylight controller" in Telematics Engineering Department (DIT) of the Technical University of Madrid (UPM).