【DAOS】Intel DAOS 分布式异步对象存储|Architecture Overview|架构概述

【DAOS】Intel DAOS 分布式异步对象存储|Architecture Overview|架构概述IntelDAOS 是一个针对大规模非易失性内存设计的开源对象存储系统 支持分布式事务和数据一致性

大家好,欢迎来到IT知识分享网。

目录

前言

什么是DAOS

为什么要用DAOS

1架构概述

 1.1专业术语和缩写

1.2架构

1.2.1DAOS 特性

1.2.2DAOS 系统

1.2.3 SDK 和 Tools

1.2.4 代理Agent

1.3存储模型(Storage Model)

1.3.1 DAOS Pool

1.3.2 DAOS Container

1.3.3 DAOS Object

1.4 事务模型(Transaction Model)

1.4.1Epoch 和时间戳排序(Epoch and Timestamp Ordering)

1.4.2 Container 快照(Container Snapshot)

1.4.3 分布式事务(Distributed Transactions)

1.5 故障模型 (Fault Model)

1.5.1 分层容错域(Hierarchical Fault Domains)

1.5.2 故障检测(Fault Detection)

1.5.3 故障隔离(Fault Isolation)

1.5.4 故障恢复(Fault Recovery)

1.6 安全模型(Security Model)

1.6.1 验证(Authentication)

1.6.2 Client 库(Client Library)

1.6.3 DAOS 管理网络(DAOS Management Network)

1.6.4 授权(Authorization)

1.6.5 组件证书(Component Certificates)

1.6.6 访问控制列表(Access Control Lists)

1.7 访问控制项(Access Control Entries)

1.8 数据完整性(Data Integrity)

1.8.1 介绍

1.8.2 要求

1.8.3键和值对象(Keys and Value Objects)

1.9 Life of a checksum (WIP)

1.10 Checksum Scrubbing (In Development)

1.11 Scanner

1.12 Corrective Actions

1.13 Design Details & Implementation

管理指南(Administration Guide)

DAOS源码(DAOS Source Code)

Docker 中的 DAOS(DAOS in Docker)

DAOS 分布式异步对象存储|相关组件

DAOS 系统

客户端 API,工具和 I/O 中间件

代理

DAOS 分布式异步对象存储|控制平面

代码组织

开发文档

用户文档

DAOS 分布式异步对象存储|数据平面 

模块接口

线程模型与 Argobot 集成

Thread-local Storage (TLS)

Incast Variable 集成

dRPC 服务器

dRPC 进程

dRPC 处理程序注册

User-level threads and Kernel-level threads 

 相关资料和链接


前言

作者bandaoyu,本文持续更新,地址:http://t.csdn.cn/XySWh

daos doc:https://github.com/daos-stack/daos/tree/master/docs

什么是DAOS

DAOS ( Distributed Asynchronous Object Storage,分布式异步对象存储 ),我理解为DAOS软件栈+硬件栈组成 对象存储容器。
<软件(PMDK+SPDK )+="" 硬件(nvme)="">

【DAOS】Intel DAOS 分布式异步对象存储|Architecture Overview|架构概述
DAOS Storage and High Performance Computing (HPC) Solutions

DAOS 与针对高性能储存的英特尔® 傲腾™ 技术;https://www.intel.cn/content/www/cn/zh/high-performance-computing/daos-high-performance-storage-brief.html?wapkw=daos

看说明,应该是和 k-v数据库很像(本身对象存储就是KV存储)。只不过DAOS 是软硬件一体,intel 提供DAOS 软件(api)配合 nvme和ram等硬件,合体成DAOS,变成了一个kv分布式数据库,所以它会有一些数据库特性的介绍:

DAOS API 支持分布式事务,允许将针对属于同一 Container 的对象的任何更新操作组合到单个 ACID 事务中。分布式一致性是通过基于多版本时间戳排序的无锁乐观并发控制机制提供的。DAOS 事务是可串行化的,可以在特定的基础上获取部分需要的数据集。

DAOS 版本控制机制允许创建持久的 Container 快照,该快照提供 Container 的实时分布一致性视图,该视图可用于构建生产者-消费者管道。

分布式异步对象存储 (DAOS) 是一个开源的对象存储系统,专为大规模分布式非易失性内存 (NVM, Non-Volatile Memory) 设计,利用了 SCM(Storage-Class Memory,比如intel的傲腾) 和 NVMe(Non-Volatile Memory express) 等的下一代 NVM 技术。

 可为高性能计算应用提供高带宽、低延迟和高IOPS的存储容器,是英特尔构建百亿亿次级存储堆栈的基础。

DAOS 服务器将其元数据保存在持久内存中,而将数据保存在 NVMe 固态盘中。

【DAOS】Intel DAOS 分布式异步对象存储|Architecture Overview|架构概述

 “英特尔® 傲腾™ 持久内存”延伸
