DAOS: A Scale-Out High Performance Storage Stack for Storage Class Memory——论文泛读

Supercomputing Frontiers 2020 Paper 分布式元数据论文阅读笔记整理

问题

企业、政府和学术界出现的数据密集型应用程序将现有的I/O模型扩展到了极限。现代I/O工作负载的特点是元数据与未对齐和碎片化数据的结合比例越来越高。传统的存储堆栈为这些工作负载提供了较差的性能,因为它增加了大量的延迟并引入了对齐约束。

随着经济实惠的大容量持久性内存与高速结构相结合,为重新定义存储模式和高效支持现代I/O工作负载提供了一个独特的机会。新堆栈必须从头开始就采用字节粒度的无共享接口,还必须能够支持大规模分布式存储,而故障将成为常态,同时保持低延迟和高带宽的结构访问。

本文方法

本文介绍了分布式异步对象存储(DAOS),一种开源的扩展存储系统,支持用户空间中的存储类内存(SCM)和NVMe存储。它的高级存储API支持结构化、半结构化和非结构化数据模型,克服了传统的基于POSIX的并行文件系统的限制。对于HPC工作负载,DAOS提供了对MPI-IO和HDF5的直接支持,以及对遗留应用程序的POSIX访问。

DAOS是一个开源软件定义的对象存储, 为大规模分布式非易失性内存(NVM)设计的。提供了KV存储接口,并提供了事务性非阻塞I/O、版本化数据模型和全局快照等特性。

三个模块:

  • 持久内存和持久内存开发工具包(PMDK)。用来存储所有内部元数据、应用程序/中间件KV索引、对延迟敏感的小型I/O。在系统启动期间,DAOS使用系统调用来初始化对持久内存的访问。例如,它将DAX文件系统的持久内存文件映射到虚拟内存地址空间。当系统启动和运行时,通过load和store等内存指令直接访问用户空间中的持久内存,而不需要长的存储调用堆栈。

  • NVMe SSD硬盘和存储性能开发套件(SPDK)[7],支持大I/O和延迟不敏感的小I/O。SPDK提供了一个C库,可以链接到存储服务器,并可以向NVMe SSD提供直接的零拷贝数据传输。DAOS服务可以通过SPDK队列异步提交来自用户空间的多个I/O请求。SPDK I/O完成后,将在永久存储器中为先前存储在SSD中的数据创建索引。

  • Libfabric[8]和底层高性能结构,如Omni-Path架构或InfiniBand(或标准TCP网络)。Libfabric是一个库,用于定义用户空间API和OFI,并将Libfabric通信服务导出到应用程序或存储服务。DAOS的传输层构建在Mercury[9]之上,使用libfabric/OFI插件。它为消息和数据传输提供了基于回调的异步API,并为推进网络活动提供了无线程轮询API。DAOS服务线程可以主动轮询来自Mercury/libfabric的网络事件,作为异步网络操作的通知,而不使用中断,避免上下文切换对性能产生负面影响。

总结

针对大规模分布式非易失性内存(NVM)下的存储系统,本文提出DAOS,采用PMDK、SPDK、RDMA、用户态线程等技术,使数据从发起到存储的整个过程都处于用户态。核心是3个组件:(1)用持久内存和PMDK,存储元数据、KV索引、对延迟敏感的小型I/O,使用load和store等内存指令直接访问。(2)用NVMe SSD和SPDK,支持大I/O和对延迟不敏感的小I/O,使用零拷贝、异步提交I/O等技术。(3)用Libfabric定义用户空间API,客户端的消息和数据传输使用基于回调的异步API,服务线程采用轮询处理网络事件,不使用中断,避免上下文切换对性能的影响。

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

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

相关文章

✅什么是最左前缀匹配?为什么要遵守?

在 MySQL 中,最左前缀匹配指的是在查询时利用索引的最左边部分进行匹配。当你执行查询时,如果查询条件涉及到组合索引的前几个列,MySQL 就能够利用该复合索引来进行匹配。 组合索引即由多个字段组成的联合索引,比如 idx_col1_col2…

AIGC 003-Controlnet升级你的SD让图像生成更加可控!

AIGC 003-Controlnet升级你的SD让图像生成更加可控! 文章目录 0 论文工作1 论文方法2 效果 0 论文工作 ControlNet 论文 (Adding Conditional Control to Text-to-Image Diffusion Models) 提出了一种名为 ControlNet 的神经网络结构,旨在为大型文本到图…

StackExchange.Redis跑起来,为什么这么溜?

StackExchange.Redis 是一个高性能的 Redis 客户端库,主要用于 .NET 环境下与 Redis 服务器进行通信,大名鼎鼎的stackoverflow 网站就使用它。它使用异步编程模型,能够高效处理大量请求。支持 Redis 的绝大部分功能,包括发布/订阅…

创意学习剪辑利器:一键添加动图水印,轻松提升视频专业度与创意新境界!

在数字化时代,视频已成为我们生活中不可或缺的一部分。无论是学习分享、工作展示还是生活记录,视频都以其直观、生动的形式,赢得了广大用户的喜爱。然而,如何在众多的视频中脱颖而出,展现出自己的专业度和创意&#xf…

