PFS SPDK: Storage Performance Development Kit
0 码力 | 23 页 | 4.21 MB | 5 月前3OID CND Asia Slide: CurveFS
community The improvement and development of Curve cannot be achieved without the support and participation of community contributors. Project address https://github.com/opencurve/curve Release cycle: weeks to explain CURVE progress and discuss related issues Submit bugs and Suggestions: https://github.com/openCURVE/CURVE/issues Participated in the communication and discussion of Curve project: wechat wechat group, qr code on the right hand sideYou can take away Challenges faced ● With the development of hardware and software, more and more stateful applications require to run on the clouds ● High0 码力 | 24 页 | 3.47 MB | 5 月前3CurveBS IO Processing Flow
distribution. Decentralization currently leads to excessive complexity. With the continuous development of software and hardware, the need for decentralization is not particularly strong in most cases CurveBS uses RAFT as a consistency protocol. The figure above is from the RAFT paper(https://raft.github.io/raft.pdf). CurveBS uses BRaft to implement the consistency protocol. For CurveBS 1. A CopySet have compared majority replicas case with all replicas case on write latency difference: https://github.com/ceph/ceph/pull/15027In the test, the average latency was reduced by 11.5% and the IOPS increased0 码力 | 13 页 | 2.03 MB | 5 月前3Curve核心组件之Client - 网易数帆
• 当前实现了高性能块存储,对接 OpenStack 和 k8s • 网易内部线上无故障稳定运行400+天 • 已开源 • github主页: https://opencurve.github.io/ • github代码仓库: https://github.com/opencurve/curveCURVE基本架构 01 02 03 04 Client总体介绍 热升级NEBD总体介绍 block与Client的对接层 向cinder/glance提供了Python API https://github.com/opencurve/curve-qemu-block-driver NBD: 实现了Curve-NBD,与内核NBD模块进行交互 可以作为容器的数据存储 CSI插件也已经开源: https://github.com/opencurve/curve-csi CLIENT上层应用CLIENT虚拟块设备CLIENT主要功能 改成 bthread::Mutex …… 128深度、4K随机写欢 迎 大 家 参 与 C U R V E 项 目 ! github主页: https://opencurve.github.io/ github代码仓库: https://github.com/opencurve/curve 系列讲座:https://space.bilibili.com/700847536/channel/detail0 码力 | 27 页 | 1.57 MB | 5 月前3Curve设计要点
• 当前实现了高性能块存储,对接OpenStack和 K8s 网易内部线上无故障稳定运行一年多,线上异常演练 • 已开源 • github主页: https://opencurve.github.io/ • github代码仓库: https://github.com/opencurve/curve 概述背景 01 02 03 04 总体设计 系统特性 近期规划背景 • 多个存储软件:SDFS、NEFS、NBS 开源 • 系列技术分享 • 参与开发人员线上议题讨论会 近期规划欢 迎 大 家 参 与 C U R V E 项 目 ! • github主页: https://opencurve.github.io/ • github代码仓库: https://github.com/opencurve/curve • 系列讲座:https://space.bilibili.com/700847536/channel/detail0 码力 | 35 页 | 2.03 MB | 5 月前3Curve核心组件之chunkserver
等 • 当前实现了高性能块存储,对接 openstack 和 k8s 网易内部线上无故障稳定运行500+天 • 已开源 • github主页: https://opencurve.github.io/ • github代码仓库: https://github.com/opencurve/curveCURVE基本架构 01 02 03 04 ChunkServer架构 ChunkServer核心模块 改为O_DIRECT模式(改为Direct模式可以避免显式调用sync)欢 迎 大 家 参 与 C U R V E 项 目 ! • github主页: https://opencurve.github.io/ • github代码仓库: https://github.com/opencurve/curve • 系列讲座:https://space.bilibili.com/700847536/channel/detail0 码力 | 29 页 | 1.61 MB | 5 月前3Curve核心组件之mds – 网易数帆
据库、EC等 • 当前实现了高性能块存储,对接OpenStack和 K8s 网易内部线上无故障稳定运行一年多 • 已开源 • github主页: https://opencurve.github.io/ • github代码仓库: https://github.com/opencurve/curve 概述整体架构 01 02 03 MDS各组件详细介绍 Q&A基本架构 • 元数据节点 scatter-width • 无需人工干预 • 对io影响几乎无影响欢 迎 大 家 参 与 C U R V E 项 目 ! • github主页: https://opencurve.github.io/ • github代码仓库: https://github.com/opencurve/curve • 技术讲座直播:https://live.bilibili.com/225853370 码力 | 23 页 | 1.74 MB | 5 月前3Curve质量监控与运维 - 网易数帆
高性能、低延迟 当前实现了高性能块存储,对接OpenStack和 K8s 网易内部线上无故障稳定运行近两年 已完整开源 • github主页: https://opencurve.github.io/ • github代码仓库: https://github.com/opencurve/curve Curve 3/33为用户服务 作为一个复杂的大型分布式存储系统,Curve 需要利用科学的方法论和专业的工具,在整个 关键算法 接口 数据库设计 非功能特性设计 参考文献 8/33代码编写规范 Curve代码编写规范遵循Google Style Guides(https://google.github.io/styleguide/) 9/33新代码提交 Dailybuild测试 提交issue 开发设计 提交PR review +1 CI测试(编译、静态检 查、单元测试、集成测 试、覆盖率80%卡点) 合入master 分支 代码提交流程 异常自动化 测试 混沌测试 (每周一次) CI测试(编译、静态检 查、单元测试、集成测 试、覆盖率80%卡点) 邮件通知 Curve所有代码均在github托管。新 代码需要通过CI测试和code review才 能合入master分支,确保新合入代码 的功能、正确性、规范性等都有基本 保障;而每日运行的dailybuild测试在 CI测试基础上增加了异常自动化测试0 码力 | 33 页 | 2.64 MB | 5 月前3Curve核心组件之snapshotclone
chunk标记。 异步完成源chunk读到的数据写入到本地 chunk :欢 迎 大 家 参 与 C U R V E 项 目 ! • github主页: https://opencurve.github.io/ • github代码仓库: https://github.com/opencurve/curve • 系列讲座:https://space.bilibili.com/700847536/channel/detail0 码力 | 23 页 | 1.32 MB | 5 月前3Curve文件系统元数据管理
空间复杂度 特点 可用实现 Btree 一个节点上保存多条数据,减少树的层次(4~5层),方便从盘上读取数据,减少去盘上读取次数。适合在盘上和内存组织目录树。 google,https://github.com/abseil/abseil-cpp/tree/master/absl/c ontainer 实现了btree map和btree set,(Apache)。 google, https://code 内部结点不保存数据,只有叶子结点保存数据。 https://github.com/begeekmyfriend/bplustree,(MIT),实现了落 盘 BST O(log(n)) O(n) c++ stl 模板© XXX Page 4 of 24 skip list O(log(n)) O(n) level db,https://github.com/google/leveldb/blob/master/db/skip /master/db/skip list.h,( BSD) libfastcommon,https://github.com/happyfish100/libfastcommon/tr ,(LGPL) ee/master/src hash table O(1)~O(n) O(n) + table 需要占用额外空间,性能和hash表的大小有关,最理想可以达到O(1)复杂度,最差O(n)复杂度。0 码力 | 24 页 | 204.67 KB | 5 月前3
共 18 条
- 1
- 2