CurveFS ChunkID持久化chunkid 持久化© XXX Page 2 of 3 1. 2. 3. 1. 2. 3. 4. 5. 6. 1. 2. 3. 4. 1. 1. 1. 2. 1. 2. 3. 4. 3. 2. 背景 将原有的获取chunkid的方法从space迁入mds中,并持久化写入etcd中; 只考虑单 ChunkIDGenerator 类对象,方法 AllocateS3Chunk 调用 ChunkIDGenerator对象的GenChunkID方法; ChunkIDGenerator 类 构造函数 初始化 init 函数:用于初始化或者更改 ChunkIdAllocatorImpl 的一些配置。但是这些配置不会立即生效,而是等到当前 chunkId池枯竭时才会生效。 析构函数 GenChunkID 申请的chunkID池是否枯竭?0 码力 | 3 页 | 79.38 KB | 6 月前3
Curve文件系统元数据持久化方案设计© XXX Page 1 of 12 元数据持久化© XXX Page 2 of 12 前言 Raft Log Raft Snapshot 持久化文件 key_value_pairs 其他说明 实现 1、inode、entry 的编码 2、KVStore Q&A 单靠 redis 的 AOF 机制能否保证数据不丢失? redis 的高可用、高可扩方案? redis + muliraft redis 中哈希表实现的优点? 参考 前言 根据之前讨论的结果,元数据节点的架构如下图所示,这里涉及到两部分需要持久化/编码的内容: Raft Log:记录 operator log Raft Snapshot:将内存中的数据结构以特定格式 dump 到文件进行持久化© XXX Page 3 of 12 Raft Log +------+------------+-----+----- -----+----------------+---------+ 持久化文件 字段 字节数 说明 CURVEFS 7 magic number(常量字符 "CURVEFS"),用于标识该文件为 curvefs 元数据持久化文件 version 4 文件版本号(当文件格式变化时,可以 100% 向后兼容加载旧版持久化文件) size 8 键值对数量 key_value_pairs / 键值对(当0 码力 | 12 页 | 384.47 KB | 6 月前3
Curve核心组件之Client - 网易数帆实现了Curve-NBD,与内核NBD模块进行交互 可以作为容器的数据存储 CSI插件也已经开源: https://github.com/opencurve/curve-csi CLIENT上层应用CLIENT虚拟块设备CLIENT主要功能 提供接口 数据面:AioWrite/AioRead、Write/Read 控制面:Create/Delete、Open/Close、Rename等 复制组所在的chunkserver列表 复制组的leader信息CLIENT IO流程 逻辑chunk与物理chunk映射关系 物理chunk所属的复制组(copyset) 由MDS分配并持久化,client拆分用户请 求时会获取并进行缓存 为了减少元数据量,MDS一次会连续分配 1G范围内的映射关系,称为SegmentCLIENT IO流程 复制组所在的chunkserver列表0 码力 | 27 页 | 1.57 MB | 6 月前3
副本如何用CLup管理PolarDB 安装要求 需要有共享盘:盘的大小需要大于等于20GB CLup的高可用需要VIP 操作系统:CentOS7.X 盘要求有路径:/dev/nvmeXnY 机器需求 4台虚拟机器或物理机 1台做CLup管理节点:内存大于2GB 3台做数据库节点:内存需要大于4GB,最好有反亲和性,即能分布在不同的 物理机上以保证高可用性阿里云的环境中创建Polardb的方法 • 华北2(北京)可用区K • 华南1(深圳)可用区F。 只有某些规格的虚拟机可以挂载Nvme共享盘: • g7se • c7se • r7se 虚拟机要求是按量付费才可以挂载Nvme共享盘 阿里云的VIP功能目前还在内侧阶段,需要申请其他云环境中使用CLup创建Polardb的情况 天翼云 共享盘:所有虚拟机都 可以挂载 有VIP 机器有反亲和性 华为云 有共享盘 机器有反亲和性 移动云 共享盘:所有虚拟机都 可以挂载 有VIP 机器有弱反亲和性 腾讯云 无共享盘 VIP是内测阶段 机器的反亲和性:不清 楚 联通云 无共享盘 有VIP 机器有反亲和性创建PolarDB需要的阿里云环境 创建虚拟机的时 候选中的盘都不 是共享盘,必须 在创建完虚拟机 后,在单独添加 共享盘 注意创建PolarDB0 码力 | 34 页 | 3.59 MB | 6 月前3
Curve 分布式存储设计器资源物理隔离 2. zone故障隔离的基本单元 3. server表示物理服务器 4. chunkserver物理服务器上 的服务实例 拓扑结构Curve块存储 1. Curve块存储将虚拟块设备 映射到文件 2. 每个文件包含的chunk分散 在集群的存储节点 3. chunkserver按照故障域分组 4. copyset中的节点属于不同的 故障域 数据组织Curve块存储0 码力 | 20 页 | 4.13 MB | 6 月前3
Open Flags 调研Page 17 of 23 一般来说,当调用 open() 系统调用打开文件时,如果不指定 O_DIRECT 标志,那么就是使用缓存I/O来对文件进行读写操作。系统缓存位于VFS和真实文件系统之间,当虚拟文件系统读文件时,首先从缓存中查找要读取的文件内容是否存在缓存中,如果存在就直接从缓存中读取。对文 件进行写操作时也一样,首先写入到缓存中,然后由操作系统同步到块设备(如磁盘)中。对于通用块设备层来0 码力 | 23 页 | 524.47 KB | 6 月前3
CurveFs 用户权限系统调研name是便于人工记忆,它们和uid、gid是一一对应的关系。 UID(User Identify) GID(Group Identity) 超级用户: UID:0 默认是root用户,UID为0的用户为超级用户, 虚拟用户: UID:1~499 与真实普通用户区分开来,这类用户最大的特点是安装系统后默认就会存在,且默认情况大多数不能登录系统 普通用户: UID:500~65535 具备系统管理员root的权限的运0 码力 | 33 页 | 732.13 KB | 6 月前3
【周鸿祎清华演讲】DeepSeek给我们带来的创业机会-360周鸿祎-202502DeepSeek出现之前的十大预判 之一 传统AGI发展步伐在放慢 需要寻找新方向 Scaling Law边际效应递减 人类训练数据接近枯竭 合成数据无法创造新知识 推理能力难以泛化,成本高昂 全面超越人类的人工智能在逻辑上不成立政企、创业者必读 15 DeepSeek出现之前的十大预判 之二 慢思考成为新的发展模式 大模型发展范式正在从「预训练」转向「后训练」和「推理时计算」 DeepSeek出现之前的十大预判 之八 智能体推动大模型快速落地 能够调用各种工具,具有行动能力 调用企业专业知识,更懂企业 将日常重复性业务流程形成Playbook,实现流程自动化 通过目标拆解,多次调用大模型以及专家模型协同,形成 慢思考能力 传统软件是辅助人的工具,Agent是能够自主工作的数字员工,是新的生产力政企、创业者必读 22 DeepSeek出现之前的十大预判 Law 大数据+大参数+大算力的 预训练Scaling Law的边际效应递减 • 人类构造的训练数据已达上限 • 万亿参数规模之后,继续增大参数规 模难以带来质的提升 • 训练算力成本和工程化难度大幅上升 强化学习Scaling Law • 利用合成数据解决数据用尽问题 • 利用self-play强化学习,在不增大参 数规模前提下,大幅提升复杂推理能力 • 通过后训练算力和推理算力,在不增加0 码力 | 76 页 | 5.02 MB | 5 月前3
Curve文件系统元数据管理文件系统的元数据是否全缓存? 元数据持久化在单独的元数据服务器上?在磁盘上?在volume上? inode+dentry方式?当前curve块存储的kv方式? 是否有单独的元数据管理服务器? 2、其他文件系统的调研总结 fs 中心化元数据 内存namespace元数据 内存空间分配元数据 元数据持久化 元数据扩展 小文件优化 空间管理单位 数据持久化 其他© XXX Page 3 of 24 dentry → skip list (key是name,每个目录下一个) 计算出来的 binlog,随时间会越来越大 差 DG Master/Slave glusterfs 无中心化服务器 dht算法 hash 扩展时大量迁移 client缓存 inode→ hashtable(gfid) dentry→ hashtable(name) inode扩展属性字段 和写数据一样 分别从不同场景上进行分析,curve文件系统的元数据应该有以下的操作: 1、系统加载的时候,元数据从持久化介质加载。 2、业务运行过程中,元数据的增删改查。 3、系统退出的时候,元数据持久化。© XXX Page 7 of 24 场景一:系统加载的时候,元数据从持久化介质中加载。 元数据进行恢复的时候,有两种情况。 一种系统必须等到元数据全部加载到内存才能提供服务,这种情况0 码力 | 24 页 | 204.67 KB | 6 月前3
Curve质量监控与运维 - 网易数帆运维——保障Curve始终稳定高效运行。 质量 ✓ 质量管理体系(设计、开发、review、CI) ✓ 测试方法论(单元测试、集成测试、系统测试) 监控 ✓ 监控架构 ✓ 指标采集、后端处理、可视化展示 运维 ✓ 运维特性 (易部署、易升级、自治) ✓ 运维工具(部署工具、管理工具) 4/33背景 01 02 03 04 Curve质量控制 Curve监控体系 Curve运维体系软件质量 异常自动化 测试 混沌测试 (每周一次) CI测试(编译、静态检 查、单元测试、集成测 试、覆盖率80%卡点) 邮件通知 Curve所有代码均在github托管。新 代码需要通过CI测试和code review才 能合入master分支,确保新合入代码 的功能、正确性、规范性等都有基本 保障;而每日运行的dailybuild测试在 CI测试基础上增加了异常自动化测试 和混沌测试,确保master分支代码的 单元测试 1300+用例 行覆盖80%+,分支覆盖70%+ 集成测试 Given When Then 设计方法 500+用例 异常测试 40+自动化用例 混沌测试 20轮自动化随机故障注入 12/33单元测试 单元测试是软件开发的过程中最基本的测试,它用来对一个模块、一个函数或者一个类来进行 正确性检验的测试工作。 curve通过lcov统计代码覆盖率,衡量单元测试的完备程度,如下图所示:0 码力 | 33 页 | 2.64 MB | 6 月前3
共 28 条
- 1
- 2
- 3













