跟英特尔网络业务负责人NICK MCKEOWN聊聊网络编程

在漫长的职业生涯中,McKeown一直倡导让网络设计适应英特尔的计算引擎与网络引擎。只有保证了这个前提,才能让研发工作顺风顺水、最终成果匹配需求。

跟英特尔网络业务负责人NICK MCKEOWN聊聊网络编程

对于英特尔新近成立的网络与边缘事业部,确实很难找到比Nick McKeown更好的总经理人选了。芯片巨头此前曾尝试收购Mellanox未果,但几个月后Mellanox却落入英伟达手中,这无疑让英特尔陷入被动。而拥有McKeown这样一位得力干将,对于急需扭转英特尔晶圆代工和芯片设计业务的CEO Pat Gelsinger来说无疑是件幸运的事。

在漫长的职业生涯中,McKeown一直倡导让网络设计适应英特尔的计算引擎与网络引擎。只有保证了这个前提,才能让研发工作顺风顺水、最终成果匹配需求。

McKeown在斯坦福大学担任教授,曾协助开发出P4网络编程语言,同时也是虚拟网络公司Micira(十年前以12.6亿美元被VMware收购,成为NSX产品线的技术基础)及可编程交换机制造商Barefoot Networks的联合创始人。Barefoot Networks于六年前结束隐身模式,三年前被英特尔收购,但具体交易金额并未公开。(但几乎可以肯定,交易金额要比英伟达收购Mellanox的价码小一个量级,毕竟当时的Mellanox已经开始盈利了。)

而新近建立的网络与边缘事业部可以说是英特尔公司近年来为数不多的亮点之一。因此,The Next Platform专门邀请McKeown来探讨英特尔聊聊这个新事业部的发展目标,以及为什么是时候把可编程性贯彻到网络中的各个层面了。

记者:网络与边缘事业部好像简称叫NEX吧,还是说应该是Nex?

Nick McKeown: 这个无所谓的,只要明确名称所表达的是网络和边缘就可以了。

记者:我其实很好奇Nex事业部到底包含哪些业务方向,也想知道英特尔在收购Barefoot Networks之后掌握了哪些新的数据中心网络成果。目前英伟达的NIC和SmartNIC存在严重的供应短缺,客户平均要等待52周。这对英特尔自家的以太网NIC销售应该是个好消息,特别是“Columbiaville”810系列以太网控制器。

但咱们还是先聊聊NEX的职能定位吧,以及您打算依托网络和至强计算方案,帮英特尔做出哪些数据中心和边缘网络开拓。

Nick McKeown: 最初的想法是把三大业务整合起来,包括我们的云网络,也就是我们的Tofino交换机和IPU;我们的基础NIC再加上硅光引擎,这些针对的是真正的大型数据中心和少部分规模化客户。接下来,我们打算把原本面向电信设备制造商销售的成果引入进来,最初是网络功能虚拟化,现在主要是vRAN和OpenRAN,总之就是把基站业务从设备内置转化成软件功能。

记者:贯彻这些工作的主线,就是把设备内置的固定功能转化为能支持行业标准组件的软件集合。

Nick McKeown: 我们这么做有以下几个原因。首先就是能给IT部门提供更大的敏捷空间,帮助他们组合所有计算资源,并通过云原生控制运行自己的基站。

记者:这里肯定有很多至强D处理器……

Nick McKeown: 确实会用到很多至强D,毕竟我们的思路就是从固定功能转向软件计算嘛。我们已经得到了喜人的结果,目前我们DSP工作负载的总体拥有成本和每瓦性能都具有极强的市场竞争力。

然后就是边缘业务部分。在我们看来,简单用“物联网”来形容还不够准确,因为其中涵盖客户场所内的一切——工厂自动化、零售店、数字标牌、智慧城市等等。整个范围极为广泛且分散,我们已经拥有1500家客户,他们遍布世界各地而且实际应用场景也截然不同。

总结来讲,Nex承载的就是跨云、电信和边缘三大业务板块。但如你所说,这一切的核心就是把人们从固定功能、可编程逻辑控制器中解放出来,转移到软件层面,让客户拥有更大的控制权和敏捷性。其实这一切已经在我们关注的各个行业中持续发生,在不同的时间节点上一次又一次影响到不同的群体,技术发展一直是这样。

那现在我们就从云网络业务谈起,也就是英特尔的Tofino交换机、IPU和NIC。

英特尔在NIC业务市场上拥有强大的优势地位,我们的1 Gb/秒和10 Gb/秒NIC产品仍然广受欢迎。多年以来,人们一直觉得NIC会逐渐被融入服务器当中,但事实证明并非如此。毕竟应用场景对于传输速度的压力越来越大,企业需要在新一代NIC中获得25 Gb/秒、100 Gb/秒、200 Gb/秒甚至是400 Gb/秒的传输速度。要想满足这些需求,就必须要有SmartNIC和IPU。很遗憾,当时英特尔在这方面投入不足,而且我还没有加入进来。好在英特尔意识到这种落后并一直在加速追赶。我们在基础和固定功能NIC领域的市场份额正在增加。但对客户来说,这些插入服务器的设备无法进一步调整,太过于僵化。而现在已经有了应用程序层次上的DPDK编程,而且被广泛应用于数据中心、云和电信环境。客户们希望能把这种DPDK编程能力直接引入网络。

大家可能听说过Barefoot Networks的事迹,这家公司希望改变整个高性能网络行业。当时业界有个共识性的假设,即只能以固定功能的形式构建这类高性能交换机。但Barefoot Networks偏不信邪,于是从2010年左右开始了这方面探索,并向全世界证明完全可以在不牺牲功率与性能的前提下,让网络编程成为现实。Tofino 1芯片与博通的Tomahawk 2几乎是同时发布,二者传输带宽均为6.5 Tb/秒、面积相同、功率也相同。因为二者的市场定位也一致,所以可以做一对一的成本比较。于是我们成功证明,交换机的转发平面不用放弃性能参数,也可以获得可编程性。

随着时间推移,由P4编译器和应用程序实现的可编程性,足以帮助客户们将架顶式交换机、主干交换机等设备同新型路由算法、网关、防火墙、负载均衡器等集成整合起来。单纯通过编程,客户就能把这些功能塞进自己的交换机。

但人总会对新生事物抱有怀疑态度,所以这些变化可能还要经历一段时间才能真正改变整个行业。不过怀疑背后的核心问题只有一个:你们真能在不牺牲功率、性能和面积的前提下,打造出跟固定功能设备水平相当的可编程产品吗?只要证明了答案是肯定的,只要指标是明确且真实的,那么观念终究会随事实而转变。

记者:您还在关注博通的“Tomahawk”交换机ASIC吗?你们正在开发Tofino 3,而那边正在开发Tomahawk 5……

Nick McKeown: 确实,我们有点落后了。英特尔对Barefoot的收购让一部分工作被迫暂停。但我们一直在努力追赶,并保持与云计算客户CPU路线图相匹配的产品开发进度和方向。你也知道,在客户进行集群升级时,当然希望网络能跟系统中的其他部分协同更新。

所以,我们也将沿着这条发展轨迹继续投资。交换机的关键,在于在传输速率与运行功率之间找到理想平衡点,同时为客户提供理想的灵活性与可编程性。毕竟我们面向的主要是云计算和超大规模企业客户,他们在这些方面往往有着不少硬性要求。他们希望能调整功能,满足自己的特定需求,例如拥塞控制、不同类型的负载均衡等待。这是他们的核心竞争力所在,而且直接体现为网络层面的差异化能力。其实这些客户对自己的应用细节一直秘而不宣,但据我有限的了解,目前各家云服务供应商的网络间其实或多或少存在着运营差异,完全谈不上什么行业通行的标准。但别误会,我倒觉得这其实是件好事。这意味着他们已经开始对自身业务环境做出区分,并将网络设计作为一项竞争优势。

从这个角度来看,智能处理单元,或者叫IPU,实际只是这种思路的延续。也就是保障数据包的处理线速,并在转发平面中使用P4进行程序控制。如此一来,大家就能决定要向其中引入哪些额外的拥塞控制算法或标头,以可编程/可配置方式实现线速加密与线速压缩,同时以不给CPU带来操作负担。有了这样一个神奇的CPU综合体,云基础设施代码就能得到全面监控。事实上,我们与谷歌在“Mount Evans”ASIC(我们的第一个IPU)项目中开发的就是这样的成果。

记者:您在Barefoot Networks时就已经开始探索IPU了吗?感觉Barefoot好像已经有所尝试了。

Nick McKeown: 当时还没有,是到了英特尔之后,由英特尔和谷歌共同开发的。

我们双方已经就200 Gb/秒的Mount Evans ASIC进行过大量交流。最近两家公司已经开始探讨下一代400 Gb/秒产品,我们将其定名为“Mount Morgan”。名称已经列入发展路线图,但实际成果尚未推出。我们还在合作开发800 Gb/秒的新方案,预计将在未来几年内持续推进。我们的升级周期大致在两年,也基本符合行业内的IPU使用趋势。

还有一点:我看到你之前在报道中一直在说“DPU”,而非“IPU”。不知道是不是这两个概念容易搞混……

