过去十年来,计算成本一直在趋于平缓,网络和存储负载同时在增加。最重要的是,网络性能和计算性能之间的差距正在扩大。面对摩尔定律关于CPU的增长放缓,将网络,存储和其他功能从服务器处理器卸载到支持计算的网络接口的SmartNIC有望产生一定的作用。
关于所谓的SmartNIC的讨论越来越多,其实原因很简单。在过去的几年中,该行业正在从单个网络设备中的复杂配置转向集中管理的控制器中的更简单配置。在扩展规模时,抽象出复杂性是关键。通过将网络配置转移到服务器NIC而不是机架(ToR)顶部交换机,物理网络结构可以变得更加简单,实际上可以充当传输层。SmartNIC将能够使用常规的静态路由或使用BGP或MPLS的动态路由连接到网络。
SmartNIC架构
微软拥有一百万基于FPGA SmartNIC的“Catapult”,而Amazon Web Services具有基于其自己的Arm处理器的“Nitro”,Google和Facebook尚未部署SmartNIC,国内的阿里巴巴正在使用其X-Dragon处理器进行概念验证,但百度或腾讯都尚未部署任何数量的SmartNIC。
SmartNIC到底是什么,为什么它如此重要?开发最初是从AWS作为其云的内部项目开始的,从而简化了网络操作,并使物理网络设备更简单,更省力且更易于管理。
简而言之,SmartNIC是具有通用CPU,带外管理和虚拟设备功能的NIC。
通用CPU:拥有一个通用CPU可以使一个人直接在NIC上运行任意代码和应用程序,例如网络和存储服务,这既可以提高性能(由于可以快速访问网络I/O路径),又可以节省成本和核心CPU周期。
带外管理:SmartNIC上的CPU复合体可以独立于服务器的CPU进行管理,这意味着LCM可以独立,并可以为云层面提供操作和管理的新控制点。
虚拟设备功能:SmartNIC可以将PCI总线上的“虚拟”设备公开给核心CPU OS和应用程序,就好像它们是实际的硬件设备一样。这提供了以前没有的软件驱动的硬件灵活性。
本质上,NIC上面有一个计算层,从而可以在NIC本身上运行自定义软件。计算层可以控制为网络流量提供服务并可以执行特定网络功能的可编程ASIC。ASIC还为物理网络电缆和常规服务器OS之间提供了额外的安全层,因为NIC内置了一个可编程的网络设备(而不是在ToR交换机中安装该设备)。所以我相信SmartNIC确实是一种转型技术,它将推动硬件架构和设计的拐点。
重新定义混合云架构
VMware最近宣布了Monterey项目,他们正在与NVIDIA,Pensando和Intel合作。蒙特雷计划(Project Monterey)提供了一种更为简单的解决方案:因为SmartNIC不仅可以将虚拟设备公开到其本地主机,还可以将这些虚拟设备公开到远程主机。
想象一下有一个四节点主机的集群,其中在其两个没有加速器的主机上运行应用程序,而另外两个主机具有加速器(在这种情况下为FPGA)。通常,这两个应用程序将无法访问FPGA,因为本地主机上没有。目前实际上只需将硬件加速器公开给群集中的所有主机,即可使群集中的所有应用程序都能利用这些加速器。
越来越多的客户正在寻求在其混合云(数据中心,电信云和边缘)中降低TCO,Vmware正在与众多SmartNIC供应商和服务器OEM合作,以为客户提供集成解决方案。众所周知这种混合云的方案有以下好处:
网络性能和安全性:有一个并行层运行虚拟设备功能,通过将网络和安全功能转移到SmartNIC,而不是将流量转发到服务器OS,这样可以保证在没有核心CPU开销的情况下实现线速性能,并提供具有L4-7安全性的分布式防火墙,而不会影响网络性能!
云规模的存储和分布式:由于NIC通常与服务器内部的存储是同一总线的一部分,因此SmartNIC也可以直接与服务器中的存储通信。这样就可以实现在不影响性能的情况下实现诸如压缩,加密和擦除编码等存储功能的加速。它还可以提供提供动态存储配置文件(用于iops和容量)和按需远程存储访问。
裸机和可组合性:核心CPU组件上运行的功能是可以转移到SmartNIC组件上的,那我们就可以为该裸机OS提供存储和网络服务,这样就能满足企业和CSP客户对裸机和机架级功能特殊架构的需求。
重新定义可观察性
良好的可见性和监控是分布式网络的关键。当不能仅登录到单个设备并进行数据包捕获时,很难确切地知道发生了什么。幸运的是,SmartNIC具有内置的可观察性和令人印象深刻的功能。诸如NetFlow(添加了有关段大小,应用程序信息,防火墙规则操作的字段),获取L4到L7信息的数据包检查,流日志记录,往返时间延迟跟踪之类的东西都已存在。大多数数据也可以通过SmartNIC API获得,因此其他兼容性的产品都可以可以使用它。
参考链接:https://pensando.io/wp-content/uploads/2020/03/Deep-Observability-with-the-Pensando-Distributed-Services-Platform.pdf
重新定义服务网格
从目前产业应用范围看,各个主流云厂商都提供了自己的网格服务,并且越来越多的用户也在一起探索网格技术对已有系统的迁移和可替换性。新兴互联网公司规模相较于一些大型互联网公司体量都不是很大,服务网格中的资源占用与性能降低的问题变成了网格技术能否大规模使用推广的关键。SmartNIC是其中一项关键技术,可以实现更高级别的性能,加密操作以及接近资源利用的方式。
原图来源于容器魔方:华为云原生团队
节点主机与SmartNIC内通过RDMA等技术进行数据双向通信,并通过主机侧出流量拦截层的EBPF模块结合硬件卡内的自研用户态协议栈对传输层数据进行封装,这样对于数据面代理本身可以做到网络处理代码部分最大的兼容性,同时对于外发网络请求可以将现有租户隔离等功能与用户态协议栈进行进一步融合,减少网络处理消耗。
Tetrate首席执行官兼创始人Varun Talwar说:“SmartNIC具有三个方面的优势。按顺序分别是性能,安全性和可以卸载的数据负载。这将导致诸如服务网格之类的技术得到更多采用。预计自己两年之内对SmartNIC会有更深的需求和兴趣。”
总结
这些SmartNIC的性能,安全性和可扩展性将使其成为未来网络发展的下一步。将网络功能从中央网络设备直接移动到分布式服务器上。将网络和存储功能从主CPU和OS转移到NIC硬件,将获得惊人的性能提升并减少主CPU的负载。传统的混合云架构、固有的可观察性、以及不被大规模使用的服务网格技术,这些都将因SmartNIC的出现,使CPU更加专注于核心计算,而不是网络和存储繁忙的工作。
回归到SmartNIC本身,实际上其他服务提供商对制造自己的SmartNIC的需求为零,这就是为什么业界像Solarflare/Xilinx,Broadcom拥有Stingray,Mellanox Technologies拥有Bluefield(CPU)和Innova(FPGA),Marvell拥有LiquidIO,Silicom拥有FB系列(FPGA)都在追寻SmartNIC的机会,而Vmware正在与NVIDIA,Pensando和Intel合作,将完整的解决方案推向市场。
参考链接:
1.https://lostdomain.org/2020/11/16/smartnic-the-next-step-in-networking/
2.https://www.nextplatform.com/2020/03/03/a-flare-for-smartnics/
3.https://thenewstack.io/where-service-mesh-and-smartnics-meet/
责任编辑:xj
原文标题:SmartNIC是混合云架构和服务网格的必然?
文章出处:【微信公众号:存储社区】欢迎添加关注!文章转载请注明出处。
全部0条评论
快来发表一下你的评论吧 !