DAOS系统架构-组件

在这里插入图片描述

如上图所示,一个完整的DAOS系统是由管理节点组件、客户端节点组件、服务端节点组件以及网络通信组件四个部分组成。管理节点组件通过管理网络通道(蓝色)对DAOS服务管理和监控。客户端节点组件通过数据网络通道(红色)与服务端节点组件通信实现数据读取和写入。服务端节点组件是整个DAOS系统的核心组件,用于集群数据的管理。

1.1. 服务端节点组件

在服务端,每个节点是由daos_serverdaos_engine两类组件构建,它们是运行在服务端节点上的守护进程。daos_server是DAOS控制平面的组件,负责解析配置文件,启动和监控多个daos_engine组件。daos_engine是DAOS数据平面的组件,是一个多线程进程,是由daos_server启动的。每个daos_server可以启动一个或多个daos_engine(通过配置daos_server.yml实现)。daos_engine负责处理元数据和I/O请求(通过CART网络通信中间件和调用PMDK和SPDK库直接访问本地NVMe设备)。PMDK用于直接访问存储级别的内存设备(SCM:storage-class memory)。SPDK用于直接访问NVMe SSD。

● daos_server.service - DAOS ServerLoaded: loaded (/usr/lib/systemd/system/daos_server.service; disabled; vendor preset: disabled)Active: active (running) since Thu 2025-04-10 19:07:50 CST; 18h agoMain PID: 67250 (daos_server)Tasks: 52 (limit: 1644956)Memory: 100.2GCGroup: /system.slice/daos_server.service├─67250 /usr/bin/daos_server start└─74592 /usr/bin/daos_engine -t 12 -x 2 -g daosfs00 -d /var/lib/daos/daos_server -T 4 -n /var/lib/daos/daos_control/engine0/daos_nvme.conf -I 0 -r 13312 -H 2 -s /var/lib/daos/daos_scm/0

1.2. 客户端节点组件

DAOS客户端与服务端通信主要通过DAOS Library(libdaos)。libdaos是专门为用户应用和IO中间件存储数据到DAOS container中而设计的。libdaos允许应用通过该接口与daos_engine进行通信,用来管理container和以不同的方式访问object。DAOS在libdaos之上又封装了一个libdfs库。libdfs库模拟了POSIX语义来支持文件系统应用程序。

另外,在DAOS客户端组件中,还提供了DAOS agent。它通过dRPC与libdaos通信来对应用程序进程身份验证。DAOS agent可以支持不同的身份验证框架,并使用Unix域套接字与客户端库进行通信。它还可以通过gRPC与每个DAOS server进行通信,以便向libdaos提供DAOS系统成员信息并支持pool list操作。

● daos_agent.service - DAOS AgentLoaded: loaded (/usr/lib/systemd/system/daos_agent.service; disabled; vendor preset: disabled)Active: active (running) since Tue 2025-04-08 13:17:29 CST; 3 days agoMain PID: 1467814 (daos_agent)Tasks: 27 (limit: 1644967)Memory: 26.2MCGroup: /system.slice/daos_agent.service└─1467814 /usr/bin/daos_agent

1.3. 管理节点组件

管理节点组件提供了系统管理工具(dmg)和管理API。dmg是在管理API之上设计的一个命令行工具,系统用管理员可以通过dmg命令管理和监控DAOS集群。管理API是专门为第三方存储管理框架设计的,第三方管理框架可以通过调用该API来监控DAOS集群。无论是dmg还是API,最终都是通过gRPC与daos_server组件通信。

root@node2 ~]# dmg --help
Usage:dmg [OPTIONS] <command>dmg (DAOS Management) is a tool for connecting to DAOS servers
for the purpose of issuing administrative commands to the cluster. dmg is
provided as a means for allowing administrators to securely discover and
administer DAOS components such as storage allocations, network configuration,
and access control settings, along with system wide operations.Application Options:--allow-proxy   Allow proxy configuration via environment-i, --insecure      Have dmg attempt to connect without certificates-d, --debug         Enable debug output--log-file=     Log command output to the specified file-j, --json          Enable JSON output-J, --json-logging  Enable JSON-formatted log output-o, --config-path=  Client config file pathHelp Options:-h, --help          Show this help messageAvailable commands:check           Check system healthconfig          Perform tasks related to configuration of hardware on remote servers (aliases: cfg)container       Perform tasks related to DAOS containers (aliases: cont)network         Perform tasks related to network devices attached to remote servers (aliases: net)pool            Perform tasks related to DAOS poolsserver          Perform tasks related to remote servers (aliases: srv)server-version  Print server versionstorage         Perform tasks related to storage attached to remote servers (aliases: sto)support         Perform debug tasks to help support team (aliases: supp)system          Perform distributed tasks related to DAOS system (aliases: sys)telemetry       Perform telemetry operations (aliases: telem)version         Print dmg version

1.4. 网络通信组件

在整个DAOS系统中,DAOS使用了3类通信渠道:gRPC、dRPC和CART。

gRPC为DAOS管理提供了一个双向安全通道,通常使用out-of-band TCP/IP网络,用于管理通信。它依赖TLS/SSL来对administrator和server进行身份验证。

dRPC是一种基于Unix域套接字构建的通信通道,用于进程间通信。主要用应用于DAOS agent与DAOS libdaos应用进程的身份认证,DAOS server与DAOS engine之间的协议序列化。

CART是用户空间的函数库,主要用于客户端与服务端的数据传输。通常采用低延时高带宽的网络,比如RDMA。CART是在Mercury和libfabric上构建的。CART库用于libdaos和daos_engine实例之间的所有通信。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/77623.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

制作一款打飞机游戏教程2:背景滚动

滚动原型开发 接下来&#xff0c;我们开始聚焦滚动原型的开发。我们需要确定游戏关卡的长度以及背景滚动的速度。 地图与精灵空间限制 在开发过程中&#xff0c;我们遇到了地图与精灵空间限制的问题。PICO 8的地图编辑器下半部分与精灵表共享空间&#xff0c;这意味着我们只…

计算机组成原理——CPU与存储器连接例题

计算机组成原理——CPU与存储器连接例题 设CPU共有16根地址线和8根数据线&#xff0c;并用(MREQ) ̅作为访存控制信号&#xff08;低电平有效&#xff09;&#xff0c;(WR) ̅作为读/写命令信号&#xff08;高电平读&#xff0c;低电平写&#xff09;。现有下列存储芯片&#…

GNSS静态数据处理

1 安装数据处理软件&#xff1a;仪器之星&#xff08;InStar &#xff09;和 Trimble Business Center 做完控制点静态后&#xff0c;我们需要下载GNSS数据&#xff0c;对静态数据进行处理。在处理之前需要将相关软件在自己电脑上安装好&#xff1a; 仪器之星&#xff08;InS…

Process Explorer 性能调优实战:精准定位资源泄漏与高负载进程

一、下载与安装 ‌下载地址‌ Process Explorer安装包下载&#xff1a;https://pan.quark.cn/s/950c36ba5364下载后解压压缩包&#xff0c;运行 procexp.exe&#xff08;32 位系统&#xff09;或 procexp64.exe&#xff08;64 位系统&#xff09;‌。 ‌界面概览‌ 主界面以树…

SVMSPro分布式综合安防管理平台-->以S3存储革新,开启智能安防新纪元

SVMSPro分布式综合安防管理平台–>以S3存储革新&#xff0c;开启智能安防新纪元 在数字化转型浪潮下&#xff0c;企业安防管理正面临海量数据存储、跨区域协同以及数据安全的严峻挑战。如何实现高效、弹性、低成本的存储扩容&#xff1f;如何确保关键录像数据万无一失&…

Python 装饰器(Decorator)

文章目录 代码解析1. 装饰器定义 timer(func)2. 应用装饰器 timer **执行流程****关键点****实际应用场景****改进版本&#xff08;带 functools.wraps&#xff09;** 这是一个 Python 装饰器&#xff08;Decorator&#xff09; 的示例&#xff0c;用于测量函数的执行时间。下…

git commit时自动生成Change-ID

创建全局钩子目录&#xff1a; 创建一个全局的Git hooks目录&#xff1a; mkdir -p ~/.githooks 下载并设置commit-msg钩子脚本&#xff1a; 下载Gerrit的commit-msg钩子脚本&#xff0c;并放置在全局钩子目录中(如下载不了&#xff0c;可从本页面附件中下载&#xff0c;“…

最新Ktransformers v0.24(Docker)并发部署DeepSeek-V3-0324模型

一、介绍 KTransformers v0.2.4 发布说明 我们非常高兴地宣布&#xff0c;期待已久的 KTransformers v0.2.4 现已正式发布&#xff01;在这个版本中&#xff0c;我们对整 体架构进行了重大重构&#xff0c;更新了超过 1 万行代码&#xff0c;为社区带来了备受期待的多并发支…

飞牛私有云5大硬核功能实测!

&#x1f4f8; 1. 智能相册&#xff1a;AI搜图原图自由 - 自动备份&#xff1a;手机照片/视频实时同步&#xff0c;支持RAW格式、实况照片无损备份&#xff0c;释放128G手机秒变256G。 - AI黑科技&#xff1a; - 人脸识别&#xff1a;自动归类人物相册&#xff0c;输入「妈妈…

