【ceph運維】osd數據均衡


Ceph 集群在運行一段時間后常會碰到OSD 數據不均衡的時候,有的OSD 使用率超過的80%,有的甚至不足60%。一般有兩種方法去均衡各個OSDs 間的數據

OSD Reweight

其實就是給各個OSDs 設置均衡權重(區別OSD weight 是根據容量設置的固定權重)

調整數據量超過閥值的OSD的權重,閥值默認值為120%。

ceph osd reweight-by-utilization [threshold]

 

若要預覽效果,則可以使用以下命令:

ceph osd test-reweight-by-utilization [threshold]

 

當然,也可以根據每個OSD上的PG數量來調整,閥值默認值也是120%。

ceph osd reweight-by-pg [threshold]

 

若要預覽效果,則可以使用以下命令:

ceph osd test-reweight-by-pg [threshold]

 

Ceph Balancer

從Luminous 開始,Ceph 新增的了balancer ,可以將PG 在各個OSD上自動遷移,已達到均衡的效果。推薦使用。

1)查看balancer 模塊狀態

ceph mgr module ls # 查看各個模塊的狀態
ceph balancer status

2)啟用balancer 模塊(默認enable)

ceph mgr module enable balancer

3)啟用均衡(默認active 是false)

ceph balancer on

4)設置模式(修改PG mapping)

ceph balancer mode upmap

或設置模式(修改weight)

ceph balancer mode crush-compat

其中upmap 模式設置兼容版本

ceph osd set-require-min-compat-client luminous

Luminous 需要手動設置均衡計划?

ceph balancer eval #對集群所有pool進行權重調整計算,針對特定pool 采用 ceph balancer eval <POOL_NAME>
ceph balancer optimize plan2 #生成一個調優配置,或指定存儲池 ceph balancer optimize plan2 default.rgw.buckets.data
ceph balancer eval plan2 #執行調優計算
ceph balancer show plan2 #查看調優計算最終的結果
ceph balancer execute plan2 #根據上面模擬計算的結果,執行最終的權重調整

5)查看調整結果

ceph osd df

6)關閉自動調整

ceph balancer off
ceph balancer status

OSD PG 數統計腳本:包含osd pool的排序,包含osd的排序,輸出平均pg數目,輸出最大的osd編號,輸出最大超過平均值的百分比,輸出最少pg的osd編號,輸出最小低於平均值的百分比,
用於輔助查看集群各個OSD 的PG 分布情況,參考武漢-磨渣的博客《查詢osd上的pg數》

 

參考資料

1. Ceph OSDs 間的數據均衡


免責聲明!

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



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