Kích hoạt các metrics RBD trong Ceph

1. Giới thiệu

Trong quá trình vận hành hệ thống lưu trữ phân tán Ceph, việc theo dõi hiệu năng và hành vi của các RBD image là điều cực kỳ quan trọng, đặc biệt khi bạn tích hợp với Prometheus để quan sát và cảnh báo. Tuy nhiên, có một điều ít người biết là Ceph không tự động export các RBD metrics cho tất cả các pool – bạn cần chỉ định rõ những pool nào cần theo dõi.

Trong bài viết này, mình sẽ chia sẻ cách cấu hình tham số mgr/prometheus/rbd_stats_pools để bật theo dõi các metric I/O như ceph_rbd_read_bytes, ceph_rbd_write_bytes, ceph_rbd_operations, v.v…

2. Vì sao cần cấu hình rbd_stats_pools

Khi Prometheus query các metric từ Ceph thông qua module prometheus, mặc định các thống kê về RBD (I/O stats) không có sẵn nếu bạn chưa cấu hình pool. Điều này là để:

  • Giảm tải cho Ceph Manager daemon
  • Tránh thu thập dữ liệu không cần thiết nếu pool không có image hoặc IO đáng kể

Do đó, bạn phải chủ động cấu hình danh sách pool mà bạn muốn theo dõi.

3. Cách cấu hình đơn giản

Câu lệnh để chỉ định danh sách pool:

ceph config set mgr mgr/prometheus/rbd_stats_pools pool1,pool2,...

Lưu ý: Lệnh này ghi đè danh sách cũ — không phải là thêm vào!

Muốn xem danh sách hiện tại:

ceph config get mgr mgr/prometheus/rbd_stats_pools

Để đảm bảo bạn không vô tình loại bỏ các pool đang theo dõi trước đó:

OLD_POOLS=$(ceph config get mgr mgr/prometheus/rbd_stats_pools)
ceph config set mgr mgr/prometheus/rbd_stats_pools "${OLD_POOLS},POOL_MOI"

4. Cần reload Prometheus module không?

Thông thường không cần restart, nhưng nếu bạn muốn đảm bảo Prometheus exporter nạp lại cấu hình:

ceph mgr module disable prometheus
ceph mgr module enable prometheus

5. Kiểm tra Prometheus có nhận metric chưa

Bạn có thể test bằng cách dùng curl:

curl -s "http://<ceph-mgr>:9283/metrics" | grep ceph_rbd_write_bytes

Hoặc thông qua API Prometheus:

curl -s "http://<prometheus-host>:9090/api/v1/query?query=ceph_rbd_write_bytes" | jq

6. Về hiệu năng và an toàn

Việc cấu hình mgr/prometheus/rbd_stats_pools là an toàn tuyệt đối với hệ thống production. Một số điểm cần biết:

Tác độngCó hay không?
Ảnh hưởng đến IO❌ Không
Ảnh hưởng tới OSD, MON❌ Không
Restart Ceph cần thiết❌ Không
Tăng tải nhẹ lên MGR⚠️ Có thể nếu quá nhiều image

7. Kinh nghiệm thực tế

Một số khuyến nghị để cấu hình hiệu quả hơn:

  • Chỉ chọn pool có RBD thực sự và đang có IO
  • Với hệ thống có nhiều pool/image, nên chọn lọc tránh “thu thập thừa”
  • Có thể tự động hoá bằng script, Ansible, hoặc cron
  • Theo dõi tài nguyên Ceph MGR bằng htop, ceph -s, hoặc Prometheus

8. Ví dụ minh họa

Giả sử bạn đang theo dõi POOL-LAB-NVME-01POOL-LAB-NVME-02, sau đó có thêm POOL-LAB-NVME-03:

OLD=$(ceph config get mgr mgr/prometheus/rbd_stats_pools)
ceph config set mgr mgr/prometheus/rbd_stats_pools "${OLD},POOL-LAB-NVME-03"

9 Kết luận

Tham số mgr/prometheus/rbd_stats_pools là một phần cấu hình rất quan trọng nếu bạn muốn theo dõi chi tiết hoạt động của các RBD image trong Ceph. Việc cấu hình hoàn toàn an toàn, không gây downtime và dễ dàng tự động hoá để quản lý theo quy mô.

Hãy bắt đầu thêm các pool quan trọng của bạn vào danh sách này để tận dụng tối đa khả năng giám sát từ Prometheus!

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