分布式块存储系统Ursa的设计与实现

云硬盘的底层通常是分布式块存储系统,目前开源领域有一些此类项目,如CephRBD、Sheepdog。另外MooseFS和GlusterFS虽然叫做文件系统,但由于其特性与块存储系统接近,也能用于支持云硬盘。我们在测评中发现,这些开源项目均存在一些问题,使得它们都难以直接应用在大规模的生产系统当中。例如CephRBD的效率较低(CPU使用过高);Sheepdog在压力测试中出现了数据丢失的现象;MooseFS的POSIX语义支持、基于FUSE的架构、不完全开源的2.0版本等问题给它自身带来了许多的局限性;GlusterFS与Ceph同属红帽收购的开源存储系统,主要用于scale-out文件存储场景,在云计算领域使用不多。此外,这些存储系统都难以充发挥用万兆网卡和SSD的性能潜力,难以在未来承担重任。

由于以上原因,美团云研发了全新的分布式块存储系统Ursa,通过简单稳固的系统架构、高效的代码实现以及对各种非典型场景的仔细考虑,实现了高可靠、高可用、高性能、低开销、可扩展、易运维、易维护等等目标。Ursa的名字源于DotA中的熊战士,他具有极高的攻击速度、攻击力和生命值,分别隐喻存储系统中的IOPS、吞吐率和稳定性。

Ceph性能测试

注意:由于客户端位于一个存储服务器上,所以有1/4的吞吐率不经过网卡。

测试结果如下:

从测试来看,Ceph的读吞吐率正常,然而写吞吐率不足读的1/3,性能偏低;读写延迟比显著大于网络延迟与磁盘I/O延迟之和;CPU占用率过高。

Sheepdog采用无中心节点的全对称架构,基于一致性哈希实现从ObjectID到存储节点的定位:每个节点划分成多个虚拟节点,虚拟节点和ObjectID一样,采用64位整数唯一标识,每个虚拟节点负责一段包含节点ID在内的ObjectID区间。DataObject副本存在ObjectID对应的虚拟节点,及在后续的几个节点上。Sheepdog无单点故障问题,存储容量和性能均可线性扩展,新增节点通过简单配置即可加入集群,并且Sheepdog自动实现负载均衡,节点故障时可自动发现并进行副本修复,还直接支持QEMU/KVM。

Sheepdog的服务进程既承担数据服务的职责,同时也是客户端(QEMU)访问数据的gateway。QEMU的Sheepdogdriver将对volume的请求转换成为对object的请求,然后通过UNIXdomainsocket或者TCPsocket连接一个Sheepdog服务进程,并将访问请求发给该进程来完成后续步骤。Sheepdog的服务进程还可以开启数据缓存功能,以减少网络I/O。Sheepdog的I/O路径是“client<->gateway<->objectmanager(s)”,读操作可以在任意副本完成,更新操作并行的发往所有副本,当所有副本都更新成功之后,gateway才告诉客户端更新操作成功。

Sheepdog的数据可靠性问题

我们对Sheepdog开展了可靠性、可用性测试。在测试中有共3台服务器,每台配有6个机械硬盘,配置好Sheepdog之后,每台服务器启动10个VM,每个VM内无限循环运行fio分别执行小块随机读、写和大块顺序读、写的测试。

在执行压力测试一周后,对集群中的全部数据进行一致性检测(collieclustercheck),发现有些数据块副本与另外2个不一致(“fixedreplica…”),有些数据块的3个各不相同(“nomajorityof…”):

MooseFS是容错的分布式文件系统,通过FUSE支持标准POSIX文件系统接口。MooseFS的架构类似于GFS,由四个部分组成:

MooseFS基于FUSE提供POSIX语义支持,已有应用可以不经修改直接迁移到MooseFS之上,这给应用带来极大的便利。然而FUSE也带来了一些负面作用,比如POSIX语义对于块存储来说并不需要,FUSE会带来额外开销等等。

HDFS基本可以认为是GFS的一个简化开源实现,二者因此有很多相似之处。首先,GFS和HDFS都采用单一主控机+多台工作机的模式,由一台主控机(Master)存储系统全部元数据,并实现数据的分布、复制、备份决策,主控机还实现了元数据的checkpoint和操作日志记录及回放功能。工作机存储数据,并根据主控机的指令进行数据存储、数据迁移和数据计算等。其次,GFS和HDFS都通过数据分块和复制(多副本,一般是3)来提供更高的可靠性和更高的性能。当其中一个副本不可用时,系统都提供副本自动复制功能。同时,针对数据读多于写的特点,读服务被分配到多个副本所在机器,提供了系统的整体性能。最后,GFS和HDFS都提供了一个树结构的文件系统,实现了类似与Linux下的文件复制、改名、移动、创建、删除操作以及简单的权限管理等。

HLFS(HDFSLog-structuredFileSystem)是一个开源分布式块存储系统,其最大特色是结合了LFS和HDFS。HDFS提供了可靠、随时可扩展的文件服务,而HLFS通过Log-structured技术弥补了HDFS不能随机更新的缺憾。在HLFS中,虚拟磁盘对应一个文件,文件长度能够超过TB级别,客户端支持Linux和Xen,其中Linux基于NBD实现,Xen基于blktap2实现,客户端通过类POSIX接口libHLFS与服务端通讯。HLFS主要特性包括多副本、动态扩容、故障透明处理和快照。

HLFS性能较低。首先,非原地更新必然导致数据块在物理上非连续存放,因此读I/O比较随机,顺序读性能下降。其次,虽然从单个文件角度看来,写I/O是顺序的,但是在HDFS的ChunkServer服务了多个HLFS文件,因此从它的角度来看,I/O仍然是随机的。第三,写延迟问题,HDFS面向大文件设计,小文件写延时不够优化。第四,垃圾回收的影响,垃圾回收需要读取和写入大量数据,对正常写操作造成较大影响。此外,按照目前实现,相同段上的垃圾回收和读写请求不能并发,垃圾回收算法对正常操作的干扰较大。

iSCSI、FCoE、AoE、NBD等都是用来支持通过网络访问块设备的协议,它们都采用C/S架构,无法直接支持分布式块存储系统。

分布式块存储系统给虚拟机提供的是虚拟硬盘服务,因而有如下设计目标:

除了上述源于虚拟硬盘的直接需求意外,分布式块存储还需要支持下列功能:

分布式存储系统总体架构可以分为有master(元数据服务器)和无master两大类。有master架构在技术上较为简单清晰,但存在单点失效以及潜在的性能瓶颈问题;无master架构可以消除单点失效和性能瓶颈问题,然而在技术上却较为复杂,并且在数据布局方面具有较多局限性。块存储系统对master的压力不大,同时master的单点故障问题可采用一些现有成熟技术解决,因而美团EBS的总体架构使用有master的类型。这一架构与GFS、HDFS、MooseFS等系统的架构属于同一类型。

在元数据中,关于volume的信息非常重要,必须持久化保存;关于chunk的信息和ChunkServer的信息是时变的,并且是由ChunkServer上报的,因而没必要持久化保存。根据这样的分析,我们将关于volume的信息保存在MySQL当中,其他元数据保存在Redis当中,余下的集群管理功能由Manager完成。Master==Manager+MySQL+Redis,其中MySQL使用双机主从配置,Redis使用官方提供的标准cluster功能。

C、A、P分别代表Consistency、Availability和Partition-tolerance。分布式系统很难同时在这三个方面做到很高的保障,通常要在仔细分析应用需求的基础之上对CAP做出取舍。

块存储系统主要用于提供云硬盘服务,每块云硬盘通常只会挂载到1台VM之上,不存在多机器并发读写的情况,因而其典型应用场景对一致性的需求较低。针对这一特性,我们可以在设计上舍C而取AP。

