Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.Sign up
mgr/balancer: cast config vals to int or float #19493
Note that there is a fair bit of work that can be done to improve the current balancer behavior (although what is there now works reasonably well!). I'm very excited to see how well it does on a large cluster--I only had our janky lab cluster to test against (which was a real mess weight-wise but only ~100 osds).
Yeah I'm slowly testing it now -- so far so good :) (except this other small learning-curve issue http://tracker.ceph.com/issues/22424)
crush-compat seemed to work well enough on an older 3-host, 72-osd cluster -- but that has only one root, is uniform. Here's how it managed on that cluster:
And with upmap on a newer 381-osd, 127-host cluster, much less uniform (but still single root) it managed:
Both were quite imbalanced to start.
One potential problem I noticed is that upmap works sequentially by pool -- in my test cluster I have 3 (currently empty) pools, and it managed to balance things by upmapping only the first pool. I guess this was the intention of
And BTW it was very nice that crush-compat mode gradually increased the osd reweights back to 1.0 -- this will greatly simplify the phase-in on our already-reweighed clusters. Last thing I need is a way to slowly phase in new hardware (start with 0 pgs then let the balancer slowly map PGs to them) -- possibly its already doable with the existing balancer, or otherwise it shouldn't be too complicated.