查看原文
其他

【论文】DAOS在HPC中的应用:存储性能分析与优化

常华Andy Andy730
2025-01-01

I. 引言

长期以来,对数据存储进行读写一直是高性能计算(HPC)领域的瓶颈。用于数据存储的硬件性能通常至少比易失性内存或处理硬件低一个数量级。为了降低这种成本,应用程序通常在HPC系统上限制I/O操作的数量。然而,最近在一些应用类别中,导入或生成大量数据变得十分普遍,其中机器学习尤为突出。随着HPC系统规模扩大,达到Exascale水平及以上,以及一些应用程序需要更高I/O带宽或元数据性能,改进数据存储技术的性能面临重大挑战。

对象存储技术在Web服务和云市场取得了显著进展,用于存储不适应标准文件系统结构或需要比传统数据库提供的更多存储空间的数据。然而,即使是用于科学计算的对象存储,如Ceph [18],也尚未扩展到满足大型HPC部署所需的I/O性能。对Exascale级别系统所需的性能水平的需求由最近的Frontier系统部署 [19]所证明,其中一个700PB、5TB/s的Lustre文件系统提供长期存储。

然而,对象存储具备解决大规模并行I/O应用程序相关的POSIX文件系统长期性能和可扩展性问题的潜力。例如,对于使用大量小文件(KiB至几MiB)的应用程序,这些文件可能严重影响实现(如Lustre和Spectrum Scale)的元数据功能。这些问题可能源于POSIX文件系统语义强加的限制,即元数据规范性(每个文件的创建日期、最后访问日期、权限等)和过度的一致性保证。对象存储技术可以提供对POSIX文件系统更宽松的语义,并且不受现有文件系统实现或标准的影响。

分布式异步对象存储(DAOS)[2]是一种高性能对象存储,具有完全用户空间操作,采用基于RAFT的共识算法进行分布式、事务性索引和对非易失性内存设备的字节寻址访问。随着其成熟,它已经展示了强大的I/O性能,在I/O 500基准测试 [3] 中获得了高排名,这表明它能够扩展到高的元数据操作和I/O带宽速率。先前的研究表明,DAOS可以为HPC应用程序提供高性能和弹性 [12] [15] [20]。

然而,将对象存储(如DAOS)用于HPC I/O利用时,存在一系列尚未完全探讨的可用性和功能问题。DAOS具有多种访问方式和一系列配置,为用户和系统运营商提供了多种选择。在此背景下,我们讨论了我们对不同访问方法和DAOS提供的一些配置的性能特性的调查,并评估了应用程序利用的最佳选项。

我们展示了在非易失性存储硬件上部署的DAOS上捕捉大规模I/O访问模式的标准I/O基准测试性能。用于基准测试的研究HPC系统包含带有3 TiB英特尔Optane数据中心持久性内存模块(DCPMM)的节点。

II. DAOS

分布式异步对象存储(DAOS)是一个专为大规模分布式非易失性数据存储设计的开源对象存储系统。它最初是基于对Intel Optane内存的利用,支持NVMe存储设备,并已扩展到支持没有Optane的系统。其主要特点是将其持有的元数据存储在由NVMe设备支持的易失性内存中,而不是直接存储在Optane非易失性内存中。

在底层,DAOS提供键值存储接口,更高级别的API构建在其之上,包括基于FUSE的文件系统接口以及HDF5、MPI-I/O等常见数据存储格式/方法的自定义接口。DAOS包括事务性和非阻塞I/O、细粒度I/O操作、端到端数据完整性和高级数据保护等功能。在一系列高性能网络后端上,使用OpenFabrics Interfaces(OFI)库进行低延迟通信。此外,它还支持从S1到SX的对象类别,使对象能够以类似Lustre文件分片的方式分布在DAOS引擎之间。

DAOS为应用程序提供了多种I/O方法。在底层,应用程序需要适应最多的是直接使用键值和数组API(由libdaos提供)。其他选择包括使用DAOS文件系统(DFS),可以通过libdfs进行文件访问和在DAOS上进行I/O,也可以通过DFUSE(DAOS FUSE)进行,后者为DAOS对象存储提供用户空间文件系统挂载点。libdfs和DFUSE都允许应用程序继续使用文件I/O,同时充分利用DAOS存储,而DAOS API则要求将对象存储功能集成到应用程序中。

III. 方法论

