問題處理--ceph集群告警 too many PGs per OSD


問題現象:
  ceph告警問題:”too many PGs per OSD” 
 

 

問題原因:
  因為最近做了一些踢OSD盤的變更,導致ceph集群OSD數量變少了,所以每個OSD上的PG數量過多,導致ceph health_warn。
當前PG數量調整為了2048 。
  當前5台存儲節點,只有29個OSD,每個存儲節點都有6個OSD,但是其中一台存儲節點上缺少一個OSD。
 
【解決方案】
方法1.
再加1個OSD盤到集群即可。前提是有多余的可用磁盤。
 
方法2.
調整每個osd默認PG數,參數為mon_pg_warn_max_per_osd。
 
# ceph --show-config | grep mon_pg_warn_max_per_osd
mon_pg_warn_max_per_osd = 300
 
2.1 使用ceph tell的方式臨時調整這個參數為400:
# ceph tell mon.* injectargs --mon_pg_warn_max_per_osd 400
 
2.2
1)修改配置文件永久調整配置
# cd /etc/ceph
# vim ceph.conf
[global]
.......
mon_pg_warn_max_per_osd = 400
 
2)將配置文件推到mon所在的其他節點
# ceph-deploy --overwrite-conf config push ceph1 ceph2
 
3)重啟mon進程
# systemctl restart ceph-mon.target
重啟后再查看:
# ceph --show-config | grep mon_pg_warn_max_per_osd
 
方法3.
刪除一個不用的pool可以解決此問題。操作前已經和業務以及研發再次確認過這個pool可以刪除。
ceph df查看,可以看到images pool 在環境中沒有用處,所以這次通過刪除這個pool來解決此問題。
 

 

ceph osd pool images images --yes-i-really-really-mean-it
 
再次查看ceph -s ,可以看到health_ok。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM