Curve 是云原生计算基金会 (CNCF) Sandbox 项目,是网易主导自研和开源的高性能、易运维、云原生的分布式存储系统。
2022年的 Curve
辞旧迎新之际,想和正在关注 Curve 开源社区的朋友聊聊这一年的进展:
发布5个版本
[v2.0][1]:
- Curve 文件存储节点支持替换异常 metaserver;
- Curve 文件存储支持业务io和存储io走不同网络;
- Curve 文件存储客户端支持 QOS;
- Curve 文件存储支持集群自动均衡;
- 若干bugfix;这是 Curve 文件存储正式合入主干分支的版本。
[v2.1][2]:
- Curve 文件存储支持多挂载;
- Curve 文件存储客户端支持 LRU 缓存淘汰策略;
- Curve 文件存储客户端支持多 S3;
- Curve 文件存储支持 dir xattr 特性;
- 若干bugfix;这个版本对基础重要的功能进行了补充,使得 Curve 文件存储的基本功能级得以完善。
[v2.2][3]:
- Curve 文件存储 metaserver 支持数据存储到 rocksdb;
- Curve 文件存储支持 Curve 块存储后端;
- 若干bugfix;这个版本将元数据从内存存储扩展到了 rocksdb 持久化,Curve 文件存储可以支持超大规模数据量。
[v2.3][4]:
- Curve 文件存储优化支持 Promethues Grafana 监控可视化;
- Curve 文件存储全面性能优化;
- Curve 文件存储大规模稳定性优化;
- 若干bugfix;数据读写性能以及元数据性能相比较于之前的版本有数倍的提升,达到了生产级可用性能;
[v2.4][4]:
- Curve 文件存储支持预热特性,主要用于AI场景下的数据集读取加速;
[v2.5][5]:
- Curve 文件存储支持 memcache 作为缓存集群,主要提升多挂载情况下数据共享的读写性能;
- Curve 文件存储支持回收站功能;
块存储
- 重点支撑了若干社区用户云原生数据库业务场景;
- 基于 rdma ext4 在16K随机IO场景下,读写时延分别达到80us、310us 完成IO Fence功能发布;
文件存储,针对部分社区用户ES、AI训练、clickhouse等场景进行持续打磨完善,重点完成了如下几个方面的优化工作:
- ES场景,主要支持冷数据存储,解决了冷数据场景下元数据缓存导致的文件读写失败问题;
- AI场景,主要支持AI训练场景中的数据集读取加速(Curve 文件存储支持数据集预热),以及分布式框架训练过程中的数据读写(Curve 文件存储支持多挂载情况下cto一致性以及 memcache 缓存集群)
在这一年,社区组织和参与分享、活动共20 场,超数百位社区开发者参与活动;新增不少 Contributor 和 Committer,也收获不少荣誉,感谢各位的辛苦付出,Curve 开源社区的发展离不开大家的积极参与~
在这一年,社区有数十家社区用户完成了 Curve 的部署、测试,感谢大家的志同道合!2023我们将进一步向前,敬请期待~
2023年
新的一年 Curve 开源社区 Roadmap 大致方向已经有了初稿:
块存储:
- 可观测性:部分用户测试发现无法在其环境下复现出 Curve 社区性能指标,相关调优文档不能很好的帮助用户做性能优化,为此社区计划在23年优化相关性能分析及优化指导工具,协助用户在部署、测试、日常维护过程中进行全生命周期的性能管理;
- 超融合场景支撑:重点完成全闪、混闪(nvme ssd)场景下的性能提升,全闪场景下支持 rdma spdk 的全链路零拷贝能力,混闪场景的功能开发,以及按节点/服务器扩容能力支持,EC 引擎的支持,本地快照能力(去掉S3依赖);
- 全链路的软件优化:brpc、braft 优化改造,降低软件层时延,提升集群在高负载情况下的运行稳定性(解决心跳异常导致的leader切换等问题),降低P99时延;
文件存储:
- 重点支持热数据存储:引入 Curve 块存储作为热数据存储引擎,支持更高性能需求的热数据存储;
- 冷热数据分层存储及生命周期管理能力开发,在社区业务场景下提供更具性价比优势的存储方案;
云原生:
- 云原生相关优化:k8s CSI 优化、Curve Operator 完善等,使得 Curve 在云原生环境更方便部署、运维;
社区:
- 有 Curve 生态开发者培养的开发者活动 ...
- 有存储领域 Committer 培养计划 ...
- 有覆盖若干城市用户、开发者的城市站计划 ...
参考 [1]:
https://github.com/opencurve/curve/blob/master/CHANGELOG-2.0.md
参考 [2]:
https://github.com/opencurve/curve/blob/master/CHANGELOG-2.1.md
参考 [3]:
https://github.com/opencurve/curve/blob/master/CHANGELOG-2.2.md
参考 [4]:
https://github.com/opencurve/curve/blob/master/CHANGELOG-2.3.md
参考 [5]:
https://github.com/opencurve/curve/blob/master/CHANGELOG-2.4.md
参考 [6]:
https://github.com/opencurve/curve/blob/master/CHANGELOG-2.5.md
------ END. ------