首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >为什么 DAOS 文件系统堪称大集群 IO #1

为什么 DAOS 文件系统堪称大集群 IO #1

作者头像
数据存储前沿技术
发布2025-10-09 10:59:03
发布2025-10-09 10:59:03
960
举报

阅读收获

  • 掌握DAOS如何通过MVCC、版本化等无锁设计,实现极致并发与扩展性。
  • 理解DAOS从PMEM到“DRAM+WAL on SSD”的架构演进,及其对通用硬件部署的深远意义。
  • 学习DAOS多租户存储池化技术,有效保障QoS并提升硬件利用率。
  • 洞察超算存储系统真实性能与厂商理论值的差距,建立对高性能存储的清醒认知。

全文概览

在高性能计算(HPC)和大数据时代,存储系统面临着前所未有的挑战。传统存储架构难以满足TB/s级吞吐和亿级IOPS的需求,更遑论极致的低延迟。DAOS(分布式异步对象存储)作为专为百亿亿次计算设计的存储栈,如何从早期原型演进,摆脱硬件束缚,成为下一代开放存储平台?它又如何通过独特设计原则,实现极致性能与灵活扩展?本文将深入剖析DAOS的发展历程、核心技术与架构演进,带你一窥超算存储的未来。

👉 划线高亮 观点批注


DAOS 发展历程
DAOS 发展历程

DAOS 发展历程

DAOS(Distributed Asynchronous Object Storage,分布式异步对象存储)技术从2012年到2025年的发展历程

  1. 关键事件和版本发布 (时间轴上方):
    • 2012: Intel收购了Whamcloud (Lustre文件系统的主要开发公司)。
    • 2016-2021: 密集发布了从v0.1到v2.0的一系列软件版本。
    • 2021: Intel开始提供L3级别的技术支持。
    • 2022: Intel宣布停止Optane(傲腾)持久性内存业务。同年发布v2.2版本。
    • 2023: DAOS增加了对无PMEM(持久性内存)环境的支持 (PMEM-less support)。DAOS基金会 (DAOS Foundation) 成立。发布v2.4版本。
    • 2024: Aurora超级计算机上的DAOS系统投入生产 (Aurora in Production)。Parallelstore GA (正式发布)。发布v2.6版本。
    • 2025: 计划发布v2.6.3版本。
  2. 技术演进和项目阶段 (时间轴下方):
    • Prototype over Lustre (基于Lustre的原型, 2012-2016):
      • 在ZFS OSD (对象存储守护进程) 之上构建。
      • DAOS API运行在Lustre之上。
    • Standalone prototype (独立原型, 2012-2015):
      • 实现了OS-bypass (操作系统旁路/内核旁路)。
      • 通过PMDK (持久性内存开发套件) 使用持久性内存。
      • 实现了数据复制和自我修复 (Replication & self-healing) 功能。
    • DAOS embedded on FPGA (嵌入到FPGA的DAOS, 2016-2018):
      • 实现了分离式I/O (Disaggregated I/O)。
      • 增加了监控功能。
      • 通过SPDK (存储性能开发套件) 支持NVMe SSD。
    • ECP Pathforward (ECP探路者项目, 2018-2021): 这是一个美国能源部百亿亿次计算项目(Exascale Computing Project)下的子项目,推动DAOS的发展。
    • DAOS Productization for Aurora (为Aurora超算进行的DAOS产品化, 2020至今):
      • Hardening (系统加固和稳定性增强)。
      • 增加了超过10个新功能。
      • 支持额外的AI/大数据框架。
  3. 性能里程碑和部署情况 (图中的红色标注):
    • 2020: 在IO500 (全球高性能计算存储性能排行榜) 中排名第一。
    • 2021: 在IO500排行榜前22名中,有11个系统使用了DAOS。同年,启动了Coral NRE项目。
    • 2022: Aurora超算存储系统性能突破 8TB/s。
    • 2023: Aurora超算存储系统性能突破 10TB/s。出现了第一个基于ARM架构的DAOS系统。
    • 2024: 在IO500生产系统榜单 (Prod IO500) 前7名中,有4个系统使用DAOS,其中2个位列前2名。

DAOS定位为下一代开放存储平台
DAOS定位为下一代开放存储平台

DAOS定位为下一代开放存储平台