1. 英特尔® 傲腾™ 持久内存和标准 DRAM 有什么区别?
相似之处:封装在 DIMMS 中,与 DRAM 驻留在同一总线/通道上,并且可以采取与 DRAM 相同的方式来存储易失性数据;
不同之处:持久内存容量远远高于传统的 DRAM。PMem 模块具有 128GB、256GB 和 512GB 三种容量,远远大于通常从 16GB 到 64GB 的 DRAM 模块,尽管也存在更大容量的 DRAM 模块。英特尔® 傲腾™ 持久内存甚至可以在模块不通电的情况下以持久模式存储数据,通过内置硬件增加安全性来保证数据不受损。从成本/GB 的角度以及容量可扩展能力来看, PMem 的总体拥有成本相比 DRAM 有了很大的改善。
2. 英特尔® 傲腾™ 持久内存和英特尔® 傲腾™ 固态盘之间有什么区别?
两者都使用了相同的英特尔® 傲腾™ 内存介质,但它们是完全不同的产品。英特尔® 傲腾™ 持久内存位于 DIMM 封装中,在 DRAM 总线上运行,可以作为易失性内存或持久内存使用。而英特尔® 傲腾™ 固态盘严格用于标准 NAND 封装模型(AIC、M.2、U.2、EDSFF 等)中的快速存储,并采用 NVMe* 协议驻留于 PCIe 总线上,作为存储设备始终保持数据持久。

摘抄自;Intel DAOS 存储解决方案简略梳理 https://zhuanlan.zhihu.com/p/

为什么要用DAOS

上一代的分布式存储是针对机械硬盘设计和优化的,现在固态硬盘已经大量使用,上一代分布式存储软件已经不适应。需要新一代分布式存储软件–比如:DAOS。

与主要针对旋转介质 机械硬盘设计的传统存储堆栈不同,DAOS 针对全新 NVM 技术进行了重新构建,可在用户空间全绕开操作系统中端对端地运行(RDMA),是一套轻量级的系统。

传统存储堆栈和全新技术栈的不同:

上一代的缺点

元数据存在后端:I/O路径长、同步和互锁机制

上一代的分布式文件系统,由于当时的硬件限制,为了解决元数据的容量瓶颈,部分产品(如CephFS)将元数据保存在后端的RADOS集群里,I/O路径长,并且由于复杂的同步和互锁机制,性能损耗较高,性价比并不理想;

部分产品(如HDFS)采用内存来保存所有的元数据,虽然元数据性能较好,但由于内存的容量有限,系统支持的文件数比较少,扩展能力有限。

下一代改进

新存储介质:SSD (NVMe协议)

存储引擎:高性能LSM存储引擎

新网络模块:高速网络传输模块,原生为RoCE/RDMA高性能网络量身打造
原文链接:https://blog.csdn.net/bandaoyu/article/details/

DAOS 提供了一种为访问高细粒度数据提供原生支持的 I/O 模型,而不是传统的基于高延迟和块存储设计的 I/O 模型,从而释放下一代存储技术的性能。

与传统的缓冲区不同,DAOS 是一个独立的高性能容错存储层,它不依赖其它层来管理元数据并提供数据恢复能力。DAOS 服务器将其元数据保存在持久内存中,而将批量数据直接保存在 NVMe 固态盘中。

【DAOS】Intel DAOS 分布式异步对象存储|Architecture Overview|架构概述

https://www.nextplatform.com/2016/05/23/lustre-daos-machine-learning-intels-platform/

https://www.nextplatform.com/2017/04/20/intel-shuts-lustre-file-system-business/

DAOS 分布式异步对象存储|事务模型;https://bbs.huaweicloud.com/blogs/

DAOS是什么?https://forum.huawei.com/enterprise/zh/thread-429557.html

针对问题

The fundamental limitations of the legacy storage software stacks became even more obvious later when much faster SSDs options came out. There were a number of bottlenecks in the legacy solutions, but chief among these came from POSIX and block-based IO.

POSIX takes a very pessimistic approach to ensuring data consistency, proactively locking in any situation where a conflict might occur. Imagine if a user opened a million files for writing and the number of locks might happen to preserve a file system consistency? This pessimistic approach just does not scale, so it became necessary to consider other ways to provide data consistency to unlock the filesystem for future scalability. DAOS instead borrows techniques from the database space to offer an optimistic approach to data consistency, eliminating the need for so much locking.
Similarly, all persistent IO up to this point has been done on media that we write to in large size blocks. This poses a real performance dilemma for IOs smaller than the block size, including file system metadata, as small IOs sharing a block would then be cause for more locking and serialization of activity, and less parallelism. Breaking through this bottleneck required innovation not only in the software stack, but also in the underlying storage media.

