Skip to content

Curve 是 CNCF 基金会主办的沙盒项目。它是云原生、高性能且易于操作。 Curve 是一个用于块和共享文件存储的开源分布式存储系统。 opencurve.io

License

Notifications You must be signed in to change notification settings

yuanxiaoming8899/curve

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

云原生分布式存储系统

CNCF 基金会主办的沙箱项目

英语 |简体中文

📄文件|| 🌐官方网站|| 🏠论坛

✨ 内容

关于曲线

Curve是网易开发的现代存储系统,目前支持文件存储(CurveFS)和块存储(CurveBS)。现在它作为沙盒项目托管在CNCF 。

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

  • 虚拟机/容器的性能、混合、容量云盘或持久卷、物理机的远程盘
  • 高性能存储计算分离架构:基于RDMA+SPDK的高性能低延迟架构,支持MySQL、Kafka等多种数据库分离部署结构

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

  • AI训练场景高性价比存储
  • 大数据场景下的冷热数据自动化分层存储
  • 公有云上高性价比的共享文件存储:可用于AI、大数据、文件共享等业务场景
  • 混合存储:热数据存储在本地IDC,冷数据存储在公有云
高性能|更稳定|操作简单|云原生
  • 高性能:CurveBS 与 CephBS

    CurveBS:v1.2.0

    CephBS:L/N性能:CurveBS随机读写性能在块存储场景下远超CephBS。

    环境:6节点集群3个副本,每个节点有20xSATA SSD,2xE5-2660 v4和256GB内存。

    单卷:

    多卷:

  • 更稳定

    • 常见异常Curve在块存储场景下稳定性优于Ceph。
      故障案例 一块磁盘故障 慢速磁盘检测 一台服务器故障 服务器挂起动画
      CephBS 抖动7秒 连续io抖动 抖动7秒 无法恢复的
      曲线BS 抖动4s 没有效果 抖动4s 抖动4s
  • 操作简单

    • 我们开发了CurveAdm来帮助运维人员。
      工具 CephAdm 曲线管理
      简易安装 ✔️ ✔️
      轻松部署 ❌(步骤稍微多一些) ✔️
      操场 ✔️
      多集群管理 ✔️
      轻松扩展 ❌(步骤稍微多一些) ✔️
      轻松升级 ✔️ ✔️
      轻松停止服务 ✔️
      易于清洁 ✔️
      部署环境测试 ✔️
      运营审核 ✔️
      外围组件部署 ✔️
      简单的日志报告 ✔️
      集群状态统计报告 ✔️
      错误代码分类及解决方法 ✔️
    • Ops 在块存储场景下,CurveBS ops 比 CephBS 更加友好。
      运营场景 升级客户端 平衡
      CephBS 不支持实时升级 通过具有 IO 影响的插件
      曲线BS 支持二次抖动实时升级 自动,不影响IO
  • 云原生

对接OpenStack
对接Kubernetes
  • 使用Curve CSI Driver,该插件实现了 Container Orchestrator(CO) 和 Curve 集群之间的容器存储接口 (CSI)。它允许动态配置曲线卷并将其附加到工作负载。
  • 有关文档的详细信息,请参阅CSI Curve 驱动程序文档
对接PolarDB | PG
更多的...
  • Curve还可以作为云存储中间件,使用兼容S3的对象存储作为数据存储引擎,为公有云用户提供经济高效的共享文件存储。

曲线架构

混合云上的 Curve

Curve支持在私有云和公有云环境中部署,也可以在混合云中使用:

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

公有云上的 Curve

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

设计文档

CurveBS 快速入门

为了提高Curve的运维便利性,我们设计开发了CurveAdm项目,主要用于部署和管理Curve集群。目前支持CurveBS & CurveFS的部署(横向扩展、升级等功能正在开发中),相关文档请参考CurveAdm用户手册,并在部署Curve集群前按照手册安装CurveAdm工具。

部署一体化体验环境

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

命令工具说明

FIO曲线块存储引擎

添加了Fio Curve引擎,您可以克隆https://github.com/opencurve/fio并使用我们的引擎编译fio工具(依赖nebd lib),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 行为准则

执照

Curve 在Apache 2.0 许可证下分发。

发布周期

  • CURVE发布周期:大版本半年,小版本1~2个月

  • 版本控制格式:我们使用三位数字和后缀的序列(xyz{-suffix}),x 是主要版本,y 是次要版本,z 表示错误修复。后缀用于区分 beta (-beta)、RC (-rc) 和 GA 版本(不带任何后缀)。主要版本x每半年增加1,y每1~2个月增加一次。版本发布后,如果有任何错误修复,数字 z 将会增加。

分支

所有的开发都将在 master 分支下完成。如果有新版本需要建立,则会从master上拉取一个新的分支release-xy,并从该分支发布新版本。

贡献者

这个项目的存在要感谢所有做出贡献的人。

contrib.rocks制作。

明星历史

明星历史图

反馈与联系

  • Github Issues:真诚欢迎您通过 Github issues 提出您遇到的任何 bug 或任何建议。如果您有任何疑问,您可以参考我们的常见问题解答或加入我们的用户组以获取更多详细信息。
  • FAQ:我们用户群中常见的问题,我们会继续努力解决。
  • 用户群:目前我们使用的是微信群。
  • 双周会议:我们每两周举行一次在线社区会议,讨论 Curve 正在做什么和计划做什么。会议时间和链接在用户群和双周会议中公开。

About

Curve 是 CNCF 基金会主办的沙盒项目。它是云原生、高性能且易于操作。 Curve 是一个用于块和共享文件存储的开源分布式存储系统。 opencurve.io

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 89.1%
  • Go 5.0%
  • Python 2.1%
  • Starlark 1.3%
  • Shell 1.1%
  • C 0.4%
  • Other 1.0%