2019 年 9 月 3 日 ,Mellanox 宣布隆重推出 ConnectX-6 Dx 和 BlueField-2 – 新一代云Smart NIC 和 I/O 处理单元 (IPU) 解决方案,旨在大规模处理各类工作负载时实现无与伦比的数据中心安全性、性能和效率。
据官方所言 :“ConnectX-6 Dx 和 BlueField-2在关键应用中引入了最新硬件加速引擎和一流软件编程能力,让不可能变成可能。不仅提升超大规模数据中心、企业和电信环境的安全性和效率,还能使它们实现最高投资回报率 (ROI)。”
为何网卡会如此智能,为何要将编程能力赋予网卡,我们来一探究竟。
网络带宽远远超过计算能力
目前,服务器网络带宽正面临快速增长。200Gbps以太网网卡已经成为主流,厂商还在不断研发新的400Gbps NIC,而1Tbps很快将成为下一个目标。另一方面,处理网络I/O的计算容量空间正在不断缩小。例如,对于典型的使用32字节键值的键值存储,为了在100 X86 CPU内核的情况下保持400Gb/s的线速,一个内核大约需要500个周期来处理每个键值对。即使在这种理想的假设下,这种微不足道的计算能力也仅仅能够在网络堆栈中执行一些LLC或内存访问,留给应用程序逻辑的东西少得可怜。换句话说,未来具有线速I/O处理需求的应用程序注定要受到CPU和内存的限制。
商用服务器对于线速I/O的低延迟处理需求达到了前所未有的高度,硬件无法跟上数据中心网络工作负载的快速变化。例如,用于访问网络附加存储、新标准和隧道格式的压缩技术都在快速发展,超过了ASIC开发和部署的生命周期。此外,数据中心网络范式从专有的中间盒,例如防火墙和入侵检测系统,转变为虚拟网络功能(VNF) ,这也进一步推动了计算需求。VNF给CPU的网络处理带来了负担,并且也对计算提出了更高的要求。
网络I/O性能为CPU和GPU带来挑战
网络I/O的性能问题长期以来一直备受关注,其重点在于消除操作系统网络堆栈中的低效率以及优化NIC-CPU交互。目前实现VNF的常用方法是完全绕过网络堆栈,直接从用户级库(例如DPDK)访问原始数据包。此外,CPU和NIC硬件提供了几种机制来提高I/O处理的效率,例如,将数据直接引入CPU LLC(DDIO),并通过减少CPU内核之间的缓存争用(例如,接收端扩展)和降低中断频率(例如,中断调制)来提高可扩展性。但即使采用了这些增强功能,在10Gbps的速度下依旧需要多个CPU内核来执行公共网络功能。此外,现有系统也会因为CPU资源争用而导致延迟增加,包处理性能也出现波动。
GPU也被用于加速网络数据包处理应用(例如,PacketShader、SSLShader、SNAP和GASPP)。不幸的是,由于GPU控制和PCIe数据传输,GPU引入了高延迟开销。此外,在大多数I/O密集型工作负载(如路由)中,GPU的TCO增益和功率效率受到了质疑,仅在CPU上使用延迟隐藏技术就能够在较低的延迟下实现类似的性能。目前关于使用GPU加速网络处理还存在许多争议。伴随着一系列的挑战,网络与计算的高效融合势在必行。
智能网卡生逢其时
早期的网卡仅实现数据链路层和物理层的功能,而端系统CPU负责处理网络协议栈中更高层的逻辑。CPU按照网络协议栈中传输层、路由层的逻辑,负责数据包的封装和解封;网卡则负责更底层的数据链路层帧的封装和解封,以及物理层电气信号的相应处理。
在2000年代初期,随着诸如Intel IXP系列网络处理器的推出,人们萌生了在NIC添加可编程硬件的想法。但是,这些处理器主要用于专用网络设备中处理网络协议栈,而不是用于当今拥有智能网卡的商用服务器。
现今,业界普遍的百G级带宽、微秒级延时的高性能网络设施需要端系统协议栈具备极高的处理速度,因此将协议栈的处理卸载(offload)到网卡ASIC芯片上实现是目前普遍采用的方式;同时为应对层出不穷的虚拟化需求,网络协议栈所包含的处理功能也需要频繁更新,这又使将协议栈的处理卸载到网卡ASIC芯片上变得非常困难。在此背景下,智能网卡(smart NIC)技术开始走进人们的视野并逐渐得到普及。不同于传统网卡,智能网卡同时具备高性能及可编程的能力,既能处理高速的网络数据流,又能对网卡进行编程,实现定制化的处理逻辑。
现代的智能网卡更要会计算,还要承担安全、加密的智能,具备独立编程的能力。
智能网卡的能力考验
智能网卡的出现看似从逻辑上缓解了CPU的负担,但如何能完成CPU的处理效率成为智能网卡生存考验的第一关。然而随着RDMA技术的出现,解决了这个问题。
熟悉了TCP/IP的人也许对RDMA感到陌生,其实RDMA作为一种零复制网络技术使网卡可以直接与应用内存相互传输数据,并且应用程序可以访问远程内存,而不占用CPU资源。
RDMA(Remote Direct Memory Access)技术全称远程直接数据存取。RDMA消除了外部存储器复制和文本交换操作,因而能解放内存带宽和CPU周期用于改进应用系统性能。当一个应用执行RDMA读或写请求时,不执行任何数据复制。在不需要任何内核内存参与的条件下,RDMA请求从运行在用户空间中的应用中发送到本地NIC(网卡),然后经过网络传送到远程NIC。请求完成既可以完全在用户空间中处理(通过轮询用户级完成排列),或者在应用一直睡眠到请求完成时的情况下通过内核内存处理。
作为RDMA(远程直接内存访问)技术的推动者,Mellanox一直以提供出色性能的网络著称,50%以上的HPC系统和主流人工智能公司均采用其RDMA网络(包括InfiniBand和RoCE)。这也进一步印证了Mellanox在最开始对新产品性能不吝辞藻的渲染。
从数据上可以看到,ConnectX-6 Dx最多提供两个25、50或100Gb/s端口或者单个200Gb/s端口,其以太网卡使用了50Gb/s的PAM4 SerDes技术和PCIe 4.0接口。包括IPsec和在线TLS动态数据加密,提供NV、RoCE、NVMe-oF等协议。
BlueField-2 IPU在一个SoC上, 集成了 ConnectX-6 Dx 的所有功能,完全充当了协处理器,在计算机前连接另一台计算机,运用先进的软件定义网络技术、NVMe SNAP 存储解聚技术和增强型安全功能可实现裸金属环境和虚拟化环境的转换。类似NIVDIA的GPU,ConnectX-6 Dx、BlueField-2这是要对CPU进行抢班夺权。
智能网卡带来的想象力
下面我们从几张图看看智能网卡的多重应用。
Dell’Oro Group 总监 Baron Fung 表示,“随着云计算的日益普及,企业越来越依赖底层数据中心基础架构能支持应用在公有云、私有云和边缘间的切换。”“因此,市场需要更先进、更安全且高性能的 SmartNIC。据此我们预测 SmartNIC 市场将以 40% 的复合年增长率增长,到2023 年市场总值将突破 5 亿美元。”
面对巨大的云安全挑战,人们希望智能网卡可以为每一台数据中心服务器、存储和边缘计算端点提供保护。以安全为核心,智能网卡需要包含更多的创新技术, 包括 IPsec、TLS 和 AES-XTS 内置加密加速,硬件信任根等。此外可能还需要加速密钥管理、集成了正则表达式 (RegEx) 模式检测、安全HASH计算等功能。ConnectX-6 Dx 和 BlueField-2这么火,可能正是顺应了这些需求。
随着软件定义网络(SDN)和网络功能虚拟化(NFV)的快速发展,由此驱动的云数据中心网络架构的转变,对智能网卡(SmartNIC)提出了新的需求。
具有高级编程功能SmartNIC能够提升应用程序和虚拟化性能,实现软件定义网络(SDN)的诸多优势。通过在每台服务器上使用SmartNIC,运营商可以确保网络虚拟化、负载均衡和其他低级功能从服务器CPU中卸载,确保为应用提供最大的处理能力。此外,SmartNIC还能够提供分布式硬件资源,可用于卸载或加速特定应用程序。运营商可以使用SmartNIC厂商或合作伙伴提供的软件,开发自己的软件或提供接入服务,以便用户使用定制化的软件。
基于新一代的智能网卡,从SDN、NVMe SNAP,到网络安全,利用网卡的计算能力,重新构建应用的架构。以安全为例,如果以防火墙为基础,一旦突破了防火墙,安全威胁就会畅通无阻,但在新的架构中,由于网卡具备安全计算的能力,无疑为内网的每一台主机构建了安全的保证。
利用RDMA助力存储、大数据和人工智能发展
相比普通的TCP来说,RDMA会有更好的数据传输效率,可以大幅度加速深度学习的训练速度,缩短训练时间;而不具备RDMA功能的网络,即使指标支持高带宽,但受限于TCP通信技术本身瓶颈,应用程序性能依然备受网络性能的掣肘。没有RDMA,网络带宽与应用性能很难有直接的对应关系。
此外用于自动驾驶汽车和其他机器学习培训需要大量的网络带宽和RDMA才能将GPU系统互相连接并连接到存储。这就是为什么NVIDIA DGX AI服务器和DRIVE星座驾驶仿真解决方案充分利用InfiniBand和以太网网络连接的原因。期待在网络、安全和存储上的新功能大大加速数据中心和边缘的培训和推理的工作负载。
GPU也好,ConnectX、BlueField等IPU也好,为什么都把矛头指向了CPU? 最要的原因就在于需求的变化。
CPU时代,按照传统冯诺依曼架构来构建系统,其核心是移动数据到CPU。但是随着数据爆炸式增长,数据俨然已经成为核心,传统计算模式已经不合时宜。
以数据为中心的系统已经是大势所趋,而且以机器学习为特征的AI应用快速发展,无疑成为了新趋势的催化剂。
【投稿】
欢迎SDN、NFV、边缘计算、SD-WAN、TSN、5G 网络切片等网络方向的观点类、新闻类、技术类稿件。
联系人:04&07
投稿邮箱:pub@sdnlab.com
详情请参考:SDNLAB原创文章奖励计划
注:本公众号允许其他公众号或网络平台进行转载,但任何形式的转载需注明“文章转载自SDNLAB公众号”相关字样