18
networking-odl Syncing OpenDaylight with OpenStack Neutron Isaku Yamahata OpenDaylight Developer Design Forum Feb 29, 2016

networking-odl - events.static.linuxfound.org to feed openstack neutron and networking-odl align networking-odl with ODL neutron northbound https: ... lbaas, fwaas etc

  • Upload
    vonhu

  • View
    216

  • Download
    1

Embed Size (px)

Citation preview

Page 1: networking-odl - events.static.linuxfound.org to feed openstack neutron and networking-odl align networking-odl with ODL neutron northbound https: ... lbaas, fwaas etc

networking-odlSyncing OpenDaylight with OpenStack Neutron

Isaku YamahataOpenDaylight Developer Design Forum Feb 29, 2016

Page 2: networking-odl - events.static.linuxfound.org to feed openstack neutron and networking-odl align networking-odl with ODL neutron northbound https: ... lbaas, fwaas etc

This session goal● To socialise what’s happening in openstack side to OpenDaylight community

○ what’s coming, what’s expected

● To gather requirements/requests/wishlists… for openstack neutron and networking-odl to feed openstack neutron and networking-odl

○ align networking-odl with ODL neutron northbound

● https://pad.opendaylight.org/p/neutron-northbound-boron-planning● https://wiki.opendaylight.org/view/NeutronNorthbound:NeutronDriverOverhaul

Page 3: networking-odl - events.static.linuxfound.org to feed openstack neutron and networking-odl align networking-odl with ODL neutron northbound https: ... lbaas, fwaas etc

Why networking-odl v2 driver?● There are some gaps with the existing(v1) implementation

○ it was good for PoC, but it’s a toy for production environment○ reported at the last OpenDaylight summit○ https://wiki.opendaylight.org/images/8/8d/Experiences_with_Neutron.pdf by Wojciech Dec○ There is race conditions

○ It doesn't scale well

○ It doesn't support Neutron HA

● It’s quite difficult to address the found issues with modifying/enhancing the existing implementation

This effort is started and mainly driven by Arvind Somya and Rich Curran

Page 4: networking-odl - events.static.linuxfound.org to feed openstack neutron and networking-odl align networking-odl with ODL neutron northbound https: ... lbaas, fwaas etc

The existing implemenetation

networking-odl

Neutron

OpenDaylight

Neutron Northbound

openstack service provider

Race Condition

Simple full sync logc on error

DB

MD-SAL

DB and MD-SAL can be out-of-sync

Page 5: networking-odl - events.static.linuxfound.org to feed openstack neutron and networking-odl align networking-odl with ODL neutron northbound https: ... lbaas, fwaas etc

DB

New Architecture

networking-odl

Neutron

OpenDaylight

Neutron Northbound

openstack service provider

networking-odl

Neutron

OpenDaylight

Neutron Northbound

openstack service provider

LoadBalancer(HAProxy)

networking-odl

Neutron

OpenDaylight

Neutron Northbound

openstack service provider

operation Log

Syncer Syncer Syncer

Monitor connection

MD-SAL

DB

Page 6: networking-odl - events.static.linuxfound.org to feed openstack neutron and networking-odl align networking-odl with ODL neutron northbound https: ... lbaas, fwaas etc

Goal of networking-odl v2 driver?● Make networking-odl usable in production environment

○ Eliminate race conditions

○ Scalability

○ support neutron HA: to have multiple instance of openstack neutron servers

○ well-tested code

● smooth transition from v1 to v2 driver

● Introduce a solid design for feature

https://wiki.opendaylight.org/view/NeutronNorthbound:NeutronDriverOverhaul

Page 7: networking-odl - events.static.linuxfound.org to feed openstack neutron and networking-odl align networking-odl with ODL neutron northbound https: ... lbaas, fwaas etc

What impact on ODL?● Goal is to minimize impact on ODL. Ideally no impact

● At first phase, no impact on ODL. just drop-in replacement with the old code● At second phase, consider modification/enhancement of the communication

between networking-odl and OpenDaylight○ Mainly the modification would be in ODL Neutron Northbound○ The current openstack-service provider could work without (major) modification○ For better functionality, modification to openstack service-provider would be necessary

Page 8: networking-odl - events.static.linuxfound.org to feed openstack neutron and networking-odl align networking-odl with ODL neutron northbound https: ... lbaas, fwaas etc

Timeline

Mitaka Newton Ocata

● Introduce v2 driver● migrate to v2 ODL

driver, eliminate the existing ODL driver

● ML2 driver, L3 pluing

● lightweight test framework for neutron HA

● migrate all services: lbaas, fwaas etc…

● introduce advanced features

○ healing data breakage

○ notification○ restconf

● evaluation

Done!

Page 9: networking-odl - events.static.linuxfound.org to feed openstack neutron and networking-odl align networking-odl with ODL neutron northbound https: ... lbaas, fwaas etc

