

云原生分布式存储系统
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
- 常见异常Curve在块存储场景下稳定性优于Ceph。
-
操作简单
- 我们开发了CurveAdm来帮助运维人员。
工具 CephAdm 曲线管理 简易安装 ✔️ ✔️ 轻松部署 ❌(步骤稍微多一些) ✔️ 操场 ❌ ✔️ 多集群管理 ❌ ✔️ 轻松扩展 ❌(步骤稍微多一些) ✔️ 轻松升级 ✔️ ✔️ 轻松停止服务 ❌ ✔️ 易于清洁 ❌ ✔️ 部署环境测试 ❌ ✔️ 运营审核 ❌ ✔️ 外围组件部署 ❌ ✔️ 简单的日志报告 ❌ ✔️ 集群状态统计报告 ❌ ✔️ 错误代码分类及解决方法 ❌ ✔️ - Ops 在块存储场景下,CurveBS ops 比 CephBS 更加友好。
运营场景 升级客户端 平衡 CephBS 不支持实时升级 通过具有 IO 影响的插件 曲线BS 支持二次抖动实时升级 自动,不影响IO
- 我们开发了CurveAdm来帮助运维人员。
-
云原生
- 请参阅我们对云原生的理解。
对接OpenStack
- 请参阅Curve-cinder。
对接Kubernetes
- 使用Curve CSI Driver,该插件实现了 Container Orchestrator(CO) 和 Curve 集群之间的容器存储接口 (CSI)。它允许动态配置曲线卷并将其附加到工作负载。
- 有关文档的详细信息,请参阅CSI Curve 驱动程序文档。
对接PolarDB | PG
-
它以存储与计算分离的形式作为polardb for postgresql的底层存储基础,为上层数据库应用提供数据一致性保证、极致弹性伸缩和高性能HTAP。
-
部署详情参见PolarDB | PG高级部署(CurveBS)。
更多的...
- Curve还可以作为云存储中间件,使用兼容S3的对象存储作为数据存储引擎,为公有云用户提供经济高效的共享文件存储。

混合云上的 Curve
Curve支持在私有云和公有云环境中部署,也可以在混合云中使用:
-
想看一下曲线吗?单击此处了解曲线简介!
-
想要了解有关 CurveBS 的更多详细信息吗?我们每个组件的文档:
-
基于CurveBS的应用
-
CurveFS 文档
-
曲线管理
为了提高Curve的运维便利性,我们设计开发了CurveAdm项目,主要用于部署和管理Curve集群。目前支持CurveBS & CurveFS的部署(横向扩展、升级等功能正在开发中),相关文档请参考CurveAdm用户手册,并在部署Curve集群前按照手册安装CurveAdm工具。
请参考CurveAdm用户手册中的CurveBS集群部署步骤。对于单机体验,请使用“集群拓扑文件-单机部署”模板。
添加了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块存储性能调优指南。
请使用CurveAdm工具部署CurveFS,请参阅CurveFS部署流程和CurveFS命令说明。
请参考测试环境配置
参见治理。
Curve 开发者指南中描述了 Curve 项目的参与,并受贡献者合同的约束。我们欢迎您的贡献!
Curve 遵循CNCF 行为准则。
-
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 正在做什么和计划做什么。会议时间和链接在用户群和双周会议中公开。