webrtc pacer模块(一) 平滑处理的实现

Pacer起到平滑码率的作用&#xff0c;使发送到网络上的码率稳定。如下的这张创建Pacer的流程图&#xff0c;其中PacerSender就是Pacer&#xff0c;其中PacerSender就是Pacer。这篇文章介绍它的核心子类PacingController及Periodic模式下平滑处理的基本流程。平滑处理流程中还有…

【android bluetooth 协议分析 01】【HCI 层介绍 1】【hci_packets.pdl 介绍】

在 AOSP 的蓝牙协议栈 (Gabeldorsche) 中&#xff0c;hci_packets.pdl 是一个 协议描述语言文件&#xff0c;用于定义 HCI (Host Controller Interface) 层的数据包结构和通信协议。以下是详细解析&#xff1a; 1. 文件作用 system/gd/hci/hci_packets.pdl 协议自动化生成&…

操作系统 4.2-键盘

键盘中断初始化和处理 提取的代码如下&#xff1a; // con_init 函数&#xff0c;初始化控制台&#xff08;包括键盘&#xff09;的中断 void con_init(void) {set_trap_gate(0x21, &keyboard_interrupt); } ​ // 键盘中断处理函数 .globl _keyboard_interrupt _keyboard…

深入理解Softmax函数及其在PyTorch中的实现

Softmax函数简介 Softmax函数在机器学习和深度学习中&#xff0c;被广泛用于多分类问题的输出层。它将一个实数向量转换为概率分布&#xff0c;使得每个元素介于0和1之间&#xff0c;且所有元素之和为1。 Softmax函数的定义 给定一个长度为 K K K的输入向量 z [ z 1 , z 2 …

Vue 3 响应式更新问题解析

在 Vue 3 中&#xff0c;即使使用 reactive 或 ref 创建的响应式数据&#xff0c;当数据量很大时也可能出现更新不及时的情况。以下是原因和解决方案&#xff1a; 核心原因 ​​响应式系统优化机制​​&#xff1a; Vue 3 使用 Proxy 实现响应式&#xff0c;比 Vue 2 更高效但为…

异形遮罩之QML中的 `OpacityMask` 实战

文章目录 &#x1f327;️ 传统实现的问题&#x1f449; 效果图 &#x1f308; 使用 OpacityMask 的理想方案&#x1f449;代码如下&#x1f3af; 最终效果&#xff1a; ✨ 延伸应用&#x1f9e0; 总结 在 UI 设计中&#xff0c;经常希望实现一些“异形区域”拥有统一透明度或颜…

数据可视化 —— 堆形图应用(大全)

一、案例一&#xff1a;温度堆积图 # 导入 matplotlib 库中的 pyplot 模块&#xff0c;这个模块提供了类似于 MATLAB 的绘图接口&#xff0c; # 方便我们创建各种类型的可视化图表&#xff0c;比如折线图、柱状图、散点图等 import matplotlib.pyplot as plt # 导入 numpy 库&…

python工程中的包管理(requirements.txt)

pip install -r requirements.txtpython工程通过requirements.txt来管理依赖库版本&#xff0c;上述命令&#xff0c;可以一把安装依赖库&#xff0c;类似java中maven的pom.xml文件。 参考 [](

操作系统 3.4-段页结合的实际内存管理

段与页结合的初步思路 虚拟内存的引入&#xff1a; 为了结合段和页的优势&#xff0c;操作系统引入了虚拟内存的概念。虚拟内存是一段地址空间&#xff0c;它映射到物理内存上&#xff0c;但对用户程序是透明的。 段到虚拟内存的映射&#xff1a; 用户程序中的段首先映射到虚…

【Amazon EC2】为何基于浏览器的EC2 Instance Connect 客户端连接不上EC2实例

文章目录 前言&#x1f4d6;一、报错先知❌二、问题复现&#x1f62f;三、解决办法&#x1f3b2;四、验证结果&#x1f44d;五、参考链接&#x1f517; 前言&#x1f4d6; 这篇文章将讲述我在 Amazon EC2 上使用 RHEL9 AMI 时无法连接到 EC2 实例时所遇到的麻烦&#x1f616; …

Python学习笔记(二)(字符串)

文章目录 编写简单的程序一、标识符 (Identifiers)及关键字命名规则&#xff1a;命名惯例&#xff1a;关键字 二、变量与赋值 (Variables & Assignment)变量定义&#xff1a;多重赋值&#xff1a;变量交换&#xff1a;&#xff08;很方便哟&#xff09; 三、输入与输出 (In…