NJSD eBPF 技术文档 - 0924版本0 码力 | 20 页 | 7.40 MB | 6 月前3
CurveFs 用户权限系统调研挂载者不是root还需要在/etc/fuse.conf(/usr/local/etc/fuse.conf)中增加配置项“user_allow_other”(该配置项是无值的)。详见libfuse官方文 档:https://github.com/libfuse/libfuse#security-implications # The file /etc/fuse.conf allows for the SUID: 可执行的文件上。默认情况下,当用户执行此类可执行文件时,被发起的进程的所有者不是进程发起者,而是可执行文件的所有者;换句话说, 。 仅设置在 进程以所有者的身份运行 权限所显示的位置在文 件的属主的权限位中的执行权限位上,如果属主本来就具有执行权限,则显示为“s”,如果本来没有执行权限,则显示为“S”。 # SUID # chmod u+s FILE # chmod 4755 FILE 33 STICKY: 仅设置在目录的其他用户权限位的执行权限上。如果在某个目录上的权限设置为多个用户都拥有写权限,那就意味着凡是拥有写权限的用户都能直接管理该目录中的所有文件名,包括改名文件及删除文 件名等操作;因此需要在这样的目录上设置STICKY特殊权限;如果此类目录设置了STICKY,则所有用户即便拥有写权限,也仅能删除或改名所有者为其自身的文件; # STICKY # chmod o+t0 码力 | 33 页 | 732.13 KB | 6 月前3
Raft在Curve存储中的工程实践元数据集群:mds 和 metaserver。 • mds:保存元数据,包括topo信息、文件系统信 息、元数据分布信息等,持久化到etcd中。 • metaserver:采用raft协议3副本的方式保存文 件文件的元数据,包括inode,dentry,文件的 空间分配信息。 • 数据集群:采用外部存储,S3或者Curve块存储,保 存写入文件的数据。Curve文件存储RAFT应用 基于rocksdb的存储引擎 处理能力,对磁盘造成很大压力,影响正常IO。 解决思路: chunk支持覆盖写,覆盖写天然是幂等的,写一次和写多次结果一致。 打快照只记录chunk文件的列表,不拷贝chunk的内容。从快照+日志加载数据时,下载的chunk文 件不是打快照的状态,而是最新的状态,回放日志时,把数据重写一遍。Curve对RAFT的优化 优化点二: chunkfile pool 问题背景: Chunkserver使用基于ext4实现的本0 码力 | 29 页 | 2.20 MB | 6 月前3
Curve质量监控与运维 - 网易数帆程度上保证master分支的稳定性。 master 10/33版本管理 Curve版本命名规则是x.y.z{-后缀} x为主版本号,每次发布大版本时递增; 大版本一般半年发布一次。 y为次版本号,每次发布小版本时递增; 小版本一般1~2个月发布一次。 z为修订号,修复一批bug后递增。 后缀表示版本状态,beta表示测试版本,rc 表示发布候选版本,空白表示正式版。 Curve所有功能开发均在 从master拉出一个新分支release-x.y,打beta版标签后,提交QA团队测试 ; beta版的bug修复代码先合入master分支,再cherry-pick到release-x.y分支; beta版bug修复完成后,打rc版标签(可能有多个rc版),上线到测试环境; 经bug修复和长时间运行测试后,若代码达到正式上线标准,则发布正式版。 v1.0.0-beta v1.1.0-beta client升级影响QEMU,Curve Client采用了Client- Server架构,以支持热升级。 升级Curve Client只需重启NEBD Server,业务IO中断时间一般在5 秒之内(右图为1.0版本实测结果)。 MDS易升级 自动化滚动升级——先升备再升主,确保升级过程中只发生一次主 备切换。 ChunkServer易升级 自动化滚动升级——升级一个zone的所有ChunkServer后,等待集0 码力 | 33 页 | 2.64 MB | 6 月前3
Curve核心组件之snapshotclone根据本快照的chunk映射表,判断当前的 快照chunk是否需要转储 增量转储原理:快照在CHUNKSERVER上的数据组织 快照chunk和普通chunk,都是 ChunkServer上的ext4文件系统中 的文件,称为SnapFile和ChunkFile; SnapFile 与ChunkFile是同构的,都 来自ChunkFilePool; SnapFile与ChunkFile在同一个目录;0 码力 | 23 页 | 1.32 MB | 6 月前3
Curve核心组件之chunkserverChunkServer架构 ChunkServer核心模块 新版本ChunkServer性能优化Curve ChunkServer是数据节点, 对外提供数据读写和节点管理功 能,底层基于ext4文件系统,操 作实际的磁盘。 ChunkServer架构ChunkServer通过RPC网络层与client, MDS,其他ChunkServer通信。RPC 网络层是由brpc框架去完成的。包 括读写socket,rpc协议解析等。0 码力 | 29 页 | 1.61 MB | 6 月前3
Curve文件系统空间分配方案offset,blockoffset,length),当空间完全分配之后,extent的元数据量为24GiB(1PiB / 1MiB * 24,24为每个extent所占用的字节大小)。 如果同一文件在多次申请空间时,能分配连续的地址空间,则extent可以进行合并。例如,文件先后写入两次,每次写入1MiB数据,分别申请的地址空间为(100MiB,1MiB)和(101MiB,1MiB),则只需要一个ex0 码力 | 11 页 | 159.17 KB | 6 月前3
PolarDB开源生态介绍 - 杭州Meetup 2022.10.15曝光流量 竞技栏目: 100万/场 曝光流量 • SIG • Issue 开源代码协作 • 理事会 • 人才发展委员会 • 技术委员会 开源社区治理 • 联合解决方案|产品 • OxM发型版 • 数据库管理产品 • 数据迁移、联邦产品 生态伙伴合作 高校合作 学习、分享、比赛、贡献 服务客户 开源共建 社区运营 生态建设 获得生态 商业服务 使用开源 PolarDB 开源学习0 码力 | 7 页 | 1.45 MB | 6 月前3
Open Flags 调研果写操作不影响读取刚写入的数据,则不等待文件属性更新(在linux 2.6.33之前只有O_SYNC flag, 但是在绝大多数文件系统中对O_SYNC的实现都是O_DSYNC的含义,在2.6.33版本支持了O_DSYNC flag,且值使用原O_SYNC的值,但为了兼容老版本的O_SYNC,现在O_SYNC=O_DSYNC|04000000)。 FASYNC: 异步的,启用signal-driven0 码力 | 23 页 | 524.47 KB | 6 月前3
共 9 条
- 1













