Curve核心组件之mds – 网易数帆MDS各组件详细介绍 Q&A基本架构 • 元数据节点 MDS 管理元数据信息 收集集群状态信息,自动调度 • 数据节点 Chunkserver 数据存储 副本一致性 • 客户端 Client 对元数据增删改查 对数据增删改查 • 快照克隆服务器MDS各个组件 MDS是中心节点,负责元数据管理、集群状态收集与调度。MDS包含以下几个部分: • Topology: 管理集群的 topo 元数据信息。 Copyset: 副本放置策略。 • Heartbeat: 心跳模块。跟chunkserver进行交互,收集chunkserver上的负载信息、 copyset信息等。 • Scheduler: 调度模块。用于自动容错和负载均衡。TOPOLOGY topology用于管理和组织机器,利用底层机器的放置、网络的规划以面向业务提供如下功能和非功能需求。 1. 故障域的隔离:比如副本的放置分布在不 TopoUpdater: 根据 chunkserver 上报的 copyset 信息更新拓扑 中的信息。 • ConfGenerator: 将当前上报的 copyset 信息提交给调度模块, 获取该 copyset 上可能需要执行的任务。 • HealthyChecker: 检查集群中的 chunkserver 在当前时间点距 离上一次心跳的时间,根据这个时间差更新chunkserver状态。 Chu0 码力 | 23 页 | 1.74 MB | 6 月前3
CurveFS Copyset与FS对应关系。metaserver需要定期通过心跳向mds上报自己的状态。mds一方面根据metaserver上报的状态,进行相应的调度;另一方面根据心跳确认metasever 的存活状态。 这块内容参考的curve。metaserver定时向mds上报心跳,心跳内容参考curve。调度上,如果采用类似chubaofs的方案,那么copyset就会一直处于一个不均衡的状态中。如果copyset是可readwrite状态,新创建的 copyset均衡调度器。根据集群中copyset的分布情况生成copyset迁移任务; LeaderScheduler: leader均衡调度器。根据集群中leader的分布情况生成leader变更任务; ReplicaScheduler: 副本数量调度器。根据当前copyset的副本数生成副本增删任务; RecoverScheduler: 恢复调度器。根据当前copyset副本的存活状态生成迁移任务。 结论:心跳参考curve。目前这些调度器在curvefs第一阶段不用全部实现。所有和均衡相关的,暂时不做。只做和故障处理相关的副本补全恢复的调度。 6、详细设计 6.1 创建fs curvefs管理工具发起创建fs命令,mds收到createfs命令之后,在mds插入的一条fs记录,状态为NEW。然后为fs创建copyset,默认为3个。mds调用topology的接口找到3个可用的copyset,如果没有足够可用的cop0 码力 | 19 页 | 383.29 KB | 6 月前3
Curve核心组件之snapshotclone02 03 04 快照和克隆的特点 快照克隆服务器架构 快照的实现 05 克隆的实现CURVE基本架构 • 元数据节点 MDS • 管理和存储元数据信息 • 感知集群状态,合理调度 • 数据节点 Chunkserver • 数据存储 • 副本一致性,raft • 客户端 Client • 对元数据增删改查 • 对数据增删改查 • 快照克隆服务器 • 快照 • 增量转储,第一次全量转储s3之后,后续只需转储增量部分 • 高可用,快照任务中断自动拉起继续转储快照和克隆的特点 • 克隆的定义 • 克隆是指从卷复制出卷的功能,提供快速的复制卷的能力。 • 这里的克隆还包括从快照回滚的功能 • 克隆的特点 • 支持Lazy和非Lazy两种模式克隆 • 支持从快照克隆和从镜像(卷)克隆 • 支持从快照回滚 • 高可用,克隆任务中断自动拉起继续克隆快照克隆服务器架构 • 基于brpc提供restful Serivce层面区分上层请求为同步接口调用,还是异步接口调用, 同步接口调用直接调用Core层接口实现功能,异步接口创建Task, 并交由TaskManager调度。 SnapshotService & CloneService: • 任务管理层负责调度SnapshotTask和CloneTask,并向上提供如 cancel task等功能。 SnapshotTaskManager & CloneTaskManager:0 码力 | 23 页 | 1.32 MB | 6 月前3
Curve核心组件之Client - 网易数帆03 04 Client总体介绍 热升级NEBD总体介绍 新版本Client/NEBD性能优化CURVE基本架构 • 元数据节点 MDS • 管理和存储元数据信息 • 感知集群状态,合理调度 • 数据节点 Chunkserver • 数据存储 • 副本一致性,raft • 客户端 Client • 对元数据增删改查 • 对数据增删改查 • 快照克隆服务器CURVE基本架构 将请求发往leader节点CLIENT IO线程模型 用户线程 1. 用户调用接口,发起IO请求 2. AioWrite将请求封装成io task并放入任务队列 3. 放入任务队列后,异步请求发起成功,返回用户 IO拆分线程 4. 从任务队列取出任务后进行拆分 5. 拆分过程依赖元数据,可能会通过MDSClient向 MDS获取 6. 拆分成的子请求放入队列CLIENT IO线程模型 IO分发线程0 码力 | 27 页 | 1.57 MB | 6 月前3
Curve质量监控与运维 - 网易数帆编码规范与提交流程 版本管理 测试 测试方法论 CI与异常测试 6/33设计流程 Curve团队采用敏捷开发模式,负责人在制定迭代计划时,确认哪些任务需要设计 文档: 小需求(改动小)将实现思路记录到任务管理系统中(JIRA),即可进行开发; 大需求(新模块、复杂功能)需要输出独立设计文档,并进行评审;对于功能或 性能影响较大的功能,还需要进行POC验证;评审和验证通过后才能启动开发 无需绑定特定环境,“随意拉起” 配置化(测试环境、测试负载定义) 控制用例时间(考虑一些折中方案) Case独立性 Case通用性(兼顾curve、ceph等) Tag规范(优先级、版本、运行时间) 最大化覆盖率(打乱操作顺序、随机 sleep) 精确性(checkpoint) 稳定性(避免环境因素、其他模块干扰) Curve使用Robotframework框架进行异常自动化测试,0 码力 | 33 页 | 2.64 MB | 6 月前3
BRPC与UCX集成指南1 用UCX实现BRPC对RDMA的支持 徐逸锋2 BRPC简介 ●BRPC是Curve的基础通讯框架 ●支持远程过程调用 –C++ –TCP传输 –bthread协程(m:n调度,减少基于内核的下文切换 ,减少cache miss) ●多协议支持 –baidu_std,http,grpc… ●protobuf3 BRPC简介 ●Client/Server架构 ●使用Protobuf定义协议文件 ●通过ucp_worker_get_efd(*ucp_worker, efd)获得轮询文件句柄 ●调用poll(efd)等待有任务执行,然后再调用ucp_worker_progress() ●/dev/cpu_dma_latency 禁止power-saving模式 ●由于rdma速度很快,内核调度时延对性能影响很大。关键应用应开启busy poll。323334 BRPC怎么指定使用UCX?35 修改 BRPC0 码力 | 66 页 | 16.29 MB | 6 月前3
新一代云原生分布式存储伪随机算法在服务器数量特别大的时候接近均衡 • 节点故障(DiskNums)变更会涉及其他数据的迁移 有中心节点:持久化对应关系 • 需要将数据分布(元数据)持久化 • 中心节点感知集群的信息,进行资源实时调度 • 节点故障不会涉及其他的数据迁移 KEY (Offset, Len) VALUE (DiskID) (0, 4MB) 70 (4MB, 8MB) 60 (8MB, 16MB) 50分布式存储的要素 • 大多数副本写完成返回客户端 • 延迟取决于所有副本中最快的大多数主要亮点 高性能 更稳定 跟各 更稳定 具备可视化的开发页面, 直观查看任务运行情况, 数据开发方便,系统运 维方便 易运维 具备可视化的开发页面, 直观查看任务运行情况, 数据开发方便,系统运 维方便 高质量 基于在架构上的选择和优秀的工程实践,Curve 在性能、运维、稳定性、工程实践质量上都优于Ceph主要亮点0 码力 | 29 页 | 2.46 MB | 6 月前3
Open Flags 调研口来支持O_TRUNC flag(优先级高)。 2,待curvefs支持链接和支持对inode中atime、ctime、mtime的修改后,对O_NOFOLLOW和O_NOATIME进行测试(优先级中)。 3,目前I/O模式类flag(O_SYNC, O_DSYNC, O_NONBLOCK)经测试不会“影响“结果的正确性,后面继续对其实现方式进行研究(优先级中)。 参考文献 https://man70 码力 | 23 页 | 524.47 KB | 6 月前3
Curve设计要点近期规划基本架构 • 元数据节点 MDS 管理元数据信息 收集集群状态信息,自动调度基本架构 • 元数据节点 MDS 管理元数据信息 收集集群状态信息,自动调度 • 数据节点 Chunkserver 数据存储 数据一致性基本架构 • 元数据节点 MDS 管理元数据信息 收集集群状态信息,自动调度 • 数据节点 Chunkserver 数据存储 副本一致性 • 客户端 Client0 码力 | 35 页 | 2.03 MB | 6 月前3
Curve核心组件之chunkserverChunkServer架构 ChunkServer核心模块 新版本ChunkServer性能优化CURVE基本架构 • 元数据节点 MDS • 管理和存储元数据信息 • 感知集群状态,合理调度 • 数据节点 Chunkserver • 数据存储 • 副本一致性,raft • 客户端 Client • 对元数据增删改查 • 对数据增删改查 • 快照克隆服务器CURVE基本架构0 码力 | 29 页 | 1.61 MB | 6 月前3
共 13 条
- 1
- 2













