🔍 Tổng quan
Trong quá trình triển khai Ceph với cephadm, bạn có thể dùng nhãn _no_schedule để tạm thời ngăn hệ thống tự động phân bổ dịch vụ lên một node cụ thể.
Tuy nhiên, bạn có thể gặp trường hợp kỳ lạ: ngay khi gỡ _no_schedule, node lập tức chuyển sang trạng thái “Offline”, dù bạn vẫn SSH được bằng IP và hệ thống hoạt động bình thường.
Bài viết này chia sẻ nguyên nhân, cách khắc phục và cách tránh gặp lại lỗi này – dưới dạng một tình huống thực tế trong môi trường production.
⚠️ Tình huống thực tế
✅ Khi có _no_schedule, mọi thứ bình thường:
ceph orch host ls
Trạng thái trước khi gỡ cờ _no_schedule
HOST ADDR LABELS STATUS
CEPH-LAB-OSD-078 10.237.7.78 osd _no_schedule OK
❌ Gỡ _no_schedule → Status thành Offline:
ceph orch host label rm CEPH-LAB-OSD-078 _no_schedule✅ Khi không _no_schedule, Status thành Offline:
ceph orch host ls
Trạng thái sau khi gỡ cờ _no_schedule
HOST ADDR LABELS STATUS
CEPH-LAB-OSD-078 10.237.7.78 osd Offline🧪 Triệu chứng & kiểm tra
- SSH bằng IP
10.237.7.78→ OK - SSH bằng hostname
CEPH-LAB-OSD-078→ ❌ Không resolve được - Dù SSH được,
cephadmkhông thể deploy container - Khi thêm bản ghi hostname vào
/etc/hoststrên MON → Hoạt động lại bình thường
📌 Phân tích nguyên nhân
cephadm dựa vào tên host để kết nối
Khi gỡ _no_schedule, cephadm sẽ tìm cách:
- Kết nối tới host theo hostname, không phải IP
- Deploy các service (OSD, MON, MGR,…) qua SSH và podman/ceph-volume
→ Nếu tên host không resolve được → cephadm sẽ đánh dấu node là Offline
Hệ thống DNS hoặc /etc/hosts không đầy đủ
Ở farm này, không có bản ghi CEPH-LAB-OSD-078 trong /etc/hosts hay DNS nội bộ → Resolve hostname thất bại
Ở các farm khác, hệ thống DNS hoặc file hosts có cấu hình đầy đủ nên không gặp lỗi
🗂️ So sánh giữa các môi trường
| Farm có lỗi | Farm hoạt động bình thường |
|---|---|
| Không resolve được hostname | Có bản ghi DNS hoặc /etc/hosts |
| SSH bằng hostname lỗi | SSH bằng hostname OK |
Gỡ _no_schedule là Offline | Gỡ _no_schedule bình thường |
🔧 Cách khắc phục
✅ Cách nhanh: Thêm vào /etc/hosts trên MON nodes
echo "10.237.7.78 CEPH-LAB-OSD-078" >> /etc/hostsÁp dụng cho tất cả MON/MGR node để đảm bảo cephadm có thể resolve.
Lưu ý: cần thực hiện trên mọi node điều phối cephadm, không chỉ 1 node.
✅ Cách bền vững: Cấu hình hệ thống DNS nội bộ
- Cập nhật DNS nội bộ hoặc sử dụng dịch vụ như
dnsmasq,unbound - Thêm bản ghi
CEPH-LAB-OSD-078trỏ tới10.237.7.78
✅ Kiểm tra hostname & ssh từ MON
ping -c1 CEPH-LAB-OSD-078
ssh cephadmin@CEPH-LAB-OSD-078
Nếu cả hai đều OK, bạn đã khắc phục thành công.
🔁 Cách tránh lỗi trong tương lai
- Dùng IP để thêm host:
ceph orch host add HOST IP LABEL - Nhưng
cephadmvẫn yêu cầu hostname có thể resolve - Khi đặt tên node, nên đồng bộ hostname với hệ thống DNS/hosts
🧠 Sơ đồ ASCII mô tả quá trình
┌─────────────┐
│ MON Node │
└──────┬──────┘
│
│ SSH tới hostname
▼
┌────────────────────────────┐
│ Resolve "CEPH-LAB-OSD-078" │──┐
└────────────────────────────┘ │
▲ │
│ (FAIL: không có DNS) │
▼ ▼
┌────────────┐ ┌────────────┐
│SSH thất bại│ │Node Offline│
└────────────┘ └────────────┘
✅ Tổng kết
| Việc cần làm | Lệnh/Thao tác |
|---|---|
| Xác minh lỗi | ceph orch host ls |
| Kiểm tra SSH/IP | ssh cephadmin@<IP> |
| Kiểm tra SSH/hostname | ssh cephadmin@<hostname> |
| Khắc phục tạm thời | Thêm vào /etc/hosts |
| Khắc phục lâu dài | Thêm bản ghi DNS |
| Xác minh | Ping hostname + ssh |
✨ Ưu – Nhược điểm
| Ưu điểm | Nhược điểm |
|---|---|
Xử lý nhanh chóng qua /etc/hosts | Không bền vững nếu node nhiều |
| Có thể tự động hóa | Cần đồng bộ với các MON khác |
| Không cần reset node | Yêu cầu thao tác tay hoặc DNS nội bộ |
📣 Lời khuyên
✅ Khi triển khai Ceph bằng cephadm, hãy đảm bảo rằng tất cả hostname đều có thể resolve từ MON/MGR.
Bạn có thể:
- Thiết lập DNS nội bộ
- Duy trì
ansibleđể sync file/etc/hosts - Dùng FQDN nếu hệ thống lớn
- Kiểm tra định kỳ bằng script
ping + ssh hostnametừ MON
🏁 Kết luận
Trong môi trường Ceph dùng cephadm, sự phụ thuộc vào hostname có thể gây lỗi khó đoán nếu DNS hoặc file hosts không đầy đủ. Việc “node offline” sau khi gỡ _no_schedule là dấu hiệu rõ ràng rằng hostname không được resolve đúng cách.
Chìa khóa là đảm bảo hệ thống tên (name resolution) nhất quán và đầy đủ – điều tưởng nhỏ nhưng cực kỳ quan trọng trong các hệ thống distributed như Ceph.