传统存储软件解决方案存在诸多瓶颈,其中较突出的POSIX和块IO (block-base IO)两个方面。

  • POSIX

POSIX采用保守(悲观,pessimistic)方式确保数据一致性,任何可能发生冲突的场景进行主动锁定;

DAOS借鉴数据库相关技术,提供较乐观(optimistic)方式确保数据一致性,去除大量锁操作。

  • 块IO

多个小IO共享一个块带来更多资源锁定,降低了并行度;

突破此瓶颈不仅需要软件堆栈创新,还需要底层存储介质的创新;如果没有存储硬件的创新、没有从SATA到NVMe过渡、没有存储级内存(SCM)产品出现以及相关协调软件栈创新,则无法突破这些障碍;

英特尔傲腾持久内存(PMem)是DAOS依赖的基础技术。选择硬件(PMem+NVMe)和软件(PMDK+SPDK),并在此基础上设计高效软件栈;

DK 就是Development Kit,PM=Persistent Memory,持久内存,SP=Storage Performance,存储性能。

PMem用于存储元数据信息和小IO,元数据访问粒度非常低;

小IO写入是否需存储至PMem,由DAOS策略引擎定义;可以实现为批量数据写入到NVMe,以达到更好的固态硬盘性能(更大的块大小、更好的带宽)和固态硬盘耐用性。从客户角度,好处是可以使用更便宜的固态硬盘,例如从高耐用性的固态硬盘转为中(或标准)耐用性硬盘。

1架构概述

 1.1专业术语和缩写

Acronym

    Expansion

ABT

        Argobots

ACL

        Access Control List

ACE

        Access Control Entry

ACID

        Atomicity, consistency, isolation, durability

BIO

        Blob I/O

CART

        Collective and RPC Transport

CGO

        Go tools that enable creation of Go packages that call C code

CN

            Compute Node

COTS

        Commercial off-the-shelf

CPU

        Central Processing Unit

Daemon

        A process offering system-level resources.

DAOS

        Distributed Asynchronous Object Storage

PMEM

        Intel Optane Persistent Memory

DPDK

        Data Plane Development Kit

dRPC

        DAOS Remote Procedure Call

gRPC

        gRPC Remote Procedure Calls

GURT

        A common library of Gurt Useful Routines and Types

HLC

        Hybrid Logical Clock

HLD

        High-level Design

ISA-L

        Intel Storage Acceleration Library

I/O

        Input/Output

KV store

    Key-Value store

libfabric

    Open Fabrics Interface

Mercury

    A user-space RPC library that can use libfabrics as a transport

MTBF

        Mean Time Between Failures

NVM

        Non-Volatile Memory

NVMe

        Non-Volatile Memory express

OFI

        Open Fabrics Interface

OS

            Operating System

PM

            Persistent Memory

PMDK

        Persistent Memory Devevelopment Kit

RAFT

        Raft is a consensus algorithm used to distribute state transitions among DAOS server nodes.

RAS

        Reliability, Availability & Serviceability

RDB

        Replicated Database, containing pool metadata and maintained across DAOS servers using the Raft algorithm.

RDMA/RMA

    Remote (Direct) Memory Access

RDG

        Redundancy Group

RPC

        Remote Procedure Call

SCM

        Storage-Class Memory

SWIM

        Scalable Weakly-consistent Infection-style process group Membership

SPDK

        Storage Performance Development Kit

SSD

        Solid State Drive

SWIM

        Scalable Weakly-consistent Infection-style process group Membership protocol

ULT

        User Level Thread

User-level threads and Kernel-level threads

UPI

        Intel Ultra Path Interconnect

UUID

        Universal Unique Identifier

VOS

        Versioning Object Store

1.2架构

分布式异步对象存储 (DAOS) 是一个开源的对象存储系统,专为大规模分布式非易失性内存 (NVM, Non-Volatile Memory) 设计,利用了SCM(Storage-Class Memory) 和 NVMe(Non-Volatile Memory express) 固态盘等的下一代 NVM 技术。

DAOS 是一种横向扩展的对象存储,可以为高性能计算应用提供高带宽、低延迟和高 IOPS 的存储容器,并支持结合仿真、数据分析和机器学习的下一代以数据为中心的工作流程。

与主要针对旋转介质设计的传统存储堆栈不同,DAOS 针对全新 NVM 技术进行了重新构建,可在用户空间中端对端地运行,并能完全绕开操作系统,是一套轻量级的系统。

DAOS 提供了一种为访问高细粒度数据提供原生支持的 I/O 模型,而不是传统的基于高延迟和块存储设计的 I/O 模型,从而释放下一代存储技术的性能。

与传统的缓冲区不同,DAOS 是一个独立的高性能容错存储层,它不依赖其它层来管理元数据并提供数据恢复能力。DAOS 服务器将其元数据保存在持久内存中,而将批量数据直接保存在 NVMe 固态盘中。

