美团存储云原生探索和实践|当前资讯 - 行业动态 -

当前位置:首页  >  行业动态  > 正文

美团存储云原生探索和实践|当前资讯

美团存储云原生探索和实践|当前资讯
2023-05-12 19:38:10 来源:IT168

本文根据杨立明老师在【第十三届中国数据库技术大会(DTCC2022)】线上演讲内容整理而成。


(资料图片)

本文摘要 : 存储计算分离架构是云原生技术在业务落地的底层重要支撑技术之一,本次分享将介绍美团基础技术部存储团队在存储计算分离架构上的一些探索,重点是介绍美团的分布式存储底座MStore的技术架构,以及基于MStore建设其他PaaS组件和业务系统的一些思考和实践,帮助业务系统实现存储计算分离架构的落地,提升整体系统的扩展能力。

一、云原生简述

云原生技术使组织能够在新式动态环境(如公有云、私有云和混合云)中构建和运行可缩放的应用程序。容器、服务网格、微服务、不可变基础结构和声明性API便是此方法的范例。

这些技术实现了可复原、可管理且可观察的松散耦合系统。它们与强大的自动化相结合,使工程师能够在尽量减少工作量的情况下,以可预测的方式频繁地进行具有重大影响力的更改。——“云原生计算基金会”

总结来说,云原生技术具有敏捷性、灵活性、可靠性、可伸缩等特点,为企业提供了巨大的生产力,这也是公司近几年基础架构的迭代方向。

二、存储计算分离与云原生

当前,美团基础架构为存算一体架构,存储系统正面临如下问题:

存储扩展能力弱 :在计算资源达到瓶颈需要扩容时,仍然需要迁移数据,迁移数据的时间跟数据量线性相关,所以,对于数据量较大的业务,扩容操作时间会很长。

机器成本高 :存储计算资源耦合在一起,如果集群因为CPU计算能力达到瓶颈,我们就需要扩容,而往往这时节点的硬盘空间还很空闲。反之亦然,存储和计算资源经常会有一方存在机器资源浪费。

重复研发和运维成本高 :这些存储组件基本上要考虑副本冗余、副本数据一致性、数据正确性校验,副本缺失补副本,扩容缩容等问题,因此存在着重复研发和运维问题。

不能很好的满足业务多样化需求 :比如我们现在需要提供一个分布式文件系统服务,基本上我们需要从零开始研发,研发进度会很慢,不能很好的满足业务的需要。

以上这些问题阻碍了公司云原生的建设,因此,我们设计并建设了存储与计算分离的系统,来更好的满足云原生的迭代。

三、存算分离架构的优势和挑战

优势:

扩展能力强 :上层存储服务模块实现无状态化设计,可实现秒级扩缩容,无需数据迁移。

产品快速迭代 :基于底座,可以最大程度复用其通用存储能力,来适应业务需求,快速开发出新的存储产品

降本增效 :存储计算分离,避免了集群的存储、计算资源错配造成的资源浪费。统一底座服务使得上层存储无需重复研发数据分布、副本、容灾等机制,大幅降低研发成本。

挑战:

稳定性 :作为其他存储底层的底座存储,一旦出现稳定性问题,将会影响其他所有存储服务,进而影响到上层业务。

性能 :分层架构后,相对于存算一体的服务,增加了一跳的网络延迟。存储底座的吞吐很大程度上也决定了上层存储服务的吞吐。

四、Mstore总体介绍

针对上述优势和挑战,最终我们采用了分布式存储底座MStore的技术架构。MStore设计目标是为各种存储服务抽象出公共底座,提供似Posix的简单文件接口,对接块存储系统、文件存储系统、对象存储、表格存储、数据库、大数据等业务。

五、Mstore整体架构

MStore存储系统有4个子系统 :RootServer、MetaServer、ChunkServer、SDK。

RootServer :集群的入口,管理着整个集群中资源信息,包括MetaServer、ChunkServer、磁盘等信息。

MetaServer :管理着用户数据的元信息,包括Blob、Blob由哪些Chunk构成,Chunk和ChunkServer的映射关系等。MetaServer在集群中可以有多组,使得元信息管理能水平扩展。

ChunkServer :用户数据存储服务,对用户数据的序列化存储、校验。接受用户读写请求,接受MetaServer数据复制、负载均衡等请求。

SDK :提供给用户的Library,用户可以通过链接这个Library访问MStore的存储服务,类文件系统API。

六、Mstore的Blob

Blob是Mstore提供给用户使用的对象,类似于文件。Blob是由多个Chunk组成,以便将Blob做分布式存储,Chunk的大小默认为64M。

为了满足不用的应用场景,目前我们提供两种类型的Blob,LogBlob用于支持追加写、ExtentBlob用于支持随机写。系统通常是将数据写到LogBlob,然后后台回刷到ExtentBlob。

七、Mstore元数据

元数据主要分为两类:资源信息和用户数据。RootServer管理所有的硬件资源,整个集群只有一组。MetaServer管理用户数据,可以有多组,可以水平扩展。元数据节点通过Raft机制保证数据的可靠性、高可用。

八、Mstore资源管理

集群资源由RootServer(RS)统一管理,RS是资源增删和分配的入口。主要的资源信息包括:MetaServer组信息、ChunkServer信息、磁盘信息、PhysicalPool信息、LogicalPool信息。

九、Mstore资源控制

PhysicalPool是物理磁盘的集合,一个集群可以包含多个物理Pool,一般一个Pool中的资源规格是一样的。

LogicalPool是对物理资源上的逻辑划分,一个物理Pool中可以创建多个逻辑Pool。

LogicalPool概念是暴露给用户的,用户可以根据自己的需要对业务做逻辑Pool的划分。

LogicalPool为单位定义QoS,包括服务能力的上限、下限、权重等。

十、Mstore用户数据

用户数据,需要MetaServer决定放置在哪块盘上,放置策略需要考虑的因素主要有:保证一个rack只能有一个副本,写本地一份,远程多份的需求,机器和磁盘容量大小,同城多机房的需求。

十一、Mstore星型写

控制流方向,SDK不会频繁和RootServer和MetaServer交互,只有在申请新Chunk是才去交互。

数据流方向,SDK采用并发同步写三副本的方式,保证数据强一致,架构上更简单,相比Raft等共识协议减少了网络一跳,降低延迟。

星型写不支持多点,上层服务需要控制对其数据的多点读写请求。

快速切换技术,在星型写三副本失败时,不需要马上修复数据,通过快速重定向到新的三副本使得故障瞬间恢复。

十二、Mstore一次IO技术

为了减少对磁盘的IO占用,我们对写请求做了合并,让多用户请求转换成一次磁盘请求。

对磁盘存储格式的优化设计,使得每次磁盘请求只产生一次IO,这是性能优于Ceph的原因。

用户请求边界保存在存储格式的Header结构中,使得异常恢复时能区分请求的边界,实现写请求的原子性。

此外存储格式的Header中还保存了数据的CRC信息,保证数据的正确性。

十三、Mstore——存储格式Header

存储格式Header包含以下字段:

1.prev_size前一个请求的size

2.curr_size当前请求的size

3.prev_crc前一个请求的checksum

4.curr_crc当前请求的checksum

5.flags一些标识位

6.self_cksumHeader本身的checksum

十四、Mstore数据版本

Mstore存储的用户数据是有版本的,根据数据的版本可以实现:版本号递增,写请求通过版本保证请求的连续性;读取数据带上版本号,保证读取的副本是新的;数据巡检服务根据数据版本保证合法的副本。

十五、Mstore数据读写规则

Blob只能单点写,通过租约机制做互斥。

Blob支持多点读,由用户负责同步多个节点的版本。

十六、Mstore可观测性

Mstore系统已经拥有完善的监控、告警体系。为了让系统能够以更加白盒的方式在线上运营,我们实现了Trace能力,目的是能观测Mstore系统以及其依赖的系统的每次请求各个阶段的执行情况。这也有利于后续我们对系统性能做优化。Trace已经可以对接美团的Mtrace平台。

十七、Mstore的Run To Complete线程模型

为了最大化降低延迟,我们采用了Run To Complete(RTC)线程模型,即:一个请求在生存周期内都由一个线程处理。以下为ChunkServer的整体结构。

为了增加系统并发度,RTC模型仍然是多线程的。不需要互斥的请求(Req1),在本线程执行完毕。

需要互斥的请求(Req2、Req3、Req4),这些请求由第一个请求所在线程处理。程序保持简单,模块从上到下以同步的方式调用。

利用C++的RAII技术,在请求析构过程回调执行链表下一个请求,将异步动作收敛在一处。

十八、Mstore的裸盘系统

经过我们对ChunkServer的性能测试,发现软件栈中大部分的耗时来自文件系统操作磁盘,其次是网络IO。下图是我们使用Trace系统得到的延迟信息。

基于以上结论,我们研发了用户态文件系统(裸盘系统),它设计成针对Blob特点的磁盘管理方式,简单、高效。我们在裸盘系统下抽象出BlockDevice层,使其能适配不同的设备,如SPDK、IOuring等。目前我们使用SPDK作为磁盘驱动,实现ChunkServer全栈用户态。

裸盘系统的元数据包括,SuperBlock区、BlockTable区、ChunkTable区,Padding区是预留的未使用空间,剩下的是数据区。

SuperBlock区:裸盘系统的整体信息,磁盘号、是否格式化、Block数量、Chunk数量等。

BlockTable区:记录系统数据块的分配情况。

ChunkTable区:记录系统Chunk的分配情况。

Chunk在创建时候在ChunkTable申请一个存储区域,记录Chunk的元信息,删除Chunk的时候归还这块区域给ChunkTable。

Chunk在写入数据的时候会在BlockTable里面申请一个Block,删除Chunk的时候会把Chunk的所有Block归还给BlockTable。

Chunk的Block按照写入的顺序以邻接表的形式保存在BlockTable中。

十九、Mstore的系统延迟

ChunkServer自身延迟约26us,其中spdk占用11us,后续将对ChunkServer各个模块精细优化。

二十、Mstore的系统吞吐

我们还做了ChunkServer的压力测试对比,同等压力下,写吞吐几乎是Ext4文件系统的2倍,延迟比Ext4低很多;读吞吐也高于Ext4,但是因为Ext4有文件系统缓存,所以相比之下Ext4的读平均延迟要低一些。后续我们会看需求在裸盘系统基础上利用OptaneSSD设备实现缓存。

二十一、Mstore测试体系

建设Mstore之初我们就考虑系统稳定性的重要,因此我们建设了完善的测试体系。

二十二、Mstore落地情况

二十三、EBS整体架构

EBS系统(块存储)是应用在MStore的第一个项目。EBS有4个子系统:BlockMaster、BlockServer、Client、SnapshotServer。

BlockMaster:块服务的管理节点,维护块设备的元信息,分配BlockServer。简称BM。

BlockServer:块服务的数据处理节点,接收块设备的所有IO。简称BS。

Client:块设备的客户端。

SnapshotServer:块服务的快照服务器。简称SS。

业界对标:

二十四、EBS数据组织

一块盘(Vdisk)被划分成多个Segment,典型大小64G,一个Segment由某个BlockServer处理。

BlockServer会将一个Segment的所有请求以Writeaheadlog(WAL)的形式写到MStore的LogBlob。

每个Segment又划分成多个Entry,每个Entry对应MStore的一个ExtentBlob。

这样组织数据的好处是:

1、将多个Entry的随机写转化成一路顺序写,起到group commit的作用。

2、每个Entry对应一个ExtentBlob,这样多个Entry之间没有联系,回刷能并行执行。

3、在读取的时候如果一个请求跨越几个Entry,这几个Entry之间也可以并发的去读。

二十五、EBS索引

BlockServer处理请求先将数据写入WAL之后回刷到Entry里面,为了保证回刷前的数据可读到,需要在WAL之上建立索引。

索引是全内存缓存的,索引结构由UpdateTable+BaseTable组成。UpdateTable是可以读写的(Mutable),BaseTable是只读的(Immutable)。

定期做Checkpoint有利于系统重启快速恢复,会生成一个新的SecondaryUpdateTable,旧的UpdateTable变为只读,和原来的BaseTable合并生成一个新的BaseTable。

这么设计索引的好处是,BlockServer的操作都针对只读的BaseTable操作,简化程序处理,减少操作BaseTable的锁竞争,有利于性能。

二十六、EBS回刷WAL

BlockServer会定期把WAL的数据回刷到Entry里面,按照LogBlob从头到尾顺序回刷。实现过程要注意几个时间点,才能保证各子系统能正确工作:

1、最旧的Log点、2、Dump的起始点、3、Dump的结束点、4、索引Checkpoint点、5、最新Log点。时间顺序:1<=2<=3<=4<=5。

Log回收区:【最旧的Log点,Dump的起始点),这个区间的Log可以随时被回收掉。

Dump数据区:【Dump的起始点,Dump的结束点),这个区间是Dump操作正在作用的区间。

索引BaseTable表示的区间:【最旧的Log点,Checkpoint点),这个区间表示Checkpoint点之前的所有数据的索引,涉及WAL+Entry。

索引UpdateTable表示的区间:【Checkpoint点,最新Log点),这个区间表示Checkpoint点之后的所有数据的索引,只涉及WAL。

|嘉宾介绍|

杨立明

美团存储技术中心技术专家

专注于kv存储、数据库、存储等领域的研发工作,曾就职于京东、百度、头条等互联网公司。于2020年加入美团,致力于美团新一代统一存储MStore的建设工作。

标签:

(责任编辑:news01)
自称“馆长被区长推倒昏迷”的博物馆重开,此前官方通报称无肢体接触 天天热点评

自称“馆长被区长推倒昏迷”的博物馆重开,此前官方通报称无肢体接触 天天热点评

闭馆一天后,山西吕梁山革命博物馆重新开馆。5月9日晚间,“吕梁北武当古兵器博物馆”微信公众号发布消...
05-10 05:40:47
天天讯息:惠州美仑美家装饰工程有限公司_美仑美家

天天讯息:惠州美仑美家装饰工程有限公司_美仑美家

一、题文下列各组词语中,没有错别字的一项是A 詈骂修葺更叠美仑美奂B 鞠躬家俱坐落纡尊降贵C 贸然蹩脚歉
05-10 03:58:36
南麂岛船票怎么订票_南麂岛船票 的网址是什么-微资讯

南麂岛船票怎么订票_南麂岛船票 的网址是什么-微资讯

1、没网址的,鳌江码头售票(快艇船程70--80分钟)电话0577--63653991,瑞安码头(快艇船程大概2小时)售
05-10 01:53:26
全球速看:老里弗斯:我们不会去想前两年的G5 那毫无意义

全球速看:老里弗斯:我们不会去想前两年的G5 那毫无意义

76人主帅老里弗斯当地时间周一接受《费城问询报》采访时表示,尽管前两个赛季有关G5的经历不够理想,但现在
05-09 23:20:57
洛天依2018全息演唱会达拉崩吧(洛天依2018全息演唱会)

洛天依2018全息演唱会达拉崩吧(洛天依2018全息演唱会)

1、您好2017年6月17日Vsingerlive洛天依全息演唱会定档上海梅赛德斯奔驰文化中心,“洛天依、言和、乐正绫
05-09 22:01:49
安卓微信暗黑模式怎么设置 安卓手机微信暗黑模式怎么设置-当前速讯

安卓微信暗黑模式怎么设置 安卓手机微信暗黑模式怎么设置-当前速讯