[AI OpenAI] OpenAI 安全更新

AI 首尔峰会中分享我们的实践 我们自豪地构建并发布了在能力和安全性方面都处于行业领先地位的模型。 超过一亿用户和数百万开发者依赖于我们安全团队的工作。我们将安全视为我们必须在多个时间范围内投资并取得成功的事项,从使今天的模型与我们未来预期的更具能力…

谷歌浏览器使用vue插件查看表单提交的数据

1.查看组件: 对应代码里主页面引用的组件名: 表单名称,对应组件里form表单名: 左边的层次结构: 右边层次结构:

Excel/WPS《超级处理器》同类项处理,合并同类项与拆分同类项目

在工作中处理表格数据,经常会遇到同类项处理的问题,合并同类项或者拆分同类项,接下来介绍使用超级处理器工具如何完成。 合并同类项 将同一列中的相同内容合并为一个单元格。 1)用分隔符号隔开 将AB列表格,合并后为…

Spring中@Component注解

Component注解 在Spring框架中,Component是一个通用的注解,用于标识一个类作为Spring容器管理的组件。当Spring扫描到被Component注解的类时,会自动创建一个该类的实例并将其纳入Spring容器中管理。 使用方式 1、基本用法: Co…

企业微信hook接口协议,ipad协议http,已读消息

已读消息 参数名必选类型说明uuid是String每个实例的唯一标识,根据uuid操作具体企业微信send_userid是long要发送的人idisRoom是bool是否是群消息 请求示例 {"uuid":"1753cdff-0501-42fe-bb5a-2a4b9629f7fb","send_userid":788130255…

Unity学习日志

目录 获取相机可视范围的世界坐标(2D) 视口转世界坐标和屏幕转世界坐标的区别: 屏幕转世界坐标 视口转屏幕坐标 视口转屏幕结合3D数学实现可视范围的怪物生成 transform.up游戏对象的方向问题 其实还有一种不用Translate的写法: 修改 transform.up 的行为和影响 C#抽象…

全国各城市间驾车耗时和距离矩阵数据集(更新至2022年)

数据简介:城市之间距离越远,耗时越长。经济发达地区的交通状况较好。各城市之间的驾车耗时和距离存在差异。有些城市之间的交通非常便捷,而有些城市之间的交通则较为不便。这表明中国的交通网络发展尚不平衡,需进一步优化。特别是…

Excel如何统计非数值内容行数

需要用到sum函数,具体公式如下: SUM(IF(ISNONTEXT(G4:G199),0,1))

Go 语言简介 -- 高效、简洁与现代化编程的完美结合

在现代软件开发领域,选择合适的编程语言对于项目的成功至关重要。Go 语言(又称 Golang )自 2009 年由Google发布以来,以其简洁的语法、高效的并发模型以及强大的性能,迅速成为开发者们的新宠。Go语言不仅融合了传统编译…

icloud照片怎么恢复到相册?2个方法,轻松解决烦恼

在现代生活中,照片承载着我们的回忆和珍贵的时刻,而iCloud提供了便捷的云存储服务,让用户可以方便地备份和同步手机上的照片、视频等文件。 然而,有时候我们可能会不小心删除了在iCloud上的照片,或者想要将iCloud照片…

使用B2M 算法批量将可执行文件转为灰度图像

参考论文 基于二进制文件的 C 语言编译器特征提取及识别 本实验使用 B2M 算法将可执行文件转为灰度图像,可执行文件转为灰度图的流程如图 4-3 所示。将 可执行文件每 8 位读取为一个无符号的的整型常量,一个可执行文件得到一个一维向量, …

基于51单片机多功能太阳能充电器设计

1 绪论1.1 本课题研究背景及现状 当代社会随着一些不可再生资源如煤炭,石油等日益减少,使得各国社会经济越来越受能源问题的约制,因此许多国家开始逐渐的实行“阳光计划”,开发洁净的能源如太阳能,用以成为本国经济发…

ANOVA方差分析是什么?优思学院教你如何正确使用

ANOVA(方差分析)是一种统计方法,用来研究三个或三个以上样本平均数的差异是否显著。它可以帮助研究者判断不同组间的均值是否存在统计学上的显著差异。简单来说,如果我们想比较多个不同处理或条件对某个变量的影响,ANO…

【网络层】网络攻击 ARP 欺骗

文章目录 ARP 欺骗原理实战体验 ARP 欺骗原理 ARP(地址解析协议)欺骗是一种网络攻击技术,它利用了ARP协议的工作机制来欺骗网络中的主机。ARP协议用于将IP地址转换为物理MAC地址,以便在局域网内部进行数据包的传输。ARP欺骗的基本…

微信小程序毕业设计-跑腿系统项目开发实战(附源码+演示视频+LW)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:微信小程序毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计…

可监测的到手价范围

在品牌进行电商价格监测时,对优惠信息范围的关注至关重要。优惠促销的形式多样,会直接影响到消费者最终的到手价。因此,为了更准确地计算到手价,品牌需要确保监测的促销信息尽可能全面。 不同的电商平台,其优惠形式可…