目录

云原生高性能分布式存储系统

CNCF基金会的沙箱托管项目

English | 简体中文

📄 文档 || 🌐 官网 || 🏠 论坛

✨ 目录

关于 Curve

Curve 是网易主导自研的现代化存储系统, 目前支持文件存储(CurveFS)和块存储(CurveBS)。现作为沙箱项目托管于CNCF

CurveBS的核心应用场景主要包括:

  • 虚拟机/容器的性能型、混合型、容量型云盘或持久化卷,以及物理机的远程存储盘
  • 高性能存算分离架构:基于RDMA+SPDK的高性能低时延架构,支撑MySQL、kafka等各类数据库、中间件的存算分离部署架构,提升实例交付效率和资源利用率

CurveFS的核心应用场景主要包括:

  • AI训练(含机器学习等)场景下的高性价比存储
  • 大数据场景下的冷热数据自动化分层存储
  • 公有云上高性价比的共享文件存储:可用于AI、大数据、文件共享等业务场景
  • 混合云存储:热数据存储在本地IDC,冷数据存储在公有云
高性能 | 更稳定 | 易运维 | 云原生
  • 高性能 : CurveBS vs CephBS

    CurveBS: v1.2.0

    CephBS: L/N 性能: 块存储场景下,CurveBS随机读写性能远优于CephBS。 测试环境:6台服务器*20块SATA SSD,E5-2660 v4,256G,3副本,使用nbd场景。

    单卷场景:

    多卷场景:

  • 更稳定

    • 块存储场景下,常见异常CurveBS的稳定性优于CephBS。

      异常场景 单盘故障 慢盘 机器宕机 机器卡住
      CephBS 抖动7s 持续io抖动 抖动7s 不可恢复
      CurveBS 抖动4s 无影响 抖动4s 抖动4s
  • 易运维

    • 我们开发了 CurveAdm来帮助运维人员。

      工具 CephAdm CurveAdm
      一键安装 ✔️ ✔️
      一键部署 ❌(步骤稍多) ✔️
      playground ✔️
      多集群管理 ✔️
      一键扩容 ❌(步骤稍多) ✔️
      一键升级 ✔️ ✔️
      一键停服 ✔️
      一键清理 ✔️
      部署环境检测 ✔️
      操作审计 ✔️
      周边组件部署 ✔️
      一键日志上报 ✔️
      集群状态统计上报 ✔️
      错误码分类及解决方案 ✔️
    • 运维 块存储场景下,CurveBS常见运维更友好。

      运维场景 客户端升级 均衡
      CephBS 不支持热升级 外部插件调整,影响业务IO
      CurveBS 支持热升级,秒级抖动 自动均衡,对业务IO无影响
  • 云原生

对接 OpenStack
  • 详见 Curve-cinder

  • 对接 Kubernetes
    对接 PolarDB | PG
  • 作为存算分离形态分布式数据库 PolarDB | PG 底层存储底座, 为上层数据库应用提供数据一致性保证, 极致弹性, 高性能HTAP。部署详见PolarDB | PG 进阶部署(CurveBS)

  • 更多...
    • Curve 亦可作为云存储中间件使用 S3 兼容的对象存储作为数据存储引擎,为公有云用户提供高性价比的共享文件存储。

    Curve 架构

    Curve混合云支持

    Curve支持部署在私有云和公有云环境,也可以以混合云方式使用,私有云环境下的部署架构如下:

    其中CurveFS共享文件存储系统可以弹性伸缩到公有云存储,可以为用户提供更大的容量弹性、更低的成本、更好的性能体验。

    Curve公有云支持

    公有云环境下,用户可以部署CurveFS集群,用来替换云厂商提供的共享文件存储系统,并利用云盘进行加速,可极大的降低业务成本,其部署架构如下:

    设计文档

    CurveBS 快速体验

    为了提升 Curve 的运维便利性,我们设计开发了 CurveAdm 项目,其主要用于部署和管理 Curve 集群,目前已支持部署CurveBS & CurveFS(扩容、版本升级等更多功能正在开发中),相关使用文档请参考 CurveAdm用户手册,并根据手册首先安装CurveAdm工具之后再进行Curve集群的部署。

    部署All-in-one体验环境

    请参考CurveAdm用户手册中CurveBS集群部署步骤,单机体验环境请使用“集群拓扑文件-单机部署”模板。

    curve 提供了命令行工具以查看集群状态和进行基本集群操作:命令行工具说明

    FIO Curve块存储引擎

    fio的Curve块存储引擎代码已经上传到 https://github.com/opencurve/fio ,请自行编译测试(依赖nebd库),fio命令行示例:

    $ ./fio --thread --rw=randwrite --bs=4k --ioengine=nebd --nebd=cbd:pool//pfstest_test_ --iodepth=10 --runtime=120 --numjobs=10 --time_based --group_reporting --name=curve-fio-test

    在性能测试过程中有任何问题,请查看Curve块存储性能调优指南

    CurveFS 快速体验

    请使用 CurveAdm 工具进行 CurveFS 的部署,具体流程见:CurveFS部署流程, 以及CurveFS命令行工具说明

    测试环境配置

    请参考 测试环境配置

    社区治理

    请参考社区治理

    贡献我们

    参与 Curve 项目开发详见Curve 开发者指南并且请遵循贡献者准则, 我们期待您的贡献!

    最佳实践

    行为守则

    Curve 的行为守则遵循CNCF Code of Conduct

    LICENSE

    Curve 在 Apache 2.0 协议下进行分发。

    版本发布周期

    • CURVE版本发布周期:大版本半年,小版本1~2个月
    • 版本号规则:采用3段式版本号,x.y.z{-后缀},x是大版本,y是小版本,z是bugfix,后缀用来区beta版本(-beta)、rc版本(-rc)、和稳定版本(没有后缀)。每半年的大版本是指x增加1,每1~2个月的小版本是y增加1。正式版本发布之后,如果有bugfix是z增加1。

    分支规则

    所有的开发都在master分支开发,如果需要发布版本,从master拉取新的分支release-x.y。版本发布从release-x.y分支发布。

    反馈及交流

    • Github Issues:欢迎提交BUG、建议,使用中如遇到问题可参考FAQ或加入我们的User group进行咨询。
    • FAQ:主要根据User group中常见问题整理,还在逐步完善中。
    • User group:当前为微信群,由于群人数过多,需要先添加以下个人微信,再邀请进群。
    关于

    Curve是网易自主设计研发的高性能、易运维、云原生的分布式存储系统,目前提供块(CurveBS)和文件(CurveFS)两种存储方式。CurveBS支持快照克隆和恢复,支持QEMU虚拟机和物理机NBD设备两种挂载方式。CurveFS基于Fuse支持POSIX文件系统接口。

    120.6 MB
    邀请码
      Gitlink(确实开源)
    • 加入我们
    • 官网邮箱:gitlink@ccf.org.cn
    • QQ群
    • QQ群
    • 公众号
    • 公众号

    ©Copyright 2023 CCF 开源发展委员会
    Powered by Trustie& IntelliDE 京ICP备13000930号