Tổng quan
Quy trình “remove (bỏ khỏi monmap/quorum) rồi join/add lại MON” khi MON bị lỗi / bị kẹt / host down lâu ngày — chỉ là với cephadm/ceph orch thì có vài điểm đặc thù.
OVERVIEW
Tài liệu này mô tả quy trình gỡ và thêm lại Monitor (mon) trong cụm Ceph quản trị bằng cephadm + ceph orch khi một host/daemon mon bị down lâu, kẹt quorum, hoặc host ở trạng thái maintenance.
Dành cho ai
- Admin vận hành Ceph dùng
cephadm/ceph orch. - Trường hợp cluster đang chạy, cần đưa
monbị lỗi quay lại quorum một cách “đúng bài”.
Dùng khi nào
ceph -sbáomons down,out of quorum, hoặcmon.<HOST>stopped.- Host từng maintenance mode hoặc offline lâu ngày.
- Cần “reset sạch”
montrên host đó rồi deploy lại bằng orchestrator.
Cách đọc nhanh
- Xác nhận hiện trạng:
ceph -s,ceph orch ps --daemon_type mon,ceph orch ls --service_type mon. - Tạm thời loại host khỏi placement (remove label
mon) để mon service không cố “kéo” nó vào. - Khi host online: thoát maintenance mode để dịch vụ khác hồi phục.
- Dọn dấu vết MON cũ trên host (nếu còn) — chỉ mon, không đụng
osd. - Add lại mon + gắn lại label để
monservice trở về size mong muốn. - Verify: quorum đủ,
ceph -sHEALTH_OK.
Warning
- Đây là quy trình dành cho
mon. Không áp dụng tương tự choosd/mgrnếu chưa nắm rõ hậu quả.- Không xóa nhầm
/var/lib/ceph/*/osd.*— dữ liệu OSD phải giữ nguyên.
1) Check status cluster trước
Ta thấy có 1 node đang CEPH-LAB-NODE162 đang maintenance mode, node này có cả rgw, mgr, mon và osd.
root@CEPH-LAB-NODE161:~# ceph -s
cluster:
id: 2575782c-099c-11f1-aa27-1db7e16056f3
health: HEALTH_WARN
7 failed cephadm daemon(s)
1 host is in maintenance mode
1/3 mons down, quorum CEPH-LAB-NODE161,CEPH-LAB-NODE163
9 osds down
1 OSDs or CRUSH {nodes, device-classes} have {NOUP,NODOWN,NOIN,NOOUT} flags set
1 host (9 osds) down
Degraded data redundancy: 192/1119 objects degraded (17.158%), 32 pgs degraded, 174 pgs undersized
services:
mon: 3 daemons, quorum CEPH-LAB-NODE161,CEPH-LAB-NODE163 (age 3m), out of quorum: CEPH-LAB-NODE162
mgr: CEPH-LAB-NODE161.wmafdi(active, since 9m), standbys: CEPH-LAB-NODE163.bfdfhe
osd: 45 osds: 36 up (since 3m), 45 in (since 9d)
rgw: 2 daemons active (2 hosts, 1 zones)
data:
pools: 9 pools, 289 pgs
objects: 373 objects, 735 KiB
usage: 8.6 GiB used, 441 GiB / 450 GiB avail
pgs: 192/1119 objects degraded (17.158%)
142 active+undersized
115 active+clean
32 active+undersized+degraded
1.1) Xác định daemon mon đang như thế nào
Check daemon_type là mon.
root@CEPH-LAB-NODE161:~# ceph orch ps --daemon_type mon
NAME HOST PORTS STATUS REFRESHED AGE MEM USE MEM LIM VERSION IMAGE ID CONTAINER ID
mon.CEPH-LAB-NODE161 CEPH-LAB-NODE161 running (9d) 34s ago 9d 704M 2048M 18.2.4 2bc0b0f4375d c5d10b6a9deb
mon.CEPH-LAB-NODE162 CEPH-LAB-NODE162 stopped 5m ago 9d 143M 2048M 18.2.4 2bc0b0f4375d f35f9d526de0
mon.CEPH-LAB-NODE163 CEPH-LAB-NODE163 running (9d) 34s ago 9d 683M 2048M 18.2.4 2bc0b0f4375d 50663982faf1
1.2) Xác định service mon đang “đặt” ở đâu
Check service_type mon.
root@CEPH-LAB-NODE161:~# ceph orch ls --service_type mon
NAME PORTS RUNNING REFRESHED AGE PLACEMENT
mon 2/3 6m ago 9d label:mon
Xem manifest đang define cho service mon (placement theo label: mon).
root@CEPH-LAB-NODE161:~# ceph orch ls --service_type mon --format yaml
service_type: mon
service_name: mon
placement:
label: mon
status:
created: '2026-02-14T11:58:13.843349Z'
last_refresh: '2026-02-24T03:45:46.493690Z'
running: 2
size: 3
2) Remove MON khỏi placement (tạm thời) bằng cách gỡ label mon
Mục tiêu của bước này:
- Loại
CEPH-LAB-NODE162khỏilabel:monplacement, tránh orch cố “kéo”monvề trong lúc host đang offline/maintenance. - Đồng thời monmap/quorum sẽ phản ánh chỉ còn 2
mon(tạm thời).
Hãy xóa label mon của node này.
root@CEPH-LAB-NODE161:~# ceph orch host label rm CEPH-LAB-NODE162 mon
Removed label mon from host CEPH-LAB-NODE162
List lại để thấy label đã xóa.
root@CEPH-LAB-NODE161:~# ceph orch host ls
HOST ADDR LABELS STATUS
CEPH-LAB-NODE161 192.168.100.161 _admin,mon,mgr,osd
CEPH-LAB-NODE162 192.168.100.162 _admin,mgr,osd Offline
CEPH-LAB-NODE163 192.168.100.163 _admin,mon,mgr,osd
CEPH-LAB-NODE164 192.168.100.164 osd
CEPH-LAB-NODE165 192.168.100.165 osd
5 hosts in cluster
Số lượng service_type mon giảm xuống còn 2 (placement label:mon giờ chỉ match 2 host).
root@CEPH-LAB-NODE161:~# ceph orch ls --service_type mon
NAME PORTS RUNNING REFRESHED AGE PLACEMENT
mon 2/2 9m ago 9d label:mon
Tương tự danh sách mon đã mất CEPH-LAB-NODE162 khi dump mon.
root@CEPH-LAB-NODE161:~# ceph mon dump
epoch 4
fsid 2575782c-099c-11f1-aa27-1db7e16056f3
last_changed 2026-02-24T03:51:22.993570+0000
created 2026-02-14T11:56:09.949563+0000
min_mon_release 18 (reef)
election_strategy: 1
0: [v2:192.168.100.161:3300/0,v1:192.168.100.161:6789/0] mon.CEPH-LAB-NODE161
1: [v2:192.168.100.163:3300/0,v1:192.168.100.163:6789/0] mon.CEPH-LAB-NODE163
dumped monmap epoch 4
Note
- Việc
mongiảm xuống 2/2 là trạng thái tạm thời (miễn cluster vẫn đủ quorum theo yêu cầu vận hành của bạn).- Khi hoàn tất, mục tiêu là đưa service
montrở lại 3/3.
3) Khi NODE162 online lại: thoát maintenance mode để dịch vụ hồi phục
Khi NODE162 online lại, check status thấy mon đã bị gỡ nhưng các dịch vụ khác đang down vì đang maintenance mode.
root@CEPH-LAB-NODE161:~# ceph -s
cluster:
id: 2575782c-099c-11f1-aa27-1db7e16056f3
health: HEALTH_WARN
7 failed cephadm daemon(s)
1 host is in maintenance mode
9 osds down
1 OSDs or CRUSH {nodes, device-classes} have {NOUP,NODOWN,NOIN,NOOUT} flags set
1 host (9 osds) down
Degraded data redundancy: 192/1119 objects degraded (17.158%), 32 pgs degraded, 174 pgs undersized
services:
mon: 2 daemons, quorum CEPH-LAB-NODE161,CEPH-LAB-NODE163 (age 7m)
mgr: CEPH-LAB-NODE161.wmafdi(active, since 19m), standbys: CEPH-LAB-NODE163.bfdfhe
osd: 45 osds: 36 up (since 12m), 45 in (since 9d)
rgw: 2 daemons active (2 hosts, 1 zones)
data:
pools: 9 pools, 289 pgs
objects: 373 objects, 735 KiB
usage: 8.6 GiB used, 441 GiB / 450 GiB avail
pgs: 192/1119 objects degraded (17.158%)
142 active+undersized
115 active+clean
32 active+undersized+degraded
Nên gỡ cờ maintenance mode trước để các dịch vụ node này hoạt động trở lại.
root@CEPH-LAB-NODE161:~# ceph orch host maintenance exit CEPH-LAB-NODE162
Ceph cluster 2575782c-099c-11f1-aa27-1db7e16056f3 on CEPH-LAB-NODE162 has exited maintenance mode
3.1) Verify nhanh OSD đã up lại trên node này
root@CEPH-LAB-NODE161:~# ceph osd tree | grep CEPH-LAB-NODE162 -A10
-7 0.08817 host CEPH-LAB-NODE162
2 ssd 0.00980 osd.2 up 1.00000 1.00000
6 ssd 0.00980 osd.6 up 1.00000 1.00000
11 ssd 0.00980 osd.11 up 1.00000 1.00000
16 ssd 0.00980 osd.16 up 1.00000 1.00000
21 ssd 0.00980 osd.21 up 1.00000 1.00000
26 ssd 0.00980 osd.26 up 1.00000 1.00000
31 ssd 0.00980 osd.31 up 1.00000 1.00000
36 ssd 0.00980 osd.36 up 1.00000 1.00000
42 ssd 0.00980 osd.42 up 1.00000 1.00000
-11 0.08817 host CEPH-LAB-NODE163
Check lại status đã ok.
root@CEPH-LAB-NODE161:~# ceph -s
cluster:
id: 2575782c-099c-11f1-aa27-1db7e16056f3
health: HEALTH_OK
services:
mon: 2 daemons, quorum CEPH-LAB-NODE161,CEPH-LAB-NODE163 (age 6m)
mgr: CEPH-LAB-NODE161.wmafdi(active, since 28m), standbys: CEPH-LAB-NODE162.gevlhi, CEPH-LAB-NODE163.bfdfhe
osd: 45 osds: 45 up (since 5m), 45 in (since 9d)
rgw: 3 daemons active (3 hosts, 1 zones)
data:
pools: 9 pools, 289 pgs
objects: 372 objects, 735 KiB
usage: 8.7 GiB used, 441 GiB / 450 GiB avail
pgs: 289 active+clean
List host cũng ok tuy nhiên label mon chưa gắn lại (đúng kỳ vọng ở bước này).
root@CEPH-LAB-NODE161:~# ceph orch host ls
HOST ADDR LABELS STATUS
CEPH-LAB-NODE161 192.168.100.161 _admin,mon,mgr,osd
CEPH-LAB-NODE162 192.168.100.162 _admin,mgr,osd
CEPH-LAB-NODE163 192.168.100.163 _admin,mon,mgr,osd
CEPH-LAB-NODE164 192.168.100.164 osd
CEPH-LAB-NODE165 192.168.100.165 osd
5 hosts in cluster
4) Trên CEPH-LAB-NODE162: kiểm tra và dọn “dấu vết MON cũ” (nếu còn)
Mục tiêu:
- Đảm bảo trên host
CEPH-LAB-NODE162không còn mon daemon/data cũ gây conflict khi deploy lại. - Chỉ đụng tới
mon, tuyệt đối không ảnh hưởngosd.
4.1) Xem còn mon daemon không
root@CEPH-LAB-NODE162:~# cephadm ls | grep -E 'mon\.CEPH-LAB-NODE162|mon\.' || true
<trống>
# Nếu còn vết (ví dụ trên node CEPH-LAB-NODE161)
root@CEPH-LAB-NODE161:~# cephadm ls | grep -E 'mon\.CEPH-LAB-NODE161|mon\.' || true
"name": "mon.CEPH-LAB-NODE161",
"systemd_unit": "ceph-2575782c-099c-11f1-aa27-1db7e16056f3@mon.CEPH-LAB-NODE161",
Nếu còn output ở trên thì remove daemon mon cũ theo lệnh này (ví dụ này không có output gì nên không cần gõ nữa).
cephadm rm-daemon --name mon.CEPH-LAB-NODE162 --force || true
4.2) Xoá data mon cũ (chỉ dịch vụ mon thôi)
Warning
- Bắt buộc verify trước: nếu không tồn tại thì không cần xóa.
- Không đụng gì tới
/var/lib/ceph/*/osd.*⇒ OSD giữ nguyên.
Thử verify trước nếu không có thì khỏi thực hiện xóa, ví dụ:
root@CEPH-LAB-NODE162:~# ls -l /var/lib/ceph/*/mon.CEPH-LAB-NODE162
ls: cannot access '/var/lib/ceph/*/mon.CEPH-LAB-NODE162': No such file or directory
root@CEPH-LAB-NODE161:~# ls -l /var/lib/ceph/*/mon.CEPH-LAB-NODE161
total 52
-rw------- 1 ceph ceph 292 Feb 24 10:51 config
-rw------- 1 ceph ceph 7 Feb 24 11:30 external_log_to
-rw------- 1 ceph ceph 77 Feb 24 10:51 keyring
-rw------- 1 ceph ceph 8 Feb 14 18:56 kv_backend
-rw------- 1 ceph ceph 5 Feb 14 18:56 min_mon_release
drwxr-xr-x 2 ceph ceph 4096 Feb 24 11:28 store.db
-rw------- 1 ceph ceph 38 Feb 24 10:51 unit.configured
-rw------- 1 ceph ceph 48 Feb 14 18:56 unit.created
-rw------- 1 root root 39 Feb 14 18:56 unit.image
-rw------- 1 root root 101 Feb 14 18:56 unit.meta
-rw------- 1 root root 378 Feb 14 18:56 unit.poststop
-rw------- 1 root root 2022 Feb 14 18:56 unit.run
-rw------- 1 root root 378 Feb 14 18:56 unit.stop
Nếu còn thư mục mon thì xóa.
rm -rf /var/lib/ceph/*/mon.CEPH-LAB-NODE162
5) Add lại MON lên NODE162 và gắn label mon lại
Mục tiêu:
- Deploy lại
mon.CEPH-LAB-NODE162bằng orchestrator. - Gắn lại label để
monservicelabel:monquay về size 3.
Trên 1 mon bất kỳ (ví dụ NODE161), add mon mới lên host 162.
root@CEPH-LAB-NODE161:~# ceph orch daemon add mon CEPH-LAB-NODE162
Deployed mon.CEPH-LAB-NODE162 on host 'CEPH-LAB-NODE162'
Gắn lại label để mon service label:mon quay về size 3.
root@CEPH-LAB-NODE161:~# ceph orch host label add CEPH-LAB-NODE162 mon
Added label mon to host CEPH-LAB-NODE162
6) Verify sau khi add lại MON
6.1) Check daemon_type mon đã có 3 node (gồm NODE162)
root@CEPH-LAB-NODE161:~# ceph orch ps --daemon_type mon
NAME HOST PORTS STATUS REFRESHED AGE MEM USE MEM LIM VERSION IMAGE ID CONTAINER ID
mon.CEPH-LAB-NODE161 CEPH-LAB-NODE161 running (9d) 9m ago 9d 699M 2048M 18.2.4 2bc0b0f4375d c5d10b6a9deb
mon.CEPH-LAB-NODE162 CEPH-LAB-NODE162 running (12s) 6s ago 12s 87.6M 2048M 18.2.4 2bc0b0f4375d 4715ad0317af
mon.CEPH-LAB-NODE163 CEPH-LAB-NODE163 running (9d) 9m ago 9d 682M 2048M 18.2.4 2bc0b0f4375d 50663982faf1
6.2) Check quorum_status thấy đủ 3 mon
root@CEPH-LAB-NODE161:~# ceph quorum_status | jq -r '.quorum_names'
[
"CEPH-LAB-NODE161",
"CEPH-LAB-NODE163",
"CEPH-LAB-NODE162"
]
6.3) Check ceph -s healthy và đủ 3 mon
root@CEPH-LAB-NODE161:~# ceph -s
cluster:
id: 2575782c-099c-11f1-aa27-1db7e16056f3
health: HEALTH_OK
services:
mon: 3 daemons, quorum CEPH-LAB-NODE161,CEPH-LAB-NODE163,CEPH-LAB-NODE162 (age 115s)
mgr: CEPH-LAB-NODE161.wmafdi(active, since 96m), standbys: CEPH-LAB-NODE162.gevlhi, CEPH-LAB-NODE163.bfdfhe
osd: 45 osds: 45 up (since 36m), 45 in (since 9d)
rgw: 3 daemons active (3 hosts, 1 zones)
data:
pools: 9 pools, 289 pgs
objects: 372 objects, 735 KiB
usage: 8.8 GiB used, 441 GiB / 450 GiB avail
pgs: 289 active+clean
Lưu ý quan trọng
- Luôn kiểm tra placement của
monservice (ceph orch ls --service_type mon) trước khi thao tác label. - Label
monquyết định host nào được orch xem là “ứng viên” để chạymontheo placementlabel:mon. - Khi host quay lại online, thoát maintenance mode sớm để tránh hiểu nhầm “dịch vụ down do lỗi” trong khi thực tế bị giữ bởi maintenance.
-
Khi cần dọn dẹp:
-
Chỉ dọn
mon:cephadm rm-daemon(nếu còn) và/var/lib/ceph/*/mon.<HOST>. - Không xóa
/var/lib/ceph/*/osd.*.
Warning
- Nếu cluster chỉ còn 2 mon, hãy đảm bảo bạn hiểu yêu cầu quorum và rủi ro vận hành trước khi kéo dài trạng thái này.
- Mọi thao tác xóa dữ liệu dưới
/var/lib/cephđều nên verify path chính xác theo host/daemon cần xử lý.
Kết luận
Quy trình “remove rồi join/add lại MON” trong cephadm/ceph orch thực chất là:
- Loại host khỏi placement (gỡ
label mon) để cụm ổn định và monmap phản ánh đúng. - Khi host trở lại: thoát maintenance, dọn sạch dấu vết
moncũ nếu còn, rồi deploy lạimonvà gắn lại label. - Verify quorum và
ceph -sđể xác nhận cụm đã về trạng thái mong muốn.