为了评估DAOS的性能,我们在一个研究HPC系统中生成了多样化的I/O工作负载,并使用IOR基准测试来运行这些负载。在此次测试中,IOR基准测试以简单模式和困难模式运行。简单模式下,每个进程创建一个文件,而困难模式则使用共享文件。在调用IOR时,我们采用一组参数值,这些值指定每个客户端进程执行一系列I/O操作(传输),以写和读其完整的数据大小。这种设计旨在评估假设优化的并行应用程序的性能,该应用程序旨在最小化与存储交互的I/O操作数量,并执行连续的读或写。

IOR最初设计用于测试文件系统的性能,因此可以直接使用其默认的POSIX后端来测试DAOS FUSE挂载。然而,IOR还提供多个额外的后端,可以启用与上述API一起操作,包括libdaos的字节数组API、DFS、MPI-I/O和HDF5。在这次分析中,我们选择了DFS、MPI-I/O和HDF5后端。

IV. 结果

我们展示的基准测试在NEXTGenIO系统 [16] 上进行,该系统是一个研究HPC系统,由Intel Xeon Cascade Lake处理器组成。每个插槽配备6个256 GiB的第一代Intel Optane DCPMM,配置为AppDirect交错模式。我们使用了8个服务器节点,每个节点配置有2个DAOS引擎,用于进行基准测试。

图1:IOR测试结果(每进程一个文件)

图1和图2展示了文件每进程和共享文件的IOR测试案例中的读和写带宽。从图中我们可以观察到,对象类别(即S1、S2或SX)和访问机制(即DAOS、HDF5或MPI-I/O)都对性能产生了影响。

图2:IOR测试结果(共享文件)

显然,在文件每进程的场景中,具有少量对象分片(S2)在读数据时提供了最佳性能,并在扩展到最大数量的客户端节点之前提供了良好的写性能。在高度争用的情境下(即使用最多客户端节点),完全分片为高写性能提供了最佳性能,但对于较少的写者而言性能较低。我们还可以看到,使用DFS API(即DAOS线)与使用DFUSE挂载的MPI-I/O性能非常相似,而使用DFUSE挂载的HDF5性能较低,无论是读还是写。

在使用单个共享文件进行的基准测试中,显示出不同的性能特性,各接口之间实现了类似的性能。DFS API提供最高的写带宽和良好的读带宽,但使用DFUSE挂载的MPI-I/O和HDF5也提供良好的读性能。值得注意的是,文件每进程和共享文件呈现相似的总体性能,这与标准的并行文件系统提供的性能形成鲜明对比。

V. 结论

我们展示了一些当前研究的初步结果,旨在通过基准测试不同的访问机制和配置,评估应用程序对DAOS的利用。我们发现,对象选择和使用的接口/API都会对性能产生影响。然而,通过可用的文件API来利用DAOS仍然能够提供良好的性能,至少对于DAOS对象存储的大规模I/O而言。

未来的工作将包括将基准测试扩展到使用DAOS API(而非DFS或DFUSE POSIX后端),并研究一些特定应用的I/O基准测试,以评估更多样化的使用模式对性能的影响。

-----
Source:Adrian Jackson, Nicolau Manubens; DAOS as HPC Storage: Exploring Interfaces; 30 Nov 2023


---【本文完】---

近期受欢迎的文章:

  1. 深度评估:DAOS在仿真和深度学习HPC工作负载中的分析

  2. Google支持DAOS成为HPC/AI高性能存储方案

  3. 什么是Tier 0存储?

  4. DAOS存储性能可扩展性研究

  5. DAOS:超越持久性内存的架构(PPT)



更多交流,可添加本人微信

(请附姓名/关注领域)



