Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to combine with ceph's built-in upmap balancer? It would be great if it is possible. #50

Open
bfbz opened this issue Nov 28, 2024 · 3 comments

Comments

@bfbz
Copy link

bfbz commented Nov 28, 2024

I now use

./placementoptimizer.py -v balance --max-pg-moves 10 --osdused delta --osdsize device --osdfrom fullest --ignore-ideal-pgcounts all --only-crushclass ssd | tee /tmp/balance-upmaps

to adjust the osds with inconsistent usage to achieve balanced usage, but I can only turn off the ceph default balancer, which is too uncomfortable. If I can use JJ to balance and then hand it over to the default balancer, it would be perfect.

@TheJJ
Copy link
Owner

TheJJ commented Nov 28, 2024

in principle, this already works. what is the problem that you don't do it?
of course the built-in balancer balances differently than mine - the default only considers the ideal pg counts on an osd, nothing else. since you explicitly ignore the ideal pg counts, the two balancers will fight each other.

maybe splitting into more pgs and not ignoring the ideal count is enough for the default balancer to keep things as-is in your setup?

why not run my balancer periodically in a systemd timer? :)

@bfbz
Copy link
Author

bfbz commented Nov 28, 2024

First of all, JJ is great, but if I use the method of balancing without ignoring the ideal number, it is not very effective in most scenarios and cannot narrow the utilization gap between osds. As for why I don't set JJ as a scheduled task, it is because I found that when I use the method of balancing without ignoring the ideal number until the utilization between osds is close, there will be calculation errors, and some pgs will be placed on a certain osd, and the cycle will repeat, so I can only execute it manually at present.

Is there a standard command that allows me to solve the problem of uneven osd utilization and is compatible with ceph by default? Thank you!

@TheJJ
Copy link
Owner

TheJJ commented Nov 29, 2024

apart from what i said before i fear there's no other compatible way yet, because this count-ignoring makes the difference the default balancer fights it in the first place. what for do you need the default balancer?

do you need an option to ignore certain osds, or what precisely prevents automatic operations?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants