智能网卡(Smart NIC)简介
2018-06-06 本文已影响85人
古斟布衣
1. Smart NIC介绍
Smart NIC即智能网卡,其核心是通过FPGA(现场可编程门阵列)协助CPU处理网络负载,编程网络接口功能,具有以下特征:
- 通过FPGA本地化编程支持数据面和控制面功能定制,协助CPU处理网络负载;
- 通常包含多个端口和内部交换机,快速转发数据并基于网络数据包、应用程序套接字等智能映射到到相关应用程序;
- 检测和管理网络流量。
Smart NIC能够提升应用程序和虚拟化性能,实现软件定义网络(SDN)和网络功能虚拟化(NFV)的诸多优势,将网络虚拟化、负载均衡和其他低级功能从服务器CPU中移除,确保为应用提供最大的处理能力。与此同时,智能网卡还能够提供分布式计算资源,使得用户可以开发自己的软件或提供接入服务,从而加速特定应用程序。
目前业界提供基于FPGA的Smart NIC的厂商包括Accolade、BittWare、Enyx、Ethernity、Napatech、Netcope、Reflex CES、Silicom和Solarflare,通常集成自Intel或Xilinx的FPGA来实现。此外,Broadcom,Cavium,Intel,Kalray,Mellanox,Netronome,Silicom和SolidRun均可提供基于处理器的Smart NIC,使用带有集成处理器内核或FPGA的处理器或智能I/O处理器;亚马逊和谷歌已经开发了Smart NIC ASIC。
2. Smart NIC面向的用户痛点
网络功能虚拟化(NFV)作为云计算的一部分演化,亚马逊和谷歌等“Web-Scale”提供应商使用商品硬件或商用现成(COTS)硬件组件构建自己的计算和网络平台,通过开发定制软件来控制它们。应用程序需要通过多个虚拟机(VM)甚至不同的服务器才能执行服务所需的所有功能,在与服务器VM或管理程序的每个交汇点处,都可能通过处理数据包来收集收费,从而减慢通信量。由此而来的软件虚拟化层性能损失,使得COTS硬件已经无法满足诸如移动流量等苛刻应用的性能需求:
- VXLAN等重叠隧道协议和OpenFlow、Open vSwitch(OVS)等虚拟交换技术的引入使得网络中数据平面的复杂性急剧增加;
- 数据中心超融合基础架构带来的带宽需求增加使得网络处理功能在CPU上产生更大的负载,影响应用程序执行;
- 传统网卡固定功能的流量处理功能无法适应SDN和NFV。
解决这些问题的方法包括:
- PCI网卡直通(PassThrough)到虚拟机,创建VM专用网卡,从而绕过虚拟机管理程序并处理不同数据包的复杂性;但是,该技术需要额外的网卡,从而增加网卡管理的复杂性;
- 使用网卡支持的PCI Express单根IO虚拟化(SR-IOV)技术,允许网卡将物理端口映射为多个虚拟端口或虚拟功能(VF),使得每个虚拟端口都可以绑定到VM,从而节省CPU资源并改善网络延迟和整体性能;但是,大多数网卡最多有效支持1GbE端口的8-16个虚拟端口和10GbE端口的40-64个虚拟端口。
- 目前最有效的硬件方法Smart NIC,将虚拟交换机功能完全从服务器CPU转移到网卡,释放昂贵的服务器CPU的计算能力以返回给应用程序,从而更好地扩展网卡功能并提供更高的性能。
3. Smart NIC应用场景
Smart NIC的应用场景包括:
- 白盒作为最受欢迎的商用现成(COTS)硬件,可以加入插件实现软件定义网络(SDN)和网络功能虚拟化(NFV)的各种计算和网络功能;Smart NIC可以将代码从CPU引入网卡,显著加速用于安全应用的加密/解密或用于深度包检测(DPI)应用程序,降低CPU负载,并且支持灵活的网络可编程性;
- 超融合架构数据中心中,Smart NIC为SDN和虚拟化应用程序提供硬件加速与网络接口紧密结合,并可分布在大型服务器网络中,减小CPU负载,提供额外的边缘计算能力,加速特定应用和虚拟化功能,并且通过正确的语言和工具链支持,为用户提供应用加速即服务的附加价值。