28

浅谈数据中心SONiC开源操作系统

 3 years ago
source link: https://www.sdnlab.com/24362.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

SONiC开源操作系统日渐成为构建开放网络的钥匙,而SAI则是实现钥匙的标准模具,SONiC+SAI为开放网络系统生态的建立开辟了光明之路。SONiC不仅仅在公有云数据中心的大有所为,在边缘,私有云等场景下也极具潜力。

说到SONiC,就得不得不提到开源组织,开源项目分为很多组织,比如OCP、Linux foundation等,这些开源组织的覆盖范围也不同。

s1.png

OCP在2011年成立,它的组织架构下面分了很多工作组,包括:网络工作组、服务器工作组、存储工作组、机柜、供电等基础设施工作组,还有边缘工作组。

而SONiC就是在OCP开源组织中的网络工作组,还有两个项目也是关于SONiC的,一是SAI,交换机抽象接口,二是ONIE,ONIE实现交换机硬件和系统的解耦,支持在不同厂商的硬件上引导启动开源操作系统,这也就是白盒的来源。

SNOiC: Software for Open Networking in the Cloud

SONiC使用了大量现有的开源技术:Docker、Redis、Quagga和LLDPD以及自动化配置工具Ansible、Puppet和Chef等。SONiC是一个将传统交换机操作系统软件分解成多个容器化组件的创新方案,便于增加新的组件和功能。

SONiC 演进的三个关键时间点

回顾‍‍SONiC系统的整个发展过程,这里简单划分了三个时间点:

2017年,从SONiC支持的功能上,BGP,ECMP成为数据中心的必备,还有QoS、IPv6、 VLAN等。另外,微软很早就开始研究RDMA,为业界大规模落地RDMA网络奠定了一定的基础。

2018年,PFC Watch-Dog给RDMA网络破除了PFC Dead-Lock的配套功能,另一个亮点是DTEL,也就是Telemetry。Warm Reboot也是一个很重要的点,阿里的Demo的性能几乎达到了1秒内完成Reboot,与传统的交换机系统重启动辄几十秒完全不同,能够极大减少对数据转发的影响。

2019年,FRR成为了默认的路由协议栈,这个路由协议栈也是开源的,支持BGP,OSPF,EVPN等协议。SONiC使用FRR,也间接说明了FRR在数据中心使用上稳定性是没问题的,当然,部署越多,FRR也会越成熟。

SONiC系统架构

SONiC与数据中心紧密相连,对数据中心的理解能够帮助我们更好的体会到SONiC设计的简洁与优美,前面提到SONiC用了很多开源技术,SONiC能够把如此多的开源技术运用起来,并且大规模的网络能够稳定运行,这都得益于SONiC的架构。

s2.png

SONiC系统架构是以Redis为中心的基于数据驱动操作系统,SWSS,BGP等都是在Container里面运行。

往下是统一的SAI接口,能够很好地屏蔽不同芯片厂商的SDK差异,这让几乎所有的交换芯片厂商都参与进来并贡献自己的成果。它的数据中心功能非常简化,主要包含port,interface,vlan等少量模块。

在数据中心架构,还有一个特点就是解耦。应用程序去配置APP_DB,同步到Orchestion模块来解决下发数据之间的依赖关系,并配置SAI_DB,这里也有一层映射关系,并不是直接从Orchestion到SAI,而是由SYNCD最终来完成SAI API的调用。

综上,‍‍‍‍SONiC的架构具备两个特点:解耦合和特性精简。‍‍

  • 数据库驱动:以RedisDB为中心,‍‍将所有模块之间的关联解耦合;
  • 软件解耦合:用户的进程都运行在容器中;
  • 硬件解耦合:‍‍‍‍芯片层用的是统一的SAI接口,‍‍以屏蔽不同芯片厂商之间SDK的差异;‍‍
  • 特性精简:‍‍当前仅满足数据中心的应用特性即可。‍‍

所以,SONiC系统架构有很多优点,它能够用快速迭代、快速测试、快速上线;并且数据转发与应用程序分离,warm reboot/update;各组件运行在Docker中,各自有独立的运行环境,极大减少了相互的影响;另外,我们能像管理服务器一样管理交换机;SONiC还具有开放性:基于debian,易于扩展,支持C、C++、python、go等语言。

当然SONiC也有一定的缺点,对比传统交换机厂商的闭源实时操作系统的性能,SONiC对CPU内存硬盘等系统硬件需求高,性能不够硬件来凑。

SONiC与厂商支持

SONiC近年来一直是网络的热门,这离不开它背后众多的用户与厂商,国内的包括阿里、腾讯、百度、滴滴、京东、美团等,国外的有微软、Facebook、领英等。

s3.png

‍‍SONiC当前的生态是非常开放的,具备大量的产业链合作伙伴,包括‍‍云计算、‍‍运营商、设备商以及大量的芯片厂商,基本上已经‍‍把产业进行了重塑。最底下有芯片提供商,‍‍中间有一些设备商和ODM厂商,‍‍最上面是应用方。该产业链在很多场景下并不是串联的关系,这样进一步解耦产业链,就‍‍可以带来一个更好的‍‍经济成本,‍‍以及更快的迭代速度。‍‍

SONiC Microsoft部署

‍‍微软的架构, T0和T1主要是盒式交换机,T2和T3主要是框式交换机。第一步是在盒式交换机上完成了‍‍SONiC的全面替代,‍‍因为盒式交换机对比框式交换机更简单。

当前微软已经完成了百分之百的‍‍SONiC数据中心的替换,‍‍它和以前传统的交换机有非常大的不同:它的迭代的能力非常快速,‍‍基本上每天都会完成‍‍几千个交换机的升级,‍‍‍‍每几个月都会完成大版本的升级以及特性的增加,另外还将版本的增加时间由月变为了周。‍‍这种快速迭代‍‍符合了当前互联网高速发展的趋势。

s4.png

SONiC Linkedin部署

Linkedin也完成了百分百的替换,‍‍而且‍‍还在上面做了一些增强,包括FRR集成、IPv6 ACL、FIB加速、warm reboot协作以及一些安全的特性。

s5.png

SONiC Alibaba部署

回到国内,‍‍SONiC已经在阿里巴巴的DC集群里全线应用了,‍‍而且它把INT在现网中用起来了。‍‍同时‍‍也做了很多云业务之间的优化等工作。‍‍

s6.png

SONiC Tencent部署

腾讯也进行了全面的应用,‍‍而且在这基础上做了大量的扩展,包括像NETsence和mod‍‍等。

s7.png

SONiC还有哪些工作计划

我们在使用思科设备时,对于命令行操作网络设备已经很熟悉了,但SONiC是通过Json配置文件去Write DB来完成与交换机的交互,没有命令行支持。对于这点,有人认为没有命令行会不方便,也有人认为SONiC都是自动化去配置,不需要传统人工CLI去配置,能够解决人为的错误操作带来的网络故障。那我们换个角度,如果只是开放一些Debug或者show的CLi呢,是不是两全其美,既不会带来人为配置风险,用起来也很方便。

s8.png

现在,SONiC每年有大量的会议、大量的社区成员、大量的活跃用户,还有大量的支持平台,当前ARM的生态‍‍也被考虑到社区里。关于SONiC有很多可以做的事情,很多可以发挥的地方,‍‍包括CPU平台的开放性,应用场景的开放性等。SONiC的架构和生态既是优势,也是未来演进的动力。

由江苏省未来网络创新研究院主办、SDNLAB承办的“2020 SONiC产业生态研讨会”将于9月19日进行线上直播,会议将邀请来自芯片公司、白盒厂商、传统数通厂商、互联网公司、测试厂商、研究院所等的专家学者共同探讨网络操作系统SONiC产业生态的行业分享,共同创造更繁荣的新一代开源网络生态。

s9.png

注:本文根据文章《盛科成伟:SONiC——大道至简,衍化至繁》和《第7期-直播回顾丨数据中心SONiC开源操作系统探讨》整合而得。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK