Curve
Curve is a sandbox project hosted by the CNCF Foundation. It's cloud-native, high-performance, and easy to operate. Curve is an open-source distributed storage system for block and shared file storage.
Install / Use
/learn @opencurve/CurveREADME
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 Architecture
- Design Documentation
- CurveBS quick start
- CurveFS quick start
- Test environment configuration
- Governance
- Contribute us
- Code of Conduct
- LICENSE
- Release Cycle
- Branch
- Contributors
- Star History
- Feedback & Contact
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 performance, mixed, capacity cloud disk or persistent volume of virtual machine/container, and remote disks of physical machines
- high-performance separation of storage and computation architecture: high-performance and low latency architecture based on RDMA+SPDK, supporting the separation deployment structure of various databases such as MySQL and Kafka
The core application scenarios of CurveFS mainly include:
- the cost-effective storage in AI training scene
- the hot and cold data automation layered storage in big data scenarios
- the cost-effective shared file storage on the public cloud: It can be used for business scenarios such as AI, big data, file sharing
- Hybrid storage: Hot data is stored in the local IDC, cold data is stored in public cloud
-
High Performance : CurveBS vs CephBS
CurveBS: v1.2.0
CephBS: L/N Performance: CurveBS random read and write performance far exceeds CephBS in the block storage scenario.
Environment:3 replicas on a 6-node cluster, each node has 20xSATA SSD, 2xE5-2660 v4 and 256GB memory.
Single Vol: <image src="docs/images/1-nbd-en.png">
Multi Vols: <image src="docs/images/10-nbd-en.png">
-
More stable
- The stability of the common abnormal Curve is better than that of Ceph in the block storage scenario. | Fault Case | One Disk Failure | Slow Disk Detect | One Server Failure | Server Suspend Animation | | :----: | :----: | :----: | :----: | :----: | | CephBS | jitter 7s | Continuous io jitter | jitter 7s | unrecoverable | | CurveBS | jitter 4s | no effect | jitter 4s | jitter 4s |
-
Easy Operation
- We have developed CurveAdm to help O&M staff. | tools |CephAdm | CurveAdm| | :--: | :--: |:--: | | easy Installation | ✔️ | ✔️ | | easy Deployment| ❌(slightly more steps) | ✔️ | | playground | ❌| ✔️| | Multi-Cluster Management | ❌ | ✔️ | | easy Expansion | ❌(slightly more steps)| ✔️| |easy Upgrade | ✔️ | ✔️| |easy to stop service | ❌ | ✔️| |easy Cleaning | ❌ | ✔️ | |Deployment environment testing| ❌ | ✔️ | |Operational audit| ❌ | ✔️| |Peripheral component deployment| ❌ | ✔️| |easy log reporting| ❌ | ✔️| |Cluster status statistics reporting| ❌| ✔️| |Error code classification and solutions| ❌ | ✔️|
- Ops CurveBS ops is more friendly than CephBS in the block storage scenario. | Ops scenarios | Upgrade clients | Balance | | :----: | :----: | :----: | | CephBS | do not support live upgrade | via plug-in with IO influence | | CurveBS | support live upgrade with second jitter | auto with no influence on IO |
-
Cloud Native
- Please see Our understanding of cloud native.
- Please see Curve-cinder.
- Use Curve CSI Driver, The plugin implements the Container Storage Interface(CSI) between Container Orchestrator(CO) and Curve cluster. It allows dynamically provisioning curve volumes and attaching them to workloads.
- For details of the documentation, see CSI Curve Driver Doc.
-
It serves as the underlying storage base for polardb for postgresql in the form of storage and computation separation, providing data consistency assurance for upper layer database applications, extreme elasticity scaling, and high performance HTAP.
-
Deployment details can be found at PolarDB | PG Advanced Deployment(CurveBS).
- Curve can also be used as cloud storage middleware using S3-compatible object storage as the data storage engine, providing cost-effective shared file storage for public cloud users.
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
-
Wanna have a glance at Curve? Click here for Intro to Curve!
-
Want more details about CurveBS? Our documentation for every component:
-
Application based on CurveBS
-
CurveFS documentations
-
CurveAdm
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](docs/cn/
Related Skills
node-connect
336.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.0kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
336.9kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.0kCommit, push, and open a PR
