Home

Awesome

<div align=center> <img src="docs/images/curve-logo1-nobg.png" width = 45%> <div align=center> <image src="docs/images/cncf-icon-color.png" width = 8%>

A cloud-native distributed storage system

A sandbox project hosted by the CNCF Foundation

English | 简体中文

📄 Documents || 🌐 Official Website || 🏠 Forum

<div align=left> <div class="column" align="middle"> </a> <a href="https://github.com/opencurve/curve/blob/master/LICENSE"> <img src=https://img.shields.io/aur/license/android-studio?style=plastic alt="license"/> </a> <a href="https://github.com/opencurve/curve/releases"> <img src="https://img.shields.io/github/v/release/opencurve/curve?include_prereleases" alt="release"/> </a> <a href="https://bestpractices.coreinfrastructure.org/projects/6136"> <img src="https://bestpractices.coreinfrastructure.org/projects/6136/badge"> </a> <a href="https://github.com/opencurve/curve/tree/master/docs"> <img src="https://img.shields.io/badge/docs-latest-green.svg"> </div>

✨ Contents

About Curve

Curve is a modern storage system developed by netease, currently supporting file storage(CurveFS) and block storage(CurveBS). Now it's hosted at CNCF as a sandbox project.

The core application scenarios of CurveBS mainly include:

The core application scenarios of CurveFS mainly include:

<details> <summary><b><font=5>High Performance | More stable | Easy Operation | Cloud Native</b></font></summary> <details> <summary><b><font=5>Docking OpenStack</b></font></summary> </details> <details> <summary><b><font=5>Docking Kubernetes</b></font></summary> </details> <details> <summary><b><font=5>Docking PolarDB | PG </b></font></summary> </details> <details> <summary><b><font=5> More...</b></font></summary> </details>

Curve Architecture

<div align=center> <image src="docs/images/Curve-arch.png" width=60%> <div align=left> <details> <summary><b><font=4>Curve on Hybrid Cloud</b></font></summary>

Curve supports deployment in private and public cloud environments, and can also be used in a hybrid cloud:

<div align=center> <image src="docs/images/Curve-deploy-on-premises-idc.png" width=60%> <div align=left>

One of them, CurveFS shared file storage system, can be elastically scaled to public cloud storage, which can provide users with greater capacity elasticity, lower cost, and better performance experience.

</details> <div align=left> <details> <summary><b><font=4>Curve on Public Cloud</b></font></summary>

In a public cloud environment, users can deploy CurveFS clusters to replace the shared file storage system provided by cloud vendors and use cloud disks for acceleration, which can greatly reduce business costs, with the following deployment architecture:

<div align=center> <image src="docs/images/Curve-deploy-on-public-cloud.png" width=55%> </details> <div align=left>

Design Documentation

CurveBS quick start

In order to improve the operation and maintenance convenience of Curve, we designed and developed the CurveAdm project, which is mainly used for deploying and managing Curve clusters. Currently, it supports the deployment of CurveBS & CurveFS (scaleout, upgrade and other functions are under development), please refer to the CurveAdm User Manual for related documentation, and install the CurveAdm tool according to the manual before deploying the Curve cluster.

Deploy an All-in-one experience environment

Please refer to the CurveBS cluster deployment steps in the CurveAdm user manual. For standalone experience, please use the "Cluster Topology File - Standalone Deployment" template.

The command tools' instructions

FIO Curve block storage engine

Fio Curve engine is added, you can clone https://github.com/opencurve/fio and compile the fio tool with our engine(depend on nebd lib), fio command line example:

$ ./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

If you have any questions during performance testing, please check the Curve block storage performance tuning guide.

CurveFS quick start

Please use CurveAdm tool to deploy CurveFS,see CurveFS Deployment Process, and the CurveFS Command Instructions.

Test environment configuration

Please refer to the Test environment configuration

Practical

Governance

See Governance.

Contribute us

Participation in the Curve project is described in the Curve Developers Guidelines and is subject to a contributor contract. We welcome your contribution!

Code of Conduct

Curve follows the CNCF Code of Conduct.

LICENSE

Curve is distributed under the Apache 2.0 LICENSE.

Release Cycle

Branch

All the developments will be done under master branch. If there's any new version to establish, a new branch release-x.y will be pulled from the master, and the new version will be released from this branch.

Contributors

This project exists thanks to all the people who contribute.

<a href="https://github.com/opencurve/curve/graphs/contributors"> <img src="https://contrib.rocks/image?repo=opencurve/curve" /> </a>

Made with contrib.rocks.

Star History

Star History Chart

Feedback & Contact

<img src="docs/images/curve-wechat.jpeg" style="zoom: 65%;" />