- Published on
Quản lý số lượng MON/MDS/MGR trong CephFS - Best Practice Production
- Authors
- Name
- Bạch Đăng Tuấn
- Occupation
- Kỹ sư công nghệ thông tin
- Zalo: 0934.01.07.04
Quản lý số lượng MON/MDS/MGR trong CephFS - Best Practice Production
📑 Mục Lục
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

Số lượng MON/MDS/MGR nên dùng
Môi trường | Số lượng MON khuyên dùng | Ghi chú |
---|---|---|
Lab / Test | 1 MON | Không có HA, dễ fail |
Prod nhỏ | 3 MON | Đủ quorum 2/3, đảm bảo HA |
Prod lớn | 3–5 MON | Hiế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)
cephadm
)
Bảng lệnh quản lý MON trong Ceph (với Mục đích | Lệnh ví dụ |
---|---|
📥 Thêm MON mới vào cluster | ceph orch apply mon ceph-node01 ceph-node02 ceph-node03 |
🔍 Xem MON hiện tại | ceph mon dump |
📋 Xem MON đang chạy | ceph orch ps --daemon-type mon |
🗂️ Xem định nghĩa dịch vụ MON | ceph orch ls --service_name=mon |
🚫 Gỡ MON khỏi orchestrator | ceph orch daemon rm mon.ceph-node04 --force |
❌ Gỡ MON khỏi cluster map | ceph mon remove ceph-node04 |
✏️ Cập nhật placement MON | ceph orch apply mon --placement="ceph-node01,ceph-node02,ceph-node03" |
⚠️ Kiểm tra quorum | ceph 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ỡ containermon 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ường | MGR khuyến nghị | Ghi chú |
---|---|---|
Lab/Test | 1 (Active) | Không cần HA |
Production nhỏ | 1 Active + 1 Standby | Tối thiểu nên có |
Production chuẩn | 1 Active + 2 Standby | Đáp ứng HA & load |
Cluster lớn | 1 Active + ≥3 Standby | Đảm bảo ổn định khi cluster lớn |
Multisite / DR | 1 Active + 2–3 Standby | Failover vùng địa lý |
Lệnh quản lý MGR (cephadm)
Mục đích | Lệnh ví dụ |
---|---|
📥 Xem MGR hiện tại | ceph mgr stat |
🔍 Xem daemon MGR đang chạy | ceph orch ps --daemon-type mgr |
📋 Thêm MGR vào node | ceph orch apply mgr ceph-node01 ceph-node02 ceph-node03 |
🗂️ Gỡ MGR bị lỗi | ceph orch daemon rm mgr.ceph-node04 --force |
🚫 Kiểm tra failover MGR | ceph mgr fail |
❌ Gán label cho MGR | ceph orch host label add ceph-node01 mgr |
✏️ Cập nhật placement MGR | ceph orch apply mgr --placement="ceph-node01,ceph-node02,ceph-node03" |
⚠️ Xem thông tin MGR | ceph 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ường | Số lượng MDS khuyến nghị | Ghi chú |
---|---|---|
🧪 Lab / Test | 1 active | Không cần HA, dễ triển khai |
✅ Prod nhỏ | 1 active + 1 standby | Đảm bảo failover cơ bản |
⚙️ Prod chuẩn | 2 active + 1 standby | Best Practice CephFS |
🚀 Prod lớn (nhiều thư mục con / user) | 3–4 active + ≥1 standby | Scale theo truy cập |
HPC / Khối lượng rất lớn | 4+ active + 2 standby | Cầ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 MDS | ceph fs status |
📦 Xem MDS đang chạy (container) | ceph orch ps --daemon-type mds |
⚙️ Đặt số lượng MDS active tối đa | ceph fs set cephfs max_mds 2 |
🚀 Deploy MDS trên các node | ceph 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 subtree | ceph mds dump |
📈 Kiểm tra hiệu suất MDS | ceph 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.