NJSD eBPF 技术文档 - 0924版本• 问题 • 相对kernel⽂件系统的实现(ext4, xfs)性能 差异⼤,延迟⾼FUSE⽂件IO读写流程 • 场景1 pytorch example word_language_model • LOOKUP inode 返回 fstat + timeout设置 • OPEN 打开 inode返回ok • GETATTR 返回fstat • READ inode 读取的内容不等从16KB到128KB0 码力 | 20 页 | 7.40 MB | 6 月前3
CurveFS对接S3方案设计init流程 write流程 read流程 整体架构 S3ClientAdaptor模块:负责将文件数据进行chunk,以及block的拆分为s3的object,并写入/读取s3的object。 S3-allocator模块:负责分配s3-object唯一标识。© XXX Page 3 of 11 整体思路 curvefs对接s3和对接volume主要的区别在于数据持久化 在read/write/flush,以及空间分配申请(s3不需要释放空间,可 直接删除对应s3 object) 文件首先会按照chunk进行拆分,每个chunk固定64M/1G(待定),chunk内部会划分为多个block,每个block最大4M,每个block对应s3上一个object。 s3上对象已chunkid_indexblock_version进行命名,元 required uint64 len = 4; // file logic length required uint64 size = 5; // file size in object storage }; message S3ChunkInfoList { repeated S3ChunkInfo s3Chunks = 1; }; message Update0 码力 | 11 页 | 145.77 KB | 6 月前3
Curve核心组件之snapshotclone。 • 6.mds调用chunkserver接口,删除内部快照 数据 快照流程: chunk chunk chunk chunkserver meta object data object data object S3 Snap Task etcd mds client 3.获取快照元数据 datastore metastore http service clone 将卷从临时卷rename为克隆目标卷名。 • 9. 更新克隆卷状态为Cloned。 克隆流程: chunk chunk chunk chunkserver meta object data object data object S3 Snap Task etcd MDS client 2.创建克隆卷 3.分配卷空间 7.拷贝数据 datastore metastore http0 码力 | 23 页 | 1.32 MB | 6 月前3
CurveFS S3数据整理(合并碎片、清理冗余)chunkid version // write always 0, compact will increase it offset len } s3 object命名: chunkid_version_index (index为obj在chunk内的index) 执行步骤 数据整理作为一个后台服务(线程池), 运行于metaserver, 遍历 更新失败回退新增数据 - 等待N秒, 保证mds已经告知client缓存失效, 需要更新为新的s3chunkinfolist // 需不需要这个步骤@xuchaojie @chenwei确认 - 删除老的object 问题与风险 在执行变更时, 在bcd步挂掉时, 会造成s3数据的残留 当同时有多个变更inode元数据(s3chunkinfolist)的动作时, 目前的updateinode的实现是直接的覆盖 2. 1. 2. 需要进行一个merge的步骤 在做变更时如果有其他op可能会产生的冲突: 读: 在执行变更删除原来的s3 object时, 执行读的客户端的缓存可能还是原有的chunkinfolist, 可能会去读已经删除的object, 这种时候读会失败 可以使用双重保证 读失败的时候retry, 或许可以重拉metadata 整理后, mds在一个时间间隔内主动告知client这个inode元数据缓存失效0 码力 | 3 页 | 101.58 KB | 6 月前3
CurveBS IO Processing Flowwrite data 4. Snapshotcloneserver l Independent of core services l Snapshot data is stored in object storage which supports S3 apis. Therefore, there is no limit of snapshots l Support asynchronous is very good in this way. 2. Fs-data cluster is used to store file data. Curve-fuse Supports Object storage by S3 apis and CurveBS CurveBS performance considerations 1. CurveBS uses raft as a consistency0 码力 | 13 页 | 2.03 MB | 6 月前3
新一代云原生分布式存储FAQ 答疑架构简介 — 总体架构 开源分布式存储界的扛把子 支持块存储、文件存储、对象存储架构简介 — 概念介绍 object:存储单元 PG:Placement Groups 归置组 归置组中的成员为副本 OSD:Object Storage Device, 管理一个磁盘的进程架构简介 — 数据放置 使用多级哈希的方式 使用0 码力 | 29 页 | 2.46 MB | 6 月前3
OID CND Asia Slide: CurveFSstorage pools through interfaces such as NFS/HDFS/Posix api Manage multiple types of storage (object storage, HDFS storage, Elastic block storage) Support both on-premise and public cloudsAgenda0 码力 | 24 页 | 3.47 MB | 6 月前3
Curve支持S3 数据缓存方案required uint64 len = 4; // file logic length required uint64 size = 5; // file size in object storage }; message Inode { required uint64 inodeId = 1; required uint32 fsId = 2; required0 码力 | 9 页 | 179.72 KB | 6 月前3
共 8 条
- 1













