Skip to content

Latest commit

 

History

History
256 lines (186 loc) · 11.7 KB

README_cn.md

File metadata and controls

256 lines (186 loc) · 11.7 KB

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

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
对接 Kubernetes
对接 PolarDB | PG
更多...
  • 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:当前为微信群,由于群人数过多,需要先添加以下个人微信,再邀请进群。