Blog chia sẻ về công nghệ ...
Published on

Quản lý số lượng MON/MDS/MGR trong CephFS - Best Practice Production

Authors

Quản lý số lượng MON/MDS/MGR trong CephFS - Best Practice Production

📑 Mục Lục

  1. Số lượng MON khuyến nghị
  2. Số lượng MGR khuyến nghị
  3. Số lượng MDS khuyến nghị

Số lượng MON khuyến nghị

MON (Monitor) là gì?

  • Theo dõi quorum (sự đồng thuận) của cluster
  • Quản lý cluster map, health, members
  • Không lưu dữ liệu thực, nhưng cực kỳ quan trọng cho HA
quan-ly-so-luong-mon-trong-ceph

Số lượng MON/MDS/MGR nên dùng

Môi trườngSố lượng MON khuyên dùngGhi chú
Lab / Test1 MONKhông có HA, dễ fail
Prod nhỏ3 MONĐủ quorum 2/3, đảm bảo HA
Prod lớn3–5 MONHiếm khi cần >3, trừ khi đa DC

💡 Số lượng MON nên là số lẻ (odd number) để đảm bảo quorum ổn định.

Cách hoạt động của quorum

  • Ceph yêu cầu quorum của MON để cluster hoạt động (tối thiểu 2/3 MON online)
  • Nếu mất quorum → Ceph ngừng phục vụ client tạm thời (read-only hoặc reject)

Bảng lệnh quản lý MON trong Ceph (với cephadm)

Mục đíchLệnh ví dụ
📥 Thêm MON mới vào clusterceph orch apply mon ceph-node01 ceph-node02 ceph-node03
🔍 Xem MON hiện tạiceph mon dump
📋 Xem MON đang chạyceph orch ps --daemon-type mon
🗂️ Xem định nghĩa dịch vụ MONceph orch ls --service_name=mon
🚫 Gỡ MON khỏi orchestratorceph orch daemon rm mon.ceph-node04 --force
❌ Gỡ MON khỏi cluster mapceph mon remove ceph-node04
✏️ Cập nhật placement MONceph orch apply mon --placement="ceph-node01,ceph-node02,ceph-node03"
⚠️ Kiểm tra quorumceph quorum_status --format json-pretty
💡 Gán label node MON (tùy chọn)ceph orch host label add ceph-node01 mon

📌 Ghi chú:

  • orch daemon rm chỉ gỡ container
  • mon remove mới thực sự loại khỏi quorum
  • Luôn giữ số MON là số lẻ (3, 5...) để tránh split-brain

Số lượng MGR khuyến nghị

MGR là gì?

Ceph Manager (MGR) là thành phần điều phối quản trị cao cấp, chịu trách nhiệm:

  • Giao diện Ceph Dashboard
  • Orchestrator (cephadm) để triển khai daemon
  • Tích hợp monitoring (Prometheus exporter)
  • Tự động cân bằng (balancer)
  • Theo dõi crash, cảnh báo và telemetry

Tính chất của MGR

  • Chỉ có 1 MGR Active tại một thời điểm
  • Các MGR Standby sẽ giữ trạng thái đồng bộ
  • Khi Active MGR chết → Ceph tự động promote Standby
  • Quản lý bởi Ceph Orchestrator (ceph orch)

Khuyến nghị số lượng MGR theo môi trường

Môi trườngMGR khuyến nghịGhi chú
Lab/Test1 (Active)Không cần HA
Production nhỏ1 Active + 1 StandbyTối thiểu nên có
Production chuẩn1 Active + 2 StandbyĐáp ứng HA & load
Cluster lớn1 Active + ≥3 StandbyĐảm bảo ổn định khi cluster lớn
Multisite / DR1 Active + 2–3 StandbyFailover vùng địa lý

Lệnh quản lý MGR (cephadm)

Mục đíchLệnh ví dụ
📥 Xem MGR hiện tạiceph mgr stat
🔍 Xem daemon MGR đang chạyceph orch ps --daemon-type mgr
📋 Thêm MGR vào nodeceph orch apply mgr ceph-node01 ceph-node02 ceph-node03
🗂️ Gỡ MGR bị lỗiceph orch daemon rm mgr.ceph-node04 --force
🚫 Kiểm tra failover MGRceph mgr fail
❌ Gán label cho MGRceph orch host label add ceph-node01 mgr
✏️ Cập nhật placement MGRceph orch apply mgr --placement="ceph-node01,ceph-node02,ceph-node03"
⚠️ Xem thông tin MGRceph mgr dump
💡 Xem thông tin MGR (json)ceph mgr dump -f json-pretty

