CurveFS Copyset与FS对应关系造成巨大的锁开销,这个是不能接受的。 curve块设备的元数据管理,在分配数据的时候,offset一开始就是知道的,这是和curvefs分配很大的一个不同点。 假设已经确定了一个分片规则,那么根据这个分片规则,一定可以找到两个函数 inodeid到copyset的映射:copysetid = getPartition(inodeid) copyset管理的inode的范围:inoderange t)© XXX Page 8 of 19 3.1 如何获取inodeid 在create inode的时候,并不知道inode id,inode id是在创建完成之后返回的,这就没有办法利用分片规则去确定到底应该由哪个copyset去服务这个inode。 。 有两种思路 思路一:client在创建inode的时候,先去mds去获取一个inodeid,然后根据这个inode id找到服务这个i 个。mds调用topology的接口找到3个可用的copyset,如果没有足够可用的cop yset,就创建新的copyset补齐。 然后生成一条rootInode的记录,根据copyset的分片规则,在对应的copyset上插入一条rootinode的记录。最后修改fs状态为INITED。© XXX Page 10 of 19© XXX Page 11 of 19 6.2、挂载fs 挂载f0 码力 | 19 页 | 383.29 KB | 6 月前3
Curve支持S3 数据缓存方案,这里要注意一点:回退的过程,如果chunkCacheMap_为空,则直接swap回退。如果chunkCacheMap_不为空,则表示F lush的过程中有新的cache加入,则需要进行合并,合并的规则是新的cache如果和老的cache有重叠则覆盖老的cache。 FsSync流程 1.循环获取FileCacheManager,执行Flush函数。© XXX Page 9 of 9 后台流程0 码力 | 9 页 | 179.72 KB | 6 月前3
Curve质量监控与运维 - 网易数帆和混沌测试,确保master分支代码的 bug尽可能早地暴露出来。 通过这种流程,curve可以在一定 程度上保证master分支的稳定性。 master 10/33版本管理 Curve版本命名规则是x.y.z{-后缀} x为主版本号,每次发布大版本时递增; 大版本一般半年发布一次。 y为次版本号,每次发布小版本时递增; 小版本一般1~2个月发布一次。 z为修订号,修复一批bug后递增。0 码力 | 33 页 | 2.64 MB | 6 月前3
Curve文件系统元数据管理前简单按照算法为 serverid = (inodeid / inode_per_segment) mod metaserver_num 进行分片。分片算法的具体实现不影响下面的讨论。 比如说分片规则按照每个分片管100个inodeid,如果有3个metaserver,那么分片信息就变成了这样。© XXX Page 11 of 24 5.1 分片方式一:inode和dentry都按照parentid分片0 码力 | 24 页 | 204.67 KB | 6 月前3
CurveFs 用户权限系统调研pathnames -v, --version print version and exit -h, --help this help text ACL的使用规则和原理: ACL是由一系列的Access Entry所组成的,每一条Access Entry定义了特定的类别可以对文件拥有的操作权限。Access Entry有三个组成部分:Entry tag type0 码力 | 33 页 | 732.13 KB | 6 月前3
共 5 条
- 1













