四巨头争相收购Mellanox 抢滩数据中心芯片业务
2019-03-11
据报道,英伟达正在接近以70亿美金的价格收购以色列芯片制造商Mellanox Technologies Ltd,若交易达成,将是英伟达有史以来最大规模的一起收购,并将加强其数据中心芯片业务,使其减少对视频游戏行业的依赖。知情人士称,英伟达对该公司的收购报价超过了英特尔,双方最早可能于周一宣布达成交易。
加上之前的英特尔、微软和赛灵思,迄今为止已经有四家公司都对Mellanox虎视眈眈,这是为什么呢?
下文是对Mellanox的成功和高端网络的增长的评论。让大家对这家倍受青睐的公司有更深入的了解。
Mellanox Technologies已成为领先的网络硬件供应商,特别是在高性能市场,根据Crehan Research的数据,该公司在速度高于10 GB/sec的以太网端口中占有70%以上的份额。
在以太网的性能水平达到10 Gb/s或更高时,为网络接口提供服务所需的处理开销开始成为问题——现代数据中心网络日益复杂,可能包括对性能加速技术、虚拟化和重叠网络的支持,这加剧了这一问题。一种解决方案是将部分处理任务卸载到网络接口控制器(NIC),这是Mellanox近年来进行了大量开发的一个领域。
卸载功能并不是一个全新的想法,但随着以大型云服务提供商为首的数据中心运营商开始采用软件定义网络(SDN),使更改和管理网络的工作变得更容易、成本更低,卸载功能已呈现出一个新的维度。
SDN尤其要求NIC变得更智能,以便能够根据需要重新配置它,从而支持新的功能或协议。这导致了一系列名为“SmartNIC”的设备的出现。
显然,与标准的基本NIC相比,SmartNIC必须提供更多的网络处理功能和智能。但是,带有卸载硬件的整个NIC领域尚未得到精确定义,这意味着必须支持哪些功能才能将设备作为“SmartNIC”进行销售尚不存在普遍接受的定义。
如果我们看看Mellanox以及它如何对这个领域进行分类,我们可以看到25 GB/秒和50 GB/秒以太网支持、无状态TCP/IP加速和SR-IOV等被视为现代数据中心中任何NIC都应该支持的标准功能。Mellanox将此类NIC视为基础设备,这些设备缺乏真正的能力来卸载来自主机处理器的数据包控制或流量。
从这里开始,使用可编程数据平面的设备可以根据需要更新或更改它们在硬件中加速的数据包交换规则和数据处理协议,而不是像在传统网络硬件中那样一成不变。它们还应该能够加速云数据中心中常见的一系列功能,比如确保服务质量水平、流报告和监控。Mellanox正在寻求这些智能NIC。
功能最强大的NIC是那些用于从主处理器卸载大量功能的NIC。除了前面提到的数据平面功能和其他功能外,还包括控制平面函数(如在虚拟交换机中找到的那些)和网络功能虚拟化(NFV)。关键是提供高性能和灵活的数据处理能力。这些设备被普遍认为是SmartNIC。
在这里,值得一看的是如何在所谓SmartNIC设备中实现网络功能的加速。在大多数情况下,它们可以分为三类:基于特定应用集成电路(ASIC)的,具有现场可编程门阵列(FPGA)功能的,以及使用集成了一个或多个CPU和标准NIC功能的片上系统(SoC)构建的。
对于那些想要使用硬件卸载的人来说,哪一种更优越呢?每一种选择都有利弊,这意味着选择可以在成本、实施的便利性和灵活性等考虑因素之间进行权衡。换句话说,没有简单的“正确”答案来决定哪个是“最好的”,因为这完全取决于实现的特定需求。
ASIC是一种经过试验和测试的加速特定功能的方法,通常以相对较低的额外成本提供高水平的性能。然而,它们的灵活性相对有限,这主要是基于芯片在制造过程中内置的功能。Mellanox使用可编程数据平面设计其适配器ASIC,因此数据包交换规则和路由可以在硬件中加速并按需更新,但网络控制平面仍必须在服务器的CPU或单独的网络控制器设备上运行。
另一种方法是使用FPGA,FPGA提供了良好的性能,并且可以在部署后重新配置其的逻辑块来支持新功能。此处的挑战是,FGPA不一定是最容易编程的东西,这一过程实际上涉及到定义逻辑电路和芯片门并将其烧录到FPGA中——每当需要更改时,这可能是一个相对昂贵且耗时的过程。此外,与可执行相同任务的专用ASIC逻辑相比,FPGA价格昂贵。
SoC方法提供了最大的灵活性,因为它们将已经智能的NIC与行业标准的可编程处理器内核集成在一起,并运行标准的操作系统和应用程序基础设施程序。CPU核心可以根据需要通过附加功能轻松地重新编程,并可用于执行网络处理任务的任意组合。这意味着SoC可以从主机服务器卸载大部分网络处理,从而允许它将更多的CPU周期用于运行应用程序和服务,这毕竟是云提供商赚钱的地方。
其中一些SOC(例如Mellanox BlueField)既包括基于ASIC的分组交换以实现最快的网络性能,也包括易于编程以添加新的网络功能和运行网络控制平面的CPU核心。这也允许SmartNIC运行策略引擎,从而更好地控制和隔离在主CPU上运行的潜在恶意应用程序。
基于这个原因,我们有理由将二者区别开来,认为唯一真正的 SmartNIC是那些结合了智能NIC卸载并使用标准板载CPU核心来加速网络功能的智能网卡。这并不是说这样的SmartNIC将完全取代其他技术,例如,ASIC在处理网络卸载方面非常高效,只是ASIC并不是那么灵活。然而,SmartNIC一词也越来越多地被视为特别适用于最灵活、最有能力的加速器,也就是那些拥有集成CPU核心的加速器。
另一个区别是:SmartNIC可以很容易地使用标准语言(如C语言)进行编程,以便能够快速更新以采用新功能。这些新功能包括处理虚拟网络覆盖协议(如VXLAN或NVGRE),虚拟化网络存储资源以使其看起来是主机处理器的本地存储资源,或在NIC级别运行安全功能,如入侵预防系统(IPS)。它甚至可能包括与存储相关的特性,如压缩、重复数据删除、RAID(独立冗余磁盘阵列),以及存储虚拟化。
SmartNIC源于超大规模网络公司和云运营商的大规模数据中心的需求,因为它们从使用专用硬件提供网络功能转变为在多个服务器节点上运行的软件功能,这些功能更易于扩展和管理。在超大规模用户的引领下,企业可能会遵循并设计更多的私有、公共和混合云数据中心。
定义仍然比较宽松,但关键在于:存在一系列跨越标准NIC的网络卸载功能、可加速数据平面任务的智能NIC,以及可卸载多种任务(如数据平面和控制平面功能)的可编程SmartNIC。
每一种都有自己的用例,你只需要确定自己的用例即可。