-
Notifications
You must be signed in to change notification settings - Fork 34
What exactly is shrdsize? #59
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
Comments
I read your explanation on the front page and it doesn't make sense to me. Shouldn't it simply be this, given that data chunks and parity chunks are the same size? EC shard size = pg_size / (k+m) Am I missing something? |
Hello Torkil, Here a quick comment. I guess JJ can give more insights later. I think the compression of Pools is not taken into account in the balancer. Without compression the But your dump shows for pool 11 As far a I see, the balancer calculates the shardsize based on the I don't know for sure, why the Leo |
|
That yields pg_size and not shard_size? To get shard_size you need to additionally divide by the replication factor?
Why divide with just k and not k+m? Data chunks and parity chunks all take up the same space? Here's the UP acting set for a random pool 11 PG from [503,561,528,444,223,268] (6 shards) From pool 4: [125,555,438] (3 shards) Unless a shard is something else =) |
Yes pool 11 has 6 shards per pg, and pool 4 has 3 shards per pg. Here the difference is, if we are using the When using the The
When substitution this in these other functions:
we get The problem is, the balancer does not reflect the compression, so the current calculation of the shard size based on the |
can you try again with the latest code? it should now display the real shard sizes on disk, not those of the data you stored before compression. |
and just for the record, shardsize is the size of one pg's replication chunk, usually stored on just one OSD. in other words: since a pg is on multiple OSDs, a shard is that PG's allocation on one OSD. when balancing, the shardsize is the minimum thing to possibly move around between OSDs. |
|
< when balancing, the shardsize is the minimum thing to possibly move around between OSDs. Thanks. I still don't get it though but I'm unfortunately not very bright. Here's an example pool 4 PG from PG 4.21c If the PG is 110GB in size the shard size should be 110GB/3 = 36,6GB? Example pool 11 PG: PG 11.409 For this case, EC 4+2, shard size should be 70GB/6 = 11,66GB? Simply taking the size of a PG and looking at how big it is sidesteps all considerations about compression and whatnot, and gives you the actual size of the minimum thing to move? |
these bytes are the without compression you could do |
Uh oh!
There was an error while loading. Please reload this page.
Hi
Wondering if there is a problem with shardsize calculation:
If I look at ceph pg dump the size of a random PG in pool 11 is 70869098496 bytes and the size of a random PG in pool 4 is 107738628096 bytes. The latter sort of fits shrdsize = size of pgs in the pool but the former does not.
What exactly is shrdsize? Something different for EC vs replicated?
Mvh.
Torkil
The text was updated successfully, but these errors were encountered: