Re: ceph mgr balancer bad distribution

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Mar 1, 2018 at 10:24 AM, Stefan Priebe - Profihost AG
<s.priebe@xxxxxxxxxxxx> wrote:
>
> Am 01.03.2018 um 09:58 schrieb Dan van der Ster:
>> On Thu, Mar 1, 2018 at 9:52 AM, Stefan Priebe - Profihost AG
>> <s.priebe@xxxxxxxxxxxx> wrote:
>>> Hi,
>>>
>>> Am 01.03.2018 um 09:42 schrieb Dan van der Ster:
>>>> On Thu, Mar 1, 2018 at 9:31 AM, Stefan Priebe - Profihost AG
>>>> <s.priebe@xxxxxxxxxxxx> wrote:
>>>>> Hi,
>>>>> Am 01.03.2018 um 09:03 schrieb Dan van der Ster:
>>>>>> Is the score improving?
>>>>>>
>>>>>>     ceph balancer eval
>>>>>>
>>>>>> It should be decreasing over time as the variances drop toward zero.
>>>>>>
>>>>>> You mentioned a crush optimize code at the beginning... how did that
>>>>>> leave your cluster? The mgr balancer assumes that the crush weight of
>>>>>> each OSD is equal to its size in TB.
>>>>>> Do you have any osd reweights? crush-compat will gradually adjust
>>>>>> those back to 1.0.
>>>>>
>>>>> I reweighted them all back to their correct weight.
>>>>>
>>>>> Now the mgr balancer module says:
>>>>> mgr[balancer] Failed to find further optimization, score 0.010646
>>>>>
>>>>> But as you can see it's heavily imbalanced:
>>>>>
>>>>>
>>>>> Example:
>>>>> 49   ssd 0.84000  1.00000   864G   546G   317G 63.26 1.13  49
>>>>>
>>>>> vs:
>>>>>
>>>>> 48   ssd 0.84000  1.00000   864G   397G   467G 45.96 0.82  49
>>>>>
>>>>> 45% usage vs. 63%
>>>>
>>>> Ahh... but look, the num PGs are perfectly balanced, which implies
>>>> that you have a relatively large number of empty PGs.
>>>>
>>>> But regardless, this is annoying and I expect lots of operators to get
>>>> this result. (I've also observed that the num PGs is gets balanced
>>>> perfectly at the expense of the other score metrics.)
>>>>
>>>> I was thinking of a patch around here [1] that lets operators add a
>>>> score weight on pgs, objects, bytes so we can balance how we like.
>>>>
>>>> Spandan: you were the last to look at this function. Do you think it
>>>> can be improved as I suggested?
>>>
>>> Yes the PGs are perfectly distributed - but i think most of the people
>>> would like to have a dsitribution by bytes and not pgs.
>>>
>>> Is this possible? I mean in the code there is already a dict for pgs,
>>> objects and bytes - but i don't know how to change the logic. Just
>>> remove the pgs and objects from the dict?
>>
>> It's worth a try to remove the pgs and objects from this dict:
>> https://github.com/ceph/ceph/blob/luminous/src/pybind/mgr/balancer/module.py#L552
>
> Do i have to change this 3 to 1 cause we have only one item in the dict?
> I'm not sure where the 3 comes from.
>         pe.score /= 3 * len(roots)
>

I'm pretty sure that 3 is just for our 3 metrics. Indeed you can
change that to 1.

I'm trying this on our test cluster here too. The last few lines of
output from `ceph balancer eval-verbose` will confirm that the score
is based only on bytes.

But I'm not sure this is going to work -- indeed the score here went
from ~0.02 to 0.08, but the do_crush_compat doesn't manage to find a
better score.

-- Dan
_______________________________________________
ceph-users mailing list
ceph-users@xxxxxxxxxxxxxx
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com



[Index of Archives]     [Information on CEPH]     [Linux Filesystem Development]     [Ceph Development]     [Ceph Large]     [Linux USB Development]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [xfs]


  Powered by Linux