Curve 分布式存储设计Curve 分布式存储设计 程义 — Curve Maintainer XAgenda 第二 第三 第四 第一 Curve的由来 Curve的设计目标 Curve块存储 和 Curve文件存储 Curve社区Curve的由来 1. 代码复杂/代码量大 2. 运维难度高 3. 无法满足高的性能需求Curve的设计目标 1. Curve云原生软件定义存储 2. Curve块存储 Curve块存储 3. Curve文件存储 4. 高性能,易运维,云原生Curve块存储 1. 高性能分布式共享数据库场景 2. Curve块存储提供底层分布式共享存储 3. Polardb for PostgreSQL提供上层高性能数 据库服务 4. 性能测试 1. benchmarkSQL 每分钟事务数提升39% 2. pgbench 延迟降低21% TPS提升26% 研究现状Curve块存储 研究现状Curve块存储 1. 分布式块存储服务 2. KVM块存储服务 3. iSCSI协议 4. 容器云块存储(CSI) 应用场景Curve块存储 1. 高可用性/高可靠性 (易运维) 2. RAFT一致性协议 3. CopySet分配算法 4. 拓扑结构 5. 高性能 6. chunkfilepool (降低写放大) 7. data stripe (增大并发) 8. zerocopy0 码力 | 20 页 | 4.13 MB | 6 月前3
NoService 库0 码力 | 1 页 | 76.00 B | 6 月前3
Raft在Curve存储中的工程实践分布式存储系统,支持 块存储 和 文件存储 2018~2021 Curve块存储 2021~2022 Curve文件存储 • 基于Openstack构建云计算平台 • 底层存储使用Ceph块存储 • 稳定性挑战 • 算力平台kubernetes的迅速发展 • AI/大数据业务的快速增长 • 存储使用Ceph文件存储/HDFS • 成本/性能挑战 Curve块存储和文件存储均采用raft协议整体架构 对接OpenStack平台为云主机提供高性能块 存储服务 • 对接Kubernetes为其提供RWO、RWX等类 型的持久化存储卷 • 对接PolarFS作为云原生数据库的高性能存储 底座,完美支持云原生数据库的存算分离架 构 • Curve作为云存储中间件使用S3兼容的对象 存储作为数据存储引擎,为公有云用户提供 高性价比的共享文件存储 • 支持在物理机上挂载使用块设备或FUSE文件 支持在物理机上挂载使用块设备或FUSE文件 系统开源社区 社区运营 生态共建 开源共建 源码兜底 技术领先 目标 方法 影响力 降本 获客 用户 开发者 操作系统 芯片 数据库 云原生 AI训练 大数据 社区生态Curve介绍 01 02 raft和braft 03 raft在Curve中的应用 05 Q&A 04 Curve对raft的优化RAFT协议简介 什么是raft • raft 是一种新型0 码力 | 29 页 | 2.20 MB | 6 月前3
新一代云原生分布式存储新一代云原生分布式存储—Curve 上 李小翠 网易数帆存储团队分布式存储介绍 01 存储的发展 | 分布式存储的分类 | 分布式存储的要素 02 03 04 Ceph 架构简介 | 场景介绍 | 使用中的问题 Curve 架构简介 | 数据对比 | 应用情况 FAQ 答疑存储的发展 互联网时代,数据大爆炸 大型主机 成本高 单点问题 扩容困难 各存储设备通过网络互联 各存储设备通过网络互联 大规模 弹性扩容 底层构建在分布式存储之上 云的概念 成本:共用基础设施 弹性:随意扩缩容 速度:更快的构建发布业务 底层构建在分布式存储之上 云原生的概念: 易用性:跨平台,超融合,弹性 小型主机 容量有限分布式存储的分类 按照各种应用场景所需的存储接口分类 对象 存储 文件 存储 块存储 接口为简单的 Get、PUT、DEL 和其他扩展 通常意义是支持 对指定地址空间进行随机读写 传统意义的块存储:磁盘分布式存储的要素 如何构建分布式文件系统? 以分布式块存储为例。 •提供大容量的块设备 •可以在指定地址空间内随机读写 write(offset, len) •服务质量要求:数据不能丢、服务随时可用、弹性扩缩容 要什么 •成百上千台存储节点 •磁盘故障、机器故障、网络故障概率性发生 有什么 分布式存储系统需要满足接口需求,并且有持续监控、错误检测、容错与自动恢复的能力0 码力 | 29 页 | 2.46 MB | 6 月前3
Python 标准库参考指南 3.13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 6.5 unicodedata --- Unicode 数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 6.6 stringprep --- 因特网字符串预处理 Python 对象序列化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489 12.5 dbm --- Unix ” 数据库” 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490 12.5.1 dbm.sqlite3 . . . . . . . . . . . . 492 12.5.2 dbm.gnu --- GNU 数据库管理器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492 12.5.3 dbm.ndbm --- 新数据库管理器 . . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 2246 页 | 11.74 MB | 9 月前3
Python 标准库参考指南 3.11.10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 6.5 unicodedata --- Unicode 数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 6.6 stringprep --- 因特网字符串预备 . . . . . . . . . . 463 12.5 dbm --- Unix ” 数据库” 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465 12.5.1 dbm.gnu --- GNU 数据库管理器 . . . . . . . . . . . . . . . . . . . . . --- 新数据库管理器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467 12.5.3 dbm.dumb --- 便携式 DBM 实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468 12.6 sqlite3 --- SQLite 数据库 DB-API0 码力 | 2248 页 | 11.10 MB | 9 月前3
Python 标准库参考指南 3.8.20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 6.5 unicodedata --- Unicode 数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 6.6 stringprep --- 因特网字符串预备 . . . . . . . . . . 407 12.5 dbm --- Unix ” 数据库” 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408 12.6 sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 667 16.16 ctypes --- Python 的外部函数库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673 17 并发执行 703 17.1 threading ---0 码力 | 1927 页 | 9.69 MB | 9 月前3
Python 标准库参考指南 3.10.15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 6.5 unicodedata --- Unicode 数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 6.6 stringprep --- 因特网字符串预备 . Python 对象序列化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 12.5 dbm --- Unix ” 数据库” 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440 12.5.1 dbm.gnu --- 便携式 DBM 实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 12.6 sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块 . . . . . . . . . . . . . . . . . . . . . . . . 444 12.6.1 教程 . . . . . . . . . . .0 码力 | 2072 页 | 10.39 MB | 9 月前3
Python 标准库参考指南 3.12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 6.5 unicodedata --- Unicode 数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 6.6 stringprep --- 因特网字符串预处理 . . . . . . . . . 471 12.5 dbm --- Unix ” 数据库” 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472 12.5.1 dbm.gnu --- GNU 数据库管理器 . . . . . . . . . . . . . . . . . . . . . --- 新数据库管理器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475 12.5.3 dbm.dumb --- 便携式 DBM 实现 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476 12.6 sqlite3 --- SQLite 数据库的 DB-API0 码力 | 2253 页 | 11.81 MB | 9 月前3
Python 标准库参考指南 3.13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 6.5 unicodedata --- Unicode 数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 6.6 stringprep --- 因特网字符串预处理 Python 对象序列化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485 12.5 dbm --- Unix ” 数据库” 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486 12.5.1 dbm.sqlite3 . . . . . . . . . . . . 488 12.5.2 dbm.gnu --- GNU 数据库管理器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488 12.5.3 dbm.ndbm --- 新数据库管理器 . . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 2242 页 | 11.73 MB | 9 月前3
共 154 条
- 1
- 2
- 3
- 4
- 5
- 6
- 16













