Octopus+: An RDMA-Enabled Distributed Persistent Memory File System——泛读笔记

TOS 2021 Paper 分布式元数据论文阅读笔记整理

问题

非易失性存储器(NVM)和远程直接存储器访问(RDMA)在存储和网络硬件中提供了极高的性能。然而,现有的分布式文件系统隔离了文件系统和网络层,而且分层的软件设计使得高速硬件没有得到充分利用。

现有方法局限性

现有分布式文件系统(DFS)主要是通过支持RDMA的库取代通信模块。

  • CephFS通过使用基于RDMA的异步RPC中间件Accelio[1]来支持RDMA。

  • GlusterFS实现了自己的用于数据通信的RDMA库[16]。

  • NVFS[21]是针对NVM和RDMA进行优化的HDFS变体。

  • BM最近推出的DFS Crail[7]构建在RDMA优化的RPC库DaRPC[51]上。

这些文件系统严格隔离文件系统和网络层,只更换其数据管理和通信模块,而不重构内部文件系统机制。导致GlusterFS的软件延迟在NVM和RDMA上占近100%,而在磁盘上仅占2%。同时它只实现了24%的原始NVM带宽和11%的原始InfiniBand带宽,而原始磁盘带宽和GigaE带宽分别为76%和74%。总之,文件系统和网络层之间的严格隔离使DFS过于沉重,无法利用新兴高速硬件的优势。

本文方法

本文提出了支持RDMA的分布式持久存储器文件系统Octopus+,通过紧耦合非易失性存储器和RDMA特性来重新设计文件系统的内部机制。

  • 对于数据操作,直接访问共享的持久内存池,以减少内存复制开销。并主动提取和推送客户端中的所有数据,以重新平衡服务器和网络之间的负载。

  • 对于元数据操作,引入了自识别的远程过程调用,该RPC将发送方的标识符与用于低延迟通知的RDMA写入原语一起携带,可在文件系统和网络之间立即发出通知。通过结合RDMA写入和原子原语,实现高效的分布式事务机制,以实现一致性。

  • 启用复制功能,以提供更好的可用性。元数据和数据通过不同的协议复制到多个物理服务器,针对小型元数据的基于操作日志的复制方法,针对文件数据的客户端主动复制机制。

在服务器端,所有目录都保存在指定的目录元数据服务器(DMS)中,文件以基于哈希的方式(表示为数据服务器)分发到所有常规服务器[34]。整个NVM区域可以分别简单地划分为数据区域和元数据区域。数据区域被导出并在整个集群之间共享,用于远程直接数据访问,而元数据区域出于一致性原因保持私有。

对Intel Optane DC持久内存模块的评估表明,Octopus+实现了几乎与大I/O相同的原始带宽,并且性能比现有的分布式文件系统好几个数量级。

实验

实验环境:每台服务器配备192 GB DRAM,两个2.60-GHz Intel Xeon Gold 6240M处理器(每个处理器36核),六个256-GB Intel Optane DCPMM(每个NUMA节点上有三个模块),运行Ubuntu18.04和Linux内核4.15。为避免跨NUMA对性能影响,只在一个NUMA节点上实验(即,每个服务器上只有768-GB NVM)。每个客户端服务器都有128 GB的DRAM,两个Intel Xeon E5-2650 v4处理器,运行带有Linux内核3.10的CentOS-7。所有服务器和客户端都配备了MCX555A-ECAT ConnectX5 EDR HCA(支持100 Gbps over InfiniBand和100 GigE),并与Mellanox MSB7790-ES2F交换机连接。

NVM设备具有不对称的读/写带宽[22]:写入带宽为6.7 GB/s,读取带宽为20 GB/s。NIC具有对称的读/写性能:读取和写入均为12 GB/s。因此,评估环境存在带宽不匹配:对于写入,NVM是瓶颈,而对于读取,网络则成为瓶颈。

数据集:mdtest,fio,filebench:Varmail, Fileserver, Webproxy, Webserver

实验对比:延迟,带宽,吞吐量

实验参数:服务器数量,客户端数量,不同元数据操作,读写操作,I/O大小,线程数

总结

针对使用NVM和RDMA的分布式文件系统,现有方法将文件系统和硬件隔离,难以充分发挥性能。本文提出Octopus+,通过紧耦合非易失性存储器和RDMA特性来重新设计文件系统的内部机制。(1)数据操作,直接访问共享的持久内存池,以减少内存复制开销。并主动提取和推送客户端中的所有数据,以重新平衡服务器和网络的负载。(2)元数据操作,引入了自识别的远程过程调用,可在文件系统和网络之间立即发出通知。结合RDMA写入和原子原语,实现高效的分布式事务机制,以实现一致性。(3)启用复制功能,基于操作日志复制小型元数据,采用客户端主动复制文件数据,以提供更好的可用性。

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

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

相关文章

Python 编程必备技能:解包。简化代码,提高效率

在 Python 中,解包(Unpacking)是指将一个序列(列表、元组等)或字典中的元素解开,分别赋值给多个变量的过程。解包可以方便地将序列或字典中的元素分别取出来,用于后续的处理和操作。 在 Python…

Nextjs学习入门 - 创建第一个项目

1 通过npx创建一个nextjs项目 通过命令创建: npx create-next-applatest 得到如下项目结构图: my-app- src //源代码目录- app //引用目录- favicon.ico //网站图标- globals.css //全局css- layout.tsx //布局文件- page.tsx //页面 路径"…

AntD上传文件 结合Axios 服务端由Spring MVC接收

