After updating the CRUSH rule from

rule cephfs_ec {
    id 1
    type erasure
    min_size 8
    max_size 8
    step set_chooseleaf_tries 5
    step set_choose_tries 100
    step take default
    step choose indep 4 type host
    step choose indep 2 type osd
    step emit
}

to

rule cephfs_ec {
    id 1
    type erasure
    min_size 8
    max_size 12
    #step set_chooseleaf_tries 6
    step set_choose_tries 100
    step take default
    step choose indep 6 type host
    step choose indep 2 type osd
    step emit
}

upmap is not complaining anymore and is working with the six hosts.

Seems like CRUSH does not stop picking a host after the first four with the
first rule and is complaining when it gets the fifth host.
Is this a bug or intended behaviour?

Regards
Eric

On Tue, Sep 17, 2019 at 3:55 PM Eric Dold <dold.e...@gmail.com> wrote:

> With ceph 14.2.4 it's the same.
> The upmap balancer is not working.
>
> Any ideas?
>
> On Wed, Sep 11, 2019 at 11:32 AM Eric Dold <dold.e...@gmail.com> wrote:
>
>> Hello,
>>
>> I'm running ceph 14.2.3 on six hosts with each four osds. I did recently
>> upgrade this from four hosts.
>>
>> The cluster is running fine. But i get this in my logs:
>>
>> Sep 11 11:02:41 ceph1 ceph-mon[1333]: 2019-09-11 11:02:41.953
>> 7f26023a6700 -1 verify_upmap number of buckets 5 exceeds desired 4
>> Sep 11 11:02:41 ceph1 ceph-mon[1333]: 2019-09-11 11:02:41.953
>> 7f26023a6700 -1 verify_upmap number of buckets 5 exceeds desired 4
>> Sep 11 11:02:41 ceph1 ceph-mon[1333]: 2019-09-11 11:02:41.953
>> 7f26023a6700 -1 verify_upmap number of buckets 5 exceeds desired 4
>>
>> It looks like the balancer is not doing any work.
>>
>> Here are some infos about the cluster:
>>
>> ceph1 ~ # ceph osd crush rule ls
>> replicated_rule
>> cephfs_ec
>> ceph1 ~ # ceph osd crush rule dump replicated_rule
>> {
>>     "rule_id": 0,
>>     "rule_name": "replicated_rule",
>>     "ruleset": 0,
>>     "type": 1,
>>     "min_size": 1,
>>     "max_size": 10,
>>     "steps": [
>>         {
>>             "op": "take",
>>             "item": -1,
>>             "item_name": "default"
>>         },
>>         {
>>             "op": "chooseleaf_firstn",
>>             "num": 0,
>>             "type": "host"
>>         },
>>         {
>>             "op": "emit"
>>         }
>>     ]
>> }
>>
>> ceph1 ~ # ceph osd crush rule dump cephfs_ec
>> {
>>     "rule_id": 1,
>>     "rule_name": "cephfs_ec",
>>     "ruleset": 1,
>>     "type": 3,
>>     "min_size": 8,
>>     "max_size": 8,
>>     "steps": [
>>         {
>>             "op": "set_chooseleaf_tries",
>>             "num": 5
>>         },
>>         {
>>             "op": "set_choose_tries",
>>             "num": 100
>>         },
>>         {
>>             "op": "take",
>>             "item": -1,
>>             "item_name": "default"
>>         },
>>         {
>>             "op": "choose_indep",
>>             "num": 4,
>>             "type": "host"
>>         },
>>         {
>>             "op": "choose_indep",
>>             "num": 2,
>>             "type": "osd"
>>         },
>>         {
>>             "op": "emit"
>>         }
>>     ]
>> }
>>
>> ceph1 ~ # ceph osd erasure-code-profile ls
>> default
>> isa_62
>> ceph1 ~ # ceph osd erasure-code-profile get default
>> k=2
>> m=1
>> plugin=jerasure
>> technique=reed_sol_van
>> ceph1 ~ # ceph osd erasure-code-profile get isa_62
>> crush-device-class=
>> crush-failure-domain=osd
>> crush-root=default
>> k=6
>> m=2
>> plugin=isa
>> technique=reed_sol_van
>>
>> The idea with four hosts was that the ec profile should take two osds on
>> each host for the eight buckets.
>> Now with six hosts i guess two hosts will have tow buckets on two osds
>> and four hosts will have each one bucket for a piece of data.
>>
>> Any idea how to resolve this?
>>
>> Regards
>> Eric
>>
>
_______________________________________________
ceph-users mailing list -- ceph-users@ceph.io
To unsubscribe send an email to ceph-users-le...@ceph.io

Reply via email to