会议总结 数据中心SONIC开源操作系统探讨
数据中心SONIC开源操作系统探讨
2020年4月30日 SDNLAB一期一会 第7期
一、会议主要内容
本次会议主要介绍了SONiC的架构,在数据中心网络的应用和部署实例,数据中心网络在应用SONiC前后的进步等。说明了SONiC不仅仅在公有云数据中心的优势应用,在边缘,私有云等场景下也极具潜力。
会议主讲者:
王俊杰——盛科网络开源技术经理,资深系统工程师。专注于数据中心网络设计,开源系统与白盒设备等前沿技术,常年参与边缘计算,SONIC等开源社区工作。
1.开放网络设备的核心
如图1,主要包含两个核心点,交换芯片和交换机软件。交换芯片用于转发报文,软件系统用于管理交换芯片。
图1
2.SONiC简介
全称是Software for Open Networking in the Cloud,SONiC是构建网络设备(如交换机)所需功能的软件集合。它可以通过交换机换抽象接口(SAI)运行在不同的ASIC平台。正是由于SAI的存在,SONiC的网络功能才能够支持多个厂家的ASIC,包括Broadcom、Cavium、Centec、Intel/Barefoot、Mellanox、Marvell、Nephos等。
SONiC的发展历程如图2。
图2
3.SONiC进展
SONIC的本质来说就是将传统交换机操作系统软件分解成多个容器化组件的创新方案。
从2017年开始,SONIC就有BGP、ECMP,这是数据中心的必备功能,另外还包括QoS、IPv6等、VLAN等,还包括RDMA网络的研究。
图3
2018年,主要的有PFC WatchDog,给RDMA网络破除PFC Dead-Lock的配套功能.还有WarmReboot,可以实现1秒内完成Reboot,与传统的交换机系统重启需要几十秒的完不同,能够极大减少对数据转发的影响。
图4
2019年,FRR、BFD、NAT等功能加入SONIC,其中FRR成为默认的路由协议栈,这是一个开源的路由协议栈,支持BGP、OSPF、EVPN等协议,SONIC使用FRR,也间接说明了FRR在数据中心使用上稳定性是没问题的。
图5
4.SONIC的应用场景
4.1 SONiC Microsoft 部署 – 数据中心 100% 替换
在微软,SONIC已经被部署到了44个region,数据中心内都换上了SONIC,未来还有可能扩展到广域网。
4.2 SONiC Microsoft 部署 – 现网大规模应用
图6
数据中心的架构如图6。数据中心的主网都是分层的,从Tier0到Tier3,越往上层带宽越大。它们的转发面都是比较简化,查路由然后转发,从图中可以看到Tier2的Spine设备上还没有用成SONIC,这是未来可以期待的地方。
图7
传统的BGP有一个问题,从一个AS中的一个节点收到路由会发给该AS中的另一个节点,这存在一个AS环路问题,SONIC BGP就优化解决了该问题,是方法将明细路由向上行发送,同时不再回传,向下发送Default 路由,这样可以控制路由的条目数量,达到一定的收敛效果,降低对网络设备的表项压力。
数据中心双上联组网演进,如图8。可以看到左边是横联的,右边不是。原因在于早期是使用堆叠的,好处在于可以提升带宽,而且两个设备堆叠后,对外是作为一个设备来管理,用起来简单。但是堆叠开发难度很大,对厂商的能力要求很高,同时,堆叠内部一旦转发出了问题不好排查。
图8
所以M-LAG作为一种开放的双上联协议,采用两个设备双上联以及横联,兼顾了可靠性,另外开放的M-LAG协议,使不同厂商有兼容互通的能力。M-LAG保留的横联端口,很多现在的方案,是没有横联端口的,比如EVPN Multi Home,既能够解决横联端口的问题,还能够采用EVPN协议面,不去单独增加开发一个协议,保护数据中心的简洁。
4.3 SONiC Alibaba 部署 – DC Cluster 全线应用
图9
4.4 SONIC INT可视化技术
图10
5.SONiC系统架构
5.1 SONiC整体架构
如图11,SONIC是以Redis为中心的基于数据驱动操作系统,像SWSS,BGP等都是跑在Container中。往下是统一的SAI接口,能够很好的屏蔽不同芯片厂商的SDK差异,这使得几乎所有的交换芯片厂商都参与进来。从图中可以看出功能模块是很简化的。如图12,是模块间的解耦。
图11
图12
5.2 SONiC路由架构
在数据中心,路由功能很重要,所以SONiC的路由架构也是很灵活的,如图13.支持多种路由协议栈,比如Quagga、GoBGP,选择用哪一种都可以。通过Hostif收到协议报文后,从交换芯片上送到BGP模块,然后在Zebra里对收到的这些报文进行一个最优路径选择,再通过fpmsyncd接口小松到APP DB中,最后通过syncd接口下发到芯片中去。
图13
5.3 SONiC管控架构
在管控架构上,在实际运维时,可以通过控制器来对SONiC进行一个管理。如图14,并且SONiC允许用户去新增需要的接口。
图14
5.4 总结优缺点
1)优点:
·快速迭代、快速测试、快速上线;
·数据转发与应用程序分离,比如warm reboot/update;
·各组件运行在Docker中,各自有独立的运行环境,极大减少了相互的影响;
·像管理服务器一样管理交换机;
·开放:基于debian,易于扩展; 支持多种功能语言,C、C++、python、go等;
2)缺点:
·对比传统交换机厂商的闭源实时操作系统的性能;
·CPU内存硬盘等系统硬件需求高,性能不够硬件来凑;
5.5 SAI与SONiC的关联
SONiC的开发SAI要先行,希望要有统一的接口。
5.6 SONiC的应用场景
依赖于SAI的支持,SAI支持了,SONiC就能够应用于相应的场景。
图15
6.盛科SONIC的状态
详见PPT
二、会议信息
PPT: 链接:https://pan.baidu.com/s/1okqOj4HJCdHqyvr8Vyoeuw 密码:tbib
视频(bilibili):https://b23.tv/7dIU73
公众号:SDNLAB