开源项目在过去十几年里,已经在诸多领域取得了突破,包括硬件和软件,但是唯独在网络设备领域,一直未能有效穿透传统设备厂商的层层壁垒,一台台的网络设备都是一个个的黑盒,对用户来说,无法复制,也无法完全控制,只能使用,OCP现在想突破这个领域。
解读OCP项目发展 Facebook全力主导
OCP全称是Open Computer Project,是Facebook发起并主导的一个硬件开源组织,这个组织使命是致力于服务器、存储和数据中心基础架构的创新,以便更好地满足高性能可扩展计算的需求,但是实际上远不止于此。
如果深入了解一下OCP,会发现他们的关注点主要在这些方面:存储设备、服务器主板、服务器机柜、虚拟I/O、硬件驱动管理、数据中心基础架构设计,他们期望能够把涉及其中的硬件尽量标准化,订单交出去,随便一个代工厂都可以生产,在这些领域,他们早已经有了很多成果。
现在轮到了网络交换机,今年上半年的时候他们就开始了这方面的工作,随着Cumulus公司的ONIE(Open Network Install Environment)的清晰化和各个公司相继宣布支持ONIE, OCP的开源网络项目也变得清晰了,让我们来看看他们干了些什么。
跟开源服务器、存储一样,OCP的开源交换机项目也主要是开源硬件,但也包括部分软件,他们试图定义一套标准化的硬件设计,标准化包括:交换机硬件电路板中都要用哪些类型的器件,CPU跟各种器件之间用什么样的接口,芯片接口类型和数量,各个器件地址空间,镜像文件在flash中存放的位置等等很多,基于这样的硬件规范,各个厂商或者代工厂可以生产符合OCP标准的硬件交换机。目前OCP针对的主要是数据中心TOR交换机,后面会扩展到汇聚层交换机(Spine/leaf架构中的Spine),但是实际上它们也都适应于企业网交换机。
美国的创业公司Cumulus是Facebook的亲密合作伙伴,一直紧跟Facebook的脚步,他们一方面做了一套自己的交换机系统软件,另外一方面,他们研发了一个叫做ONIE的软件,它其实是一个比较智能的bootloader(相当于PC中的BIOS,但是比BIOS功能更多一些),用来安装和启动符合要求的交换机软件系统。只要软件厂商或者交换机厂商开发的交换机系统软件能够适配OCP硬件,那就可以通过ONIE启动。这样一来,交换机软件和硬件就彻底分离了,OCP组织负责硬件规范设计,代工厂,比如广达、天弘之类(或者传统设备商)负责提供生产硬件(所用的ASIC芯片并不局限于一家,而是有多家的,比如Intel, Broadcom, Marvel, Mellanox、苏州盛科网络目前也已经加入了OCP)。另外的厂商提供交换机软件系统(哪些厂商提供,我们后面再谈)。这些交换机,就可以称之为符合OCP要求的白牌交换机(WhiteBox Switch),目前OCP已经组织几个厂商生产出了几台符合要求的样机,都宣称支持ONIE。
OCP宣称他们的交换机开源包含三个层次:第一个层次是硬件开源且标准化;第二个层次是硬件驱动,bootloader, linux OS的开源;第三个层次包括各种开发和管理工具的开源,Rest API,还提到了SDN的开源,他们明确地宣称,交换机系统协议栈的开源不在OCP工作范围之内,但是他们鼓励厂商在这方面的开源。
OCP白牌交换机面临的挑战
那么接下来一个问题就是,谁来提供能够运行在OCP白牌交换机之上的系统协议软件呢?OCP首先是期望白牌交换机提供商,比如Cumulus,比如广达,甚至Intel, BCM, Mellanox,盛科这样的芯片商能够提供,还有他们也欢迎传统交换机厂商能够改造他们的系统,让他们的系统跑在这些白牌机上,比如Cisco的IOS。当然,不要求他们开源。
假设OCP的目的可以达到,那么未来的网络交换机领域会是什么样子呢?各个用户可以在市场上买符合OCP要求的白牌交换机,然后购买符合要求的交换机系统,自行通过ONIE安装进去并启动设备。
关于受益讨论一:谁会从这个事情受益呢?如果把所有用户看作是一个群体,那么首先的受益者是用户,因为这种机器的成本肯定会大大降低,而且用户不必被锁定在某个厂商身上;其次是白牌设备提供商,比如广达、智邦、天弘这样的代工厂,另外芯片商也没损失,特别后来者也许可以靠白牌交换机多获取一些份额,那谁会受损失呢?毫无疑问,传统设备商!
关于受益讨论二:这个事情的阻力在哪里?第一个阻力是很显然的,在传统设备商,传统设备商肯定不会配合,他们会允许自己的交换机软件运行在别人生产的设备上让别人来蚕食他们的市场吗?或者换个问法,用户会为纯粹的交换机软件额外付一大笔钱吗?很难,肯付这个钱的用户,估计也不会介意连他们的硬件一起买了。
如果传统设备商不做这个事情,那最终谁来提供交换机协议软件呢?新兴的创业公司已经有人在做这个事情,美国的Cumulus公司,向他们的客户提供开源的传统二三层交换机软件,采取License收费的模式。另外,BigSwitch也向客户提供开源的Openflow软件,对特定模块进行收费,此外,Intel, Broadcom, Mellanox等都有自己的软件。
但是上面还不是唯一的阻力,OCP的开放网络项目如果只是供Facebook几个厂商自己用一下,一点问题都没有,但是如果要推广开来,一定还要解决另外一个问题,如果用户从一个公司买了硬件,从另外一个公司买了软件(或者用了开源的),出了问题的时候,应该找谁?或者说谁提供支持?这涉及到利益分成,涉及到商业模式。也许最终会演变成硬件厂商跟软件厂商合作,由硬件厂商出面做第一线支持,或者说每个硬件提供商都同时有自己的配套软件。
讲到现在,我们有没有发现好像OCP的这个开放网络项目还少了一环,很重要的一环,就是缺乏一个真正开源的交换机软件,就像OpenStack一样,从上到下,里里外外,全部开源,完全免费,只有走到这一步,网络才算真正开放。国内的盛科网络近期在这个方面先行一步,他们率先发布了世界上第一个完全开源的硬件交换机项目Lantern,目前先是只针对SDN交换机,将来会扩展到传统二三层交换机。该项目是从管理界面,协议栈,操作系统(Linux)到硬件适配层,到芯片SDK,完全开源,完全免费,可以直接在Github上下载。盛科的这种模式,芯片厂商可以玩,ODM厂商(代工厂)也可以玩,但是唯独Cumulus, BigSwitch这样的软件提供商不能玩,因为他们本身没有任何载体,软件是他们的立命之本,软件开源了,他们就收不到钱了,除非他们能提供比开源软件强大得多的软件系统,能够吸引用户付钱,OCP已经对该项目表示出了很大的兴趣。
无论是开源也好,闭源也好,白牌交换机目前还面临第三个也是最大一个挑战,就是用户的接受度,用户下意识会问的一个问题,白牌交换机稳定吗?能满足需求吗?因为对很多用户来说,购买网络设备首先考虑的并不是价格,而是稳定性。就我的经验来看,白牌交换机肯定没法满足所有应用场景,但是在当前的大多数场景下,绝对可以胜任。我们看看现在数据中心的TOR交换机,都运行了什么功能?三层就是一个OSPF,二层就是LACP,VLAN,FDB,然后就是一些管理功能,比如Mirror, SNMP等,其它就基本没有了。这些都是非常非常成熟的技术,一点技术含量都没有。要做稳定是很容易的。尽管如此,要让用户接受白牌交换机,会是一个漫长的过程。
另外,我们还要注意到,OCP的项目都是开源硬件,但是在开放网络项目中,提到了第三个层次的开放,包含了Rest API以及SDN。这是什么意思?ONF的执行总监Dan Pitt今年8月底来中国的时候,我跟他聊过OCP的事情,他表示ONF正在跟OCP紧密合作,力争做出支持SDN的开源交换机,所以这可以理解为OCP想在开源硬件之外,在SDN软件开源方面做出的一些努力。
OCP的开往网络项目最终会搅动网络交换机领域,甚至引发一场变革吗?目前尚无法下结论,但是我们必须看到的是,这个项目,技术难度并不高,能给用户带来的价值却很大,就看OCP如何将这个市场培育起来了,我对此保持谨慎的乐观。