SONIC+P4
SONIC简介背景微软于2015年先后发表了SAI和SONIC。SONIC产业日益繁荣,已超过六十家。创新SONiC使用了大量现有的开源技术:Docker、Redis、Quagga和LLDPD以及自动化配置工具Ansible、Puppet和Chef等。SONiC是一个将传统交换机操作系统软件分解成多个容器化组件的创新方案,便于增加新的组件和功能。SONiC与数据中心紧密相连,对数据中心的理解能够帮
SONIC简介
背景
微软于2015年先后发表了SAI和SONIC。SONIC产业日益繁荣,已超过六十家。
创新
SONiC使用了大量现有的开源技术:Docker、Redis、Quagga和LLDPD以及自动化配置工具Ansible、Puppet和Chef等。SONiC是一个将传统交换机操作系统软件分解成多个容器化组件的创新方案,便于增加新的组件和功能。
SONiC与数据中心紧密相连,对数据中心的理解能够帮助我们更好的体会到SONiC设计的简洁与优美,前面提到SONiC用了很多开源技术,SONiC能够把如此多的开源技术运用起来,并且大规模的网络能够稳定运行,这都得益于SONiC的架构。
参考链接:浅谈SONIC
架构
图解参考链接:sonic架构学习
SONiC系统架构是以Redis为中心的基于数据驱动操作系统,SWSS,BGP等都是在Container里面运行。
往下是统一的SAI接口,能够很好地屏蔽不同芯片厂商的SDK差异,这让几乎所有的交换芯片厂商都参与进来并贡献自己的成果。它的数据中心功能非常简化,主要包含port,interface,vlan等少量模块。
在数据中心架构,还有一个特点就是解耦。应用程序去配置APP_DB,同步到Orchestion模块来解决下发数据之间的依赖关系,并配置SAI_DB,这里也有一层映射关系,并不是直接从Orchestion到SAI,而是由SYNCD最终来完成SAI API的调用。
特点
从DevOps能力。和其他NOS一样,系统架构、抽象接口、协议栈是实现这些目标的最关键因素。
可以看到,SONIC有容器、数据库、SAI、SIR。
SONiC的架构具备两个特点:解耦合和特性精简。
数据库驱动:以RedisDB为中心,将所有模块之间的关联解耦合;
软件解耦合:用户的进程都运行在容器中;
硬件解耦合:芯片层用的是统一的SAI接口,以屏蔽不同芯片厂商之间SDK的差异;
特性精简:当前仅满足数据中心的应用特性即可。
优缺点
所以,SONiC系统架构有很多优点,它能够用快速迭代、快速测试、快速上线;并且数据转发与应用程序分离,warm reboot/update;各组件运行在Docker中,各自有独立的运行环境,极大减少了相互的影响;另外,我们能像管理服务器一样管理交换机;SONiC还具有开放性:基于debian,易于扩展,支持C、C++、python、go等语言。
当然SONiC也有一定的缺点,对比传统交换机厂商的闭源实时操作系统的性能,SONiC对CPU内存硬盘等系统硬件需求高,性能不够硬件来凑。
SONiC近年来一直是网络的热门,这离不开它背后众多的用户与厂商,国内的包括阿里、腾讯、百度、滴滴、京东、美团等,国外的有微软、Facebook、领英等。
未来发展
当前微软已经完成了百分之百的SONiC数据中心的替换,它和以前传统的交换机有非常大的不同:它的迭代的能力非常快速,基本上每天都会完成几千个交换机的升级,每几个月都会完成大版本的升级以及特性的增加,另外还将版本的增加时间由月变为了周。这种快速迭代符合了当前互联网高速发展的趋势。
SONiC还有哪些工作计划
我们在使用思科设备时,对于命令行操作网络设备已经很熟悉了,但SONiC是通过Json配置文件去Write DB来完成与交换机的交互,没有命令行支持。对于这点,有人认为没有命令行会不方便,也有人认为SONiC都是自动化去配置,不需要传统人工CLI去配置,能够解决人为的错误操作带来的网络故障。那我们换个角度,如果只是开放一些Debug或者show的CLi呢,是不是两全其美,既不会带来人为配置风险,用起来也很方便。
在这之前,OpenSwitch(OPS)是第一个面向开放网络架构的开源网络操作系统(支持SAI)
OpenSwitch的架构图中,中间是数据库,左边是控制平面和管理平面,右边是SwitchD,下面是标准的Linux。可以看到OPS与SONIC的架构相似。
但是好的概念并没有引导而成一个好的结果。
OPS后来项目停滞,由惠普收购,产生OPX,基本验证了OPS的理念,后OPX又停滞。后来,微软落地壮大;SONIC。
星融的探索
OPS停止发展了。
企业级SONIC面向更普遍的用户。SONIC主要面向云服务。
AsterNOS VXLAN & EVPN的实现方案。
从右到左看作是四个部分。第一个部分SWSS的三件套,是SONIC的基本设计模式。即:Manage模块管理静态数据,管理动态数据
企业级SONIC:需要对大量用户的友好
设备供应商由桥梁作用变成了网状结构中的作用
SONIC+P4
- 理想状态下,同时利用,SONIC强大的ko控制平面可编程能力,和P4可编程交换芯片高性能的数据平面能力。
- 未来在某一些上下文中清晰地区分,被拉离到远端的网络控制能力,和依然保留在网络设备本地的管理能力,我们会用控制平面和管理平面两个概念术语。
WHY SONIC+P4?
- 为了云(云对网络提出新需求)
云的操作随时随地发生(弹性灵活随时部署),云的本质是动态联通虚拟的计算资源和虚拟的存储资源。云:要求自动化的方式来部署,开通虚拟网络。
硬件VLB:无法自动管理VLB、service。不能被云管理,即不能被自动化。
软件VLB:负载均衡服务是由分布式地部署在负载均衡软件中的。不同租户或者不同业务的VLB是以虚拟化的形态存在于每个service旁边。
可以统一地管理除了Overly网络和租户VPC以外的LB。
开放网络产品。可编程交换芯片的可编程性能够解决传统的专业Aic,传统关系固化,开发周期长,上层受限的局面。同时相对于CPU来讲,没有必要牺牲性能去确保灵活性,增加成本确保可获得性。
完全有可能去开发符合云计算时代的开放网络产品。
更多推荐
所有评论(0)