A could-native distributed storage system
English | 简体中文
- 关于 Curve
- Curve Architecture
- Curve 部署
- 测试对比
- 设计文档
- CurveBS 快速体验
- CurveFS 快速体验
- 社区治理
- 贡献我们
- 行为守则
- LICENSE
- 版本发布周期
- 分支规则
- 反馈及交流
Curve 是网易主导自研的现代化存储系统, 目前支持文件存储(CurveFS)和块存储(CurveBS)。现作为沙箱项目托管于CNCF。
高性能 | 更稳定 | 易运维 | 云原生
-
高性能 : 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。
对接 Kubernates
- 使用 Curve CSI Driver 插件在 Container Orchestrator (CO) 与 Curve 集群中实现了 Container Storage Interface(CSI)。
- 文档详见CSI Curve Driver Doc。
对接 PolarDB | PG
- 作为存算分离形态分布式数据库 PolarDB | PG 底层存储底座, 为上层数据库应用提供数据一致性保证, 极致弹性, 高性能HTAP。部署详见PolarDB | PG 进阶部署(CurveBS)。
更多...
- Curve 亦可作为云存储中间件使用 S3 兼容的对象存储作为数据存储引擎,为公有云用户提供高性价比的共享文件存储。
Curve混合云支持
Curve支持部署在私有云和公有云环境,也可以以混合云方式使用,私有云环境下的部署架构如下:
- 通过 Curve概述 可以了解 Curve 架构。
- CurveBS相关文档
- CurveBS上层应用
- CurveFS相关文档
- CurveAdm相关文档
为了提升 Curve 的运维便利性,我们设计开发了 CurveAdm 项目,其主要用于部署和管理 Curve 集群,目前已支持部署CurveBS & CurveFS(扩容、版本升级等更多功能正在开发中),相关使用文档请参考 CurveAdm用户手册,并根据手册首先安装CurveAdm工具之后再进行Curve集群的部署。
请参考CurveAdm用户手册中CurveBS集群部署步骤,单机体验环境请使用“集群拓扑文件-单机部署”模板。
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
请使用 CurveAdm 工具进行 CurveFS 的部署,具体流程见:CurveFS部署流程, 以及CurveFS命令行工具说明。
请参考社区治理。
参与 Curve 项目开发详见Curve 开源社区指南并且请遵循贡献者准则, 我们期待您的贡献!
Curve 的行为守则遵循CNCF Code of Conduct。
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:当前为微信群,由于群人数过多,需要先添加以下个人微信,再邀请进群。