CubeFS 发展历史:从京东 ChubaoFS 到 CNCF 毕业项目的演进之路
CubeFS 发展历史:从京东 ChubaoFS 到 CNCF 毕业项目的演进之路
导读
CubeFS 是由云原生计算基金会(CNCF)托管的云原生分布式存储项目,兼容 POSIX、S3、HDFS 等多种访问协议,支持多副本与纠删码两种存储引擎。本文以官方文档 docs-zh/source/faq/development.md 中的项目发展时间线为骨架,结合仓库源码、架构文档与用户案例,完整梳理 CubeFS 从 2019 年京东捐赠开源,到 2024 年 12 月成功晋级为 CNCF 毕业项目的六年演进历程。读完本文,你将全面掌握 CubeFS 的起源、更名原因、社区治理层级以及各阶段的核心里程碑,并了解当前仓库中与这段历史一一对应的模块实现与生态证据。
一、项目发展大事记(官方时间线)
CubeFS 的官方中文文档在 docs-zh/source/faq/development.md 中以「CubeFS 历史」为题,给出了五条关键里程碑。以下按时间先后顺序完整呈现:
- 2024年12月:CubeFS 成功晋级为 CNCF 毕业项目(Graduated Project),标志着项目在治理成熟度、社区活跃度与生产稳定性上达到 CNCF 的最高标准。
- 2022年7月:CubeFS 成功晋级为 CNCF 孵化项目(Incubating Project)。
- 2022年3月:向 CNCF 发起孵化申请。在此期间发现「ChubaoFS」这一名称英文发音不够顺口,因此正式更名为 CubeFS。
- 2020年8月:OPPO 加入该开源项目,成为核心贡献者及主要推动者。
- 2019年6月:京东将 ChubaoFS 捐赠至云原生计算基金会(CNCF),并于 2019年12月 进入 CNCF 沙箱项目(Sandbox Project)。
英文版对应文档 docs/source/faq/development.md 记录的是同一段历史(英文原文中「2024年12月毕业」与中文版一致),两份文档互为印证,确保时间线在双语文档体系中保持一致。
时间线速览表
| 时间 | 事件 | CNCF 阶段 |
|---|---|---|
| 2019年6月 | 京东将 ChubaoFS 捐赠给 CNCF | 开源捐赠 |
| 2019年12月 | 进入 CNCF 沙箱项目 | Sandbox |
| 2020年8月 | OPPO 加入成为核心贡献者与主要推动者 | Sandbox |
| 2022年3月 | 提交孵化申请,更名 ChubaoFS → CubeFS | Sandbox → Incubating 申请 |
| 2022年7月 | 晋级 CNCF 孵化项目 | Incubating |
| 2024年12月 | 晋级 CNCF 毕业项目 | Graduated |
二、为什么叫 CubeFS:名称与定位的由来
时间线上一个容易引起好奇的点是 2022 年 3 月的更名。官方文档明确记录:更名的直接原因是 ChubaoFS 英文不好发音,因此更名为 CubeFS。
从技术定位看,这个新名称也与其「云原生」属性高度契合:项目 README.md 将其描述为 "cloud-native distributed file & object storage system",并强调其典型能力包括:
- 多访问协议:POSIX、HDFS、S3 以及自有的 REST API;
- 强一致的、高可扩展的元数据服务;
- 大文件/小文件、顺序写/随机写的多维度性能优化;
- 多租户支持,提升资源利用率并实现租户隔离;
- 通过多级缓存实现混合云 I/O 加速;
- 灵活的存储策略:高性能多副本或低成本纠删码。
中文简介文档 docs-zh/source/overview/introduction.md 进一步将其概括为「新一代云原生存储产品」,并明确标注其当前状态为 CNCF 托管的毕业开源项目——这与 docs-zh/source/faq/development.md 中「2024年12月毕业」的记录相互印证。
三、从 ChubaoFS 到 CubeFS:仓库中的历史痕迹
虽然项目已于 2022 年正式更名,但仓库中仍保留了多处与「ChubaoFS」相关的历史痕迹,可作为这段更名史的一手证据:
- CNCF 治理侧:仓库根目录的 GOVERNANCE.md 中保留着项目在 CNCF 体系下的治理文档,而 README 徽章区仍引用着
chubao-fs的 CLOMonitor 项目标识(CLOMonitor 是 CNCF 对托管项目的健康度监控工具),这正是更名前注册的产物。 - 学术引用:README.md 的 Reference 一节引用了 2019 年发表于 SIGMOD 的论文 "CFS: A Distributed File System for Large Scale Container Platforms"(Haifeng Liu 等人,SIGMOD '19)。该论文描述的正是 ChubaoFS/CFS 在京东大规模容器平台中的设计实践,是项目诞生之初技术渊源的重要文献记录。
- 代码仓库结构:仓库根目录(
/data/web/disk1/git_repo/gh_mirrors/cu/cubefs)下的核心目录与论文中描述的架构一脉相承,详见下一节。
四、毕业项目背后的架构演进:仓库模块与历史里程碑的对应
CubeFS 之所以能在六年内走完 Sandbox → Incubating → Graduated 的全流程,与其模块化、可水平扩展的分布式架构设计密不可分。当前仓库的顶层目录结构正是这套架构的直接体现:
| 仓库目录 | 模块职责 | 对应历史阶段的意义 |
|---|---|---|
| master | 元数据集群管理:集群管理、数据节点/元数据节点管理、数据分片(DP)与元数据分片(MP)调度、配额管理、生命周期管理等 | 京东捐赠时的核心控制面,至今持续演进(cluster.go、data_partition.go) |
| metanode | 元数据节点:以内存 B-Tree(inodeBTree 与 dentryBTree)管理元数据索引,支撑强一致的元数据访问 | 多副本引擎的元数据侧实现(partition.go、inode.go) |
| datanode | 数据节点:数据分片的落盘、复制协议(主备复制与 Multi-Raft)、数据修复(partition.go、data_partition_repair.go) | 多副本存储引擎的数据侧实现 |
| objectnode | 对象存储节点:兼容 S3 协议,包含认证(V2/V4 签名)、策略(ACL/Policy)、生命周期管理等(auth_signature_v4.go、policy.go) | 协议多样化的演进成果 |
| blobstore | 纠删码存储引擎:包含 blobnode、clustermgr、access 等子系统(blobstore.go) | 低成本、EB 级规模能力的来源,对应简介中「纠删码引擎具备高可靠、高可用、低成本、支持超大规模(EB)」的描述 |
| lcnode | 生命周期管理节点:冷热数据迁移、快照扫描(lc_scanner.go、lc_transition.go) | 数据保护与分层存储能力的体现 |
| client 与 sdk | 客户端:FUSE 挂载、多协议 SDK(fuse.go、sdk) | 多协议访问与「存算分离」落地的基础 |
| cli 与 tool | 命令行工具与运维工具 | 社区易用性治理的体现 |
这一目录结构与 docs-zh/source/design 下的系列设计文档(master.md、metanode.md、datanode.md、objectnode.md、blobstore.md 等)一一对应,说明项目在持续演进过程中始终维持着「文档-架构-代码」三者的一致治理,这正是 CNCF 毕业项目评估所看重的工程纪律。
五、社区与生态:从捐赠到毕业的支撑力量
项目的发展历程同样体现在社区与生态建设上,这些资料在仓库中有明确记录:
- 用户案例:ADOPTERS.md 列出了在生产环境或测试阶段使用 CubeFS 的组织列表,并附有各组织的 Success Stories。其中明确记载:京东自 2018 年起在生产环境使用,支撑超过 3000 个业务并管理超过 50 PB 数据,生产集群规模超过 5000 台服务器,场景覆盖广告、点击流、搜索与 AI 训练平台;OPPO 将 CubeFS 作为其基于 Kubernetes 的 AI 平台后端存储,用于解耦计算与存储资源。这两条记录恰好与时间线上「京东捐赠」「OPPO 加入」两个关键节点互为印证。
- 治理文档:GOVERNANCE.md(及中文版 GOVERNANCE_CN.md)定义了维护者(Maintainer)、提交者(Committer)、TSC 成员(Technical Steering Committee Member)的角色与晋升路径;MAINTAINERS.md 列出主要维护者及其职责。这套清晰的治理体系是项目从沙箱走向毕业的必要条件。
- 贡献规范:CONTRIBUTING.md 定义了报告问题与提交补丁的流程,而 docs-zh/source/community/overview.md 则给出了更具体的参与方式:遵循 Go 编码规范、提交前使用
go fmt或gofumpt格式化、新源文件以许可证头开头、保证单元测试与注释充分、遵循 Angular 提交规范并签署 Signed-off-by 等。这些社区准则保证了在 OPPO、京东等多家企业共同贡献下代码库仍能保持高质量。 - 持续迭代的证据:CHANGELOG.md 记录了从 v3.5.x 等版本以来的功能演进,例如大文件异步刷盘与预读优化、分布式缓存独立服务化(flashnode/flashgroupmanager)、生命周期按文件大小过滤、DP/MP 只读原因展示等,印证了毕业之后项目仍在高速迭代。
六、如何进一步了解与参与
如果你希望沿着这段历史深入理解 CubeFS 的技术实现,可以按以下路径在仓库中继续探索:
- 架构总览:阅读 docs-zh/source/overview/introduction.md 了解多协议、双引擎、多租户等核心特性,再对照 docs-zh/source/overview/architecture.md 理解整体拓扑。
- 模块设计:进入 docs-zh/source/design 目录,按需精读 master、metanode、datanode、objectnode、blobstore、client 等设计文档,并回到对应源码目录(如 master、metanode、datanode)核对实现细节。
- 快速上手:参考 docs-zh/source/quickstart 下的 single-deploy.md(单机部署)与 cluster-deploy.md(集群部署),用实际部署验证各模块的协作关系。
- 参与社区:按照 docs-zh/source/community/overview.md 的指南报告问题、提交补丁,或参考 ADOPTERS.md 了解已有生产用户的使用场景。
结语
从 2019 年京东捐赠 ChubaoFS 进入 CNCF 沙箱,到 2022 年更名 CubeFS 并晋级孵化项目,再到 2024 年 12 月正式毕业,CubeFS 用六年时间完成了从企业内部存储系统到 CNCF 顶级开源项目的蜕变。这段历史不仅是时间线上的几个节点,更对应着仓库中模块化架构的持续演进、社区治理体系的逐步完善,以及京东、OPPO 等多家企业在生产环境中的规模化验证。理解这段发展史,有助于你把握 CubeFS 当前架构设计背后的动因,也为评估其在生产环境中的适用性提供了背景依据。