- Published on
CubeFS - Giới thiệu thống lưu trữ được phát triển bởi JD.com và OPPO
- Authors
- Name
- Bạch Đăng Tuấn
- Occupation
- Kỹ sư công nghệ thông tin
- Zalo: 0934.01.07.04
CubeFS - Hệ thống lưu trữ phân tán
CubeFS là hệ thống lưu trữ phân tán mã nguồn mở, hiệu suất cao được phát triển bởi JD.com và OPPO. Ban đầu được sử dụng nội bộ để đáp ứng yêu cầu lưu trữ khổng lồ và hiệu năng cao của hệ sinh thái lớn, CubeFS đã được mở mã nguồn để phục vụ cộng đồng cloud-native.
Lịch sử hình thành:
- Vào tháng 12 năm 2022, CubeFS đã được thăng chức thành dự án tốt nghiệp CNCF.
- Vào tháng 7 năm 2022, CubeFS đã được thăng cấp thành incubation project CNCF.
- Vào tháng 3 năm 2022, một đơn incubation project đã được nộp lên CNCF. Người ta phát hiện ra rằng ChubaoFS khó phát âm trong tiếng Anh, vì vậy nó đã được đổi tên thành CubeFS.
- Vào tháng 8 năm 2020, OPPO đã tham gia dự án nguồn mở và trở thành cộng tác viên cốt lõi và nhà phát triển chính.
- Vào tháng 6 năm 2019, JD.com đã tặng ChubaoFS cho Cloud Native Computing Foundation (CNCF) và tham gia dự án thử nghiệm CNCF vào tháng 12 năm 2019.
Lịch sử hình thành xem tại đây: https://cubefs.io/docs/master/faq/development.html#cubefs-history CubeFS chính thức được mở mã nguồn trên GitHub tại: https://github.com/cubefs/cubefs
Mục tiêu thiết kế
CubeFS được thiết kế để phục vụ:
- Lưu trữ dữ liệu quy mô lớn (PB-scale)
- Đáp ứng IO hiệu năng cao (low latency / high throughput)
- Phục vụ nhiều loại khối lượng công việc (AI/ML, streaming, container workloads)
- Tích hợp chặt chẽ với Kubernetes và các hệ thống cloud-native
Các tính năng nổi bật
Tính năng | Mô tả |
---|---|
Object Storage + File System | Hỗ trợ song song cả API tương thích S3 (object) và POSIX (file system) |
Data Replication & Erasure Coding | Hỗ trợ cả sao chép truyền thống (replication) và mã hoá xoá lỗi (erasure coding) để tối ưu chi phí |
Multi-Tenant | Quản lý namespace tách biệt – hỗ trợ mô hình nhiều người dùng (multi-tenant) |
High Performance | Đáp ứng được workload AI, CDN, live video streaming, backup/restore |
Kubernetes Native | Cung cấp CSI driver, tương thích với nhiều nền tảng như Rancher, OpenKruise, KubeEdge... |
QoS Control | Giới hạn IOPS, throughput cho từng volume, tenant |
Security | Hỗ trợ xác thực, phân quyền người dùng, TLS encryption |
Observability | Tích hợp Prometheus metrics, log, audit log, tracing |
Geo-Distributed | Hỗ trợ lưu trữ phân tán giữa nhiều vùng (multi-region/multi-zone) |
Hot/Cold Tiering | Tự động phân tầng dữ liệu (hot vs cold) để tối ưu hiệu suất và chi phí |
Kiến trúc tổng quan
CubeFS gồm ba thành phần chính:
Master Node
- Quản lý metadata, volume, namespace
- Chịu trách nhiệm phân phối và điều phối phân vùng dữ liệu
Meta Node
- Lưu trữ metadata của file system (inode, dentry, chunk info)
- Hỗ trợ replication & consistency
Data Node
- Lưu trữ dữ liệu thực tế dưới dạng chunk
- Hỗ trợ cả replication và erasure coding để đảm bảo dữ liệu an toàn
CubeFS có thể mở rộng ngang bằng cách thêm MetaNode hoặc DataNode mà không cần downtime.
Triển khai & Tích hợp
CubeFS hỗ trợ triển khai linh hoạt:
Kubernetes (Helm + CSI)
Cung cấp CSI driver chính thức để tích hợp làm persistent volume.Standalone hoặc Baremetal
Dễ dàng triển khai bằng binary hoặc Docker Compose.Tích hợp với hệ thống lưu trữ hiện tại như Ceph, MinIO, HDFS...
Use Case thực tế
Use Case | Mô tả |
---|---|
🎬 Streaming video (TikTok) | Lưu trữ và phân phối hàng tỷ video ngắn theo thời gian thực |
🧠 AI/ML Training Data | Cung cấp IO hiệu năng cao cho dữ liệu huấn luyện mô hình |
📦 Container Volume Storage | Làm backend lưu trữ cho volume Kubernetes |
🧩 Big Data / Spark / Hadoop | Là HDFS alternative với throughput cao hơn |
Tài nguyên
- 🌐 GitHub: https://github.com/cubefs/cubefs
- 📖 Docs: https://cubefs.io
- 🧰 Helm Chart: https://artifacthub.io/packages/helm/cubefs/cubefs
- 🧪 CSI Plugin: https://github.com/cubefs/cubefs-csi
Kết luận
CubeFS là lựa chọn đáng cân nhắc cho hệ thống lưu trữ phân tán trong môi trường Kubernetes hiện đại, đặc biệt nếu bạn cần hiệu năng cao, tính mở rộng linh hoạt và hỗ trợ song song cả S3 + POSIX.
Bạn đang cân nhắc dùng CubeFS cho workload cụ thể nào? Mình có thể giúp bạn thiết kế kiến trúc triển khai phù hợp.