左侧:DAOS核心特性列表

  • Platform for innovation (创新平台): 强调DAOS不仅仅是一个存储系统,更是一个可以进行二次开发和创新的基础平台。
  • Files, blocks, objects and more (支持文件、块、对象等): 表明DAOS是一个统一存储平台,能够通过不同的接口提供文件、块和对象存储服务。
  • Full end-to-end userspace (完整的端到端用户空间): 指DAOS的I/O路径完全在用户空间执行,绕过了操作系统内核,从而消除了内核态和用户态切换的开销,实现极低的延迟和极高的性能。
  • Flexible built-in data protection (灵活的内置数据保护): 系统原生集成了数据保护机制。
    • EC/replication with self-healing (支持纠删码/副本,具备自愈能力): 支持纠删码和多副本两种数据冗余方式,并能在硬件故障时自动进行数据恢复。
  • Flexible network layer (灵活的网络层): 网络通信层具有很好的适应性,可以使用不同的网络技术。
  • Efficient single server (高效的单服务器性能): 单个DAOS存储服务器就能提供极高的性能。
    • 性能指标约为每服务器 O(100)GB/s 的吞吐和 O(1M) 的IOPS (每秒读写操作次数)。
  • Highly scalable (高度可扩展): 系统可以横向扩展以提供更高的聚合性能。
    • 聚合性能可达 TB/s 级别的吞吐和数十亿级别的IOPS。
    • 可支持百万量级 (O(1M)) 的客户端进程并发访问。
  • Time to first byte in O(10) µs (首字节访问延迟在10微秒量级): 拥有极低的I/O延迟。

DAOS的设计基础原则
DAOS的设计基础原则

DAOS的设计基础原则

DAOS为了实现极致性能、扩展性和提供独特功能,在设计上所遵循的一系列核心原则。这些原则被归纳为三大类。

第一类:Scalability & Performance (可扩展性与性能)

这类原则旨在消除传统分布式系统中的常见瓶颈。

  • No read-modify-write on I/O path (use versioning) - I/O路径上无“读-修改-写”操作 (使用版本化):
    • 传统存储更新数据时,需要先读取旧数据、在内存中修改、再写回,这个过程效率低且易产生冲突。DAOS避免了这种模式,而是采用版本化写入:每次更新都是写入一个新版本的数据,旧版本的数据保留。这种方式类似于Copy-on-Write(写时复制),可以极大地提升写入性能并简化并发控制。
  • No locking/DLM (use MVCC) - 无锁/分布式锁管理器 (使用多版本并发控制):
    • DAOS不使用传统的锁机制(如分布式锁管理器DLM)来协调并发访问,因为锁会造成严重的性能瓶颈。取而代之的是MVCC (多版本并发控制),这是一种源自数据库领域的技术。它允许读写操作同时进行而互不阻塞,每个事务都能看到一个一致的数据快照,从而实现极高的并发性能。
  • No client tracking or client recovery - 无客户端跟踪或客户端恢复机制:
    • DAOS服务端被设计为近乎无状态 (stateless),它不需要跟踪每个客户端的状态。这大大简化了服务端的设计,降低了管理开销。当客户端故障时,服务端无需进行复杂的恢复处理,使得系统更加健壮和易于扩展。
  • No centralized (meta)data server - 无中心化的(元)数据服务器:
    • DAOS将元数据和数据都分布式地存储在所有服务器上,没有像HDFS NameNode那样的中心化元数据节点。这消除了单点性能瓶颈和单点故障风险,是系统能够大规模水平扩展的关键。

第二类:High IOPS (高IOPS)

这类原则专注于提升系统每秒处理I/O操作的能力。

  • No global object table - 无全局对象表:
    • 系统中不存在一个需要所有节点访问和更新的全局对象索引表。对象的定位可能是通过哈希算法等分布式方式完成的,避免了因查询和更新单一巨大表格而造成的瓶颈。
  • Non-blocking I/O processing (futures & promises) - 非阻塞I/O处理 (使用futures & promises模型):
    • DAOS采用异步I/O模型。应用程序发起一个I/O请求后,不会被阻塞等待其完成,而是能立即返回并继续处理其他任务。这种基于“future”和“promise”的编程模型,使得单个线程可以同时处理成千上万个并发I/O请求,从而极大地提升了系统的IOPS。

