开源全闪存存储系统:Intel DAOS架构介绍

如题所述

在数据存储领域,Intel DAOS凭借其卓越的性能和开源特性,正在引领分布式全闪存存储的革新潮流。作为一款用户态的存储系统,DAOS巧妙地结合了PMDK和SPDK,以高效地访问SCM和NVMe SSD,提供了非阻塞IO、数据保护和一致性的强大保障。它的核心架构由管理节点、客户端节点和存储节点构成,这些组件在物理部署上灵活多变,无论是高性能计算还是AI场景都能得心应手。

管理节点(Admin Node)是DAOS的控制中心,通过Golang开发的控制平面进行高效运作。数据平面则由C语言编写的CART网络支持,利用RDMA技术,确保了低延迟和高带宽的通信。在存储节点(Storage Node)上,daos_server负责设备管理,daos_engine则负责数据处理,daos_agent确保客户端的认证和状态获取。

DAOS的设计目标是提供一种通用的存储接口,兼容POSIX文件系统、HDF5、MPI.IO、HDFS和AI框架,同时支持多样的数据模型。libdaos作为client-side组件,部署在客户端节点上,执行数据的读写操作。通信网络方面,gRPC用于管理面间的远程通信,而dRPC则负责进程间的本地通信,确保控制与数据平面之间的高效协同。

DAOS系统由多个物理节点组成,每个节点都有独立的存储空间,以DAOS Target的形式存在,类似于Ceph的OSD,但通过单点故障的设计,降低了故障风险。DAOS pool作为逻辑存储空间,通过pool shards进行扩展,这些shards在Target上形成逻辑子空间,提供高效的数据分布和冗余备份。

DAOS Container,类似于S3的bucket,拥有私有对象地址空间,独立于其他Container,并支持快照和事务,其对象分布算法优化了性能和恢复能力。对象的存储模式由Object schema定义,预定义的Object class简化了数据组织。DAOS Object作为基本存储单元,设计简洁,仅包含核心数据,提供了多级键数组API,便于应用层操作。

在数据管理上,DAOS采用Raft协议的key-value存储,RSVC基于Raft服务框架保证数据的高可用性,通过Jump consistent hash算法实现副本一致性。事务处理通过分布式ACID和DTX算法,实现无锁并发控制。写操作流程经过客户端发起、协调副本、异步提交和故障重试等步骤,读操作则根据活跃事务的需要进行事务协调。

DAOS的故障检测和恢复机制依赖于SWIM协议,通过本地健康检查标记故障节点,自动进行pool降级和客户端重试。在数据迁移和扩展上,VOS的多版本设计,结合B+树结构,确保了数据的高效存储和恢复。更新元数据的EV-Tree和R-Tree技术,分别处理版本化索引和读请求的限制搜索空间,而BIO则负责NVMe SSD的磁盘空间管理。

DAOS对POSIX的兼容性体现在其提供的dfuse和interception library上,PMDK、SPDK和User Thread等关键技术的运用,进一步提升了性能。元数据存储在SCM,通过scatter-gather优化顺序读取性能,整体架构的合理性使其在高并发和大容量场景中表现出色。

随着技术的不断发展,DAOS的潜力无限,它将继续引领存储技术的革新,值得我们密切关注。在未来,期待DAOS在更多应用场景中发挥其卓越性能和灵活性。
温馨提示:答案为网友推荐,仅供参考
相似回答