随着每天需要处理的数据量不断增长,我们对网络基础设施的处理能力要求越来越高。显然,现有硬件最终将达到极限,因此数据中心和电信运营商正在寻找提高服务器性能的新方法。
智能网络接口卡(SmartNIC)是加速数据中心服务器并提高其网络性能以及安全性和存储能力的一种方式。但这是怎么做到的,SmartNIC与传统网络接口卡有什么不同?让我们尝试理解其中的差异。
01 什么是 NIC ?
最初,自20世纪80年代以来,用于计算机网络的只有NIC或网络接口卡。NIC是一个硬件组件,允许同一局域网上的计算机彼此通信。它是家用电脑和电话的一部分,也是企业服务器和路由器的一部分。随着技术进步和NIC功能越来越多,需要在不同代之间进行命名区分。第一代NIC没有统一的官方名称,有些人称它们为基础、传统或基本NIC。
基本NIC 主要负责网络通信的物理方面,允许软件处理网络栈的上层操作。这种方法有优点也有缺点。
在软件中处理大部分网络栈允许我们快速引入新功能,修复错误,并允许更多的解决方案定制。但它有一个显著的缺点:在软件中处理数据包速度慢,并且为了处理网络栈而牺牲了部分计算能力。
为了解决这些问题,制造商开始在NIC中包含越来越多的专用硬件来处理诸如校验和计算或分段卸载等操作。
02 什么是 SmartNIC?
这引出了现在的时间以及能够用专用硬件处理几乎所有网络功能的专用NIC,并添加了可编程部分以允许定制。我们称这些为SmartNIC。
智能网络接口卡(SmartNIC)不仅仅是处理服务器之间的连接。根据定义,SmartNIC是一种NIC,它通过额外的计算层扩展了其标准功能。这个计算层可以被编程来执行任务,如在应用程序或虚拟机之间交换或路由流量,检查流量以阻止潜在威胁,甚至进入应用程序世界,绕过操作系统为用户提供数据,如电影。
我们可以将SmartNIC视为一个可编程的加速卡,就像我们今天使用GPU一样。在数据中心使用SmartNIC,我们可以像卸载专用硬件的图形相关计算一样,卸载与网络相关的任务,**释放CPU能力**并提高数据中心基础设施的灵活性和性能。
03 SmartNIC与NIC之间的差异
NIC和SmartNIC之间有两个主要差异,即它们拥有的组件以及它们可以执行的任务。当然,SmartNIC作为更“进化”的版本,在大多数情况下将拥有基本NIC的所有功能,并且可以作为NIC使用。让我们更仔细地查看每个方面。
SmartNIC与NIC组件对比
任何网络设备都需要一些基础组件来在网络的较低层保持兼容性。实际的互连是通过使用嵌入式铜端口或收发器端口完成的,这允许使用多种类型的光连接器。**以太网物理控制器**负责实际的数据帧编码。标准NIC包含这些基础组件和处理主机和网络卡之间双向数据交换的电路。随着网络的发展,卡上的以太网控制器变得更加复杂,以支持虚拟化所需的新功能(例如**SR-IOV**)。随之而来的是对一些最常见操作的支持,以及在现代NIC中对几种隧道封装在硬件中的支持。虽然这种方法被证明非常有效,但标准NIC缺乏可编程性,这在一些更复杂的应用中是限制性的。
在这些情况下,需要一种新的方法,并且在网络适配器中添加了额外的组件。这些组件专门针对以可编程方式扩展NIC功能,允许解决复杂的网络应用。目前市场上常见的方法是嵌入:现场可编程门阵列(FPGA)、通用CPU(通常为**ARM**架构)或专门的微核架构。有了这些功能强大且高度可定制的组件,一种新型网络适配器诞生了,通常称为SmartNIC。
可编程加速器和强大处理器的结合使SmartNIC能够提供灵活性和高性能。为了管理现代分布式应用程序,SmartNIC卸载服务器上的计算密集型任务,确保服务器的CPU可以完全用于为云服务提供商产生收入的计费工作负载。此外,专用加速器在网络应用中比通用CPU更有效,允许更低的延迟和更高的流量容量以及更低的成本。
SmartNIC 与常规NIC对比
SmartNIC的功能
SmartNIC到底能做什么,而标准NIC不能?
由于其更复杂和强大的结构,SmartNIC可以提供许多功能。这些功能可能会有所不同,取决于SmartNIC供应商,但以下是最常见的一些功能。
SmartNIC的内置**可编程加速器**可以处理多个网络任务,包括负载均衡、遥测、路由、虚拟交换、网络覆盖等。所有这些网络功能也从主机服务器的CPU卸载,使数据中心网络更加高效。
当需要为容器化或虚拟化系统使用覆盖网络时,SmartNIC可以执行隧道,以便数据包可以在这些覆盖网络之间路由。
SmartNIC在数据中心提高网络安全方面有多种方式。它们最重要的功能之一是保护数据中心服务器免受DDoS(分布式拒绝服务)攻击,这些攻击通过用流量淹没网络来耗尽服务器的处理能力。与常规防火墙不同,SmartNIC可以配置为检查和动态丢弃数据包,防止**DDoS攻击**。将DDoS攻击的检测和预防卸载到SmartNIC,允许数据中心运营商确保在DDoS攻击事件中,主机服务器CPU不会被压垮。
总的来说,SmartNIC也可以用于过滤网络流量或作为Netfilter防火墙。SmartNIC可以过滤所有入站和出站数据包,从主机服务器CPU卸载此任务。
SmartNIC通过在SmartNIC的操作系统和主机系统的操作系统之间创建一个空气间隙,提供了一个额外的安全层来保护它们自己的操作系统。它们还用于确保多租户隔离,当同一个物理数据中心被多个消费者共享时。
SmartNIC可以加速的另一个安全领域是**流量加密**。根据SmartNIC配置,要么在硬件中完成计算密集型的加密程序,要么在某些情况下,SmartNIC是安全隧道的端点。什么是 GPU集群网络、集群规模和集群算力?
在现代数据中心中,使用网络带宽最关键的服务之一是网络存储。无论是专用的远程存储服务器还是超融合基础设施和分布式存储实现,它都极大地贡献了网络流量量。网络和远程存储通常被视为基础设施的一部分,因此SmartNIC提供**存储卸载功能**是有意义的。这些通常包括卸载远程存储协议或特定于供应商的解决方案,如果托管在本地磁盘上,则提供块存储。
由于其处理器组件,SmartNIC提供了卸载计算密集型任务的机会,如转码视频或区块链哈希,从服务器的CPU。因此,数据中心可以从其硬件中提取显著更好的性能,而不是用升级版本替换它。
如果我们以使用自适应比特率压缩进行视频转码为例,这对于服务器CPU来说是一个非常计算密集型的任务,特别是如果是实时视频。SmartNIC卸载和加速压缩任务,释放主系统CPU。
还可以卸载通常在服务器上运行的主要网络应用程序,如内存数据库或DNS查询。SmartNIC可以非常快速地处理DNS查询,这使其成为使用SmartNIC最受欢迎的方式之一。
SmartNIC与数据处理单元相同?
在市场上,我们可以找到被描述为数据处理单元(DPU)、基础设施处理单元(IPU)或网络处理单元(b)的产品,它们通常被统称为xPUs。这些产品在功能上有一些差异,通常提供特定用例的开箱即用支持,但由于它们在功能原理上的相似性,它们可以被归类为SmartNIC。由于没有普遍认可的SmartNIC定义,当前市场趋势表明,xPUs确实是SmartNIC,是进化和专业化的,而不是一个单独的概念。
04 结论
尽管今天,标准NIC代表了网络接口的基本水平,但它们仍然扮演着重要的角色,特别是当解决方案的成本很重要时。SmartNIC提供了更广泛的功能,并改善了数据中心的网络、存储和安全性。
由于不同供应商的SmartNIC的具体组件可能会有所不同,因此可以选择最适合特定数据中心需求的版本。使用SmartNIC及其强大的可编程组件而不是默认NIC已经提供了许多不容忽视的优势。
本文由“通信百科”编译自:https://codilime.com/blog/smartnic-vs-nic/