Assise: Performance and Availability via Client-local NVM in a Distributed File System

摘要

低延迟持久性内存模块(PMMs)的应用颠覆了分布式文件系统长期以来的远程存储模式。相反,将 PMM 存储与计算放在一起,可为应用提供更高的 IO 性能、亚秒级的应用故障转移和强大的一致性。为此我们建立了 Assise 分布式文件系统,它基于一个持久的、复制一致性的协议,将客户端本地的 PMM 作为应用程序和较慢(或许是远程)存储之间的可线性化和可崩溃恢复的缓存来管理。Assise 通过尽可能在进程本地、套接字本地和客户端本地的 PMM 上进行 IO,使所有文件 IO 的局部性最大化。Assise 通过维护 IO 操作粒度的一致性,而非固定块大小的一致性,将一致性开销降到最低。
我们在带有Intel Optane DC PMM 和 SSD 的集群上将 Assise 与 Ceph/BlueStore、NFS 和 Octopus 进行比较,采用常见的云应用和基准测试,如LevelDB、Postfix 和 FileBench。我们发现相比同类产品,Assise 将写延迟提高了 22 倍,吞吐量提高了 56 倍,故障转移时间缩短了 103 倍,扩展性好 6 倍,同时提供了更强一致性的语义。
The adoption of low latency persistent memory modules (PMMs) upends the long-established model of remote storage for distributed file systems. Instead, by colocating computation with PMM storage, we can provide applications with much higher IO performance, sub-second application failover, and strong consistency. To demonstrate this, we built the Assise distributed file system, based on a persistent, replicated coherence protocol that manages client-local PMM as a linearizable and crash-recoverable cache between applications and slower (and possibly remote) storage. Assise maximizes locality for all file IO by carrying out IO on process-local, socket-local, and client-local PMM whenever possible. Assise minimizes coherence overhead by maintaining consistency at IO operation granularity, rather than at fixed block sizes.
We compare Assise to Ceph/BlueStore, NFS, and Octopus on a cluster with Intel Optane DC PMMs and SSDs for common cloud applications and benchmarks, such as LevelDB, Postfix, and FileBench. We find that Assise improves write latency up to 22x, throughput up to 56x, fail-over time up to 103x, and scales up to 6x better than its counterparts, while providing stronger consistency semantics.

Assise: 分布式文件系统中通过客户端本地的 NVM 实现性能和可用性usenix.org
2020, 14th USENIX Symposium on Operating Systems Design and Implementation (OSDI'20)
作者:Thomas E. Anderson1, Marco Canini2, Jongyul Kim3, Dejan Kostić4, Youngjin Kwon3, Simon Peter5, Waleed Reda46, Henry N. Schuh1, Emmett Witchel5 (1 UW, 2 KAUST, 3 KAIST, 4 KTH, 5 UT-Austin, 6 UCLouvain)
本文为英文文献翻译,欢迎交流。最新更新时间:2021年12月4日。

1 简介

...

2 背景

分布式应用具有多样化的工作负载,有大有小的 IO 粒度 [56],有不同的分片模式,还有一致性要求。这些需求都需要高可用性和可扩展性。同时支持这些特性是长时间以来分布式存储研究的重点 [23,39,41,58,81,82,85]。在 NVM 之前,这些特性间必须做出权衡。例如,相对于小 IO 更偏向于大的传输,或者相对于崩溃一致性和快速恢复更偏向于稳态的性能,这也是远程存储文件系统设计的常见习惯。我们认为随着高速 NVM 的到来,这些权衡需要被重新评估。
NVM 带来了双重机会:
性价比:表1显示了现代服务器内存和存储技术的测量访问延迟、带宽和成本,包括 Optane DC PMM(测量详见 §5)。可以看到本地 NVM 访问延迟和带宽接近 DRAM,比 SSD 好两个数量级。同时,NVM 的每 GB 成本只有 DRAM 的 39%。NVM 的独特特性使得它既可以作存储层次结构的顶层,也可以作内存层次结构的底层。

Memory R/W Latency Seq. R/W GB/s $/GB
DDR4 DRAM 82 ns 107 / 80 9.77 [19]
NVM (local) 175 / 94 ns 32 / 11.2 3.83 [20]
NVM-NUMA 230 ns 4.8 / 7.4 -
NVM-kernel 0.6 / 1 μs - -
NVM-RDMA 3 / 8 μs 3.8 -
SSD (local) 10 μs 2.4 / 2.0 0.32 [15]
Table 1: Memory & storage price/performance (October 2020).

快速恢复:接近 DRAM 性能的持久本地存储可为文件系统的热数据提供可恢复的缓存,保证重启前后的数据一致。绝大多数系统故障都由软件崩溃导致,只需要重启可解决 [25,36,40]。在 NVM 中缓存文件系统热数据能够从这些常见故障中快速恢复。
因此,数据中心运营商正在大范围部署 NVM [43,86,87]。然而,为了充分实现其潜力,必须有效地利用本地 NVM。通过 RDMA 访问的 NVM(NVM-RDMA),通过另一个 CPU 插槽的载入和存储(NVM-NUMA),和通过同一插槽上的内核(NVM-kernel)在时延和带宽方面依次逐渐变慢。

2.1 相关工作

...

2.2 远程存储与本地 NVM 对比

图1对比了传统的客户端-服务器文件系统的 IO 架构和 Assise。两个子图都展示了共享同一个分布式文件系统的执行多个应用进程的两个双插槽节点。两个设计都使用多副本集群管理器(replicated cluster manager)进行成员管理和故障检测,但在其他方面都不同。

传统的分布式文件系统首先将可用群集节点分为客户端和服务器。客户端在易失性内核缓冲区中缓存文件系统状态,该缓冲区由跨插槽的处理器共享(NVM-NUMA),并通过高代价的系统调用访问(NVM-kernel)。持久的文件系统状态存储在远程服务器的 NVM 中。因此,为了持久性和一致性,客户端必须通过延迟远高于本地 NVM 的网络(NVM-RDMA),与副本存储和元数据服务器协调更新。群集管理器则不涉及 IO。为了简洁性和负载均衡,数据在副本存储服务器上通常随机分布 [82]。 原子性更新大量存储节点的开销意味着(崩溃)一致性通常仅为集中化的元数据提供。

3 Assise 的设计

版权声明:
作者:dorence
链接:https://wp.dorence.top/archives/135
来源:极客模拟
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录