Curve设计要点01 02 03 04 总体设计 系统特性 近期规划背景 • 多个存储软件:SDFS、NEFS、NBS • 已有的开源软件:Ceph • 不能胜任性能、延迟敏感的场景 • 异常场景抖动较大(比如慢盘场景) • 去中心节点设计在集群不均衡的情况下需要人工运维 • 基于通用分布式存储构建上层存储服务背景 01 02 03 04 总体设计 系统特性 近期规划基本架构 • Chunkserver节点; 4. Client 向 leader 发送读写请求, Chunkserver 完成后通知client; 5. Client通知用户请求完成。背景 01 02 03 04 总体设计 系统特性 近期规划单卷4K随机读写IOPS 102k 39.7k 41.7k 127k 4K随机写 4K随机读 Ceph(L/N) Curve 151.89% 204.56% 单卷4K随机读写平均延迟(ms) 自动化部署工具 • 一键部署,一键升级高质量 • 良好的模块化和抽象设计 • 完善的测试体系 • 单元测试 行覆盖80%+,分支覆盖70%+ • 集成测试 Given When Then 方法 完备的测试用例集 • 自动化异常测试 41个异常用例 • 自动化大压力随机故障注入 20轮随机故障注入背景 01 02 03 04 总体设计 系统特性 近期规划• 性能优化 • 满足数据库性能要求0 码力 | 35 页 | 2.03 MB | 6 月前3
CurveFS方案设计© XXX Page 1 of 14 CurveFS方案设计(总体设计,只实现了部分)© XXX Page 2 of 14 时间 修订人 修订内容 2021-03-23 李小翠 初稿(背景,调研,架构设计) 2021-03-30 李小翠 增加快照部分 2021-04-13 李小翠、陈威 补充元数据数据结构 2021-04-19 李小翠、吴汉卿、许超杰等 补充文件空间分配,讨论与确认 背景 背景 调研 开源fs 性能对比 可行性分析 方案对比 对比结论 架构设计 卷和文件系统 元数据架构 文件系统快照 方案一:文件/目录级别快照 方案二:文件系统快照 关键点 元数据设计 数据结构 索引设计 文件空间管理 开发计划及安排 背景 为更好的支持云原生的场景,Curve需要支持高性能通用文件系统,其中高性能主要是适配云原生数据库的场景。当前Curve是实现了块存储,向上 可行性分析 方案对比 根据上述调研和测试结果,我们考虑了三种curvefs的元数据设计方案: CurveFS kv方案设计 curve实现块设备时,元数据不是扁平化的设计,而是采用来有目录层级的 namespace 方式,namespace 已经实现了 fs 元数据管理的雏形,具备了基本的元数据管理功能。(当时为什么要设计为 namespace 的管理形式?留有租户这个概念),直接基于 namespace0 码力 | 14 页 | 619.32 KB | 6 月前3
CurveFS Client 概要设计© XXX Page 1 of 11 CurveFS Client 概要设计(已实现)© XXX Page 2 of 11 背景 概述 关键接口分析 init destroy lookup write read open create & mknod mkdir forget unlink rmdir opendir readdir getattr & setattr access rename readlink link flush & fsync 其他 功能分析 模块划分 接口设计 Cache设计 时间 作者 内容 2021-04-27 许超杰 初稿 背景 CurveFS初步设计见 , 目前需细化Client端设计 CurveFS方案设计(总体设计,只实现了部分) 概述 CurveFS client 向上提供两层接口,分别是© (fuse_req_t req, fuse_ino_t ino, fuse_ino_t newparent, const char *newname); 这个涉及到下文中”重要问题讨论“,目前暂时无法设计 硬链接相关目前可先不实现。© XXX Page 9 of 11 flush & fsync 缓存的问题暂时先不考虑太细,目前默认数据和元数据直接存储到底层,这两个也可先不实现 其他 xa0 码力 | 11 页 | 487.92 KB | 6 月前3
Curve 分布式存储设计Curve 分布式存储设计 程义 — Curve Maintainer XAgenda 第二 第三 第四 第一 Curve的由来 Curve的设计目标 Curve块存储 和 Curve文件存储 Curve社区Curve的由来 1. 代码复杂/代码量大 2. 运维难度高 3. 无法满足高的性能需求Curve的设计目标 1. Curve云原生软件定义存储 2. Curve块存储 CopySet分配算法 4. 拓扑结构 5. 高性能 6. chunkfilepool (降低写放大) 7. data stripe (增大并发) 8. zerocopy 9. 云原生 核心设计Curve块存储 1. physical pool用于实现对机 器资源物理隔离 2. zone故障隔离的基本单元 3. server表示物理服务器 4. chunkserver物理服务器上 chunkserver负责数据的存储 2. RAFT协议保持数据的一致 性 3. chunkfile pool降低元数据开 销 Chunkserver服务Curve块存储 性能设计Curve块存储 在线升级设计 1. 客户端分成NebdClient与 NebdServer两部分 2. NebdClient只做简单的转发 3. NebdServer实现大部分的客 户端逻辑Curve块存储0 码力 | 20 页 | 4.13 MB | 6 月前3
curvefs client删除文件和目录功能设计client 删除文件和目录功能设计© XXX Page 2 of 15 背景 相关调研 moosefs chubaofs 方案设计思考 1.Trash机制是实现1个(类似chubaofs),还是2个(类似moosefs)? 2. Trash放在哪里? 3. 是否需要做session机制(在metaserver打开),来维护inode的打开情况? 方案设计 Trash机制: Session机制: 遗留问题 工作量评估 背景 目前curvefs client版本对删除unlink和rmdir的设计只有简单的删除inode和dentry结构,遗留了nlink和lookup count相关的内容还未实现,是不完备的。本文首先调研moosefs,chubaofs等分布式系统,参考并设计解决上述遗留问题。 当前删除接口代码如下:© XXX Page 3 of 15 CURVEFS_ERROR 我们的整个架构设计本身就类似chubao方式,这个方案本身是chubaofs的成熟方案,说明是已经被验证过是可行的方案。 缺点: 由于link、unlink等接口涉及跨服务器的两个请求的处理,可能会存在孤儿inode的问题,这一情况,chubaofs是通过运维手段去修复,见遗留问题。moosefs由于单mds,不存在这个问题。 方案设计思考 首先我们可以确定以下几个设计点: 删除0 码力 | 15 页 | 325.42 KB | 6 月前3
CurveFS对接S3方案设计© XXX Page 1 of 11 curvefs对接s3方案设计(过程文档)© XXX Page 2 of 11 时间 修订人 修订内容 2021-05-20 胡遥 初稿 2021-07-20 胡遥 细化write和read流程 整体架构 整体思路 接口和关键数据结构 mds.proto client端数据结构 metaserver.proto space相关数据结构和proto0 码力 | 11 页 | 145.77 KB | 6 月前3
B站统⼀监控系统的设计,演进
与实践分享B站统⼀一监控系统的设计,演进 与实践分享 梁梁晓聪 devops @lxcong About Me • 梁梁晓聪 • 2015年年加⼊入B站 • devops • 热爱新技术,热爱开源 • ⼩小宅男 故事的开始 B站炸了了.舆情监控(括弧笑脸) 我们的挑战 • 技术栈多 • 产品模块复杂 • 业务爆发式增⻓长 • 运维要求⾼高 当前情况: • 覆盖率低0 码力 | 34 页 | 650.25 KB | 1 年前3
Curve文件系统元数据持久化方案设计0 码力 | 12 页 | 384.47 KB | 6 月前3
鸟哥的Linux私房菜:服务器架设篇 第三版比较贵?我们知道网络线 被称为 RJ-45 的网络线, 但网络线材竟然有等级之分,这个等级要怎么分辨?不同等级的线材速度有没有差 异?等到这些硬件基础了解之后, 你才能够针对你的环境来进行联机的设计。这部份我们等到下一章再来介 绍。 联机规划 由于只有一条对外联机而已,因此通常我们就建议你可以用如下的方式来串接你的网络: 1.2.2 一个常见的服务器设定案例分析 1.2.2-1 了解网络基础 这个远程可登入的服务得要限制住可登入的 IP 来源,以及制订防火墙规则流程等。 这部份则是本 教学文件后续要着重介绍的部分,留待后面章节再来谈吧! Tips: 程序设计师所撰写的程序并非十全十美的,所以,总是可能有些地方没有设计好,因此就造成所谓的『程序漏 洞』啰。 程序漏洞所造成的问题有大有小,小问题可能是造成主机的当机,大问题则可能造成主机的机密数据外流, 或者主机的操控权被 cracker 嘿嘿!这个群组成员工作的成果,通通可以被大家所窃取,真是要命了! 为了预防这种心不在焉的管理员,于是就有了 SELinux 这个玩意儿。SELinux 主要在控制细部的权限, 他可以针 对某些程序要读取的档案来设计 SELinux 类别,当程序与档案的类别形态可以相符合时,该档案才能够开始被读 取。 如此一来,当你配置文件案权限为 777 ,但是因为程序与档案的 SELinux 例行不符,所以没关系的,因为0 码力 | 795 页 | 17.63 MB | 1 年前3
CloudExplorer 3.0 管理员手册v1.2(6)配置运营报告,定期发送运营报告到指定的邮箱。 第七步: 运维查看性能、变更运行环境 杭州飞致云信息科技有限公司 17 2.3 模块功能界面说明及约定 2.3.1 模块及使用场景 平台的设计采用模块化设计,有多个功能独立的模块,包括管理中心、虚拟机服务、 账单中心、运营分析、负载均衡、数据库服务、对象存储服务、容器云集群服务、堡垒机 模块、工单中心、大屏模块。 当我们做系统管理,即组织用户角色权限、纳管虚拟化云平台 Tab 上的名字)、Favicon、系统名称(显示在门户左上角的系统名称)、主题 颜色、登录页图片、辅助颜色、登录页显示的系统名称。 杭州飞致云信息科技有限公司 26 图 2-11 页面样式设计页面 3 纳管云账号及资源 云管平台部署后,要实现在线提供虚拟化平台、私有云、公有云资源,后台管理资源, 首先要做的就是纳管各个虚拟化资源池、云平台的 API 账号,以能够有权限从各个平台同 用户级工作空间、项目级工作空间、应用系统级工作空间。 图 5-2 分权分域 具体功能包括: (1)创建管理工作空间 杭州飞致云信息科技有限公司 94 工作空间可以按照针对一组资源的访问管理权限进行设计划分,比如按项目、按职能 组、按个人或按一个组合的权限范围进行划分。 如果一组资源需要让一个项目的成员访问和管理,那么就可以给这个项目创建一个工 作空间,把项目下的资源都划分到这个项目工作空间下;0 码力 | 308 页 | 0 Bytes | 1 年前3
共 100 条
- 1
- 2
- 3
- 4
- 5
- 6
- 10













