DAOS
文章平均质量分 85
ssbandjl
DPU, Linux内核, 分布式存储, 云计算
展开
-
DAOS引擎是如何收到客户端RPC并处理的?
也就是, 如何将协程XS, ULT, Cart(网络), RPC, HG, Libfabric, RDMA, 完成队列以及各种回调结合起来, 形成精密运转的"机器", 来支持DAOS引擎接收客户端RPC功能。daos_engine(RPC请求/接收) -------> daos_engine(RPC请求/接收)daos_client(RPC请求) -------> daos_engine(RPC接收和处理)原创 2023-10-21 21:39:30 · 103 阅读 · 0 评论 -
Intel高性能IO500分布式存储系统DAOS资源汇总-包含RDMA 网络 SPDK NVME TSE 任务调度 异步 事件队列等
Intel高性能IO500分布式存储系统DAOS资源汇总-包含RDMA 网络 SPDK NVME TSE 任务调度 异步 事件队列等原创原创 2023-10-16 22:12:04 · 116 阅读 · 0 评论 -
统一通信 X(UCX) 实现高性能便携式网络加速-UCX入门教程HOTI2022
UCF Unified Communication Framework 统一通信框架, https://ucfconsortium.org/, 统一通信框架 - 行业、实验室和学术界之间的协作,为以数据为中心的高性能应用程序创建生产级通信框架和开放标准, 关于中佛罗里达大学, 开放式通信框架是协同设计的重要推动者,为异构协同处理元素的创新和开发提供了机会,异构协同处理元素可以协同、无缝地协同工作,从而为百亿亿级计算及其他计算实现强大而强大的生态系统。原创 2023-10-10 23:33:12 · 1484 阅读 · 0 评论 -
DAOS Mercury(HG) Libfabric(OFI) RDMA 分层verbs接口调用详解 rdma双边和单边操作示例
参考之前的分享中, DAOS与RDMA分层关系如下图, DAOS引擎 -> CART(RPC/大块数据/集合RPC请求) -> Mercury(HG: RPC注册/回调/RPC操作/预期/非预期消息/大块消息/轮训/阻塞/网络抽象等) -> Libfabric(网络抽象层,对rxm,rdma verbs, socket, 共享内存等抽象) -> RDMA(verbs) -> rdma-core(用户态驱动) -> RDMA网卡硬件驱动(如:英伟达 mellanox迈络思), 今天咱们来探讨一下分层verbs原创 2023-10-05 12:38:32 · 328 阅读 · 0 评论 -
rdma verbs network libfabric OpenFabrics 接口简介-用于最大限度提高-高性能应用程序效率的新网络接口(API)-[译]
OpenFabrics Interfaces (OFI) 是一个新的应用程序接口系列,它向中间件和应用程序公开通信服务。Libfabric 是 OFI 的第一个成员,是在 OpenFabrics 联盟的支持下,由行业、学术界和国家实验室合作伙伴组成的广泛联盟在过去两年中设计的。原创 2023-09-17 11:18:35 · 733 阅读 · 2 评论 -
DAOS用户态文件系统IO路径(dfuse io全路径)
分布式异步对象存储(DAOS,Distributed Asynchronous Object Storage)是一个开源的可扩展存储系统,从根本上设计用于在用户空间支持SCM和NVMe存储。DAOS在IO500基准测试中展现出领先的性能DAOS从头开始设计,以利用现代化存储硬件(SCM、NVMe和CXL SSD)。其先进的低级键值API使其具有比传统基于POSIX的并行文件系统更高的IOPS和可扩展性,DAOS的IO500结果 [2] 也证实了这一点。原创 2023-09-03 16:19:53 · 544 阅读 · 0 评论 -
DAOS-在docker中搭建daos开发调试环境
本节介绍如何在 Docker 容器中构建和运行 DAOS 服务。至少需要 4GB DRAM 和 16GB 磁盘空间。在 Mac 上,请确保“Preferences/{Disk, Memory}”下的 Docker 设置已进行相应配置。原创 2023-08-26 09:24:56 · 330 阅读 · 1 评论 -
DAOS的事件队列(EventQueue)与事件(Event)和任务调度引擎(TSE)及源码分析
事件和事件队列DAOS API 函数可以在阻塞或非阻塞模式下使用。这是通过传递给每个 API 调用的指向 DAOS 事件的指针来确定的:如果 NULL 表示操作将被阻塞。操作完成后会返回。所有失败情况的错误码都将通过API函数本身的返回码返回。如果使用有效的事件,则该操作将以非阻塞模式运行,并在内部调度程序中调度该操作以及将 RPC 提交到底层堆栈后立即返回。如果调度成功,则操作的返回值为success,但并不表示实际操作成功。返回时可以捕获的错误要么是无效参数,要么是调度问题。原创 2023-08-19 23:42:04 · 212 阅读 · 0 评论 -
DAOS_TSE(TaskSchedulerEngine)任务调度引擎流程及源码分析
TSE 是一个通用库,用于创建具有函数回调的通用任务,可选地添加这些任务之间的依赖关系,并将它们安排在一个引擎中,该引擎按照插入它们的依赖关系图确定的顺序执行这些任务。任务依赖图是调度程序的组成部分,允许用户创建多个任务并以非阻塞方式进行原创 2023-08-08 23:52:15 · 317 阅读 · 0 评论 -
DAOS引擎心跳健康检测-cart_swim(可扩展的弱一致性-感染式过程-组成员协议)
SWIM是DAOS引擎(rank)间的网络健康检测机制, 属于通信组件cart下的代码模块, SWIM是通过Gossip实现的Membership保持协议,也就是维护分布式系统节点的状态DAOS 引擎在系统内通过称为 SWIM 的基于 gossip 的协议进行监控,该协议提供准确、高效和可扩展的故障检测。附加到每个 DAOS 目标的存储通过定期本地健康评估进行监控。每当本地存储 I/O 错误返回到 DAOS 服务器时,将自动调用内部健康检查过程。原创 2023-07-08 11:41:46 · 371 阅读 · 1 评论 -
DAOS引擎启动流程-源码分析
文件系统DFS一个容器可以作为共享的 POSIX 命名空间挂载在多个计算节点上。 此功能由 libdfs 库提供,该库在本机 libdaos 库上实现文件和目录抽象。 POSIX 仿真可以直接暴露给应用程序或 I/O 框架(例如,对于 Spark 或 TensorFlow 等框架,或支持不同存储后端插件的 IOR 或 mdtest 等基准测试)。 它还可以通过 FUSE 守护程序透明地公开,可选择与拦截库结合原创 2023-06-01 23:02:01 · 451 阅读 · 1 评论 -
基于DOAS文件系统接口(DFS)暴露的SPDK块设备
在设计方面,此 bdev 是一个名为 bdev 本身的文件,位于 DAOS POSIX 容器中,每个 io 通道使用 daos 事件队列。 每个 io 通道都有一个事件队列来支撑最佳 IO 吞吐量。 该实现使用每个设备通道的独立池和容器连接以获得最佳 IO 吞吐量原创 2023-05-20 13:31:13 · 262 阅读 · 0 评论