DAOS: A Scale-Out High Performance Storage Stack for Storage Class Memory——论文泛读

Supercomputing Frontiers 2020 Paper分布式元数据论文阅读笔记整理

问题

企业、政府和学术界出现的数据密集型应用程序将现有的I/O模型扩展到了极限。现代I/O工作负载的特点是元数据与未对齐和碎片化数据的结合比例越来越高。传统的存储堆栈为这些工作负载提供了较差的性能,因为它增加了大量的延迟并引入了对齐约束。

随着经济实惠的大容量持久性内存与高速结构相结合,为重新定义存储模式和高效支持现代I/O工作负载提供了一个独特的机会。新堆栈必须从头开始就采用字节粒度的无共享接口,还必须能够支持大规模分布式存储,而故障将成为常态,同时保持低延迟和高带宽的结构访问。

本文方法

本文介绍了分布式异步对象存储(DAOS),一种开源的扩展存储系统,支持用户空间中的存储类内存(SCM)和NVMe存储。它的高级存储API支持结构化、半结构化和非结构化数据模型,克服了传统的基于POSIX的并行文件系统的限制。对于HPC工作负载,DAOS提供了对MPI-IO和HDF5的直接支持,以及对遗留应用程序的POSIX访问。

DAOS是一个开源软件定义的对象存储, 为大规模分布式非易失性内存(NVM)设计的。提供了KV存储接口,并提供了事务性非阻塞I/O、版本化数据模型和全局快照等特性。

三个模块:

  • 持久内存和持久内存开发工具包(PMDK)。用来存储所有内部元数据、应用程序/中间件KV索引、对延迟敏感的小型I/O。在系统启动期间,DAOS使用系统调用来初始化对持久内存的访问。例如,它将DAX文件系统的持久内存文件映射到虚拟内存地址空间。当系统启动和运行时,通过load和store等内存指令直接访问用户空间中的持久内存,而不需要长的存储调用堆栈。

  • NVMe SSD硬盘和存储性能开发套件(SPDK)7,支持大I/O和延迟不敏感的小I/O。SPDK提供了一个C库,可以链接到存储服务器,并可以向NVMe SSD提供直接的零拷贝数据传输。DAOS服务可以通过SPDK队列异步提交来自用户空间的多个I/O请求。SPDK I/O完成后,将在永久存储器中为先前存储在SSD中的数据创建索引。

  • Libfabric8和底层高性能结构,如Omni-Path架构或InfiniBand(或标准TCP网络)。Libfabric是一个库,用于定义用户空间API和OFI,并将Libfabric通信服务导出到应用程序或存储服务。DAOS的传输层构建在Mercury9之上,使用libfabric/OFI插件。它为消息和数据传输提供了基于回调的异步API,并为推进网络活动提供了无线程轮询API。DAOS服务线程可以主动轮询来自Mercury/libfabric的网络事件,作为异步网络操作的通知,而不使用中断,避免上下文切换对性能产生负面影响。

总结

针对大规模分布式非易失性内存(NVM)下的存储系统,本文提出DAOS,采用PMDK、SPDK、RDMA、用户态线程等技术,使数据从发起到存储的整个过程都处于用户态。核心是3个组件:(1)用持久内存和PMDK,存储元数据、KV索引、对延迟敏感的小型I/O,使用load和store等内存指令直接访问。(2)用NVMe SSD和SPDK,支持大I/O和对延迟不敏感的小I/O,使用零拷贝、异步提交I/O等技术。(3)用Libfabric定义用户空间API,客户端的消息和数据传输使用基于回调的异步API,服务线程采用轮询处理网络事件,不使用中断,避免上下文切换对性能的影响。

相关推荐
m4Rk_5 小时前
【论文阅读】Agent 记忆机制(113):Agentic Memory Management——从“检索相关信息”走向“管理 Agent 内部记忆”
论文阅读·人工智能·学习·开源·github
Curious*11 小时前
意识障碍--论文阅读5
论文阅读
a puppy slide 葱12 小时前
arXiv _ 2025 _ Gaussian Masked Autoencoders
论文阅读·人工智能·python·分类
Rocky Ding*2 天前
一文读懂Kimi K3.1 Pro核心基础知识
论文阅读·人工智能·深度学习·机器学习·aigc·大语言模型·ai-native
m4Rk_2 天前
【论文阅读】Agent记忆机制(112):MemFit——保留对话原文,用多路检索降低长期记忆成本
论文阅读·人工智能·学习·开源·github
崔高杰2 天前
【多论文阅读笔记】下一阶段,Agent记忆关注什么能力?
论文阅读·笔记
天树星智源3 天前
相机轨迹为什么对不上:问题不在控制模块,而在两段噪声不是同一份
论文阅读·机器人·大模型
m4Rk_3 天前
【论文阅读】Agent记忆机制(111):FEB-30——别再只用问答准确率评估 Agent Memory
论文阅读·人工智能·学习·开源·github
m4Rk_4 天前
【论文阅读】Agent记忆机制(109):MemComposer——用强化学习学会选哪些记忆、选多少以及怎样排序
论文阅读·人工智能·学习·开源·github
Rocky Ding*4 天前
【三年面试五年模拟】2026-10-21_零一万物知识图谱算法实习生一面面经全解析
论文阅读·人工智能·深度学习·机器学习·aigc·知识图谱·ai-native