论文阅读-Hydra: 用于持久内存和RDMA网络的分散文件系统

论文名称:Hydra: A Decentralized File System for Persistent Memory and RDMA Networks

摘要

新兴的字址持久内存(PM)有可能颠覆内存和存储之间的边界。结合高速RDMA网络,分布式基于PM的存储系统提供了通过紧密耦合PM和RDMA特性来实现存储性能大幅提升的机会。然而,现有的分布式文件系统采用为传统磁盘设计的传统集中式客户端-服务器架构,导致访问延迟过高、可扩展性有限且恢复开销高。本文提出了一种完全去中心化的基于PM的文件系统——Hydra。通过利用本地PM的性能优势,Hydra利用数据访问局部性实现高性能。为加速Hydra节点间的文件传输,文件元数据和数据通过单边RDMA读取进行分离更新。Hydra还对RDMA请求进行批处理,并将RPC分类为同步和异步类型,以最小化网络开销。去中心化使Hydra能够容忍节点故障并实现负载均衡。实验结果表明,Hydra在多线程和并行工作负载上表现出色,明显优于现有的分布式文件系统。

关键词——持久内存、文件系统、RDMA、分布式系统、去中心化

1 引言

新兴的持久内存(PM),如英特尔Optane DC持久内存模块(Optane DCPMM),正在模糊内存和存储之间的界限。字址可寻址、非易失性的PM使应用程序能够直接访问主内存中的持久数据。与传统存储设备(如硬盘驱动器或固态硬盘)相比,PM提供接近DRAM的访问延迟和带宽。支持PM的存储系统承诺显著提高应用程序性能。

近年来,远程直接内存访问(RDMA)技术的进步使程序员能够构建有效的分布式存储系统,将PM存储和RDMA网络结合起来。RDMA是一种内存访问技术,使网络接口卡(NIC)能够直接访问远程存储器。已经提出了几种基于PM的分布式文件系统,旨在利用PM和RDMA网络的优势。与基于磁盘的分布式文件系统不同,这些文件系统在服务器节点上安装PM以存储元数据和数据,并紧密耦合PM和RDMA特性以实现高性能和可靠性。对于元数据和数据管理,这些文件系统采用传统的集中式客户端-服务器架构,使用主内存作为客户端的易失性缓存。在文件访问时,文件元数据和数据从远程服务器获取到本地客户端的内存缓冲区,以响应I/O请求。

然而,传统的集中式客户端-服务器架构在利用PM和RDMA网络在基于PM的分布式文件系统中的全部潜力方面存在不足。首先,与传统基于磁盘的分布式系统相比,基于PM的分布式存储系统的主要性能瓶颈已从存储转移到网络。与历史趋势相反,预期网络延迟将远高于可见未来的PM延迟,这是由于传播延迟和网络往返引起的。本地PM I/O比通过RDMA网络的远程访问大大减少访问延迟。其次,集中式客户端-服务器架构限制了系统的可扩展性。集中式服务器简化了客户端之间的协调,但以牺牲扩展性为代价。当服务器运行在真实的Optane DCPMM上时,问题变得更加严重,因为其I/O性能无法随线程数良好扩展。第三,客户端端的DRAM缓存增加了服务器的成本,并在客户端节点断电或系统故障时引入了高恢复开销。Optane DCPMM的每GB成本仅约为DRAM的39%。此外,基于DRAM的客户端节点必须在恢复期间从头开始重建来自远程服务器的元数据和数据缓存,这会增加恢复开销以及服务器负载。

PM和RDMA技术的独特特性为将单个存储服务器上的本地PM感知文件系统连接到一个机架规模的文件系统集群提供了机会,其中文件元数据和数据在集群节点之间分解,并通过高速RDMA网络连接。在每个集群节点上,文件数据被本地且持久地存储,允许应用程序在运行时利用本地PM的高性能和大容量,并在系统崩溃后快速恢复。然而,在应用端集群节点上使用PM作为持久性存储提出了一系列挑战。不同集群节点上陈旧和最新文件副本之间的同步应该高效且可扩展。去中心化的文件系统集群应该能够优雅地容忍任意节点故障,并在运行时平衡负载。

