Curve 分布式存储设计Maintainer XAgenda 第二 第三 第四 第一 Curve的由来 Curve的设计目标 Curve块存储 和 Curve文件存储 Curve社区Curve的由来 1. 代码复杂/代码量大 2. 运维难度高 3. 无法满足高的性能需求Curve的设计目标 1. Curve云原生软件定义存储 2. Curve块存储 3. Curve文件存储 4. 高性能,易运维,云原生Curve块存储 户端逻辑Curve块存储 故障对I/O抖动延迟的影响 FAULTS CASE CURVE I/O 抖动Curve文件存储 1. 元数据服务 2. 高性能 3. 可扩展易运维 4. 云原生 设计目标Curve文件存储 1. 兼顾性能与容量的机器学习 场景 2. 快速跨云弹性发布的业务 3. 低成本大容量需求的业务 4. 中间件冷热数据自动分离 5. S3和POSIX统一访问需求 主要挑战和支持场景Curve0 码力 | 20 页 | 4.13 MB | 6 月前3
Curve核心组件之snapshotcloneSnapshotCloneServer 6.删除内部快照数据快照的元数据和数据组织 字段 类型 说明 uuid string 快照唯一Id user string 所属用户 fileName string 快照目标卷名 snapshotName string 快照名 seqNum uint64_t 快照版本号 chunkSize uint32_t chunk的size segmentSize uint64_t 快照目的卷的卷名等信息 • chunkMap 快照chunk映射表 MetaObject: • 保存完整的chunk数据,大小为一个 Chunk的大小,即16MB DataObject: • 打快照时读取当前目标卷的所有快照的全 部metaObject • 根据本快照的chunk映射表,判断当前的 快照chunk是否需要转储 增量转储原理:快照在CHUNKSERVER上的数据组织 快照chunk和普通chunk,都是 • 5. 更新克隆卷状态为metaInstalled。 • 6. 发起ChunkServer数据拷贝 • 7. ChunkServer从克隆源拷贝数据。 • 8. 将卷从临时卷rename为克隆目标卷名。 • 9. 更新克隆卷状态为Cloned。 克隆流程: chunk chunk chunk chunkserver meta object data object data object0 码力 | 23 页 | 1.32 MB | 6 月前3
新一代云原生分布式存储Copyset: 复制组 ChunkServer: 管理一个磁盘进程架构简介 — 数据放置 Copyset的放置 Chunk的分配 • 由中心节点MDS以Scatter-width 均衡为目标进行创建 • 由中心节点MDS在各Copyset中 根据权重进行选择架构简介 — 一致性协议 复制策略 • 主动拷贝,由 leader 向 follower 并发拷贝 异常处理 • 自动leader选举0 码力 | 29 页 | 2.46 MB | 6 月前3
Raft在Curve存储中的工程实践Curve作为云存储中间件使用S3兼容的对象 存储作为数据存储引擎,为公有云用户提供 高性价比的共享文件存储 • 支持在物理机上挂载使用块设备或FUSE文件 系统开源社区 社区运营 生态共建 开源共建 源码兜底 技术领先 目标 方法 影响力 降本 获客 用户 开发者 操作系统 芯片 数据库 云原生 AI训练 大数据 社区生态Curve介绍 01 02 raft和braft 03 raft在Curve中的应用0 码力 | 29 页 | 2.20 MB | 6 月前3
Curve质量监控与运维 - 网易数帆21/33监控指标的采集与存储 Curve使用开源的监控工具Prometheus采集监控指标,大致 流程为: 1. 部署监控时,Curve根据集群信息生成配置文件, 指定了 Prometheus的监控目标(包括Client、MDS、 ChunkServer、Etcd、物理节点等)。 2. Prometheus依据上述配置文件,发现相应服务。 3. Prometheus server以pull的方式,定期从Curve集群中0 码力 | 33 页 | 2.64 MB | 6 月前3
CurveFS方案设计背景 为更好的支持云原生的场景,Curve需要支持高性能通用文件系统,其中高性能主要是适配云原生数据库的场景。当前Curve是实现了块存储,向上提供块设备服务,CurveFS会基于此实现。第一阶段的目标是实现 满足数据库场景的文件接口。 调研 开源fs 当前对已有的开源分布式文件系统进行了调研,主要包括系统架构,元数据内存结构,元数据持久化,调研文档如下: chubaofs: ChubaoFS©0 码力 | 14 页 | 619.32 KB | 6 月前3
Open Flags 调研int flags; int mod; uint64_t pos; Inode *inode; } 具体flag的实现方案 O_TRUNC 需要实现file_truncate接口,接口中对目标文件进行内容删除,length置0。© XXX Page 16 of 23 # root@pubbeta1-nostest2:/tmp/fsmount# echo "1111111111111111"0 码力 | 23 页 | 524.47 KB | 6 月前3
共 7 条
- 1













