>>返回主页
智祺通信技术(上海)有限公司云平台架构总监刘德明:基于SONiC的数据中心网络解决方案

2019-09-03 16:20

刘德明.png

  各位嘉宾,各位专家,下午好,前面这些专家和来自学术界、实体界的讲的大部分都是大趋势、大发展、大系统或者大学问,我讲得有点与众不同,会具体一点。

  何宝宏博士提到一个说法,在数据中心中,白盒交换机和和开源软件的占有率已经达到20%,而这个占有率还在持续稳定的增长,我讲这个题目是基于SONiC的数据中心网络的解决方案,就属于这类,也希望引起更多的关注。

  智邦主营的产品包括交换机、服务器,还有互联网的产品,其中子公司Edgecore Networks主要是面向欧美,经营的方向包括硬件平台,也加上网络操作系统的软件,智祺通信(ATAN)是面向中国的市场,经营硬件平台,也加上自主的软件,软件定义的网络,还有VDI、VM等。Joy Tech是我们的生产基地,在深圳有23条生产线,同时我们还有一些致力于社会公益的组织和机构。

  SONiC是一款运行于开放交换机平台的开源网络操作系统,是以微软为主的一些公司和一些开源社区共同开发,提供几乎所有的第二网络层、第三网络层的功能。目标是数据中心和云计算,适用于不同的交换机厂商生产的机型,也同时适应不同的交换芯片厂商他们提供的芯片类型。主要特点是软件通过container来容器隔离,升级软件的时候可以把不同的应用程序单独来升级。

  SAI,它是一个标准的API接口,不同的芯片生产商可以单独实现它自己的模块,但是他们提供了标准的API,好处就是可以支持不同厂商的ASIC,使得上层应用程序不需要知道ASIC的希捷。SONIC整体来讲,它的结构是开放、松散、可靠,这里松散不是负面评价,变得依存度降低,更独立。

  讲讲重要构件,第一个是Syncd容器,实现ASIC和上层的隔离,所有想跟ASIC通信读和写,都要通过Syncd容器完成。SWSS,是交换机服务状态的容器,包括一些同步和管理的应用程序,同步主要是从应用程序读取信息,或者从Linux内核读取信息,写入database。

  管理程序从数据库读取信息,然后去更新应用程序,这个叫数据的消费者。还一个最重要的组成部分是编配代理,主要目的是从数据库当中,从应用程序数据库读取信息进行转换,然后写入ASIC数据库。增加了隔离,如果orchagent发生故障,ASIC硬件不会受到影响。SAI是标准的API,使应用程序和ASIC硬件实现了隔离。这是BGP容器的例子,Syncd通过SAI API跟ASIC进行通信。

  ASIC和设备的独立,软件系统怎么实现。从原程序目录当中的子目录有一个platform平台,下面对应不同的ASIC生产厂商,你编译的时候要指定厂商,比如Broadcom,编译的时候就指定了,同时定义SAI不同的时限。从开放者的角度和使用者角度来观察下SONiC,由于良好的隔离,对开发者来讲开发一个程序是比较容易的,虽然很大,编译完成大概有400-500M的程度,但是对每个应用程序来讲,模式都是一样的,开发的过程也是一样的,修改起来也比较容易,加一个新的也比较容易。

  一个应用程序如果执行错误,发生故障,很少能影响其他的程序。再从使用者角度观察,就是一个Linux系统,添加工具也非常容易,第三方的工具也非常容易,停止一个服务或者一个应用,实际上就像服务一样把它杀掉,和Linux无缝兼容,所有Linux的功能在这里都是可用的。

  SONiC的缺点,因为和Linux无缝兼容—很多动了都有两个拷贝,比如路由,在Linux看到本来有一个,但是在Redis也要存一个。Redis数据库是单线程实现,效率比较低。SAI的实现,如果想加新的feature,如果没有准备好,会产生一些延时。每个应用程序当中都有一个同步程序和管理程序,资源有点浪费,将来可以做一些改正和优化。这个本身不算是SDN的解决方案,因为Control Plane和Data Plane是在一起的。

  我们的硬件平台种类齐全,历史也很长了,ASIC的供货商包括Broadcom、Barefoot、Cavium等等,带宽从1G到400G全系列都有。我们是OCP认证的10G/40G/100G交换机,也是OCP里第一个设计支持400G端口的交换机。

  我们坚持开放开源的理念,也希望更多的产品类型支持SONiC。这是部分的白盒交换机类型,其中大部分都支持SONiC。说说软实力,我们对SONiC支持非常及时,有了新的平台相应的程序等,更新非常快,另外我们的产品在SONiC开源社区非常有名,很多工程师都使用它进行学习、测试、开发,我们努力推动,使SONiC和交换机达到完美的结合。现在我们公司支持SONIC现状,大概有50多人的团队做开发和测试,已经完成SWSS主要代码的硬化质量工作。在Minipack上实现热插拔的工作已经接近尾声。利用gNMI RPC协议,在SONIC上实现了Openconfig的功能。

  未来规划,我们希望打造一个开放虚拟的综合开发与测试环境,向用户提供技术支持和服务,同时我们要理解用户的需求,实现用户的定制需求。

  我们的开发环境。典型的Leaf-Spine架构,在Leaf层我们的产品很多了,但是希望Spine通过Minipack也能实现,有热插拔的功能,支持很高的端口密度。这是我们刚才提到的Minipack AS8000这个平台,右边这个图是传统的交换机,基于Broadcom Tomahawk 3型ASIC,支持2种PIM卡,端口100G/400G,硬件支持即插即用。现在显示两种端口类型,一个是128口,一个32口,100G和400G,交换能力12.8T。

  把SONIC移植到Minipack上,我们团队已经实现了PIM卡热插拔,Minipack对市场和用户已经准备就绪,既可以做数据中心Leaf层交换机,也可以用作Spine层交换机,灵活的模块化设计。

  Minipack PIM卡热插拔,如果想把交换机作为Spine节点,热插拔很重要,因为需要这样的灵活性。我们本来希望把它做成事件驱动的热插拔,但是发现有困难,我们采用了轮流检测的方式(Polling)。

  在SONIC唤醒PIM卡不支持,Broadcom SAI不支持动态添加和移除端口,现在的做法是停的时候定好多少端口,如果要动态的增加一个或删除一个是没有的。我们软件团队通过努力,把刚提到的功能加上了,这个是Polling模式,我们在内核层加了一个驱动,在应用层加了一个Polling的功能,反复检查检查这些PIM卡。这个是不同模块之间的事件,当一个卡插进入以后的状态变化。这是一个简单测试,原来什么样子的,当拔掉这个卡或把卡插回去,都会发生变化。

  总结,SONiC是一款开放、开源、可靠和灵活的网络操作系统,适合数据中心网络场景。智祺通的白盒交换机系列能完美支持SONiC运行。智祺打造开放、虚拟的SONiC开发和测试环境,提供全方位的技术支持和服务以及用户定制设计。智祺移植SONiC到支持400G端口最新高端Minipack交换平台,实现了PIM卡热插拔功能。

  谢谢大家。

0