Kiểu dữ liệu và Pool trong Ceph

Trong Ceph, poolkiểu dữ liệu (data type) đóng vai trò nền tảng để quyết định cách dữ liệu được lưu trữ, nhân bản và phân phối trong cluster. Hiểu đúng về RADOS, Pool, PGs, Replication, Erasure Coding (EC) sẽ giúp bạn xây dựng một hệ thống Ceph tối ưu, bền vững và hiệu quả về chi phí.

RADOS – Nền tảng lõi của Ceph

Ceph được xây dựng dựa trên RADOS (Reliable Autonomic Distributed Object Store) – một lớp lưu trữ phân tán có khả năng tự động mở rộng, tự phục hồi và không có single point of failure.

  • Dữ liệu trong Ceph không lưu dưới dạng file hay block trực tiếp, mà được chia nhỏ thành object.

  • Mỗi object có một ID duy nhất, chứa data + metadata.

  • Các object này được phân phối vào OSD dựa trên thuật toán CRUSH (Controlled Replication Under Scalable Hashing).

Nhờ RADOS, Ceph có thể lưu trữ nhiều loại dữ liệu (block, file, object) chỉ trên một hạ tầng thống nhất.

Pool trong Ceph

Pool là một tập hợp logic của các object placement groups (PGs), đại diện cho một không gian lưu trữ riêng biệt trong cluster.

  • Khi bạn tạo một pool, Ceph sẽ phân bổ PGs vào các OSD theo CRUSH map.

  • Các pool khác nhau có thể dùng cấu hình replication hoặc erasure coding khác nhau.

  • Thực tế, mỗi ứng dụng (VD: CephFS, RBD, RGW) thường sử dụng nhiều pool để tách biệt dữ liệu.

Ví dụ:

  • RBD có thể dùng pool rbd.

  • RGW có thể dùng pool default.rgw.data, default.rgw.index.

  • CephFS có pool cephfs_data, cephfs_metadata.

Placement Groups (PGs)

PG (Placement Group) là lớp trung gian giữa object và OSD.

  • Khi một object được tạo, Ceph sẽ băm (hash) object ID → gán vào 1 PG → từ PG ánh xạ tới 1 nhóm OSD.

  • Mỗi PG thường ánh xạ tới 3 OSD (nếu replication size = 3).

Tại sao cần PG?
Nếu ánh xạ object trực tiếp tới OSD thì hệ thống sẽ quá lớn để quản lý. PG giúp:

  • Phân tán dữ liệu đồng đều hơn.

  • Giảm tải khi thêm/xóa OSD (Ceph chỉ cần remap PGs thay vì toàn bộ object).

Số lượng PG cần được tính toán cẩn thận (quá ít → mất cân bằng, quá nhiều → tốn RAM/CPU). Công thức tham khảo:

Total PGs = (OSD_count * 100) / pool_replica_size

Replication trong Ceph

Replication là cơ chế lưu nhiều bản copy của dữ liệu để đảm bảo an toàn.

Ví dụ:

  • Nếu size = 3, mỗi object sẽ được lưu trên 3 OSD khác nhau.

  • Khi 1 OSD hỏng, dữ liệu vẫn tồn tại ở 2 OSD khác và Ceph sẽ tự động phục hồi (recovery).

Ưu điểm:

  • Đơn giản, tốc độ đọc/ghi nhanh.

  • Đảm bảo tính toàn vẹn dữ liệu.

Nhược điểm:

  • Tốn dung lượng lưu trữ (Replication 3x → 1TB dữ liệu thực chiếm 3TB).

Erasure Coding (EC) trong Ceph

Erasure Coding (EC) là phương pháp lưu trữ tiết kiệm dung lượng hơn so với replication.

  • Dữ liệu được chia thành k phần (data chunks).

  • Thêm m phần (coding chunks) → tổng cộng k+m chunks.

  • Ceph chỉ cần k chunks để khôi phục dữ liệu.

Ví dụ: EC(4,2):

  • 4 chunk dữ liệu, 2 chunk parity → lưu trên 6 OSD.

  • Nếu mất 2 OSD, dữ liệu vẫn khôi phục được.

  • Dung lượng overhead = 6/4 = 1.5x (tiết kiệm hơn replication 3x).

Ưu điểm:

  • Tiết kiệm dung lượng (hệ số overhead thấp).

  • Phù hợp cho dữ liệu dung lượng lớn, ít thay đổi (backup, archive).

Nhược điểm:

  • Hiệu năng ghi thấp hơn replication (cần tính toán parity).

  • Không phù hợp cho workload cần tốc độ cao (VD: database, VM disk).

So sánh Replication vs Erasure Coding

Tiêu chí Replication Erasure Coding
Dung lượng overhead Cao (3x) Thấp (1.5x – 2x)
Hiệu năng Nhanh Chậm hơn
Độ phức tạp Đơn giản Phức tạp hơn
Ứng dụng Database, VM Backup, archive, object store

Pool tiering – Hot & Cold Storage

Ceph hỗ trợ tiering để tối ưu chi phí:

  • Hot Pool: replication trên SSD/NVMe (cho workload cần tốc độ cao).

  • Cold Pool: erasure coding trên HDD (cho dữ liệu ít truy cập).

  • Có thể kết hợp chính sách tự động move dữ liệu từ hot → cold dựa trên thời gian.

✅ Như vậy, Pool + PG + Replication + EC chính là những thành phần cốt lõi giúp Ceph trở thành hệ thống lưu trữ mạnh mẽ, cân bằng giữa hiệu năng – chi phí – độ bền vững dữ liệu.

Tác giả: Mạnh Hoàng

Tôi là Hoàng Mạnh, người sáng lập blog SysadminSkills.com. Tôi viết về quản trị hệ thống, bảo mật máy chủ, DevOps và cách ứng dụng AI để tự động hóa công việc IT. Blog này là nơi tôi chia sẻ những gì đã học được từ thực tế – đơn giản, ngắn gọn và áp dụng được ngay.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *