Curve核心组件之snapshotclone• 转储到s3对象存储 • 异步转储快照,底层使用copy-on-write技术,读写不影响转储 • 增量转储,第一次全量转储s3之后,后续只需转储增量部分 • 高可用,快照任务中断自动拉起继续转储快照和克隆的特点 • 克隆的定义 • 克隆是指从卷复制出卷的功能,提供快速的复制卷的能力。 • 这里的克隆还包括从快照回滚的功能 • 克隆的特点 • 支持Lazy和非Lazy两种模式克隆 Chunk的大小,即16MB DataObject: • 打快照时读取当前目标卷的所有快照的全 部metaObject • 根据本快照的chunk映射表,判断当前的 快照chunk是否需要转储 增量转储原理:快照在CHUNKSERVER上的数据组织 快照chunk和普通chunk,都是 ChunkServer上的ext4文件系统中 的文件,称为SnapFile和ChunkFile; 0 码力 | 23 页 | 1.32 MB | 6 月前3
MySQL 兼容性可以做到什么程度Truth 问题背景 数据孤岛怎么办? 下游MySQL 怎么做 Binlog Maxwell DebeziumPolarDB-X 完全兼容 MySQL Binlog 可行性 • 多节点产生多个增量事件队列 • 不同队列中事件之间的顺序 • 分布式事务完整性 • DDL 引起的多 Schema 版本问题 • 扩缩容引起的队列增减 ? Maxwell Debezium A: PolarDB-X 分布式数据库有哪些问题要考虑Demo for Global Binlog with Flink CDCPolarDB-X Global Binlog 特性详情 提供与 MySQL 生态下游透明对接能力 产品体验 • 与 MySQL Binlog 完全一致体验 • 文件格式兼容:Binlog v4 row-based • SQL 指令兼容:show binary logs… • MySQL 已有系统迁移怎么办? 下游Demo for ReplicationPolarDB-X Replication 特性详情 提供与 MySQL 主备复制的能力 产品体验 • 支持 MySQL Change Master 指令 • 原生作为 MySQL 备库的能力 • 支持 PolarDB-X 之间数据同步 • 支持 DDL 同步 • 支持事务复制、行级复制 已验证工具或系统 • MySQL/MariaDB0 码力 | 18 页 | 3.02 MB | 6 月前3
Curve设计要点Chunkserver 数据存储 副本一致性 • 客户端 Client 对元数据增删改查 对数据增删改查基本架构 • 快照克隆服务器 独立于核心服务 储到支持S3接口的 对象存储,不限制数量 异步快照、增量快照 从快照/镜像克隆 ( lazy/非lazy ) 从快照回滚数据组织形式 • 底层 可用性 / 可靠性 扩展性 / 负载均衡 向上提供无差别文件流 • Application 块/对象/EC等 1 : N chunk有先后关系 • 创建时指定大小,lazy分配chunk • 提供4kb随机读写能力数据组织形式 • PageFile • 地址空间到—>chunk: 1 : N chunk有先后关系 • 创建时指定大小,lazy分配chunk • 提供4kb随机读写能力 • 支撑块设备应用场景 块设备层面的快照功能 即为文件层面快照数据组织形式 • AppendFile0 码力 | 35 页 | 2.03 MB | 6 月前3
CurveFS方案设计apply的时候是以kv的方式写入到文件,因此可以复用这个逻辑。 客户端感知文件版本号。如果版本号变更,就触发raft的sanpshot,并且只apply小于版本号的部分 这种方式相当于每次都是全量缓存当前元数据,不做增量快照,考虑到转储逻辑,这也是可以接受的 对比这两种方案,第一种方案对于copy场景是友好的,但需要重新实现一套快照逻辑;第二种方案的改动和实现相对简单,并且对于需要备份的场景也是够用的。从可 需要实现空间分配器,可以复用快照逻辑做文件系统级别的快照。 对比两种方案:首先curve设计的初衷是提供一个存储底座,在这个底座上构建文件、块、对象等,第一种方式相当于重新开发了一套文件系统,并没有用到块设备的能力。另外第一种方式虽然更加灵活,在空间 管理方面更加简单(本地文件系统已经进行了空间管理),但数据层面需要重新设计,工作量是比较大的。因此我们选择基于块设备构建curvefs。 空间管理设计如下:0 码力 | 14 页 | 619.32 KB | 6 月前3
CurveFS S3数据整理(合并碎片、清理冗余)取的chunkid,为需要新增的obj - 老的obj为全部需要删除的部分 应用变更 - 先读写新增的s3 objects列表, 由于新增了version字段, 不会涉及到覆盖老的对象 - 加锁, 增量的更新inode的s3chunkinfolist, 保证原子更新, 更新失败回退新增数据 - 等待N秒, 保证mds已经告知client缓存失效, 需要更新为新的s3chunkinfolist //0 码力 | 3 页 | 101.58 KB | 6 月前3
curvefs client删除文件和目录功能设计erver unlink,而不直接删除inode 修改open,增加release接口,调用metaserver open 和close接口,增加open计数,记录client端open的数量 增量client与metaserver session模块,定期refresh session 到metaserver,这个要做客户端级别的,不是文件级别的,防止rpc请求数量过多 MetaServer端功能一0 码力 | 15 页 | 325.42 KB | 6 月前3
CurveFS Copyset与FS对应关系ry 8.2 一台机器上建议的copyset数量 8.3 每个copyset建议管理存储容量的大小 1、背景 curvefs使用raft作为元数据一致性的保证。为了提高元数据的可扩展性和并发处理能力,采用元数据分片的方式管理inode和dentry的元数据。inode的分片依据是fsid + inodeid,dentry的分片依据是fsid + parentinodeid。借鉴curve块设备 数是有限制的,当内存和磁盘的到达一定的限度之后,这个metanode就变成readonly的,然后也不让分配新的copyset了。每个copyset的能力*copyset的个数 = 这个metanode的的处理能力。通过合理的配置copyset的能力的,应该的可以避免一个机器上,有太多的copyset。 结论:coypset由fs共用。具体的使用上,每一个copyset上,有一个可以由多少fs共 现上难度应该很大,暂时不考虑。 还有一种方式是chubaofs方案,在文件系统初始化的时候,初始化少数copyset,然后copyset的处理能力有限, ,这个copyset转化为readonly,继续创建新的copyset 当copyset的使用能力达到一定的限度的时候 提供服务。 结论:copyset的个数动态调整,类似的chubaofs的方案,一开始的为fs分配少数copyset。随着0 码力 | 19 页 | 383.29 KB | 6 月前3
Curve 分布式存储设计低成本大容量需求的业务 4. 中间件冷热数据自动分离 5. S3和POSIX统一访问需求 主要挑战和支持场景Curve Roadmap 1. 架构 1. 文件存储支持分布式缓存、完善冷热数据分层存储能力 2. 完善混合云、公有云上部署架构 3. 完善高性能3副本存储引擎,支持混合盘 4. 文件存储支持数据存储到HDFS、rados等引擎 2. 性能 1. 完善RDMA/SPDK方案,发布稳定版本0 码力 | 20 页 | 4.13 MB | 6 月前3
TGT服务器的优化开源界有尝试修改 • 例如sheepdog的开发者提交过一个patch,但是测试效果不理想,分析 原因,event loop依然是瓶颈对TGT的性能优化 • IO是使用多个epoll 线程,充分发挥多CPU能力 • 当前策略是每个target一个epoll线程,负责Initiator发过来的I/O • 好处是各target上的CPU使用由OS负责分配,CPU分配粒度更细 • 也可以多个卷的lun都分配到0 码力 | 15 页 | 637.11 KB | 6 月前3
新一代云原生分布式存储•服务质量要求:数据不能丢、服务随时可用、弹性扩缩容 要什么 •成百上千台存储节点 •磁盘故障、机器故障、网络故障概率性发生 有什么 分布式存储系统需要满足接口需求,并且有持续监控、错误检测、容错与自动恢复的能力 以达到高可靠、高可用、高可扩分布式存储的要素 要 素 拆 解 数据分布 —— 无中心节点/中心节点 均 衡 地址空间的每段数据会分布在不同机器的磁盘上,如0 码力 | 29 页 | 2.46 MB | 6 月前3
共 13 条
- 1
- 2













