OCP 的开源网络项目会引发网络变革吗?
开源项目在过去十几年里,已经在诸多领域取得了突破,包括硬件和软件,但是唯独在网络设备领域,一直未能有效穿透传统设备厂商的层层壁垒,一台台的网络设备都是一个个的黑盒,对用户来说,无法复制,也无法完全控制,只能使用,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如何将这个市场培育起来了,我对此保持谨慎的乐观。