以下将演示:如何使用AntD的上传组件,结合axios工具,向Spring MVC服务端上传文件。 前端发送 基于AntD的上传组件,采用手工上传模式;上传的同时,附加了一个category参数; const [category, setC…

Scikit-Learn 支持向量机分类

Scikit-Learn 支持向量机分类 1、支持向量机(SVM)1.1、SVM概述1.2、SVM原理1.3、SVM的损失函数 1、支持向量机(SVM) 1.1、SVM概述 在机器学习中,支持向量机(Support Vector Machine,SVM&#x…

华为服务Fellow、首席项目管理专家,华为H5M项目管理标准制定主导者孙虎受邀为PMO大会演讲嘉宾

全国PMO专业人士年度盛会 华为服务Fellow、首席项目管理专家,华为H5M项目管理标准制定主导者孙虎先生受邀为PMO评论主办的2024第十三届中国PMO大会演讲嘉宾,演讲议题为“落地项目管理标准,打赢班长的战争”。大会将于5月25-26日在北京举办&am…

国民经济行业导入数据库码表

目录 1、先去下载word文档图片如下 2、粘贴到excel中形成insert 语句 3、创建临时表存excel中数据 4、创建码表保存信息 5、编写存储过程放入表中 5.1存储第四级码值及父机构 5.2存储第三级码值及父机构 5.3存储第二级码值及父机构 5.4存储第一级码值 6、导入成功查看…

react 使用WEB3.0控件开发包 V3.0接入海康威视摄像头

1、下载官方安装包: 2、安装官方插件 3、引入文件 在public/index 中引入监控依赖,这三个文件可以在下载的官方demo中找到 4、react 中使用 useEffect(() > { const ipInfo :[192.168.xxxx];//初始化摄像头const WebVideoCtrl window.WebVideoCtrl…

Linux下kafka单机版搭建

1.zookeeper的安装 这里使用3.6.4版本 前提:服务器已经安装了jdk,zookeeper运行需要jdk环境 1.1创建放zookeeper的目录 #创建目录 mkdir -p /usr/local/zookeeper#赋予权限 chmod 777 /usr/local/zookeeper1.2安装包的下载 #这里推荐去官网下载 https:…

泛型的初步认识(1)

前言~🥳🎉🎉🎉 hellohello~,大家好💕💕,这里是E绵绵呀✋✋ ,如果觉得这篇文章还不错的话还请点赞❤️❤️收藏💞 💞 关注💥&#x…

K8S面试题学习

参考K8S面试题(史上最全 持续更新)_kubernetes常见面试题-CSDN博客做的个人总结,规划是每天看10题,thx! 1.K8S是什么? 容器编排工具,主要用来管理容器化的一个应用,可以管理容器全…

Java 算法篇-深入了解 BF 与 KMP 算法

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 BF 算法概述 1.1 BF 算法实际使用 2.0 KMP 算法概述 2.1 KMP 算法实际使用 2.2 相比于 BF 算法实现,KMP 算法的重要思想 2.3 为什么要这样设计&#x…

listpack

目录 为什么有listpack? listpack结构 listpack的节点entry 长度length encoding编码方式 listpack的API 1.创建listpack 2.遍历操作 正向遍历 反向遍历 3.查找元素 4.插入/替换/删除元素 总结 为什么有listpack? ziplist是存储在连续内存空间,节省…

华为云服务镜像手动更换

操作步骤: 1、进入华为云首页点击云容器引擎CCE; 2、选择你所要更换镜像的环境【这里以dev环境演示】; 3、点击dev环境后选择顶部的命名空间,点击【工作负载】中右侧栏的【升级】按钮; 4、点【更换镜像】选择你在test…

华为OD-C卷-测试用例执行计划[100分]Python3-100%

题目描述 某个产品当前迭代周期内有 N 个特性(F1,F2,......FN)需要进行覆盖测试,每个特性都被评估了对应的优先级,特性使用其 ID 作为下标进行标识。 设计了 M 个测试用例(T1,T2,......,TM),每个测试用例对应一个覆盖特性的集合,测试用例使用其 ID 作为下标进行标识,…

C++之类和对象三

目录 拷贝构造函数 定义铺垫 浅拷贝 深拷贝 总结 拷贝构造函数 那在创建对象时,可否创建一个与一个对象一某一样的新对象呢? 定义铺垫 构造函数:只有单个形参,该形参是对本类类型对象的引用(一般常用const修饰)&#xff0c…

第十五届蓝桥杯大赛软件赛省赛(Java 大学B组)

蓝桥杯 2024年省赛真题 Java 大学B组 试题 A: 报数游戏试题 B: 类斐波那契循环数试题 C: 分布式队列 在找工作,随便写写,安定下来再把去年国赛题解补上 试题 A: 报数游戏 本题总分: 5 5 5 分 【问题描述】 小蓝和朋友们在玩一个报数游戏。由…

顺丰同城急送API对接(附源码)

一、背景 最近公司让我对接顺丰同城急送的API,讲讲里面需要注意的几点 官方的API文档有些示例代码也不全,具体细节不多说,如果你现在也需要对接他们API,可以参考本篇博客再配合官方文档结合起来看,可以让您再开发的时…

期权小知识科普

期权的交易时间 上交所期权合约的交易时间为每个交易日9:15至9:25、9:30至11:30、13:00至15:00。 其中,9:15至9:25为开盘集合竞价时间,14:57-15:00为收盘集合竞价时间,其余时段为连续竞价时间,交易所规则另有规定的除…

Pytorch-自动微分模块

🥇接下来我们进入到Pytorch的自动微分模块torch.autograd~ 自动微分模块是PyTorch中用于实现张量自动求导的模块。PyTorch通过torch.autograd模块提供了自动微分的功能,这对于深度学习和优化问题至关重要,因为它可以自动计算梯度&#xff0c…

VUE-列表

VUE-列表 列表功能 如下例子 列表展示 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equiv&qu…