基于本地持久内存的并行一致性哈希文件系统CHFS

摘要

        CHFS是一个利用计算节点的持久内存的自适应并行文件系统。该设计完全基于高度可扩展的分布式键值存储,采用一致性哈希算法。CHFS通过消除专用元数据服务器、顺序执行和集中式数据管理,提高了并行数据访问性能和元数据性能的可扩展性。该实施利用了多核和多核CPU、高性能网络和Mochi-Margo库的远程直接内存访问。在一个由4个持久内存集群节点组成的环境下,CHFS在IOR硬写基准测试中的性能比最先进的DAOS分布式对象存储快了9.9倍,比GekkoFS快了6.0倍。在可扩展性方面,与BeeOND和GekkoFS相比,CHFS在带宽和元数据方面都展现出更好的可扩展性和性能。CHFS是HPC存储层的一个有前景的构建模块。

简介

        领导型超级计算机不仅用于计算密集型科学计算应用,还用于数据密集型的大规模数据分析和机器学习应用。存储性能一直是一个问题,因为CPU/GPU性能的提升速度比存储性能快。为了缩小这种性能差距,领导型超级计算机(如奥克岭国家实验室的Summit [19]、AIST的ABCI、东京工业大学的Tsubame和筑波大学的Cygnus)在计算节点中引入了本地存储,如NVMe SSD和持久内存。然而,有效利用节点本地存储是一个具有挑战性的问题,已经有几个团队解决了这个问题。临时的分布式文件系统是一种在作业分配过程中使用计算节点的本地存储的文件系统。现有的临时分布式文件系统设计要么依赖于使用基于块的本地文件系统存储,要么依赖于具有日志结构合并树(LSM树)数据结构的数据库。将这些方法应用于字节寻址的持久内存并不是有效利用持久内存性能优势的最佳选择[9]。

        本文提出了一个名为CHFS的临时并行文件系统的设计,该文件系统使用节点本地的持久内存。设计的主要特点包括利用字节寻址的持久内存的低延迟和高带宽特性,以及在计算节点数量方面具有高可伸缩性的并行文件访问和元数据性能。该设计利用持久内存中的持久性内存键值存储来利用低延迟和高带宽。由于持久内存是字节寻址的,不需要使用针对块设备进行优化的数据结构。此外,为了减少元数据访问开销,不使用专用的元数据服务器。从历史上看,通过将元数据管理与文件数据管理分离来改善存储性能[3, 8, 32]。在这种情况下,客户端进程可以在访问元数据后并行访问文件数据。相反,单个元数据服务器方法在客户端进程数量方面有可伸缩性限制。为了克服这个限制,研究人员已经研究了分布式元数据服务器[10, 20, 24]。为了进一步减少元数据访问开销,本研究提出了直接访问文件数据而无需访问元数据的方法。此外,为了避免限制可伸缩性,本研究排除了顺序执行和集中式数据管理。所提出的文件系统基于具有一致哈希的高可伸缩分布式键值存储。本研究的贡献包括:

  • 设计了一个具有可扩展元数据性能和可扩展文件访问性能的领导型超级计算机中计算节点的持久内存的临时并行文件系统。

  • 基于分布式键值存储的简单文件系统设计,可以灵活应用于其他分布式键值存储系统。

  • 开源实现,可以高效利用多核和众核CPU、高性能网络和远程直接内存访问(RDMA),可用于研究、实验和生产。

  • 一种灵活的后端设计,既使用持久性内存键值存储,也使用用于闪存和其他块设备的POSIX文件系统。

