论文阅读:Azure Accelerated Networking: SmartNICs in the Public Cloud

摘要:

现代云架构依赖于每个运行自己的网络堆栈的服务器来实现策略,例如虚拟网络的隧道,安全性和负载平衡。但是,随着功能的增加和网络速度的提高,这些网络堆栈变得越来越复杂。

在CPU内核上运行这些堆栈会浪费VM的处理能力,从而增加运行云服务的成本,并增加网络性能的延迟和可变性。

我们介绍了Azure加速网络(AccelNet),这是使用基于FPGA的自定义Azure SmartNIC将主机网络卸载到硬件的解决方案。我们定义了AccelNet的目标,包括与软件可比的可编程性,与硬件可比的性能和效率。我们展示了FPGA是当前用于减轻网络堆栈负担的最佳平台,因为ASIC无法提供足够的可编程性,而嵌入式CPU内核也无法提供可扩展的性能,尤其是在单个网络流上。

(这里一开始没看懂网络堆栈的意思,查了一下,OSI模型就是一种七层的网络堆栈)

背景/问题:

公共云是大量且迅速增长的在线软件服务背后的骨干。仅在Microsoft Azure云中,这些服务就消耗数百万个处理器核心,几EB的存储空间和PB的网络带宽。

带宽和延迟的网络性能对于大多数云工作负载至关重要。作为大型公共云提供商,Azure已基于基于主机的软件定义网络(SDN)技术构建了其云网络,使用它们来实现几乎所有的虚拟网络功能,例如具有客户提供的地址空间,可扩展的L4负载的专用虚拟网络。平衡器,安全组和访问控制列表(ACL),虚拟路由表,带宽计量,QoS等。

在短短的几年内,我们将网络速度从1GbE提升到40GbE +,提高了40倍以上,并增加了无数新功能。这些功能由主机平台负责,这通常意味着在管理程序中运行的软件提供这些服务的成本不断增加。而且,尽管我们构建了日益完善且高效的主机SDN数据包处理功能,但在主机上以软件运行此堆栈需要额外的CPU周期,为这些服务刻录CPU会浪费客户VM可用的处理能力,并增加了提供云服务的总体成本

已提出单根I / O虚拟化(SR-IOV),以通过允许从VM直接访问NIC硬件来降低CPU利用率。但是,这种直接访问将绕过主机SDN堆栈,从而使NIC负责实施所有SDN策略。由于这些策略变化迅速(数周至数月),因此我们需要一种能够提供类似于软件的可编程性,同时提供类似于硬件的性能的解决方案

在本文中,我们介绍了Azure加速网络(AccelNet),这是在基于FPGA的Azure SmartNIC上实现的主机SDN堆栈。 AccelNet在虚拟化环境中提供近乎基本的网络性能,将数据包处理从主机CPU转移到Azure SmartNIC。在基于软件的VFP主机SDN平台[6]和Catapult程序的硬件和软件基础架构[7,8]的基础上,AccelNet提供了专用硬件的性能以及在虚拟机管理程序中运行的软件的可编程性。我们的目标是展示我们的设计和我们在大规模生产中运行AccelNet的经验以及我们吸取的教训

(关于公有云:公有云平台提供商通过互联网将存储、计算、应用等资源作为服务提供给大众市场。企业不需要自己构建数据中心,只需要根据使用量支付开支。如果说传统 IT 设施是企业自己给每个部门准备一台发电机、铺电线。公有云就是企业从专业电力公司买电,基础设施的建设和管理完全交给电力公司,企业用多少电付多少钱。能够最高效、最经济地利用资源)

虚拟过滤平台(VFP)是我们的云级可编程vSwitch,为Azure提供可扩展的SDN策略。它旨在满足Azure的许多SDN应用程序的可编程性需求,并为多个SDN控制器提供一个平台,以通过match+action表来研究复杂的有状态策略。

解决办法:

AccelNet的目标之一是找到一种使VFP的复杂策略与SR-IOV兼容的方法。

我们在VFP中使用的用于在SR-IOV环境中强制执行策略和过滤的机制称为通用流表(GFT)。 GFT是一种匹配动作语言,它为一个特定的网络流定义了对数据包的转换和控制操作。

从概念上讲,GFT由一个大表组成,该表具有一个主机上每个活动网络流的条目。 GFT流是基于VFP统一流(UF)定义的,它匹配可能跨越多层封装的唯一源L2 / L3 / L4元组和目标L2 / L3 / L4元组,以及标头转置(HT)操作,该操作指定标头字段的处理方式添加/删除/更改。

只要GFT表不包含网络流条目(例如,当启动新的网络流时),就可以将流引导到主机上运行的VFP软件。然后,VFP使用实时流动作编译器为流的第一个数据包处理所有SDN规则,以为每个UF(例如每个TCP / UDP流)创建有状态的精确匹配规则,并创建一个包含所有该流程的已编程策略。

然后,VFP会在GFT表中填充新条目,并将数据包交付进行处理。在GFT表中填充了流的操作后,所有后续数据包将由GFT硬件处理,从而提供SR-IOV的性能优势,但具有对VFP软件SDN堆栈的完整策略和过滤实施。

(有点类似于flexgate,硬件部分存储流表匹配到的都可以加速,不能处理的先给控制器,处理完添加进硬件里,这样之后都可以处理了。)

AccelNet的控制平面与原始VFP设计没有太大变化,并且几乎完全保留在虚拟机监控程序中。它仍然负责从流表创建和删除流,以及确定每个流的关联策略。

AccelNet的数据平面已卸载到FPGA SmartNIC。NIC的驱动程序增加了称为GFT轻型过滤器(LWF)的过滤器驱动程序,该驱动程序从VFP中提取了分离的NIC / FPGA硬件的详细信息,以使SmartNIC看起来像是具有完整SR-IOV和GFT的单个NIC。

你可能感兴趣的:(论文阅读:Azure Accelerated Networking: SmartNICs in the Public Cloud)