对于多机并行访问云硬盘的使用模式,若数据是只读的则无需额外处理;若数据有写有读,甚至是多写多读,则需要在上层引入分布式锁,来确保数据一致性和完整性。这种使用模式在SAN领域并不少见,其典型应用场景是多机同时挂载一个网络硬盘,并通过集群文件系统(而不是常见的单机文件系统)来协调访问存储空间。集群文件系统内部会使用分布式锁来确保数据操作的正确性,所以我们舍C的设计决策不会影响多机并行访问的使用模式。

并发(不是并行!)模型的选择和设计无法作为实现细节隐藏在局部,它会影响到程序代码的各个部分,从底层到上层。基本的并发模型只有这样几种:事件驱动、多线程、多进程以及较为小众的多协程。

事件驱动模型是一种更接近硬件工作模式的并发模型,具有更高的执行效率,是高性能网络服务的普遍选择。为能充分发挥万兆网络和SSD的性能潜力,我们必须利用多核心并行服务,因而需要选用多线程或者多进程模型。由于多进程模型更加简单,进程天然是故障传播的屏障,这两方面都十分有利于提高软件的健壮性;并且我们也很容易对业务进行横向拆分,做到互相没有依赖,也不需要交互,所以我们选择了多进程模型,与事件驱动一起构成混合模型。

协程在现实中的应用并不多,很多语言/开发生态甚至不支持协程,然而协程在一些特定领域其实具有更好的适用性。比如,QEMU/KVM在磁盘I/O方面的并发执行完全是由协程负责的,即便某些blockdriver只提供了事件驱动的接口(如CephRBD),QEMU/KVM也会自动把它们转化封装成多协程模式。实践表明,在并发I/O领域,多协程模型可以同时在性能和易用性方面取得非常好的效果,所以我们做了跟QEMU/KVM类似的选择——在底层将事件驱动模型转换成了多协程模型,最终形成了“多进程+多协程+事件驱动”的混合并发模型。

如图所示,Ursa中的存储结构与GFS/HDFS相似,存储卷由64MB(可配置)大小的chunk组成。Ursa系统中的数据复制、故障检测与修复均在chunk层次进行。系统中,每3个(可配置)chunk组成一组,互为备份。每2个chunk组构成一个stripe组,实现条带化交错读写,提高单客户端顺序读写性能。Ursa在I/O栈上层添加Cache模块,可将最常用的数据缓存在客户端本地的SSD介质当中,当访问命中缓存时可大大提高性能。

最常见的写入策略有两种:(1)客户端直接写多个副本到各个ChunkServer,如图(a)所示,Sheepdog采用此种办法;(2)客户端写第一个副本,并将写请求依次传递下去,如图(b)所示。这两种方法各有利弊:前者通常具有较小的写入延迟,但吞吐率最高只能达到网络带宽的1/3;后者的吞吐率可以达到100%网络带宽,却具有较高的写入延迟。

由于Ursa可能用于支持各种类型的应用,必须同时面向吞吐率和带宽进行优化,所以我们设计采用了一种分叉式的写入策略:如图?所示,客户端使用WRITE_REPLICATE请求求将数据写到第一个副本,称为primary,然后由primary负责将数据分别写到其他副本。这样Ursa可以在吞吐率和延迟两方面取得较好的均衡。为确保数据可靠性,写操作会等所有副本的写操作都完成之后才能返回。

ChunkServer内部几乎不保存状态,通常情况下各个请求之间是完全独立执行的,并且重启ChunkServer不会影响后续请求的执行。这样的ChunkServer不但具有更高的鲁棒性,而且具有更高的扩展性。许多其他网络服务、协议的设计都遵循了无状态的原则。

如下图所示,Ursa中的I/O功能模块的组织采用decorator模式,即所有模块都实现了IStore抽象接口,其中负责直接与ChunkServer通信的模块属于decorator模式中的concretecomponent,其余模块均为concretedecorator。所有的decorator都保存数量不等的指向其他模块的指针(IStore指针)。

在运行时,Ursa的I/O栈层次结构的对象图如下所示。

