CubeFS
CubeFS is a cloud-native distributed storage system that provides both file and object storage interfaces from a single cluster. It is designed for containerized workloads requiring scalable, high-performance shared storage with strong consistency.
itCloud native tools and technologies | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Don't Panic
Don't Panic — CubeFS
CubeFS is a distributed storage system for unstructured data. That is a fairly calm description for a machine that may be asked to behave like a mounted file system, an HDFS target, and an S3-compatible object service at the same time. The useful part is not that it can wear several hats. It is that those hats point at one logical volume.
The volume is the map, not the territory. A file client sees a file system. ObjectNode sees a bucket. Neither view means there is one heroic disk under the floorboards. CubeFS splits metadata from file data, then splits both across the cluster. MetaNodes keep the file-system records: inodes and directory entries. DataNodes store replicated file data. BlobStore stores erasure-coded data as shards on BlobNodes. Masters coordinate the topology without carrying every file byte, which is a good way to prevent the control plane from becoming a very expensive filing cabinet.
The first surprise is that compatible interfaces do not abolish semantics. ObjectNode, the S3-compatible gateway, maps a bucket to a volume and an object key to a path. An object named a/b can therefore occupy the place that another key, a/b/c, needs to be a directory. Several clients may read a file, but concurrent writers to that same file are not a safe default either. The storage system is not being difficult for sport; the path and cache boundaries are real.
Then comes the redundancy decision. Replication keeps complete copies and makes recovery direct, at the cost of full-copy capacity. Erasure coding uses data and parity shards and can reduce that capacity cost, but adds encoding, reconstruction, repair work, and a larger component set. The winning choice depends on file sizes, latency needs, failure recovery, and the operational skill available. A healthy empty cluster, sadly, has not yet been persuaded to demonstrate repair traffic under load.
CubeFS fits when several access paths must share scalable storage and the team can operate disks, nodes, networking, monitoring, upgrades, and recovery. It is a weak fit when one protocol or a managed service already meets the need with fewer moving parts.
Read the Course intro for the full architecture and fit decision. Use Slides to trace interfaces through volumes, partitions, and disks. Keep the Cheatsheet nearby when comparing the replica and BlobStore paths. The Reference tab then leads from the overview into official design, deployment, and operational material.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://www.cubefs.io/docs/master/overview/introduction.html
Supports
- CubeFS scope, access protocols, storage engines, and application scenarios
- Stated POSIX compatibility boundary and multi-protocol positioning
- Kubernetes CSI integration and caching feature overview
- https://www.cubefs.io/docs/master/overview/architecture.html
Supports
- Master, metadata, data, object, and volume architecture
- Replica and erasure-code subsystems coexisting or operating independently
- Volume presentation as a file-system instance or object bucket
- Raft, RocksDB, Multi-Raft, partition, and horizontal-scaling roles
- https://cubefs.io/docs/master/design/master.html
Supports
- Master responsibilities for node health, partitions, and volumes
- Raft replication and RocksDB persistence for Master metadata
- Resource-based placement of metadata and data partitions
- https://cubefs.io/docs/master/design/metanode.html
Supports
- Inode and dentry B-Tree structures in metadata partitions
- Inode-range partitioning, Multi-Raft replication, splitting, and recovery
- https://cubefs.io/docs/master/design/datanode.html
Supports
- DataNode, data partition, extent, replica, and storage-topology concepts
- Separate handling of large and small files
- Replica consistency and fault-recovery responsibilities
- https://cubefs.io/docs/master/design/blobstore.html
Supports
- BlobStore component roles and erasure-code architecture
- Volume, chunk, blob, and shard definitions
- Encoding, read, repair, degraded-read, and storage-engine tradeoffs
- https://www.cubefs.io/docs/master/design/objectnode.html
Supports
- Stateless ObjectNode architecture and S3-compatible access
- Bucket-to-volume and key-to-path semantic conversion
- Cross-protocol object-name conflict and atomic object-write design
- https://www.cubefs.io/docs/master/design/client.html
Supports
- FUSE client architecture and topology or metadata caching
- Concurrent reads and the restriction on concurrent same-file writes from different mounts
- Replica and erasure-coded client data paths
- https://cubefs.io/docs/master/user-guide/file.html
Supports
- FUSE dependencies, client configuration, mounting, and unmounting
- Cache consistency warning for changing datasets
- https://www.cubefs.io/docs/master/quickstart/single-deploy.html
Supports
- Roles of cfs-server, cfs-client, and cfs-cli
- Standalone mount and object-access orientation
- Single-copy nature of standalone data and metadata
- https://www.cubefs.io/docs/master/deploy/k8s.html
Supports
- Kubernetes deployment roles for Master, MetaNode, DataNode, and ObjectNode
- StatefulSet, DaemonSet, Deployment, host-network, and host-path design
- https://www.cubefs.io/docs/master/user-guide/cli/overview.html
Supports
- CLI management of cluster, nodes, partitions, volumes, users, quotas, and configuration
- https://github.com/cubefs/cubefs
Supports
- Upstream source, releases, issues, and contribution materials
- https://github.com/cubefs/cubefs/blob/master/CHANGELOG.md
Supports
- CubeFS release history and dated product milestones used in the Timeline artifact
- https://arxiv.org/abs/1911.03001
Supports
- 2019 publication of the CFS paper describing the distributed file system for large-scale container platforms
- https://ceph.io/en/
Supports
- Ceph project and product landscape entry
- https://hadoop.apache.org/
Supports
- Apache Hadoop project and product landscape entry
- https://www.alluxio.io/
Supports
- Alluxio project and product landscape entry
- https://juicefs.com/
Supports
- JuiceFS project and product landscape entry
- https://min.io/
Supports
- MinIO project and product landscape entry
- https://www.seaweedfs.com/
Supports
- SeaweedFS project and product landscape entry