2 相关工作

        关于持久性内存的性能和特性已经由Yang [39]进行了报道。为了提供一个可移植的编程接口,开发了一款持久内存编程开发包(PMDK) [21, 27]。Pmemkv [22]是一个在PMDK中实现持久性内存的内存中键值存储的库。

        DAOS是一个专为持久内存和闪存设备设计的先进分布式对象存储系统[4, 15]。英特尔Wolf系统的DAOS在2020年6月的IO500列表中取得了最佳的IO性能[11]。它不被认为是一个利用节点本地持久性内存的临时分布式文件系统,而是假设有专用的存储节点,配备持久性内存和闪存设备。

        Orion [38]是一个用于持久内存的分布式文件系统。它利用RDMA提高性能,并且只有一个元数据服务器,这限制了元数据性能的可扩展性,当客户进程数量增加时。

        Octopus [16]是一个具有分布式元数据管理的持久性内存分布式文件系统。它提出了一种集合调度事务,以支持分布式事务中的文件系统操作,如mkdir、mknod和rmdir。与Octopus相比,CHFS不需要分布式事务,因为每个文件系统操作仅访问一个键值对,这在性能上比Octopus更高效。

        还有一些特定的分布式文件系统[5],如Gfarm/BB [33]、BurstFS [37]、UnifyFS [18]、BeeOND [34]和GekkoFS [36]。Gfarm/BB利用存储定位性,在节点本地存储中创建文件。为了管理文件位置,它有一个带有热备份的单个元数据服务器。BurstFS和UnifyFS也利用存储的位置性,在节点本地存储中以日志结构化格式写入数据。元数据由分布式键值存储管理。这些系统主要关注检查点式写入密集型工作负载,而CHFS则针对读和写操作进行了优化。BeeOND使用分布式元数据服务器来提高元数据性能,而CHFS则不使用专用的元数据服务器来进一步提高元数据性能。GekkoFS没有专用的元数据服务器。它只有存储服务器,其中元数据使用RocksDB [6]存储,文件数据存储在本地文件系统中。RocksDB并未针对持久性内存进行优化[17]。在GekkoFS中,元数据和文件数据通过哈希值取模进行分布。GekkoFS类似于CHFS,但CHFS完全设计在分布式键值存储之上,其中存储所有数据。CHFS具有较为简单的设计,可以灵活应用于其他分布式键值存储。通过一致性哈希,在分布式键值存储的服务器加入或离开时,CHFS仍然可以提供大多数数据。

        并行文件系统中引入了爆发式缓冲区以吸收在高性能计算应用中的并行写访问。爆发式缓冲区主要用作写回缓存。在生产系统中,爆发式缓冲区通过专用存储节点部署。Infinite Memory Engine(IME) [7]可以在多个用户和进程之间共享,并用作在传输过程中进行数据分析的临时存储区域。IME依赖于后端并行文件系统进行元数据管理,这限制了元数据性能。

        SymphonyFS [19]被提议作为并行文件系统的写回缓存。它利用节点本地的NVMe SSD作为临时缓存存储,并使用基于块的日志结构化缓存管理来支持单一共享文件访问模式。它也依赖于后端并行文件系统进行元数据管理,这限制了元数据性能。基于BeeGFS的缓存文件系统[1]的元数据性能也受到类似的限制。

        在Lustre中,持久性客户端缓存是利用节点本地存储的另一种方式。它应用了层次化存储管理机制,将文件缓存到节点本地存储中。因为它缓存的是完整的文件,所以单一共享文件访问性能没有提高。

        关于使用点对点技术的分布式哈希表有几种提案。Chord [31]是一种可扩展的一致性哈希查找协议,当它在N个节点之间分布时,原始的一致性哈希[12]需要在所有节点中知道所有N个节点的列表。Chord在每个节点中需要log(N)个条目用于路由表,并且需要log(N)步来查找目标节点。Chord和其他点对点系统的优化目标是提高对等节点数量的可扩展性,而CHFS的优化目标是提高元数据和并行数据访问性能。

3 CHFS 设计

        参考otatebe/chfs: CHFS parallel and distributed file system for node-local persistent memory (github.com)

4 CHFS实现

        参考otatebe/chfs: CHFS parallel and distributed file system for node-local persistent memory (github.com)

5 性能评估

本节将对持久性内存和CHFS的性能进行如下评估:

(1) 持久性内存的性能评估,

(2) 与DAOS和GekkoFS的性能比较,

(3) 与Gfarm/BB和BeeOND的性能比较,

(4) CHFS的可扩展性评估。

图片

图片

图片

图片

图片

图片

图片

图片

6 结论

        这篇论文提出了CHFS的设计,它是一种面向计算节点持久性内存的自适应临时并行文件系统。它完全基于高可扩展的分布式键值存储和一致性哈希。它通过不使用专用的元数据服务器、顺序执行和集中式数据管理,在计算节点数量方面改进了并行数据访问性能和元数据性能的可扩展性。它利用Mochi-Margo库有效地利用了多核和众核CPU、高性能网络和远程直接内存访问。

        对持久性内存性能的评估显示了pmemkv在devdax模式下的优势。它在devdax模式下显示出8.5 GiB/s的put带宽,而POSIX写入和fsdax模式下的pmemkv分别显示出5.8 GiB/s和4.2 GiB/s。

        对4节点持久性内存集群的性能评估显示,CHFS在IOR硬写入基准测试上的性能比DAOS和GekkoFS分别提高了9.9倍和6.0倍。在MDtest硬写基准测试上的性能比DAOS和GekkoFS分别提高了6.0倍和4.4倍。CHFS在计算节点数量方面显示出良好的可扩展性。

        在与Gfarm/BB和BeeOND的性能比较中,使用10个Cygnus超级计算机节点时,所有文件系统在IOR易基准测试上表现出良好的性能,而只有CHFS在IOR难基准测试上表现出一致的良好性能。在元数据基准测试中,CHFS在除了find基准测试外,表现出比Gfarm/BB和BeeOND高出8.6到23.5倍的性能;对于find基准测试,它比Gfarm/BB和BeeOND的性能高出3.1到3.2倍。这些结果表明,与Gfarm/BB和BeeOND相比,CHFS的元数据访问具有低延迟和高吞吐量。

        关于可扩展性,CHFS在带宽和元数据上显示出比BeeOND和GekkoFS更好的可扩展性和性能。当使用64个计算节点时,CHFS的IO500带宽评分比一个计算节点时高出17.3倍,IO500元数据评分比一个计算节点时高出15.8倍。因此,CHFS是HPC存储层的良好基石。

        CHFS没有充分利用一致性哈希的优势,不过,它对于容错和检查点支持来说仍然很有用。未来的工作将集中在CHFS容错支持的改进。

补充观点

        目前该项目主要由1人贡献,尚处在实验和测试阶段,但可以尝试作出一些修改用作计算侧本地缓存加速文件系统,当前适用于加速应用程序中间生成的临时文件的存储场景。

 edwu ed沉思录 2023-09-13 00:00 发表于北京

猜你喜欢

转载自blog.csdn.net/iamonlyme/article/details/132962554