SONiC架构和ODL架构比较
SONiC的目标应用场景是数据中心交换机的开源网络操作系统,SONiC以Redis数据库为核心,通过SAI接口控制具体的交换芯片,通过芯片实现的各种业务和系统状态的变化通过Syncd组件FPMSyncd , LLDP_Syncd ,
TeamSyncd , PortSyncd 以及NeighSyncd同步到Redis数据库对应的表中,运行在容器中提供各种南向接口的组件通过对数据库中有关表格的订阅来获取设备内各种芯片运行状态信息,进而通过各种协议和外界进行通信、包括报告设备运行状态、业务告警信息、反馈设备性能信息等。通过数据库为核心的设计,SONiC实现了设备内部信息对外的发布。
ONOS和OpenDayLight是业界应用最广泛的两者开源SDN控制器软件,其定位是网络中的Controller的角色,Controller通过标准的开放接口和YANG模型和设备通信,同时提供标准的北向接口连接更上层的控制器或编排器。
因此基于SONiC的网络设备和基于ONOS/ODL的Controller之间是控制和被控制的关系。
ODL采用MD-SAL模型驱动的业务抽象层设计,同样以数据库为核心,各种不同的南向接口和北向接口通过MD-SAL层进行适配。SB Model通过和SONiC YANG Model的适配实现ODL控制器对基于SONiC系统的交换机的管理。
SONiC是面向嵌入式的环境的设备控制系统,ONOS/ODL是可以基于云来部署的大型分布式软件,两者运行环境、扩展性和可靠性要求上都有很大的差别,但是两者都采用了以数据库为核心的架构设计。
本质上、数据库软件和各种消息队列软件作为基础软件模块,为信息处理和控制系统类型的应用提供了很多很方便的底层功能,如订阅、查询、分布式一致性协议处理、事务处理等等,基于这些功能可以很方便地构建各种规模的应用软件,从这个角度出发,对于SONiC和ONOS/ODL都采用以数据库为核心的设计就不难理解了。