networking-odl Syncing OpenDaylight with OpenStack Neutron Isaku - - PowerPoint PPT Presentation

networking odl
SMART_READER_LITE
LIVE PREVIEW

networking-odl Syncing OpenDaylight with OpenStack Neutron Isaku - - PowerPoint PPT Presentation

networking-odl Syncing OpenDaylight with OpenStack Neutron Isaku Yamahata OpenDaylight Developer Design Forum Feb 29, 2016 This session goal To socialise whats happening in openstack side to OpenDaylight community whats coming,


slide-1
SLIDE 1

networking-odl

Syncing OpenDaylight with OpenStack Neutron

Isaku Yamahata OpenDaylight Developer Design Forum Feb 29, 2016

slide-2
SLIDE 2

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
slide-3
SLIDE 3

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

slide-4
SLIDE 4

The existing implemenetation

networking-odl Neutron OpenDaylight Neutron Northbound

  • penstack service

provider Race Condition Simple full sync logc on error DB MD-SAL DB and MD-SAL can be out-of- sync

slide-5
SLIDE 5

DB

New Architecture

networking-odl Neutron OpenDaylight Neutron Northbound

  • penstack service

provider networking-odl Neutron OpenDaylight Neutron Northbound

  • penstack service

provider LoadBalancer(HAProxy) networking-odl Neutron OpenDaylight Neutron Northbound

  • penstack service

provider

  • peration

Log Syncer Syncer Syncer Monitor connection MD-SAL DB

slide-6
SLIDE 6

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

slide-7
SLIDE 7

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

slide-8
SLIDE 8

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!

slide-9
SLIDE 9

JournalEntry

PENDING PROCESSING COMPLETED Retry upto X number of times precommit sync thread

  • r

postcommit(fastpath) rest request to ODL success FAILED failure even after X retries

BONUS: this introduces resiliency against Neutron Server Crash.

slide-10
SLIDE 10

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 ODL Monitor connection

slide-11
SLIDE 11

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 NORMAL NULL cold start OUTOFSYNC

slide-12
SLIDE 12

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

  • vsdb

OF-wire nova/neutron: VIF driver port create/delete tempest Other openstack component (nova, glance, cinder, ...) Openstack tempest test Too heavy Other openstack component (nova, glance, cinder, ...) Other openstack component (nova, glance, cinder, ...)

slide-13
SLIDE 13

ODL mech driver shim simulate ODL reply neutron ODL OVS ODL mech driver shim simulate neutron request REST

  • vsdb

OF-wire VIF driver shim simulate port creation/deletion port create/delete ODL only test without openstack New component single node

  • r

container allows neutron side test without ODL version match concern neutron test without ODL

Lighter Test Framework

slide-14
SLIDE 14

New component

mocking tempest for ODL

ODL OVS REST

  • vsdb

OF-wire tempest runs only iwth ODL neutron client mock tempest mock port create/delete

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

API test

slide-15
SLIDE 15

Multi Node Emulation

ODL OVS ODL mech driver shim simulate neutron request REST

  • vsdb

OF-wire VIF driver shim simulate port creation/deletion port create/delete ODL only test without openstack New component single node

  • r

container OVS

  • vsdb

OF-wire VIF driver shim simulate port creation/deletion port create/delete ODL only test without openstack container

...

  • rchestrate
slide-16
SLIDE 16

future plan(Newton)

  • Notification from ODL to networking-odl
  • Exntension discovery
  • Switching to custom REST API to RESTCONF
slide-17
SLIDE 17

Backup

slide-18
SLIDE 18

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.rst add-tags-to-core-resources.rst address-scopes.rst adopt-oslo-guru-reports.rst availability-zone.rst bgp-dynamic-routing.rst external-dns-resolution.rst fwaas-api-2.0.rst get-me-a-network.rst improve-dvr-l3-agent-binding.rst lbaas-driver-vip-delegation.rst lbaas-l7-rules.rst network-ip-availability-api.rst neutron-flavor-framework-templates.rst neutron-lib.rst rbac-qos-policies.rst restructure-l2-agent.rst unaddressed-port.rst vlan-aware-vms.rst