探索现场可编程门阵列的智能网卡技术及其在数据中心的应

2021-06-25 17:00 来源:电子说

自从第一批个人电脑在20世纪80年代中期推出以来,网络接口卡(网卡)已经进入市场。然而,在过去的几年里,我们看到了智能网卡的崛起。什么是SmartNIC?按照最基本的定义,SmartNIC是可编程网卡。很多厂商只是符合SmartNIC的概念,在自己的实现中堆积冗余的芯片和固件。

更准确的定义是,智能网卡是一种包含客户可用的额外计算资源和使用这些资源所需的开源工具的网卡。这些额外的计算资源用于处理进出服务器时的网络流量,并在应用程序级别卸载主机CPU。

计算单元

SmartNIC将有线网络和计算资源集成在同一个卡上。这些计算资源可以包括以下一种或多种类型的资源:传统的x86 CPU,如Arm内核;数字信号处理器(DSP)专用核;人工智能(AI);网络处理单元(npu);或者现场可编程门阵列(FPGA)。智能网卡包含多个计算单元并不罕见。

服务器连接到网卡

每台服务器都使用网卡连接到网络。有时,嵌入式无线连接用于支持摄像头和恒温器等物联网设备,但大多数服务器都是有线网络。采用有线网络有许多原因,但最重要的两个原因是性能和可用性。

就可用性而言,有线网络只有在电缆损坏或拆除时才会中断。至于网络性能,我们重点关注两个指标:一是带宽,即可以通过网络传输的数据量;另一个是时间延迟,即传输数据所需的时间。

提高计算能力

虽然今天的数据中心网络使用25 GbE,并正在快速升级到50 GbE和100 GbE,但仍有必要认真考虑向SmartNIC添加额外的计算资源。对于传统的CPU核心(如Arm CPU核心),最有效的使用方式是将其保留用于控制平面管理。例如,双核或四核Arm核心组通常用于控制平面管理任务,例如将软件卸载到其他计算单元和日志记录。

今天的数据中心网卡每秒处理数百万甚至超过1亿个网络数据包。即使是主频为3GHz的Arm内核,也无法胜任每秒检查处理数百万个数据包,更别说数千万个数据包了。每秒指令的数量根本不足以处理如此大量的数据包。处理如此大量的数据包需要使用专用的计算资源,如专用的网络处理器、FPGA或GPU内核。

FPGA的并行处理和可编程逻辑特性往往使其成为这项任务的最佳选择。FPGA可以通过重配置快速解析网络包头,甚至包体。然后采取必要的措施,如丢弃数据表、打包数据包或以线路速率修改数据包内容。Xilinx Alveo SN1000智能网卡是一个典型的基于现场可编程门阵列的智能网卡,包括一个Arm核心组和一个网络处理器。

从计算机上卸载

卸载CPU是SmartNIC的一个关键用途。计算密集型任务,如区块链哈希和视频转码,可以单独由智能网卡处理,从而释放宝贵的服务器CPU资源。

区块链依靠解决工作量证明。网络上的第一个节点将得到奖励,下一个块将被捆绑并发布在链上。在计算下一个解决方案时,智能网卡可以将区块链和要完成的项目保存在内存中。如果解决方案成功,SmartNIC将发布该块,并开始处理下一个块。

视频转码是另外一个非常适合SmartNIC从主机CPU卸载的任务。使用自适应比特率(ABR)压缩来支持移动设备的视频转码是另一项CPU密集型任务(尤其是对于实时视频应用)。这些压缩任务是极其线性的。移植到基于FPGA的加速器后,证明效率比一般CPU高10到20倍。

此外,智能网卡还内置了基本的网络过滤防火墙,可以卸载从主机CPU过滤入站和出站数据包的任务。Netfilter是IP包过滤系统的新版本,它为过滤网络流量提供了一个非常可靠的框架。将此防火墙卸载到SmartNIC可以为主机CPU每秒节省数百万条指令,以支持服务器上运行的其他应用程序。

我们还提供包封装,也就是包功能。一旦我们将覆盖网络用于虚拟化或集装箱化系统,我们需要封装网络数据表,以便它们可以在这些覆盖网络之间正确路由。覆盖网络处理的例子是开放式虚拟交换机(OvS)。它具有非常高的CPU利用率,因此将此任务卸载到智能网卡可以释放大量主机CPU周期。

最后,我们还可以卸载通常运行在DNS或内存数据库等服务器上的主要网络应用程序。在智能网卡中完全处理DNS查询是典型的智能网卡应用,因为事务量小,查找表处理速度快。

使用智能网卡进行存储控制

智能网卡也可以兼作存储控制器。一些智能网卡,如Xilinx Alveo U25,在本地存储中有千兆字节的片内和板载内存(例如,U25有6GB)。该存储也可以作为服务器自己的NVMe磁盘的缓存。这很有意义,因为像计算快速链接(CXL)这样的协议将使未来的智能网卡能够直接管理与NVMe驱动程序的关系。

此外,智能网卡还可以在硬件中编码擦除和加密存储。为了洪水

动器加密,SmartNIC 提供了一种独特的安全机制。如果使用 SmartMIC 为存放到NVMe存储的数据进行加密或解密,要破解这种加密,就需要同时拥有这两个设备。如果管理员拆下 NVMe 驱动器到其他地方去解密,他们只能使用暴力破解法,猜测被留在 SmartNIC 上的缺失的加密密钥。

SmartNIC 可以方便地采用密码术保障上电周期间密钥的安全性,进一步提高系统的可靠性和安全性。例如,被赛灵思收购的Solarflare在 NIC 上保持着一个硬件安全隔离区,过去几年一直在其 X2 芯片上存储 NIC 密钥。未来的 SmartNIC 安全隔离区将有望为 SSL/TLS 端点加密保存数十万个安全密钥并保障它们的安全。

电子交易

最后,SmartNIC 还在另外一个领域里大有前途。那就是超低时延电子交易。我们在上文里谈论过在几百亿分之一秒内传输网络数据包。今天,高性能25-GbE NIC的时延在1,000ns左右。采用正确架构的系统、正确的软件和调试到位的 SmartNIC,能在收到网络数据包的同时完成分析,一次四个字节。响应数据包则能以令人惊奇的 22ns 内注入到网络中。这比传统的高性能 NIC 速度提高了 40 多倍。当用于电子交易时,这些 SmartNIC 的投资回报 (ROI) 有时可以不到一秒就能测得。

市场采用日益攀升

随着云服务提供商不断扩大容量,他们也在增加 SmartNIC 的部署,以将宝贵的 CPU 核心释放给业务应用,优化服务器利用率。今天的服务器往往把 30% 的 CPU 周期用在管理网络上。即相当于每三部生产服务器中就有一部用于组网。SmartNIC 支持系统架构师将高性能计算资源部署在服务器的边缘,也就是网络上。然后 SmartNIC就能用于保护服务器,进而保护企业,同时有力地从成本高昂得多的服务器 CPU 上卸载任务。

根据市场研究公司 Dell’Oro Group,到 2024 年,SmartNIC 的市场规模预计将超过 6 亿美元,占全球以太网适配器市场的23%。我们已经看到博通、英特尔、迈络思和赛灵思等公司纷纷推出新一代 SmartNIC。因此,当您设计您的新一代数据中心部署的时候,也许可以考虑将 SmartNIC 纳入到您的计划中, 而不是单纯将标准 NIC当作服务器的默认配置。

编辑:jq

延伸 · 阅读