要了解智能网卡(SmartNIC) 是什么,我们需要从基本的网络接口卡 (NIC) 开始说起。自 1980 年代中期第一台 PC 出现后不久,网卡就已经上市。这种硬件组件将数据包转换成在网络中传播的信号。它允许计算机之间的通信,不仅是同一局域网 (LAN)上的计算机之间,还允许通过可路由协议或Internet 协议 (IP)进行更广泛的网络通信。简单地说,网卡将服务器/个人计算机与计算机网络连接起来,方便它们之间的通信。
那么,智能网卡和网卡有什么区别呢?
智能网卡是有线网络和计算资源在同一张卡上的融合,通常由网络接口控制器、多核CPU 制成 ,并可选择添加 FPGA 和/或 GPU 。可以把智能网卡看做一个可以编程的网卡,用于加速网络、存储和安全功能。此外,还可以执行虚拟化、负载平衡和数据路径优化。
智能网卡配备了计算能力,允许它们将所有网络功能、安全功能和存储功能从主机服务器卸载,从而释放宝贵的处理能力。释放处理能力使服务器能够专注于更有效地运行关键的应用程序和操作系统。网络虚拟化协议也可以卸载到智能网卡,包括 VXLAN、NVGRE、Geneve协议等等。另外,智能网卡还能执行数据包检查、流表处理、加密、VXLAN 覆盖和NVMe-oF等功能。
为什么需要智能网卡?
智能网卡减轻了主机服务器 CPU 的负担,比如路由、网络地址转换、遥测、负载均衡、防火墙等。智能网卡可以成为DDoS攻击的拦截器,还可以以类似于存储控制器的方式使用智能网卡来管理硬盘/固态驱动器。智能网卡也是卸载数据平面的绝佳解决方案。例如在 SDN 解决方案中,如Tungsten Fabric,它有助于管理 VM 上的流量,支持交换和路由以及流量分类。智能网卡还可以提供的其他的功能:
- 可以在网络边缘使用智能网卡,即设备/本地网络与 Internet 连接的区域。这使用户能够修改硬件逻辑以处理对性能有直接影响的数据。
- 智能网卡允许更新或升级其固件,让用户可以灵活地添加/修改其提供的功能,并允许在需要时进行安全升级。
智能网卡可以解决哪些问题?
存储
智能网卡硬件可以提高数据存储加密的安全性,它可用于从 NVMe 驱动器或 CPU 卸载数据加密/解密任务。此时,硬盘仅用于存储加密后的数据。由于智能网卡处理加密并包含所需的例程,因此NVMe驱动器不能单独用于检索数据(暴力破解攻击将是徒劳的)。智能网卡还可以兼作存储控制器,管理数据中心服务器上的硬盘驱动器 (HDD) 或 SSD(固态驱动器)。智能网卡通常连接到与服务器中的存储相同的总线上,因此,其可以直接与存储设备通信,数据无需流向服务器的CPU,只需从存储设备流向智能网卡。此外,智能网卡可以在网卡上运行VMware NSX,提高网络带宽,减少延迟,并释放CPU周期,提高应用程序性能。一些智能网卡,如赛灵思的 Alveo U25,在它们自己的本地存储中同时具有千兆字节的片上/板载内存。该存储可以作为服务器自己的 NVMe 磁盘的缓存。
DDoS 防御
智能网卡可以保护数据中心服务器免受 DDoS 攻击。DDoS 攻击是指个人或组织用大量流量淹没目标网络或服务器,导致目标站点或网络的正常流量被拒绝服务。智能网卡具有阻止 DDoS 攻击的能力。将DDoS 攻击的检测和防御工作从主机服务器卸载到智能网卡上,可以防止系统主 CPU 被 DDoS 攻击淹没,提高了DDoS 防御能力。之所以如此,是因为智能网卡可以被编程为动态丢弃 DDoS 攻击数据包。F5 声称,与没有智能网卡的服务器相比,配备智能网卡的数据中心服务器可以抵御 300 倍的 DDoS 攻击。此外,智能网卡可以过滤所有入站和出站数据包,类似于 Ip Tables的工作原理,为过滤网络流量提供了一个强大的体系架构。
低延迟 = 高性能
智能网卡以其在电子交易中的低延迟而闻名。如今,高性能 25-GbE网卡的延迟在 1,000ns 范围内。使用适当架构的系统、正确的软件和经过调整的智能网卡,可以在接收到网络数据包时对其进行分析,一次四个字节。然后,响应数据包可以在22ns的极快时间内注入到网络中,这比传统的高性能网卡快 40 倍以上。当部署在电子交易中时,这些智能网卡的投资回报率 (ROI) 有时可以在几分之一秒内衡量。
从 CPU 卸载计算任务
CPU 卸载是智能网卡的一个重要价值主张。用户可以将一些较重的计算任务移到智能网卡上,减少CPU的负载。智能网卡本身可以处理诸如区块链哈希和视频转码等计算密集型任务,从而释放宝贵的服务器 CPU 资源。区块链依赖于解决工作量证明。网络上第一个找到解决方案的节点将获得奖励,然后被允许捆绑并发布链上的下一个区块。在计算下一个解决方案时,智能网卡可以将区块链和待处理的事务保存在内存中。如果其首个找到解决方案,那么智能网卡会发布该区块并进入下一个区块。视频转码是另一种流行的主机 CPU 卸载方式,非常适合智能网卡。使用自适应比特率 (ABR) 压缩对视频进行转码以支持移动设备是CPU 密集型任务之一,尤其是对于实时视频应用程序。这些压缩任务非常线性的,并且已经被移植到基于 FPGA 的加速器上,与常规 CPU 相比,基于 FPGA 的加速器任务效率要高 10 到 20 倍。智能网卡还可以包括一个基本的 Netfilter 防火墙,以减轻主机 CPU 过滤所有入站和出站数据包的负担。Netfilter 是 iptables 的新版本,它提供了一个非常健壮的体系结构来过滤网络流量。将此防火墙卸载到智能网卡可以节省主机 CPU 每秒数百万条指令,然后这些指令可以应用在该服务器上运行的应用程序。
不同类型的智能网卡
智能网卡可以卸载网络、存储和安全等功能的负担。用户可以从以下各种智能网卡选项中进行选择:
- 基于FPGA的智能网卡——与仅基于软件的实现相比,基于FPGA的智能网卡明显加快了网络功能。
- 可使用 VHDL/Verilog 或 P4 进行编程 ——带有板载 SoC(片上系统)的智能网卡可以将一个或多个 CPU 与普通网卡连接起来。
- ASIC(专用集成电路)包含许多软件可编程微处理器内核。该解决方案可以减轻 CPU 的负担,例如标准化安全和存储协议等任务。
在什么情况下,特定类型的智能网卡会比其他类型的性能更好?如果最大的要求是灵活性,那么基于 FPGA 的智能网卡可能是最佳选择,这种类型可以对几乎所有功能进行编程。如果想移动主要为通用 CPU 编写的软件组件,带有板载 SoC 的智能网卡将会很有帮助。然而,与所有解决方案一样,智能网卡也有其弱点。
智能网卡局限性
没有完美的解决方案,智能网卡也在与自己的弱点作斗争。其限制有:
- 智能网卡没有标准
- 编排
- 与普通网卡相比价格更高
- 考虑到智能网卡的复杂性,有时实施时间可能会更长
智能网卡的未来
随着云服务提供商扩大容量,他们正在增加智能网卡的部署,以便为业务应用程序释放宝贵的 CPU 内核并优化服务器利用率。今天的服务器通常要花费 30% 的 CPU 周期来管理网络,智能网卡使系统架构师能够将高性能计算资源置于服务器的最边缘——网络。然后可以利用智能网卡来保护服务器,从而保护企业,同时还可以大大减轻更昂贵的服务器 CPU 的负担。根据市场研究公司 Dell'Oro Group 的数据,到 2024 年,智能网卡市场预计将超过 6 亿美元,占全球以太网适配器市场的 23%。我们已经可以看到来自博通、英特尔、迈络思和赛灵思等公司的新一代智能网卡。国内智能网卡市场也呈欣欣向荣之势,腾讯、锐捷、浪潮、芯启源、中科驭数等公司也正摩拳擦掌,以期大展身手。*本文系SDNLAB编译自codilime网站
(正文完)
【活动专栏】
【转载须知】
若转载文章为原创文章,可在相应文章下或公众号后台留言;其他非转载类文章须在文首以不小于14号字体标明转载自SDNLAB。
【投稿】
欢迎SDN、NFV、边缘计算、SD-WAN、TSN、5G 网络切片等网络方向的观点类、新闻类、技术类稿件。
联系人:kk__wu(微信号)
投稿邮箱:pub@sdnlab.com
详情请参考:SDNLAB原创文章奖励计划