Curve核心组件之mds – 网易数帆Curve核心组件之 MDS Digital Sal 陈威 网易数帆存储团队 ## 概述 ## Curve 是高性能、高可用、高可靠的分布式存储系统 • 高性能、低延迟 • 可支撑储场景:块存储、对象存储、云原生数据库、EC等 - 当前实现了高性能块存储,对接OpenStack和 K8s 网易内部线上无故障稳定运行一年多 • 已开源 github主页:https://opencurve Downloads v0.1.3 on 30 Jul - f6425ad zip tar.gz Notes Downloads 01 整体架构 02 MDS各组件详细介绍 03 Q&A ## 基本架构 ## • 元数据节点 MDS 管理元数据信息 收集集群状态信息,自动调度 - 数据节点 Chunkserver 数据存储 副本一致性 • 客户端 Client 对元数据增删改查 [Image](/uploads/documents/9/a/6/0/9a607d6baa2cd17132b07c4565d2aeff/p4_3.jpg) ## MDS各个组件 MDS是中心节点,负责元数据管理、集群状态收集与调度。MDS包含以下几个部分: • Topology: 管理集群的 topo 元数据信息。 • Nameserver: 管理文件的元数据信息。 • Copyset: 副本放置策略。0 码力 | 23 页 | 1.74 MB | 1 年前3
CurveFS ChunkID持久化将原有的获取chunkid的方法从space迁入mds中,并持久化写入etcd中; 2. 只考虑单mds工作的情况; 3. chunkid全局递增。 ## 实现 1. proto/space.proto 中的 message AllocateS3ChunkRequest、message AllocateS3ChunkResponse 复制到 proto/mds.proto; 2. 修改 All AllocateS3Chunk复制到proto/space.proto/service/MdsService中; 4. curvefs/src/mds/mds_services.h MdsServiceImp类中增加 AllocateS3Chunk 实现; 5. curvefs/src/mds/mds_services.h MdsServiceImp类中增加 ChunkIDGenerator 类对象,方法 AllocateS3Chunk0 码力 | 3 页 | 79.38 KB | 1 年前3
CurveBS IO Processing Flowa/1/3/7a13352ace9d0e5a9426be5dcc3ed48e/p1_1.jpg) CurveBS uses the central node Metadata Server (MDS) to manage virtual disk mapping and data replicas distribution. Decentralization currently leads to particularly strong in most cases. The CurveBS core consists of three parts: ### 1. Metadata Server (MDS) - Manages and stores metadata information and persists the data in ETCD ☑ Collect cluster status The client ● Provides read and write data interfaces for upper-layer applications ● Interacts with MDS to add, delete, modify, and query metadata ● Interacts with the chunkServer to read and write data0 码力 | 13 页 | 2.03 MB | 1 年前3
Curve Detail Introduction for CNCFAgenda • CurveBS Architecture • CurveBS Topology • CurveBS Data Organization • MetaData Server (MDS) • ChunkServer • Client • CurveBS IO processing flow • CurveBS Performance considerations • Cloud Server(MDS) ## MDS Master Heartbeat Scheduler TopoUpdatet CopySet Scheduler ConfGenerator Leader Scheduler HealthyChecker Replica Scheduler Recover Scheduler Topology NameServer MDS Slave1 Slave1 Etcd Cluster (RAFT consensus) Metadata store MDS Master select ## ChunkServer Clients MDS Peers BRPC RAFT Service RAFT Service RAFT Service ..... CopySet..... CopySet..... RAFT WAL RaftMeta0 码力 | 23 页 | 6.53 MB | 1 年前3
Curve核心组件之chunkserver详细介绍ChunkServer的三个核心模块 04 新版本ChunkServer性能优化 介绍新版本ChunkServer性能优化的思路和结果 ## CURVE基本架构 ## • 元数据节点 MDS • 管理和存储元数据信息 • 感知集群状态,合理调度 ## • 数据节点 Chunkserver • 数据存储 • 副本一致性,raft ## • 客户端 Client • 对元数据增删改查 /3/2/b/4/32b42961304d48bdf42a254fa15bd989/p6_3.jpg) ## ChunkServer架构 ChunkServer通过RPC网络层与client,MDS,其他ChunkServer通信。RPC网络层是由brpc框架去完成的。包括读写socket,rpc协议解析等。  ## ChunkServer架构 心跳模块有两方面的职责: 1、向MDS节点上报心跳,心跳中包括ChunkServer本身的一些统计信息 2、解析MDS的心跳response中的raft 成员变更信息,向CopysetNode发起变更 的leader ● MDSClient:负责与MDS交互,挂卸载卷、获取元数据信息 ## CLIENT上层应用 ## QEMU: 实现了QEMU block与Client的对接层 向cinder/glance提供了Python API https://github0 码力 | 27 页 | 1.57 MB | 1 年前3
Angular 8 - Reviewed0 码力 | 231 页 | 4.00 MB | 2 年前3
CurveFS Client 概要设计+lseek ## 关键接口分析 ## init void (*init) (void *userdata, struct fuse_conn_info *conn); 根据挂载信息,从mds获取文件系统信息(或superblock),块分配器( bitmap )和root inode所在的copyset、metaserver ip等信息 ■ 去metaserver获取文件系统信息(super parent, const char *name); 根据parent inode id和name从denty缓存中找到对应的denty结构: - 如果denty缓存中不存在对应的inode,则从mds根据parent inode id获取parent inode所在copyset,metaserver ip等信息,然后从metaserver获取denty(这里有两种方式,一种是只获取当前需要的d off t off, struct fuse file info *fi); ■ 首先根据inode id 从缓存中查找到对应inode结构; ■ 如果inode缓存中不存在对应的inode,则从mds获取inode所在copyset,metaserver ip等信息,然后从metaserver获取inode结构,缓存之; 判断inode结构中,对应请求[off, size]位置的空间是否有分配0 码力 | 11 页 | 487.92 KB | 1 年前3
Curve设计要点近期规划 Curve的近期规划 ## 基本架构 ## • 元数据节点 MDS 管理元数据信息 收集集群状态信息,自动调度  ## 基本架构 ## • 元数据节点 MDS 管理元数据信息 收集集群状态信息,自动调度 - 数据节点 Chunkserver [Image](/uploads/documents/0/9/e/3/09e38610ff888e0fd1b2626578fba41c/p7_2.jpg) ## 基本架构 ## • 元数据节点 MDS 管理元数据信息 收集集群状态信息,自动调度 - 数据节点 Chunkserver 数据存储 副本一致性 • 客户端 Client 对元数据增删改查 对数据增删改查 PG与Pool 3.3 CRUSH关系分析 3.4 本章小结 ## 目录 第4章 三大存储访问类型 4.1 Ceph FS文件系统 4.1.1 Ceph FS和MDS介绍 4.1.2 部署MDS 4.1.3 挂载Ceph FS 4.2 RBD块存储 4.2.1 RBD介绍 4.2.2 librbd介绍 4.2.3 KRBD介绍 用商业硬件来运行规模庞大的基础设施。Ceph就是其中之一,它明智地采用商业硬件来提供企业级稳固可靠的存储系统。 Ceph已被不断完善,并融入以下建设性理念。 ·每个组件能够线性扩展。 ·无任何单故障点。 - 解决方案必须是基于软件的、开源的、适应性强的。 ·运行于现有商业硬件之上。 ·每个组件必须尽可能拥有自我管理和自我修复能力。 对象是Ceph的基础,它也是Ceph的构建部件,并且 Ceph核心组件 在Ceph存储中,包含了几个重要的核心组件,分别是Ceph OSD、Ceph Monitor和Ceph MDS。一个Ceph的存储集群至少需要一个Ceph Monitor和至少两个Ceph的OSD。运行Ceph文件系统的客户端时,Ceph的元数据服务器(MDS)是必不可少的。下面来详细介绍一下各个核心组件。 Ceph OSD:全称是Object Storage Device,主0 码力 | - 页 | 13.97 MB | 1 年前3
共 782 条
- 1
- 2
- 3
- 4
- 5
- 6
- 79
相关搜索词
MDS分布式存储系统元数据管理副本放置策略自动调度CurveFS ChunkID持久化etcdChunkIDGenerator单mdsChunkID BundleCurveBSMetadata Server (MDS)ChunkserverCopySetNebdClientCurveFSChunkServerMetaData Server (MDS)Curvecopysetk8sClientAngular 8TypeScript依赖注入组件单页应用(SPA)CurveFS Clientfuse接口lib库低层次操作符分布式数据库接口高性能分布式存储multi raft开源CephRADOSCRUSH纠删码