我们提出了Hydra,一个旨在通过充分利用直接可访问的持久内存和高速RDMA网络来提高可扩展性和容错性的去中心化文件系统。Hydra是第一个分布式持久内存文件系统,在设计过程中系统地优化可扩展性。与严格将存储服务器与客户端分开的传统范例不同,Hydra将它们组合成一组装备了PM的节点,并通过RDMA网络连接它们以形成去中心化文件系统集群。Hydra通过充分利用本地PM的性能优势来最小化I/O延迟,利用数据访问局部性。为加速节点间的文件传输,Hydra提出了不同的文件更新方案,通过单边RDMA读取从远程节点差异传输文件元数据和数据。为实现负载平衡,文件元数据和数据被动态分解和复制到Hydra节点中。Hydra还引入了RDMA请求批处理和RPC分类机制,以发挥RDMA网络的全部潜力,以最小化文件元数据和数据传输的开销。此外,Hydra支持在线节点添加和删除,提供高弹性和灵活性。

本文的贡献包括:

  • 我们提出了Hydra,一个完全去中心化的分布式文件系统,充分利用本地持久内存上的数据局部性来实现高可扩展性、高可用性和崩溃一致性。
  • 我们设计了差异文件更新方案,通过单边RDMA读取通过差异方式传输文件元数据和数据,加速文件传输和节点恢复。
  • 我们描述了Hydra如何容忍任意节点故障并在集群节点之间平衡负载
  • 我们实现并评估了Hydra。实验结果表明,Hydra在多线程和并行工作负载上表现出良好的可扩展性,并明显优于现有的分布式文件系统。 本文的余下部分组织如下。第2节介绍了PM感知文件系统和RDMA网络的背景。第3节介绍了Hydra的设计概览。我们在第4、5和6节分别描述了文件传输机制、集群管理和RDMA优化技术。实验结果在第7节中呈现。第8节讨论了相关工作,第9节总结了本文。

2 背景和动机

Hydra 是一个专为 PM 和 RDMA 网络设计的分布式文件系统。本节介绍了 PM、Hydra 基于的 NOVA 文件系统以及 RDMA 技术的背景。我们最后阐述了需要一个全面去中心化的新型分布式 PM 文件系统的动机。

2.1 PM 和 PM-Aware 文件系统

持久内存(如 STT-RAM、ReRAM 和 PCM)提供数据持久性、字节可寻址性,以及接近 DRAM 的访问延迟和带宽。持久内存直接连接到主内存总线旁边的 DRAM,并且可以通过加载/存储接口进行访问。英特尔 Optane DCPMM 是第一个商用可用的持久内存 DIMM。

PM 的高性能和非易失性吸引了过去十年对本地 PM-aware 文件系统的广泛研究。其中,NOVA 是一种最大化性能并提供强一致性保证的基于 PM 的先进文件系统。NOVA 使用每个 CPU 的空闲列表、日志和索引节点表来确保良好的多核可伸缩性。对于每个文件,NOVA 在 PM 中维护一个单独的日志,其中包含一个 4KB 的日志页面的单链表。索引节点、其日志和数据页面之间的关系如图 1 所示。索引节点中的尾指针指向日志中最新提交的条目。对于每次文件更新,NOVA 在其日志中创建相应的日志条目,并原子性地更新 PM 中的日志尾指针。为了加速文件访问,NOVA 在 DRAM 中维护一个基数树,将文件偏移映射到 PM 中的数据页面地址。

NOVA和Hydra的文件结构。文件日志包含inode更新条目和文件写入条目。这些文件写入条目包含指向数据页面的指针。

由于 NOVA 充分利用了 PM 的性能优势和 CPU 的多核可伸缩性,其基于日志结构的文件设计自然适合 Hydra 的线性化的差异文件更新方案,我们基于 NOVA 实现了 Hydra。具体来说,Hydra 继承了来自 NOVA 的日志结构文件布局和可扩展内存分配器的设计。在 Hydra 中,头指针和尾指针也用于通过链表维护连接的文件日志。过时的文件可以通过传输和重放差异文件日志与其最新版本同步。然而,我们还对日志条目的内容进行必要的调整,以使 Hydra 能够管理分布式集群节点上的日志和数据页面。Hydra 还在每个 CPU 上维护一个索引节点表、日志和 PM 空闲页面列表,以避免全局锁定。这有助于 Hydra 避免在每个集群节点上出现可伸缩性瓶颈。

2.2 远程直接内存访问

