🔍 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,
cephadm
không thể deploy container - Khi thêm bản ghi hostname vào
/etc/hosts
trê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-078
trỏ 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
cephadm
vẫ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 hostname
từ 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.