ceph 數據均衡
問題的提出:在ceph集羣中,當有新的OSD 添加到集羣中,會導致數據移動以達到數據均衡,數據的移動只在舊的OSD和新添加的OSD之間移動,還是舊有的OSD之間也有數據移動?
上次Ceph社區交流,有人提到,當有100個OSD時,添加OSD, 舊有的OSD之間會有劇烈的數據移動
目前做了一個實驗,Ceph 集羣有6個 OSD(0,1,2,3,4,5),再添加 2個新的OSD(6,7), 觀察添加新的OSD之前和之後的PG變化
通過 ceph pg ls | awk '{print $15}' 可以獲得所有的PG到OSD的映射
集羣中共有pg 169 個
對比結果發現會有這樣的遷移:(4,0,1) --> (6,1,3) 也就是舊的OSD之間的遷移
總共有134個PG遷移,這樣的內部之間遷移的PG有6個,比例不是太多
結論:
原有的舊的OSD之間內部確實有數據的遷移
最近有人開發了以工具,可以模塊pg的分佈,這樣在遷移時,可以做一些模擬實驗,當合適時再遷移:
https://github.com/ceph/ceph/pull/6004