参考文献

  • [1] G. Lockwood, ”What’s so bad about POSIX I/O?”. The Next Platform 2017. https://www.nextplatform.com/2017/09/11/whats-bad-posix-io/

  • [2] Z. Liang, J. Lombardi, M. Chaarawi, M. Hennecke, ”DAOS: A ScaleOut High Performance Storage Stack for Storage Class Memory” In: Panda, D. (eds) Supercomputing Frontiers. SCFA 2020. Lecture Notes in Computer Science(), vol 12082. Springer, Cham. DOI:10.1007/9783-030-48842-0 3.

  • [3] J. Kunkel, J. Ben, J. Lofstead, G. Markomanolis, ”Establishing the IO500 Benchmark”, White Paper, 2016

  • [4] K. Jeong, C. Duffy, J. -S. Kim and J. Lee, ”Optimizing theCeph Distributed File System for High Performance Computing” 2019 27th Euromicro International Conference on Parallel, Distributed and Network-Based Processing (PDP), 2019, pp. 446-451, DOI:10.1109/EMPDP.2019.8671563.

  • [5] S. Narasimhamurthy, N. Danilov, S. Wu, G. Umanesan, S. Chien, S. Rivas-Gomez, I. Peng, E. Laure, S. Witt, D. Pleiter, and S. Markidis. ”The SAGE project: a storage centric approach for exascale computing: invited paper”. In Proceedings of the 15th ACM International Conference on Computing Frontiers (CF ’18). Association for Computing Machinery, New York, NY, USA, 287–292. DOI:10.1145/3203217.3205341.

  • [6] A. Dilger, D. Hildebrand, J. Kunkel, J. Lofstead, and G. Markomanolis, ”IO500 10 node list Supercomputing 2022”, November 2022. https://io500.org/list/sc22/ten?sort=io500 md&direction=desc

  • [7] S. Smart, T. Quintino, and B. Raoult ”A Scalable Object Store for Meteorological and Climate Data”. In Proceedings of the Platform for Advanced Scientific Computing Conference (PASC ’17). Association for Computing Machinery, New York, NY, USA, Article 13, 1–8. DOI:10.1145/3093172.3093238.

  • [8] S. Smart, T. Quintino, and B. Raoult. ”A High-Performance Distributed Object-Store for Exascale Numerical Weather Prediction and Climate”.In Proceedings of the Platform for Advanced Scientific Computing Conference (PASC ’19). Association for Computing Machinery, New York, NY, USA, Article 16, 1–11. DOI:10.1145/3324989.3325726.

  • [9] Vef, MA., Moti, N., Suß, T. et al. ”GekkoFS — A Temporary Burst¨ Buffer File System for HPC Applications”. J. Comput. Sci. Technol. 35, 72–91 (2020). DOI:10.1007/s11390-020-9797-6.

  • [10] O. Tatebe, K. Obata, K. Hiraga, and H. Ohtsuji. 2022. ”CHFS: Parallel Consistent Hashing File System for Node-local Persistent Memory”. In International Conference on High Performance Computing in AsiaPacific Region (HPCAsia2022). Association for Computing Machinery, New York, NY, USA, 115–124. DOI:10.1145/3492805.3492807.

  • [11] A. Miranda, A. Jackson, T. Tocci, I. Panourgias and R. Nou, ”NORNS: Extending Slurm to Support Data-Driven Workflows through Asynchronous Data Staging” 2019 IEEE International Conference on Cluster Computing (CLUSTER), pp. 1-12,DOI:10.1109/CLUSTER.2019.8891014.

  • [12] N. Manubens, S. Smart, T. Quintino and A. Jackson, ”Performance Comparison of DAOS and Lustre for Object Data Storage Approaches”, 2022 IEEE/ACM International Parallel Data Systems Workshop (PDSW).DOI:10.1109/PDSW56643.2022.00007.

  • [13] ”DAOS Architecture”, 2023.https://docs.daos.io/latest/overview/architecture

  • [14] ”HPC IO Benchmark Repository”, 2022, GitHub repository. https://github.com/hpc/ior

  • [15] N. Manubens, A. Jackson, T. Quintino, S. Smart and E. Danovaro, ”DAOS weather field I/O tests”, 2023, GitHub repository ecmwfprojects/daos-tests (0.1.1). DOI:10.5281/zenodo.7559332.

  • [16] ”NEXTGenIO User Guide and Applications”, 2023.https://ngioproject.github.io/nextgenio-docs/html/index.html

  • [17] ”benchio”,2023,https://github.com/adrianjhpc/benchio [18] Weil, S., Brandt, S., Miller, E., Long, D. & Maltzahn, C. Ceph: A Scalable, High-Performance Distributed File System. 7th USENIX Symposium On Operating Systems Design And Implementation (OSDI 06). (2006,11), https://www.usenix.org/conference/osdi-06/cephscalable-high-performance-distributed-file-system

  • [19] https://www.ornl.gov/news/frontier-supercomputer-debuts-worldsfastest-breaking-exascale-barrier

  • [20] N. Manubens, T. Quintino, S. D. Smart, E. Danovaro and A. Jackson, ”DAOS as HPC Storage: a View From Numerical Weather Prediction,” 2023 IEEE International Parallel and Distributed Processing Symposium (IPDPS), St. Petersburg, FL, USA, 2023, pp. 1029-1040, doi: 10.1109/IPDPS54959.2023.00106.

  • [21] Kordenbrock, Todd, Templet, Gary, Ulmer, Craig, and Widener, Patrick. Viability of S3 Object Storage for the ASC Program at Sandia. United States: N. p., 2022. Web. doi:10.2172/1895203.

继续滑动看下一个
Andy730
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存