FairNIC
原版见SIGCOMM 2020。
这个专题主要对基于FPGA的智能网卡技术进行介绍,上篇介绍了NanoPU、PANIC、Tonic、Corundum、NICA、AccelNet等,这次介绍“SmartNIC Performance Isolation with FairNIC: Programmable Networking for the Cloud”,主要针对共享SmartNIC的多租户资源竞争问题,提出基于令牌桶的遂率限制,实现公平共享。高山留存阅读点滴。
云提供商认为在主机CPU核上执行网络处理任务效率低下,并且正在大规模部署定制设计的SmartNIC,以支持流量调度、安全和网络虚拟化等。企业和服务提供商也得出了类似的共识,许多制造商推出了商用、可编程的SmartNIC来加速各种任务。尽管智能网卡的效率优势有助于云提供商的盈利,但租户却被禁止使用这些功能,因为提供商不允许租户将自己的应用程序下载到虚拟化环境中的网卡硬件上。
为挖掘面向云环境中的多租户开放的商用的SmartNIC的网络加速优势的潜力,特别是,寻求使各个租户能够运行自己的、自定义的NIC程序,这些程序利用共享硬件资源来提高性能,降低主机CPU利用率,或两者兼具。在共享SmartNIC硬件上运行来自不同租户的应用程序的关键是确保隔离。特别是,设计的隔离技术在现有制造商的SDK范围内工作,不需要SmartNIC程序员学习新的语言或应用程序框架。
生产级隔离是一个非常高的标准,特别是,云平台已经显示出许多通道安全漏洞。考虑到实施真正安全的隔离所固有的复杂性和性能开销,首先考虑这项研发成本是否有潜在的价值。作为租户之间共享SmartNIC的第一步,将潜在的通道或其他隐私攻击的考虑推迟到以后的工作中,并将重点放在实现性能隔离上。
在FairNIC中,主要考虑SoC SmartNIC,因为它们相对容易编程。虽然之前的几项研究考虑了基于FPGA的SmartNIC,但FPGA设计生态系统的各个方面(如需要全局综合、放置和路由功能)使多租户环境中的资源使用复杂化。然而,目前SoC SmartNIC的设计也让任务复杂化,因为它们缺乏主机CPU对虚拟化和多租户的硬件支持。
通过研究Cavium LiquidIO 2360 SmartNIC在同时运行多个应用程序时的行为来说明跨租户性能隔离的挑战。证明了NIC处理核心、共享缓存、包处理单元和专用协处理器都是租户之间的潜在竞争和性能干扰。实验表明,在某些情况下,共享资源可降低租户性能一到两个数量级。为此,设计了隔离机制,能够公平地共享每个竞争资源。解决方案平衡了保持25Gbps线速率处理的需要,同时为租户保留尽可能多的硬件资源。
在FairNIC中设计了隔离机制的原型,FairNIC是Cavium Simple Executive在SmartNIC应用程序中的扩展。FairNIC提供了严格的核心分区、缓存和内存条带化、DWRR数据包调度以及对固定功能硬件加速器单元的基于令牌的分布式速率限制。在微观基准和现实的多租户环境中评估FairNIC,证明了每一个隔离机制不仅可以实现公平性,甚至可以防止租户耗尽共享NIC资源。实现了两个典型的SmartNIC加速应用程序Open-vSwitch(OVS)和一个键/值存储,并表明这两个应用程序可以在同一SmartNIC上共存,同时保持性能隔离。因此,从性能的角度来看,在多租户环境中支持SmartNIC确实是值得的,并讨论在商业云中虚拟化商用SmartNIC的可能部署。
FPGA智能网卡专题回顾:
FPGA智能网卡介绍(5):NICA
FPGA智能网卡介绍(4):Corundum
FPGA智能网卡介绍(3):Tonic
FPGA智能网卡介绍(2):Panic
FPGA智能网卡介绍(1):NanoPU
作者:珠穆朗玛2048
来源:https://zhuanlan.zhihu.com/p/361925188更多FPGA智能网卡相关技术干货请关注FPGA加速器技术专栏。