文章:TEA: Enabling State-Intensive Network Functions on Programmable Switches
来源:sigcomm 2020
摘要:
可编程交换机被认为是部署网络功能(NFS)的一种有吸引力的选择, 但是它们的内存容量一直是主要障碍,尤其阻碍了它们支持状态密集型NFs的应用(例如云规模NAT和维护数百万个流表条目的负载平衡器)。本文探索了一种在典型NFV群集服务器上利用DRAM的新方法,称为TEA(表扩展架构)。TEA提供了虚拟表抽象,允许可编程交换机上的NF查找基于外部DRAM构建的大型虚拟表,使交换机可以纯粹在数据平面中访问外部DRAM而无需涉及服务器上的CPU。
背景:
当前存在问题:
传统上,NFs是使用独立的硬件设备或一组商品服务器(也称为网络功能虚拟化(NFV)部署的。 最近,其他方法在社区中得到了越来越多的关注——在可编程交换ASIC上实现的NFs。
然而,我们发现,当有大量并发流(例如O(10M))和非常高的流量(例如>1Tbps)组合时,上述方法并不能够处理NFs。 可编程交换ASIC不能提供大量的并发流,这需要一个大的流表,因为它的片上SRAM空间很小,尽管它有足够的能力来处理非常高的流速率,如果它需要几十个硬件设备或数百个服务器来处理高速流量,将大大增加了运营成本。
RDMA技术:
RDMA技术全称远程直接数据存取,就是为了解决网络传输中服务器端数据处理的延迟而产生的。RDMA通过网络把资料直接传入计算机的存储区,将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响,这样就不需要用到多少计算机的处理功能。它消除了外部存储器复制和上下文切换的开销,因而能解放内存带宽和CPU周期用于改进应用系统性能。
TEA:
通过观察,有限的片上SRAM空间是可编程交换ASIC的关键瓶颈。 如果能够使交换ASIC以一种可伸缩的方式在更便宜的DRAM上存储查找表,它会成为一个新的推进力,为广泛的服务使用。本文设想了一种新的系统体系结构,称为TEA(表扩展体系结构),它使NFV集群中机架顶部的交换ASIC能够利用在商品服务器上的DRAM 。
TEA需要解决的挑战:
1.数据平面外部DRAM访问:通过RDMA
交换ASIC通常没有直接的外部DRAM访问能力,是否可以在没有硬件修改的情况下启用它? 即使ASIC可以以某种方式直接访问外部DRAM,它也可能产生几微秒的延迟,这比其分组处理速度慢了一个数量级。
要访问外部DRAM,本文选择RDMA,这在服务提供商部署中是相当常见的。
但要使用RDMA需要解决两个问题:
(1) 当需要DRAM访问时,纯在交换机数据平面上生成RDMA数据包是否可行?
(2)是否可以在交换机数据平面内支持稳定的RDMA传输?
虽然在可编程开关上通常很难实现可靠的RDMA,但观察到,真实的用例不需要完全功能的RDMA:
(1)生成RDMA数据包:关于第一个挑战,我们注意到今天最流行的RDMA技术是RoCE(RDMA上汇聚以太网)协议,其中RDMA请求响应是具有RoCE头的常规以太网包。这意味着ASIC可以通过处理RoCE数据包来生成有效的RDMA请求,而不需要任何特定于RDMA的硬件组件
上图展示了这个高层次的想法。当数据平面需要访问DRAM时,它通过向传入的数据包中添加一系列特定的RoCE头来制作适当的RDMA数据包。
(2) 可靠的RDMA问题:利用了这样的假设,在TEA中,DRAM服务器直接连接到ToR交换机。这意味着如果可以使RDMA请求和响应包不被丢弃在交换机或NIC,RDMA信道就变得可靠。
因此,可以通过优先流控制确保底层以太网网络无损,当RDMA请求缓冲超过其阈值时,NIC向交换机发送PAUSE请求,以防止由于缓冲区溢出而导致数据包下降,或者也可以为RDMA流量配置一个更高的QoS级。
2.TEA的表数据结构:
TEA-Table的设计解决了两个关键问题:
(1)如何在一次到外部DRAM的往返中完成查找。
(2) 如何将当前数据包的处理推迟到查找完成并继续处理其他数据包而不阻塞。
TEA-Table重新使用了一种数据结构,该结构最初是为了提高软件交换机中的缓存命中率而设计的以实现单一的RTT查找,并在其中包含远程数据包缓冲区 用于适应延迟分组处理的数据结构。
单次往返查找:事实上,许多现代的交换ASIC在SRAM中采用布谷鸟散列来进行精确匹配查找,因为它保证了恒定,但是它需要两块独立的DRAM查询,延迟累加就高。我们需要一个能一次查找的方法。
我们发现BLP的设计有助于在单个RDMA读取中获取两个哈希桶。
延迟分组处理: 另一个关键的挑战是在访问DRAM时存储数据包,这是特别关键的,因为≈2µs DRAM访问时间非常长,不可能用SRAM做一个缓冲区。
本文通过将数据包存储到DRAM和读取数据包以及检索表条目来解决这个问题。
由于NIC允许RDMA读取操作只读取一个连续的内存区域,使用TEA-Table的设计在查找响应中将原始数据包放置在两个桶之间,在图5a中。当我们需要解析这两个桶时,使用这种查找响应的格式,当原始数据包(橙色)很大时,ASIC通常无法解析第二个桶(蓝色)。 这是因为高速交换ASIC通常只能解析每个数据包中的前几百个字节。
因此做了一个调整。
结论:
虽然新出现的可编程交换ASIC设计使得将NFs从商品服务器移动到交换机成为可能,但这些ASIC上的有限内存一直是它们使用很多NFs的重大障碍。
为了解决这个问题,本文设想了一种新的系统体系结构,称为TEA(表扩展体系结构),用于NFV集群中的机架顶部开关ASIC。
TEA为可编程交换机上的NFS提供了一个性能良好的虚拟表抽象,以便它们能够以成本效益高和可伸缩的方式在连接到交换机的服务器上使用DRAM。
对微基准和NF实现的评估表明,TEA可以为没有服务器CPU参与的表查寻提供低和可预测的延迟和可扩展的吞吐量。