CurveFs 用户权限系统调研
一、Curvefs测试 1. 启动curvefs 问题1:root用户无法访问挂载目录 测试 allow_root 测试allow_other 参考文献 问题2:本地文件系统挂载默认是共享的? 问题3:文件系统访问控制是在哪一层实现的? 二、文件系统权限管理 文件类型 文件权限 特殊权限(SUID, SGID, STICKY) 文件默认权限umask 用户&用户组 文件系统用户权限管理 对mode的管理 对ACL(Access fuse_client", MS_NOSUID|MS_NODEV, "allow_other,fd=9,rootmode=40000,"...) = 0 问题3:文件系统访问控制是在哪一层实现的? 测试curvefs,发现文件系统链路默认是没有做权限控制。(挂载点mode 777) # mountpoint wanghai01@pubbeta1-nostest2:/tmp$ ls -l | grep fsmount "world" >> file1 nbs@pubbeta1-nostest2:/tmp/fsmount$ cat file1 hello world 测试curvefs,发现文件系统链路默认是没有做权限控制。( 挂载点mode 755)© XXX Page 8 of 33 wanghai01@pubbeta1-nostest2:/tmp$ ls -l | grep fsmount drwxr-xr-x0 码力 | 33 页 | 732.13 KB | 5 月前3Curve质量监控与运维 - 网易数帆
C u r v e 质 量 、 监 控 与 运 维 秦 亦 1/33背景 01 02 03 04 Curve质量控制 Curve监控体系 Curve运维体系Curve 是网易针对块存储、对象存储、云原生数据库、EC等 多种场景自研的分布式存储系统: 高性能、低延迟 当前实现了高性能块存储,对接OpenStack和 K8s 网易内部线上无故障稳定运行近两年 已完整开源 (易部署、易升级、自治) ✓ 运维工具(部署工具、管理工具) 4/33背景 01 02 03 04 Curve质量控制 Curve监控体系 Curve运维体系软件质量 软件质量的定义是:软件与明确地和隐含地定义的需求相一致的程度。 为了确保最终交付的软件满足需求,必须将质量控制贯穿于设计、开发到测试的整个流程中。 设计 设计流程 文档规范 开发 编码规范与提交流程 完美兼容Jenkins ci 丰富的第三方库(ssh, paramiko, request等) 用例设计原则 无需绑定特定环境,“随意拉起” 配置化(测试环境、测试负载定义) 控制用例时间(考虑一些折中方案) Case独立性 Case通用性(兼顾curve、ceph等) Tag规范(优先级、版本、运行时间) 最大化覆盖率(打乱操作顺序、随机 sleep)0 码力 | 33 页 | 2.64 MB | 5 月前3Curve核心组件之chunkserver
ChunkServer架构Metric统计模块使用brpc中的bvar计数 器,统计一些IO层面和copyset层面的 一些指标,方便监控和跟踪。 ChunkServer架构并发控制层,负责对chunkserver的IO 请求进行并发控制,对上层的读写请 求安照chunk粒度进行Hash,使得不同 chunk的请求可以并发执行。 ChunkServer架构DataStore是对chunk落盘逻辑的封装。0 码力 | 29 页 | 1.61 MB | 5 月前3Curve设计要点
MDS、Snapshotcloneserver 通过 etcd 选主,实现高可用高可用 chunkserver 使用raft,2N + 1 个副本允许 N 副本异常自治 • 自动故障恢复 • 多对多,恢复时间短 • 精确的流量控制,对io几乎无影响自治 • 集群负载和资源均衡 • leader copyset scatter-width • 无需人工干预 • 对io影响几乎无影响易运维 • 升级秒级影响 • 客户端采用CS架构0 码力 | 35 页 | 2.03 MB | 5 月前3Curve核心组件之Client - 网易数帆
com/opencurve/curve-csi CLIENT上层应用CLIENT虚拟块设备CLIENT主要功能 提供接口 数据面:AioWrite/AioRead、Write/Read 控制面:Create/Delete、Open/Close、Rename等 IO处理:转换、拆分、合并 元数据获取及缓存 逻辑chunk与物理chunk映射关系 物理chunk所属的复制组(copyset)0 码力 | 27 页 | 1.57 MB | 5 月前3BRPC与UCX集成指南
Ucp Context ●只有一个全局对象,使用下列函数获取 ●UCP_Context* get_or_create_ucp_ctx() ●指定了FEATURE_AM, 多线程共享39 命令行参数控制context的属性 ●--brpc_ucp_error_mode缺省是none,是的本地通讯使用shared memory成为可能 ●--brpc_set_cpu_latency 非-1, 设置intel0 码力 | 66 页 | 16.29 MB | 5 月前3Curve支持S3 数据缓存方案
函数。© XXX Page 9 of 9 后台流程 1.在FsCacheManager中增加一个DataCacheNum_字段,如果该字段为0,表示没有cache需要flush,则线程由条件变量控制处于wait状态。 2.write流程会对后台线程处于wait状态的情况触发notify唤醒,同时修改DataCacheNum_。 3.后台会遍历DataCache,达到flushwait的时间,或者DataCache0 码力 | 9 页 | 179.72 KB | 5 月前3CurveFS Copyset与FS对应关系
2 一台机器上建议的copyset数量 当前curve机器上的copyset的数量是100个。curvefs也可按照curve的规格,每个机器上管理100个copyset。实际上这个值通过配置文件控制,到时候可以根据测试结果确定合适的copyset的数量。 8.3 每个copyset建议管理存储容量的大小 如果有100个的copyset,每个copyset管理2GB大小的元数据。0 码力 | 19 页 | 383.29 KB | 5 月前3Open Flags 调研
(fifo)© XXX Page 5 of 23 O_EXCL: 与O_CREATE一起使用,如果pathname已经存在则返回失败(EEXIST),否则创建文件成功。 : 该参数不会使打开的文件成为该进程的控制终端。如果没有指定这个标志,那么任何一个 输入都将会影响用户的进程。 O_NOCTTY : 如果文件存在,且是个普通文件,具有对该文件的写权限,该flag会将文件长度截断为0。 O_TRUNC :0 码力 | 23 页 | 524.47 KB | 5 月前3Curve文件系统元数据管理
E → 300 5、client给server1发送请求: 修改记录 "C"的inode link++ 这里涉及到增加dentry和增加link,这两个操作不在一个节点上,也需要使用分布式锁进行控制,做成事务。 list:遍历/A目录 1、client给server0发送请求: parentid 0 + name "A",查询"A"的inodeid为100 inode 100,查询的"A"的inode信息。0 码力 | 24 页 | 204.67 KB | 5 月前3
共 10 条
- 1