如下图所示,测试环境由万兆以太网、1台Client和3台ChunkServer组成,chunk文件存在tmpfs上,即所有写操作不落盘,写到内存为止。选择tmpfs主要是为了避免硬盘的I/O速度的局限性,以便测试Ursa在极限情况下的表现。

测试环境的网络延迟如下:

在上述环境中,用fio分别测试了读写操作的吞吐率、IOPS以及I/O延迟,测试参数与结果如下:

从测试结果可以看出:

作为对比,我们在测试Ceph的过程中监测到服务端CPU占用情况如下:

此时机器上5个存储服务进程ceph-osd共占用123.7%的CPU资源,提供了4101的读IOPS服务;而Ursa的服务进程只消耗了43%的CPU资源,提供了61340读IOPS服务,运行效率比Ceph高43倍。在客户端方面,Ceph消耗了500%+的CPU资源,得到了16407读IOPS;而Ursa只消耗了96%的CPU资源,得到了61340读IOPS,运行效率比Ceph高21倍。

THE END
1.设计一个系统怎么设计设计一个系统需要全面考虑需求、计划、技术架构、功能设计、开发与测试、部署与维护等多个环节。通过明确需求、制定计划、选择合适的技术架构、设计系统功能、开发与测试、部署与维护等步骤,可以创建一个满足用户需求、稳定可靠、易于维护的系统。在后续使用中,还需持续收集用户反馈,进行优化改进,确保系统的长期稳定运行。https://aiqicha.baidu.com/qifuknowledge/detail?id=10153302324
2.学生管理系统设计与实现学生管理系统设计与实现 摘要 学生信息管理系统是在信息化的时代中应运产生的典型的信息管理系统(MIS),其开发的目的主要是解决学校的规模不断扩大,信息量不断增多,仅靠传统的信息管理已经满足不了需求,面对如此多的信息量,开发学生信息管理系统来提高学生管理工作的效率就成为必然。通过开发一个系统可以做到信息的规范https://blog.csdn.net/qq_61141142/article/details/133692043
3.操作系统设计与实现(豆瓣)大学计算机教育国外著名教材系列(影印版)(共42册), 这套丛书还有 《UNIX网络编程卷2》《计算复杂性》《自动机理论语言和计算导论(第2版影印版)》《数据结构》《分布式系统原理与范型》 等。 喜欢读"操作系统设计与实现"的人也喜欢的电子书· ··· 支持Webhttps://book.douban.com/subject/3108799/
4.基于TS201的多DSP系统设计与实处理器/DSP基于TS201的多DSP系统设计与实现 0 引言 随着软件无线电技术的发展,以及大宽带高分辨率多路信号和多种信号处理方式的采用,信号处理中的运算量与数据吞吐量急剧上升,于是,越来越多的系统采取多DSP的并行处理方式来满足实时处理的性能要求。并行处理系统通常由多个处理单元组成,并通过一定的方法将一个任务分成若干个子https://www.elecfans.com/emb/dsp/20110107228686.html
5.操作系统设计与实现pdf下载操作系统设计与实现第三版p软件介绍软件截图相关文章网友评论下载地址 小编为您推荐:操作系统设计与实现操作系统操作系统设计与实现第三版pdf高清版是计算机科学届非常有名的教材,在这里用户可以通过这本辅导教材,学习详细的操作系统基础知识,以及作者对于操作系统的不同见解,计算机专业的学生必备教材,欢迎有需要的用户来IT猫扑下载! 作者介绍 Andrewhttps://www.itmop.com/downinfo/340861.html
6.机器学习系统:设计和实现—机器学习系统:设计和实现1.0.0附录:机器学习介绍 《机器学习系统:设计和实现》 做世界上第一本全面讲述机器学习系统知识的开源书籍 核心作者 麦络 爱丁堡大学 董豪 北京大学、鹏城实验室 金雪锋 MindSpore架构师 干志良 MindSpore架构师 章节作者 赖铖 鹏城实验室 韩佳容 鹏城实验室 符尧 https://openmlsys.github.io/
7.ERP系统与自动化仓库系统的接口设计与实现ERP管理信息化文章本文主要以榆神能源公司ERP系统与该公司物资总库自动化仓库系统的对接为例,通过业务分析研究了基于Web Service技术的ERP系统与自动化仓库系统接口设计。 1 引言 物资管理工作质量的高低成为决定企业管理工作质量高低的重要标准。榆神能源公司在集团统建的ERP系统过程中实施了具有公司特点的仓库手持终端作业系统,实现了所有https://articles.e-works.net.cn/erp/article148688.htm
8.C++设计与实现ORM系统虽然脱离了数据库的具体操作,但我们要建立各种模型文档,用代码去写表之间的关系等等操作,让初学者一时如坠云雾。我的想法是,将关系数据库拥有的完善设计工具之优势,来实现数据设计以提供结构信息,让json对象自动映射成为标准的SQL查询语句。只要我们理解了标准的SQL语言,我们就能够完成数据库查询操作。https://www.jianshu.com/p/8c4fb8798326
9.基于Web的新闻发布系统的设计和实现.pptx基于Web的新闻发布系统的设计和实现 01一系统需求分析三系统实现参考内容二系统设计四总结目录03050204内容摘要随着网络技术的不断发展,新闻媒体不再仅限于传统的电视媒体,网络已成为一个重要的新闻媒介。为了适应这一变化,许多新闻机构开始https://www.renrendoc.com/paper/319896346.html
10.操作系统设计与实现(第3版上册)中文PDF版49MB电子书下载《操作系统设计与实现(上册 第三版)》是操作系统领域的教材之一。全书详细介绍了操作系统的基本原理,包括进程、进程间通信、信号量、管程、消息传递、调度算法、输入/输出、死锁、设备驱动程序、存储管理、调页算法、文件系统设计、安全和保护机制等,并深入讨论了MINIX 3操作系统。这种安排不仅可让读者了解操作系统的基https://www.jb51.net/books/483820.html
11.5G系统终端物理层控制的设计与实现AET摘要: 随着5G系统终端物理层处理任务的增加,物理层与高层和底层的交互也大量增加,在原语触发任务的机制下,交互原语混乱导致任务冲突的情况也愈发严重。为了提高交互效率,增强系统的鲁棒性,按照终端开机流程将物理层分为了空态、小区选择态、空闲态、随机接入态和连接态,并设计各状态下物理层任务,通过物理层控制实现对http://www.chinaaet.com/article/3000100497
12.伴鱼分布式调度系统Jarvis的设计与实现AI&大模型伴鱼分布式调度系统 Jarvis 的设计与实现 背景 随着伴鱼课程业务需求和用户量的快速增长,涉及到实时和延时任务的场景也越来越多。例如课程录制、课程视频转码、课程视频上传以及相关的课程视频分析、老师学生行为分析、语音识别、情绪识别等算法离线预测任务等。这些任务都需要大量的计算、存储、网络等资源,而且不同的场景https://www.infoq.cn/article/CID3wvoX8XWJOoLxIQu0
13.数据库系统设计实现与管理(第6版).pdf内容提供方:max 大小:856.85 KB 字数:约小于1千字 发布时间:2018-09-27发布于陕西 浏览人气:835 下载次数:仅上传者可见 收藏次数:0 需要金币:*** 金币(10金币=人民币1元) 数据库系统设计、实现与管理(第6版).pdf 关闭预览 想预览更多内容,点击免费在线预览全文 https://max.book118.com/html/2018/0925/7025125153001150.shtm
14.RBAC权限系统分析设计与实现腾讯云开发者社区转载请备注来源:《RBAC权限系统分析、设计与实现》 | shuwoom.com 最近,因为项目上需要设计实现一个权限管理模块,所以专门整理总结了RBAC的一些知识。 目前,使用最普遍的权限管理模型正是RBAC(Role-Based Access Control)模型,这篇文章也主要是介绍基于RBAC的权限管理系统,我会从RBAC是什么、如何设计RBAC两部分来介绍https://cloud.tencent.com/developer/article/1802329
15.2022届电计系通信工程专业优秀毕业设计作品新闻资讯一、本届毕业设计概况 2022届通信工程专业毕业设计情况整体良好,2022届通信工程专业有46位同学顺利通过了毕业答辩,个别同学由于准备不充分,未通过毕业设计答辩环节,将延迟毕业。同学们的毕业设计作品主要集中在: 1、某一系统的设计与实现,有几位同学做出了实物; https://dxx.cdutetc.cn/c/8b47d966-022c-4a4e-9fa6-5ef3b8e7f20d.html
16.毕业论文:面向超市的网络订货系统5.4系统用户信息管理 185.5顾客信息管理 215.6顾客商品订购管理 215.7修改密码 23第六章 系统测试 246.1概念和意义 246.2 特性 246.3重要性 256.4 本系统测试描述 256.5系统测试效果 25第七章 总结 277.1本文的研究结论及展望 277.2研究的不足及发展意见 277.3在系统设计与实现过程中的收获及后续的改进 28致谢https://www.wm114.cn/wen/153/305019.html
17.网络信息安全系统的设计和实现网络信息安全与保密系统的设计和实现可以分为安全体制、网络安全连接和网络安全传输三部分。 安全体制包括:安全算法库、安全信息库和用户接口界面。 安全算法库包括:私钥算法库、公钥算法库、Hash函数库、密钥生成程序、随机数生成程序等等安全处理算法等; 安全信息库包括:用户口令和密钥、安全管理参数及权限、系统当前运行http://bmj.qingdao.gov.cn/bmkj_85/202202/t20220222_4408709.shtml
18.数据库系统:设计实现与管理(进阶篇)(原书第6版)——[美]Thomas相关图书 数据库系统:设计、实现与管理(基础篇)(原书第6版) ¥ 129.0 图书详情 装订:平装 编辑:朱劼 开本:16 出版日期: 2017-12-12 字数:500 千字 最新版印次:1-2 最新印次时间:2023-03-13 定价:129.0 cip:2017267187 图书简介 本书是数据库领域的经典畅销著作,被世界多所大学选为教材,同时被广大http://m.cmpedu.com/books/book/2065046.htm
19.计算机毕业设计报告(精选11篇)本报告旨在详细阐述计算机专业毕业设计的整个过程,包括选题背景、设计目标、系统架构、实现过程、测试与评估以及总结与展望。通过本次毕业设计,我们旨在将所学的计算机专业知识与实际应用相结合,提升解决实际问题的能力,为未来的工作和学习打下坚实的基础。 二、选题背景 https://www.unjs.com/fanwenku/68300.html
20.2020届计算机科学方向毕业设计(论文)阶段性汇报个性化聊天对话系统第二次汇报 第二阶段工作汇报,主要涉及模型改进工作的实验以及下一步计划方案。 刘天怡 高效全同态加密算法库中期汇报 本次汇报,主要介绍介绍算法的设计,代码的实现情况以及下一步的工作。 朱立臻 基于对抗学习的多模态情绪识别时序样本生成第二阶段汇报 https://zhiyuan.sjtu.edu.cn/html/zhiyuan/announcement_view.php?id=3709
21.3.3系统设计的优化与实现(教学设计)第1课时凤凰数字教参·高中通用技术配套教学软件(必修 技术与设计2)任务一 优化系统设计的方案浙江省桐乡市凤鸣高级中学 唐华一、教学内容本节课是一节在设计基础之上的延伸设计课,旨在设计中发现问题,解决问题,并优化方案。在设计过程中,体会优化在系统设计中的意义,把握好系统优化的因素,比如材料、工艺、原理等。同时,系统https://www.zxxk.com/soft/37817358.html
22.税务信息系统网络架构及安全方案的设计与实现税务信息系统网络架构及安全方案的设计与实现,税务系统,网络,大集中,OSPF(路由协议),网络安全。现如今,随着信息技术的迅猛发展和广泛应用,现代信息技术和网络技术已经成为推动各单位提高管理水平和赢得发展先机的动力。伴随https://wap.cnki.net/lunwen-1011171573.html