ODL项目成立于2013年4月,是由Linux基金会管理管理的开源SDN项目。项目的目的是提供一个开放的,全功能的,厂商中立的SDN解决方案。目前ODL有超过40个公司作为成员,例如Cisco,IBM,Huawei等。乐观人士认为:ODL对networking的意义就像Linux对computing的意义一样。
ODL controller是一个纯软件的实现,基于Java+OSGI,运行在自己的JVM中,理论上,任何支持Java的设备都能运行ODL。采用OSGI作为框架,基于这点可以看出ODL内部是一个个相对独立的模块。ODL项目最开始的定位是SDN controller,在它的第三个版本(Lithium版本),ODL将自己的定位变成了SDN Platform。也就是说ODL的定位开始转变成以SDN为核心构建生态系统。
ODL的架构大致如下,可以分为三层。
OpenStack Neutron通过networking-odl项目接入到OpenDayLight,目前networking-odl的架构如下图所示:
前面说过Neutron server可以部署多个,以达到HA和水平扩展的目的。ODL接入OpenStack Neutron也考虑了多个Neutron server的情况。Networking-odl包括了同步DB和通过RESTful API访问OpenDayLight。在OpenDayLight也加入了适配Neutron的module。OpenDayLight的详细架构如下图所示:
简单看一下ODL的架构组成部分:
ODL用来支持多种网络协议和网络设备的多个plugin的集合,通过OSGI框架与Service Abstraction Layer连接。为了支持OpenStack Neutron的接入,在ODL southbound protocol中加入了OVSDB的支持。ODL南向协议不仅支持OpenFlow,还支持很多其他协议,因此ODL可以认为是广义上的SDN。
ODL中,SAL是最重要的组成部分。SAL接收从Controller Platform来的service request,通过自身的plugin manager找到最合适的plugin,也就是southbound protocol,进而通过这个plugin操作特定的网络设备。另一方面,SAL接收network devices的消息,通过plugin manager抽象消息,再转发给northbound模块。SAL是做northbound和southbound的实际转换工作。
包含了Basic Network Service Function和Platform Service Function。前者是基本网络功能,后者是厂商平台对应的模块。为了适配OpenStack Neutron,在Platform Service Function中有一个OVSDB Neutron模块。
为Cloud Orchestrator和application提供接口。接口包括了RESTful和OSGI。
理解OpenStack与SDN控制器的集成_筋斗云计算的博客-CSDN博客_openstack sdn
OpenStack与SDN控制器的集成 | SDNLAB | 专注网络创新技术
为OpenStack而生的SDN控制器——OVN_筋斗云计算的博客-CSDN博客_openstack sdn控制器
openstack架构详解图_大规模SDN云计算数据中心组网的架构设计_weixin_39804523的博客-CSDN博客
开源SDN控制器和商用SDN控制器一览_weixin_33714884的博客-CSDN博客
OVN – OVN OpenStack(二)_cuibin1991的博客-CSDN博客
OpenStack中SDN泛谈1 (Neutron&ODL&ONOS) - 知乎
OpenStack中SDN泛谈3 (OVN&Dragonflow) - 知乎
OpenStack中SDN泛谈4 (SDN发展与架构) - 简书
《重识云原生系列》专题索引: