《专场3.4-美团存储云原生探索和实践-杨立明.pdf》由会员分享,可在线阅读,更多相关《专场3.4-美团存储云原生探索和实践-杨立明.pdf(31页珍藏版)》请在三个皮匠报告上搜索。
1、美团存储云原生探索和实践杨立明+美团+架构师云原生简述云原生技术使组织能够在新式动态环境(如公有云、私有云和混合云)中构建和运行可缩放的应用程序。容器、服务网格、微服务、不可变基础结构和声明性 API 便是此方法的范例。这些技术实现了可复原、可管理且可观察的松散耦合系统。它们与强大的自动化相结合,使工程师能够在尽量减少工作量的情况下,以可预测的方式频繁地进行具有重大影响力的更改。-“云原生计算基金会”云原生技术敏捷性、灵活性、可靠性、可伸缩,为企业提供了巨大的生产力,这也是公司近几年基础架构的迭代方向。存储计算分离与云原生当前基础架构是存算一体的架构,存储系统面临的问题:存储扩展能力弱:在计算
2、资源达到瓶颈需要扩容时,仍然需要迁移数据,迁移数据的时间跟数据量线性相关,所以,对于数据量较大的业务,扩容操作时间会很长。机器成本高:存储计算资源耦合在一起,如果集群因为CPU计算能力达到瓶颈,我们就需要扩容,而往往这时节点的硬盘空间还很空闲。反之亦然,存储和计算资源经常会有一方存在机器资源浪费。重复研发和运维成本高:这些存储组件基本上要考虑副本冗余、副本数据一致性、数据正确性校验,副本缺失补副本,扩容缩容等问题,因此存在着重复研发和运维问题。不能很好的满足业务多样化需求:比如我们现在需要提供一个分布式文件系统服务,基本上我们需要从零开始研发,研发进度会很慢,不能很好的满足业务的需要。这些问题
3、阻碍了公司云原生的建设,因此,我们设计并建设了存储与计算分离的系统,来更好的满足云原生的迭代。存算分离架构的优势和挑战优势扩展能力强:上层存储服务模块实现无状态化设计,可实现秒级扩缩容,无需数据迁移。产品快速迭代:基于底座,可以最大程度复用其通用存储能力,来适应业务需求,快速开发出新的存储产品降本增效:存储计算分离,避免了集群的存储、计算资源错配造成的资源浪费。统一底座服务使得上层存储无需重复研发数据分布、副本、容灾等机制,大幅降低研发成本。挑战稳定性:作为其他存储底层的底座存储,一旦出现稳定性问题,将会影响其他所有存储服务,进而影响到上层业务。性能:分层架构后,相对于存算一体的服务,增加了一
4、跳的网络延迟。存储底座的吞吐很大程度上也决定了上层存储服务的吞吐。Mstore总体介绍MStore设计目标是为各种存储服务抽象出公共底座,提供似Posix的简单文件接口,对接块存储系统、文件存储系统、对象存储、表格存储、数据库、大数据等业务。Mstore整体架构MStore存储系统有4个子系统:RootServer、MetaServer、ChunkServer、SDK。RootServer:集群的入口,管理着整个集群中资源信息,包括MetaServer、ChunkServer、磁盘等信息。MetaServer:管理着用户数据的元信息,包括Blob、Blob由哪些Chunk构成,Chunk和Ch
5、unkServer的映射关系等。MetaServer在集群中可以有多组,使得元信息管理能水平扩展。ChunkServer:用户数据存储服务,对用户数据的序列化存储、校验。接受用户读写请求,接受MetaServer数据复制、负载均衡等请求。SDK:提供给用户的Library,用户可以通过链接这个Library访问MStore的存储服务,类文件系统API。Mstore的BlobBlob是Mstore提供给用户使用的对象,类似于文件。Blob是由多个Chunk组成,以便将Blob做分布式存储。Chunk的大小默认为64M。Mstore的Blob为了满足不用的应用场景,目前我们提供两种类型的Blob,
6、LogBlob用于支持追加写、ExtentBlob用于支持随机写。系统通常是将数据写到LogBlob,然后后台回刷到ExtentBlob。Mstore元数据元数据主要分为两类:资源信息和用户数据RootServer管理所有的硬件资源,整个集群只有一组。MetaServer管理用户数据,可以有多组,可以水平扩展。元数据节点通过Raft机制保证数据的可靠性、高可用。Mstore资源管理集群资源由RootServer(RS)统一管理,RS是资源增删和分配的入口。主要的资源信息包括:MetaServer组信息ChunkServer信息磁盘信息PhysicalPool信息LogicalPool信息Mst