LiSheng's blog LiSheng's blog
首页
笔记
个人简历
随笔集
GitHub (opens new window)
首页
笔记
个人简历
随笔集
GitHub (opens new window)
  • golang

  • cplus

  • leetcode

  • 存储技术

    • 学习大纲
    • 命令ls的执行过程
    • mmap && write
    • 命令write的执行过程
    • 块
    • VFS层
    • Ceph

    • Daos

      • Daos介绍
      • Daos组件
        • SPDK Blob
    • 分布式系统

    • 计算机网络

    • Linux操作系统

    • Redis

    • 其他

    • 笔记
    • 存储技术
    • Daos
    lisheng
    2024-09-13
    目录

    Daos组件

    DAOS(Distributed Asynchronous Object Storage) 是一种高性能的分布式存储系统,专门设计用于处理大规模的存储需求,尤其是在高性能计算(HPC)环境中。DAOS 的架构由多个组件构成,这些组件共同工作以实现高效的数据存储、访问和管理。

    DAOS 包括一下 主要组件:

    # 1. DAOS Server

    • 作用:DAOS Server 是运行在存储节点上的核心服务,负责处理客户端请求并管理存储设备(如 NVMe SSD)。每个 DAOS Server 负责直接与物理存储介质交互,同时执行数据冗余、复制和故障恢复等操作。
    • 功能:
      • 管理存储资源(如 NVMe 和 SCM)。
      • 处理客户端的数据请求。
      • 管理池(Storage Pools)的元数据和对象的存储位置。
      • 支持多线程并发操作以提高性能。

    # 2. DAOS Client

    • 作用:DAOS Client 是运行在应用程序节点上的库,它为用户应用程序提供访问 DAOS 存储的接口。客户端库通过网络与 DAOS Server 进行通信。
    • 功能:
      • 提供 POSIX、Key-Value 和对象存储等不同的接口,方便应用程序通过不同方式访问数据。
      • 通过 RPC(Remote Procedure Call)与 DAOS Server 通信。
      • 负责数据 I/O 操作的缓存、聚合和优化。

    # 3. Storage Pools

    • 作用:存储池是 DAOS 中的一个逻辑存储区域。每个池由多个 DAOS Server 的存储设备组成,池可以根据需要进行扩展和缩减。存储池为不同的应用程序提供隔离的存储空间。
    • 功能:
      • 管理与池相关的元数据和空间分配。
      • 支持多租户环境,为不同的应用程序提供隔离的存储区域。
      • 提供冗余和故障恢复机制,保证数据的高可用性和持久性。

    # 4. Containers

    • 作用:容器是 DAOS 中存储对象的基本单元,它为一组相关数据(如文件集或数据集)提供存储空间。每个容器与存储池关联,但容器之间是独立的。
    • 功能:
      • 存储应用程序数据和元数据。
      • 提供数据一致性和版本控制。
      • 支持不同的数据模型(如 POSIX 文件系统、对象存储、Key-Value 存储等)。
      • 容器可以配置不同的性能和冗余策略,适应不同应用的需求。

    # 5. Object Storage Model

    • 作用:DAOS 的对象存储模型用于存储非结构化数据,并通过分布式方式管理对象。对象可以存储在 DAOS 的存储池和容器中。
    • 功能:
      • 支持多种对象类型,包括 Key-Value 对象、结构化对象和未结构化对象。
      • 使用对象 ID 来唯一标识和访问数据。
      • 对象被分块存储,并且可以在多个 DAOS Server 之间分布。

    # 6. SCM (Storage Class Memory)

    • 作用:SCM(存储类内存)是一种新型的高性能非易失性内存,DAOS 使用 SCM 来存储关键的元数据和加速 I/O 操作。SCM 是比 NVMe 更快速的存储层,提供极低的延迟。
    • 功能:
      • 存储元数据以及小的 I/O 请求。
      • 提供低延迟的持久性存储,用于加速数据访问。
      • 作为 NVMe SSD 存储的缓存,提升整体系统性能。

    # 7. NVMe (Non-Volatile Memory Express)

    • 作用:NVMe SSD 是 DAOS 用于存储数据的高性能持久性存储介质,负责存储大量的数据对象和大块数据。
    • 功能:
      • 处理大规模数据的存储和读取。
      • 提供高吞吐量和低延迟的存储性能,特别适用于高性能计算和数据密集型应用。
      • 与 SCM 结合使用,形成分层存储结构,提高数据访问的整体效率。

    # 8. Control Plane (DAOS Control)

    • 作用:控制平面用于管理 DAOS 集群的整体运维和配置。它允许集群管理员配置、管理和监控 DAOS 集群中的资源,如存储池和节点。
    • 功能:
      • 管理存储池的创建、扩展、缩小。
      • 配置和监控 DAOS 集群的状态。
      • 处理节点的启动、停止和故障恢复。
      • 提供集群运维的自动化工具。

    # 9. Placement Engine

    • 作用:对象在 DAOS 中是通过一种智能的 Placement Engine(放置引擎) 进行分布的。放置引擎决定了数据对象在 DAOS Server 之间的分布方式,确保数据的负载均衡和高可用性。
    • 功能:
      • 根据数据的大小、类型和访问模式,选择最优的数据分布策略。
      • 保证数据冗余,提供高可用性和数据恢复能力。
      • 在集群扩展或收缩时重新调整数据分布。

    # 10. Fault Detection and Recovery

    • 作用:DAOS 集群具有内置的故障检测和恢复机制,能够自动检测存储节点的故障并进行修复,确保数据的高可用性和一致性。
    • 功能:
      • 自动检测存储节点或设备的故障。
      • 启动数据恢复过程,重新分配受影响的数据对象,避免数据丢失。
      • 提供数据复制、纠删码等数据保护机制。

    # 总结:

    DAOS 由多个组件构成,主要包括 DAOS Server 和 DAOS Client 负责数据存储和访问,Storage Pools 和 Containers 提供数据存储管理,SCM 和 NVMe 提供高性能存储介质,控制平面 和 放置引擎 负责集群管理与数据分布,故障检测与恢复 提供数据的高可用性和冗余保护。

    这些组件协同工作,共同实现了 DAOS 在高性能计算和大规模存储需求中的高吞吐量、低延迟、可扩展性和高可用性。

    编辑 (opens new window)
    上次更新: 2024/09/13, 11:59:12
    Daos介绍
    SPDK Blob

    ← Daos介绍 SPDK Blob→

    最近更新
    01
    ceph分布式存储-对象存储(RGW)搭建
    10-27
    02
    ceph分布式存储-集群客户端连接
    10-27
    03
    ceph分布式存储-管理crushmap
    10-27
    更多文章>
    Theme by Vdoing
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式