Curve质量监控与运维 - 网易数帆y,打beta版标签后,提交QA团队测试 ; beta版的bug修复代码先合入master分支,再cherry-pick到release-x.y分支; beta版bug修复完成后,打rc版标签(可能有多个rc版),上线到测试环境; 经bug修复和长时间运行测试后,若代码达到正式上线标准,则发布正式版。 v1.0.0-beta v1.1.0-beta master v1.1.0-rc0 release-1.1 用例设计原则 无需绑定特定环境,“随意拉起” 配置化(测试环境、测试负载定义) 控制用例时间(考虑一些折中方案) Case独立性 Case通用性(兼顾curve、ceph等) Tag规范(优先级、版本、运行时间) 最大化覆盖率(打乱操作顺序、随机 sleep) 精确性(checkpoint) 稳定性(避免环境因素、其他模块干扰) Curve Curve使用开源的监控工具Prometheus采集监控指标,大致 流程为: 1. 部署监控时,Curve根据集群信息生成配置文件, 指定了 Prometheus的监控目标(包括Client、MDS、 ChunkServer、Etcd、物理节点等)。 2. Prometheus依据上述配置文件,发现相应服务。 3. Prometheus server以pull的方式,定期从Curve集群中 MDS0 码力 | 33 页 | 2.64 MB | 6 月前3
NJSD eBPF 技术文档 - 0924版本采⽤eBPF加速云原⽣环境中 Curve⽂件系统性能 ⽹易数帆科技 向东提纲 • 什么是Curve • Curve的应⽤场景及挑战 • Curve客户端⾯临问题及分析 • 什么是ebpf • 基于epbf的Curve Cache设计 • Curve社区介绍Curve是什么? • Curve云原⽣软件定义存储 • Curve分布式块存储 • Curve分布式⽂件存储 LD_PRELOAD重载⽂件系统系统调⽤ • vpp / f-stack / DirectFUSE • Kernel版本实现 • BentoFS 基于rust的实现采⽤LD_Preload⽅式瓶颈分析 • 环境 • FUSE daemon使⽤ passthrough_ll 调⽤底层ext4 • 进程共享内存通信延迟10us+ • others 开销 10us+ • fuse_ll_ops开销10us-基于FUSE的优化框架 • 相关⼯作 • extFUSE • google android12 passthrough什么是eBPF • ebpf是不同环境下内核配置, 调试,监控⼯具 • map映射 • 验证器 • Hook • Helper api配置TCP Initial RTO • 场景 内核4.12之前 initial RTO是⼀个常数1s • 应⽤类型BPF_PROG_TYPE_SOCK_OPS0 码力 | 20 页 | 7.40 MB | 6 月前3
Curve核心组件之mds – 网易数帆多个pool,可以选择一个logicalPool独享一个pool。 通过结合curve的用户系统,LogicalPool可以通过配置限定特定user使用的方式,实现多个租户数据物理 隔离(待开发)。TOPOLOGY Topology的实际例子,右侧是topo配置文件: 集群有一个物理pool,由3个zone组成,每个zone有1台server。 在物理pool上,还创建了一个逻辑pool,逻辑pool使用3个zone,采用 间的通信将会非常复杂,例如复制组内Primary给Secondary定期发送心跳进行探活,在256K个复制组的情况 下,心跳的流量将会非常大;而引入CopySet的概念之后,可以以CopySet的粒度进行探活、配置变更,降低 开销。 3. 提高数据可靠性:在数据复制组过度打散的情况下,在发生多个节点同时故障的情况下,数据的可靠性会受 到影响。引入CopySet,可提高分布式存储系统中的数据持久性,降低数据丢失的概率。COPYSET 通过上述信息的定期更新,作为schedule 模块进行均衡及配置变更的依据 • 通过chunkserver定期上报copyset的copyset的epoch, 检测chunkserver的copyset与mds差异,同 步两者的copyset信息 • 支持配置变更功能,在心跳回复报文中下发mds发起的配置变更命令,并在后续心跳中获取配置 变更进度。HEARTBEAT MDS端:mds 端的心跳主要由三个部分组成:0 码力 | 23 页 | 1.74 MB | 6 月前3
CurveFs 用户权限系统调研一、Curvefs测试 代码:https://github.com/cw123/curve/tree/fs_s3_joint_debugging 环境:test2 1. 启动curvefs 手动创建curve卷,/etc/curve/client.conf中配置卷所在集群信息。 启动服务&client挂载卷:bash startfs.sh start volume (挂载目录为/tmp/fsmount)© allow-other'以允许相应用户有权访问该文件系统,如果挂载者不是root还需要在/etc/fuse.conf(/usr/local/etc/fuse.conf)中增加配置项“user_allow_other”(该配置项是无值的)。详见libfuse官方文 档:https://github.com/libfuse/libfuse#security-implications # The file 1:前期可以先不自己实现权限管理,使用‘default_permissions’ 和 ‘allow_other’的mount option(如果是非root用户进行挂载还需要在/etc/fuse.conf中增加配置项‘user_allow_other’)启用内核基于mode的权限控制。 2:新建rootinode mode = 1777(原因是设置STICKY,避免普通用户对非自己所属文件的删除) 3:这0 码力 | 33 页 | 732.13 KB | 6 月前3
CurveFS ChunkID持久化ChunkIDGenerator对象的GenChunkID方法; ChunkIDGenerator 类 构造函数 初始化 init 函数:用于初始化或者更改 ChunkIdAllocatorImpl 的一些配置。但是这些配置不会立即生效,而是等到当前 chunkId池枯竭时才会生效。 析构函数 GenChunkID 申请的chunkID池是否枯竭? 是,使用 KVStorageClient 申请新的chunkid (etcd中记录的已使用chunkID增加一个chunkID Bundle 的大小); 申请失败 storeKey_不存在,从现在已使用的 ChunkID 继续申请新的 Bundle 首次连接 etcd etcd 环境切换 storeKey_ 被删除 其他 storeKey_ 在etcd上的Value不可解码 返回一个新的chunkid 方案 class ChunkIDGenerator { client_;0 码力 | 3 页 | 79.38 KB | 6 月前3
CurveFS方案设计com/team/km_curve/article/29140 cephfs: https://kms.netease.com/team/km_curve/article/27909 性能对比 并对以上文件系统在相同环境进行了元数据节点性能测试: 。测试结果c开发的moosefs和fastcfs元数据性能远优于go开发的chubaofs和c开发的cephfs,理论上分析这个结果是合理的,分布式的元数据设 调研测试 4k,以一个20TB的盘为例: blk=4k, 需要bitmap的大小为640MB blk=64k, 需要bitmap的大小为40MB 在设计过程中,对于每个文件系统,blk应该是可以根据业务形态来配置的 bitmap重建时间? 如果通过获取所有inode,重建出当前的空间分配情况,我们常见的业务形态有以下两种: ① 在AI训练等场景,文件的目录层级较少,文件数量较多,文件较小。这种情况inode0 码力 | 14 页 | 619.32 KB | 6 月前3
副本如何用CLup管理PolarDBCLUP TOP SQL功能http://www.csudata.com │中启乘数科技(杭州)有限公司 数据赋能│价值创新 Clup管理界面-在Web界面中管理数据库-9- @ PolarDB环境准备创建PolarDB的要求 安装要求 需要有共享盘:盘的大小需要大于等于20GB CLup的高可用需要VIP 操作系统:CentOS7.X 盘要求有路径:/dev/nvmeXnY 盘要求有路径:/dev/nvmeXnY 机器需求 4台虚拟机器或物理机 1台做CLup管理节点:内存大于2GB 3台做数据库节点:内存需要大于4GB,最好有反亲和性,即能分布在不同的 物理机上以保证高可用性阿里云的环境中创建Polardb的方法 共享盘使用阿里云自带的高性能Nvme盘,注意使用Nvme磁盘对可用 区有要求: • 华东1(杭州)可用区I • 华东2(上海)可用区B • 华北2(北京)可用区K • 华南1(深圳)可用区F。 华南1(深圳)可用区F。 只有某些规格的虚拟机可以挂载Nvme共享盘: • g7se • c7se • r7se 虚拟机要求是按量付费才可以挂载Nvme共享盘 阿里云的VIP功能目前还在内侧阶段,需要申请其他云环境中使用CLup创建Polardb的情况 天翼云 共享盘:所有虚拟机都 可以挂载 有VIP 机器有反亲和性 华为云 有共享盘 有VIP 机器有反亲和性 移动云0 码力 | 34 页 | 3.59 MB | 6 月前3
Raft在Curve存储中的工程实践点初始状态一致的时候,保证节点之间状态一致。 raft日志复制RAFT协议简介 raft配置变更 • 配置:加入一致性算法的服务器集合。 • 集群的配置不可避免会发生变更,比如替换宕机的机器。 直接配置变更可能出现双主问题 • 共同一致(joint consensus) • 集群先切换到一个过渡的配置(old + new),一旦共同一 致已经被提交,系统切换到新的配置(new)。RAFT协议简介 日志压缩 • 日志会不断增长,占用空间 metaserver有两套存储引擎,基于memory和基于rocksdb。 Curve文件系统与Curve块存储的实现区别CURVE的RAFT配置变更 心跳 • 通过心跳维持mds和chunkserver/metaserve的 数据交互 • mds发起配置变更,copyset复制组执行 • 在curve自动容错和负载均衡时,需要进行raft配 置变更。 • 自动容错保证常见异常(如坏盘、机器宕机)导 存等资源的利用率最大化。 Curve块存储和文件存储的配置变更实现基本一致CURVE的RAFT配置变更 异常场景下配置变更 • ReplicaSchedule • RecoverSchedule 均衡场景下配置变更 • CopySetSchedule • LeaderSchedule • RapidLeaderSchedulerCURVE的RAFT配置变更 异常场景下配置变更 • ReplicaSchedule0 码力 | 29 页 | 2.20 MB | 6 月前3
CurveFS Copyset与FS对应关系t的能力*copyset的个数 = 这个metanode的的处理能力。通过合理的配置copyset的能力的,应该的可以避免一个机器上,有太多的copyset。 结论:coypset由fs共用。具体的使用上,每一个copyset上,有一个可以由多少fs共用的限制。这个限制通过配置文件进行配置。用户挂载时可以通过参数配置是否独占copyset。原因是,为了避免fs独占copyset 带来的copyset数量过多影响性能的问题。 node。 client在系统初始化的时候, 还需要起来一个后台线程,定期的检查每一个fs的copyset的状态,如果某一个fs的可以提供分配inode能力的copyset的个数小于规定的值(来自配置文件,默认3个), 就为这个fs创 建一个新的copyset。© XXX Page 12 of 19© XXX Page 13 of 19 6.4、open流程© XXX Page 14 of 19© 4、实现出现异常场景下的数据恢复,副本修复的调度。 7.3 metaserver端 1、需要提供copyset的创建功能 2、由copyset负责inode和dentry的管理 3、定期向mds上报心跳,并根据心跳结果执行配置变更 metaserver 子模块拆分 metaserver service:接受rpc请求 copyset:负责对元数据的持久化,主要是一致性协议raft的处理© XXX Page 18 of0 码力 | 19 页 | 383.29 KB | 6 月前3
Curve元数据节点高可用但同时只有一个mds节点提供服务,称该提供服务的mds节点为主,等待节点为备;主节点的服务挂掉之后,备节点能启动服务,尽量减小服务中断的时间。 需要解决的问题就是:如何确定主备节点。 2. 技术选型 提供配置共享和服务发现的系统比较多,其中最为大家熟知的就是zookeeper和etcd, 考虑当前系统中mds有两个外部依赖模块,一是mysql, 用于存储集群拓扑的相关信息;二是etcd,用于存储文件的元 GetTimeout ③使用Observe监控指定前缀的key的最小版本的变化情况。© XXX Page 19 of 30 1. 2. 1. 该部分涉及到的参数说明: 参数 说明 当前配置 ElectionTimeout etcd集群leader选举的超时时间 3s LeaseTime mds当选leader之后,与etcd集群维持租约的过期时间 租约的keepalive间隔为LeaseTime/3 为LeaseTIme 说明etcd server删除Leader/MDS1的时间在[0, LeaseTime]之间 这种情况会导致[0, LeaseTime]时间内没有MDS提供服务。 当前配置下, LeaseTime = GetTimeout,这种情况发生的概率极低,Lease在etcd新leader当选后没有失效,get也不应该超时 4.2.4.3 MDS1、MDS2、MDS3的租约全部过期©0 码力 | 30 页 | 2.42 MB | 6 月前3
共 20 条
- 1
- 2