RDMA 通过直接访问远程服务器的内存提供低延迟和高带宽的远程内存访问。在可靠连接(RC)模式中,节点通过一对发送/接收队列(队列对,QP)连接。应用程序通过向发送队列中放置工作队列条目(WQE)来发起 RDMA 请求。完成 RDMA 请求后,网络适配器通过向完成队列(CQ)发布完成队列条目(CQE)来信号完成。应用程序可以通过轮询 CQ 来接收请求已成功完成的通知。

RDMA 支持读/写操作(单边动词)以及两个节点之间的发送/接收操作(双边动词)。单边动词通过直接访问远程主机暴露的预注册内存区域来提供更高的吞吐量,而无需通知主机 CPU。对于双边动词,远程 CPU 参与处理 RDMA 请求。此外,RDMA 还提供原子动词,如比较交换(CAS)和获取增加(FAA),以原子方式更新远程内存中的 64 位数据。现有基于 RDMA 的 RPC 请求通过单边动词或双边动词发送。通过单边动词发送的请求写入服务器上的专用消息缓冲区。服务器线程忙于检查消息缓冲区以查看新请求到达情况。这种设计提供了低延迟的 RPC 处理,但会造成高服务器 CPU 开销,这不适合可扩展的去中心化系统。Hydra 采用双边动词来实现其 RPC,以消除接收方忙碌消息检查的成本,从而在集群节点之间平衡负载

2.3 分布式 PM 文件系统中的挑战

新兴的高性能 PM 和 RDMA 技术都是高性能分布式存储系统的吸引人组件。将这些硬件技术纳入分布式文件系统中在系统可扩展性、访问延迟和容错性方面提出了新挑战。

系统可扩展性。在传统的客户端-服务器架构中,集中式的元数据节点用于处理整个集群中的元数据访问。即使采用了复制和分区等技术,元数据节点仍然容易受到来自大量并发访问的文件访问倾斜的影响。此外,由于 RDMA 网络适配器的内存有限,随着活动 QP 数量的增加,其可扩展性下降,导致文件系统无法在重负载下提供可扩展的元数据服务。

访问延迟。与传统分布式文件系统组件(如硬盘和以太网)相比,PM 和 RDMA 网络提供了更高性能,暴露了存储栈内的延迟瓶颈。在客户端,用户、内核和网络缓冲区中的过多数据复制大幅增加了远程数据访问的延迟。在服务器端,传统的 RPC 处理程序在请求处理过程中引入了大量 CPU 开销。此外,文件数据通常以粗粒度传输,而 PM 和 RDMA 网络支持字节可寻址数据访问,导致严重的写放大和增加的数据访问延迟。

容错性。分布式文件系统应该能够容忍系统故障,同时保持文件数据和元数据的高可用性。分布式文件系统的潜在故障包括集群节点故障和网络分区。然而,采用集中式客户端-服务器架构的分布式文件系统容易受到这两者的影响。尽管一些文件系统通过复制方法提高了可用性,但它们仍然在故障切换期间遭受高文件访问延迟和暂停文件服务的影响。

分布式 PM 文件系统需要新方法来改善系统可扩展性,最小化访问延迟,并优雅地容忍故障。因此,我们提出 Hydra,一个充分利用持久内存和高速 RDMA 网络独特特性的全面去中心化 PM 文件系统。

3 设计概述

Hydra是针对配备PM和RDMA网络的服务器集群构建的。图2总结了其高级设计组件,并概述了Hydra系统的概况。在Hydra中,文件更新的典型I/O工作流程包括四个阶段:(1)权限检查阶段。Hydra通过轻量级分布式锁模块获取写权限。去中心化文件锁通过低开销的RDMA原子操作进行传输(第4.3节)。 (2)文件同步阶段。每个Hydra节点都以日志结构的布局管理其本地文件。为了获取最新的文件元数据和数据,或处理来自远程节点的复制请求,Hydra利用差异文件更新方案(第4.2节)通过单边RDMA读取高效地传输差异文件日志。 (3)本地I/O阶段。Hydra使用本地节点上的最新文件数据为I/O请求提供服务,利用数据局部性实现高性能。文件更新后,新的日志条目被附加到文件日志中。 (4)数据传输阶段Hydra向远程节点发出RPC请求以提交更新。为了减少网络开销并提供可扩展的性能,Hydra采用RDMA请求批处理RPC分类机制(第6.1节)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值