随着互联网行业的蓬勃发展,数据和流量开始向数据中心聚集,同时,公有云的兴起以及对成本的极度敏感,都使得数据中心的规模化效益变得愈发重要。近年来数据中心网络规模越来越大,从大型/超大型数据中心的建设中就可见一斑。进入5G时代,数据汇聚情况将进一步加剧,在这个大背景下,如何继续提高数据中心规模化效益,以及如何解决超大型云计算中心异构网络的运维、排障及自动化问题,是每个数据中心架构设计师都要面对的挑战。
为了应对上述挑战,SDN/NFV等技术被广泛使用,同时也带动了白盒交换机的发展机遇。白盒交换机与传统交换机的区别在于:白盒交换机采用开放的架构,致力于实现软件与硬件的解耦,具备可编程能力,此外,软件功能可按需增删,在降低成本的同时,还能缩短开发周期,加速软硬件技术的创新。
白盒交换机的系统架构
在传统交换机的架构下,NOS由各设备厂商自行开发,芯片厂商负责提供ASIC芯片和SDK,设备厂商在此基础上进行二次开发以适配各自的NOS系统,并开发各类APP用于实现具体的网络功能。同时,传统交换机的软硬件开发均由设备厂商提供,致使系统完全封闭,无法适应新功能快速开发部署的需求,且采购成本久高不下。如图1所示。
图1 传统交换机架构与SONiC白盒交换机架构
为解决以上问题,需要将传统交换机的架构进行分层开放,并推动标准化进程。
首先,推动硬件开源和标准化。开放计算项目(Open Compute Project,以下简称OCP)通过定义一系列硬件设计标准,其中包括部分推荐或参考设计,如硬件框图、原理图、走线图、物料BOM清单等,以便于更多的网络设备供应商通过开放的设计,能更快更好地推出符合OCP规格的硬件产品。
其次,推动Booloader的开源,用来安装和启动符合要求的交换机软件系统。ONIE由Cumulus在2013年孵化并开源,基于Linux的小型操作系统,可以在交换机上启动并发现本地网络上可用的安装程序映像,同时能够将合适的映像传输到交换机,然后提供一个安装环境,以便安装程序可以将网络操作系统加载到交换机,使得交换机和网络操作系统供应商专注于交换机和操作系统的开放工作,而不需要在BootLoader上投入过多的研发资源。
最后,推动NOS的开源和标准化。一方面南向适配不同ASIC平台,另一方面北向为APP提供统一的API,从而实现软硬件的解耦。微软在2017年向OCP贡献了交换机抽象接口(SAI),并正式发布了SONiC,SONiC的所有软件功能模块都开源,这极大地推动了OCP社区以及其他厂商/用户在开放网络方面的创新。SONiC通过将SAI作为南北向互联的中间件,屏蔽不同ASIC之间的驱动差异,也正是由于SAI的存在,SONiC的网络功能应用才能够支持多个厂家的ASIC。
图2 OCP交换机生态系统的SONiC愿景
SONiC自推出后,迅速得到了产业界的支持,大部分网络芯片供应商都在其SDK上支持SAI,并配合微软为SAI版本添加新的扩展功能:如博通、Marvell、Barefoot正在推动SAI的监控和遥测功能发展,以深入挖掘ASIC特性并提供强大的网络分析功能;Mellanox、Cavium、戴尔、盛科为SAI提供协议通知,包括MPLS、增强ACL模式、桥接模式、L2/L3组播、Segment Routing和802.1BR等,以支持更丰富的协议和大规模网络应用;戴尔和Metaswitch通过添加L3快速重路由和BFD,为SAI带来了故障弹性和性能。
SONiC架构的新技术特性
SAI是SONiC的核心,并为SONiC提供了统一的API。网络硬件供应商可以在能够匹配该编程接口的前提下,提供更高速、更低功耗、更低成本、更高端口密度等特性的硬件,且无需软件进行特定的适配,这种方式使得供应商在硬件产品开发方面能够快速迭代、创新。
在数据架构方面,SONiC使用数据库架构代替原有的模块化耦合架构,将应用模块之间的传递数据模式变成应用模块之间通过数据库进行数据交换的模式,从关注流程转变为关注数据,实现了功能模块之间的解耦,如图3所示。
图3 数据处理流程
采用数据库架构,不仅为新功能开发提供了环境基础,同时能够提供在不影响转发面的前提下解决进程级别故障及功能升级的能力(如图4所示)。当进程发生故障或升级时,由于数据库中的信息可以保持不变,而ASIC当前的转发面信息是通过数据库变更触发的,所以只要数据库信息没有变化,ASIC就能够继续保持正确的转发状态,直至进程恢复后从数据库中重新获取状态继续运行(基于数据库当前内容以及最新的状态计算是否需要更新数据库),在整个切换过程中转发面不受到影响。
图4 应用故障/升级处理流程
在模块化方案设计上,SONiC是首个将交换机软件拆分为多个容器化组件的解决方案。SONiC的核心是针对云网络场景,存在强烈的扩展性和规模化管理的需求。容器化使得SONiC具有极高的可扩展性,网络运营管理人员能够快速引入第三方、专有或开源组件,而不对原有业务造成影响,如图5所示。
图5 SONiC模块化方案
除此以外,SONiC还大量使用了现有的开源项目和开源技术,如Redis、Quagga、LLDPD以及自动化配置工具Ansible、Puppet和Chef等,使得SONiC获得了更强大的技术演进能力。
锐捷在白盒领域表现卓越
网络设备厂商的能力是制约白盒交换机应用能否实现的主要因素。白盒交换机的开发取决于设备厂商的3个关键架构(可靠性、可扩展性和开放性)选择和2个关键能力(芯片/SDK BUG修复能力和网络软件功能支持能力)。而锐捷网络在数据通信领域具有二十年软硬件自主研发能力,恰好匹配了当前的这些能力诉求。锐捷网络以主动拥抱变化的态度参与白盒交换机的标准制定和商用落地,已经成为了SONiC生态的主要合作伙伴之一。
锐捷网络在白盒交换机产品设计方面,CPU采用标准的x86架构,配合博通数据中心专用ASIC构建了开放化白盒交换机的基础,同时支持ONIE安装环境、提供支持SAI的BSP+SDK包,并提供基于SONiC的软件开发、咨询服务。同时,锐捷网络基于多年商用交换机的开发及规模商用经验,积累了完整的软、硬件测试案例及全自动化测试套件、测试方法以及专业的测试人员,可以提供专业的硬件、软件定制化服务,同时为白盒交换机的品质提供了强有力的支撑和保障。
目前,锐捷网络已经推出了25G/100G/400G三款白盒交换机平台,并且已经在互联网头部公司大规模部署。锐捷网络已经成为互联网和运营商白盒交换机产品的首选合作伙伴,随着云计算行业的发展,锐捷网络将在网络开放领域发挥越来越大的作用。
微信扫描二维码,关注公众号。