Hi there

I'm currently evaluating ceph and started filling my cluster for the first time. After filling it up to about 75%, it reported some OSDs being "near-full". After some evaluation I found that the PGs are not distributed evenly over all the osds.

My Setup:
* Two Hosts with 45 Disks each --> 90 OSDs
* Only one newly created pool with 4500 PGs and a Replica Size of 2 --> should be about 100 PGs per OSD

What I found was that one OSD only had 72 PGs, while another had 123 PGs [1]. That means that - if I did the math correctly - I can only fill the cluster to about 81%, because thats when the first OSD is completely full[2].

I did some experimenting and found, that if I add another pool with 4500 PGs, each OSD will have exacly doubled the amount of PGs as with one pool. So this is not an accident (tried it multiple times). On another test-cluster with 4 Hosts and 15 Disks each, the Distribution was similarly worse. I also tried that on a different cluster and got very similar results.

To me it looks like the rjenkins algorithm is not working as it - in my opinion - should be.

Am I doing anything wrong?
Is this behaviour to be expected?
Can I do something about it?

Thank you very much in advance
Niklas

P.S.: I did ask on ceph-users before:
http://comments.gmane.org/gmane.comp.file-systems.ceph.user/4317
http://comments.gmane.org/gmane.comp.file-systems.ceph.user/4496

[1] I built a small script that will parse pgdump and output the amount of pgs on each osd: http://pastebin.com/5ZVqhy5M [2] I know I should not fill my cluster completely but I'm talking about theory and adding a margin only makes it worse.
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to