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 động | Có 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-01
và POOL-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!