networking-odl
Syncing OpenDaylight with OpenStack Neutron
Isaku Yamahata OpenDaylight Developer Design Forum Feb 29, 2016
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,
Isaku Yamahata OpenDaylight Developer Design Forum Feb 29, 2016
○ what’s coming, what’s expected
networking-odl to feed openstack neutron and networking-odl
○ align networking-odl with ODL neutron northbound
○ 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
existing implementation This effort is started and mainly driven by Arvind Somya and Rich Curran
networking-odl Neutron OpenDaylight Neutron Northbound
provider Race Condition Simple full sync logc on error DB MD-SAL DB and MD-SAL can be out-of- sync
DB
networking-odl Neutron OpenDaylight Neutron Northbound
provider networking-odl Neutron OpenDaylight Neutron Northbound
provider LoadBalancer(HAProxy) networking-odl Neutron OpenDaylight Neutron Northbound
provider
Log Syncer Syncer Syncer Monitor connection MD-SAL DB
○ Eliminate race conditions ○ Scalability ○ support neutron HA: to have multiple instance of openstack neutron servers ○ well-tested code
https://wiki.opendaylight.org/view/NeutronNorthbound:NeutronDriverOverhaul
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
Mitaka Newton Ocata
driver, eliminate the existing ODL driver
pluing
framework for neutron HA
lbaas, fwaas etc…
features ○ healing data breakage ○ notification ○ restconf
Done!
PENDING PROCESSING COMPLETED Retry upto X number of times precommit sync thread
postcommit(fastpath) rest request to ODL success FAILED failure even after X retries
BONUS: this introduces resiliency against Neutron Server Crash.
STARTING NORMAL DISCONNECTED ERROR Neutron Neutron Neutron ODL Monitor connection
CHECKING SYNCING NORMAL NULL cold start OUTOFSYNC
coverage
weight
developers
OVS ODL mech driver neutron REST
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, ...)
ODL mech driver shim simulate ODL reply neutron ODL OVS ODL mech driver shim simulate neutron request REST
OF-wire VIF driver shim simulate port creation/deletion port create/delete ODL only test without openstack New component single node
container allows neutron side test without ODL version match concern neutron test without ODL
New component
ODL OVS REST
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
ODL OVS ODL mech driver shim simulate neutron request REST
OF-wire VIF driver shim simulate port creation/deletion port create/delete ODL only test without openstack New component single node
container OVS
OF-wire VIF driver shim simulate port creation/deletion port create/delete ODL only test without openstack container
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