Curve 分布式存储设计
Curve 分布式存储设计 程义 — Curve Maintainer XAgenda 第二 第三 第四 第一 Curve的由来 Curve的设计目标 Curve块存储 和 Curve文件存储 Curve社区Curve的由来 1. 代码复杂/代码量大 2. 运维难度高 3. 无法满足高的性能需求Curve的设计目标 1. Curve云原生软件定义存储 2. Curve块存储 高性能,易运维,云原生Curve块存储 1. 高性能分布式共享数据库场景 2. Curve块存储提供底层分布式共享存储 3. Polardb for PostgreSQL提供上层高性能数 据库服务 4. 性能测试 1. benchmarkSQL 每分钟事务数提升39% 2. pgbench 延迟降低21% TPS提升26% 研究现状Curve块存储 1. 分布式块存储服务 2. KVM块存储服务 快速跨云弹性发布的业务 3. 低成本大容量需求的业务 4. 中间件冷热数据自动分离 5. S3和POSIX统一访问需求 主要挑战和支持场景Curve Roadmap 1. 架构 1. 文件存储支持分布式缓存、完善冷热数据分层存储能力 2. 完善混合云、公有云上部署架构 3. 完善高性能3副本存储引擎,支持混合盘 4. 文件存储支持数据存储到HDFS、rados等引擎 2. 性能 1. 完善RDMA/SPDK方案,发布稳定版本0 码力 | 20 页 | 4.13 MB | 5 月前3CurveFs 用户权限系统调研
1 of 33 CurveFs 用户权限系统调研(已实现)© XXX Page 2 of 33 一、Curvefs测试 1. 启动curvefs 问题1:root用户无法访问挂载目录 测试 allow_root 测试allow_other 参考文献 问题2:本地文件系统挂载默认是共享的? 问题3:文件系统访问控制是在哪一层实现的? 二、文件系统权限管理 文件类型 文件权限 特殊权限(SUID 文件默认权限umask 用户&用户组 文件系统用户权限管理 对mode的管理 对ACL(Access Control Lists)的管理 ACL Access Entry保存在哪? ACL的表示 内存中的ACL 是如何与具体的 Inode 相关联 如何存储和获取ACL信息 Inode权限校验 chmod、chown、setfacl、getfacl接口文件系统自己如何实现 结论: 参考文献: 一、Curvefs测试 Page 4 of 33 查阅资料发现这是fuse的一种安全策略,默认是只有filesystem owner拥有该文件系统的访问权限,如果想要其他用户有权访问,需要在挂载参数中指定‘-o allow-root’ 或'-o allow-other'以允许相应用户有权访问该文件系统,如果挂载者不是root还需要在/etc/fuse.conf(/usr/local/etc/fuse.conf)中增加配0 码力 | 33 页 | 732.13 KB | 5 月前3分布式NewSQL数据库TiDB
优刻得科技股份有限公司 版权所有 分布式 分布式NewSQL数据库 数据库 TiDB 产品⽂档 2 9 11 12 12 12 12 12 13 14 14 14 14 15 15 16 16 18 ⽬录 ⽬录 ⽬录 ⽬录 概览 概览 什么是 什么是TiDB 产品优势 产品优势 ⾼度兼容 MySQL 动态扩展 分布式事务 HTAP 真正⾦融级⾼可⽤ 适⽤场景 适⽤场景 对数据⼀致性及⾼可靠、系统⾼可⽤、可扩展性、容灾要求较⾼的⾦融⾏业属性的场景 场景 Real-time HTAP 场景 数据汇聚、⼆次加⼯处理的场景 真正⾦融级⾼可⽤ UCloud 云上 云上 TiDB 架构⽰意图 架构⽰意图 TiDB TiDB Serverless ⽬录 分布式NewSQL数据库 TiDB Copyright © 2012-2021 UCloud 优刻得 2/120 20 20 21 24 24 25 28 28 28 28 28 29 30 30 32 TiDB Serverless 删除 实例 实例 创建TiDB集群 查看TiDB实例列表 查看TiDB实例详情 删除TiDB实例 ⽤户 ⽤户 添加⽤⼾及权限 重置⽤⼾密码 删除⾮root⽤⼾ ⽬录 分布式NewSQL数据库 TiDB Copyright © 2012-2021 UCloud 优刻得 3/120 38 39 40 40 41 41 43 43 43 46 49 49 52 53 550 码力 | 120 页 | 7.42 MB | 5 月前3Curve文件系统元数据管理
© XXX Page 1 of 24 Curve文件系统元数据管理(已实现)© XXX Page 2 of 24 1. 2. 3. 4. Inode 1、设计一个分布式文件系统需要考虑的点: 2、其他文件系统的调研总结 3、各内存结构体 4、curve文件系统的元数据内存组织 4.1 inode定义: 4.2 dentry的定义: 4.3 内存组织 5 元数据分片 hardlink:生成一个hardlink /B/E,指向文件/A/C 6、curve文件系统的多文件系统的设计 1、设计一个分布式文件系统需要考虑的点: 文件系统的元数据是否全缓存? 元数据持久化在单独的元数据服务器上?在磁盘上?在volume上? inode+dentry方式?当前curve块存储的kv方式? 是否有单独的元数据管理服务器? 2、其他文件系统的调研总结 fs 中心化元数据 内存namespace元数据 stl unordered_map moose,使用c实现 4、curve文件系统的元数据内存组织 curve文件系统元数据主要有3个类型,inode, dentry, 。 extent 4.1 inode定义: inode定义见:curve文件系统元数据proto(代码接口定义,已实现)© XXX Page 5 of 24 typedef uint64_t0 码力 | 24 页 | 204.67 KB | 5 月前3Curve文件系统空间分配方案
Curve文件系统空间分配方案(基于块的方案,已实现)© XXX Page 2 of 11 背景 本地文件系统空间分配相关特性 局部性 延迟分配/Allocate-on-flush Inline file/data 空间分配 整体设计 空间分配流程 特殊情况 空间回收 小文件处理 并发问题 文件系统扩容 接口设计 RPC接口 空间分配器接口 背景 根据 ,文件系统基于当前的块进 ,文件系统基于当前的块进行实现,所以需要设计基于块的空间分配器,用于分配并存储文件数据。 CurveFS方案设计(总体设计,只实现了部分) 本地文件系统空间分配相关特性 局部性 尽量分配连续的磁盘空间,存储文件的数据。这一特性主要是针对HDD进行的优化,降低磁盘寻道时间。 延迟分配/Allocate-on-flush 在sync/flush之前,尽可能多的积累更多的文件数据块才进行空间分配,一方面可以提高局部性,另一方面可以降低磁盘碎片。 几百字节的小文件不单独分配磁盘空间,直接把数据存放到文件的元数据中。 针对上述的本地文件系统特性,Curve文件系统分配需要着重考虑 。 局部性 虽然Curve是一个分布式文件系统,但是单个文件系统的容量可能会比较大,如果在空间分配时,不考虑局部性,inode中记录的extent数量很多,导致文件系统元数据量很大。© XXX Page 3 of 11 假如文件系统大小为1PiB,空间分配粒度为1MiB,inode中存储的e0 码力 | 11 页 | 159.17 KB | 5 月前3新一代云原生分布式存储
新一代云原生分布式存储—Curve 上 李小翠 网易数帆存储团队分布式存储介绍 01 存储的发展 | 分布式存储的分类 | 分布式存储的要素 02 03 04 Ceph 架构简介 | 场景介绍 | 使用中的问题 Curve 架构简介 | 数据对比 | 应用情况 FAQ 答疑存储的发展 互联网时代,数据大爆炸 大型主机 成本高 单点问题 扩容困难 各存储设备通过网络互联 各存储设备通过网络互联 大规模 弹性扩容 底层构建在分布式存储之上 云的概念 成本:共用基础设施 弹性:随意扩缩容 速度:更快的构建发布业务 底层构建在分布式存储之上 云原生的概念: 易用性:跨平台,超融合,弹性 小型主机 容量有限分布式存储的分类 按照各种应用场景所需的存储接口分类 对象 存储 文件 存储 块存储 接口为简单的 Get、PUT、DEL 和其他扩展 传统意义的文件系统: Ext4 对指定地址空间进行随机读写 传统意义的块存储:磁盘分布式存储的要素 如何构建分布式文件系统? 以分布式块存储为例。 •提供大容量的块设备 •可以在指定地址空间内随机读写 write(offset, len) •服务质量要求:数据不能丢、服务随时可用、弹性扩缩容 要什么 •成百上千台存储节点 •磁盘故障、机器故障、网络故障概率性发生 有什么 分布式存储系统需要满足0 码力 | 29 页 | 2.46 MB | 5 月前3Curve文件系统元数据Proto(接口定义)
XXX Page 1 of 15 curve文件系统元数据proto(代码接口定义,已实现)© XXX Page 2 of 15 1、代码结构和代码目录 curve文件系统是相对于curve块设备比较独立的一块,在当前curve项目的目录下,增加一个一级目录curvefs,curvefs下有自己独立的proto\src\test。 2、文件系统proto定义 2.1 mds.proto0 码力 | 15 页 | 80.33 KB | 5 月前3sealos 以 kubernetes 为内核的云操作系统
Sealos 云操作系统 方海涛 环界云计算 CEO 目 录 云操作系统介绍 01 云操作系统架构 02 功能与实用场景 03 实现原理 04 价值 05 总结 06 自我介绍 Sealos 作者 阿里巴巴 CNCF sealer 作 者 环界云计算创始人 公司代表作品: Sealos 云操作系统 Laf 函数计算 FastGPT AI 知识库 Sealos 介绍 以 kubernetes 为内核的云操作系统 整个数据中心抽象成一台服务器,一切皆应用,让用云像用个人电脑一样简单! Kubernetes是云操作系统内核,整个集群是一个整体 Sealos是云操作系统发行版本 Linux发行版,如redhat Linux kernel CPU 内存 磁盘 Linux发行版,如redhat Linux kernel CPU 内存 磁盘 Linux发行版,如redhat 我大道至简海纳百川 不求最好,但求最贵 优秀还便宜 你真的需要虚拟机?真的需要 IaaS 层? PaaS SaaS 有本质区别?鸭式辩型忘记了? 云里面,一切皆应用才是王道。 系统架构与设计理念 通用的系统管理入口 所有应用自由安装卸载 极简、高内聚、高度抽象 提供最基础的核心能力 容器管理、编排调度、资源隔离 驱动层实现资源抽象 自由切换,到处运行 Sealos API Sealos0 码力 | 29 页 | 7.64 MB | 9 月前3Curve文件系统元数据持久化方案设计
0 码力 | 12 页 | 384.47 KB | 5 月前3使用Chaos Mesh来保障云原生系统的健壮性-周强
云原生社区Meetup 第三期·杭州站 使用 Chaos Mesh 来保障云原生系统的健壮性 演讲人:周强 GitHub 地址:https://github.com/zhouqiang-cl PingCAP 工程效率负责人,ChaosMesh 负责人 云原生社区Meetup 第三期·杭州站 The incident in the production environment0 码力 | 28 页 | 986.42 KB | 5 月前3
共 160 条
- 1
- 2
- 3
- 4
- 5
- 6
- 16