第三类:Unique Capabilities (独特功能)

这类原则为DAOS带来了超越传统存储系统的高级功能。

  • Serializable distributed transactions - 可串行化的分布式事务:
    • 这是DAOS一个非常强大的高级功能。它支持跨多个对象、多个服务器的分布式事务,并保证了最高隔离级别(可串行化),确保了操作的原子性和一致性。这对于需要强一致性保证的复杂科学计算和数据分析工作流至关重要。
  • Built-in multi-tenancy - 内置多租户:
    • 系统从设计之初就考虑了多租户需求,能够安全地隔离不同用户或应用(租户)的资源,包括存储容量、性能等,非常适合在共享的高性能计算中心或云环境部署。
  • User snapshot - 用户快照:
    • 内置了对用户数据的快照功能,可以创建某个时间点的一致性数据副本,这对于数据备份、版本控制和快速恢复非常有用。

DAOS具备强大的多租户能力,可以通过“存储池化”技术将一个共享的物理硬件集群,逻辑地划分为多个完全隔离的、资源可配的虚拟存储系统

关键信息提炼如下:

  1. 逻辑隔离与资源保障: DAOS允许管理员创建多个存储池(Pool),每个池都可以分配给一个租户。这些池在逻辑上是相互隔离的,可以独立管理。最重要的是,可以为每个池设定独立的资源配额,包括存储容量、吞吐带宽和IOPS,从而实现服务质量(QoS)的保障,有效解决“吵闹邻居”(noisy neighbor)问题。
  2. 硬件资源共享与高利用率: 多个存储池可以构建在同一套物理硬件之上,甚至单个服务器的资源也可以被多个池共享。这种设计极大地提高了硬件资源的利用率,避免了为每个应用或项目都建设一套独立存储的浪费。
  3. 服务多样化与灵活性: 通过存储池化,一套DAOS集群可以同时满足不同规模和性能需求的应用场景。如图中所示,它可以同时为一个需要100PB容量和20TB/s吞吐的旗舰级应用(Apollo),以及一个仅需30TB容量的小型应用(Mercury)提供服务,展现了极高的管理灵活性。

DAOS 是如何实现指定 容量、带宽和IOPS性能划分的呢?


从PMEM架构演进为DRAM + NVMe SSD的软件定义架构
从PMEM架构演进为DRAM + NVMe SSD的软件定义架构

从PMEM架构演进为DRAM + NVMe SSD的软件定义架构

DAOS成功地从一个依赖特定硬件(PMEM)的架构,演进为一个更具普适性和弹性的、基于通用硬件(DRAM + NVMe SSD)的软件定义架构

  1. 应对硬件生态变化: 此次架构演进主要是为了应对Intel停止其Optane持久性内存业务的重大行业变化。这展示了DAOS项目的技术适应能力和长远生命力。
  2. 以软件机制替代硬件特性: 新架构用 “DRAM + WAL on SSD” 的软件组合,成功地模拟并替代了PMEM“低延迟+持久化”的核心功能。它利用DRAM提供低延迟,利用高度优化的WAL来确保持久性。
  3. 降低部署门槛,扩大应用范围: 摆脱了对PMEM的依赖后,DAOS可以部署在任何拥有DRAM和NVMe SSD的标准服务器上。这极大地降低了用户的硬件成本和部署门槛,使其能够被更广泛的数据中心和用户所采纳。
  4. 性能与成本的平衡: 虽然在某些极端延迟敏感的场景下,新架构可能与原生PMEM方案有细微性能差异,但它在绝大多数场景下依然能保持极高的性能水平,同时提供了更优的成本效益和硬件选择的灵活性。

如何理解 WAL on SSD ?

WAL: Write-Ahead Log,即 预写日志 "WAL on SSD" 的意思就是 “将预写日志(WAL)存储在固态硬盘(SSD)上”

这是一种在高性能数据库和存储系统中非常关键且常见的技术,它的核心思想可以概括为一句话:

