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
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
Curve元数据节点高可用Observe的流程 4. MDS使用election模块的功能进行选主 • 4.1 Curve中MDS的选举过程 • 4.2 图示说明选举流程 4.2.1 正常流程 4.2.2 异常情况1:MDS1退出,可以正常处理 4.2.3 异常情况2:Etcd集群的leader发生重新选举,MDS1未受影响,可以正常处理 4.2.4 异常情况3:Etcd的leader发生重新选举,MDS1受到影响退出,不一定可以正常处理。 • 4.2.4.3 MDS1、MDS2、MDS3的租约全部过期 • 4.2.4.4 总结 4.2.5 异常情况四:Etcd集群与MDS1(当前leader)出现网络分区 4.2.5.1 事件一先发生 4.2.5.2 事件二先发生 4.2.6 异常情况4:Etcd集群的follower节点异常 4.2.7 各情况汇总 ### 1. 需求 mds是元数据节点,负责空间 mds是元数据节点,负责空间分配,集群状态监控,集群节点间的资源均衡等,mds故障可能会导致client端无法写入。 因此,mds需要做高可用。满足多个mds,但同时只有一个mds节点提供服务,称该提供服务的mds节点为主,等待节点为备;主节点的服务挂掉之后,备节点能启动服务,尽量减小服务中断的时间。需要解决的问题就是:如何确定主备节点。 ### 2. 技术选型 提供配置共享和服务发现的系统比较多,其中最为大家熟知的就0 码力 | 30 页 | 2.42 MB | 1 年前3
CurveFS Copyset与FS对应关系4、curvefs的topo信息 • 5、curvefs mds和metaserver的心跳 • 6、详细设计 • 6.1 创建fs • 6.2、挂载fs • 6.3、创建文件/目录 • 6.4、open流程 • 6.5、读写流程 • 6.6、topology • 7、工作评估 • 7.1 client端 • 7.2 mds端 • 7.3 metaserver端 哪个copyset去服务这个inode。有两种思路。 思路一:client在创建inode的时候,先去mds去获取一个inode,然后根据这个inode id找到服务这个inode的分片。出于性能上的考虑的,client可以一次从mds获取一批inode,这批inode用完了之后,再去mds去申请。 思路二:client在创建inode的时候,自己选择一个分片,然后由这个分片自己分配一个inode。采用这种思路,在create 5、 curvefs mds和metaserver的心跳 curvefs的mds和metaserver之间的心跳类似于curve块设备的心跳。metaserver需要定期通过心跳向mds上报自己的状态。mds一方面根据metaserver上报的状态,进行相应的调度;另一方面根据心跳确认metaserver的存活状态。 这块内容参考的curve。metaserver定时向mds上报心跳,心跳内容参0 码力 | 19 页 | 383.29 KB | 1 年前3
Ceph分布式存储实战 (云计算与虚拟化技术丛书)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 OSD、Ceph Monitor和Ceph MDS。一个Ceph的存储集群至少需要一个Ceph Monitor和至少两个Ceph的OSD。运行Ceph文件系统的客户端时,Ceph的元数据服务器(MDS)是必不可少的。下面来详细介绍一下各个核心组件。 Ceph OSD:全称是Object Storage Device,主 map、PG(Placement Group)map和CRUSH map。 Ceph MDS: 全称是Ceph Metadata Server,主要保存的是Ceph文件系统(File System)的元数据(metadata)。温馨提示:Ceph的块存储和Ceph的对象存储都不需要Ceph MDS。Ceph MDS为基于POSIX文件系统的用户提供了一些基础命令,例如ls、find等命令。 ## (2)0 码力 | - 页 | 13.97 MB | 1 年前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
共 68 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7
相关搜索词













