Lỗi Host Offline sau khi gỡ _no_schedule trong Ceph Orchestrator

🔍 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ỗiFarm hoạt động bình thường
Không resolve được hostnameCó bản ghi DNS hoặc /etc/hosts
SSH bằng hostname lỗiSSH bằng hostname OK
Gỡ _no_schedule là OfflineGỡ _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ới 10.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àmLệnh/Thao tác
Xác minh lỗiceph orch host ls
Kiểm tra SSH/IPssh cephadmin@<IP>
Kiểm tra SSH/hostnamessh cephadmin@<hostname>
Khắc phục tạm thờiThêm vào /etc/hosts
Khắc phục lâu dàiThêm bản ghi DNS
Xác minhPing hostname + ssh

✨ Ưu – Nhược điểm

Ưu điểmNhược điểm
Xử lý nhanh chóng qua /etc/hostsKhông bền vững nếu node nhiều
Có thể tự động hóaCần đồng bộ với các MON khác
Không cần reset nodeYê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.

Bài viết gần đây

spot_img

Related Stories

Leave A Reply

Please enter your comment!
Please enter your name here

Đăng ký nhận thông tin bài viết qua email