SONIC架构简要分析(一)-数据库

随着SONIC的日趋成熟,在互联网行业应用会越来越多,SONIC+白盒交换机的方式或许会成为将来数据中心的主流接入交换机。

为此,对SONIC的架构进行简要分析,看看与传统的网络操作系统的区别。

                               SONIC                                                                                                                            传统网络架构

SONIC架构简要分析(一)-数据库_第1张图片

LAG App,BGP App等都属于控制层,生成控制面的表项,SAI,ASIC Control Software相当于软转发层面,用来将控制面的数据转化为ASIC的数据,然后下发驱动。硬件转发层包含SDK和硬件,从上面的逻辑架构来看,两者并没有本质区别

但在实现上,有较大的差别,本次就讲讲引入数据库后的改变。在传统的交换机开发中,更注重流程,过程,引入数据库,实际带来思维的转变,将面向过程的开发转化为面向对象的开发。

引入数据库来非常多的好处

  1. 数据的处理清晰,避免了以前的在流程中多个地方对数据进行变更带来隐患。
  2. 模块间解耦。
  3. 实现方式与结果解耦。比如ACL,以前必须通过CLI或者MIB来实现,使用数据库后,不再关心实现方式,只要数据库中写入数据即可实现,那么ACL也可以是一个脚本,甚至可以远程写入。
  4. 借助数据库,可方便的实现同步,集群,备份等功能,简化了功能实现
  5. 有待大家发现

通常一个模块的处理通常如下:

在SONIC中则成为

在开发时,从关注流程,转变为关注数据,根据数据来进行相应的操作。数据库成为了整个系统的灵魂和核心。

我们来看如何通过数据库将数据从上到下串联起来

SONIC架构简要分析(一)-数据库_第2张图片

注意,此框图中的SONIC的Orcheestration Agent+SAI只相当于传统网络操作系统中的软转发层面的表项。在传统的网络操作系统中,软转发层面主要有两个作用,1)实现表项下发驱动的转换,将控制面的数据转化为ASIC SDK需要的数据。2)进行软转发操作。在SONIC中,软转发操作实际由内核完成。上图的操作流程为下发ASIC的流程。比如BGP协议产生的路由,会下发两份,1份路由下发到内核中,用于协议报文的收发。另一份则通过数据库通道下发到ASIC中。

你可能感兴趣的:(SONIC)