Curve设计要点
2.03 MB
35 页
0 评论
语言 | 格式 | 评分 |
---|---|---|
zh-cn | .pdf | 3 |
摘要 | ||
文档介绍了Curve,一款高性能、高可用、高可靠的新一代分布式存储系统。其设计背景源于现有存储软件在性能、延迟敏感场景和异常场景下的不足。Curve支持块存储、对象存储、云原生数据库等多种存储场景,且已在网易内部线上稳定运行一年多。系统具备自动化运维能力,包括自动化部署工具、一键升级和丰富的监控体系。Curve采用模块化设计,并通过单元测试、集成测试和自动化异常测试确保系统稳定性。其架构包括NEBD Server和Curve Client,支持多副本自治和精确的流量控制。 | ||
AI总结 | ||
# Curve 设计要点总结
Curve 是网易开发的高性能、高可用、高可靠的新一代分布式存储系统,主要针对块存储、对象存储、云原生数据库等场景,具备高性价比和优秀的扩展性。
## 背景与需求
### 存储系统现状
- 存储系统:SDFS、NEFS、NBS 等。
- 现有开源软件:Ceph 等存在性能不足、延迟敏感场景处理不佳、集群不均衡需人工干预等问题。
- 场景应用:高性能、高可用场景难以满足。
### 设计动机
- Curve 旨在解决现有存储系统在性能、稳定性和运维上的不足,支持多种存储场景,提升系统可靠性和运维效率。
## 系统特性
### 核心优势
- **高性能**:支持高吞吐、低延迟的块存储,对接 OpenStack 和 K8s。
- **高可用性**:多副本自治,故障恢复快速,支持随机故障注入测试。
- **高可靠性**:完善的测试体系,单元测试覆盖率达到 80%+,分支覆盖率 70%+,集成测试采用 Given-When-Then 方法,覆盖 41 个异常用例,随机故障注入测试 20 轮,确保系统稳定性。
- **易运维**:自动化部署工具实现一键部署和升级,减少人工干预,升级影响小于秒级。
### 系统架构
- **CS架构**:NEBD Server 接收请求并调用 Curve Client 处理,NEBD Client 对接上层业务。
- **自动化运维**:集群状态查询工具 curve_ops_tool 提供实时监控,Prometheus + Grafana 可视化和每日报表辅助数据定位问题。
- **资源管理**:基于 leader copyset scatter-width 的资源均衡策略,无需人工干预,确保负载均衡。
## 技术特色
### 创新点
- **去中心化**:无中心节点设计,提升系统自我管理和容错能力。
- **多副本自治**:支持多副本异常场景的自治恢复,减少人工干预。
- **流量控制**:精确管理 IO 流量,影响极小,确保服务平稳运行。
### 挑战与解决方案
- **性能优化**:针对 IO 吞吐和多 Raft 场景进行专项优化。
- **系统测试**:采用自动化测试体系保障系统稳定性,同时支持随机故障注入,验证系统恢复能力。
## 近期发展计划
- **性能优化**:提升数据库性能,优化大 IO 吞吐和多 Raft 性能。
- **开源共享**:已开源,开源社区积极参与,定期技术分享和开发者讨论会。
- **社区协作**:欢迎开发者参与项目,共同推动 Curve 的发展。
## 开源信息
- **项目主页**:[Curve 官方主页](https://opencurve.github.io/)
- **代码仓库**:[Curve Github](https://github.com/opencurve/curve)
Curve 凭借其出色的性能和稳定性,已在网易内部线上环境中稳定运行一年多,通过了多次线上异常演练,展现出其高可靠性和强扩展性,是分布式存储领域的佼佼者。 |
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
下载文档到本地,方便使用
- 可预览页数已用完,剩余
23 页请下载阅读 -
文档评分