1、步骤:首先微信版本要更新到最新的版本,目前内测的7 0 13版本已经有了这个功能。如果自己没有收到内测
05-09 21:31:21
食品加工制造板块涨1.62% 天润乳业涨10.04%居首 环球热讯

食品加工制造板块涨1.62% 天润乳业涨10.04%居首 环球热讯

中国经济网北京8月26日讯今日,食品加工制造板块整体涨幅1 62%,其中,63只股票上涨,13只股票下跌。数据显
05-09 20:48:47
【全球新要闻】2023版沪惠保上线8个多小时,参保人数破百万

【全球新要闻】2023版沪惠保上线8个多小时,参保人数破百万

5月9日晚间,澎湃新闻获悉,2023版上海城市定制型商业补充医疗保险“沪惠保”于上午10时开放投保后,截...
05-09 20:14:37
葵涌安全管理大讲堂开课,将应急知识送进社区

葵涌安全管理大讲堂开课,将应急知识送进社区

培训现场。读特客户端·深圳新闻网2023年5月9日讯(记者凌安儿通讯员陈佳潺)为切实强化社会面安全意识...
05-09 19:21:34
今日刘忠林_无罪-环球简讯

今日刘忠林_无罪-环球简讯

1、2018年4月20日上午9时,吉林省高院公开宣判此案,法院再审后认定刘中林无罪。2、因故意杀人罪被关押26年
05-09 18:58:53
哪种方法腌腊肉简单又好吃?

哪种方法腌腊肉简单又好吃?

第一步,首先将所需要的调味料都准备到位,陈皮、八角、花椒、桂皮、食盐等一同放入在炒锅中,不用放盐,小
05-09 18:32:28
环球聚焦:事业单位申论提出对策题苦无对策怎么办

环球聚焦:事业单位申论提出对策题苦无对策怎么办

提出对策题作为申论考试中的高频考点,既是考试中的重点,同时也是难点。很多考生苦于缺少必要的对策积累导
05-09 17:47:24
威少下赛季下家赔率:快船+400居首 火箭+800第5 今日关注

威少下赛季下家赔率:快船+400居首 火箭+800第5 今日关注

近日,博彩公司对威少的下家开出了赔率,快船居首。威少的合同已经到期,今年休赛期他将成为完全自由球员。
05-09 17:22:51
百乐达斯城,荣耀展现韩国文化艺术之美_全球短讯

百乐达斯城,荣耀展现韩国文化艺术之美_全球短讯

第59届《百想艺术大赏》于4月28日在韩国百乐达斯城完美落幕,此次文化盛宴再次将百乐达斯城推向聚光灯下。
05-09 17:03:01
温岭女性外阴瘙痒怎么治疗-温岭女性外阴瘙痒要做检查吗-世界快看

温岭女性外阴瘙痒怎么治疗-温岭女性外阴瘙痒要做检查吗-世界快看

  妇科炎症引起的瘙痒怎么办?一般来说,妇科炎症引起的瘙痒问题需求挑选外用药物来协助改进。当然,有些
05-09 16:32:02
电动自行车载人亟待统一规定 天天热讯

电动自行车载人亟待统一规定 天天热讯

日前,湖北省司法厅官网发布公告,就《湖北省电动自行车管理办法(草案送审稿)》公开征求意见。根据《办法
05-09 16:02:48
今日关注:天津2023游船演出季首场活动圆满举办

今日关注:天津2023游船演出季首场活动圆满举办

为增添建设文旅“网红城市”浓厚舆论氛围,展现天津市青少年热荐天津的激情与活力,同时充分利用海河旅...
05-09 15:37:51
环球看热讯:人民代表大会制度的基本内容_关于人民代表大会制度下列哪一项不正确

环球看热讯:人民代表大会制度的基本内容_关于人民代表大会制度下列哪一项不正确

1、【答案】C【答案解析】试题分析:人民代表大会制度是我国的根本政治制度,人民代表大会制度确保了人民当
05-09 14:50:19
焦点速看:联合国全球食品价格指数一年后再度上涨 这些变数值得关注

