 新一代云原生分布式存储新一代云原生分布式存储—Curve 上 李小翠 网易数帆存储团队分布式存储介绍 01 存储的发展 | 分布式存储的分类 | 分布式存储的要素 02 03 04 Ceph 架构简介 | 场景介绍 | 使用中的问题 Curve 架构简介 | 数据对比 | 应用情况 FAQ 答疑存储的发展 互联网时代,数据大爆炸 大型主机 成本高 单点问题 扩容困难 各存储设备通过网络互联 各存储设备通过网络互联 大规模 弹性扩容 底层构建在分布式存储之上 云的概念 成本:共用基础设施 弹性:随意扩缩容 速度:更快的构建发布业务 底层构建在分布式存储之上 云原生的概念: 易用性:跨平台,超融合,弹性 小型主机 容量有限分布式存储的分类 按照各种应用场景所需的存储接口分类 对象 存储 文件 存储 块存储 接口为简单的 Get、PUT、DEL 和其他扩展 对指定地址空间进行随机读写 传统意义的块存储:磁盘分布式存储的要素 如何构建分布式文件系统? 以分布式块存储为例。 •提供大容量的块设备 •可以在指定地址空间内随机读写 write(offset, len) •服务质量要求:数据不能丢、服务随时可用、弹性扩缩容 要什么 •成百上千台存储节点 •磁盘故障、机器故障、网络故障概率性发生 有什么 分布式存储系统需要满足接口需求,并且有持续监控、错误检测、容错与自动恢复的能力0 码力 | 29 页 | 2.46 MB | 6 月前3 新一代云原生分布式存储新一代云原生分布式存储—Curve 上 李小翠 网易数帆存储团队分布式存储介绍 01 存储的发展 | 分布式存储的分类 | 分布式存储的要素 02 03 04 Ceph 架构简介 | 场景介绍 | 使用中的问题 Curve 架构简介 | 数据对比 | 应用情况 FAQ 答疑存储的发展 互联网时代,数据大爆炸 大型主机 成本高 单点问题 扩容困难 各存储设备通过网络互联 各存储设备通过网络互联 大规模 弹性扩容 底层构建在分布式存储之上 云的概念 成本:共用基础设施 弹性:随意扩缩容 速度:更快的构建发布业务 底层构建在分布式存储之上 云原生的概念: 易用性:跨平台,超融合,弹性 小型主机 容量有限分布式存储的分类 按照各种应用场景所需的存储接口分类 对象 存储 文件 存储 块存储 接口为简单的 Get、PUT、DEL 和其他扩展 对指定地址空间进行随机读写 传统意义的块存储:磁盘分布式存储的要素 如何构建分布式文件系统? 以分布式块存储为例。 •提供大容量的块设备 •可以在指定地址空间内随机读写 write(offset, len) •服务质量要求:数据不能丢、服务随时可用、弹性扩缩容 要什么 •成百上千台存储节点 •磁盘故障、机器故障、网络故障概率性发生 有什么 分布式存储系统需要满足接口需求,并且有持续监控、错误检测、容错与自动恢复的能力0 码力 | 29 页 | 2.46 MB | 6 月前3
 Curve 分布式存储设计Curve 分布式存储设计 程义 — Curve Maintainer XAgenda 第二 第三 第四 第一 Curve的由来 Curve的设计目标 Curve块存储 和 Curve文件存储 Curve社区Curve的由来 1. 代码复杂/代码量大 2. 运维难度高 3. 无法满足高的性能需求Curve的设计目标 1. Curve云原生软件定义存储 2. Curve块存储 4. 高性能,易运维,云原生Curve块存储 1. 高性能分布式共享数据库场景 2. Curve块存储提供底层分布式共享存储 3. Polardb for PostgreSQL提供上层高性能数 据库服务 4. 性能测试 1. benchmarkSQL 每分钟事务数提升39% 2. pgbench 延迟降低21% TPS提升26% 研究现状Curve块存储 1. 分布式块存储服务 iSCSI协议 4. 容器云块存储(CSI) 应用场景Curve块存储 1. 高可用性/高可靠性 (易运维) 2. RAFT一致性协议 3. CopySet分配算法 4. 拓扑结构 5. 高性能 6. chunkfilepool (降低写放大) 7. data stripe (增大并发) 8. zerocopy 9. 云原生 核心设计Curve块存储 1. physical pool用于实现对机0 码力 | 20 页 | 4.13 MB | 6 月前3 Curve 分布式存储设计Curve 分布式存储设计 程义 — Curve Maintainer XAgenda 第二 第三 第四 第一 Curve的由来 Curve的设计目标 Curve块存储 和 Curve文件存储 Curve社区Curve的由来 1. 代码复杂/代码量大 2. 运维难度高 3. 无法满足高的性能需求Curve的设计目标 1. Curve云原生软件定义存储 2. Curve块存储 4. 高性能,易运维,云原生Curve块存储 1. 高性能分布式共享数据库场景 2. Curve块存储提供底层分布式共享存储 3. Polardb for PostgreSQL提供上层高性能数 据库服务 4. 性能测试 1. benchmarkSQL 每分钟事务数提升39% 2. pgbench 延迟降低21% TPS提升26% 研究现状Curve块存储 1. 分布式块存储服务 iSCSI协议 4. 容器云块存储(CSI) 应用场景Curve块存储 1. 高可用性/高可靠性 (易运维) 2. RAFT一致性协议 3. CopySet分配算法 4. 拓扑结构 5. 高性能 6. chunkfilepool (降低写放大) 7. data stripe (增大并发) 8. zerocopy 9. 云原生 核心设计Curve块存储 1. physical pool用于实现对机0 码力 | 20 页 | 4.13 MB | 6 月前3
 Curve设计要点新一代分布式存储系统 Curve 李小翠Curve 是高性能、高可用、高可靠的分布式存储系统 • 高性能、低延迟 • 可支撑储场景:块存储、对象存储、云原生数据库、EC等 • 当前实现了高性能块存储,对接OpenStack和 K8s 网易内部线上无故障稳定运行一年多,线上异常演练 • 已开源 • github主页: https://opencurve.github.io/ • github代码仓库: 多个存储软件:SDFS、NEFS、NBS • 已有的开源软件:Ceph • 不能胜任性能、延迟敏感的场景 • 异常场景抖动较大(比如慢盘场景) • 去中心节点设计在集群不均衡的情况下需要人工运维 • 基于通用分布式存储构建上层存储服务背景 01 02 03 04 总体设计 系统特性 近期规划基本架构 • 元数据节点 MDS 管理元数据信息 收集集群状态信息,自动调度基本架构 • 元数据节点 MDS 1.244 3.2 3.1 0.998 4K随机写 4K随机读 61.12 % 67.8% 测试环境:6台服务器*20块SATA SSD,E5-2660 v4,256G,3副本场景 高性能高性能 • quorum机制:raft • 轻量级快照 • io路径上的优化 • filepool落盘零放大 • 轻量级线性一致性读 • io路径上用户空间零拷贝 10卷4K随机读写IOPS0 码力 | 35 页 | 2.03 MB | 6 月前3 Curve设计要点新一代分布式存储系统 Curve 李小翠Curve 是高性能、高可用、高可靠的分布式存储系统 • 高性能、低延迟 • 可支撑储场景:块存储、对象存储、云原生数据库、EC等 • 当前实现了高性能块存储,对接OpenStack和 K8s 网易内部线上无故障稳定运行一年多,线上异常演练 • 已开源 • github主页: https://opencurve.github.io/ • github代码仓库: 多个存储软件:SDFS、NEFS、NBS • 已有的开源软件:Ceph • 不能胜任性能、延迟敏感的场景 • 异常场景抖动较大(比如慢盘场景) • 去中心节点设计在集群不均衡的情况下需要人工运维 • 基于通用分布式存储构建上层存储服务背景 01 02 03 04 总体设计 系统特性 近期规划基本架构 • 元数据节点 MDS 管理元数据信息 收集集群状态信息,自动调度基本架构 • 元数据节点 MDS 1.244 3.2 3.1 0.998 4K随机写 4K随机读 61.12 % 67.8% 测试环境:6台服务器*20块SATA SSD,E5-2660 v4,256G,3副本场景 高性能高性能 • quorum机制:raft • 轻量级快照 • io路径上的优化 • filepool落盘零放大 • 轻量级线性一致性读 • io路径上用户空间零拷贝 10卷4K随机读写IOPS0 码力 | 35 页 | 2.03 MB | 6 月前3
 Curve核心组件之mds – 网易数帆Curve核心组件之 MDS 陈威Curve 是高性能、高可用、高可靠的分布式存储系统 • 高性能、低延迟 • 可支撑储场景:块存储、对象存储、云原生数据库、EC等 • 当前实现了高性能块存储,对接OpenStack和 K8s 网易内部线上无故障稳定运行一年多 • 已开源 • github主页: https://opencurve.github.io/ • github代码仓库: https://github segment是给文件分配空间的最小单位 。 • PageFileChunkInfo: chunk是数据分片的最小单元。 segment 和 chunk的关系如下图:NAMESERVER Namespace的文件的目录层次关系如右图。 文件的元数据以KV的方式存储。 • Key:ParentID + “/”+ BaseName; • Value:自身的文件ID。 这种方式可以很好地平衡几个需求: • 文件列目录:列出目录下的所有文件和目 CopySet的粒度进行探活、配置变更,降低 开销。 3. 提高数据可靠性:在数据复制组过度打散的情况下,在发生多个节点同时故障的情况下,数据的可靠性会受 到影响。引入CopySet,可提高分布式存储系统中的数据持久性,降低数据丢失的概率。COPYSET ChunkServer,Copyset和Chunk三者之间的关系如下图: Mds在分配空间时,轮流在不同的copyset中分配,每次从copyset中分配1个chunk,0 码力 | 23 页 | 1.74 MB | 6 月前3 Curve核心组件之mds – 网易数帆Curve核心组件之 MDS 陈威Curve 是高性能、高可用、高可靠的分布式存储系统 • 高性能、低延迟 • 可支撑储场景:块存储、对象存储、云原生数据库、EC等 • 当前实现了高性能块存储,对接OpenStack和 K8s 网易内部线上无故障稳定运行一年多 • 已开源 • github主页: https://opencurve.github.io/ • github代码仓库: https://github segment是给文件分配空间的最小单位 。 • PageFileChunkInfo: chunk是数据分片的最小单元。 segment 和 chunk的关系如下图:NAMESERVER Namespace的文件的目录层次关系如右图。 文件的元数据以KV的方式存储。 • Key:ParentID + “/”+ BaseName; • Value:自身的文件ID。 这种方式可以很好地平衡几个需求: • 文件列目录:列出目录下的所有文件和目 CopySet的粒度进行探活、配置变更,降低 开销。 3. 提高数据可靠性:在数据复制组过度打散的情况下,在发生多个节点同时故障的情况下,数据的可靠性会受 到影响。引入CopySet,可提高分布式存储系统中的数据持久性,降低数据丢失的概率。COPYSET ChunkServer,Copyset和Chunk三者之间的关系如下图: Mds在分配空间时,轮流在不同的copyset中分配,每次从copyset中分配1个chunk,0 码力 | 23 页 | 1.74 MB | 6 月前3
 Raft在Curve存储中的工程实践陈威Curve介绍 01 02 raft和braft 03 raft在Curve中的应用 05 Q&A 04 Curve对raft的优化项目背景 Curve是一个 高性能、更稳定、易运维 的 云原生 分布式存储系统,支持 块存储 和 文件存储 2018~2021 Curve块存储 2021~2022 Curve文件存储 • 基于Openstack构建云计算平台 • 底层存储使用Ceph块存储 成本/性能挑战 Curve块存储和文件存储均采用raft协议整体架构 • 对接OpenStack平台为云主机提供高性能块 存储服务 • 对接Kubernetes为其提供RWO、RWX等类 型的持久化存储卷 • 对接PolarFS作为云原生数据库的高性能存储 底座,完美支持云原生数据库的存算分离架 构 • Curve作为云存储中间件使用S3兼容的对象 存储作为数据存储引擎,为公有云用户提供 方法 影响力 降本 获客 用户 开发者 操作系统 芯片 数据库 云原生 AI训练 大数据 社区生态Curve介绍 01 02 raft和braft 03 raft在Curve中的应用 05 Q&A 04 Curve对raft的优化RAFT协议简介 什么是raft • raft 是一种新型易于理解的分布式一致性复制协议,由斯坦福大学的Diego Ongaro和John0 码力 | 29 页 | 2.20 MB | 6 月前3 Raft在Curve存储中的工程实践陈威Curve介绍 01 02 raft和braft 03 raft在Curve中的应用 05 Q&A 04 Curve对raft的优化项目背景 Curve是一个 高性能、更稳定、易运维 的 云原生 分布式存储系统,支持 块存储 和 文件存储 2018~2021 Curve块存储 2021~2022 Curve文件存储 • 基于Openstack构建云计算平台 • 底层存储使用Ceph块存储 成本/性能挑战 Curve块存储和文件存储均采用raft协议整体架构 • 对接OpenStack平台为云主机提供高性能块 存储服务 • 对接Kubernetes为其提供RWO、RWX等类 型的持久化存储卷 • 对接PolarFS作为云原生数据库的高性能存储 底座,完美支持云原生数据库的存算分离架 构 • Curve作为云存储中间件使用S3兼容的对象 存储作为数据存储引擎,为公有云用户提供 方法 影响力 降本 获客 用户 开发者 操作系统 芯片 数据库 云原生 AI训练 大数据 社区生态Curve介绍 01 02 raft和braft 03 raft在Curve中的应用 05 Q&A 04 Curve对raft的优化RAFT协议简介 什么是raft • raft 是一种新型易于理解的分布式一致性复制协议,由斯坦福大学的Diego Ongaro和John0 码力 | 29 页 | 2.20 MB | 6 月前3
 CurveFS方案设计文件空间管理 开发计划及安排 背景 为更好的支持云原生的场景,Curve需要支持高性能通用文件系统,其中高性能主要是适配云原生数据库的场景。当前Curve是实现了块存储,向上提供块设备服务,CurveFS会基于此实现。第一阶段的目标是实现 满足数据库场景的文件接口。 调研 开源fs 当前对已有的开源分布式文件系统进行了调研,主要包括系统架构,元数据内存结构,元数据持久化,调研文档如下: 并对以上文件系统在相同环境进行了元数据节点性能测试: 。测试结果c开发的moosefs和fastcfs元数据性能远优于go开发的chubaofs和c开发的cephfs,理论上分析这个结果是合理的,分布式的元数据设 调研测试 计会涉及到多次rpc的交互。这里需要确认的一点是:我们需要怎样的元数据节点的性能? 可行性分析 方案对比 根据上述调研和测试结果,我们考虑了三种curvefs的元数据设计方案: 可用性足够,由于是 master-slave 的方式,master 以同步方式调用 slave,slave 在内存中也缓存了全部元数据信息 master-slave 多副本数据 CurveFS 分布式元数据设计 类似 chubaofs 的元数据设计方式,同样是采用 dentry,inode 两层映射关系,所有的元数据都缓存在内存中。元数据是分片的,使用 multi-raft 持久化元数据以及保证多副本数据一致性。基于这种方式开发:0 码力 | 14 页 | 619.32 KB | 6 月前3 CurveFS方案设计文件空间管理 开发计划及安排 背景 为更好的支持云原生的场景,Curve需要支持高性能通用文件系统,其中高性能主要是适配云原生数据库的场景。当前Curve是实现了块存储,向上提供块设备服务,CurveFS会基于此实现。第一阶段的目标是实现 满足数据库场景的文件接口。 调研 开源fs 当前对已有的开源分布式文件系统进行了调研,主要包括系统架构,元数据内存结构,元数据持久化,调研文档如下: 并对以上文件系统在相同环境进行了元数据节点性能测试: 。测试结果c开发的moosefs和fastcfs元数据性能远优于go开发的chubaofs和c开发的cephfs,理论上分析这个结果是合理的,分布式的元数据设 调研测试 计会涉及到多次rpc的交互。这里需要确认的一点是:我们需要怎样的元数据节点的性能? 可行性分析 方案对比 根据上述调研和测试结果,我们考虑了三种curvefs的元数据设计方案: 可用性足够,由于是 master-slave 的方式,master 以同步方式调用 slave,slave 在内存中也缓存了全部元数据信息 master-slave 多副本数据 CurveFS 分布式元数据设计 类似 chubaofs 的元数据设计方式,同样是采用 dentry,inode 两层映射关系,所有的元数据都缓存在内存中。元数据是分片的,使用 multi-raft 持久化元数据以及保证多副本数据一致性。基于这种方式开发:0 码力 | 14 页 | 619.32 KB | 6 月前3
 Curve质量监控与运维 - 网易数帆1/33背景 01 02 03 04 Curve质量控制 Curve监控体系 Curve运维体系Curve 是网易针对块存储、对象存储、云原生数据库、EC等 多种场景自研的分布式存储系统:  高性能、低延迟  当前实现了高性能块存储,对接OpenStack和 K8s  网易内部线上无故障稳定运行近两年  已完整开源 • github主页: https://opencurve https://opencurve.github.io/ • github代码仓库: https://github.com/opencurve/curve Curve 3/33为用户服务 作为一个复杂的大型分布式存储系统,Curve 需要利用科学的方法论和专业的工具,在整个 软件生命周期内更好地为用户服务:  质量——向用户交付稳定可靠的软件;  监控——直观地展示Curve运行状态;  运维——保障Curve始终稳定高效运行。 设计文档 POC 开发 7/33设计文档规范 设计文档需要具备以下内容:  修订记录  审批记录  系统介绍  相关调研  架构  重要流程  关键算法  接口  数据库设计  非功能特性设计  参考文献 8/33代码编写规范 Curve代码编写规范遵循Google Style Guides(https://google.github.io/styleguide/)0 码力 | 33 页 | 2.64 MB | 6 月前3 Curve质量监控与运维 - 网易数帆1/33背景 01 02 03 04 Curve质量控制 Curve监控体系 Curve运维体系Curve 是网易针对块存储、对象存储、云原生数据库、EC等 多种场景自研的分布式存储系统:  高性能、低延迟  当前实现了高性能块存储,对接OpenStack和 K8s  网易内部线上无故障稳定运行近两年  已完整开源 • github主页: https://opencurve https://opencurve.github.io/ • github代码仓库: https://github.com/opencurve/curve Curve 3/33为用户服务 作为一个复杂的大型分布式存储系统,Curve 需要利用科学的方法论和专业的工具,在整个 软件生命周期内更好地为用户服务:  质量——向用户交付稳定可靠的软件;  监控——直观地展示Curve运行状态;  运维——保障Curve始终稳定高效运行。 设计文档 POC 开发 7/33设计文档规范 设计文档需要具备以下内容:  修订记录  审批记录  系统介绍  相关调研  架构  重要流程  关键算法  接口  数据库设计  非功能特性设计  参考文献 8/33代码编写规范 Curve代码编写规范遵循Google Style Guides(https://google.github.io/styleguide/)0 码力 | 33 页 | 2.64 MB | 6 月前3
 PolarDB开源生态介绍 - 杭州Meetup 2022.10.15PolarDB开源生态介绍 阿里云 digoal为什么开源是未来?阿里巴巴开源缩略图数据库开源大图PolarDB开源云原生分布式数据库家族 : 兼容MySQL&PostgreSQL用户 生态伙伴 人才 降本提效 团队成长 商业服务 用户合作 • 联合实验室 PolarDB云原生分布式开源数据库产品 高校合作 • 课程合作 • 科研项目合作 • 工作组 高校 协同育人、教学优化成果 竞技栏目: 100万/场 曝光流量 • SIG • Issue 开源代码协作 • 理事会 • 人才发展委员会 • 技术委员会 开源社区治理 • 联合解决方案|产品 • OxM发型版 • 数据库管理产品 • 数据迁移、联邦产品 生态伙伴合作 高校合作 学习、分享、比赛、贡献 服务客户 开源共建 社区运营 生态建设 获得生态 商业服务 使用开源 PolarDB 开源学习 开源共建 2022S1: 3500W曝光 150W学习人次 2万+实践体验 2K+持证人才 PolarDB开发大赛: 230+参赛选手 21K+ 社区用户 • 全面开源 • 兼容PG&MySQL • 透明分布式 • HTAP • 企业特性(闪回、TDE、冷热分离...) 50+全链路伙伴: 韵达、莲子数据、网易数帆、 龙蜥、武汉大学 ... 等 需求 手段 需求 手段 需求 手段 需求0 码力 | 7 页 | 1.45 MB | 6 月前3 PolarDB开源生态介绍 - 杭州Meetup 2022.10.15PolarDB开源生态介绍 阿里云 digoal为什么开源是未来?阿里巴巴开源缩略图数据库开源大图PolarDB开源云原生分布式数据库家族 : 兼容MySQL&PostgreSQL用户 生态伙伴 人才 降本提效 团队成长 商业服务 用户合作 • 联合实验室 PolarDB云原生分布式开源数据库产品 高校合作 • 课程合作 • 科研项目合作 • 工作组 高校 协同育人、教学优化成果 竞技栏目: 100万/场 曝光流量 • SIG • Issue 开源代码协作 • 理事会 • 人才发展委员会 • 技术委员会 开源社区治理 • 联合解决方案|产品 • OxM发型版 • 数据库管理产品 • 数据迁移、联邦产品 生态伙伴合作 高校合作 学习、分享、比赛、贡献 服务客户 开源共建 社区运营 生态建设 获得生态 商业服务 使用开源 PolarDB 开源学习 开源共建 2022S1: 3500W曝光 150W学习人次 2万+实践体验 2K+持证人才 PolarDB开发大赛: 230+参赛选手 21K+ 社区用户 • 全面开源 • 兼容PG&MySQL • 透明分布式 • HTAP • 企业特性(闪回、TDE、冷热分离...) 50+全链路伙伴: 韵达、莲子数据、网易数帆、 龙蜥、武汉大学 ... 等 需求 手段 需求 手段 需求 手段 需求0 码力 | 7 页 | 1.45 MB | 6 月前3
 Curve核心组件之Client - 网易数帆C u r v e 核 心 组 件 之 C l i e n t 吴汉卿CURVE CURVE是高性能、高可用、高可靠的分布式存储系统 • 高性能、低延迟存储底座 • 可扩展存储场景:块存储、对象存储、云原生数据库、EC等 • 当前实现了高性能块存储,对接 OpenStack 和 k8s • 网易内部线上无故障稳定运行400+天 • 已开源 • github主页: https://opencurve0 码力 | 27 页 | 1.57 MB | 6 月前3 Curve核心组件之Client - 网易数帆C u r v e 核 心 组 件 之 C l i e n t 吴汉卿CURVE CURVE是高性能、高可用、高可靠的分布式存储系统 • 高性能、低延迟存储底座 • 可扩展存储场景:块存储、对象存储、云原生数据库、EC等 • 当前实现了高性能块存储,对接 OpenStack 和 k8s • 网易内部线上无故障稳定运行400+天 • 已开源 • github主页: https://opencurve0 码力 | 27 页 | 1.57 MB | 6 月前3
 Curve核心组件之chunkserverCurve核心组件之ChunkServer 查日苏CURVE CURVE是高性能、高可用、高可靠的分布式存储系统 • 高性能、低延迟存储底座 • 可扩展存储场景:块存储、对象存储、云原生数据库、EC等 • 当前实现了高性能块存储,对接 openstack 和 k8s 网易内部线上无故障稳定运行500+天 • 已开源 • github主页: https://opencurve.github0 码力 | 29 页 | 1.61 MB | 6 月前3 Curve核心组件之chunkserverCurve核心组件之ChunkServer 查日苏CURVE CURVE是高性能、高可用、高可靠的分布式存储系统 • 高性能、低延迟存储底座 • 可扩展存储场景:块存储、对象存储、云原生数据库、EC等 • 当前实现了高性能块存储,对接 openstack 和 k8s 网易内部线上无故障稳定运行500+天 • 已开源 • github主页: https://opencurve.github0 码力 | 29 页 | 1.61 MB | 6 月前3
共 23 条
- 1
- 2
- 3













