ODCC网络工作组技术专家、百度资深系统工程师罗枫:br百度自研交换机之路提供M88明升官网,宝马娱乐平台等新闻资讯

ODCC网络工作组技术专家、百度资深系统工程师罗枫:br百度自研交换机之路

来源:M88明升官网 | 时间:2018-11-17

  11月5日,2015开放数据中心峰会在北京国家会议中心举行。本届峰会由开放数据中心委员会(ODCC)主办,阿里巴巴、百度、腾讯、中国电信、中国移动、中国信息通信研究院、英特尔等单位承办,是国内在数据中心领域的一大行业盛会。会议由上午的主论坛和下午的五个分论坛构成,分论坛的主题分别为天蝎整机柜、新型服务器、模块数据中心、数据中心网络、行业数据中心技术发展与运维。

  ODCC网络工作组技术专家、百度资深系统工程师罗枫在下午的数据中心网络分论坛上发表了题为《Minions Rising:百度自研交换机之路》的演讲。

  大家下午好,我今天演讲的主题是Minions Rising:百度自研交换机之路。

  先简单自我介绍一下,我叫罗枫,来自百度系统部,一直负责的是自研交换机的研发。大家可能看到这个题目会想,为什么有一个Minions Rising,到底是什么意思?Minions小黄人是我们内部交换机的代号,百度自研交换机之路也是百度小黄人崛起之路。

  今天的演讲主题分为四个方面,一是百度网络。二是自研交换机的背景。三是研发的思路。最后讲一下我们在百度网络交换机方向未来的规划和思考。

  首先给大家看一下百度网络。在这里我会介绍一下过去一些年百度架构的演进,一共经历哪些重大的变化,过程中会给大家介绍一下自研交换机现在在百度的状况。

  百度的网络发展到现在,从大的方向上来讲经历了四个阶段。第一个阶段是双内网加骨干网加CDN。到2010年进入到第二代网络架构里面,我们完成了双内网的改造,变成单内网的结构。此外,我们做了一个统一的接入接出,内网和外网统一的接入、接出,同时CDN网络在这个时候开始起步。进入到第三个阶段,我们又将内网做了结合。这个时候城域骨干网开始起步,自建传输和租用传输共存。2012年到现在,这个时候我们100G OTN的技术开始落地,同时我们的网络结构里面在跨数据中心之间的传输又以前的OS协议升级到BGP的协议,也就是说在这个自研交换机开始在这个阶段出现在百度的数据中心。

  看一下自研交换机的全貌。自研交换机的起步应该是2010年就开始有这样的想法,一直到现在这么多年,自研交换机从端口的形态以及功能的角度,可以分为10G、25G、40G,从欧盟的角度有VSF的功能,类似于华三的IAF。10G产品线可以做到八款产品的支持,也就是说ODM厂家有八款机型都可以在我们的网络里面用。

  自研交换机的全貌图,这张图显示的是自研交换机在百度数据中心里面增长的曲线年我们从这个阶段开始小批量的在线年开始做商用交换机和自研交换机各一半。到2015年的时候,我们就全部切到自研交换机,也就是说从2015年开始我们所有数据中心接入的交换机全部是自研的。可以看到增长的趋势还是很明显的。整个数据是截止到10月份,从增长的曲线来看接下来还会有很多。整个自研交换机上线以来,占到所有百度数据中心交换机,包括核心交换机、接入交换机等所有的加起来,自研交换机占到30%的比重。所以,可以预见到将来的比例会进一步的提升。

  做完一个简单的介绍之后,接下来我们可以来看一下,百度为什么当初会想到自己研发交换机,到底出于一个什么样的背景和考虑。我们看了一下,当初提出自研交换机的背景无非是随着数据中心规模持续的增长,过去的几年增长的特别快,这种数据中心规模的增长带来网络设备种类的增多,同时成本也从千兆升到万兆,成本也带来了显著的提升。这样给我们设备的接入来说,要各方面验证的工作。同时网络设备的数量增加以后,网络运维和管理特别的复杂,各家差异化的东西给我们带来瓶颈,要做自动化非常的困难。这个时候我们就想自己做一到交换机,把所有的OS都统一,这样可以做我们所有想要的功能,自动化率也可以提升。所以运维和管理,再加上降成本的驱动。

  百度决定自己做交换机以后,可能大家会问,交换机这个东西到底想做的话能不能做出来。一个合适的交换机里面涉及到的技术,从这里可以大概的看一下。首先我们要关注硬件,再有软件,还有上层的整个协议站,涉及到路由协议,协议的一致性,还有硬件的兼容性。各方面的问题我们都要去考虑,还涉及到CPU,大端、小端,交换机芯片用哪一家的。

  传统的通信设备厂家几百、上千号人干这件事情,问一下,百度一个小团队,不到10个人能把这件事情干成吗?评估下来答案是肯定的,这件事情我们能干。原因是传统设备厂家在做这样一件事情的时候面对的是所有的客户,也就是说所有的功能他都要去考虑、去实现,百度只针对数据中心一点去做。我需要什么样的功能我就去做什么样的功能,不需要的功能我们不用关注。所以,基于这样的考虑,我们觉得是可以做的。

  针对我们想要的这一点,怎么才能把它做好,接下来我跟大家分享一下在我们想要的这一点功能上做好的思路。我们的思路是围绕以下四个方面展开的,一是硬件,二是互联的方案,三是软件,四是运维的管理。接下来从这四个方向逐一的向大家介绍一下我们在这方面是怎么做工作的。

  首先看一下硬件,最开始前面那长图上提到我们的交换机可以支持很多很多的机型,所有这些机型都是ODM的白盒。白盒都是ODM自己去设计生产的,你还关注硬件为什么?就是因为这一点,硬件不是自己设计的,所以我们才要花更大的力气去关注硬件层面的东西。我们关注的主要有三个维度,第一个是我们会选择多硬件的方案,面对同样的规格,比如说48+4或者48+6,我们会选多个ODM厂家的方案作为我们的需求做软件的适配。之所以这样做,是从技术风险的角度去考虑,出问题以后一定要有解决的方案,所以需要引入多硬件的方案。多硬件的方案体现在CPU,不同的差异化的东西我们是允许它存在的。

  第二个考虑我们希望考虑统一的配个。交换机做48+4还是48+6,串口在上还是串口在下,所有这些东西直接影响到我们数据中心运维的事情。这个我们也要去关注,所以第二个角度,我们是从运维的角度进行考虑。

  第三个方面,硬件质量控制。我们会做哪些事情?我们会做硬件方案的设计,电源是怎么做的,风扇是怎么控制的,这些细节我们也会考虑。我们不会指导他们的设计,而是你跟我讲清楚这个设计背后的意图是什么,我们需要了解这些,来评估它是否有隐患。同时我们还会做工厂的基核,从这个角度来看,我们是基于硬件质量这个方向来做的。比如说从这样的角度我们是希望做到我们的硬件在跟软件适配的过程中,不要上线的时候出现硬件的质量问题或者批次故障。

  除硬件之外我们还关注互联方案,所谓互联方案就是硬件做出来之后,你要选用什么样的介质去连接你的服务器,甚至去连接你的交换机。连接服务器这一块可能看起来觉得选光纤块,或者选个铜缆6A的线,看起来很容易,实际做起来学问还是很多的。从介质来看,有铜的方案,有光的方案,铜的方案你可能关注到跟硬件适配的时候端口的预加重怎么去调,网口怎么去适配。有很多东西你是需要去看的,如果你选了一个方案你又不去关注这些东西,很可能最后的结果是软件出来以后,刚开始调试没有问题,一上线就出现了不兼容的问题。所以,我们需要当做一个整体来看。选什么方案不是重要的,重要的是在选方案过程中,做交换机软件的时候要把这一块的问题想清楚,而且把它作为一个整体来看待。

  这就是为什么设备厂家在出交换机软件的时候,一般都会提一个模块的认证列表或者线缆的认证列表。一方面出于商业利益的追求,另外一方面也是在里面有一些技术风险是需要去考虑的。所以,这也是我们关注的一个角度。我在这里不想强调我们选什么样的方案,而是真要做这样一件事情,这个地方我们需要投入力量去思考。

  第三个方面来看一下最重要的软件这一块。这是百度OS从底层到最上层的一个大大的框架,可以看到,OS我们可以提供接入交换机从最底层到最上层的完整的解决方案。解决方案的软件是非常灵活的,要想加什么模块非常容易加进去。而且我们整套软件它的差异化、兼容性做的特别的好,所有CPU的系统我们都有机型去适配。比如我们这套OS都是在CPU系统上做过验证的。

  现在整个OCP都在提SAI接口,经常有厂家过来跟我们推荐我们支持不支持SAI,我们已经有一套专门的SAI干这件事情,把所有的SDK进行封装,封装成统一的标准。一个交换机的系统除了交换芯片以外,还有风扇、电源,这些都是交换机的系统需要去访问的,我们做了PAI的接口。

  我们的整个交换机管理界面非常的丰富,我们可以支持CUI等功能,交换机OS能够提供的功能都有我们自己自定义的一套接口,可以呈现给外界的用户去访问。比如说交换机现在出现了一个bug,这个时候我们不需要登录交换机做重启,我们直接可以登录到后台,用一个类似的接口就可以做到。

  最后看一下监控系统。在讲监控系统之前我可以先说一个小的故事,我们的交换机从2012年、2013年开始发布第一个版本,到目前为止我们已经发布过八个大版本,每个大版本都有小版本。到目前为止,我们上线的第一台交换机所有的这些版本都在线上运行,也就是说每发布一个新的版本我肯定要修复一些老的版本的bug,但是我们没有推动它去升级。为什么能做到这样?就是因为我们有非常强大的监控系统。它是一个分布式的部署方案,可以做到集中式的管控。它能完成的事情是抓每一台设备上的信息,抓上来以后它有一个智能的分析和推拟的工程,将CPU利用率、内存的使用率进行告警,但是需要做一些推拟,不同步是由什么原因导致的,我们可以经过一系列的推拟。我们可以通过层层的分析知道你大概是哪一类问题导致的,有些可以自动化处理就自动化处理,没办法自动化处理的我们人工收到报警会进行处理。

  可以做到非常方便的接入,并且可扩展。这里看到的是在我们的监控系统里面已经实现的一些新的监控,当然有些监控在一些公司用SMP已经去监控了。我们通过软硬件这两张表的支持,可以做到发现很多芯片的错误,这些错误在一些商用的厂商设备上有的时候也会经常见到。

  在监控运维这一块,除了监控系统开发以外,我们还有另外的一套系统是非常有用的,就是自动部署系统,可以做到什么级别。数据中心上线交换机的时候不需要做任何的事情,厂商的交换机到机房之后,直接用的放到我们交换机的机柜上,一旦放到机柜上,插上电、插上网线就可以自动工作,自动获取配置,重启加载配置。以往需要手工的去配IP,手工的抓配置。即使我的配置没有准备好的情况下,它也可以实现非常好的容错性,可以反复的在那重试,就像服务企业家在安装之前也可以全方位的探测。

  在百度的网络这块以及交换机这块未来大概的想法,会朝着什么样的方向去走?有三个方向,首先讲一下硬件。硬件在CPU的选择上我们会持续的走X86的方案,其实我们现在已经有很多交换机切到X86上面来了,考虑到一方面CPU的介质性能跟其他的比会稍微强一些,其次X86的生态要好。另外,从交换芯片角度来讲,我们将来会朝着25G、100G的目标去迈进。另外,在当前合适的产品的基础之上,我们会开发框式交换机的产品。

  第二是软件,会切换到Debian,其他的软件方面我们会关注虚拟化的一些技术,集群化的管理,再有智能告警方面的工作,只有把所有的这些点关注起来,才能让我们的系统在数据中心中得到非常好的运行状态,并且保证整个网络可控。

  最后一个方面提一下生态。交换芯片,在座的做网络的应该是了解的,目前是一家独大,很少有选别的厂家的,特别是在高端市场。虽然好用,但是不好的是太霸道,我们希望有一些其他的新兴的势力能够进来,有一个竞争的格局,促进这个产业链向健康的方向发展。我们希望联合大家一起能够把我们软硬件做的更加标准化、规范化,某些产品量起来以后,大家都可以从中获利,可以拿到很好的成本的优势,同时又有很多成果可以跟大家共享。