在对数据进行任何永久性修改之前,先将这个修改操作以日志的形式记录下来。

  1. 要解决的问题是什么? DAOS的新架构使用DRAM来处理元数据,DRAM速度极快,但它是易失性的(掉电数据就丢失)。如果系统在将DRAM里的数据写回SSD最终位置之前突然断电,那么这些数据就永久丢失了,会导致数据不一致甚至损坏。
  2. WAL on SSD 如何解决这个问题? 它引入了一个“保险”步骤:
    • 第1步 (记录意图): 当DAOS需要更新元数据时,它不直接去改最终的数据存放位置。而是先在一个专门的日志文件(就是WAL)里写一条记录,例如:“我准备把A改成B”。
    • 第2步 (写入SSD): 这条日志记录会被立刻、快速地写入到SSD上。因为SSD是非易失性的(掉电数据不丢),所以只要这条日志写成功了,这个“意图”就被永久保存下来了。向SSD顺序写入日志的速度非常快,所以这一步对性能影响很小。
    • 第3步 (更新内存): 在日志写入SSD成功后,DAOS才会放心地在高速的DRAM里执行“把A改成B”这个操作,然后告诉客户端“操作成功”。
    • 第4步 (后续落地): 系统会在后续空闲的时候,再慢慢地把DRAM里已经更新好的数据写回到SSD上它最终应该在的位置。
  3. 它的优势是什么?
    • 数据安全 (Durability): 如果在第3步之后、第4步之前系统崩溃了,没关系。系统重启后,DRAM里的数据虽然没了,但DAOS可以去读取SSD上的WAL日志,它会发现“哦,我之前准备把A改成B,并且已经给客户端确认了,但我可能没完成最后的数据落地”,于是它就会根据日志里的记录,重新执行这个操作,把数据恢复到崩溃前的一致状态。
    • 高性能 (Performance): 它巧妙地将随机、零散的写操作转换为了对日志文件的顺序写操作,这在SSD上效率极高。同时,真正的业务数据可以直接在DRAM中进行读写,保证了极低的延迟。

Aurora 超算节点参数概览
Aurora 超算节点参数概览

Aurora 超算节点参数概览

Aurora 存储系统参数
Aurora 存储系统参数

Aurora 存储系统参数

另外2个存储系统的参数
另外2个存储系统的参数

另外2个存储系统的参数

3个系统在 IO500 上的性能得分
3个系统在 IO500 上的性能得分

3个系统在 IO500 上的性能得分 需要留意的是:图中性能比分是集群的整体得分

进一步来看,单节点的 带宽/IOPS 性能,可见 LRZ 系统的单机性能最高,其次是 Aurora 系统,Weka 相对来讲有显著差距。

Aurora 系统和 LRZ 系统的差距来源,可能主要是集群规模的通信消耗,Aurora 的计算节点超8000台,而LRZ 仅90多台,Weka 系统的主要短板可能是IO设计上的差异造成,且系统不具备 PMEM 的高速非易失内存。

另一个需要建立的常识是:上述都是top级别的存储系统,单节点性能 Weka 只能做到4GB/s 的读写带宽,而IOPS 仅50k,这说明高性能计算场景的真实性能不容乐观,要对存储厂商的理论性能有清醒认识。


延伸思考

这次分享的内容就到这里了,或许以下几个问题,能够启发你更多的思考,欢迎留言,说说你的想法~

  1. DAOS通过“DRAM+WAL on SSD”替代PMEM,这种软件定义持久化方案在不同I/O模式下,其性能与数据一致性表现会如何?与传统存储的日志机制有何本质区别?
  2. DAOS的无锁、无中心化元数据服务器设计,在实现极致扩展性的同时,如何有效保障分布式事务的“可串行化”隔离级别?这在工程实现上会面临哪些挑战?
  3. 文章揭示了超算存储系统真实性能与理论值的差距。在设计和部署高性能存储时,除了DAOS的优化,还有哪些关键因素或工程实践能有效提升实际应用性能?

原文标题:DAOS: A High-Performance Scale-out Storage Stack[1]

Notice:Human's prompt, Datasets by Gemini-2.5-Pro

#FMS25 #DAOS文件系统

---【本文完】---


公众号:王知鱼,专注数据存储、云计算趋势&产品方案。

PPT取自 DAOS Foundation Andrey Kudryavtsev,在FMS 2025 闪存峰会上的汇报材料。

👇阅读原文,查看历史文章,推荐PC端打开 💻。


  1. https://files.futurememorystorage.com/proceedings/2025/20250807_DCTR-304-1_Kudryavtsev.pdf ↩
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-09-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 王知鱼 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档