1.2.1DAOS 特性

DAOS 依靠 OFI 进行低延迟通信,并将数据存储在存储级内存 (SCM) 和 NVMe 存储上。 DAOS 提供了一个原生的键-数组-值存储接口,它提供了一个统一的存储模型,通过该模型可以移植特定领域的数据模型,例如 HDF5、MPI-IO 和 Apache Arrow。 还可以使用 POSIX I/O 仿真层,通过本机 DAOS API 实现文件和目录。

DAOS I/O 操作被记录下来,然后插入到 SCM 中维护的持久索引中。 每个 I/O 都标有称为 epoch 的特定时间戳,并与数据集的特定版本相关联。 内部不执行读-修改-写操作。 写操作是非破坏性的并且对对齐不敏感。 根据读取请求,DAOS 服务遍历持久索引并创建一个复杂的分散-聚集远程直接内存访问 (RDMA) 描述符,以直接在应用程序提供的缓冲区中重建请求版本的数据。

SCM 存储通过内存直接映射到 DAOS 服务的地址空间,该服务通过直接加载/存储来管理持久索引。 根据 I/O 特性,DAOS 服务可以决定将 I/O 存储在 SCM 或 NVMe 存储中。 如图 2-1 所示

  • ,对延迟敏感的 I/O,如应用程序元数据和字节粒度数据,通常存储在前者中,
  • 而检查点和批量数据将存储在后者中。

 这种方法允许 DAOS 通过将数据流式传输到 NVMe 存储并在 SCM 中维护内部元数据索引来为批量数据提供原始 NVMe 带宽。 持久内存开发套件 (PMDK) 允许管理对 SCM 的事务访问,存储性能开发套件 (SPDK) 允许用户空间 I/O 到 NVMe 设备。

【DAOS】Intel DAOS 分布式异步对象存储|Architecture Overview|架构概述

DAOS旨在提供:

任意对齐和大小的高吞吐量和IOPS

具有真正零拷贝I/O到SCM的细粒度I/O操作

通过跨存储服务器的可扩展集体通信支持大规模分布式NVM 存储

允许I/O和计算重叠的非阻塞数据和元数据操作

考虑到故障域的高级数据放置 软件管理的冗余支持通过在线重建复制和纠删码

端到端数据完整性 具有保证数据一致性和自动恢复的可扩展分布式事务

数据集快照 用于管理对存储池的访问控制的安全框架

软件定义的存储管理,用于通过COTS硬件供应、配置、修改和监控存储池

对DAOS数据模型上的分层数据格式 (HDF)5、MPI-IO 和 POSIX 命名空间的本机支持

灾难恢复工具

与Lustre 并行文件系统无缝集成

Mover代理用于在 DAOS 池之间以及从并行文件系统到 DAOS 之间迁移数据集,反之亦然

【DAOS】Intel DAOS 分布式异步对象存储|Architecture Overview|架构概述

【DAOS】Intel DAOS 分布式异步对象存储|Architecture Overview|架构概述

1.2.2DAOS 系统

        一个数据中心可能有数十万个计算实例通过一个可扩展的高性能网络互连,其中所有实例或称为存储节点的实例子集都可以直接访问NVM存储。

      DAOS安装涉及多个组件,这些组件既可以并置,也可以分布.

存储节点

DAOS系统由一个系统名标识,它由一组连接到同一结构的 DAOS 存储节点组成。DAOS 存储节点运行一个 DAOS 服务实例,该实例为每个物理套接字启动一个 DAOS I/O engine进程。这些 DAOS server 成员关系被记录到系统map中,该map为每个engine分配一个唯一的整数rank 。两个不同的 DAOS 系统由两组不相交的 DAOS 服务器组成,它们之间无法相互配合。

DAOS server

DAOS server 是一个多租户守护进程,运行在每个存储节点的 Linux 环境实例上(可以是物理节点、虚拟机或容器)。DAOS server 的 engine 子进程通过网络导出 公开本地连接的 SCM 和 NVM 存储。它监听一个管理端口(由 IP 地址和 TCP 端口号 确定),以及一个或多个fabric endpoints (由网络 URI 寻址)。

DAOS 服务通过 /etc/DAOS 中的 YAML 文件进行配置,包括其 I/O Engine 子进程的配置。服务的启动可以与不同的守护进程管理或编排框架集成(systemd 脚本、Kubernetes 服务、或类似 pdsh 和 srun 的并行启动程序)。

 DAOS Engine

在 DAOS I/O  DAOS Engine中,存储在多个target之间静态分区以优化并发性,增强并发能力。为了避免竞争,每个 Target 都有其私有存储、自己的服务线程池以及专用的网络上下文,这些上下文可

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/121846.html

(0)
上一篇 2025-10-21 10:45
下一篇 2025-10-21 11:10

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信