FAST 2023 Paper 元数据论文阅读笔记汇总
问题和局限性
尽管云原生技术取得了进展,但现有的分布式文件系统不适合多租户云原生应用,原因有两点。
-
它们的客户端通常较重,导致容器之间的资源复用水平较低。每个客户端都需要保留许多独占资源,而服务器只能同时承载少量容器,导致资源使用效率低下。
-
用于云中文件系统服务的集中式网络网关无法满足云原生应用程序对性能、可用性和负载平衡的要求。基于网络网关的体系结构有一系列限制,包括(1)通过网关的次优、ms级延迟;(2)由于不知道文件语义和存储协议,无法进行数据局部优化和快速故障处理;(3)与RDMA等高性能网络堆栈不兼容,而不会对客户端进行侵入性更改;(4)网络连接和文件之间的负载不平衡;(5)硬件成本高,需要单独的网关服务器,对于 500 Tbps 带宽的存储集群,需要 5000 台 100 Gbps 网关服务器。
本文方法
我们提出了Fisc,一个面向大规模、云原生的分布式文件系统。Fisc引入了三个关键设计:
-
轻量级文件系统客户端,通过两层资源聚合提高资源复用率。将不涉及用户的功能(例如网络堆栈和存储协议)从容器中的客户端移出,并将它们外部化到计算服务器的数据处理单元(DPU)和云服务提供商(CSP)的后端存储节点中以聚合它们的资源。因此,用于这些功能的资源可以完全复用,降低了摊销成本。同时,由于每个客户端消耗的资源大大减少,计算服务器可以为云原生应用托管大量容器。
-
存储感知型分布式网关(SaDGW),改善I/O服务的性能、可用性和可扩展性。提供了一条具有高性能网络堆栈的直接通道,连接计算服务器和存储服务器。利用高速通道上的文件系统语义构建了一种存储感知型路由机制,以文件为粒度将客户端的文件请求从租户的前端虚拟域路由到CSP的后端物理域,而不是基于网络流。我们设计了一系列机制,如存储感知型故障处理和局部性感知的读优化,以提高Fisc的可用性。还采用了基于文件的细粒度调度机制来平衡存储节点上代理的负载。
-
软硬件协同设计,利用基于DPU的virtio-Fisc设备,将关键功能外部化到硬件中。利用DPU实现客户端的部分功能和SaDGW的核心功能。在DPU中采用virtio-Fisc设备来卸载网络堆栈和存储协议,并提供从用户的虚拟域容器到CSP物理域的文件系统的安全高效的通道。还利用DPU中的快速路径来加速I/O处理,进一步提高Fisc的性能。
Fisc已经在DCN的生产中部署了三年,为阿里巴巴超过300万内核的应用程序提供服务。对于大规模开发,提出了一种基于SaDGW和virtio Fisc设备的抽象虚拟RPC(vRPC);易于使用,可以被其他云原生服务(如功能即服务(FaaS))所采用。与内部部署的盘古客户端相比,Fisc客户端的CPU和内存消耗分别减少了69%和20%。可用性提高了一个数量级,故障恢复从秒级到100ms级。对于在线搜索查询服务,Fisc的平均延迟和P999延迟分别为<500μs和<60ms。其平均延迟抖动小于5%。
实验
实验环境:1台计算服务器,43台盘古存储服务器
数据集:FIO
实验对比:CPU利用率、内存利用率、带宽利用率、平均延迟、尾延迟、吞吐量、IOPS
总结
针对云原生环境下的文件系统,现有方法客户端较重、资源利用率低,现有集中式网关无法满足性能、可用性、负载均衡的需求。本文提出Fisc,面向大规模、云原生的分布式文件系统。包括三个关键设计:轻量级文件系统客户端,将不涉及用户的功能从客户端移出,外部化到计算服务器的数据处理单元(DPU)和云服务提供商(CSP)的后端存储节点中以聚合它们的资源;存储感知型分布式网关(SaDGW),提供了具有高性能网络堆栈的直接通道,连接计算服务器和存储服务器。利用高速通道上的文件系统语义构建了一种存储感知型路由机制,以文件为粒度将客户端的文件请求从租户的前端虚拟域路由到CSP的后端物理域。设计存储感知型故障处理和局部性感知的读优化,采用了基于文件的细粒度调度机制来平衡存储节点上代理的负载;软硬件协同设计,利用DPU实现客户端的部分功能和SaDGW的核心功能,在DPU中采用virtio-Fisc设备来卸载网络堆栈和存储协议,并提供从用户的虚拟域容器到CSP物理域的文件系统的安全高效的通道,利用DPU中的快速路径来加速I/O处理。