networking-odl Syncing OpenDaylight with OpenStack Neutron Isaku Yamahata OpenDaylight Developer Design Forum Feb 29, 2016
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
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
The existing implemenetation DB Neutron networking-odl Race Simple full Condition sync logc on DB and MD-SAL error can be out-of- sync Neutron Northbound openstack service provider MD-SAL OpenDaylight
New Architecture DB Neutron Neutron Neutron networking-odl networking-odl networking-odl DB Syncer Syncer Syncer operation Log Monitor LoadBalancer(HAProxy) connection Neutron Northbound Neutron Northbound Neutron Northbound openstack service openstack service openstack service provider provider provider MD-SAL OpenDaylight OpenDaylight OpenDaylight
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
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
Timeline Mitaka Newton Ocata ● Introduce v2 driver ● migrate all services: Done! ● migrate to v2 ODL lbaas, fwaas etc… driver, eliminate the ● introduce advanced existing ODL driver features ● ML2 driver, L3 ○ healing data pluing breakage ● lightweight test ○ notification framework for ○ restconf neutron HA ● evaluation
JournalEntry sync thread or rest request to ODL postcommit(fastpath) success precommit PENDING PROCESSING COMPLETED Retry upto X failure even number of after X FAILED times retries BONUS: this introduces resiliency against Neutron Server Crash.
Neutron HA support Neutron Neutron Neutron ● Have mulitple instance of Neutron server ● Monitor neutron server state to connect ODL ● Introduce state machine to track neutron ODL Monitor connection STARTING NORMAL DISCONNECTED ERROR
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 cold start NULL CHECKING OUTOFSYNC SYNCING NORMAL
Test framework tempest ● HA logic needs extensive test coverage neutron Other openstack Other openstack ODL mech component ● Openstack tempest is too heavy Other openstack driver component (nova, glance, cinder, ...) component weight (nova, glance, cinder, ...) REST (nova, glance, cinder, ...) ● Lightweight test is deisrable for ODL developers ● ovsdb OF-wire OVS port create/delete Openstack tempest test nova/neutron: Too heavy VIF driver
Lighter Test Framework New component ODL mech driver shim simulate neutron request neutron REST ODL mech driver shim ODL simulate ODL reply ovsdb OF-wire OVS allows neutron side port test without ODL create/delete version match single node VIF driver shim concern or simulate port container creation/deletion ODL only test neutron test without ODL without openstack
mocking tempest for ODL New component tempest neutron client mock API test REST ODL ovsdb OF-wire OVS mock cf. https://github.com/flavio-fernandes/odl-openstack-ci-1/blob/master/tools/createFloat.sh port create/delete tempest runs only iwth ODL
New component Multi Node Emulation ODL mech driver shim orchestrate simulate neutron request REST ODL OF-wire ovsdb OF-wire ovsdb OVS OVS port port ... create/delete create/delete single node VIF driver shim VIF driver shim or simulate port simulate port container creation/deletion creation/deletion container ODL only test ODL only test without openstack without openstack
future plan(Newton) ● Notification from ODL to networking-odl ● Exntension discovery ● Switching to custom REST API to RESTCONF
Backup
New coming features in Mitaka ● proposed features may or may not make it ● http://specs.openstack.org/openstack/neutron-specs/specs/mitaka/ improve-dvr-l3-agent-binding.rst add-port-timestamp.rst lbaas-driver-vip-delegation.rst add-tags-to-core-resources.rst lbaas-l7-rules.rst address-scopes.rst network-ip-availability-api.rst adopt-oslo-guru-reports.rst neutron-flavor-framework-templates.rst availability-zone.rst neutron-lib.rst bgp-dynamic-routing.rst rbac-qos-policies.rst external-dns-resolution.rst restructure-l2-agent.rst fwaas-api-2.0.rst unaddressed-port.rst get-me-a-network.rst vlan-aware-vms.rst
Recommend
More recommend