JournalEntry

PENDING PROCESSING COMPLETED

Retry upto X number of times

precommit

sync threadorpostcommit(fastpath)

rest request to ODLsuccess

FAILEDfailure evenafter X retries

BONUS: this introduces resiliency against Neutron Server Crash.

Page 10: networking-odl - events.static.linuxfound.org to feed openstack neutron and networking-odl align networking-odl with ODL neutron northbound https: ... lbaas, fwaas etc

Neutron HA support● Have mulitple instance of Neutron server● Monitor neutron server state to connect ODL● Introduce state machine to track neutron

STARTING NORMAL DISCONNECTED

ERROR

Neutron Neutron Neutron

ODLMonitor connection

Page 11: networking-odl - events.static.linuxfound.org to feed openstack neutron and networking-odl align networking-odl with ODL neutron northbound https: ... lbaas, fwaas etc

Full sync● ODL cold boot(or ODL boot first time)

● (transient) network failure or ODL reboot with persistence

● healing random data breakage in ODL neutron northbound

CHECKING SYNCING NORMALNULL

cold start

OUTOFSYNC

Page 12: networking-odl - events.static.linuxfound.org to feed openstack neutron and networking-odl align networking-odl with ODL neutron northbound https: ... lbaas, fwaas etc

Test framework● HA logic needs extensive test

coverage● Openstack tempest is too heavy

weight● Lightweight test is deisrable for

developers●

ODL

OVS

ODL mech driver

neutron

REST

ovsdb OF-wire

nova/neutron:VIF driver

portcreate/delete

tempest

Other openstack component(nova, glance, cinder, ...)

Openstack tempest testToo heavy

Other openstack component(nova, glance, cinder, ...)

Other openstack component(nova, glance, cinder, ...)

Page 13: networking-odl - events.static.linuxfound.org to feed openstack neutron and networking-odl align networking-odl with ODL neutron northbound https: ... lbaas, fwaas etc

ODL mechdriver shimsimulate ODL reply

neutron

ODL

OVS

ODL mech driver shimsimulate neutron request

REST

ovsdb OF-wire

VIF driver shimsimulate portcreation/deletion

portcreate/delete

ODL only test without openstack

New component

single nodeorcontainer

allows neutron side test without ODL version match concern

neutron test without ODL

Lighter Test Framework

Page 14: networking-odl - events.static.linuxfound.org to feed openstack neutron and networking-odl align networking-odl with ODL neutron northbound https: ... lbaas, fwaas etc

New componentmocking tempest for ODL

ODL

OVS

REST

ovsdb OF-wire

tempest runs only iwth ODL

neutron clientmock

tempest

mockportcreate/delete

cf.https://github.com/flavio-fernandes/odl-openstack-ci-1/blob/master/tools/createFloat.sh

API test

Page 15: networking-odl - events.static.linuxfound.org to feed openstack neutron and networking-odl align networking-odl with ODL neutron northbound https: ... lbaas, fwaas etc

Multi Node Emulation

ODL

OVS

ODL mech driver shimsimulate neutron request

REST

ovsdb OF-wire

VIF driver shimsimulate portcreation/deletion

portcreate/delete

ODL only test without openstack

New component

single nodeorcontainer

OVS

ovsdbOF-wire

VIF driver shimsimulate portcreation/deletion

portcreate/delete

ODL only test without openstack

container

...

orchestrate

Page 16: networking-odl - events.static.linuxfound.org to feed openstack neutron and networking-odl align networking-odl with ODL neutron northbound https: ... lbaas, fwaas etc

future plan(Newton)

● Notification from ODL to networking-odl● Exntension discovery● Switching to custom REST API to RESTCONF

Page 17: networking-odl - events.static.linuxfound.org to feed openstack neutron and networking-odl align networking-odl with ODL neutron northbound https: ... lbaas, fwaas etc

Backup

Page 18: networking-odl - events.static.linuxfound.org to feed openstack neutron and networking-odl align networking-odl with ODL neutron northbound https: ... lbaas, fwaas etc

New coming features in Mitaka● proposed features may or may not make it● http://specs.openstack.org/openstack/neutron-specs/specs/mitaka/

add-port-timestamp.rstadd-tags-to-core-resources.rstaddress-scopes.rstadopt-oslo-guru-reports.rstavailability-zone.rstbgp-dynamic-routing.rstexternal-dns-resolution.rstfwaas-api-2.0.rstget-me-a-network.rst

improve-dvr-l3-agent-binding.rstlbaas-driver-vip-delegation.rstlbaas-l7-rules.rstnetwork-ip-availability-api.rstneutron-flavor-framework-templates.rstneutron-lib.rstrbac-qos-policies.rstrestructure-l2-agent.rstunaddressed-port.rstvlan-aware-vms.rst