Curve核心组件之mds – 网易数帆故障域的隔离:比如副本的放置分布在不同机器,不同机架,或是不同的交换机下面。 2. 隔离和共享:不同用户的数据可以实现固定物理资源的隔离和共享。 • pool: 用于实现对机器资源进行物理隔离,server不能跨 Pool交互。运维上,建议以pool为单元进行物理资源的扩 容。 • zone: 故障隔离的基本单元,一般来说属于不同zone的机 器至少是部署在不同的机架,一个server必须归属于一个 果在Chunk到复制组之间引入一个CopySet,每个Chunk可以用ChunkID+CopySetID=12个byte。 2. 减少复制组数量:如果一个数据节点存在 256K个复制组,复制组的内存资源占用将会非常恐怖;复制组之 间的通信将会非常复杂,例如复制组内Primary给Secondary定期发送心跳进行探活,在256K个复制组的情况 下,心跳的流量将会非常大;而引入CopySet的概 存储系统的核心问题,也是 curve 是否能上生产环境的决定因素之一。 • 自动容错保证常见异常(如坏盘、机器宕机)导致的数据丢失不依赖人工处理,可 以自动修复。 • 负载均衡和资源均衡保证集群中的磁盘、cpu、内存等资源的利用率最大化。SCHEDULE Schdedule的具体实现 Coordinator: 调度模块的对外接口。心跳会将 chunkserver上报上来的copyset信息提交给0 码力 | 23 页 | 1.74 MB | 6 月前3
CurveFS Copyset与FS对应关系用copyset的影响比较大的方面在其他地 方。一个是copyset的数目,如果的每个fs独占copyset,那么整个系统的copyset的个数一定会比非独占多。copyset对资源的占用开销大不大。 会不会因为太吃资源导致性能反而下降。chubaofs的 大量的copyset 方案里面,每一个metanode上能够服务的copyset个数是有限制的,当内存和磁盘的到达一定的限度之后,这个met client在创建inode的时候,如何选择copyset。client在fs的所有可用的copyset中,轮询进行inode的分配。如果选择的copyset创建inode失败,比如说metaserver返回copyset上的资源已经满了,这时client需 要把这个copyset的转为readonly模式,这个copyset不再承担inode的新建功能。client继续尝试下一个copyset,直到成功从一个copyset上创建到1个inode。0 码力 | 19 页 | 383.29 KB | 6 月前3
Raft在Curve存储中的工程实践• 在curve自动容错和负载均衡时,需要进行raft配 置变更。 • 自动容错保证常见异常(如坏盘、机器宕机)导 致的数据丢失不依赖人工处理,可以自动修复。 • 负载均衡和资源均衡保证集群中的磁盘、cpu、内 存等资源的利用率最大化。 Curve块存储和文件存储的配置变更实现基本一致CURVE的RAFT配置变更 异常场景下配置变更 • ReplicaSchedule • RecoverSchedule0 码力 | 29 页 | 2.20 MB | 6 月前3
Curve 分布式存储设计chunkfilepool (降低写放大) 7. data stripe (增大并发) 8. zerocopy 9. 云原生 核心设计Curve块存储 1. physical pool用于实现对机 器资源物理隔离 2. zone故障隔离的基本单元 3. server表示物理服务器 4. chunkserver物理服务器上 的服务实例 拓扑结构Curve块存储 1. Curve块存储将虚拟块设备0 码力 | 20 页 | 4.13 MB | 6 月前3
Curve设计要点选主,实现高可用高可用 chunkserver 使用raft,2N + 1 个副本允许 N 副本异常自治 • 自动故障恢复 • 多对多,恢复时间短 • 精确的流量控制,对io几乎无影响自治 • 集群负载和资源均衡 • leader copyset scatter-width • 无需人工干预 • 对io影响几乎无影响易运维 • 升级秒级影响 • 客户端采用CS架构 • NEBD Client:0 码力 | 35 页 | 2.03 MB | 6 月前3
新一代云原生分布式存储伪随机算法在服务器数量特别大的时候接近均衡 • 节点故障(DiskNums)变更会涉及其他数据的迁移 有中心节点:持久化对应关系 • 需要将数据分布(元数据)持久化 • 中心节点感知集群的信息,进行资源实时调度 • 节点故障不会涉及其他的数据迁移 KEY (Offset, Len) VALUE (DiskID) (0, 4MB) 70 (4MB, 8MB) 60 (8MB, 16MB)0 码力 | 29 页 | 2.46 MB | 6 月前3
BRPC与UCX集成指南–Active message, atomic operation, tag match, stream27 典型的RDMA栈28 UCX 编程的一些基本概念 ●Context –收集机器资源(内存,网卡等),在应用的各个部分共享 ●Worker –完成ucx的功能,可以在应用程序中调用的函数(不是单独执行的线程) ●Listener –接收连接请求 ●Ep –连接对象,在ep上请求发送和接收290 码力 | 66 页 | 16.29 MB | 6 月前3
Curve质量监控与运维 - 网易数帆 单个模块的误差积累是否会放大,从而 达到不可接受的程度。 功能测试 站在使用者的角度,对模块提供的功能进行完备 的测试。 异常测试 制造或模拟系统异常(磁盘错误、网络错误、资源 冲突等)、依赖服务异常、应用本身异常等非正常 情况,测试软件的性能和稳定性是否符合预期。 规模测试 测试模块在一定规模下是否能够正常工作,是否 会出现异常或者崩溃, 14/33系统测试0 码力 | 33 页 | 2.64 MB | 6 月前3
Curve元数据节点高可用事件一先发生 4.2.5.2 事件二先发生 4.2.6 异常情况4:Etcd集群的follower节点异常 4.2.7 各情况汇总 1. 需求 mds是元数据节点,负责空间分配,集群状态监控,集群节点间的资源均衡等,mds故障可能会导致client端无法写入。 因此,mds需要做高可用。满足多个mds, 但同时只有一个mds节点提供服务,称该提供服务的mds节点为主,等待节点为备;主节点的服务挂掉之后0 码力 | 30 页 | 2.42 MB | 6 月前3
Curve文件系统元数据管理titionid为uint64_t类型,那么一条记录需要16字节。一个文件系统按照10亿的元数据统计,10亿 * 16字节 = 1.5GB,全部缓存到内存需要1.5GB的内存。除了缓存需要占用的内存资源之外,如果涉及到多挂载的场景,还需要处理inode缓存失效的问题。 5.2 分片方式二:Inode按照inodeid进行分片,Dentry按照parentid进行分片© XXX Page 18 of0 码力 | 24 页 | 204.67 KB | 6 月前3
共 10 条
- 1