记者:我觉得概念本身是挺清晰的,只是我找不到更合适的词汇来形容。最近有人说是我创造了“数据处理单元”,也就是DPU这个词。其实我不记得是不是自己先用的,可能是他们非要给这词找个出处。

Nick McKeown: 我想向你强调一点,IPU这个表述可绝对不是那种营销词汇。实际上,IPU的根本设计目标就跟所谓DPU完全不同。

这一切都是从NIC开始的,随后衍生出了多功能式的NIC——TCP转移之类的功能,于是SmartNIC的概念就此出现。之后SmartNIC又带入了更多内联处理,可以借助其中的核心在数据包传输过程中就完成处理。

而我们与谷歌的合作开发,也选择了类似的问题解决方式。我甚至猜测,亚马逊云科技(AWS)在他们的“Nitro”中也用了同样的思路。其中的关键并不单纯是在传输路径上添加计算能力,而是建立一个安全的位置来运行基础设施代码,保证租户代码不会对基础设施造成破坏。

这种IPU方案的一大基本面,就是使用PCI-Express总线作为DMZ,以保护基础设施免受租户侵害。时至今日,多核心CPU的结构已经极为复杂,根本没人知道要如何在租户和基础设施之间真正实现安全隔离,所以把这项任务交给IPU要方便得多。第二点,IPU与线缆间距离更近,所以能让基础设施拥有属于自己的超高速通信体系。换句话说,基础设施自身也可以利用到微服务架构,在无需干涉租户环境的前提下实现服务的极端轻量化与极端快速化。事实证明,这种剥离正是实现微服务架构的重要前提。因此有人将IPU称为微服务引擎,从某种程度上讲确实如此。

记者:早在1978年的System/38和1988年的AS/400,乃至之前的System/360时代,IBM就开始将其称为智能I/O处理器……当时的理由也很简单,CPU的核心数量和时钟速率都太有限、太宝贵了,因此有必要把I/O处理从CPU当中剥离出来。

Nick McKeown: 哈哈,说真的,我们选择IPU这个词并不只是为了好听,而是要强调它是在为云服务供应商提供基础设施。他们对于网络设施有自己的想法和要求——规模得更大、状态更丰富,而且要具备可编程的线速处理能力。而我坚信,我们的IPU是唯一能够保持200 Gb/秒传输速率的同时,提供可编程功能的IPU。这是云服务供应商的硬性要求,必须得到满足。他们绝对不能接受把所有基础设施都安装到位后,却发现传输速度只有理论数值的一半。

记者:毫无疑问,Mount Evans看起来是个不错的设计,功能设计到位而且拥有谷歌这家大客户的全力支持。但不知道英特尔能不能把它卖给其他厂商呢,我想听听你的看法。

Nick McKeown: 肯定是要卖给其他厂商的,而且目前Mount Evans正在与多家大型数据中心客户协同测试,毕竟这才是它的设计目的所在。

记者:DPU和IPU的连接速率是多少?计算能力是不是比SmartNIC更强?在我看来,任何多租户基础设施都需要把客户端应用程序和基础设施管理拆分开来,但即使基础设施这端仅供单一组织使用,负载转移和虚拟化也有明显的优势。当然,实际转移的容量和算力规模会有所区别,但我觉得任何服务器都应该采取这样的剥离思路。

Nick McKeown: 我们正朝着转发行为的全面可编程方向迈进。毕竟敏捷性是技术演进的前提,而且这种可编程性并不会牺牲性能或者成本,跟我们之前的交换机是一样的。所以在我看来,这种基于可编程性的转移会成为历史的必然。

问题在于:客户到底需要多少算力来执行处理。无论是云端基础设施,还是企业数据中心内的微服务加速、存储转移乃至其他加速场景,我们都要先回答这个问题。包括在大规模电信环境或是边缘位置,利用多个点位上的边缘服务器构建网络网格等。所有这一切都需要算力的支持,而且要求计算容量与可编程转发平面实现紧密耦合。唯一的区别,就是转发数据的速率和相应计算量。其中有些可能配备32核心,有些可能配备四核心甚至根本没有计算核心,具体视环境和可编程转发平面而定。但这一切,都将运转在具备同类计算、同类架构的连续统一体之上。

从宏观角度来看,交换机其实就是大量相同编程转平面的集合。这二者完全是一回事。所以,大家可以想见交换机本身就具备大量可编程转发功能。现在我要说点老生常谈了,之前我也无数次提到过,但这才是最振奋人心的发展趋势所在。

