OpenStack and
OpenDaylight: Overview
and Workshop
Vishal Thapar, Tech Lead, Ericsson
Romil Gupta, Senior Software Engineer, HP
How do I learn to stop worrying
about OpenStack and OpenDaylight,
and just bring them together?
What are we going to do?
Agenda
High level overview of OpenStack and
Neutron
A bit deeper look into Neutron ML2
Higher level overview of OpenDaylight
OpenStack and OpenDaylight integration
Hands on workshop
Exercises/Presentations
OpenStack for beginners
OpenStack: The Open Source
Cloud Platform
Your Application
Compute (Nova)
Self-service provisioning of
virtual machines through a
software API
Network Service
(Neutron)
For tenant created, virtual
isolated networks and
subnets, and services
Object Storage (Swift)
Massively scalable,
distributed object store
OpenStack Community Releases
Folsom October 2012
Quantum core
Cinder block storage
Juno October 2014
DVR
Support for IPv6
Icehouse April 2014
Stability
Test coverage gaps
Essex April 2012
Identity, Dashboard
Quantum incubation
2012
2011
Kilo April 2015
Vendor
Decomposition
2013
2014
Diablo September 2011
First production-ready release
Initial deployments
Catus April 2011
Multi-hypervisor
KVM/QEMU, Xen
Bexar February 2011
Second Release
Compute prod ready
Austin October 2010
Initial Release
Compute (dev)
Object Storage
Havana October 2013
L3 Network services
(planned)
Grizzly April 2013
Metering, Orchestration,
Bare metal, LBaaS
2015
OpenStack Architecture
What is Neutron?
Neutron is an OpenStack project to provide
Networking as a Service between interface
devices managed by other OpenStack
services.
Basic API Abstraction (port, subnet,
network)
Operator selects backends to implement the
core API (ML2, OpenvSwitch, Linux Bridge
etc.)
Extendable API to provide advanced services
(LBaaS, FWaaS etc.)
What is this Neutron ML2?
Modular Layer 2
Now a core
plugin since
Havana,
Icehouse and
beyond!
Neutron ML2 Plugin
OVS
Linux
Bridge
Hyper-V
Network
Vendor
X
Vendor
Y
Deprecates
the OVS,
LinuxBridge,
and Hyper-V
plugins!
ML2 Use Cases
Replaces existing monolithic plugins, eases
development of new plugins
Eliminates redundant code
Reduce development and maintenance effort
New features
Top-of-Rack switch control
Avoid tunnel flooding via L2 population
Modular Agents
Heterogeneous deployments
Specialized hypervisor nodes with distinct
network mechanisms
Integrate *aaS appliances
Roll new technologies into existing deployments
ML2 Architecture Diagram
Neutron Server
ML2 Plugin
API Extensions
Type Manager
Mechanism Manager
???
Tail-F NCS
Open
vSwitch
Linuxbridge
L2 Pop
Hyper-V
Cisco
Nexus
Arista
VXLAN
Type
Driver
VLAN
Type
Driver
GRE Type
Driver
Let there be OpenDaylight
What is OpenDaylight
Architecture overview
When OpenStack met OpenDaylight
OpenStack Integration status
ODL ML2 driver available in Icehouse
release
Supported VXLAN and GRE
Devstack support
Focused on core Neutron Functionality, still
used DHCP, L3 Agents
ODL ML2 in Kilo (current)
Changed auth to basic auth
Vendor decomposition networking-odl in
stackforge
Support for L3 Service, FWaaS, LBaaS
OpenStack and ODL
OpenDaylight Node
Neutron Node
Neutron Server
OpenDaylight Server
Neutron API Service
ML2 Plugin w/
OpenDaylight Driver
OVSDB Plugin
REST API
Compute Node
VM1
Network Node
VM2
OVS
L3 Agent
RPC
DHCP
Agent
OVS
OpenFlow &
OVSDB
Neutron
ML2 Plug-In
OpenDaylight NorthBound API Layer - REST APIs
OpenDaylight Neutron REST-API
OVSDB Neutron Application
API Driven SAL (ADSAL)
Configuration
Service
Inventory
Service
Connection
Service
OVSDB South-bound Plugin
Model Driven SAL (MDSAL)
Flow
Programmer
Inventory
Service
OpenFlow 1.0 SB Plugin
Connection
Service
Flow
Programmer
OpenFlow 1.3 SB Plugin
OpenFlow 1.0 Plugin
OpenFlow 1.3 Plugin
Bidirectional JSON-RPC Library
OpenFlow 1.0 Library
OpenFlow 1.3 Library
Netty.io
java.nio.socket
OVSDB Protocol Library
OpenFlow 1.0
OpenVSwitch
Netty io
Lets play!
What you need OpenStack
Ubuntu 14.0.x VM with a NAT and a
Host-Only Adaptor 4GB RAM
recommended, minimum 2GB
Clone devstack repository
Internet access from your VM
Good to have: Try out devstack from
https://wiki.opendaylight.org/view/OVSD
B:OVSDB_OpenStack_Guide
What you need - ODL
Running on your laptop or VM (4GB
RAM minimum for VM)
Setup dev environment: Java, Maven
Clone Integration repo and compile, or
get Helium SR3 binary
Eclipse Optional
Good to have: Run ODL and
feature:install odl-ovsdb-openstack to
make sure all artifacts are available in
local repository
Workshop Walkthrough
Run ODL on your laptop/VM
OpenStack VMs provided as OVAs, boot
and login as stack/stack.
cd devstack and edit local.conf so that
IP Addresses match your setup
Run devstack: ~/devstack/stack.sh
Workflow - Installation
Stack.sh
ODL
Neutron
OVSDB Connect
CLI/
Horizon
OpenFlow Connect
Nova
Set-manager
Configure bridge
Open vSwitch
libvirt
Workflow Create Network/Subnet
CLI/
Horizon
ODL
Nova
Open
vSwitch
libvirt
Create Network
Create Subnet
Neutron
Log in to Horizon (admin/admin)
Workflow Create VM
CLI/
Horizon
Create VM
Nova
ODL
OpenFlow Port Status
Notification
Create
Neutron Port
Neutron
Create VM
libvirt
OpenFlow Flows
Open vSwitch
Horizon Dashboard
Launch VM
Launch VM
Launch VM (contd.)
Instance is booted
Boot another instance
Playtimes over
Links
https://wiki.opendaylight.org/view/OpenSt
ack_and_OpenDaylight
https://github.com/vthapar/odl-openstack/
https://github.com/romilgupta/OpenstackODL-Script
https://ask.opendaylight.org/questions/
IRC: #opendaylight, #opendaylightovsdb, #sdn-bangalore
Meetup:
http://www.meetup.com/Bangalore-SDNand-NFV-meetup/
Questions?
Thank you
Kyle Mestery, Brent Salisbury, Madhu
Venogopal for their informative blogs and
videos
Sam Hague and Flavio Fernandes for their
prompt responses in ovsdb-dev
Everyone else in ovsdb-dev and
#opendaylight-ovsdb for being a great
community