curvefs client删除文件和目录功能设计
方案设计思考 1.Trash机制是实现1个(类似chubaofs),还是2个(类似moosefs)? 2. Trash放在哪里? 3. 是否需要做session机制(在metaserver打开),来维护inode的打开情况? 方案设计 Trash机制: Session机制: 遗留问题 工作量评估 背景 目前curvefs client版本对删除unlink和rmdir的设计只有简单的删除in 所以不影响它对该文件的读写操作,当所有客户端都关闭该文件后,该文 件节点才会从 被清除。 reserve 使用了session机制,记录client端的open状态 通过META文件系统访问reserve 使用CUTOMA_FUSE_RESERVED_INODES消息保持和释放inode 实现了Timer,定期判断是否还有session,如果没有client打开,则进行清理。 优点: 通过meta文件系统来管理trash,更为优雅。© chubaofs也实现了查询机制,来查询处于freelist当中的inode的情况,以便与运维,这一部分没有细看。 优点: 实现简单,开发代价小,且后续可以增加metaserver端打开(session)等机制,向着moosefs的演进也是可以的。 我们的整个架构设计本身就类似chubao方式,这个方案本身是chubaofs的成熟方案,说明是已经被验证过是可行的方案。 缺点: 由于link0 码力 | 15 页 | 325.42 KB | 5 月前3Curve元数据节点高可用
Election struct { session *Session // etcd serversession keyPrefix string // leaderKey string // leaderkey leaderRev int64 // leaderkeyrevision leaderSession *Session // leaderSession leader func (e *Election) Campaign(ctx context.Context, val string) error { s := e.session client := e.session.Client() k := fmt.Sprintf("%s%x", e.keyPrefix, s.Lease()) txn := client.Txn(ctx)0 码力 | 30 页 | 2.42 MB | 5 月前3CurveFs 用户权限系统调研
nodeid, const void *inarg) { struct fuse_init_in *arg = (struct fuse_init_in *) inarg; struct fuse_session *se = req->se; ... if (arg->flags & FUSE_POSIX_ACL) se->conn.capable |= FUSE_CAP_POSIX_ACL; maximum size of read requests© XXX Page 11 of 33 * must be set both here *and* passed to fuse_session_new() * using the ``-o max_read=`` mount option. At some point * in the future, specifying 0 码力 | 33 页 | 732.13 KB | 5 月前3TGT服务器的优化
也可以多个卷的lun都分配到一个target上,这样多个卷共享一个target, 限制使用一个CPU。 • 管理平面不变。主线程里的事件循环及问题: 管理面是主线程,登录,增、删、改target,lun,session,connection,params 都在主线程,而target epoll 线程也要使用这些数据,多线程冲突,数据一 致性问题就来了对TGT的性能优化(续) • 为每一个target增加一把锁0 码力 | 15 页 | 637.11 KB | 5 月前3CurveFS Client 概要设计
server接口获取文件和目录信息等 与现有块设备client交互,调用块设备接口,对卷进行读写。 向上对接fuse接口,协调上述模块交互,实现功能。 main 主函数模块,类似deamon,接收mount消息并处理(fuse session)。 除上述功能以外,还需实现文件系统创建和fuse挂载工具,功能主要是: 创建文件系统,指定文件系统的名字、卷大小(多文件系统)、 扩展文件系统? 挂载fuse文件系统,指定挂载点、文件系统名字或fsID、server0 码力 | 11 页 | 487.92 KB | 5 月前3
共 5 条
- 1