焦点速看:联合国全球食品价格指数一年后再度上涨 这些变数值得关注

【联合国全球食品价格指数一年后再度上涨这些变数值得关注】联合国粮农组织(FAO)的最新数据显示,4月全球
05-09 14:27:42
国光股份:预计未来毛利率将继续改善_天天关注

国光股份:预计未来毛利率将继续改善_天天关注

此外,公司表示,公司目前有原药产能1 45万吨,制剂产能近8 88万吨,可以满足公司未来3-5年发展所需
05-09 13:58:31
丰田bZ4X充电真的不堪吗?真实体验还行但仍需改进_天天报道

丰田bZ4X充电真的不堪吗?真实体验还行但仍需改进_天天报道

"笔者经常会于节假日开车抵达千公里之外的老家,之前都是自驾车,最近两次决定尝试新体验,采取高铁加...
05-09 13:08:20
意甲首支降级球队诞生!他们去年庆祝同城死敌降级 如今遭

意甲首支降级球队诞生!他们去年庆祝同城死敌降级 如今遭"复仇"-环球快资讯

意甲首支降级球队诞生!他们去年庆祝同城死敌降级如今遭 "复仇 ",意甲,同城,热那亚队,乌迪内斯,降级球...
05-09 12:22:10
环球通讯!江西省直机关足球比赛为领导制定特殊规则?当地回应

环球通讯!江西省直机关足球比赛为领导制定特殊规则?当地回应

近日,一份《省直机关第七届运动会足球比赛规程》的通知引发网络关注。该文件中特别强调,“为鼓励领导...
05-09 11:55:48
关注:加拿大艾伯塔省野火持续肆虐 疏散约三万人

关注:加拿大艾伯塔省野火持续肆虐 疏散约三万人

当地时间5月8日,加拿大艾伯塔省的野火仍在蔓延。艾伯塔省省长丹妮尔·史密斯的发言人当天表示,省长已...
05-09 11:48:48
河北安国市:机械化种收助中药材产业降本增效|当前动态

河北安国市:机械化种收助中药材产业降本增效|当前动态

近日,走进安国市石佛镇天花粉种植基地,大型农业机械车在田间齐头并进,伴随着机械轰鸣声,一棵棵天花粉从
05-09 11:02:37
全球速看:西安绕城高速南段 如何借道通行?

全球速看:西安绕城高速南段 如何借道通行?

  西安绕城高速“借道测试”工作自2月20日以来,先后开通了三个路段进行试行,取得了预期效果,社会反...
05-09 10:22:01
匠心品质,“臂”赢未来 | 福田雷萨随车吊战略研讨会顺利召开|每日资讯

匠心品质,“臂”赢未来 | 福田雷萨随车吊战略研讨会顺利召开|每日资讯

5月6日,福田雷萨随车吊战略研讨会在湖北随州顺利召开。福田雷萨副总经理兼营销公司总经理韩绍增、福田雷萨
05-09 10:03:07
环球热推荐:中消协一季度受理投诉超30万件 挽回经济损失超2.4亿元

环球热推荐:中消协一季度受理投诉超30万件 挽回经济损失超2.4亿元

人民日报北京5月8日电(记者齐志明)中国消费者协会8日发布的投诉情况分析显示:2023年第一季度,全国消协
05-09 09:24:00
旅游市场迎大面积复苏 景区旅拍要美更要规范

旅游市场迎大面积复苏 景区旅拍要美更要规范

旅拍作为一种体验式消费,满足了人们记录旅途美好瞬间的需求,逐渐受到消费者喜爱。今年旅游市场迎来大面积
05-09 08:50:04
天天播报:新一轮IPO企业上会!空窗55天后,3家主板企业上会,还有逾百家中止

天天播报:新一轮IPO企业上会!空窗55天后,3家主板企业上会,还有逾百家中止

新一轮IPO企业上会!空窗55天后,3家主板企业上会,还有逾百家中止,上会,上市,创业板,主板企业,ipo企业
05-09 08:14:53

为您推荐

精彩推送