Curve 分布式存储设计Curve云原生软件定义存储 2. Curve块存储 3. Curve文件存储 4. 高性能,易运维,云原生Curve块存储 1. 高性能分布式共享数据库场景 2. Curve块存储提供底层分布式共享存储 3. Polardb for PostgreSQL提供上层高性能数 据库服务 4. 性能测试 1. benchmarkSQL 每分钟事务数提升39% 2. pgbench 延迟降低21% TPS提升26% FAULTS CASE CURVE I/O 抖动Curve文件存储 1. 元数据服务 2. 高性能 3. 可扩展易运维 4. 云原生 设计目标Curve文件存储 1. 兼顾性能与容量的机器学习 场景 2. 快速跨云弹性发布的业务 3. 低成本大容量需求的业务 4. 中间件冷热数据自动分离 5. S3和POSIX统一访问需求 主要挑战和支持场景Curve Roadmap 10 码力 | 20 页 | 4.13 MB | 6 月前3
副本如何用CLup管理PolarDB从业近20年,拥有20年数据库、操作系统、存储领 域的工作经验,历任过阿里巴巴高级数据库专家、 网易研究院开发专家,从事过阿里巴巴Greenplum、 PostgreSQL、 MySQL数据库的架构设计和运维。 既熟悉数据库的,是最早的Oracle 9i的OCP,又懂开 发,精通C、python。 唐成(网名osdba)-3- @ 专业的PostgreSQL数据库管理平台 CLup介绍CLup产品介绍 CLup介绍CLup产品介绍 网络 clup-agent 数据库主机1 clup-agent 数据库主机2 clup-agent 数据库主机n CLup是什么? 实现PostgreSQL/PolarDB数据库的私有云 RDS产品 PostgreSQL/PolarDB集群统一管理、统一运 维。 PostgreSQL/PolarDB集群可以用功能(即故 障自动切换) 对PostgreSQL/PolarDB的TopSQL的管理 架构说明 有一台机器上部署的CLup管理节点,这个管 理节点提供WEB管理界面统一管理所有的 PostgreSQL/PolarDB数据库。 每台数据库主机上部署clup-agent。CLup管 理节点通过clup-agent来管理这台机器上的 PostgreSQL/PolarDB数据库。 clup-server 数据中心1 CLup管理节点10 码力 | 34 页 | 3.59 MB | 6 月前3
PolarDB开源生态介绍 - 杭州Meetup 2022.10.15PolarDB开源生态介绍 阿里云 digoal为什么开源是未来?阿里巴巴开源缩略图数据库开源大图PolarDB开源云原生分布式数据库家族 : 兼容MySQL&PostgreSQL用户 生态伙伴 人才 降本提效 团队成长 商业服务 用户合作 • 联合实验室 PolarDB云原生分布式开源数据库产品 高校合作 • 课程合作 • 科研项目合作 • 工作组 高校 协同育人、教学优化成果 协同育人、教学优化成果 获客 影响力 职业发展 技能成长 获客 降本 影响力 新商机、 降本 合作沙龙、比赛 合作项目、解决方案 参与社区分享 • 编程之夏 • 黑客松 开源课程: (学习、实验、评 测、认证、实践、 代码协作) • 训练营 • 电子书 • 评测局 • 开源认证考试 • 开源学堂 • 内核课程 PolarDB开源社区 (2W+用户) g • 人才发展委员会 • 技术委员会 开源社区治理 • 联合解决方案|产品 • OxM发型版 • 数据库管理产品 • 数据迁移、联邦产品 生态伙伴合作 高校合作 学习、分享、比赛、贡献 服务客户 开源共建 社区运营 生态建设 获得生态 商业服务 使用开源 PolarDB 开源学习 开源共建 人才招聘 产品适配 OxM 源码兜底 技术领先 PolarDB开源生态 共建模式 国产化替代0 码力 | 7 页 | 1.45 MB | 6 月前3
Raft在Curve存储中的工程实践对接PolarFS作为云原生数据库的高性能存储 底座,完美支持云原生数据库的存算分离架 构 • Curve作为云存储中间件使用S3兼容的对象 存储作为数据存储引擎,为公有云用户提供 高性价比的共享文件存储 • 支持在物理机上挂载使用块设备或FUSE文件 系统开源社区 社区运营 生态共建 开源共建 源码兜底 技术领先 目标 方法 影响力 降本 获客 用户 开发者 操作系统 芯片 数据库 云原生 AI训练 节 点初始状态一致的时候,保证节点之间状态一致。 raft日志复制RAFT协议简介 raft配置变更 • 配置:加入一致性算法的服务器集合。 • 集群的配置不可避免会发生变更,比如替换宕机的机器。 直接配置变更可能出现双主问题 • 共同一致(joint consensus) • 集群先切换到一个过渡的配置(old + new),一旦共同一 致已经被提交,系统切换到新的配置(new)。RAFT协议简介 照。BRAFT简介 • raft协议提出之后,涌现出了非常多的实现,比如etcd,braft,tikv等。 • braft是raft的一个实现,实现了raft的一致性协议和复制状态机,而且提供了一种通用的基础库。基 于braft,可以基于自己的业务逻辑构建自己的分布式系统。 • braft本身不提供server功能,需要业务自己实现状态机。 Node(一个raft实例) int init(const NodeOptions&0 码力 | 29 页 | 2.20 MB | 6 月前3
NJSD eBPF 技术文档 - 0924版本Curve社区介绍Curve是什么? • Curve云原⽣软件定义存储 • Curve分布式块存储 • Curve分布式⽂件存储 • ⾼性能、易运维、云原⽣Curve⽂件系统框架和主要应⽤场景 • AI机器学习场景 • ⼤数据计算场景 • 中间件数据存储场景 • ⽀持POSIX兼容的⽂件API • ⽀持低延迟的⽂件数据访问Curve⽂件系统⾯临的问题 • ⽤户态实现 • 稳定性/可靠性⾼0 码力 | 20 页 | 7.40 MB | 6 月前3
新一代云原生分布式存储要什么 •成百上千台存储节点 •磁盘故障、机器故障、网络故障概率性发生 有什么 分布式存储系统需要满足接口需求,并且有持续监控、错误检测、容错与自动恢复的能力 以达到高可靠、高可用、高可扩分布式存储的要素 要 素 拆 解 数据分布 —— 无中心节点/中心节点 均 衡 地址空间的每段数据会分布在不同机器的磁盘上,如 何找到这些数据? 可靠性 & 可用性 多副本/EC 服务不可用时 间 数据一致性 —— 一致性协议 如何保证数据不丢?如何保证各种硬件故障的时候读 写都正常? 可扩展性 —— 和数据分布的方式相关 所用容量都用完后,可以新增机器扩展容量分布式存储的要素 — 数据分布 无中心节点:哈希算法 INPUT (Offset, Len) HASH HASH mod 72 (DiskNums) (0, 4MB) 163342856 -> 块设备层 -> 不同协议/驱动使用中的问题 • io抖动(一致性协议): 异常场景(比如阵列卡一致性巡检,坏盘,慢盘,网络异常),服务升级 • 性能差(一致性协议):在通用硬件下,无法支撑数据库、kafka等中间件对存储性能和稳定性要求 • 容量不均衡(数据放置):集群各节点容量不均衡需要人为干预 • 上述问题和架构涉及、核心功能的选型有关,在已有开源版本上改进代价很大分布式存储介绍 010 码力 | 29 页 | 2.46 MB | 6 月前3
Curve核心组件之mds – 网易数帆Curve核心组件之 MDS 陈威Curve 是高性能、高可用、高可靠的分布式存储系统 • 高性能、低延迟 • 可支撑储场景:块存储、对象存储、云原生数据库、EC等 • 当前实现了高性能块存储,对接OpenStack和 K8s 网易内部线上无故障稳定运行一年多 • 已开源 • github主页: https://opencurve.github.io/ • github代码仓库: https://github 调度模块。用于自动容错和负载均衡。TOPOLOGY topology用于管理和组织机器,利用底层机器的放置、网络的规划以面向业务提供如下功能和非功能需求。 1. 故障域的隔离:比如副本的放置分布在不同机器,不同机架,或是不同的交换机下面。 2. 隔离和共享:不同用户的数据可以实现固定物理资源的隔离和共享。 • pool: 用于实现对机器资源进行物理隔离,server不能跨 Pool交互。运维上,建议以pool为单元进行物理资源的扩 OFFLINESCHEDULE Schedule(系统调度)是为了实现系统的自动容错和负载均衡,这两个功能是分布式 存储系统的核心问题,也是 curve 是否能上生产环境的决定因素之一。 • 自动容错保证常见异常(如坏盘、机器宕机)导致的数据丢失不依赖人工处理,可 以自动修复。 • 负载均衡和资源均衡保证集群中的磁盘、cpu、内存等资源的利用率最大化。SCHEDULE Schdedule的具体实现 Coordinator:0 码力 | 23 页 | 1.74 MB | 6 月前3
Curve设计要点新一代分布式存储系统 Curve 李小翠Curve 是高性能、高可用、高可靠的分布式存储系统 • 高性能、低延迟 • 可支撑储场景:块存储、对象存储、云原生数据库、EC等 • 当前实现了高性能块存储,对接OpenStack和 K8s 网易内部线上无故障稳定运行一年多,线上异常演练 • 已开源 • github主页: https://opencurve.github.io/ • github代码仓库: 1 : 1 • 数据chunk + 校验chunk • 支撑EC存储场景 多个单副本的 chunk 形成 EC 组 一个对象作为 EC 组的一个满条带 挖洞即时空间回收拓扑 • 管理和组织机器 • 软件单元:chunkserver • 物理机:server • 故障域:zone • 物理池:poolIO流程 client MDS leader Chunk server 1、发起请求 完备的测试用例集 • 自动化异常测试 41个异常用例 • 自动化大压力随机故障注入 20轮随机故障注入背景 01 02 03 04 总体设计 系统特性 近期规划• 性能优化 • 满足数据库性能要求 • 大io吞吐优化 • muti raft 性能优化 • 开源 • 系列技术分享 • 参与开发人员线上议题讨论会 近期规划欢 迎 大 家 参 与 C U R V E 项 目 !0 码力 | 35 页 | 2.03 MB | 6 月前3
Curve核心组件之Client - 网易数帆核 心 组 件 之 C l i e n t 吴汉卿CURVE CURVE是高性能、高可用、高可靠的分布式存储系统 • 高性能、低延迟存储底座 • 可扩展存储场景:块存储、对象存储、云原生数据库、EC等 • 当前实现了高性能块存储,对接 OpenStack 和 k8s • 网易内部线上无故障稳定运行400+天 • 已开源 • github主页: https://opencurve.github 这两种信息client也会进行缓存 上报心跳CLIENT IO流程 子请求处理步骤: 1. 从MDS获取逻辑chunk与物理chunk的 对应关系(包含逻辑池以及复制组信息) 2. 从MDS获取复制组所在的机器列表 3. 从Chunkserver获取复制组leader信息 4. 将请求发往leader节点CLIENT IO线程模型 用户线程 1. 用户调用接口,发起IO请求 2. AioWrite将请求封装成io 程进行重启。NEBD 整体介绍 在QEMU和Curve Client中间加入热升级模块,避 免直接依赖 热升级模块是CS结构: NEBD Client(part1):只包含轻量的业务逻辑, 以链接库的形式提供给QEMU使用 NEBD Server(part2):将NEBD Client的请求转 发到Curve Client 升级过程只需要重启NEBD Server即可,IO可在 1~5s内恢复NEBD0 码力 | 27 页 | 1.57 MB | 6 月前3
CurveFS Copyset与FS对应关系7、工作评估 7.1 client端 7.2 mds端 7.3 metaserver端 metaserver 子模块拆分 8、inode和dentry的内存估算 8.1 一台机器上能存放多少个inode和dentry 8.2 一台机器上建议的copyset数量 8.3 每个copyset建议管理存储容量的大小 1、背景 curvefs使用raft作为元数据一致性的保证。为了提高元数据的可扩展性和并 readonly的,然后也不让分配新的copyset了。每个copyset的能力*copyset的个数 = 这个metanode的的处理能力。通过合理的配置copyset的能力的,应该的可以避免一个机器上,有太多的copyset。 结论:coypset由fs共用。具体的使用上,每一个copyset上,有一个可以由多少fs共用的限制。这个限制通过配置文件进行配置。用户挂载时可以通过参数配置是否独占 560208B; s3 类型的inode,按照1w条s3info估算,占用内存208 + 10000*64 = 640208B; 8.1 一台机器上能存放多少个inode和dentry 由于元数据全部缓存在本地,而且磁盘空间远大于内存空间,所以一台机器上能放多少个inode和dentry最大的限制在于内存。 按照最差的情况,文件里面全部都是碎片,那么metaserver上的空间碎片将会占用最0 码力 | 19 页 | 383.29 KB | 6 月前3
共 20 条
- 1
- 2













