Curve核心组件之mds – 网易数帆Coordinator,内部根据该信息判断当前copyset是否 有配置变更任务执行,如果有任务则下发。 任务计算: 任务计算模块包含了多个定时任务 和 触 发任务。 • 定时任务由调度模块定时触发。 • 触发任务由外部触发,管理员通过工具触发。 • TopoAdapter 用于获取Topology中调度需要使用的数据。 • Common Strategy 是通用的副本添加和移除策略。 任务管理: 任务管理模块用于管理计算模块产生的任务。 • RecoverScheduler 是恢复调度器,根据当前 copyset副本的存活状态生成迁移任务。 触发任务: • RapidLeaderScheduler 是快速leader均衡器, 由外部触发,一次生成多个leader变更任务, 使得集群的leader尽快达到均衡状态。 rSCHEDULE • 集群负载和资源均衡 • leader copyset scatter-width •0 码力 | 23 页 | 1.74 MB | 6 月前3
BRPC与UCX集成指南●提供监视一个fd是否可读写,并调用对应socket对象的成员函数1314 Socket 输入事件处理15 Socket options ●是创建socket的参数 ●主要成员: –fd 是socket文件句柄 –void (*on_edge_triggered_events)(Socket*) ●可读事件的回调函数16 Server创建Socket Listener 把系统调用创建的listen –收集机器资源(内存,网卡等),在应用的各个部分共享 ●Worker –完成ucx的功能,可以在应用程序中调用的函数(不是单独执行的线程) ●Listener –接收连接请求 ●Ep –连接对象,在ep上请求发送和接收29 UCP 消息接口类型 ●Active message –速度最快,被brpc使用作为消息传递 –消息通过回调函数接收 –消息异步发送 ●Tag –MPI使用 ●Stream –官方不推荐30 增加字段:36 BRPC的Server开启RDMA server类有如下成员函数, 如何指定开启ucx连接?37 修改 BRPC ServerOptions ●ServerOptions添加成员 ●当前取舍的:TCP总是可用的, UCX作为选项38 Ucp Context ●只有一个全局对象,使用下列函数获取 ●UCP_Context* get_or_create_ucp_ctx()0 码力 | 66 页 | 16.29 MB | 6 月前3
Curve支持S3 数据缓存方案加锁,根据inode和fsid找到对应的fileCacheManager,如果没有则生成新的fileCacheManager,解锁,调用fileCacheManager的Write函数。 2.考虑到同一个client同一个文件同时只能一个线程进行文件写,所以在Write函数中加写锁。 3.根据请求offset,计算出对应的chunk index和chunkPos。将请求拆分成多个chunk的WriteChunk调用。 4.在 1.根据InodeId找到对应的FileCacheManager,执行Flush函数。 2.在Flush函数中,加写锁,通过swap获取FileCacheManager的chunkCacheMap_到临时变量tmp,并清空chunkCacheMap_,解写锁。遍历tmp中的DataCache列表,执行Flush函数,并更新对应的元数据。 3.Flush返回成功。 4.如果DataCache的Fl lush的过程中有新的cache加入,则需要进行合并,合并的规则是新的cache如果和老的cache有重叠则覆盖老的cache。 FsSync流程 1.循环获取FileCacheManager,执行Flush函数。© XXX Page 9 of 9 后台流程 1.在FsCacheManager中增加一个DataCacheNum_字段,如果该字段为0,表示没有cache需要flush,则线程由条件变量控制处于wait状态。0 码力 | 9 页 | 179.72 KB | 6 月前3
CurveFS ChunkID持久化ChunkIDGenerator对象的GenChunkID方法; ChunkIDGenerator 类 构造函数 初始化 init 函数:用于初始化或者更改 ChunkIdAllocatorImpl 的一些配置。但是这些配置不会立即生效,而是等到当前 chunkId池枯竭时才会生效。 析构函数 GenChunkID 申请的chunkID池是否枯竭? 是,使用 KVStorageClient 申请新的chunkid 当前chunkID bundle 内最后一个可分配的chunkID bundleSize_;// chunkId池子的大小 };© XXX Page 3 of 3 1. 2. 问题与风险 构造函数内判断 storeKey_ 不存在时,会从0开始分配,可能会出现覆盖chunkid的情况; chunkID用完情况没有考虑;0 码力 | 3 页 | 79.38 KB | 6 月前3
CurveFS Copyset与FS对应关系y和disk usage来选的,通常选择内存和disk使用率最低的节点。 并去对应的meta node上去创建对应的meta partition。 如何选择partition的host,通过这个函数去选择。 func (c *Cluster) (excludeZone , excludeNodeSets [] , excludeHosts [] , replicaNum , crossZone uint64 string int bool string [] , peers []proto.Peer, err ) string error metanode是否能够创建copyset,由这个函数判断。有这些判断条件: 1、metaNode的存活状态 2、metaNode的内存使用情况 3、metaNode的磁盘使用情况© XXX Page 4 of 19 4、metaNode上的partition的个数 造成巨大的锁开销,这个是不能接受的。 curve块设备的元数据管理,在分配数据的时候,offset一开始就是知道的,这是和curvefs分配很大的一个不同点。 假设已经确定了一个分片规则,那么根据这个分片规则,一定可以找到两个函数 inodeid到copyset的映射:copysetid = getPartition(inodeid) copyset管理的inode的范围:inoderange = getInodeRange(copyset)©0 码力 | 19 页 | 383.29 KB | 6 月前3
MySQL 兼容性可以做到什么程度中间件只是起点,PolarDB-X 可能是离终点最近的那个 对近十年的探索以及五年的上云 经验进行重新思考,面向未来设 从运维视角实现计算存储一体化 计新架构 产品形态 基于MySQL XA实现分布式事务 基于外部组件进行扩容 支持扩容 分布式事务 一体化尝试 Review 2.0 开源 2016 2017 2018 2019 2020 2021 2021年10月20日,云栖大会宣 布开源 2020年5月,PolarDB-X0 码力 | 18 页 | 3.02 MB | 6 月前3
TGT服务器的优化TGT 服务器的优化块设备协议 • NBD • Linux专有块设备协议 • iSCSI • 广泛支持的外部设备协议(块,磁带等)Curve云原生存储支持块设备 • 通过NBD,只支持Linux • 通过SDK API,目前只支持Linux • PFS • 扩大使用范围 • 通过iSCSI支持更多系统,例如Windows, 类UNIX系统等,使用两项基础 技术 • TCP/IP0 码力 | 15 页 | 637.11 KB | 6 月前3
新一代云原生分布式存储别 网易集团内部业务: • 网易严选,网易云音乐 网易有道,网易游戏 网易Lofter,云信 在集团外有联合开发用户和测试用户 网易外部用户: • 超聚变,创云融达信息技术 • 扬州万方电子技术,思谋科技分布式存储介绍 01 存储的发展 | 分布式存储的分类 | 分布式存储的要素 02 03 04 Ceph 架构简介0 码力 | 29 页 | 2.46 MB | 6 月前3
Raft在Curve存储中的工程实践息、元数据分布信息等,持久化到etcd中。 • metaserver:采用raft协议3副本的方式保存文 件文件的元数据,包括inode,dentry,文件的 空间分配信息。 • 数据集群:采用外部存储,S3或者Curve块存储,保 存写入文件的数据。Curve文件存储RAFT应用 基于rocksdb的存储引擎 • 要求存储的元数据的大小不超过内存的大小 • raft apply的请求,数据都在内存,直接修改0 码力 | 29 页 | 2.20 MB | 6 月前3
Curve元数据节点高可用小服务中断的时间。 需要解决的问题就是:如何确定主备节点。 2. 技术选型 提供配置共享和服务发现的系统比较多,其中最为大家熟知的就是zookeeper和etcd, 考虑当前系统中mds有两个外部依赖模块,一是mysql, 用于存储集群拓扑的相关信息;二是etcd,用于存储文件的元数据信息。而etcd可以用于实现mds高可用,没必要引入其他组件。 使用etcd实现元数据节点的leader主要依赖于它的两个核心机制:0 码力 | 30 页 | 2.42 MB | 6 月前3
共 17 条
- 1
- 2