Lưu ý

📌 Ghi chú:

  • Nên chạy MGR trên các node control-plane (không nên trên node OSD nếu có thể)
  • Gán nhãn để quản lý dễ hơn:
    ceph orch host label add ceph-node01 mgr
  • Dùng lệnh ceph orch apply mgr --placement="ceph-node01,ceph-node02,ceph-node03" để giữ đúng vị trí MGR
  • Nên có ít nhất 1–2 Standby MGR để đảm bảo HA
  • Nếu không có Standby, MGR sẽ tự động tạo mới khi cần
  • Nếu không có MGR, cluster vẫn hoạt động nhưng không có giao diện quản lý
  • MGR không ảnh hưởng đến dữ liệu, nhưng mất MGR có thể mất khả năng quản trị
  • Luôn chỉ có 1 MGR Active
  • Nếu có nhiều MGR Active → cluster sẽ bị lỗi

Khuyến nghị số lượng MDS (Metadata Server) trong CephFS

MGR là gì?

MDS (Metadata Server) là thành phần chịu trách nhiệm xử lý metadata trong hệ thống CephFS, bao gồm:

  • Cây thư mục, quyền truy cập (permissions), inode, symlink
  • Các thao tác như ls, mkdir, stat, unlink, rename
  • Điều phối client truy cập dữ liệu xuống các OSD phù hợp

📌 Lưu ý: MDS không lưu dữ liệu thực, mà chỉ xử lý metadata. Dữ liệu thực vẫn nằm trong các OSD.

Khuyến nghị số lượng MDS theo môi trường

Môi trườngSố lượng MDS khuyến nghịGhi chú
🧪 Lab / Test1 activeKhông cần HA, dễ triển khai
✅ Prod nhỏ1 active + 1 standbyĐảm bảo failover cơ bản
⚙️ Prod chuẩn2 active + 1 standbyBest Practice CephFS
🚀 Prod lớn (nhiều thư mục con / user)3–4 active + ≥1 standbyScale theo truy cập
HPC / Khối lượng rất lớn4+ active + 2 standbyCần RAM/cpu lớn cho mỗi MDS

🎯 CephFS hỗ trợ multi-active MDS: hệ thống sẽ tự chia nhỏ subtree (phân vùng cây thư mục) cho mỗi MDS xử lý riêng.

Cách hoạt động MDS Active / Standby

  • Ceph sẽ tự động gán MDS Active theo cấu hình max_mds
  • Các MDS còn lại chuyển thành standby
  • Khi 1 MDS active gặp sự cố → standby sẽ tự động takeover
  • Subtree được tự động load-balance giữa các active MDS

Cấu hình và quản lý MDS bằng cephadm

🔧 Mục tiêu🖥️ Lệnh
🏗️ Tạo CephFS (nếu chưa có)ceph fs volume create cephfs
🔍 Xem trạng thái MDSceph fs status
📦 Xem MDS đang chạy (container)ceph orch ps --daemon-type mds
⚙️ Đặt số lượng MDS active tối đaceph fs set cephfs max_mds 2
🚀 Deploy MDS trên các nodeceph orch apply mds cephfs ceph-node01 ceph-node02 ceph-node03
🗑️ Gỡ 1 MDS cụ thểceph orch daemon rm mds.ceph-node02 --force
🌳 Kiểm tra phân phối subtreeceph mds dump
📈 Kiểm tra hiệu suất MDSceph mds perf
📊 Kiểm tra hiệu suất MDS (json)ceph mds perf -f json-pretty

Gợi ý triển khai thực tế

📌 Ghi chú:

  • Mỗi MDS nên được cấp RAM ≥ 4GB, tốt hơn là 8–16GB tùy workload
  • Không nên để MDS trên cùng node với OSD nếu có đủ tài nguyên
  • Với khối lượng truy cập lớn, tăng max_mds và theo dõi hiệu suất
  • Nên luôn có ít nhất 1 standby MDS để đảm bảo HA
  • Nên sử dụng SSD cho MDS để tăng tốc độ truy cập metadata
  • Không nên dùng cùng node với OSD nếu có thể
  • MDS chính là "bộ não metadata" của CephFS, nếu bị quá tải hoặc thiếu standby → hệ thống có thể bị treo khi thao tác file/directory lớn.