分布式文件系统-ChubaoFS


ChubaoFS(储宝文件系统)是为大规模容器平台设计的分布式文件系统。它由元数据子系统、数据子系统和资源管理器组成。其同时提供对象和文件存储,具有很强的复制一致性,并且特别适合快速处理小文件,这是支持云原生工作负载的另一个有利特性。采用Go语言开发并在Apache V2.0协议下授权使用。后更名为CubeFS。

ChubaoFS is a cloud-native storage platform that provides both POSIX-compliant and S3-compatible interfaces. It is hosted by the Cloud Native Computing Foundation (CNCF) as a sandbox project.
CubeFS 于 2019 年开源并在 SIGMOD 发表工业界论文,目前是云原生计算基金会 (CNCF) 托管的孵化阶段开源项目。作为新一代云原生分布式存储平台,兼容 S3、POSIX、HDFS 等协议,支持多副本和纠删码引擎,提供多租户,多 AZ 部署、跨区域复制等特性;适用于大数据、AI、容器平台、数据库及中间件存算分离,数据共享、数据保护等广泛场景。
整体架构

关键特性:
可扩展元数据管理
强一致性的复制协议
针对大/小文件和顺序/随机写入的特定性能优化
多租户与POSIX 兼容
兼容 S3 的对象存储接口
详细的文档参考请访问其文档主页。
2023 年度总结
CubeFS 在2023年中推出了许多新特性,特别是在可靠性和稳定性方面进行了大量修复和优化。与此同时,过去的一年也被称为大模型元年,CubeFS 为大模型推出了高性能客户端缓存,以支撑 AI 训练及混合云场景。值此新春佳节来临之际,对过去一年进行总结盘点,并展望未来一年的规划目标。
PART.1 产品迭代
在过去的一年中,CubeFS 社区共发布了三个版本,每个版本都有很多令人期待的变化。其中,3.2.1 版本和 3.3.0 版本的优化较大,修复了许多稳定性问题,并引入了一些重要的新特性,如原子性、配额、对象存储增强和纠删码架构简化。3.3.1 版本也推出了许多优化和实用的特性,比如回收站、服务端审计和垃圾清理工具。此外,这个版本还通过了 CNCF 的安全审计,在系统安全方面取得了重要进展。让我们来总结一下这些相关特性:
系统特性
posix 接口原子性:统一解决分布式场景下数据、元数据多步多节点操作一致性问题,减少文件操作异常,提高可用性、可靠性。
回收站:解决经常出现的用户大规模误删除问题。
目录联合配额:解决如存储混用卷的目录统计进而解决容量限制、计费。
客户端缓存加速:AI 端侧公有云场景使用。
审计:客户端和服务端审计功能,追踪文件操作。
系统冻结(禁用卷):秒级响应业务,解决用户误操作、恶意操作。
纠删码子系统
AzureLRC:支持 AzureLRC,AzureLRC+1 支持多机房坏 g+1 块盘的特性。
Proxy 缓存:Proxy 缓存卷和磁盘信息(去除 memcache),Proxy 卷分配优化。
Scheduler 支持 Kafka 消费组,支持可配置地并发批量删除 Blob。
Blobnode Qos 磁盘限速优化,支持单盘读写线程限制。
优化数据巡检流程,支持动态调整速率、动态开关控制。
审计日志 Filter:审计日志新增功能更强的 Filter 过滤器。
对象子系统
兼容性增强:修复 S3 接口历史兼容性问题,提高 objnode 稳定性。
CORS 功能:支持浏览器跨域功能。
权限管控:Bucket Policy、Bucket/Object ACL 权限管控特性。
WORM 特性:对象删除保护功能。
重构签名算法:兼容 S3 V2 / V4 签名算法。
PART.2 社区发展
去年一年在主干的 commit 超过 1200+,同比增长 200%;issue 数量达到 400 左右,同比增长 100%;社区用户增长 50%,推出社区技术类文章 40 篇,组织月度例会 6 次,star 达到 4.2 K。
同时加强生态合作,与 fluid、osc 开源社区、soda 基金会等进行了不同形式的合作探索,同时这几年也在加强同社区的主力 committer 合作,京东、OPPO、BIGO、贝壳等都为社区提供了非常重要的特性和修复。
PART.3 用户情况

PART.4 生态建设
Helm 编排部署
CubeFS 支持在 AWS 的 EKS、Azure 的 AKS、GCP 的 GKE 以及阿里云的 ACK 上使用 Helm 的方式编排部署,包括以下组件:
Master、MetaNode、DataNode、ObjectNode、csi
Operator 部署
为了更好地管理 CubeFS,提高效率、降低错误率,实现更高层次的自动化和自动化故障恢复,提供 CubeFS 的 Operator,主要功能包括:
集群的初始化部署、集群配置变更、集群版本升级、集群扩容
同时,Operator 也支持 AWS 的 EKS、Azure 的 AKS、GCP 的 GKE 以及阿里云的 ACK。
PART.5 官网优化

PART.6 后续规划
架构重构
存储引擎重构,提供 append only 文件系统,数据读写具有更低延时、更高吞吐。
混合云:混合云项目支持统一命名空间,提供混合使用多存储系统的能力,提供外部 S3、HDFS 能力。支持生命周期驱动数据在不同介质、存储类型、云上云下之间流动,降本增效。一期即将发版 。
稳定性、可靠性提升
磁盘 CRC 增强,提高主从同步、随机写等 CRC 校验能力。
磁盘自动化迁移,减少迁移过程元数据信息的原子性问题,提高运营自动化水平。
系统模块运营监控、告警加强,增强可观测性。
数据节点增加 learner 能力,支持同城多活部署。
性能提升
全链路加速,更好支撑数据库存算分离、AI 训练加速等场景。
客户端:提供内核客户端,并支持 GDS (GPU Direct Storage)、RDMA 技术,降低 IO 时延及 CPU 开销。
服务端:基于 RDMA 重建通信机制,从而整体上降低读写服务的延迟,提高吞吐能力。
分布式缓存:进一步优化分布式多级缓存架构,支持跨机房、跨云的读写加速能力,支撑 AI 训练加速需求。
优化现有系统基于 TCP 链路的读写能力。
优化客户端本地缓存 (一级缓存) 性能。
特性
基于 RocksDB 实现元数据存储,元数据全量缓存优化为按需缓存,降低内存开销。
纠删码子系统移除 Kafka 组件依赖,提供 SDK 供直接客户端直接接入,缩短数据传输路径。
提供事件通知特性、S3api QoS、objnode 审计日志功能、跨区域复制、QPS 及带宽计量计费能力。
最新版本:3.5
v3.5.0现已于2025年3月中旬发布,具体更新内容如下:
Feature:
单卷多介质管理:单卷内支持同时管理多种存储介质
冷热分层:支持通过 lcnode 自动降冷数据
客户端查询:支持通过接口查询整个集群客户端的 ip 和版本信息
DirectIO 读:卷支持 DirectIO 模式读取磁盘
Enhance:
bcache 支持仅缓存降冷到 HDD 数据的能力
支持工具统计目录下访问时间(atime)间隔的数据用量分布信息
使用目录锁避免回收站多节点并发删除
针对存算分离场景优化数据读流程性能
元数据支持无 leader 时采用 quorum 模式读取,提升可用性
Bugfix:
修复 raft 元数据和 wal 之间的冲突问题
修复回收站场景下客户端删除可能异常问题
修复元数据 snapshot 未及时 fsync 不一致问题
修复其他一些历史相关缺陷和问题
项目主页:https://gitee.com/mirrors/chubaofs

ChubaoFS is a cloud-native storage platform that provides both POSIX-compliant and S3-compatible interfaces. It is hosted by the Cloud Native Computing Foundation (CNCF) as a sandbox project.
CubeFS 于 2019 年开源并在 SIGMOD 发表工业界论文,目前是云原生计算基金会 (CNCF) 托管的孵化阶段开源项目。作为新一代云原生分布式存储平台,兼容 S3、POSIX、HDFS 等协议,支持多副本和纠删码引擎,提供多租户,多 AZ 部署、跨区域复制等特性;适用于大数据、AI、容器平台、数据库及中间件存算分离,数据共享、数据保护等广泛场景。
整体架构

关键特性:
可扩展元数据管理
强一致性的复制协议
针对大/小文件和顺序/随机写入的特定性能优化
多租户与POSIX 兼容
兼容 S3 的对象存储接口
详细的文档参考请访问其文档主页。
2023 年度总结
CubeFS 在2023年中推出了许多新特性,特别是在可靠性和稳定性方面进行了大量修复和优化。与此同时,过去的一年也被称为大模型元年,CubeFS 为大模型推出了高性能客户端缓存,以支撑 AI 训练及混合云场景。值此新春佳节来临之际,对过去一年进行总结盘点,并展望未来一年的规划目标。
PART.1 产品迭代
在过去的一年中,CubeFS 社区共发布了三个版本,每个版本都有很多令人期待的变化。其中,3.2.1 版本和 3.3.0 版本的优化较大,修复了许多稳定性问题,并引入了一些重要的新特性,如原子性、配额、对象存储增强和纠删码架构简化。3.3.1 版本也推出了许多优化和实用的特性,比如回收站、服务端审计和垃圾清理工具。此外,这个版本还通过了 CNCF 的安全审计,在系统安全方面取得了重要进展。让我们来总结一下这些相关特性:
系统特性
posix 接口原子性:统一解决分布式场景下数据、元数据多步多节点操作一致性问题,减少文件操作异常,提高可用性、可靠性。
回收站:解决经常出现的用户大规模误删除问题。
目录联合配额:解决如存储混用卷的目录统计进而解决容量限制、计费。
客户端缓存加速:AI 端侧公有云场景使用。
审计:客户端和服务端审计功能,追踪文件操作。
系统冻结(禁用卷):秒级响应业务,解决用户误操作、恶意操作。
纠删码子系统
AzureLRC:支持 AzureLRC,AzureLRC+1 支持多机房坏 g+1 块盘的特性。
Proxy 缓存:Proxy 缓存卷和磁盘信息(去除 memcache),Proxy 卷分配优化。
Scheduler 支持 Kafka 消费组,支持可配置地并发批量删除 Blob。
Blobnode Qos 磁盘限速优化,支持单盘读写线程限制。
优化数据巡检流程,支持动态调整速率、动态开关控制。
审计日志 Filter:审计日志新增功能更强的 Filter 过滤器。
对象子系统
兼容性增强:修复 S3 接口历史兼容性问题,提高 objnode 稳定性。
CORS 功能:支持浏览器跨域功能。
权限管控:Bucket Policy、Bucket/Object ACL 权限管控特性。
WORM 特性:对象删除保护功能。
重构签名算法:兼容 S3 V2 / V4 签名算法。
PART.2 社区发展
去年一年在主干的 commit 超过 1200+,同比增长 200%;issue 数量达到 400 左右,同比增长 100%;社区用户增长 50%,推出社区技术类文章 40 篇,组织月度例会 6 次,star 达到 4.2 K。
同时加强生态合作,与 fluid、osc 开源社区、soda 基金会等进行了不同形式的合作探索,同时这几年也在加强同社区的主力 committer 合作,京东、OPPO、BIGO、贝壳等都为社区提供了非常重要的特性和修复。
PART.3 用户情况