我们先设想自己有一大堆至强服务器和接入的IPU,同时还有几台配套的交换机。之后,我们在另一端有另一个IPU加一台至强服务器。在由此构成的管道之上,所有行为都具备了可编程特性。因此,如果我想要调整这条管道、引入自己原创的拥塞控制算法,那实现过程会比固定功能硬件轻松得多。这种强大的可编程能力既有利于我们自己,也有利于客户群体。同样在这条管道中,如果我想要安装防火墙、网关、封包、网络虚拟化等,也都可以在内核中用eBPF或者在用户空间中用DPDK等编程方式实现 。如此一来,我就能对整个管理的功能定位做出宏观描述,而且根本不需要关注哪些部分涉及内核、用户空间、IPU或者交换机,因为各项操作实际上已经被分区并编译到了整个管道体系内,完全可以用统一的编程方式加以实现。

记者:等等,你刚刚提到的编译器是真的存在了,还是说只是在构想阶段?

Nick McKeown: 其实还在构想阶段,但我认为这是历史的必然。所谓历史必然性,就是不管有没有我们亲身参与,都一定会成为现实。实际上,我觉得我们目前的发展路线就是在朝着那个方向推进。当然,我个人希望这一切都能出自英特尔之手,但最理想的状态肯定是发展出一个具备厂商中立性的网络生态系统。

我觉得IPDK的未来发展也会遵循这条路线,而一马当先的肯定就是可编程趋势。以此为基础,核心和CPU就能实现微服务、基础设施等各类功能。IPDK还能帮助我们把这一切都串连起来。我认为只有建立起厂商中立的开放生态系统,才能引导这个行业健康发展,任何一意孤行式的圈地自封只能搬起石头砸自己的脚。我的热情就是打造这样一个开放的生态系统,而英特尔显然也在努力推动其中的开源部分,这也是我选择加入英特尔的重要原因之一——顺应这股潮流、推动这股潮流,保证它一路涌向开放。即使最终没能占据优势,那也是我们自己没有做好。我再明确表述一下自己的立场:必须在生态系统中保持开放、保持一定的体量,然后不断扩张,确保能够为各种不同的设备提供最好的编译器方案。我认为这就是计算机行业该有的面貌,也是网络行业理想的运转状态。相比于躲在协议背后闭门造车,谁能真正释放出全球2500万开发者的力量,谁就能创造出我们如今无法想象的巨大魔力。

记者:下面我想问个老生常谈的问题。第一台IP路由器早在1970年代中期就诞生了,当时Bolt Beranek和Neuman已经在DEC PDP-11上实现了可编程功能。那后来网络为什么又走向了封装?是网络编程太复杂、太神秘,还是说人们把大部分精力投入到开发操作系统、系统软件、数据库和应用程序上了?

Nick McKeown: 我觉得这背后的原因其实很简单。最早的CPU、一直到8088处理器,在构建过程中必须选择开放,否则用户根本就搞不清要如何对其编程。换言之,厂商必须向客户公开指令集,告诉他们哪些指令可以执行、哪些执行不了等等。只有这样,用户们才能开发出编译器,顺利完成编程。因此,CPU行业展开了一场不同架构、不同编译器之间的军备竞赛,参赛各方都愿意敞开怀抱,向用户亮出自己的底牌。

另一方面,网络领域其实拥有自己的独特要求,那就是互操作性。因此从业者才接受标准优先、设计让步的原则。于是,大家就有了普遍支持的标准,IPv4、IPv6之类的。厂商用不着指导用户要如何编程,只要不违背标准,用户完全可以按自己的理解搞一些特别的底层设计。其实大家就是在分别用自己的办法实现同样的效果,但又各自保密、生怕被其他人看破。于是就出现了极为讽刺的一幕:各家会通过外部接口上的API实现标准化,但内部却是一套与世隔绝、完全保密的私有生态。但还是那句话,我觉得这不是坏事,毕竟很多创新成果都是由差异化孕育而来,毕竟每个人都相信自己的办法比对手更好。这样的状态持续了很多年,但后来市场上出现了主导性的厂商,他们不再需要继续创新,只要按照自己的需求添加一项项固定功能就行。到了这个阶段,供应商就必须重新扛起功能发展的大旗。

在Barefoot,我们真心希望能打破这种僵化的局面,允许用户决定交换机应该包含哪些功能,允许他们突破芯片设计师的束缚、按自己的想法规划设计。于是我们决定脱离委员会的设计协议,向耗时极长、成本极高的所谓芯片发展路线说不。相反,我们决定在可编程网络设备上开发一款强大的编译器,把功能运行的决定权重新交付到客户手中。

来源:至顶网计算频道

0赞

好文章,需要你的鼓励

2022

08/17

11:46

分享

点赞

邮件订阅