PART.4 生态建设
Helm 编排部署
CubeFS 支持在 AWS 的 EKS、Azure 的 AKS、GCP 的 GKE 以及阿里云的 ACK 上使用 Helm 的方式编排部署,包括以下组件:
Master、MetaNode、DataNode、ObjectNode、csi
Operator 部署
为了更好地管理 CubeFS,提高效率、降低错误率,实现更高层次的自动化和自动化故障恢复,提供 CubeFS 的 Operator,主要功能包括:
集群的初始化部署、集群配置变更、集群版本升级、集群扩容
同时,Operator 也支持 AWS 的 EKS、Azure 的 AKS、GCP 的 GKE 以及阿里云的 ACK。
PART.5 官网优化

PART.6 后续规划
架构重构
存储引擎重构,提供 append only 文件系统,数据读写具有更低延时、更高吞吐。
混合云:混合云项目支持统一命名空间,提供混合使用多存储系统的能力,提供外部 S3、HDFS 能力。支持生命周期驱动数据在不同介质、存储类型、云上云下之间流动,降本增效。一期即将发版 。
稳定性、可靠性提升
磁盘 CRC 增强,提高主从同步、随机写等 CRC 校验能力。
磁盘自动化迁移,减少迁移过程元数据信息的原子性问题,提高运营自动化水平。
系统模块运营监控、告警加强,增强可观测性。
数据节点增加 learner 能力,支持同城多活部署。
性能提升
全链路加速,更好支撑数据库存算分离、AI 训练加速等场景。
客户端:提供内核客户端,并支持 GDS (GPU Direct Storage)、RDMA 技术,降低 IO 时延及 CPU 开销。
服务端:基于 RDMA 重建通信机制,从而整体上降低读写服务的延迟,提高吞吐能力。
分布式缓存:进一步优化分布式多级缓存架构,支持跨机房、跨云的读写加速能力,支撑 AI 训练加速需求。
优化现有系统基于 TCP 链路的读写能力。
优化客户端本地缓存 (一级缓存) 性能。
特性
基于 RocksDB 实现元数据存储,元数据全量缓存优化为按需缓存,降低内存开销。
纠删码子系统移除 Kafka 组件依赖,提供 SDK 供直接客户端直接接入,缩短数据传输路径。
提供事件通知特性、S3api QoS、objnode 审计日志功能、跨区域复制、QPS 及带宽计量计费能力。
最新版本:3.5
v3.5.0现已于2025年3月中旬发布,具体更新内容如下:
Feature:
单卷多介质管理:单卷内支持同时管理多种存储介质
冷热分层:支持通过 lcnode 自动降冷数据
客户端查询:支持通过接口查询整个集群客户端的 ip 和版本信息
DirectIO 读:卷支持 DirectIO 模式读取磁盘
Enhance:
bcache 支持仅缓存降冷到 HDD 数据的能力
支持工具统计目录下访问时间(atime)间隔的数据用量分布信息
使用目录锁避免回收站多节点并发删除
针对存算分离场景优化数据读流程性能
元数据支持无 leader 时采用 quorum 模式读取,提升可用性
Bugfix:
修复 raft 元数据和 wal 之间的冲突问题
修复回收站场景下客户端删除可能异常问题
修复元数据 snapshot 未及时 fsync 不一致问题
修复其他一些历史相关缺陷和问题
项目主页:https://gitee.com/mirrors/chubaofs